diff --git a/main.go b/main.go index 2e005b4..3b64d00 100644 --- a/main.go +++ b/main.go @@ -53,7 +53,7 @@ func (p *PreviewConfig) ServeHTTP(w http.ResponseWriter, r *http.Request) { } else { //w.Header().Set("Cross-Origin-Opener-Policy", "same-origin") //w.Header().Set("Cross-Origin-Embedder-Policy", "require-corp") - b, err = f.ReadFile("ui/index.html") + b, err = f.ReadFile("ui/demo.html") w.Write(b) } } diff --git a/ui/decoder-pro-audio.js b/ui/decoder-pro-audio.js new file mode 100644 index 0000000..638dca9 --- /dev/null +++ b/ui/decoder-pro-audio.js @@ -0,0 +1,14 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("path"),require("fs"),require("crypto")):"function"==typeof define&&define.amd?define(["path","fs","crypto"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).path,e.fs,e.crypto$1)}(this,function(e,_,g){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var Ut=t(e),xt=t(_),Bt=t(g);function r(e,t){return e(t={exports:{}},t.exports),t.exports}var y=r(function(z){var _;(_=void 0!==(_=void 0!==_?_:{})?_:{}).locateFile=function(e){return"decoder-pro-audio.wasm"==e&&"undefined"!=typeof JESSIBUCA_PRO_AUDIO_WASM_URL&&""!=JESSIBUCA_PRO_AUDIO_WASM_URL?JESSIBUCA_PRO_AUDIO_WASM_URL:e};var t,m,R,M,N,O,s,G=Object.assign({},_),H="./this.program",V="object"==typeof window,h="function"==typeof importScripts,$="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,e="",j=($?(e=h?Ut.default.dirname(e)+"/":__dirname+"/",O=()=>{N||(M=xt.default,N=Ut.default)},t=function(e,t){return O(),e=N.normalize(e),M.readFileSync(e,t?void 0:"utf8")},R=e=>{e=t(e,!0);return e=e.buffer?e:new Uint8Array(e)},m=(e,r,i)=>{O(),e=N.normalize(e),M.readFile(e,function(e,t){e?i(e):r(t.buffer)})},1{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},h&&(R=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),m=(e,t,r)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):r()},i.onerror=r,i.send(null)}),_.print||console.log.bind(console)),o=_.printErr||console.warn.bind(console),W=(Object.assign(_,G),_.arguments&&_.arguments,_.thisProgram&&(H=_.thisProgram),_.quit&&_.quit,_.wasmBinary&&(s=_.wasmBinary),_.noExitRuntime,"object"!=typeof WebAssembly&&b("no native wasm support detected"),!1);function Y(e,t){e||b(t)}var q,u,f,l,X,d,p,K,Z,J,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function a(e,t,r){for(var i=t+r,n=t;e[n]&&!(i<=n);)++n;if(16>10,56320|1023&o))):s+=String.fromCharCode((31&l)<<6|a)):s+=String.fromCharCode(l)}return s}function ee(e,t){return e?a(f,e,t):""}function te(e,t,r,i){if(!(0>6,t[r++]=128|63&o}else if(o<=65535){if(s<=r+2)break;t[r++]=224|o>>12,t[r++]=128|o>>6&63,t[r++]=128|63&o}else{if(s<=r+3)break;t[r++]=240|o>>18,t[r++]=128|o>>12&63,t[r++]=128|o>>6&63,t[r++]=128|63&o}}return t[r]=0,r-n}function re(e){for(var t=0,r=0;r>2]=e},this.get_type=function(){return p[this.ptr+4>>2]},this.set_destructor=function(e){p[this.ptr+8>>2]=e},this.get_destructor=function(){return p[this.ptr+8>>2]},this.set_refcount=function(e){d[this.ptr>>2]=e},this.set_caught=function(e){u[this.ptr+12>>0]=e=e?1:0},this.get_caught=function(){return 0!=u[this.ptr+12>>0]},this.set_rethrown=function(e){u[this.ptr+13>>0]=e=e?1:0},this.get_rethrown=function(){return 0!=u[this.ptr+13>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=d[this.ptr>>2];d[this.ptr>>2]=e+1},this.release_ref=function(){var e=d[this.ptr>>2];return d[this.ptr>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){p[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return p[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Et(this.get_type()))return p[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}le(c="decoder-pro-audio.wasm")||(G=c,c=_.locateFile?_.locateFile(G,e):e+G);var v={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,i=e.length-1;0<=i;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=v.isAbs(e),r="/"===e.substr(-1);return(e=(e=v.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||t?e:".")&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var e=v.splitPath(e),t=e[0],e=e[1];return t||e?t+(e=e&&e.substr(0,e.length-1)):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=v.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments,0);return v.normalize(e.join("/"))},join2:(e,t)=>v.normalize(e+"/"+t)},w={resolve:function(){for(var e="",t=!1,r=arguments.length-1;-1<=r&&!t;r--){var i=0<=r?arguments[r]:S.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=v.isAbs(i)}return(t?"/":"")+v.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/")||"."},relative:(e,t)=>{function r(e){for(var t=0;t>>0),0!=r&&(t=Math.max(t,256)),r=e.contents,e.contents=new Uint8Array(t),0=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-n,i);if(8!!e),!1),i=S.root,n="/",s=0;s{for(var t,r;;){if(S.isRoot(e))return r=e.mount.mountpoint,t?"/"!==r[r.length-1]?r+"/"+t:r+t:r;t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,i=0;i>>0)%S.nameTable.length},hashAddNode:e=>{var t=S.hashName(e.parent.id,e.name);e.name_next=S.nameTable[t],S.nameTable[t]=e},hashRemoveNode:e=>{var t=S.hashName(e.parent.id,e.name);if(S.nameTable[t]===e)S.nameTable[t]=e.name_next;else for(var r=S.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=S.mayLookup(e);if(r)throw new S.ErrnoError(r,e);for(var r=S.hashName(e.id,t),i=S.nameTable[r];i;i=i.name_next){var n=i.name;if(i.parent.id===e.id&&n===t)return i}return S.lookup(e,t)},createNode:(e,t,r,i)=>{e=new S.FSNode(e,t,r,i);return S.hashAddNode(e),e},destroyNode:e=>{S.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=S.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>S.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{return S.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return S.lookupNode(e,t),20}catch(e){}return S.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var i;try{i=S.lookupNode(e,t)}catch(e){return e.errno}t=S.nodePermissions(e,"wx");if(t)return t;if(r){if(!S.isDir(i.mode))return 54;if(S.isRoot(i)||S.getPath(i)===S.cwd())return 10}else if(S.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?S.isLink(e.mode)?32:S.isDir(e.mode)&&("r"!==S.flagsToPermissionString(t)||512&t)?31:S.nodePermissions(e,S.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:function(){for(var e=0S.streams[e],createStream:(e,t,r)=>{S.FSStream||(S.FSStream=function(){this.shared={}},S.FSStream.prototype={},Object.defineProperties(S.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new S.FSStream,e);t=S.nextfd(t,r);return e.fd=t,S.streams[t]=e},closeStream:e=>{S.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=S.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new S.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{S.devices[e]={stream_ops:t}},getDevice:e=>S.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var i=r.pop();t.push(i),r.push.apply(r,i.mounts)}return t},syncfs:(t,r)=>{"function"==typeof t&&(r=t,t=!1),S.syncFSRequests++,1=i.length&&s(null)}i.forEach(e=>{if(!e.type.syncfs)return a(null);e.type.syncfs(e,t,a)})},mount:(e,t,r)=>{var i,n="/"===r,s=!r;if(n&&S.root)throw new S.ErrnoError(10);if(!n&&!s){s=S.lookupPath(r,{follow_mount:!1});if(r=s.path,i=s.node,S.isMountpoint(i))throw new S.ErrnoError(10);if(!S.isDir(i.mode))throw new S.ErrnoError(54)}s={type:e,opts:t,mountpoint:r,mounts:[]},t=e.mount(s);return(t.mount=s).root=t,n?S.root=t:i&&(i.mounted=s,i.mount&&i.mount.mounts.push(s)),t},unmount:e=>{e=S.lookupPath(e,{follow_mount:!1});if(!S.isMountpoint(e.node))throw new S.ErrnoError(28);var e=e.node,t=e.mounted,i=S.getMounts(t),t=(Object.keys(S.nameTable).forEach(e=>{for(var t=S.nameTable[e];t;){var r=t.name_next;i.includes(t.mount)&&S.destroyNode(t),t=r}}),e.mounted=null,e.mount.mounts.indexOf(t));e.mount.mounts.splice(t,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var i=S.lookupPath(e,{parent:!0}).node,e=v.basename(e);if(!e||"."===e||".."===e)throw new S.ErrnoError(28);var n=S.mayCreate(i,e);if(n)throw new S.ErrnoError(n);if(i.node_ops.mknod)return i.node_ops.mknod(i,e,t,r);throw new S.ErrnoError(63)},create:(e,t)=>S.mknod(e,t=(t=void 0!==t?t:438)&4095|32768,0),mkdir:(e,t)=>S.mknod(e,t=(t=void 0!==t?t:511)&1023|16384,0),mkdirTree:(e,t)=>{for(var r=e.split("/"),i="",n=0;n(void 0===r&&(r=t,t=438),S.mknod(e,t|=8192,r)),symlink:(e,t)=>{if(!w.resolve(e))throw new S.ErrnoError(44);var r=S.lookupPath(t,{parent:!0}).node;if(!r)throw new S.ErrnoError(44);var t=v.basename(t),i=S.mayCreate(r,t);if(i)throw new S.ErrnoError(i);if(r.node_ops.symlink)return r.node_ops.symlink(r,t,e);throw new S.ErrnoError(63)},rename:(e,t)=>{var r=v.dirname(e),i=v.dirname(t),n=v.basename(e),s=v.basename(t),a=S.lookupPath(e,{parent:!0}).node,o=S.lookupPath(t,{parent:!0}).node;if(!a||!o)throw new S.ErrnoError(44);if(a.mount!==o.mount)throw new S.ErrnoError(75);var l,d=S.lookupNode(a,n);if("."!==w.relative(e,i).charAt(0))throw new S.ErrnoError(28);if("."!==w.relative(t,r).charAt(0))throw new S.ErrnoError(55);try{l=S.lookupNode(o,s)}catch(e){}if(d!==l){i=S.isDir(d.mode),t=S.mayDelete(a,n,i);if(t)throw new S.ErrnoError(t);if(t=l?S.mayDelete(o,s,i):S.mayCreate(o,s))throw new S.ErrnoError(t);if(!a.node_ops.rename)throw new S.ErrnoError(63);if(S.isMountpoint(d)||l&&S.isMountpoint(l))throw new S.ErrnoError(10);if(o!==a&&(t=S.nodePermissions(a,"w")))throw new S.ErrnoError(t);S.hashRemoveNode(d);try{a.node_ops.rename(d,o,s)}catch(e){throw e}finally{S.hashAddNode(d)}}},rmdir:e=>{var t=S.lookupPath(e,{parent:!0}).node,e=v.basename(e),r=S.lookupNode(t,e),i=S.mayDelete(t,e,!0);if(i)throw new S.ErrnoError(i);if(!t.node_ops.rmdir)throw new S.ErrnoError(63);if(S.isMountpoint(r))throw new S.ErrnoError(10);t.node_ops.rmdir(t,e),S.destroyNode(r)},readdir:e=>{e=S.lookupPath(e,{follow:!0}).node;if(e.node_ops.readdir)return e.node_ops.readdir(e);throw new S.ErrnoError(54)},unlink:e=>{var t=S.lookupPath(e,{parent:!0}).node;if(!t)throw new S.ErrnoError(44);var e=v.basename(e),r=S.lookupNode(t,e),i=S.mayDelete(t,e,!1);if(i)throw new S.ErrnoError(i);if(!t.node_ops.unlink)throw new S.ErrnoError(63);if(S.isMountpoint(r))throw new S.ErrnoError(10);t.node_ops.unlink(t,e),S.destroyNode(r)},readlink:e=>{e=S.lookupPath(e).node;if(!e)throw new S.ErrnoError(44);if(e.node_ops.readlink)return w.resolve(S.getPath(e.parent),e.node_ops.readlink(e));throw new S.ErrnoError(28)},stat:(e,t)=>{e=S.lookupPath(e,{follow:!t}).node;if(!e)throw new S.ErrnoError(44);if(e.node_ops.getattr)return e.node_ops.getattr(e);throw new S.ErrnoError(63)},lstat:e=>S.stat(e,!0),chmod:(e,t,r)=>{r="string"==typeof e?S.lookupPath(e,{follow:!r}).node:e;if(!r.node_ops.setattr)throw new S.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,t)=>{S.chmod(e,t,!0)},fchmod:(e,t)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);S.chmod(e.node,t)},chown:(e,t,r,i)=>{i="string"==typeof e?S.lookupPath(e,{follow:!i}).node:e;if(!i.node_ops.setattr)throw new S.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,r)=>{S.chown(e,t,r,!0)},fchown:(e,t,r)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);S.chown(e.node,t,r)},truncate:(e,t)=>{if(t<0)throw new S.ErrnoError(28);e="string"==typeof e?S.lookupPath(e,{follow:!0}).node:e;if(!e.node_ops.setattr)throw new S.ErrnoError(63);if(S.isDir(e.mode))throw new S.ErrnoError(31);if(!S.isFile(e.mode))throw new S.ErrnoError(28);var r=S.nodePermissions(e,"w");if(r)throw new S.ErrnoError(r);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);if(0==(2097155&e.flags))throw new S.ErrnoError(28);S.truncate(e.node,t)},utime:(e,t,r)=>{e=S.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new S.ErrnoError(44);var i;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?S.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)i=e;else{e=v.normalize(e);try{i=S.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var n=!1;if(64&t)if(i){if(128&t)throw new S.ErrnoError(20)}else i=S.mknod(e,r,0),n=!0;if(!i)throw new S.ErrnoError(44);if(S.isChrdev(i.mode)&&(t&=-513),65536&t&&!S.isDir(i.mode))throw new S.ErrnoError(54);if(!n){r=S.mayOpen(i,t);if(r)throw new S.ErrnoError(r)}512&t&&!n&&S.truncate(i,0),t&=-131713;r=S.createStream({node:i,path:S.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return r.stream_ops.open&&r.stream_ops.open(r),!_.logReadFiles||1&t||(S.readFiles||(S.readFiles={}),e in S.readFiles||(S.readFiles[e]=1)),r},close:e=>{if(S.isClosed(e))throw new S.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{S.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(S.isClosed(e))throw new S.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new S.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new S.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,i,n)=>{if(i<0||n<0)throw new S.ErrnoError(28);if(S.isClosed(e))throw new S.ErrnoError(8);if(1==(2097155&e.flags))throw new S.ErrnoError(8);if(S.isDir(e.node.mode))throw new S.ErrnoError(31);if(!e.stream_ops.read)throw new S.ErrnoError(28);var s=void 0!==n;if(s){if(!e.seekable)throw new S.ErrnoError(70)}else n=e.position;t=e.stream_ops.read(e,t,r,i,n);return s||(e.position+=t),t},write:(e,t,r,i,n,s)=>{if(i<0||n<0)throw new S.ErrnoError(28);if(S.isClosed(e))throw new S.ErrnoError(8);if(0==(2097155&e.flags))throw new S.ErrnoError(8);if(S.isDir(e.node.mode))throw new S.ErrnoError(31);if(!e.stream_ops.write)throw new S.ErrnoError(28);e.seekable&&1024&e.flags&&S.llseek(e,0,2);var a=void 0!==n;if(a){if(!e.seekable)throw new S.ErrnoError(70)}else n=e.position;t=e.stream_ops.write(e,t,r,i,n,s);return a||(e.position+=t),t},allocate:(e,t,r)=>{if(S.isClosed(e))throw new S.ErrnoError(8);if(t<0||r<=0)throw new S.ErrnoError(28);if(0==(2097155&e.flags))throw new S.ErrnoError(8);if(!S.isFile(e.node.mode)&&!S.isDir(e.node.mode))throw new S.ErrnoError(43);if(!e.stream_ops.allocate)throw new S.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,i,n)=>{if(0!=(2&i)&&0==(2&n)&&2!=(2097155&e.flags))throw new S.ErrnoError(2);if(1==(2097155&e.flags))throw new S.ErrnoError(2);if(e.stream_ops.mmap)return e.stream_ops.mmap(e,t,r,i,n);throw new S.ErrnoError(43)},msync:(e,t,r,i,n)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,i,n):0,munmap:e=>0,ioctl:(e,t,r)=>{if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,t,r);throw new S.ErrnoError(59)},readFile:function(e){let t=1S.currentPath,chdir:e=>{e=S.lookupPath(e,{follow:!0});if(null===e.node)throw new S.ErrnoError(44);if(!S.isDir(e.node.mode))throw new S.ErrnoError(54);var t=S.nodePermissions(e.node,"x");if(t)throw new S.ErrnoError(t);S.currentPath=e.path},createDefaultDirectories:()=>{S.mkdir("/tmp"),S.mkdir("/home"),S.mkdir("/home/web_user")},createDefaultDevices:()=>{S.mkdir("/dev"),S.registerDevice(S.makedev(1,3),{read:()=>0,write:(e,t,r,i,n)=>i}),S.mkdev("/dev/null",S.makedev(1,3)),n.register(S.makedev(5,0),n.default_tty_ops),n.register(S.makedev(6,0),n.default_tty1_ops),S.mkdev("/dev/tty",S.makedev(5,0)),S.mkdev("/dev/tty1",S.makedev(6,0));var e=function(){var e;if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=new Uint8Array(1),()=>(crypto.getRandomValues(e),e[0]);if($)try{var t=Bt.default;return()=>t.randomBytes(1)[0]}catch(e){}return()=>b("randomDevice")}();S.createDevice("/dev","random",e),S.createDevice("/dev","urandom",e),S.mkdir("/dev/shm"),S.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{S.mkdir("/proc");var t=S.mkdir("/proc/self");S.mkdir("/proc/self/fd"),S.mount({mount:()=>{var e=S.createNode(t,"fd",16895,73);return e.node_ops={lookup:(e,t)=>{var r=S.getStream(+t);if(!r)throw new S.ErrnoError(8);t={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return t.parent=t}},e}},{},"/proc/self/fd")},createStandardStreams:()=>{_.stdin?S.createDevice("/dev","stdin",_.stdin):S.symlink("/dev/tty","/dev/stdin"),_.stdout?S.createDevice("/dev","stdout",null,_.stdout):S.symlink("/dev/tty","/dev/stdout"),_.stderr?S.createDevice("/dev","stderr",null,_.stderr):S.symlink("/dev/tty1","/dev/stderr"),S.open("/dev/stdin",0),S.open("/dev/stdout",1),S.open("/dev/stderr",1)},ensureErrnoError:()=>{S.ErrnoError||(S.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},S.ErrnoError.prototype=new Error,S.ErrnoError.prototype.constructor=S.ErrnoError,[44].forEach(e=>{S.genericErrors[e]=new S.ErrnoError(e),S.genericErrors[e].stack=""}))},staticInit:()=>{S.ensureErrnoError(),S.nameTable=new Array(4096),S.mount(E,{},"/"),S.createDefaultDirectories(),S.createDefaultDevices(),S.createSpecialDirectories(),S.filesystems={MEMFS:E}},init:(e,t,r)=>{S.init.initialized=!0,S.ensureErrnoError(),_.stdin=e||_.stdin,_.stdout=t||_.stdout,_.stderr=r||_.stderr,S.createStandardStreams()},quit:()=>{S.init.initialized=!1;for(var e=0;e{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{e=S.analyzePath(e,t);return e.exists?e.object:null},analyzePath:(e,t)=>{try{e=(i=S.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=S.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=i.path,r.parentObject=i.node,r.name=v.basename(e),i=S.lookupPath(e,{follow:!t}),r.exists=!0,r.path=i.path,r.object=i.node,r.name=i.node.name,r.isRoot="/"===i.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,i)=>{e="string"==typeof e?e:S.getPath(e);for(var n=t.split("/").reverse();n.length;){var s=n.pop();if(s){var a=v.join2(e,s);try{S.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,t,r,i,n)=>{e=v.join2("string"==typeof e?e:S.getPath(e),t),t=S.getMode(i,n);return S.create(e,t)},createDataFile:(e,t,r,i,n,s)=>{var a=t,t=(e&&(e="string"==typeof e?e:S.getPath(e),a=t?v.join2(e,t):e),S.getMode(i,n)),e=S.create(a,t);if(r){if("string"==typeof r){for(var o=new Array(r.length),l=0,d=r.length;l{var e=v.join2("string"==typeof e?e:S.getPath(e),t),t=S.getMode(!!l,!!a),r=(S.createDevice.major||(S.createDevice.major=64),S.makedev(S.createDevice.major++,0));return S.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{a&&a.buffer&&a.buffer.length&&a(10)},read:(e,t,r,i,n)=>{for(var s,a=0,o=0;o{for(var s=0;s{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!t)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=pe(t(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new S.ErrnoError(29)}},createLazyFile:(e,t,a,r,i)=>{function n(){this.lengthKnown=!1,this.chunks=[]}if(n.prototype.get=function(e){var t;if(!(e>this.length-1||e<0))return t=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[t]},n.prototype.setDataGetter=function(e){this.getter=e},n.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var t,i=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,e=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576,s=(r||(n=i),this);s.setDataGetter(e=>{var t=e*n,r=(e+1)*n-1,r=Math.min(r,i-1);if(void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(t=s.length)return 0;var a=Math.min(s.length-n,i);if(s.slice)for(var o=0;o{var t=o.stream_ops[e];l[e]=function(){return S.forceLoadFile(o),t.apply(null,arguments)}}),l.read=(e,t,r,i,n)=>(S.forceLoadFile(o),d(e,t,r,i,n)),l.mmap=(e,t,r,i,n)=>{S.forceLoadFile(o);var s=ce(t);if(s)return d(e,u,s,t,r),{ptr:s,allocated:!0};throw new S.ErrnoError(48)},o.stream_ops=l,o},createPreloadedFile:(r,i,e,n,s,a,o,l,d,h)=>{var t,u,f,p=i?w.resolve(v.join2(r,i)):r;function c(e){function t(e){h&&h(),l||S.createDataFile(r,i,e,n,s,d),a&&a(),oe()}Browser.handledByPreloadPlugin(e,p,t,()=>{o&&o(),oe()})||t(e)}ae(),"string"==typeof e?(u=o,f="al "+(t=e),m(t,e=>{Y(e,'Loading data file "'+t+'" failed (no arrayBuffer).'),c(new Uint8Array(e)),f&&oe()},e=>{if(!u)throw'Loading data file "'+t+'" failed.';u()}),f&&ae()):c(e)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(a,o,l)=>{o=o||(()=>{}),l=l||(()=>{});var e=S.indexedDB();try{var d=e.open(S.DB_NAME(),S.DB_VERSION)}catch(a){return l(a)}d.onupgradeneeded=()=>{j("creating db"),d.result.createObjectStore(S.DB_STORE_NAME)},d.onsuccess=()=>{var e=d.result.transaction([S.DB_STORE_NAME],"readwrite"),t=e.objectStore(S.DB_STORE_NAME),r=0,i=0,n=a.length;function s(){(0==i?o:l)()}a.forEach(e=>{e=t.put(S.analyzePath(e).object.contents,e);e.onsuccess=()=>{++r+i==n&&s()},e.onerror=()=>{r+ ++i==n&&s()}}),e.onerror=l},d.onerror=l},loadFilesFromDB:(o,l,d)=>{l=l||(()=>{}),d=d||(()=>{});var e=S.indexedDB();try{var h=e.open(S.DB_NAME(),S.DB_VERSION)}catch(o){return d(o)}h.onupgradeneeded=d,h.onsuccess=()=>{var e=h.result;try{var t=e.transaction([S.DB_STORE_NAME],"readonly")}catch(e){return void d(e)}var r=t.objectStore(S.DB_STORE_NAME),i=0,n=0,s=o.length;function a(){(0==n?l:d)()}o.forEach(e=>{var t=r.get(e);t.onsuccess=()=>{S.analyzePath(e).exists&&S.unlink(e),S.createDataFile(v.dirname(e),v.basename(e),t.result,!0,!0,!0),++i+n==s&&a()},t.onerror=()=>{i+ ++n==s&&a()}}),t.onerror=d},h.onerror=d}},U={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(v.isAbs(t))return t;var i;if(-100===e)i=S.cwd();else{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);i=e.path}if(0!=t.length)return v.join2(i,t);if(r)return i;throw new S.ErrnoError(44)},doStat:function(e,t,r){try{var i=e(t)}catch(e){if(e&&e.node&&v.normalize(t)!==v.normalize(S.getPath(e.node)))return-54;throw e}return d[r>>2]=i.dev,d[r+4>>2]=0,d[r+8>>2]=i.ino,d[r+12>>2]=i.mode,d[r+16>>2]=i.nlink,d[r+20>>2]=i.uid,d[r+24>>2]=i.gid,d[r+28>>2]=i.rdev,d[r+32>>2]=0,y=[i.size>>>0,(g=i.size,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+40>>2]=y[0],d[r+44>>2]=y[1],d[r+48>>2]=4096,d[r+52>>2]=i.blocks,y=[Math.floor(i.atime.getTime()/1e3)>>>0,(g=Math.floor(i.atime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+56>>2]=y[0],d[r+60>>2]=y[1],d[r+64>>2]=0,y=[Math.floor(i.mtime.getTime()/1e3)>>>0,(g=Math.floor(i.mtime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+72>>2]=y[0],d[r+76>>2]=y[1],d[r+80>>2]=0,y=[Math.floor(i.ctime.getTime()/1e3)>>>0,(g=Math.floor(i.ctime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+88>>2]=y[0],d[r+92>>2]=y[1],d[r+96>>2]=0,y=[i.ino>>>0,(g=i.ino,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+104>>2]=y[0],d[r+108>>2]=y[1],0},doMsync:function(e,t,r,i,n){e=f.slice(e,e+r);S.msync(t,e,n,r,i)},varargs:void 0,get:function(){return U.varargs+=4,d[U.varargs-4>>2]},getStr:function(e){return ee(e)},getStreamFromFD:function(e){e=S.getStream(e);if(e)return e;throw new S.ErrnoError(8)}};function me(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var _e=void 0;function x(e){for(var t="",r=e;f[r];)t+=_e[f[r++]];return t}var B={},A={},ge={};function ye(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&t<=57?"_"+e:e}function be(e,t){return e=ye(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function ve(e,t){var r=be(t,function(e){this.name=t,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return r.prototype=Object.create(e.prototype),(r.prototype.constructor=r).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var T=void 0;function k(e){throw new T(e)}var we=void 0;function Ee(e){throw new we(e)}function Se(i,t,n){function r(e){var t=n(e);t.length!==i.length&&Ee("Mismatched type converter count");for(var r=0;r{A.hasOwnProperty(e)?s[t]=A[e]:(a.push(e),B.hasOwnProperty(e)||(B[e]=[]),B[e].push(()=>{s[t]=A[e],++o===a.length&&r(s)}))}),0===a.length&&r(s)}function C(e,t,r){r=2e()))}function Ue(e){k(e.$$.ptrType.registeredClass.name+" instance already deleted")}var xe=!1;function Be(e){}function Ae(e){--e.count.value,0===e.count.value&&((e=e).smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr))}var Te={};var ke=[];function Ce(){for(;ke.length;){var e=ke.pop();e.$$.deleteScheduled=!1,e.delete()}}var Fe=void 0;var Ie={};function Pe(e,t){return t.ptrType&&t.ptr||Ee("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Ee("Both smartPtrType and smartPtr must be specified"),t.count={value:1},De(Object.create(e,{$$:{value:t}}))}function De(e){return"undefined"==typeof FinalizationRegistry?(De=e=>e,e):(xe=new FinalizationRegistry(e=>{Ae(e.$$)}),Be=e=>xe.unregister(e),(De=e=>{var t=e.$$;return t.smartPtr&&xe.register(e,{$$:t},e),e})(e))}function F(){}function Le(e,t,r){var i;void 0===e[t].overloadTable&&(i=e[t],e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||k("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[i.argCount]=i)}function ze(e,t,r,i,n,s,a,o){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=i,this.baseClass=n,this.getActualType=s,this.upcast=a,this.downcast=o,this.pureVirtualFunctions=[]}function Re(e,t,r){for(;t!==r;)t.upcast||k("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Me(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Re(t.$$.ptr,r,this.registeredClass)}function Ne(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),this.isSmartPointer?(i=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,i),i):0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&k("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);var r,i,n=t.$$.ptrType.registeredClass;if(i=Re(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&k("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?i=t.$$.smartPtr:k("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);break;case 1:i=t.$$.smartPtr;break;case 2:t.$$.smartPtrType===this?i=t.$$.smartPtr:(r=t.clone(),i=this.rawShare(i,Qe.toHandle(function(){r.delete()})),null!==e&&e.push(this.rawDestructor,i));break;default:k("Unsupporting sharing policy")}return i}function Oe(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&k("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Re(t.$$.ptr,r,this.registeredClass)}function Ge(e){return this.fromWireType(d[e>>2])}function I(e,t,r,i,n,s,a,o,l,d,h){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=i,this.isSmartPointer=n,this.pointeeType=s,this.sharingPolicy=a,this.rawGetPointee=o,this.rawConstructor=l,this.rawShare=d,this.rawDestructor=h,n||void 0!==t.baseClass?this.toWireType=Ne:(this.toWireType=i?Me:Oe,this.destructorFunction=null)}var He=[];function Ve(e){var t=He[e];return t||(e>=He.length&&(He.length=e+1),He[e]=t=J.get(e)),t}function P(e,t){var n,s,a,r=(e=x(e)).includes("j")?(n=e,s=t,a=[],function(){return a.length=0,Object.assign(a,arguments),t=s,r=a,(e=n).includes("j")?(i=t,e=_["dynCall_"+e],r&&r.length?e.apply(null,[i].concat(r)):e.call(null,i)):Ve(t).apply(null,r);var e,t,r,i}):Ve(t);return"function"!=typeof r&&k("unknown function pointer with signature "+e+": "+t),r}var $e=void 0;function je(e){var e=yt(e),t=x(e);return L(e),t}function We(e,t){var r=[],i={};throw t.forEach(function e(t){i[t]||A[t]||(ge[t]?ge[t].forEach(e):(r.push(t),i[t]=!0))}),new $e(e+": "+r.map(je).join([", "]))}function Ye(e,t){for(var r=[],i=0;i>2]);return r}function qe(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Xe(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=be(e.name||"unknownFunctionName",function(){}),r=(r.prototype=e.prototype,new r),e=e.apply(r,t);return e instanceof Object?e:r}function Ke(e,t,r,i,n){var s=t.length;s<2&&k("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==r,a=!1,o=1;o(e||k("Cannot use deleted val. handle = "+e),D[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ze.length?Ze.pop():D.length;return D[t]={refcount:1,value:e},t}}};function et(e){if(null===e)return"null";var t=typeof e;return"object"==t||"array"==t||"function"==t?e.toString():""+e}var tt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function rt(e,t){for(var r,i=e>>1,n=i+t/2;!(n<=i)&&X[i];)++i;if(32<(r=i<<1)-e&&tt)return tt.decode(f.subarray(e,r));for(var s="",a=0;!(t/2<=a);++a){var o=l[e+2*a>>1];if(0==o)break;s+=String.fromCharCode(o)}return s}function it(e,t,r){if((r=void 0===r?2147483647:r)<2)return 0;for(var i=t,n=(r-=2)<2*e.length?r/2:e.length,s=0;s>1]=a,t+=2}return l[t>>1]=0,t-i}function nt(e){return 2*e.length}function st(e,t){for(var r=0,i="";!(t/4<=r);){var n,s=d[e+4*r>>2];if(0==s)break;++r,65536<=s?(n=s-65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n)):i+=String.fromCharCode(s)}return i}function at(e,t,r){if((r=void 0===r?2147483647:r)<4)return 0;for(var i=t,n=i+r-4,s=0;s>2]=a,(t+=4)+4>n)break}return d[t>>2]=0,t-i}function ot(e){for(var t=0,r=0;r>1]=2,0;case 16:case 8:default:return-28;case 9:return d[gt()>>2]=28,-1}}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return-e.errno;throw e}},w:function(e,t,r,i){U.varargs=i;try{t=U.getStr(t),t=U.calculateAt(e,t);var n=i?U.get():0;return S.open(t,r,n).fd}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return-e.errno;throw e}},u:function(e,t,r,i,n){},E:function(e,r,i,n,s){var a=me(i);C(e,{name:r=x(r),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:s},argPackAdvance:8,readValueFromPointer:function(e){var t;if(1===i)t=u;else if(2===i)t=l;else{if(4!==i)throw new TypeError("Unknown boolean type size: "+r);t=d}return this.fromWireType(t[e>>a])},destructorFunction:null})},t:function(l,e,t,d,r,h,i,u,n,f,p,s,c){p=x(p),h=P(r,h),u=u&&P(i,u),f=f&&P(n,f),c=P(s,c);var a,m=ye(p);r=m,i=function(){We("Cannot construct "+p+" due to unbound types",[d])},_.hasOwnProperty(r)?(k("Cannot register public name '"+r+"' twice"),Le(_,r,r),_.hasOwnProperty(a)&&k("Cannot register multiple overloads of a function with the same number of arguments ("+a+")!"),_[r].overloadTable[a]=i):_[r]=i,Se([l,e,t],d?[d]:[],function(e){e=e[0],e=d?(a=e.registeredClass).instancePrototype:F.prototype;var t,r,i=be(m,function(){if(Object.getPrototypeOf(this)!==n)throw new T("Use 'new' to construct "+p);if(void 0===s.constructor_body)throw new T(p+" has no accessible constructor");var e=s.constructor_body[arguments.length];if(void 0===e)throw new T("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(s.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),n=Object.create(e,{constructor:{value:i}}),s=(i.prototype=n,new ze(p,i,n,c,a,h,u,f)),e=new I(p,s,!0,!1,!1),a=new I(p+"*",s,!1,!1,!1),o=new I(p+" const*",s,!1,!0,!1);return Te[l]={pointerType:a,constPointerType:o},t=m,i=i,_.hasOwnProperty(t)||Ee("Replacing nonexistant public symbol"),_[t].overloadTable,_[t]=i,_[t].argCount=r,[e,a,o]})},r:function(e,i,t,r,n,s){Y(0{We("Cannot construct "+t.name+" due to unbound types",a)},Se([],a,function(e){return e.splice(1,0,null),t.registeredClass.constructor_body[i-1]=Ke(r,e,null,n,s),[]}),[]})},f:function(e,s,a,t,r,o,l,d){var h=Ye(a,t);s=x(s),o=P(r,o),Se([],[e],function(t){var r=(t=t[0]).name+"."+s;function e(){We("Cannot call "+r+" due to unbound types",h)}s.startsWith("@@")&&(s=Symbol[s.substring(2)]),d&&t.registeredClass.pureVirtualFunctions.push(s);var i=t.registeredClass.instancePrototype,n=i[s];return void 0===n||void 0===n.overloadTable&&n.className!==t.name&&n.argCount===a-2?(e.argCount=a-2,e.className=t.name,i[s]=e):(Le(i,s,r),i[s].overloadTable[a-2]=e),Se([],h,function(e){e=Ke(r,e,t,o,l);return void 0===i[s].overloadTable?(e.argCount=a-2,i[s]=e):i[s].overloadTable[a-2]=e,[]}),[]})},D:function(e,t){C(e,{name:t=x(t),fromWireType:function(e){var t=Qe.toValue(e);return Je(e),t},toWireType:function(e,t){return Qe.toHandle(t)},argPackAdvance:8,readValueFromPointer:Ge,destructorFunction:null})},n:function(e,t,r){r=me(r);C(e,{name:t=x(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:function(e,t){switch(t){case 2:return function(e){return this.fromWireType(K[e>>2])};case 3:return function(e){return this.fromWireType(Z[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}(t,r),destructorFunction:null})},c:function(e,t,r,i,n){t=x(t);var s,a=me(r),o=e=>e,r=(0===i&&(s=32-8*r,o=e=>e<>>s),t.includes("unsigned"));C(e,{name:t,fromWireType:o,toWireType:r?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:function(e,t,r){switch(t){case 0:return r?function(e){return u[e]}:function(e){return f[e]};case 1:return r?function(e){return l[e>>1]}:function(e){return X[e>>1]};case 2:return r?function(e){return d[e>>2]}:function(e){return p[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}(t,a,0!==i),destructorFunction:null})},b:function(e,t,r){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function n(e){var t=p,r=t[e>>=2],t=t[e+1];return new i(q,t,r)}C(e,{name:r=x(r),fromWireType:n,argPackAdvance:8,readValueFromPointer:n},{ignoreDuplicateRegistrations:!0})},m:function(e,t){var d="std::string"===(t=x(t));C(e,{name:t,fromWireType:function(e){var t,r=p[e>>2],i=e+4;if(d)for(var n=i,s=0;s<=r;++s){var a,o=i+s;s!=r&&0!=f[o]||(a=ee(n,o-n),void 0===t?t=a:t=t+String.fromCharCode(0)+a,n=o+1)}else{for(var l=new Array(r),s=0;s>2]=r,d&&i)te(t,f,s,r+1);else if(i)for(var a=0;aX,u=1):4===l&&(d=st,s=at,a=ot,h=()=>p,u=2),C(e,{name:n,fromWireType:function(e){for(var t,r=p[e>>2],i=h(),n=e+4,s=0;s<=r;++s){var a,o=e+4+s*l;s!=r&&0!=i[o>>u]||(a=d(n,o-n),void 0===t?t=a:t=t+String.fromCharCode(0)+a,n=o+l)}return L(e),t},toWireType:function(e,t){"string"!=typeof t&&k("Cannot pass non-string to C++ string type "+n);var r=a(t),i=vt(4+r+l);return p[i>>2]=r>>u,s(t,i+4,r+l),null!==e&&e.push(L,i),i},argPackAdvance:8,readValueFromPointer:Ge,destructorFunction:function(e){L(e)}})},o:function(e,t){C(e,{isVoid:!0,name:t=x(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},h:function(){return Date.now()},d:function(e,t,r,i){(e=dt[e])(t=Qe.toValue(t),r=void 0===(t=lt[e=r])?x(e):t,null,i)},j:Je,e:function(e,t){var r=function(e,t){for(var r,i,n=new Array(e),s=0;s>2],void 0===(i=A[r])&&k("parameter "+s+" has unknown type "+je(r)),i);return n}(e,t),t=r[0],i=t.name+"_$"+r.slice(1).map(function(e){return e.name}).join("_")+"$",n=ht[i];if(void 0!==n)return n;for(var s=["retType"],a=[t],o="",l=0;l>2]=r,e),n=r,s=0;s>0]=i.charCodeAt(s);u[n>>0]=0,l+=e.length+1}),0},z:function(e,t){var r=ft(),i=(p[e>>2]=r.length,0);return r.forEach(function(e){i+=e.length+1}),p[t>>2]=i,0},l:function(e){try{var t=U.getStreamFromFD(e);return S.close(t),0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},x:function(e,t){try{var r=U.getStreamFromFD(e),i=r.tty?2:S.isDir(r.mode)?3:S.isLink(r.mode)?7:4;return u[t>>0]=i,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},B:function(e,t,r,i){try{var n=function(e,t,r){for(var i=0,n=0;n>2],a=p[t+4>>2],s=(t+=8,S.read(e,u,s,a,void 0));if(s<0)return-1;if(i+=s,s>2]=n,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},s:function(e,t,r,i,n){try{var s=r+2097152>>>0<4194305-!!t?(t>>>0)+4294967296*r:NaN;if(isNaN(s))return 61;var a=U.getStreamFromFD(e);return S.llseek(a,s,i),y=[a.position>>>0,(g=a.position,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[n>>2]=y[0],d[n+4>>2]=y[1],a.getdents&&0===s&&0===i&&(a.getdents=null),0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},k:function(e,t,r,i){try{var n=function(e,t,r){for(var i=0,n=0;n>2],a=p[t+4>>2],s=(t+=8,S.write(e,u,s,a,void 0));if(s<0)return-1;i+=s}return i}(U.getStreamFromFD(e),t,r);return p[i>>2]=n,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},g:function(e){}},L=(!function(){var t={a:_t};function r(e,t){var e=e.exports;_.asm=e,e=_.asm.F.buffer,q=e,_.HEAP8=u=new Int8Array(e),_.HEAP16=l=new Int16Array(e),_.HEAP32=d=new Int32Array(e),_.HEAPU8=f=new Uint8Array(e),_.HEAPU16=X=new Uint16Array(e),_.HEAPU32=p=new Uint32Array(e),_.HEAPF32=K=new Float32Array(e),_.HEAPF64=Z=new Float64Array(e),J=_.asm.I,e=_.asm.G,ne.unshift(e),oe()}function i(e){r(e.instance)}function n(e){return function(){if(!s&&(V||h)){if("function"==typeof fetch&&!de(c))return fetch(c,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+c+"'"}).catch(function(){return he(c)});if(m)return new Promise(function(t,e){m(c,function(e){t(new Uint8Array(e))},e)})}return Promise.resolve().then(function(){return he(c)})}().then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(e,function(e){o("failed to asynchronously prepare wasm: "+e),b(e)})}if(ae(),_.instantiateWasm)try{return _.instantiateWasm(t,r)}catch(t){return o("Module.instantiateWasm callback failed with error: "+t)}s||"function"!=typeof WebAssembly.instantiateStreaming||le(c)||de(c)||$||"function"!=typeof fetch?n(i):fetch(c,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,t).then(i,function(e){return o("wasm streaming compile failed: "+e),o("falling back to ArrayBuffer instantiation"),n(i)})})}(),_.___wasm_call_ctors=function(){return(_.___wasm_call_ctors=_.asm.G).apply(null,arguments)},_._free=function(){return(L=_._free=_.asm.H).apply(null,arguments)}),gt=_.___errno_location=function(){return(gt=_.___errno_location=_.asm.J).apply(null,arguments)},yt=_.___getTypeName=function(){return(yt=_.___getTypeName=_.asm.K).apply(null,arguments)};_.___embind_register_native_and_builtin_types=function(){return(_.___embind_register_native_and_builtin_types=_.asm.L).apply(null,arguments)};var bt,vt=_._malloc=function(){return(vt=_._malloc=_.asm.M).apply(null,arguments)},wt=_._emscripten_builtin_memalign=function(){return(wt=_._emscripten_builtin_memalign=_.asm.N).apply(null,arguments)},Et=_.___cxa_is_pointer_type=function(){return(Et=_.___cxa_is_pointer_type=_.asm.O).apply(null,arguments)};function St(){function e(){if(!bt&&(bt=!0,_.calledRun=!0,!W)){if(_.noFSInit||S.init.initialized||S.init(),S.ignorePermissions=!1,ue(ne),_.onRuntimeInitialized&&_.onRuntimeInitialized(),_.postRun)for("function"==typeof _.postRun&&(_.postRun=[_.postRun]);_.postRun.length;)e=_.postRun.shift(),se.unshift(e);var e;ue(se)}}if(!(0{e&&g.pixelStorei(g.UNPACK_ALIGNMENT,1);e=s(g.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n attribute vec2 aTexturePosition;\n uniform mat4 uModelMatrix;\n uniform mat4 uViewMatrix;\n uniform mat4 uProjectionMatrix;\n varying lowp vec2 vTexturePosition;\n void main(void) {\n gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n vTexturePosition = aTexturePosition;\n }\n "),t=s(g.FRAGMENT_SHADER,"\n precision highp float;\n varying highp vec2 vTexturePosition;\n uniform int isyuv;\n uniform sampler2D rgbaTexture;\n uniform sampler2D yTexture;\n uniform sampler2D uTexture;\n uniform sampler2D vTexture;\n\n const mat4 YUV2RGB = mat4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n\n void main(void) {\n\n if (isyuv>0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),r=g.createProgram(),g.attachShader(r,e),g.attachShader(r,t),g.linkProgram(r);var t,r,e=g.getProgramParameter(r,g.LINK_STATUS)?r:(console.log("Unable to initialize the shader program: "+g.getProgramInfoLog(r)),null);let y={program:e,attribLocations:{vertexPosition:g.getAttribLocation(e,"aVertexPosition"),texturePosition:g.getAttribLocation(e,"aTexturePosition")},uniformLocations:{projectionMatrix:g.getUniformLocation(e,"uProjectionMatrix"),modelMatrix:g.getUniformLocation(e,"uModelMatrix"),viewMatrix:g.getUniformLocation(e,"uViewMatrix"),rgbatexture:g.getUniformLocation(e,"rgbaTexture"),ytexture:g.getUniformLocation(e,"yTexture"),utexture:g.getUniformLocation(e,"uTexture"),vtexture:g.getUniformLocation(e,"vTexture"),isyuv:g.getUniformLocation(e,"isyuv")}},b=(t=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,t),g.bufferData(g.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),g.STATIC_DRAW),r=(r=[]).concat([0,1],[1,1],[1,0],[0,0]),e=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,e),g.bufferData(g.ARRAY_BUFFER,new Float32Array(r),g.STATIC_DRAW),r=g.createBuffer(),g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,r),g.bufferData(g.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),g.STATIC_DRAW),{position:t,texPosition:e,indices:r}),i=n(),v=n(),w=n(),E=n();function n(){var e=g.createTexture();return g.bindTexture(g.TEXTURE_2D,e),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),e}function s(e,t){e=g.createShader(e);return g.shaderSource(e,t),g.compileShader(e),g.getShaderParameter(e,g.COMPILE_STATUS)?e:(console.log("An error occurred compiling the shaders: "+g.getShaderInfoLog(e)),g.deleteShader(e),null)}function a(e,t){g.viewport(0,0,e,t),g.clearColor(0,0,0,0),g.clearDepth(1),g.enable(g.DEPTH_TEST),g.depthFunc(g.LEQUAL),g.clear(g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT);const r=U();A(r,-1,1,-1,1,.1,100);var i,n,s,a,o,l,d,h,u,f,p,c,m,_,e=U(),t=(B(e),U());i=t,n=x(0,0,0),s=x(0,0,-1),a=x(0,1,0),u=n[0],f=n[1],n=n[2],p=a[0],c=a[1],a=a[2],m=s[0],_=s[1],s=s[2],Math.abs(u-m)>4===G&&e[1]===fe}r(function(e){var a,t,o,r,i;a="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=e.exports,o=function(){for(var e,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,i=t.length,n={};re.type===i):r)[0],s=null,e=1;var t;if(0{this.reject=e,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)},this.demand(r,!0)||null==(e=this.pull)||e.call(this,r)})},new(o=(o=a=void 0)||Promise)(function(r,t){function i(e){try{s(l.next(e))}catch(e){t(e)}}function n(e){try{s(l.throw(e))}catch(e){t(e)}}function s(e){var t;e.done?r(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(i,n)}s((l=l.apply(e,a||[])).next())});var e,a,o,l}readU32(){return this.read(k)}readU16(){return this.read(C)}readU8(){return this.read(F)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null!=(e=this.reject)&&e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(this.buffer&&this.need){let e=null;const i=this.buffer.subarray(this.consumed);let t=0;var r=e=>i.length<(t=e);if("number"==typeof this.need){if(r(this.need))return;e=i.subarray(0,t)}else if(this.need===k){if(r(4))return;e=i[0]<<24|i[1]<<16|i[2]<<8|i[3]}else if(this.need===C){if(r(2))return;e=i[0]<<8|i[1]}else if(this.need===F){if(r(1))return;e=i[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(i.subarray(0,t)),e=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(i.subarray(0,t)),e=this.need}return this.consumed+=t,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise(e=>this.pull=e);this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,r=t+e;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{const e=new Uint8Array(r);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,r)}return this.buffer=new Uint8Array(e),this.buffer}}Y.U32=k,Y.U16=C,Y.U8=F;class be{constructor(s){this.log=function(e){if(s._opt.debug&&s._opt.debugLevel==b){for(var t=s._opt.debugUuid?`[${s._opt.debugUuid}]`:"",r=arguments.length,i=new Array(1>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t;var t=this._current_word_bits_left?this._current_word:0,e=(t>>>=32-this._current_word_bits_left,e-this._current_word_bits_left),e=(this._fillCurrentWord(),Math.min(e,this._current_word_bits_left)),r=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class P{static _ebsp2rbsp(e){let t=e,r=t.byteLength,i=new Uint8Array(r),n=0;for(let e=0;e=this.buflen)return this.iserro=!0,0;this.iserro=!1,r=8>8-this.bufoff-r&255>>8-r),this.bufoff+=r,e-=r,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){var t=this.bufpos,r=this.bufoff,e=this.read(e);return this.bufpos=t,this.bufoff=r,e}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<>>24&255,r>>>16&255,r>>>8&255,255&r]),e=new Uint8Array(r+4);e.set(i,0),e.set(n.sps,4),n.sps=e}if(n.pps){const r=n.pps.byteLength,i=new Uint8Array([r>>>24&255,r>>>16&255,r>>>8&255,255&r]),e=new Uint8Array(r+4);e.set(i,0),e.set(n.pps,4),n.pps=e}return n}function Ee(e,t){let r=[];r[0]=t?23:39,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}function Se(e){const t=e.byteLength,r=new Uint8Array(4),i=(r[0]=t>>>24&255,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,new Uint8Array(t+4));return i.set(r,0),i.set(e,4),i}function X(e){return 31&e[0]}function Ue(e){return e===E}function xe(e){return(t=e)!==H&&t!==V&&!Ue(e);var t}function Be(e){return e===w}const Ae=e=>{let t=e,r=t.byteLength,i=new Uint8Array(r),n=0;for(let e=0;e{switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}};function ke(e){return(126&e[0])>>1}function I(e){return parseInt(e)===e}function D(e){if(I(e.length)){for(var t=0;t>4]+Ce[15&i])}return t.join("")}}),Fe={16:10,24:12,32:14},Ie=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],u=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],d=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Pe=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],De=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Le=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],ze=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Re=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Me=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Ne=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],Oe=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],Ge=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],He=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Ve=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],$e=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function je(e){for(var t=[],r=0;r>2][t%4]=s[t],this._Kd[e-r][t%4]=s[t];for(var a,o=0,l=n;l>16&255]<<24^u[a>>8&255]<<16^u[255&a]<<8^u[a>>24&255]^Ie[o]<<24,o+=1,8!=n)for(t=1;t>8&255]<<8^u[a>>16&255]<<16^u[a>>24&255]<<24,t=n/2+1;t>2][h=l%4]=s[t],this._Kd[e-d][h]=s[t++],l++}for(var d=1;d>24&255]^He[a>>16&255]^Ve[a>>8&255]^$e[255&a]},i.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],i=je(e),n=0;n<4;n++)i[n]^=this._Ke[0][n];for(var s=1;s>24&255]^De[i[(n+1)%4]>>16&255]^Le[i[(n+2)%4]>>8&255]^ze[255&i[(n+3)%4]]^this._Ke[s][n];i=r.slice()}for(var a,o=l(16),n=0;n<4;n++)a=this._Ke[t][n],o[4*n]=255&(u[i[n]>>24&255]^a>>24),o[4*n+1]=255&(u[i[(n+1)%4]>>16&255]^a>>16),o[4*n+2]=255&(u[i[(n+2)%4]>>8&255]^a>>8),o[4*n+3]=255&(u[255&i[(n+3)%4]]^a);return o},i.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],i=je(e),n=0;n<4;n++)i[n]^=this._Kd[0][n];for(var s=1;s>24&255]^Me[i[(n+3)%4]>>16&255]^Ne[i[(n+2)%4]>>8&255]^Oe[255&i[(n+1)%4]]^this._Kd[s][n];i=r.slice()}for(var a,o=l(16),n=0;n<4;n++)a=this._Kd[t][n],o[4*n]=255&(d[i[n]>>24&255]^a>>24),o[4*n+1]=255&(d[i[(n+3)%4]>>16&255]^a>>16),o[4*n+2]=255&(d[i[(n+2)%4]>>8&255]^a>>8),o[4*n+3]=255&(d[255&i[(n+1)%4]]^a);return o},o.prototype.encrypt=function(e){if((e=s(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=l(e.length),r=l(16),i=0;iNumber.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;0<=t;--t)this._counter[t]=e%256,e=parseInt(e/256)},c.prototype.setBytes=function(e){if(16!=(e=s(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},c.prototype.increment=function(){for(var e=15;0<=e;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};m.prototype.decrypt=m.prototype.encrypt=function(e){for(var t=s(e,!0),r=0;r>3)&&2<=t.data.length?32+((7&t.data[0])<<3)+((224&t.data[1])>>5):r:null},s.DecoderConfigDescriptor=function(e){s.Descriptor.call(this,4,e)},s.DecoderConfigDescriptor.prototype=new s.Descriptor,s.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},s.DecoderSpecificInfo=function(e){s.Descriptor.call(this,5,e)},s.DecoderSpecificInfo.prototype=new s.Descriptor,s.SLConfigDescriptor=function(e){s.Descriptor.call(this,6,e)},s.SLConfigDescriptor.prototype=new s.Descriptor,this}function n(){}function s(){}function B(e){this.stream=e||new r,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.onSidx=null,this.sidxSent=!1}a=new Date,o=4;var a,o,f={setLogLevel:function(e){o=e==this.debug?1:e==this.info?2:e==this.warn?3:(this.error,4)},debug:function(e,t){void 0===console.debug&&(console.debug=console.log),o<=1&&console.debug("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},log:function(e,t){this.debug(e.msg)},info:function(e,t){o<=2&&console.info("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},warn:function(e,t){o<=3&&console.warn("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},error:function(e,t){o<=4&&console.error("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)}},d=(f.getDurationString=function(e,t){var r;function i(e,t){for(var r=(""+e).split(".");r[0].length=this.getEndPosition()},u.prototype.readAnyInt=function(e,t){var r=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:r=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:r=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16,r=(r|=this.dataview.getUint8(this.position+1)<<8)|this.dataview.getUint8(this.position+2);break;case 4:r=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32,r|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,r}throw"Not enough bytes in buffer"},u.prototype.readUint8=function(){return this.readAnyInt(1,!1)},u.prototype.readUint16=function(){return this.readAnyInt(2,!1)},u.prototype.readUint24=function(){return this.readAnyInt(3,!1)},u.prototype.readUint32=function(){return this.readAnyInt(4,!1)},u.prototype.readUint64=function(){return this.readAnyInt(8,!1)},u.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",r=0;rthis._byteLength&&(this._byteLength=t);else{for(r<1&&(r=1);r=this._byteLength},l.prototype.mapUint8Array=function(e){this._realloc(+e);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.readInt32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Int32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Int16Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Int8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readUint32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Uint32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readUint16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Uint16Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readUint8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Uint8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readFloat64Array=function(e,t){e=null==e?this.byteLength-this.position/8:e;var r=new Float64Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readFloat32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Float32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt32=function(e){e=this._dataView.getInt32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readInt16=function(e){e=this._dataView.getInt16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},l.prototype.readUint32=function(e){e=this._dataView.getUint32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readUint16=function(e){e=this._dataView.getUint16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},l.prototype.readFloat32=function(e){e=this._dataView.getFloat32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readFloat64=function(e){e=this._dataView.getFloat64(this.position,null==e?this.endianness:e);return this.position+=8,e},l.endianness=0>16),this.writeUint8((65280&e)>>8),this.writeUint8(255&e)},l.prototype.adjustUint32=function(e,t){var r=this.position;this.seek(e),this.writeUint32(t),this.seek(r)},l.prototype.mapInt32Array=function(e,t){this._realloc(4*e);var r=new Int32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},l.prototype.mapInt16Array=function(e,t){this._realloc(2*e);var r=new Int16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},l.prototype.mapInt8Array=function(e){this._realloc(+e);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.mapUint32Array=function(e,t){this._realloc(4*e);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},l.prototype.mapUint16Array=function(e,t){this._realloc(2*e);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},l.prototype.mapFloat64Array=function(e,t){this._realloc(8*e);var r=new Float64Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=8*e,r},l.prototype.mapFloat32Array=function(e,t){this._realloc(4*e);var r=new Float32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},(r.prototype=new l(new ArrayBuffer,0,l.BIG_ENDIAN)).initialized=function(){var e;return-1i.byteLength){this.buffers.splice(r,1),r--;continue}f.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring")}else e.fileStart+e.byteLength<=i.fileStart||(e=this.reduceBuffer(e,0,i.fileStart-e.fileStart)),f.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(r,0,e),0===r&&(this.buffer=e);t=!1;break}if(e.fileStart"+this.buffer.byteLength+")"),!0))},r.prototype.findPosition=function(e,t,r){for(var i=null,n=-1,s=!0===e?0:this.bufferIndex;s=t?(f.debug("MultiBufferStream","Found position in existing buffer #"+n),n):-1},r.prototype.findEndContiguousBuf=function(e){var t,r,e=void 0!==e?e:this.bufferIndex,i=this.buffers[e];if(this.buffers.length>e+1)for(t=e+1;te.getEndPosition()?(e.seek(s),f.info("BoxParser","Not enough data in stream to parse the entire '"+l+"' box"),{code:b.ERR_NOT_ENOUGH_DATA,type:l,size:o,hdr_size:a,start:s}):t?{code:b.OK,type:l,size:o,hdr_size:a,start:s}:(b[l+"Box"]?i=new b[l+"Box"](o):"uuid"!==l?(f.warn("BoxParser","Unknown box type: '"+l+"'"),(i=new b.Box(l,o)).has_unparsed_data=!0):b.UUIDBoxes[n]?i=new b.UUIDBoxes[n](o):(f.warn("BoxParser","Unknown uuid type: '"+n+"'"),(i=new b.Box(l,o)).uuid=n,i.has_unparsed_data=!0),i.hdr_size=a,i.start=s,i.write===b.Box.prototype.write&&"mdat"!==i.type&&(f.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),i.parseDataAndRewind(e)),i.parse(e),(r=e.getPosition()-(i.start+i.size))<0?(f.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-r+" bytes), seeking forward"),e.seek(i.start+i.size)):0>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},b.SAMPLE_ENTRY_TYPE_VISUAL="Visual",b.SAMPLE_ENTRY_TYPE_AUDIO="Audio",b.SAMPLE_ENTRY_TYPE_HINT="Hint",b.SAMPLE_ENTRY_TYPE_METADATA="Metadata",b.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",b.SAMPLE_ENTRY_TYPE_SYSTEM="System",b.SAMPLE_ENTRY_TYPE_TEXT="Text",b.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},b.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},b.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},b.SampleEntry.prototype.parseFooter=function(e){b.ContainerBox.prototype.parse.call(this,e)},b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_HINT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT,"enct"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA,"encm"),b.createBoxCtor("a1lx",function(e){var t=16*(1+(1&e.readUint8()));this.layer_size=[];for(var r=0;r<3;r++)this.layer_size[r]=16==t?e.readUint16():e.readUint32()}),b.createBoxCtor("a1op",function(e){this.op_index=e.readUint8()}),b.createFullBoxCtor("auxC",function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),b.createBoxCtor("av1C",function(e){var t=e.readUint8();if(t>>7&!1)f.error("av1C marker problem");else if(this.version=127&t,1===this.version)if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=31&t,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=3&t,t=e.readUint8(),this.reserved_1=t>>5&7,0===this.reserved_1){if(this.initial_presentation_delay_present=t>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&t;else if(this.reserved_2=15&t,0!==this.reserved_2)return void f.error("av1C reserved_2 parsing problem");t=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(t)}else f.error("av1C reserved_1 parsing problem");else f.error("av1C version "+this.version+" not supported")}),b.createBoxCtor("avcC",function(e){var t,r;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=3&e.readUint8(),this.nb_SPS_nalus=31&e.readUint8(),r=this.size-this.hdr_size-6,this.SPS=[],t=0;t>7):"rICC"!==this.colour_type&&"prof"!==this.colour_type||(this.ICC_profile=e.readUint8Array(this.size-4))}),b.createFullBoxCtor("cprt",function(e){this.parseLanguage(e),this.notice=e.readCString()}),b.createFullBoxCtor("cslg",function(e){0===this.version&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),b.createFullBoxCtor("ctts",function(e){var t,r=e.readUint32();if(this.sample_counts=[],this.sample_offsets=[],0===this.version)for(t=0;t>6,this.bsid=t>>1&31,this.bsmod=(1&t)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=3&r|e>>5&7}),b.createBoxCtor("dec3",function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=7&t,this.ind_subs=[];for(var r=0;r>6,i.bsid=n>>1&31,i.bsmod=(1&n)<<4|s>>4&15,i.acmod=s>>1&7,i.lfeon=1&s,i.num_dep_sub=a>>1&15,0>12,e.readUint8Array(20)),t.push(r[n]),128&i)break}this.numMetadataBlocks=t.length+" ("+t.join(", ")+")"}),b.createBoxCtor("dimm",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("dmed",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dOps",function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t>6,this.general_tier_flag=(32&r)>>5,this.general_profile_idc=31&r,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=4095&e.readUint16(),this.parallelismType=3&e.readUint8(),this.chroma_format_idc=3&e.readUint8(),this.bit_depth_luma_minus8=7&e.readUint8(),this.bit_depth_chroma_minus8=7&e.readUint8(),this.avgFrameRate=e.readUint16(),r=e.readUint8(),this.constantFrameRate=r>>6,this.numTemporalLayers=(13&r)>>3,this.temporalIdNested=(4&r)>>2,this.lengthSizeMinusOne=3&r,this.nalu_arrays=[];for(var t,r,i=e.readUint8(),n=0;n>7,s.nalu_type=63&r,e.readUint16()),o=0;o>4&15,this.length_size=15&t,t=e.readUint8(),this.base_offset_size=t>>4&15,1===this.version||2===this.version?this.index_size=15&t:this.index_size=0,this.items=[],0);if(this.version<2)r=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";r=e.readUint32()}for(var i=0;i>7,this.axis=1&e}),b.createFullBoxCtor("infe",function(e){if(0!==this.version&&1!==this.version||(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),1===this.version)return this.extension_type=e.readString(4),f.warn("BoxParser","Cannot parse extension type"),void e.seek(this.start+this.size);2<=this.version&&(2===this.version?this.item_ID=e.readUint16():3===this.version&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),"mime"===this.item_type?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):"uri "===this.item_type&&(this.item_uri_type=e.readCString()))}),b.createFullBoxCtor("ipma",function(e){var t,r;for(entry_count=e.readUint32(),this.associations=[],t=0;t>7==1,1&this.flags?a.property_index=(127&s)<<8|e.readUint8():a.property_index=127&s}}}),b.createFullBoxCtor("iref",function(e){var t;for(this.references=[];e.getPosition()>7,i.assignment_type=127&n,i.assignment_type){case 0:i.grouping_type=e.readString(4);break;case 1:i.grouping_type=e.readString(4),i.grouping_type_parameter=e.readUint32();break;case 2:case 3:break;case 4:i.sub_track_id=e.readUint32();break;default:f.warn("BoxParser","Unknown leva assignement type")}}}),b.createBoxCtor("lsel",function(e){this.layer_id=e.readUint16()}),b.createBoxCtor("maxr",function(e){this.period=e.readUint32(),this.bytes=e.readUint32()}),b.createBoxCtor("mdcv",function(e){this.display_primaries=[],this.display_primaries[0]={},this.display_primaries[0].x=e.readUint16(),this.display_primaries[0].y=e.readUint16(),this.display_primaries[1]={},this.display_primaries[1].x=e.readUint16(),this.display_primaries[1].y=e.readUint16(),this.display_primaries[2]={},this.display_primaries[2].x=e.readUint16(),this.display_primaries[2].y=e.readUint16(),this.white_point={},this.white_point.x=e.readUint16(),this.white_point.y=e.readUint16(),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),b.createFullBoxCtor("mdhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),b.createFullBoxCtor("mehd",function(e){1&this.flags&&(f.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),b.createFullBoxCtor("meta",function(e){this.boxes=[],b.ContainerBox.prototype.parse.call(this,e)}),b.createFullBoxCtor("mfhd",function(e){this.sequence_number=e.readUint32()}),b.createFullBoxCtor("mfro",function(e){this._size=e.readUint32()}),b.createFullBoxCtor("mvhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),b.createBoxCtor("npck",function(e){this.packetssent=e.readUint32()}),b.createBoxCtor("nump",function(e){this.packetssent=e.readUint64()}),b.createFullBoxCtor("padb",function(e){var t=e.readUint32();this.padbits=[];for(var r=0;r>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var r=e.readUint8(),i=0;i>7,this.num_leading_samples=127&e}),b.createSampleGroupCtor("rash",function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)f.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t>4,this.skip_byte_block=15&t,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=b.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),b.createSampleGroupCtor("stsa",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("sync",function(e){e=e.readUint8();this.NAL_unit_type=63&e}),b.createSampleGroupCtor("tele",function(e){e=e.readUint8();this.level_independently_decodable=e>>7}),b.createSampleGroupCtor("tsas",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("tscl",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("vipr",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createFullBoxCtor("sbgp",function(e){this.grouping_type=e.readString(4),1===this.version?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),r=0;r>6,this.sample_depends_on[i]=t>>4&3,this.sample_is_depended_on[i]=t>>2&3,this.sample_has_redundancy[i]=3&t}),b.createFullBoxCtor("senc"),b.createFullBoxCtor("sgpd",function(e){this.grouping_type=e.readString(4),f.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=e.readUint32():this.default_length=0,2<=this.version&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),r=0;r>31&1,i.referenced_size=2147483647&n,i.subsegment_duration=e.readUint32(),n=e.readUint32(),i.starts_with_SAP=n>>31&1,i.SAP_type=n>>28&7,i.SAP_delta_time=268435455&n}}),b.SingleItemTypeReferenceBox=function(e,t,r,i){b.Box.call(this,e,t),this.hdr_size=r,this.start=i},b.SingleItemTypeReferenceBox.prototype=new b.Box,b.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var r=0;r>4&15,this.sample_sizes[t+1]=15&i}else if(8===this.field_size)for(t=0;t>4&15,this.default_skip_byte_block=15&t),this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=b.parseHex16(e),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),b.createFullBoxCtor("tfdt",function(e){1==this.version?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),b.createFullBoxCtor("tfhd",function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_FLAGS?this.default_sample_flags=e.readUint32():this.default_sample_flags=0}),b.createFullBoxCtor("tfra",function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=3&t,this.entries=[];for(var r=e.readUint32(),i=0;i>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),b.createBoxCtor("tmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("tmin",function(e){this.time=e.readUint32()}),b.createBoxCtor("totl",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpay",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpyl",function(e){this.bytessent=e.readUint64()}),b.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},b.createTrackGroupCtor("msrc"),b.TrackReferenceTypeBox=function(e,t,r,i){b.Box.call(this,e,t),this.hdr_size=r,this.start=i},b.TrackReferenceTypeBox.prototype=new b.Box,b.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},b.trefBox.prototype.parse=function(e){for(var t;e.getPosition()(t+=4)&&this.flags&b.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var r=0;r/g,">").replace(/"/g,""").replace(/'/g,"'")}),b.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(e){this.system_id=b.parseHex16(e);var t=e.readUint32();0>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=1&t,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8()):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=15&t,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=1&t),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)}),b.createBoxCtor("vttC",function(e){this.text=e.readString(this.size-this.hdr_size)}),b.createFullBoxCtor("vvcC",function(e){var t,r={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<>=1;e=e+b.decimalToHex(r,0)+".",0===this.hvcC.general_tier_flag?e+="L":e+="H",e+=this.hvcC.general_level_idc;var n=!1,s="";for(i=5;0<=i;i--)(this.hvcC.general_constraint_indicator[i]||n)&&(s="."+b.decimalToHex(this.hvcC.general_constraint_indicator[i],0)+s,n=!0);e+=s}return e},b.vvc1SampleEntry.prototype.getCodec=b.vvi1SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){e+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?e+=".H":e+=".L",e+=this.vvcC.general_level_idc;var t="";if(this.vvcC.general_constraint_info){var r,i=[],n=0,n=(n|=this.vvcC.ptl_frame_only_constraint<<7)|this.vvcC.ptl_multilayer_enabled<<6;for(l=0;l>2&63,i.push(n),n&&(r=l),n=this.vvcC.general_constraint_info[l]>>2&3;if(void 0===r)t=".CA";else{for(var t=".C",s="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",a=0,o=0,l=0;l<=r;++l)for(a=a<<8|i[l],o+=8;5<=o;)t+=s[a>>o-5&31],a&=(1<<(o-=5))-1;o&&(t+=s[31&(a<<=5-o)])}}e+=t}return e},b.mp4aSampleEntry.prototype.getCodec=function(){var e,t,r=b.SampleEntry.prototype.getCodec.call(this);return this.esds&&this.esds.esd?(e=this.esds.esd.getOTI(),t=this.esds.esd.getAudioConfig(),r+"."+b.decimalToHex(e)+(t?"."+t:"")):r},b.stxtSampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},b.vp08SampleEntry.prototype.getCodec=b.vp09SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level,r=this.vpcC.bitDepth;return e+".0"+this.vpcC.profile+"."+(t=0==t?"00":t)+"."+(r=8==r?"08":r)},b.av01SampleEntry.prototype.getCodec=function(){var e,t=b.SampleEntry.prototype.getCodec.call(this),r=this.av1C.seq_level_idx_0;return 2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?e=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(e=1===this.av1C.high_bitdepth?"10":"08"),t+"."+this.av1C.seq_profile+"."+(r=r<10?"0"+r:r)+(this.av1C.seq_tier_0?"H":"M")+"."+e},b.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),f.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>d?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),"uuid"===this.type&&e.writeUint8Array(this.uuid),this.size>d&&e.writeUint64(this.size)},b.FullBox.prototype.writeHeader=function(e){this.size+=4,b.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},b.Box.prototype.write=function(e){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},b.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;tt?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(e),1===this.version?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},b.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},b.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},b.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},b.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&b.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&b.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&b.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&b.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t=i.samples.length)&&(f.info("ISOFile","Sending fragmented data on track #"+r.id+" for samples ["+Math.max(0,i.nextSample-r.nb_samples)+","+(i.nextSample-1)+"]"),f.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(r.id,r.user,r.segmentStream.buffer,i.nextSample,e||i.nextSample>=i.samples.length),r.segmentStream=null,r!==this.fragmentedTracks[t]))break}if(null!==this.onSamples)for(t=0;t=i.samples.length)&&(f.debug("ISOFile","Sending samples on track #"+s.id+" for sample "+i.nextSample),this.onSamples&&this.onSamples(s.id,s.user,s.samples),s.samples=[],s!==this.extractedTracks[t]))break}}}},B.prototype.getBox=function(e){e=this.getBoxes(e,!0);return e.length?e[0]:null},B.prototype.getBoxes=function(e,t){var r=[];return B._sweep.call(this,e,r,t),r},B._sweep=function(e,t,r){for(var i in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&r)return;B._sweep.call(this.boxes[i],e,t,r)}},B.prototype.getTrackSamplesInfo=function(e){e=this.getTrackById(e);return e?e.samples:void 0},B.prototype.getTrackSample=function(e,t){e=this.getTrackById(e);return this.getSample(e,t)},B.prototype.releaseUsedSamples=function(e,t){var r=0,i=this.getTrackById(e);i.lastValidSample||(i.lastValidSample=0);for(var n=i.lastValidSample;ne*n.timescale){l=i-1;break}t&&n.is_sync&&(o=i)}for(t&&(l=o),e=r.samples[l].cts,r.nextSample=l;r.samples[l].alreadyRead===r.samples[l].size&&r.samples[l+1];)l++;return s=r.samples[l].offset+r.samples[l].alreadyRead,f.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+f.getDurationString(e,a)+" and offset: "+s),{offset:s,time:e/a}},B.prototype.seek=function(e,t){var r,i,n=this.moov,s={offset:1/0,time:1/0};if(this.moov){for(i=0;i=i[n].last_sample_in_run&&(i[n].last_sample_in_run<0&&(i[n].last_sample_in_run=0),i[n].entry_index++,i[n].entry_index<=i[n].sbgp.entries.length-1&&(i[n].last_sample_in_run+=i[n].sbgp.entries[i[n].entry_index].sample_count)),i[n].entry_index<=i[n].sbgp.entries.length-1?t.sample_groups[n].group_description_index=i[n].sbgp.entries[i[n].entry_index].group_description_index:t.sample_groups[n].group_description_index=-1,0!==t.sample_groups[n].group_description_index&&(a=i[n].fragment_description||i[n].description,0>16)-1:t.sample_groups[n].group_description_index-1,a&&0<=s&&(t.sample_groups[n].description=a.entries[s])):a&&2<=a.version&&0>16&1),u.is_leading=c>>26&3,u.depends_on=c>>24&3,u.is_depended_on=c>>22&3,u.has_redundancy=c>>20&3,u.degradation_priority=65535&c;var c=!!(l.tfhd.flags&b.TFHD_FLAG_BASE_DATA_OFFSET),m=!!(l.tfhd.flags&b.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),_=!!(f.flags&b.TRUN_FLAGS_DATA_OFFSET),c=c?l.tfhd.base_data_offset:m||0===y?o.start:s;u.offset=0===y&&0===p?_?c+f.data_offset:c:s,s=u.offset+u.size,(0d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},b.FullBox.prototype.printHeader=function(e){this.size+=4,b.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},b.Box.prototype.print=function(e){this.printHeader(e)},b.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t,r=0;r>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},b.tkhdBox.prototype.print=function(e){b.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var h=function(e,t){e=void 0===e||e,t=new B(t);return t.discardMdatData=!e,t};t.createFile=h});function Ye(l){function n(){t&&(t.abort(),t=null)}let i=[],d=[],s={},t=new AbortController,r=null,a=null,e=null,o=null,h=null,u=null,f=!1,p=!1,c=!1,m=!1,_=null,g=null,y=null,b=[],v=0,w=0,E=null,S=null,U=0,x=0,B=!1,A=!1,T=()=>{var e=function(){{var r=Q;let t="";if("object"==typeof r)try{t=JSON.stringify(r),t=JSON.parse(t)}catch(e){t=r}else t=r;return t}}();return{debug:e.debug,debugLevel:e.debugLevel,debugUuid:e.debugUuid,useOffscreen:e.useOffscreen,useWCS:e.useWCS,videoBuffer:e.videoBuffer,videoBufferDelay:e.videoBufferDelay,openWebglAlignment:e.openWebglAlignment,playType:e.playType,hasAudio:e.hasAudio,hasVideo:e.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:e.playbackForwardMaxRateDecodeIFrame,playbackIsCacheBeforeDecodeForFpsRender:e.playbackConfig.isCacheBeforeDecodeForFpsRender,sampleRate:0,networkDelay:e.networkDelay,visibility:!0,useSIMD:e.useSIMD,isRecording:!1,recordType:e.recordType,isNakedFlow:e.isNakedFlow,checkFirstIFrame:e.checkFirstIFrame,audioBufferSize:1024,isCrypto:e.isCrypto,cryptoKey:e.cryptoKey,cryptoIV:e.cryptoIV,isHls265:!1,isFlv:e.isFlv,isFmp4:e.isFmp4,isMpeg4:e.isMpeg4}},k=("VideoEncoder"in self&&(s={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(t){var e;s.isEmitInfo||(I.debug.log("worker","Webcodecs Video Decoder initSize"),postMessage({cmd:ee,w:t.codedWidth,h:t.codedHeight}),s.isEmitInfo=!0,s.offscreenCanvas=new OffscreenCanvas(t.codedWidth,t.codedHeight),s.offscreenCanvasCtx=s.offscreenCanvas.getContext("2d")),"function"==typeof t.createImageBitmap?t.createImageBitmap().then(e=>{s.offscreenCanvasCtx.drawImage(e,0,0,t.codedWidth,t.codedHeight);e=s.offscreenCanvas.transferToImageBitmap();postMessage({cmd:R,buffer:e,delay:I.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100)}):(s.offscreenCanvasCtx.drawImage(t,0,0,t.codedWidth,t.codedHeight),e=s.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:R,buffer:e,delay:I.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100))},error:function(e){I.debug.error("worker","VideoDecoder error",e)}}),decode:function(e,t,r){var i=e[0]>>4==1;if(s.hasInit){const r=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:i?"key":"delta"});s.decoder.decode(r)}else if(i&&0===e[1]){const t=15&e[0],r=(postMessage({cmd:re,code:t}),function(e){let r=e.subarray(1,4),i="avc1.";for(let t=0;t<3;t++){let e=r[t].toString(16);e.length<2&&(e="0"+e),i+=e}return{codec:i,description:e}}(e.slice(5)));postMessage({cmd:ie,buffer:e,codecId:t},[e.buffer]),s.decoder.configure(r),s.hasInit=!0}},reset(){s.hasInit=!1,s.isEmitInfo=!1,s.offscreenCanvas=null,s.offscreenCanvasCtx=null}}),{init(){k.lastBuf=null,k.vps=null,k.sps=null,k.pps=null,k.streamType=null,k.localDts=0,k.isSendSeqHeader=!1},destroy(){k.lastBuf=null,k.vps=null,k.sps=null,k.pps=null,k.streamType=null,k.localDts=0,k.isSendSeqHeader=!1},dispatch(e){e=new Uint8Array(e);k.extractNALu$2(e)},getNaluDts(){var e=k.localDts;return k.localDts=k.localDts+40,e},getNaluAudioDts(){var e=I._opt.sampleRate,t=I._opt.audioBufferSize;return k.localDts+parseInt(t/e*1e3)},extractNALu(e){let t,r,i=0,n=e.byteLength,s=0,a=[];for(;i>1)!==$&&r!==he&&r!==j||(t=de)),t}(e)),k.streamType===le){const t=k.handleAddNaluStartCode(e),r=k.extractNALu(t);if(0===r.length)I.debug.warn("worker","handleVideoNalu","naluList.length === 0");else{const i=[];if(r.forEach(e=>{var t=X(e);t===V||t===H?k.handleVideoH264Nalu(e):xe(t)&&i.push(e)}),1===i.length)k.handleVideoH264Nalu(i[0]);else{const e=function(t){if(0===t.length)return!1;var r=X(t[0]);for(let e=1;e{k.handleVideoH264Nalu(e)})}}}else k.streamType===de&&(ke(e)===j?k.extractH265PPS(e):k.handleVideoH265Nalu(e))},extractH264PPS(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{Ue(X(e))?k.extractH264SEI(e):k.handleVideoH264Nalu(e)})},extractH265PPS(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{39===ke(e)?k.extractH265SEI(e):k.handleVideoH265Nalu(e)})},extractH264SEI(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{k.handleVideoH264Nalu(e)})},extractH265SEI(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{k.handleVideoH265Nalu(e)})},handleAddNaluStartCode(e){const t=[0,0,0,1],r=new Uint8Array(e.length+t.length);return r.set(t),r.set(e,t.length),r},handleVideoH264Nalu(e){var i,t,r,n=X(e);switch(n){case H:k.sps=e;break;case V:k.pps=e}if(k.isSendSeqHeader)xe(n)?(i=Be(n),t=k.getNaluDts(),i&&I.calcIframeIntervalTimestamp(t),I.calcNetworkDelay(t),r=function(e){let t=[];t[0]=i?23:39,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e),I.decode(r,{type:2,ts:t,isIFrame:i,cts:0})):I.debug.warn("work","handleVideoH264Nalu Avc Seq Head is "+n);else if(k.sps&&k.pps){k.isSendSeqHeader=!0;const e=function(){var{sps:e,pps:t}={sps:k.sps,pps:k.pps};const r=[23,0,0,0,0,1,66,0,30,255];return r[0]=23,r[6]=e[1],r[7]=e[2],r[8]=e[3],r[10]=225,r[11]=e.byteLength>>8&255,r[12]=255&e.byteLength,r.push(...e,1,t.byteLength>>8&255,255&t.byteLength,...t),new Uint8Array(r)}();I.decode(e,{type:2,ts:0,isIFrame:!0,cts:0})}},handleVideoH264NaluList(e,t,r){var i,n;k.isSendSeqHeader?(i=k.getNaluDts(),I.calcNetworkDelay(i),n=Ee(e.reduce((e,t)=>{const r=Se(e),i=Se(t),n=new Uint8Array(r.byteLength+i.byteLength);return n.set(r,0),n.set(i,r.byteLength),n}),t),I.decode(n,{type:2,ts:i,isIFrame:t,cts:0}),I.debug.log("worker",`handleVideoH264NaluList list size is ${e.length} package length is ${n.byteLength} isIFrame is ${t},nalu type is ${r}, dts is `+i)):I.debug.warn("worker","handleVideoH264NaluList isSendSeqHeader is false")},handleVideoH265Nalu(e){var i,t,r=ke(e);switch(r){case $:k.vps=e;break;case he:k.sps=e;break;case j:k.pps=e}if(k.isSendSeqHeader)32<=r&&r<=40?I.debug.warn("work","handleVideoH265Nalu HevcSeqHead is "+r):(i=16<=r&&r<=21,r=k.getNaluDts(),I.calcNetworkDelay(r),t=function(e){let t=[];t[0]=i?28:44,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e),i&&I.calcIframeIntervalTimestamp(r),I.decode(t,{type:2,ts:r,isIFrame:i,cts:0}));else if(k.vps&&k.sps&&k.pps){k.isSendSeqHeader=!0;const e=function(e){var{vps:e,pps:t,sps:r}=e,i={configurationVersion:1},n=(e=>{let t=Ae(e),r=new q(t);return r.readByte(),r.readByte(),r.readBits(4),r.readBits(2),r.readBits(6),{num_temporal_layers:r.readBits(3)+1,temporal_id_nested:r.readBool()}})(e),s=(e=>{let t=Ae(e),s=new q(t),r=(s.readByte(),s.readByte(),0),i=0,n=0,a=0;s.readBits(4);var o=s.readBits(3);s.readBool();let l=s.readBits(2),d=s.readBool(),h=s.readBits(5),u=s.readByte(),f=s.readByte(),p=s.readByte(),c=s.readByte(),m=s.readByte(),_=s.readByte(),g=s.readByte(),z=s.readByte(),R=s.readByte(),M=s.readByte(),y=s.readByte(),b=[],N=[];for(let e=0;e{let t=Ae(e),r=new q(t),i=(r.readByte(),r.readByte(),r.readUEG(),r.readUEG(),r.readBool(),r.readBool(),r.readBits(3),r.readBool(),r.readBool(),r.readUEG(),r.readUEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool()&&r.readUEG(),r.readSEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool(),r.readBool(),r.readBool()),n=r.readBool(),s=1;return n&&i?s=0:n?s=3:i&&(s=2),{parallelismType:s}})(t),i=Object.assign(i,n,s,a);let o=23+(5+e.byteLength)+(5+r.byteLength)+(5+t.byteLength),l=new Uint8Array(o);l[0]=1,l[1]=(3&i.general_profile_space)<<6|(i.general_tier_flag?1:0)<<5|31&i.general_profile_idc,l[2]=i.general_profile_compatibility_flags_1||0,l[3]=i.general_profile_compatibility_flags_2||0,l[4]=i.general_profile_compatibility_flags_3||0,l[5]=i.general_profile_compatibility_flags_4||0,l[6]=i.general_constraint_indicator_flags_1||0,l[7]=i.general_constraint_indicator_flags_2||0,l[8]=i.general_constraint_indicator_flags_3||0,l[9]=i.general_constraint_indicator_flags_4||0,l[10]=i.general_constraint_indicator_flags_5||0,l[11]=i.general_constraint_indicator_flags_6||0,l[12]=60,l[13]=240|(3840&i.min_spatial_segmentation_idc)>>8,l[14]=255&i.min_spatial_segmentation_idc,l[15]=252|3&i.parallelismType,l[16]=252|3&i.chroma_format_idc,l[17]=248|7&i.bit_depth_luma_minus8,l[18]=248|7&i.bit_depth_chroma_minus8,l[19]=0,l[20]=0,l[21]=(3&i.constant_frame_rate)<<6|(7&i.num_temporal_layers)<<3|(i.temporal_id_nested?1:0)<<2|3,l[22]=3,l[23]=128|$,l[24]=0,l[25]=1,l[26]=(65280&e.byteLength)>>8,l[27]=(255&e.byteLength)>>0,l.set(e,28),l[23+(5+e.byteLength)+0]=128|he,l[23+(5+e.byteLength)+1]=0,l[23+(5+e.byteLength)+2]=1,l[23+(5+e.byteLength)+3]=(65280&r.byteLength)>>8,l[23+(5+e.byteLength)+4]=(255&r.byteLength)>>0,l.set(r,23+(5+e.byteLength)+5),l[23+(5+e.byteLength+5+r.byteLength)+0]=128|j,l[23+(5+e.byteLength+5+r.byteLength)+1]=0,l[23+(5+e.byteLength+5+r.byteLength)+2]=1,l[23+(5+e.byteLength+5+r.byteLength)+3]=(65280&t.byteLength)>>8,l[23+(5+e.byteLength+5+r.byteLength)+4]=(255&t.byteLength)>>0,l.set(t,23+(5+e.byteLength+5+r.byteLength)+5);const d=[28,0,0,0,0],h=new Uint8Array(d.length+l.byteLength);return h.set(d,0),h.set(l,d.length),h}({vps:k.vps,sps:k.sps,pps:k.pps});I.decode(e,{type:2,ts:0,isIFrame:!0,cts:0})}}}),C={LOG_NAME:"worker fmp4Demuxer",mp4Box:K.createFile(),offset:0,videoTrackId:null,audioTrackId:null,isHevc:!1,listenMp4Box(){C.mp4Box.onReady=C.onReady,C.mp4Box.onError=C.onError,C.mp4Box.onSamples=C.onSamples},_getSeqHeader(t){const r=C.mp4Box.getTrackById(t.id);for(const t of r.mdia.minf.stbl.stsd.entries)if(t.avcC||t.hvcC){const r=new K.DataStream(void 0,0,K.DataStream.BIG_ENDIAN);let e=[];e=t.avcC?(t.avcC.write(r),[23,0,0,0,0]):(C.isHevc=!0,t.hvcC.write(r),[28,0,0,0,0]);const i=new Uint8Array(r.buffer,8),n=new Uint8Array(e.length+i.length);return n.set(e,0),n.set(i,e.length),n}return null},onReady(i){I.debug.log(C.LOG_NAME,"onReady()",i);const n=i.videoTracks[0],e=i.audioTracks[0];if(n){C.videoTrackId=n.id;const i=C._getSeqHeader(n);i&&(I.debug.log(C.LOG_NAME,"seqHeader"),I.decodeVideo(i,0,!0,0)),C.mp4Box.setExtractionOptions(n.id)}if(e){C.audioTrackId=e.id;const i=e.audio||{},n=ce.indexOf(i.sample_rate),s=e.codec.replace("mp4a.40.","");C.mp4Box.setExtractionOptions(e.id);var t=function(){var{profile:e,sampleRate:t,channel:r}={profile:parseInt(s,10),sampleRate:n,channel:i.channel_count};return new Uint8Array([175,0,e<<3|(14&t)>>1,(1&t)<<7|r<<3])}();I.debug.log(C.LOG_NAME,"aacADTSHeader"),I.decodeAudio(t,0)}C.mp4Box.start()},onError(e){I.debug.error(C.LOG_NAME,"mp4Box onError",e)},onSamples(e,t,r){if(e===C.videoTrackId)for(const e of r){const t=e.data,r=e.is_sync,n=1e3*e.cts/e.timescale;e.duration,e.timescale,r&&I.calcIframeIntervalTimestamp(n);var i=(C.isHevc?function(e,t){let r=[];r[0]=t?28:44,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}:Ee)(t,r);I.decode(i,{type:2,ts:n,isIFrame:r,cts:0})}else if(e===C.audioTrackId)for(const e of r){const t=e.data,r=1e3*e.cts/e.timescale,s=(e.duration,e.timescale,new Uint8Array(t.byteLength+2));s.set([175,1],0),s.set(t,2),I.decode(s,{type:1,ts:r,isIFrame:!1,cts:0})}else I.debug.warn(C.LOG_NAME,"onSamples() trackId error",e)},dispatch(e){let t=e;"string"!=typeof e?"object"==typeof e?(t.buffer.fileStart=C.offset,C.offset+=t.byteLength,C.mp4Box.appendBuffer(t.buffer)):I.debug.warn(C.LOG_NAME,"dispatch()","data is not object",e):I.debug.warn(C.LOG_NAME,"dispatch()","data is string",e)},destroy(){C.mp4Box&&(C.mp4Box.flush(),C.mp4Box=null),C.offset=0,C.videoTrackId=null,C.audioTrackId=null,C.isHevc=!1}},F={LOG_NAME:"worker mpeg4Demuxer",lastBuffer:new Uint8Array(0),parsedOffset:0,firstStartCodeOffset:0,secondStartCodeOffset:0,state:"init",hasInitVideoCodec:!1,localDts:0,dispatch(e){e=new Uint8Array(e);F.extractNALu(e)},destroy(){F.lastBuffer=new Uint8Array(0),F.parsedOffset=0,F.firstStartCodeOffset=0,F.secondStartCodeOffset=0,F.state="init",F.hasInitVideoCodec=!1,F.localDts=0},extractNALu(e){if(!e||e.byteLength<1)I.debug.warn(F.LOG_NAME,"extractNALu() buffer error",e);else{const t=new Uint8Array(F.lastBuffer.length+e.length);for(t.set(F.lastBuffer,0),t.set(new Uint8Array(e),F.lastBuffer.length),F.lastBuffer=t;;){if("init"===F.state){let e=!1;for(;4<=F.lastBuffer.length-F.parsedOffset;)if(0===F.lastBuffer[F.parsedOffset])if(0===F.lastBuffer[F.parsedOffset+1])if(1===F.lastBuffer[F.parsedOffset+2]){if(182===F.lastBuffer[F.parsedOffset+3]){F.state="findFirstStartCode",F.firstStartCodeOffset=F.parsedOffset,F.parsedOffset+=4,e=!0;break}F.parsedOffset++}else F.parsedOffset++;else F.parsedOffset++;else F.parsedOffset++;if(e)continue;break}if("findFirstStartCode"===F.state){let e=!1;for(;4<=F.lastBuffer.length-F.parsedOffset;)if(0===F.lastBuffer[F.parsedOffset])if(0===F.lastBuffer[F.parsedOffset+1])if(1===F.lastBuffer[F.parsedOffset+2]){if(182===F.lastBuffer[F.parsedOffset+3]){F.state="findSecondStartCode",F.secondStartCodeOffset=F.parsedOffset,F.parsedOffset+=4,e=!0;break}F.parsedOffset++}else F.parsedOffset++;else F.parsedOffset++;else F.parsedOffset++;if(e)continue;break}if("findSecondStartCode"===F.state){if(!(0{a&&a(0);var e=JSON.stringify({demuxBufferDelay:I.getVideoBufferLength(),audioDemuxBufferDelay:I.getAudioBufferLength(),flvBufferByteLength:I.getFlvBufferLength(),netBuf:I.networkDelay||0,pushLatestDelay:I.pushLatestDelay||0,isDropping:ye(I.dropping)||ye(I.isPushDropping),isStreamTsMoreThanLocal:m});postMessage({cmd:M,type:"streamStats",value:e})},1e3)},stopStreamRateAndStatsInterval:function(){e&&(clearInterval(e),e=null)},useOffscreen:function(){return I._opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},getDelay:function(e){return!e||I._opt.hasVideo&&!c?-1:(I.preDelayTimestamp&&I.preDelayTimestamp>e?1e3 timestamp is ${e} more than ${I.preDelayTimestamp-e}ms`):I.firstTimestamp?e&&(t=Date.now()-I.startTimestamp,(r=e-I.firstTimestamp)<=t?(m=!1,I.delay=t-r):(m=!0,I.delay=r-t)):(I.firstTimestamp=e,I.startTimestamp=Date.now(),I.delay=-1),I.preDelayTimestamp=e,I.delay);var t,r},getDelayNotUpdateDelay:function(t){if(!t||I._opt.hasVideo&&!c)return-1;if(I.preDelayTimestamp&&1e3 timestamp is ${t} more than ${I.preDelayTimestamp-t}ms`),-1;if(I.firstTimestamp){let e=-1;var r;return t&&(r=Date.now()-I.startTimestamp,t=t-I.firstTimestamp,e=t<=r?(m=!1,r-t):(m=!0,t-r)),e}return-1},resetDelay:function(){I.firstTimestamp=null,I.startTimestamp=null,I.delay=-1},resetAllDelay:function(){I.resetDelay(),I.preDelayTimestamp=null},doDecode:function(e){I._opt.useWCS&&I.useOffscreen()&&2===e.type&&s.decode?s.decode(e.payload,e.ts,e.cts):e.decoder.decode(e.payload,e.ts,e.isIFrame,e.cts)},init:function(){I.debug.log("worker","init and opt is",I._opt);const t=I._opt.playType===L,r="playbackTF"===I._opt.playType;if(k.init(),I.isPlayer=t,I.isPlayback=r,I.isPlaybackCacheBeforeDecodeForFpsRender())I.debug.log("worker","playback and playbackIsCacheBeforeDecodeForFpsRender is true");else{const r=()=>{let e=null;if(i.length)if(I.isPushDropping)I.debug.warn("worker","loop() isPushDropping is true and bufferList length is "+i.length);else if(I.dropping){for(e=i.shift(),I.debug.warn("worker",`loop() dropBuffer is dropping and isIFrame ${e.isIFrame} and delay is ${I.delay} and bufferlist is `+i.length);!e.isIFrame&&i.length;)e=i.shift();const t=I.getDelayNotUpdateDelay(e.ts);e.isIFrame&&t<=I.getNotDroppingDelayTs()&&(I.debug.log("worker","loop() is dropping = false, is iFrame"),I.dropping=!1,I.doDecode(e))}else if(e=i[0],-1===I.getDelay(e.ts)||I.isPlayback)I.isPlayer&&I.debug.log("worker","loop() common dumex delay is -1 ,data.ts is",e.ts),i.shift(),I.doDecode(e);else if(I.delay>I._opt.videoBuffer+I._opt.videoBufferDelay&&t)I.hasIframeInBufferList()?(I.debug.log("worker",`delay is ${I.delay}, set dropping is true`),I.resetAllDelay(),I.dropping=!0):(i.shift(),I.doDecode(e));else for(;i.length;){if(e=i[0],!(I.getDelay(e.ts)>I._opt.videoBuffer)){I.delay<0&&I.debug.warn("worker",`loop() do not decode and delay is ${I.delay}, bufferList is `+i.length);break}i.shift(),I.doDecode(e)}else-1!==I.delay&&I.debug.log("worker","loop() bufferList is empty and reset delay"),I.resetAllDelay()};I.stopId=setInterval(()=>{var e=(new Date).getTime(),e=e-(_=_||e);100{var e;i.length&&(e=i.shift(),I.doDecode(e))},t=(e(),Math.ceil(1e3/(I.streamFps*I._opt.playbackRate)));I.debug.log("worker",`playbackCacheLoop fragDuration is ${t}, streamFps is ${I.streamFps}, playbackRate is `+I._opt.playbackRate),I.stopId=setInterval(e,t)},close:function(){I.debug.log("worker","close"),I.isDestroyed=!0,I.stopStreamRateAndStatsInterval(),I.stopId&&(clearInterval(I.stopId),I.stopId=null),P&&(P.clear&&P.clear(),P=null),D&&(D.clear&&D.clear(),D=null),a=null,_=null,m=!1,s&&(s.reset&&s.reset(),s=null),I.firstTimestamp=null,I.startTimestamp=null,I.networkDelay=0,I.streamFps=null,I.streamAudioFps=null,I.streamVideoFps=null,I.delay=-1,I.pushLatestDelay=-1,I.preDelayTimestamp=null,I.dropping=!1,I.isPushDropping=!1,I.isPlayer=!0,I.isPlayback=!1,I._opt=T(),I.webglObj&&(I.webglObj.destroy(),I.offscreenCanvas.removeEventListener("webglcontextlost",I.onOffscreenCanvasWebglContextLost),I.offscreenCanvas.removeEventListener("webglcontextrestored",I.onOffscreenCanvasWebglContextRestored),I.offscreenCanvas=null,I.offscreenCanvasGL=null,I.offscreenCanvasCtx=null),i=[],d=[],n(),o=null,r&&(r.close(1e3,"Client disconnecting"),r=null),h=null,u=null,f=!1,p=!1,c=!1,B=!1,A=!1,b=[],v=0,w=0,g=null,y=null,E=null,S=null,U=0,x=0,k.destroy(),C.destroy(),F.destroy(),postMessage({cmd:"closeEnd"})},pushBuffer:function(e,t){if(1===t.type&&pe(e))I.decodeAudio(e,t.ts);else{if(I.isPlayer&&02*U-5&&I.debug.warn("worker",`pushBuffer video + ts is ${t.ts}, preTimestamp is ${S}, + diff is ${e} and preTimestampDuration is ${U} + maybe trigger black screen or flower screen + `)}if(I.isPlayer&&0e&&I.delay{2===e.type&&(t+=1)}),t},hasIframeInBufferList:()=>i.some(e=>2===e.type&&e.isIFrame),getNotDroppingDelayTs:()=>I._opt.videoBuffer+I._opt.videoBufferDelay/2,getAudioBufferLength(){let t=0;return i.forEach(e=>{1===e.type&&(t+=1)}),t},getFlvBufferLength(){let e=0;return o&&o.buffer&&(e=o.buffer.byteLength),e=I._opt.isNakedFlow&&k.lastBuf?k.lastBuf.byteLength:e},fetchStream:function(e,i){I.debug.log("worker","fetchStream, url is "+e,"options:",JSON.stringify(i)),i.isFlv?I._opt.isFlv=!0:i.isFmp4?I._opt.isFmp4=!0:i.isMpeg4&&(I._opt.isMpeg4=!0),a=function(r){let i=0,n=_e();return e=>{var t;"[object Number]"===Object.prototype.toString.call(e)&&(i+=e,1e3<=(t=(e=_e())-n)&&(r(i/t*1e3),n=e,i=0))}}(e=>{postMessage({cmd:M,type:"streamRate",value:e})}),I.startStreamRateAndStatsInterval(),i.isFmp4&&C.listenMp4Box(),2===i.protocol?(o=new Y(I.demuxFlv()),fetch(e,{signal:t.signal}).then(e=>{if(!(e.ok&&200<=e.status&&e.status<=299))return I.debug.warn("worker",`fetch response status is ${e.status} and ok is ${e.ok} and emit error and next abort()`),n(),void postMessage({cmd:M,type:O,value:`fetch response status is ${e.status} and ok is `+e.ok});if(postMessage({cmd:M,type:oe}),"undefined"!=typeof WritableStream)e.body.pipeTo(new WritableStream({write:e=>{a(e.byteLength),i.isFlv?o.write(e):i.isFmp4?I.demuxFmp4(e):i.isMpeg4&&I.demuxMpeg4(e)},close:()=>{o=null,n(),postMessage({cmd:M,type:N,value:J})},abort:e=>{o=null,e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}))}}));else{const t=e.body.getReader(),r=()=>{t.read().then(e=>{var{done:e,value:t}=e;if(e)return o=null,n(),void postMessage({cmd:M,type:N,value:J});a(t.byteLength),i.isFlv?o.write(t):i.isFmp4?I.demuxFmp4(t):i.isMpeg4&&I.demuxMpeg4(t),r()}).catch(e=>{o=null,e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}))})};r()}}).catch(e=>{e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}),o=null)})):1===i.protocol&&(i.isFlv&&(o=new Y(I.demuxFlv())),(r=new WebSocket(e)).binaryType="arraybuffer",r.onopen=()=>{I.debug.log("worker","fetchStream, WebsocketStream socket open"),postMessage({cmd:M,type:oe}),postMessage({cmd:M,type:"websocketOpen"})},r.onclose=e=>{I.debug.log("worker","fetchStream, WebsocketStream socket close and code is "+e.code),1006===e.code&&I.debug.warn("worker","fetchStream, WebsocketStream socket close abnormally and code is "+e.code),o=null,postMessage({cmd:M,type:N,value:"websocket"})},r.onerror=e=>{I.debug.error("worker","fetchStream, WebsocketStream socket error",e),o=null,postMessage({cmd:M,type:"websocketError",value:e.isTrusted?"websocket user aborted":"websocket error"})},r.onmessage=e=>{a(e.data.byteLength),i.isFlv?o.write(e.data):i.isFmp4?I.demuxFmp4(e.data):i.isMpeg4?I.demuxMpeg4(e.data):I._opt.isNakedFlow?I.demuxNakedFlow(e.data):I.demuxM7s(e.data)})},demuxFlv:function*(){yield 9;const r=new ArrayBuffer(4),e=new Uint8Array(r),i=new Uint32Array(r);for(;;){e[3]=0;const r=yield 15,a=r[4];e[0]=r[7],e[1]=r[6],e[2]=r[5];var t=i[0],n=(e[0]=r[10],e[1]=r[9],e[2]=r[8],e[3]=r[11],i[0]),s=(yield t).slice();switch(a){case 8:I.decode(s,{type:1,ts:n});break;case 9:if(0>4==1;I.isPlayer&&(I.calcNetworkDelay(n),r&&I.calcIframeIntervalTimestamp(n)),i[0]=s[4],i[1]=s[3],i[2]=s[2],i[3]=0;let e=i[0],t=s;I._opt.isCrypto&&(I._opt.cryptoIV&&0n)break;var a=t[s+4];if(1==(a&=31)||5==a){const n=t.slice(s+4+2,s+4+o);let e=new We.ModeOfOperation.ctr(r,new We.Counter(i));a=e.decrypt(n);e=null,t.set(a,s+4+2)}s=s+4+o}var o;return t}(s,I._opt.cryptoKey,I._opt.cryptoIV):I.debug.error("worker",`cryptoKey.length is ${I._opt.cryptoKey&&I._opt.cryptoKey.byteLength} or cryptoIV.length is ${I._opt.cryptoIV&&I._opt.cryptoIV.byteLength} null`)),I.decode(t,{type:2,ts:n,isIFrame:r,cts:e})}break;default:I.debug.log("worker","demuxFlv() type is "+a)}}},decode:function(e,t){1===t.type?I._opt.hasAudio&&(postMessage({cmd:M,type:"streamAbps",value:e.byteLength}),I.isPlayer?I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):I.isPlayback&&(I.isPlaybackCacheBeforeDecodeForFpsRender()||1===I._opt.playbackRate?I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):I.decodeAudio(e,t.ts))):2===t.type&&I._opt.hasVideo&&(postMessage({cmd:M,type:se,value:e.byteLength}),postMessage({cmd:M,type:ae,value:t.ts}),I.isPlayer?I.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame,cts:t.cts}):I.isPlayback&&(I.isPlaybackOnlyDecodeIFrame()?t.isIFrame&&I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}):(I.isPlaybackCacheBeforeDecodeForFpsRender(),I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}))))},setCodecAudio:function(e){var t=e[0]>>4;if(pe(e)||7==t||8==t){I.debug.log("worker","setCodecAudio: init audio codec, codeId is "+t);e=t===G?e.slice(2):e.slice(1);P.setCodec(t,I._opt.sampleRate,e),p=!0;{const e=Number("1")||1;setTimeout(()=>{I.close(),postMessage({cmd:ne})},60*e*60*1e3)}}else I.debug.warn("worker","setCodecAudio: hasInitAudioCodec is false, codecId is ",t)},decodeAudio:function(e,t){var r=e[0]>>4;p?P.decode(r===G?e.slice(2):e.slice(1),t):I.setCodecAudio(e)},setCodecVideo:function(e){var t=15&e[0];if(I.isVideoSequenceHeader(e))if(7==t||12==t){I.debug.log("worker","setCodecVideo: init video codec , codecId is "+t);var r=e.slice(5);if(7==t&&I._opt.useSIMD){const e=we(r);if(4080>4} and packetType is `+e[1])},decodeVideo:function(t,r,e,i){if(f)if(c=!c&&e?!0:c){if(e&&I.isVideoSequenceHeader(t)){const r=15&t[0];let e={};7==r?e=we(t.slice(5)):12==r&&(e=function(e){let n={width:0,height:0,profile:0,level:0};e=e.slice(5);do{let t={};if(e.length<23)break;if(t.configurationVersion=e[0],1!=t.configurationVersion)break;t.general_profile_space=e[1]>>6&3,t.general_tier_flag=e[1]>>5&1,t.general_profile_idc=31&e[1],t.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],t.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],t.general_constraint_indicator_flags=t.general_constraint_indicator_flags<<16|e[10]<<8|e[11],t.general_level_idc=e[12],t.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],t.parallelismType=3&e[15],t.chromaFormat=3&e[16],t.bitDepthLumaMinus8=7&e[17],t.bitDepthChromaMinus8=7&e[18],t.avgFrameRate=e[19]<<8|e[20],t.constantFrameRate=e[21]>>6&3,t.numTemporalLayers=e[21]>>3&7,t.temporalIdNested=e[21]>>2&1,t.lengthSizeMinusOne=3&e[21];let r=e[22],i=e.slice(23);for(let e=0;eye(e.isIFrame)&&2===e.type))?(t=(i=i.slice(e)).shift(),r=I.getDelayNotUpdateDelay(t.ts),I.doDecode(t),I.isPushDropping=!1,I.debug.log("worker",`dropBuffer$2() iFrameIndex is ${e},and bufferList length is ${i.length} and tempDelay is ${r} ,delay is ${I.delay} `)):I.isPushDropping=!1),0===i.length&&(I.isPushDropping=!1)},demuxM7s:function(e){const t=new DataView(e),r=t.getUint32(1,!1);switch(t.getUint8(0)){case 1:I.decode(new Uint8Array(e,5),{type:1,ts:r});break;case 2:var i;5>4==1,I.isPlayer&&(I.calcNetworkDelay(r),i&&I.calcIframeIntervalTimestamp(r)),I.decode(new Uint8Array(e,5),{type:2,ts:r,isIFrame:i}))}},demuxNakedFlow:function(e){k.dispatch(e)},demuxFmp4:function(e){e=new Uint8Array(e);C.dispatch(e)},demuxMpeg4:function(e){F.dispatch(e)},calcNetworkDelay:function(e){var t,r,i;c&&0I._opt.networkDelay&&I._opt.playType===L&&(I.debug.warn("worker",`calcNetworkDelay now dts:${e}, start dts is ${g} vs start is ${t},local diff is ${r} ,delay is `+i),postMessage({cmd:M,type:"networkDelayTimeout",value:i})))},calcIframeIntervalTimestamp:function(e){null===E?E=e:E=I._opt.playbackForwardMaxRateDecodeIFrame},playbackUpdatePlaybackRate:function(){I.clearBuffer(!0)},isVideoSequenceHeader:function(e){return e[0]>>4==1&&e[1]===fe},onOffscreenCanvasWebglContextLost:function(e){I.debug.error("worker","handleOffscreenCanvasWebglContextLost and next try to create webgl"),e.preventDefault(),B=!0,I.webglObj.destroy(),I.webglObj=null,I.offscreenCanvasGL=null,setTimeout(()=>{I.offscreenCanvasGL=I.offscreenCanvas.getContext("webgl"),I.offscreenCanvasGL&&I.offscreenCanvasGL.getContextAttributes().stencil?(I.webglObj=Z(I.offscreenCanvasGL,I._opt.openWebglAlignment),B=!1):I.debug.error("worker","handleOffscreenCanvasWebglContextLost, stencil is false")},500)},onOffscreenCanvasWebglContextRestored:function(e){I.debug.log("worker","handleOffscreenCanvasWebglContextRestored"),e.preventDefault()},videoInfo:function(e,t,r){postMessage({cmd:re,code:e}),postMessage({cmd:ee,w:t,h:r}),h=t,u=r,I.useOffscreen()&&(I.offscreenCanvas=new OffscreenCanvas(t,r),I.offscreenCanvasGL=I.offscreenCanvas.getContext("webgl"),I.webglObj=Z(I.offscreenCanvasGL,I._opt.openWebglAlignment),I.offscreenCanvas.addEventListener("webglcontextlost",I.onOffscreenCanvasWebglContextLost,!1),I.offscreenCanvas.addEventListener("webglcontextrestored",I.onOffscreenCanvasWebglContextRestored,!1))},audioInfo:function(e,t,r){postMessage({cmd:"audioCode",code:e}),postMessage({cmd:"initAudio",sampleRate:t,channels:r}),w=r},yuvData:function(e,t){if(I.isDestroyed)I.debug.log("worker","yuvData, decoder is destroyed and return");else{var r,i=h*u*3/2,e=l.HEAPU8.subarray(e,e+i),i=new Uint8Array(e);if(I.useOffscreen())try{B||(I.webglObj.renderYUV(h,u,i),r=I.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:R,buffer:r,delay:I.delay,ts:t},[r]))}catch(e){I.debug.error("worker","yuvData, transferToImageBitmap error is",e)}else postMessage({cmd:R,output:i,delay:I.delay,ts:t},[i.buffer])}},pcmData:function(n,s,a){if(I.isDestroyed)I.debug.log("worker","pcmData, decoder is destroyed and return");else{let t=s,r=[],e=0,i=I._opt.audioBufferSize;for(let e=0;e<2;e++){var o=l.HEAPU32[(n>>2)+e]>>2;r[e]=l.HEAPF32.subarray(o,o+t)}if(v){if(!(t>=(s=i-v)))return v+=t,d[0]=Float32Array.of(...d[0],...r[0]),void(2==w&&(d[1]=Float32Array.of(...d[1],...r[1])));b[0]=Float32Array.of(...d[0],...r[0].subarray(0,s)),2==w&&(b[1]=Float32Array.of(...d[1],...r[1].subarray(0,s))),postMessage({cmd:te,buffer:b,ts:a},b.map(e=>e.buffer)),e=s,t-=s}for(v=t;v>=i;v-=i)b[0]=r[0].slice(e,e+=i),2==w&&(b[1]=r[1].slice(e-i,e)),postMessage({cmd:te,buffer:b,ts:a},b.map(e=>e.buffer));v&&(d[0]=r[0].slice(e),2==w&&(d[1]=r[1].slice(e)))}},sendWebsocketMessage:function(e){r?1===r.readyState?r.send(e):I.debug.error("worker","socket is not open"):I.debug.error("worker","socket is null")},timeEnd:function(){I.debug.error("worker","jessibuca pro 体验结束,请刷新页面再次体验,如需要购买商业授权,可以联系微信:bosswancheng"),I.close(),postMessage({cmd:ne})},postStreamToMain(e,t){postMessage({cmd:"tempStream",type:t,buffer:e},[e.buffer])}},P=(I.debug=new be(I),null),D=(l.AudioDecoder&&(P=new l.AudioDecoder(I)),null);l.VideoDecoder&&(D=new l.VideoDecoder(I)),postMessage({cmd:"init"}),self.onmessage=function(e){var t=e.data;switch(t.cmd){case"init":try{I._opt=Object.assign(I._opt,JSON.parse(t.opt))}catch(e){}I.init();break;case"decode":I.pushBuffer(t.buffer,t.options);break;case"audioDecode":I.decodeAudio(t.buffer,t.ts);break;case"videoDecode":I.decodeVideo(t.buffer,t.ts,t.isIFrame);break;case"clearBuffer":I.clearBuffer(t.needClear);break;case"fetchStream":I.fetchStream(t.url,JSON.parse(t.opt));break;case"close":I.close();break;case"updateConfig":I.debug.log("worker","updateConfig",t.key,t.value),I._opt[t.key]=t.value,"playbackRate"===t.key&&(I.playbackUpdatePlaybackRate(),I.isPlaybackCacheBeforeDecodeForFpsRender()&&I.playbackCacheLoop());break;case"sendWsMessage":I.sendWebsocketMessage(t.message)}}}K.Log,K.MP4BoxStream,K.DataStream,K.MultiBufferStream,K.MPEG4DescriptorParser,K.BoxParser,K.XMLSubtitlein4Parser,K.Textin4Parser,K.ISOFile,K.createFile,Date.now||(Date.now=function(){return(new Date).getTime()}),y.postRun=function(){Ye(y)}}); diff --git a/ui/decoder-pro-audio.wasm b/ui/decoder-pro-audio.wasm new file mode 100755 index 0000000..d1d219b Binary files /dev/null and b/ui/decoder-pro-audio.wasm differ diff --git a/ui/decoder-pro-simd.js b/ui/decoder-pro-simd.js index 0567c0a..be6b0a0 100644 --- a/ui/decoder-pro-simd.js +++ b/ui/decoder-pro-simd.js @@ -1 +1,14 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("path"),require("fs"),require("crypto")):"function"==typeof define&&define.amd?define(["path","fs","crypto"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).path,e.fs,e.crypto$1)}(this,function(e,t,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var kt=n(e),At=n(t),Dt=n(r);function o(e,t){return e(t={exports:{}},t.exports),t.exports}var i=o(function($){var t,m,B,N,O,j,i,y=void 0!==y?y:{},L=Object.assign({},y),W="./this.program",z="object"==typeof window,c="function"==typeof importScripts,V="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,e="",H=(V?(e=c?kt.default.dirname(e)+"/":__dirname+"/",j=()=>{O||(N=At.default,O=kt.default)},t=function(e,t){return j(),e=O.normalize(e),N.readFileSync(e,t?void 0:"utf8")},B=e=>{e=t(e,!0);return e=e.buffer?e:new Uint8Array(e)},m=(e,r,n)=>{j(),e=O.normalize(e),N.readFile(e,function(e,t){e?n(e):r(t.buffer)})},1{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},c&&(B=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),m=(e,t,r)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)}),y.print||console.log.bind(console)),a=y.printErr||console.warn.bind(console),X=(Object.assign(y,L),y.arguments&&y.arguments,y.thisProgram&&(W=y.thisProgram),y.quit&&y.quit,y.wasmBinary&&(i=y.wasmBinary),y.noExitRuntime,"object"!=typeof WebAssembly&&w("no native wasm support detected"),!1);function q(e,t){e||w(t)}var G,d,f,u,J,l,p,Y,K,Q,Z="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function s(e,t,r){for(var n=t+r,o=t;e[o]&&!(n<=o);)++o;if(16>10,56320|1023&a))):i+=String.fromCharCode((31&u)<<6|s)):i+=String.fromCharCode(u)}return i}function ee(e,t){return e?s(f,e,t):""}function te(e,t,r,n){if(!(0>6,t[r++]=128|63&a}else if(a<=65535){if(i<=r+2)break;t[r++]=224|a>>12,t[r++]=128|a>>6&63,t[r++]=128|63&a}else{if(i<=r+3)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63,t[r++]=128|a>>6&63,t[r++]=128|63&a}}return t[r]=0,r-o}function re(e){for(var t=0,r=0;r>2]=e},this.get_type=function(){return p[this.ptr+4>>2]},this.set_destructor=function(e){p[this.ptr+8>>2]=e},this.get_destructor=function(){return p[this.ptr+8>>2]},this.set_refcount=function(e){l[this.ptr>>2]=e},this.set_caught=function(e){d[this.ptr+12>>0]=e=e?1:0},this.get_caught=function(){return 0!=d[this.ptr+12>>0]},this.set_rethrown=function(e){d[this.ptr+13>>0]=e=e?1:0},this.get_rethrown=function(){return 0!=d[this.ptr+13>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=l[this.ptr>>2];l[this.ptr>>2]=e+1},this.release_ref=function(){var e=l[this.ptr>>2];return l[this.ptr>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){p[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return p[this.ptr+16>>2]},this.get_exception_ptr=function(){if(_t(this.get_type()))return p[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}ue(h="decoder-pro-simd.wasm")||(L=h,h=y.locateFile?y.locateFile(L,e):e+L);var b={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,n=e.length-1;0<=n;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=b.isAbs(e),r="/"===e.substr(-1);return(e=(e=b.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||t?e:".")&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var e=b.splitPath(e),t=e[0],e=e[1];return t||e?t+(e=e&&e.substr(0,e.length-1)):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=b.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments,0);return b.normalize(e.join("/"))},join2:(e,t)=>b.normalize(e+"/"+t)},E={resolve:function(){for(var e="",t=!1,r=arguments.length-1;-1<=r&&!t;r--){var n=0<=r?arguments[r]:T.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=b.isAbs(n)}return(t?"/":"")+b.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/")||"."},relative:(e,t)=>{function r(e){for(var t=0;t>>0),0!=r&&(t=Math.max(t,256)),r=e.contents,e.contents=new Uint8Array(t),0=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-o,n);if(8!!e),!1),n=T.root,o="/",i=0;i{for(var t,r;;){if(T.isRoot(e))return r=e.mount.mountpoint,t?"/"!==r[r.length-1]?r+"/"+t:r+t:r;t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,n=0;n>>0)%T.nameTable.length},hashAddNode:e=>{var t=T.hashName(e.parent.id,e.name);e.name_next=T.nameTable[t],T.nameTable[t]=e},hashRemoveNode:e=>{var t=T.hashName(e.parent.id,e.name);if(T.nameTable[t]===e)T.nameTable[t]=e.name_next;else for(var r=T.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=T.mayLookup(e);if(r)throw new T.ErrnoError(r,e);for(var r=T.hashName(e.id,t),n=T.nameTable[r];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===t)return n}return T.lookup(e,t)},createNode:(e,t,r,n)=>{e=new T.FSNode(e,t,r,n);return T.hashAddNode(e),e},destroyNode:e=>{T.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=T.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>T.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{return T.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return T.lookupNode(e,t),20}catch(e){}return T.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var n;try{n=T.lookupNode(e,t)}catch(e){return e.errno}t=T.nodePermissions(e,"wx");if(t)return t;if(r){if(!T.isDir(n.mode))return 54;if(T.isRoot(n)||T.getPath(n)===T.cwd())return 10}else if(T.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?T.isLink(e.mode)?32:T.isDir(e.mode)&&("r"!==T.flagsToPermissionString(t)||512&t)?31:T.nodePermissions(e,T.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:function(){for(var e=0T.streams[e],createStream:(e,t,r)=>{T.FSStream||(T.FSStream=function(){this.shared={}},T.FSStream.prototype={},Object.defineProperties(T.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new T.FSStream,e);t=T.nextfd(t,r);return e.fd=t,T.streams[t]=e},closeStream:e=>{T.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=T.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new T.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{T.devices[e]={stream_ops:t}},getDevice:e=>T.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:(t,r)=>{"function"==typeof t&&(r=t,t=!1),T.syncFSRequests++,1=n.length&&i(null)}n.forEach(e=>{if(!e.type.syncfs)return s(null);e.type.syncfs(e,t,s)})},mount:(e,t,r)=>{var n,o="/"===r,i=!r;if(o&&T.root)throw new T.ErrnoError(10);if(!o&&!i){i=T.lookupPath(r,{follow_mount:!1});if(r=i.path,n=i.node,T.isMountpoint(n))throw new T.ErrnoError(10);if(!T.isDir(n.mode))throw new T.ErrnoError(54)}i={type:e,opts:t,mountpoint:r,mounts:[]},t=e.mount(i);return(t.mount=i).root=t,o?T.root=t:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),t},unmount:e=>{e=T.lookupPath(e,{follow_mount:!1});if(!T.isMountpoint(e.node))throw new T.ErrnoError(28);var e=e.node,t=e.mounted,n=T.getMounts(t),t=(Object.keys(T.nameTable).forEach(e=>{for(var t=T.nameTable[e];t;){var r=t.name_next;n.includes(t.mount)&&T.destroyNode(t),t=r}}),e.mounted=null,e.mount.mounts.indexOf(t));e.mount.mounts.splice(t,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var n=T.lookupPath(e,{parent:!0}).node,e=b.basename(e);if(!e||"."===e||".."===e)throw new T.ErrnoError(28);var o=T.mayCreate(n,e);if(o)throw new T.ErrnoError(o);if(n.node_ops.mknod)return n.node_ops.mknod(n,e,t,r);throw new T.ErrnoError(63)},create:(e,t)=>T.mknod(e,t=(t=void 0!==t?t:438)&4095|32768,0),mkdir:(e,t)=>T.mknod(e,t=(t=void 0!==t?t:511)&1023|16384,0),mkdirTree:(e,t)=>{for(var r=e.split("/"),n="",o=0;o(void 0===r&&(r=t,t=438),T.mknod(e,t|=8192,r)),symlink:(e,t)=>{if(!E.resolve(e))throw new T.ErrnoError(44);var r=T.lookupPath(t,{parent:!0}).node;if(!r)throw new T.ErrnoError(44);var t=b.basename(t),n=T.mayCreate(r,t);if(n)throw new T.ErrnoError(n);if(r.node_ops.symlink)return r.node_ops.symlink(r,t,e);throw new T.ErrnoError(63)},rename:(e,t)=>{var r=b.dirname(e),n=b.dirname(t),o=b.basename(e),i=b.basename(t),s=T.lookupPath(e,{parent:!0}).node,a=T.lookupPath(t,{parent:!0}).node;if(!s||!a)throw new T.ErrnoError(44);if(s.mount!==a.mount)throw new T.ErrnoError(75);var u,l=T.lookupNode(s,o);if("."!==E.relative(e,n).charAt(0))throw new T.ErrnoError(28);if("."!==E.relative(t,r).charAt(0))throw new T.ErrnoError(55);try{u=T.lookupNode(a,i)}catch(e){}if(l!==u){n=T.isDir(l.mode),t=T.mayDelete(s,o,n);if(t)throw new T.ErrnoError(t);if(t=u?T.mayDelete(a,i,n):T.mayCreate(a,i))throw new T.ErrnoError(t);if(!s.node_ops.rename)throw new T.ErrnoError(63);if(T.isMountpoint(l)||u&&T.isMountpoint(u))throw new T.ErrnoError(10);if(a!==s&&(t=T.nodePermissions(s,"w")))throw new T.ErrnoError(t);T.hashRemoveNode(l);try{s.node_ops.rename(l,a,i)}catch(e){throw e}finally{T.hashAddNode(l)}}},rmdir:e=>{var t=T.lookupPath(e,{parent:!0}).node,e=b.basename(e),r=T.lookupNode(t,e),n=T.mayDelete(t,e,!0);if(n)throw new T.ErrnoError(n);if(!t.node_ops.rmdir)throw new T.ErrnoError(63);if(T.isMountpoint(r))throw new T.ErrnoError(10);t.node_ops.rmdir(t,e),T.destroyNode(r)},readdir:e=>{e=T.lookupPath(e,{follow:!0}).node;if(e.node_ops.readdir)return e.node_ops.readdir(e);throw new T.ErrnoError(54)},unlink:e=>{var t=T.lookupPath(e,{parent:!0}).node;if(!t)throw new T.ErrnoError(44);var e=b.basename(e),r=T.lookupNode(t,e),n=T.mayDelete(t,e,!1);if(n)throw new T.ErrnoError(n);if(!t.node_ops.unlink)throw new T.ErrnoError(63);if(T.isMountpoint(r))throw new T.ErrnoError(10);t.node_ops.unlink(t,e),T.destroyNode(r)},readlink:e=>{e=T.lookupPath(e).node;if(!e)throw new T.ErrnoError(44);if(e.node_ops.readlink)return E.resolve(T.getPath(e.parent),e.node_ops.readlink(e));throw new T.ErrnoError(28)},stat:(e,t)=>{e=T.lookupPath(e,{follow:!t}).node;if(!e)throw new T.ErrnoError(44);if(e.node_ops.getattr)return e.node_ops.getattr(e);throw new T.ErrnoError(63)},lstat:e=>T.stat(e,!0),chmod:(e,t,r)=>{r="string"==typeof e?T.lookupPath(e,{follow:!r}).node:e;if(!r.node_ops.setattr)throw new T.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,t)=>{T.chmod(e,t,!0)},fchmod:(e,t)=>{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);T.chmod(e.node,t)},chown:(e,t,r,n)=>{n="string"==typeof e?T.lookupPath(e,{follow:!n}).node:e;if(!n.node_ops.setattr)throw new T.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:(e,t,r)=>{T.chown(e,t,r,!0)},fchown:(e,t,r)=>{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);T.chown(e.node,t,r)},truncate:(e,t)=>{if(t<0)throw new T.ErrnoError(28);e="string"==typeof e?T.lookupPath(e,{follow:!0}).node:e;if(!e.node_ops.setattr)throw new T.ErrnoError(63);if(T.isDir(e.mode))throw new T.ErrnoError(31);if(!T.isFile(e.mode))throw new T.ErrnoError(28);var r=T.nodePermissions(e,"w");if(r)throw new T.ErrnoError(r);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);if(0==(2097155&e.flags))throw new T.ErrnoError(28);T.truncate(e.node,t)},utime:(e,t,r)=>{e=T.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new T.ErrnoError(44);var n;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?T.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)n=e;else{e=b.normalize(e);try{n=T.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var o=!1;if(64&t)if(n){if(128&t)throw new T.ErrnoError(20)}else n=T.mknod(e,r,0),o=!0;if(!n)throw new T.ErrnoError(44);if(T.isChrdev(n.mode)&&(t&=-513),65536&t&&!T.isDir(n.mode))throw new T.ErrnoError(54);if(!o){r=T.mayOpen(n,t);if(r)throw new T.ErrnoError(r)}512&t&&!o&&T.truncate(n,0),t&=-131713;r=T.createStream({node:n,path:T.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return r.stream_ops.open&&r.stream_ops.open(r),!y.logReadFiles||1&t||(T.readFiles||(T.readFiles={}),e in T.readFiles||(T.readFiles[e]=1)),r},close:e=>{if(T.isClosed(e))throw new T.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{T.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(T.isClosed(e))throw new T.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new T.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new T.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,n,o)=>{if(n<0||o<0)throw new T.ErrnoError(28);if(T.isClosed(e))throw new T.ErrnoError(8);if(1==(2097155&e.flags))throw new T.ErrnoError(8);if(T.isDir(e.node.mode))throw new T.ErrnoError(31);if(!e.stream_ops.read)throw new T.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new T.ErrnoError(70)}else o=e.position;t=e.stream_ops.read(e,t,r,n,o);return i||(e.position+=t),t},write:(e,t,r,n,o,i)=>{if(n<0||o<0)throw new T.ErrnoError(28);if(T.isClosed(e))throw new T.ErrnoError(8);if(0==(2097155&e.flags))throw new T.ErrnoError(8);if(T.isDir(e.node.mode))throw new T.ErrnoError(31);if(!e.stream_ops.write)throw new T.ErrnoError(28);e.seekable&&1024&e.flags&&T.llseek(e,0,2);var s=void 0!==o;if(s){if(!e.seekable)throw new T.ErrnoError(70)}else o=e.position;t=e.stream_ops.write(e,t,r,n,o,i);return s||(e.position+=t),t},allocate:(e,t,r)=>{if(T.isClosed(e))throw new T.ErrnoError(8);if(t<0||r<=0)throw new T.ErrnoError(28);if(0==(2097155&e.flags))throw new T.ErrnoError(8);if(!T.isFile(e.node.mode)&&!T.isDir(e.node.mode))throw new T.ErrnoError(43);if(!e.stream_ops.allocate)throw new T.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,n,o)=>{if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new T.ErrnoError(2);if(1==(2097155&e.flags))throw new T.ErrnoError(2);if(e.stream_ops.mmap)return e.stream_ops.mmap(e,t,r,n,o);throw new T.ErrnoError(43)},msync:(e,t,r,n,o)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,o):0,munmap:e=>0,ioctl:(e,t,r)=>{if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,t,r);throw new T.ErrnoError(59)},readFile:function(e){let t=1T.currentPath,chdir:e=>{e=T.lookupPath(e,{follow:!0});if(null===e.node)throw new T.ErrnoError(44);if(!T.isDir(e.node.mode))throw new T.ErrnoError(54);var t=T.nodePermissions(e.node,"x");if(t)throw new T.ErrnoError(t);T.currentPath=e.path},createDefaultDirectories:()=>{T.mkdir("/tmp"),T.mkdir("/home"),T.mkdir("/home/web_user")},createDefaultDevices:()=>{T.mkdir("/dev"),T.registerDevice(T.makedev(1,3),{read:()=>0,write:(e,t,r,n,o)=>n}),T.mkdev("/dev/null",T.makedev(1,3)),o.register(T.makedev(5,0),o.default_tty_ops),o.register(T.makedev(6,0),o.default_tty1_ops),T.mkdev("/dev/tty",T.makedev(5,0)),T.mkdev("/dev/tty1",T.makedev(6,0));var e=function(){var e;if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=new Uint8Array(1),()=>(crypto.getRandomValues(e),e[0]);if(V)try{var t=Dt.default;return()=>t.randomBytes(1)[0]}catch(e){}return()=>w("randomDevice")}();T.createDevice("/dev","random",e),T.createDevice("/dev","urandom",e),T.mkdir("/dev/shm"),T.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{T.mkdir("/proc");var t=T.mkdir("/proc/self");T.mkdir("/proc/self/fd"),T.mount({mount:()=>{var e=T.createNode(t,"fd",16895,73);return e.node_ops={lookup:(e,t)=>{var r=T.getStream(+t);if(!r)throw new T.ErrnoError(8);t={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return t.parent=t}},e}},{},"/proc/self/fd")},createStandardStreams:()=>{y.stdin?T.createDevice("/dev","stdin",y.stdin):T.symlink("/dev/tty","/dev/stdin"),y.stdout?T.createDevice("/dev","stdout",null,y.stdout):T.symlink("/dev/tty","/dev/stdout"),y.stderr?T.createDevice("/dev","stderr",null,y.stderr):T.symlink("/dev/tty1","/dev/stderr"),T.open("/dev/stdin",0),T.open("/dev/stdout",1),T.open("/dev/stderr",1)},ensureErrnoError:()=>{T.ErrnoError||(T.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},T.ErrnoError.prototype=new Error,T.ErrnoError.prototype.constructor=T.ErrnoError,[44].forEach(e=>{T.genericErrors[e]=new T.ErrnoError(e),T.genericErrors[e].stack=""}))},staticInit:()=>{T.ensureErrnoError(),T.nameTable=new Array(4096),T.mount(_,{},"/"),T.createDefaultDirectories(),T.createDefaultDevices(),T.createSpecialDirectories(),T.filesystems={MEMFS:_}},init:(e,t,r)=>{T.init.initialized=!0,T.ensureErrnoError(),y.stdin=e||y.stdin,y.stdout=t||y.stdout,y.stderr=r||y.stderr,T.createStandardStreams()},quit:()=>{T.init.initialized=!1;for(var e=0;e{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{e=T.analyzePath(e,t);return e.exists?e.object:null},analyzePath:(e,t)=>{try{e=(n=T.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=T.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=b.basename(e),n=T.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,n)=>{e="string"==typeof e?e:T.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var s=b.join2(e,i);try{T.mkdir(s)}catch(e){}e=s}}return s},createFile:(e,t,r,n,o)=>{e=b.join2("string"==typeof e?e:T.getPath(e),t),t=T.getMode(n,o);return T.create(e,t)},createDataFile:(e,t,r,n,o,i)=>{var s=t,t=(e&&(e="string"==typeof e?e:T.getPath(e),s=t?b.join2(e,t):e),T.getMode(n,o)),e=T.create(s,t);if(r){if("string"==typeof r){for(var a=new Array(r.length),u=0,l=r.length;u{var e=b.join2("string"==typeof e?e:T.getPath(e),t),t=T.getMode(!!u,!!s),r=(T.createDevice.major||(T.createDevice.major=64),T.makedev(T.createDevice.major++,0));return T.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{s&&s.buffer&&s.buffer.length&&s(10)},read:(e,t,r,n,o)=>{for(var i,s=0,a=0;a{for(var i=0;i{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!t)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=pe(t(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new T.ErrnoError(29)}},createLazyFile:(e,t,s,r,n)=>{function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(e){var t;if(!(e>this.length-1||e<0))return t=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[t]},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",s,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+s+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,e=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,o=1048576,i=(r||(o=n),this);i.setDataGetter(e=>{var t=e*o,r=(e+1)*o-1,r=Math.min(r,n-1);if(void 0===i.chunks[e]&&(i.chunks[e]=((e,t)=>{if(t=i.length)return 0;var s=Math.min(i.length-o,n);if(i.slice)for(var a=0;a{var t=a.stream_ops[e];u[e]=function(){return T.forceLoadFile(a),t.apply(null,arguments)}}),u.read=(e,t,r,n,o)=>(T.forceLoadFile(a),l(e,t,r,n,o)),u.mmap=(e,t,r,n,o)=>{T.forceLoadFile(a);var i=he(t);if(i)return l(e,d,i,t,r),{ptr:i,allocated:!0};throw new T.ErrnoError(48)},a.stream_ops=u,a},createPreloadedFile:(r,n,e,o,i,s,a,u,l,c)=>{var t,d,f,p=n?E.resolve(b.join2(r,n)):r;function h(e){function t(e){c&&c(),u||T.createDataFile(r,n,e,o,i,l),s&&s(),ae()}Browser.handledByPreloadPlugin(e,p,t,()=>{a&&a(),ae()})||t(e)}se(),"string"==typeof e?(d=a,f="al "+(t=e),m(t,e=>{q(e,'Loading data file "'+t+'" failed (no arrayBuffer).'),h(new Uint8Array(e)),f&&ae()},e=>{if(!d)throw'Loading data file "'+t+'" failed.';d()}),f&&se()):h(e)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(s,a,u)=>{a=a||(()=>{}),u=u||(()=>{});var e=T.indexedDB();try{var l=e.open(T.DB_NAME(),T.DB_VERSION)}catch(s){return u(s)}l.onupgradeneeded=()=>{H("creating db"),l.result.createObjectStore(T.DB_STORE_NAME)},l.onsuccess=()=>{var e=l.result.transaction([T.DB_STORE_NAME],"readwrite"),t=e.objectStore(T.DB_STORE_NAME),r=0,n=0,o=s.length;function i(){(0==n?a:u)()}s.forEach(e=>{e=t.put(T.analyzePath(e).object.contents,e);e.onsuccess=()=>{++r+n==o&&i()},e.onerror=()=>{r+ ++n==o&&i()}}),e.onerror=u},l.onerror=u},loadFilesFromDB:(a,u,l)=>{u=u||(()=>{}),l=l||(()=>{});var e=T.indexedDB();try{var c=e.open(T.DB_NAME(),T.DB_VERSION)}catch(a){return l(a)}c.onupgradeneeded=l,c.onsuccess=()=>{var e=c.result;try{var t=e.transaction([T.DB_STORE_NAME],"readonly")}catch(e){return void l(e)}var r=t.objectStore(T.DB_STORE_NAME),n=0,o=0,i=a.length;function s(){(0==o?u:l)()}a.forEach(e=>{var t=r.get(e);t.onsuccess=()=>{T.analyzePath(e).exists&&T.unlink(e),T.createDataFile(b.dirname(e),b.basename(e),t.result,!0,!0,!0),++n+o==i&&s()},t.onerror=()=>{n+ ++o==i&&s()}}),t.onerror=l},c.onerror=l}},k={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(b.isAbs(t))return t;var n;if(-100===e)n=T.cwd();else{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);n=e.path}if(0!=t.length)return b.join2(n,t);if(r)return n;throw new T.ErrnoError(44)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&b.normalize(t)!==b.normalize(T.getPath(e.node)))return-54;throw e}return l[r>>2]=n.dev,l[r+4>>2]=0,l[r+8>>2]=n.ino,l[r+12>>2]=n.mode,l[r+16>>2]=n.nlink,l[r+20>>2]=n.uid,l[r+24>>2]=n.gid,l[r+28>>2]=n.rdev,l[r+32>>2]=0,v=[n.size>>>0,(g=n.size,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+40>>2]=v[0],l[r+44>>2]=v[1],l[r+48>>2]=4096,l[r+52>>2]=n.blocks,v=[Math.floor(n.atime.getTime()/1e3)>>>0,(g=Math.floor(n.atime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+56>>2]=v[0],l[r+60>>2]=v[1],l[r+64>>2]=0,v=[Math.floor(n.mtime.getTime()/1e3)>>>0,(g=Math.floor(n.mtime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+72>>2]=v[0],l[r+76>>2]=v[1],l[r+80>>2]=0,v=[Math.floor(n.ctime.getTime()/1e3)>>>0,(g=Math.floor(n.ctime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+88>>2]=v[0],l[r+92>>2]=v[1],l[r+96>>2]=0,v=[n.ino>>>0,(g=n.ino,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+104>>2]=v[0],l[r+108>>2]=v[1],0},doMsync:function(e,t,r,n,o){e=f.slice(e,e+r);T.msync(t,e,o,r,n)},varargs:void 0,get:function(){return k.varargs+=4,l[k.varargs-4>>2]},getStr:function(e){return ee(e)},getStreamFromFD:function(e){e=T.getStream(e);if(e)return e;throw new T.ErrnoError(8)}};function me(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var ye=void 0;function A(e){for(var t="",r=e;f[r];)t+=ye[f[r++]];return t}var D={},C={},ge={};function ve(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&t<=57?"_"+e:e}function we(e,t){return e=ve(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function be(e,t){var r=we(t,function(e){this.name=t,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return r.prototype=Object.create(e.prototype),(r.prototype.constructor=r).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var F=void 0;function S(e){throw new F(e)}var Ee=void 0;function _e(e){throw new Ee(e)}function Te(n,t,o){function r(e){var t=o(e);t.length!==n.length&&_e("Mismatched type converter count");for(var r=0;r{C.hasOwnProperty(e)?i[t]=C[e]:(s.push(e),D.hasOwnProperty(e)||(D[e]=[]),D[e].push(()=>{i[t]=C[e],++a===s.length&&r(i)}))}),0===s.length&&r(i)}function P(e,t,r){r=2e()))}function ke(e){S(e.$$.ptrType.registeredClass.name+" instance already deleted")}var Ae=!1;function De(e){}function Ce(e){--e.count.value,0===e.count.value&&((e=e).smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr))}var Fe={};var Se=[];function Pe(){for(;Se.length;){var e=Se.pop();e.$$.deleteScheduled=!1,e.delete()}}var Re=void 0;var xe={};function Me(e,t){return t.ptrType&&t.ptr||_e("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&_e("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ie(Object.create(e,{$$:{value:t}}))}function Ie(e){return"undefined"==typeof FinalizationRegistry?(Ie=e=>e,e):(Ae=new FinalizationRegistry(e=>{Ce(e.$$)}),De=e=>Ae.unregister(e),(Ie=e=>{var t=e.$$;return t.smartPtr&&Ae.register(e,{$$:t},e),e})(e))}function R(){}function Ue(e,t,r){var n;void 0===e[t].overloadTable&&(n=e[t],e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||S("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n)}function $e(e,t,r,n,o,i,s,a){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=s,this.downcast=a,this.pureVirtualFunctions=[]}function Be(e,t,r){for(;t!==r;)t.upcast||S("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Ne(e,t){if(null===t)return this.isReference&&S("null is not a valid "+this.name),0;t.$$||S('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Be(t.$$.ptr,r,this.registeredClass)}function Oe(e,t){if(null===t)return this.isReference&&S("null is not a valid "+this.name),this.isSmartPointer?(n=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,n),n):0;t.$$||S('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&S("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);var r,n,o=t.$$.ptrType.registeredClass;if(n=Be(t.$$.ptr,o,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&S("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:S("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);break;case 1:n=t.$$.smartPtr;break;case 2:t.$$.smartPtrType===this?n=t.$$.smartPtr:(r=t.clone(),n=this.rawShare(n,Ze.toHandle(function(){r.delete()})),null!==e&&e.push(this.rawDestructor,n));break;default:S("Unsupporting sharing policy")}return n}function je(e,t){if(null===t)return this.isReference&&S("null is not a valid "+this.name),0;t.$$||S('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&S("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Be(t.$$.ptr,r,this.registeredClass)}function Le(e){return this.fromWireType(l[e>>2])}function x(e,t,r,n,o,i,s,a,u,l,c){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=s,this.rawGetPointee=a,this.rawConstructor=u,this.rawShare=l,this.rawDestructor=c,o||void 0!==t.baseClass?this.toWireType=Oe:(this.toWireType=n?Ne:je,this.destructorFunction=null)}var We=[];function ze(e){var t=We[e];return t||(e>=We.length&&(We.length=e+1),We[e]=t=Q.get(e)),t}function M(e,t){var o,i,s,r=(e=A(e)).includes("j")?(o=e,i=t,s=[],function(){return s.length=0,Object.assign(s,arguments),t=i,r=s,(e=o).includes("j")?(n=t,e=y["dynCall_"+e],r&&r.length?e.apply(null,[n].concat(r)):e.call(null,n)):ze(t).apply(null,r);var e,t,r,n}):ze(t);return"function"!=typeof r&&S("unknown function pointer with signature "+e+": "+t),r}var Ve=void 0;function He(e){var e=wt(e),t=A(e);return U(e),t}function Xe(e,t){var r=[],n={};throw t.forEach(function e(t){n[t]||C[t]||(ge[t]?ge[t].forEach(e):(r.push(t),n[t]=!0))}),new Ve(e+": "+r.map(He).join([", "]))}function qe(e,t){for(var r=[],n=0;n>2]);return r}function Ge(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Je(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=we(e.name||"unknownFunctionName",function(){}),r=(r.prototype=e.prototype,new r),e=e.apply(r,t);return e instanceof Object?e:r}function Ye(e,t,r,n,o){var i=t.length;i<2&&S("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==r,s=!1,a=1;a(e||S("Cannot use deleted val. handle = "+e),I[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ke.length?Ke.pop():I.length;return I[t]={refcount:1,value:e},t}}};function et(e){if(null===e)return"null";var t=typeof e;return"object"==t||"array"==t||"function"==t?e.toString():""+e}var tt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function rt(e,t){for(var r,n=e>>1,o=n+t/2;!(o<=n)&&J[n];)++n;if(32<(r=n<<1)-e&&tt)return tt.decode(f.subarray(e,r));for(var i="",s=0;!(t/2<=s);++s){var a=u[e+2*s>>1];if(0==a)break;i+=String.fromCharCode(a)}return i}function nt(e,t,r){if((r=void 0===r?2147483647:r)<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i>1]=s,t+=2}return u[t>>1]=0,t-n}function ot(e){return 2*e.length}function it(e,t){for(var r=0,n="";!(t/4<=r);){var o,i=l[e+4*r>>2];if(0==i)break;++r,65536<=i?(o=i-65536,n+=String.fromCharCode(55296|o>>10,56320|1023&o)):n+=String.fromCharCode(i)}return n}function st(e,t,r){if((r=void 0===r?2147483647:r)<4)return 0;for(var n=t,o=n+r-4,i=0;i>2]=s,(t+=4)+4>o)break}return l[t>>2]=0,t-n}function at(e){for(var t=0,r=0;r>1]=2,0;case 16:case 8:default:return-28;case 9:return l[vt()>>2]=28,-1}}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return-e.errno;throw e}},v:function(e,t,r,n){k.varargs=n;try{t=k.getStr(t),t=k.calculateAt(e,t);var o=n?k.get():0;return T.open(t,r,o).fd}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return-e.errno;throw e}},u:function(e,t,r,n,o){},E:function(e,r,n,o,i){var s=me(n);P(e,{name:r=A(r),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?o:i},argPackAdvance:8,readValueFromPointer:function(e){var t;if(1===n)t=d;else if(2===n)t=u;else{if(4!==n)throw new TypeError("Unknown boolean type size: "+r);t=l}return this.fromWireType(t[e>>s])},destructorFunction:null})},m:function(u,e,t,l,r,c,n,d,o,f,p,i,h){p=A(p),c=M(r,c),d=d&&M(n,d),f=f&&M(o,f),h=M(i,h);var s,m=ve(p);r=m,n=function(){Xe("Cannot construct "+p+" due to unbound types",[l])},y.hasOwnProperty(r)?(S("Cannot register public name '"+r+"' twice"),Ue(y,r,r),y.hasOwnProperty(s)&&S("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),y[r].overloadTable[s]=n):y[r]=n,Te([u,e,t],l?[l]:[],function(e){e=e[0],e=l?(s=e.registeredClass).instancePrototype:R.prototype;var t,r,n=we(m,function(){if(Object.getPrototypeOf(this)!==o)throw new F("Use 'new' to construct "+p);if(void 0===i.constructor_body)throw new F(p+" has no accessible constructor");var e=i.constructor_body[arguments.length];if(void 0===e)throw new F("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(i.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),o=Object.create(e,{constructor:{value:n}}),i=(n.prototype=o,new $e(p,n,o,h,s,c,d,f)),e=new x(p,i,!0,!1,!1),s=new x(p+"*",i,!1,!1,!1),a=new x(p+" const*",i,!1,!0,!1);return Fe[u]={pointerType:s,constPointerType:a},t=m,n=n,y.hasOwnProperty(t)||_e("Replacing nonexistant public symbol"),y[t].overloadTable,y[t]=n,y[t].argCount=r,[e,s,a]})},l:function(e,n,t,r,o,i){q(0{Xe("Cannot construct "+t.name+" due to unbound types",s)},Te([],s,function(e){return e.splice(1,0,null),t.registeredClass.constructor_body[n-1]=Ye(r,e,null,o,i),[]}),[]})},d:function(e,i,s,t,r,a,u,l){var c=qe(s,t);i=A(i),a=M(r,a),Te([],[e],function(t){var r=(t=t[0]).name+"."+i;function e(){Xe("Cannot call "+r+" due to unbound types",c)}i.startsWith("@@")&&(i=Symbol[i.substring(2)]),l&&t.registeredClass.pureVirtualFunctions.push(i);var n=t.registeredClass.instancePrototype,o=n[i];return void 0===o||void 0===o.overloadTable&&o.className!==t.name&&o.argCount===s-2?(e.argCount=s-2,e.className=t.name,n[i]=e):(Ue(n,i,r),n[i].overloadTable[s-2]=e),Te([],c,function(e){e=Ye(r,e,t,a,u);return void 0===n[i].overloadTable?(e.argCount=s-2,n[i]=e):n[i].overloadTable[s-2]=e,[]}),[]})},D:function(e,t){P(e,{name:t=A(t),fromWireType:function(e){var t=Ze.toValue(e);return Qe(e),t},toWireType:function(e,t){return Ze.toHandle(t)},argPackAdvance:8,readValueFromPointer:Le,destructorFunction:null})},o:function(e,t,r){r=me(r);P(e,{name:t=A(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:function(e,t){switch(t){case 2:return function(e){return this.fromWireType(Y[e>>2])};case 3:return function(e){return this.fromWireType(K[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}(t,r),destructorFunction:null})},c:function(e,t,r,n,o){t=A(t);var i,s=me(r),a=e=>e,r=(0===n&&(i=32-8*r,a=e=>e<>>i),t.includes("unsigned"));P(e,{name:t,fromWireType:a,toWireType:r?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:function(e,t,r){switch(t){case 0:return r?function(e){return d[e]}:function(e){return f[e]};case 1:return r?function(e){return u[e>>1]}:function(e){return J[e>>1]};case 2:return r?function(e){return l[e>>2]}:function(e){return p[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}(t,s,0!==n),destructorFunction:null})},b:function(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=p,r=t[e>>=2],t=t[e+1];return new n(G,t,r)}P(e,{name:r=A(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},p:function(e,t){var l="std::string"===(t=A(t));P(e,{name:t,fromWireType:function(e){var t,r=p[e>>2],n=e+4;if(l)for(var o=n,i=0;i<=r;++i){var s,a=n+i;i!=r&&0!=f[a]||(s=ee(o,a-o),void 0===t?t=s:t=t+String.fromCharCode(0)+s,o=a+1)}else{for(var u=new Array(r),i=0;i>2]=r,l&&n)te(t,f,i,r+1);else if(n)for(var s=0;sJ,d=1):4===u&&(l=it,i=st,s=at,c=()=>p,d=2),P(e,{name:o,fromWireType:function(e){for(var t,r=p[e>>2],n=c(),o=e+4,i=0;i<=r;++i){var s,a=e+4+i*u;i!=r&&0!=n[a>>d]||(s=l(o,a-o),void 0===t?t=s:t=t+String.fromCharCode(0)+s,o=a+u)}return U(e),t},toWireType:function(e,t){"string"!=typeof t&&S("Cannot pass non-string to C++ string type "+o);var r=s(t),n=gt(4+r+u);return p[n>>2]=r>>d,i(t,n+4,r+u),null!==e&&e.push(U,n),n},argPackAdvance:8,readValueFromPointer:Le,destructorFunction:function(e){U(e)}})},q:function(e,t){P(e,{isVoid:!0,name:t=A(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},j:function(){return Date.now()},f:function(e,t,r,n){(e=lt[e])(t=Ze.toValue(t),r=void 0===(t=ut[e=r])?A(e):t,null,n)},g:Qe,e:function(e,t){var r=function(e,t){for(var r,n,o=new Array(e),i=0;i>2],void 0===(n=C[r])&&S("parameter "+i+" has unknown type "+He(r)),n);return o}(e,t),t=r[0],n=t.name+"_$"+r.slice(1).map(function(e){return e.name}).join("_")+"$",o=ct[n];if(void 0!==o)return o;for(var i=["retType"],s=[t],a="",u=0;u>2]=r,e),o=r,i=0;i>0]=n.charCodeAt(i);d[o>>0]=0,u+=e.length+1}),0},y:function(e,t){var r=ft(),n=(p[e>>2]=r.length,0);return r.forEach(function(e){n+=e.length+1}),p[t>>2]=n,0},n:function(e){try{var t=k.getStreamFromFD(e);return T.close(t),0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},w:function(e,t){try{var r=k.getStreamFromFD(e),n=r.tty?2:T.isDir(r.mode)?3:T.isLink(r.mode)?7:4;return d[t>>0]=n,0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},B:function(e,t,r,n){try{var o=function(e,t,r){for(var n=0,o=0;o>2],s=p[t+4>>2],i=(t+=8,T.read(e,d,i,s,void 0));if(i<0)return-1;if(n+=i,i>2]=o,0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},t:function(e,t,r,n,o){try{var i=r+2097152>>>0<4194305-!!t?(t>>>0)+4294967296*r:NaN;if(isNaN(i))return 61;var s=k.getStreamFromFD(e);return T.llseek(s,i,n),v=[s.position>>>0,(g=s.position,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[o>>2]=v[0],l[o+4>>2]=v[1],s.getdents&&0===i&&0===n&&(s.getdents=null),0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},A:function(e,t,r,n){try{var o=function(e,t,r){for(var n=0,o=0;o>2],s=p[t+4>>2],i=(t+=8,T.write(e,d,i,s,void 0));if(i<0)return-1;n+=i}return n}(k.getStreamFromFD(e),t,r);return p[n>>2]=o,0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},h:function(e){}},U=(!function(){var t={a:yt};function r(e,t){var e=e.exports;y.asm=e,e=y.asm.F.buffer,G=e,y.HEAP8=d=new Int8Array(e),y.HEAP16=u=new Int16Array(e),y.HEAP32=l=new Int32Array(e),y.HEAPU8=f=new Uint8Array(e),y.HEAPU16=J=new Uint16Array(e),y.HEAPU32=p=new Uint32Array(e),y.HEAPF32=Y=new Float32Array(e),y.HEAPF64=K=new Float64Array(e),Q=y.asm.J,e=y.asm.G,oe.unshift(e),ae()}function n(e){r(e.instance)}function o(e){return function(){if(!i&&(z||c)){if("function"==typeof fetch&&!le(h))return fetch(h,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+h+"'"}).catch(function(){return ce(h)});if(m)return new Promise(function(t,e){m(h,function(e){t(new Uint8Array(e))},e)})}return Promise.resolve().then(function(){return ce(h)})}().then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(e,function(e){a("failed to asynchronously prepare wasm: "+e),w(e)})}if(se(),y.instantiateWasm)try{return y.instantiateWasm(t,r)}catch(t){return a("Module.instantiateWasm callback failed with error: "+t)}i||"function"!=typeof WebAssembly.instantiateStreaming||ue(h)||le(h)||V||"function"!=typeof fetch?o(n):fetch(h,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,t).then(n,function(e){return a("wasm streaming compile failed: "+e),a("falling back to ArrayBuffer instantiation"),o(n)})})}(),y.___wasm_call_ctors=function(){return(y.___wasm_call_ctors=y.asm.G).apply(null,arguments)},y._free=function(){return(U=y._free=y.asm.H).apply(null,arguments)}),gt=y._malloc=function(){return(gt=y._malloc=y.asm.I).apply(null,arguments)},vt=y.___errno_location=function(){return(vt=y.___errno_location=y.asm.K).apply(null,arguments)},wt=y.___getTypeName=function(){return(wt=y.___getTypeName=y.asm.L).apply(null,arguments)};y.___embind_register_native_and_builtin_types=function(){return(y.___embind_register_native_and_builtin_types=y.asm.M).apply(null,arguments)};var bt,Et=y._emscripten_builtin_memalign=function(){return(Et=y._emscripten_builtin_memalign=y.asm.N).apply(null,arguments)},_t=y.___cxa_is_pointer_type=function(){return(_t=y.___cxa_is_pointer_type=y.asm.O).apply(null,arguments)};function Tt(){function e(){if(!bt&&(bt=!0,y.calledRun=!0,!X)){if(y.noFSInit||T.init.initialized||T.init(),T.ignorePermissions=!1,de(oe),y.onRuntimeInitialized&&y.onRuntimeInitialized(),y.postRun)for("function"==typeof y.postRun&&(y.postRun=[y.postRun]);y.postRun.length;)e=y.postRun.shift(),ie.unshift(e);var e;de(ie)}}if(!(0e.forEach(e=>d.set(e,t)));class ${constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}fillFromReader(r){return e=this,u=function*(){var{done:e,value:t}=yield r.read();return e?void this.close():(this.write(t),this.fillFromReader(r))},new(a=(a=s=void 0)||Promise)(function(r,t){function n(e){try{i(u.next(e))}catch(e){t(e)}}function o(e){try{i(u.throw(e))}catch(e){t(e)}}function i(e){var t;e.done?r(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(n,o)}i((u=u.apply(e,s||[])).next())});var e,s,a,u}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(r){return new Promise((t,e)=>{if(this.resolve)return e("last read not complete yet");this.resolve=e=>{delete this.resolve,delete this.need,t(e)},this.demand(r,!0)})}readU32(){return this.read(u)}readU16(){return this.read(l)}readU8(){return this.read(c)}close(){this.g&&this.g.return()}flush(){if(this.buffer&&this.need){let e=null;const n=this.buffer.subarray(this.consumed);let t=0;var r=e=>n.length<(t=e);if("number"==typeof this.need){if(r(this.need))return;e=n.subarray(0,t)}else if(this.need instanceof ArrayBuffer){if(r(this.need.byteLength))return;new Uint8Array(this.need).set(n.subarray(0,t)),e=this.need}else if(this.need===u){if(r(4))return;e=n[0]<<24|n[1]<<16|n[2]<<8|n[3]}else if(this.need===l){if(r(2))return;e=n[0]<<8|n[1]}else if(this.need===c){if(r(1))return;e=n[0]}else if(d.has(this.need.constructor)){if(r(this.need.length<>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,r=t+e;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{const e=new Uint8Array(r);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,r)}return this.buffer=new Uint8Array(e),this.buffer}}function f(a){function r(){i&&(i.abort(),i=null)}let n=[],u=[],o={},i=new AbortController,s=null,l=null,e=null,c=null,d=null,f=null,p=!1,h=!1,m=!1,y=null,g=null,v=[],w=0,b=0,E=("VideoEncoder"in self&&(o={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(t){var e;o.isEmitInfo||(E.opt.debug&&console.log("Jessibuca: [worker] Webcodecs Video Decoder initSize"),postMessage({cmd:C,w:t.codedWidth,h:t.codedHeight}),o.isEmitInfo=!0,o.offscreenCanvas=new OffscreenCanvas(t.codedWidth,t.codedHeight),o.offscreenCanvasCtx=o.offscreenCanvas.getContext("2d")),"function"==typeof t.createImageBitmap?t.createImageBitmap().then(e=>{o.offscreenCanvasCtx.drawImage(e,0,0,t.codedWidth,t.codedHeight);e=o.offscreenCanvas.transferToImageBitmap();postMessage({cmd:F,buffer:e,delay:E.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100)}):(o.offscreenCanvasCtx.drawImage(t,0,0,t.codedWidth,t.codedHeight),e=o.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:F,buffer:e,delay:E.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100))},error:function(e){console.error(e)}}),decode:function(e,t){const r=e[0]>>4==1;if(o.hasInit){t=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:r?"key":"delta"});o.decoder.decode(t)}else if(r&&0===e[1]){const t=15&e[0],r=(E.setVideoCodec(t),function(e){let r=e.subarray(1,4),n="avc1.";for(let t=0;t<3;t++){let e=r[t].toString(16);e.length<2&&(e="0"+e),n+=e}return{codec:n,description:e}}(e.slice(5)));o.decoder.configure(r),o.hasInit=!0}},reset(){o.hasInit=!1,o.isEmitInfo=!1,o.offscreenCanvas=null,o.offscreenCanvasCtx=null}}),{opt:{debug:D.debug,useOffscreen:D.useOffscreen,useWCS:D.useWCS,videoBuffer:D.videoBuffer,videoBufferDelay:D.videoBufferDelay,openWebglAlignment:D.openWebglAlignment,playType:D.playType,hasAudio:D.hasAudio,hasVideo:D.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:D.playbackForwardMaxRateDecodeIFrame,sampleRate:0,networkDelay:D.networkDelay,visibility:!0},startStreamRateInterval:function(){E.stopStreamRateInterval(),e=setInterval(()=>{l&&l(0)},1e3)},stopStreamRateInterval:function(){e&&(clearInterval(e),e=null)},useOffscreen:function(){return E.opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},getDelay:function(e){return e?(this.firstTimestamp?e&&(t=Date.now()-this.startTimestamp,r=e-this.firstTimestamp,this.delay=r<=t?t-r:r-t):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.delay):-1;var t,r},resetDelay:function(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1},doDecode:function(e){E.opt.useWCS&&E.useOffscreen()&&2===e.type&&o.decode?o.decode(e.payload,e.ts):e.decoder.decode(e.payload,e.ts,e.isIFrame)},init:function(){E.opt.debug&&console.log("Jessibuca: [worker] init");const t=E.opt.playType===k;this.stopId=setInterval(()=>{let e=null;if(n.length)if(this.dropping){for(E.opt.debug&&console.log("Jessibuca: [worker]: loop is dropping"),1===(e=n.shift()).type&&0===e.payload[1]&&E.doDecode(e);!e.isIFrame&&n.length;)E.opt.debug&&console.log("Jessibuca: [worker]: loop is dropping = true, isIFrame is",e.isIFrame),1===(e=n.shift()).type&&0===e.payload[1]&&E.doDecode(e);e.isIFrame&&n.length<10&&(this.dropping=!1,E.doDecode(e))}else if(e=n[0],-1===E.getDelay(e.ts))E.opt.debug&&console.log("Jessibuca: [worker]: common dumex delay is -1 ,data.ts is",e.ts),n.shift(),E.doDecode(e);else if(E.delay>E.opt.videoBuffer+E.opt.videoBufferDelay&&t)E.opt.debug&&console.log("Jessibuca: [worker]:",`delay is ${this.delay}, set dropping is true`),this.resetDelay(),this.dropping=!0;else for(;n.length;){if(e=n[0],!(E.getDelay(e.ts)>E.opt.videoBuffer)){E.delay<0&&E.opt.debug&&console.warn("Jessibuca: [worker]:",`delay is ${this.delay}, bufferList is `+n.length);break}n.shift(),E.doDecode(e)}},10)},close:function(){E.opt.debug&&console.log("Jessibuca: [worker]: close"),E.stopStreamRateInterval(),clearInterval(this.stopId),this.stopId=null,_.clear&&_.clear(),T.clear&&T.clear(),_=null,T=null,o.reset&&o.reset(),this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1,this.webglObj&&(this.webglObj.destroy(),this.offscreenCanvas=null,this.offscreenCanvasGL=null,this.offscreenCanvasCtx=null),n=[],u=[],i=null,c=null,s&&(s.close(),s=null),d=null,f=null,p=!1,h=!1,m=!1,v=[],w=0,b=0,y=null,g=null,delete E.playAudioPlanar,delete E.draw,delete E.demuxFlv},pushBuffer:function(e,t){if(E.opt.playType===k){const e=E.opt.videoBuffer+E.opt.videoBufferDelay;E.getDelay(t.ts)>e&&(E.opt.debug&&console.log(`Jessibuca: [worker]: pushBuffer, decoder.delay is ${E.delay} more than `+e),this.dropBuffer())}1===t.type?n.push({ts:t.ts,payload:e,decoder:{decode:E.decodeAudio},type:1,isIFrame:!1}):2===t.type&&n.push({ts:t.ts,payload:e,decoder:{decode:E.decodeVideo},type:2,isIFrame:t.isIFrame}),60{var t;"[object Number]"===Object.prototype.toString.call(e)&&(n+=e,1e3<=(t=(e=U())-o)&&(r(n/t*1e3),o=e,n=0))}}(e=>{postMessage({cmd:P,type:"streamRate",value:e})}),E.startStreamRateInterval(),2===t.protocol?(c=new $(E.demuxFlv()),fetch(e,{signal:i.signal}).then(e=>{postMessage({cmd:P,type:x}),e.body.pipeTo(new WritableStream({write:e=>{l(e.byteLength),c.write(e)},close:()=>{c=null},abort:e=>{c=null,postMessage({cmd:P,type:M,value:e.toString()}),r()}}))}).catch(e=>{postMessage({cmd:P,type:M,value:e.toString()}),r()})):1===t.protocol&&(t.isFlv&&(c=new $(E.demuxFlv())),(s=new WebSocket(e)).binaryType="arraybuffer",s.onopen=()=>{E.opt.debug&&console.log("Jessibuca: [worker]: fetchStream, WebsocketStream socket open"),postMessage({cmd:P,type:x})},s.onclose=()=>{E.opt.debug&&console.log("Jessibuca: [worker]: fetchStream, WebsocketStream socket close"),c=null,postMessage({cmd:P,type:"streamEnd"})},s.onerror=e=>{E.opt.debug&&console.log("Jessibuca: [worker]: fetchStream, WebsocketStream socket error"),c=null,postMessage({cmd:P,type:"websocketError",value:e.toString()})},s.onmessage=e=>{l(e.data.byteLength),t.isFlv?c.write(e.data):E.demuxM7s(e.data)})},demuxFlv:function*(){yield 9;const t=new ArrayBuffer(4),r=new Uint8Array(t),n=new Uint32Array(t);for(;;){r[3]=0;const t=yield 15,s=t[4];r[0]=t[7],r[1]=t[6],r[2]=t[5];var o=n[0];r[0]=t[10],r[1]=t[9],r[2]=t[8];let e=n[0];16777215===e&&(r[3]=t[11],e=n[0]);var i=(yield o).slice();switch(s){case 8:E.decode(i,{type:1,ts:e});break;case 9:if(0>4==1;E.calcNetworkDelay(e),E.decode(i,{type:2,ts:e,isIFrame:t})}}}},decode:function(e,t){var r=E.opt.playType;1===t.type?E.opt.hasAudio&&(postMessage({cmd:P,type:"streamAbps",value:e.byteLength}),r===k?E.pushBuffer(e,{type:t.type,ts:t.ts}):r===A&&_.decode(e,t.ts)):2===t.type&&E.opt.hasVideo&&(postMessage({cmd:P,type:"streamVbps",value:e.byteLength}),r===k?E.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame}):r===A&&(E.opt.playbackRate>=E.opt.playbackForwardMaxRateDecodeIFrame?t.isIFrame&&E.decodeVideo(e,t.ts,t.isIFrame):1===E.opt.playbackRate?E.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame}):E.decodeVideo(e,t.ts,t.isIFrame)))},setCodecAudio:function(e){var t=e[0]>>4;(10==t&&0===e[1]||7==t||8==t)&&(e=10==t?e.slice(2):e.slice(1),_.setCodec(t,E.opt.sampleRate,e),h=!0)},decodeAudio:function(e,t){var r=e[0]>>4;h?_.decode(10==r?e.slice(2):e.slice(1),t):E.setCodecAudio(e)},setCodecVideo:function(e){var t=15&e[0];e[0]>>4!=1||0!==e[1]||7!=t&&12!=t||(E.opt.debug&&console.log("Jessibuca: [worker]: decodeVideo: init video codec"),p=!0,e=e.slice(5),T.setCodec(t,e))},decodeVideo:function(e,t,r){p?(m=!m&&r?!0:m)?T.decode(e.slice(5),r?1:0,t):E.opt.debug&&console.error("Jessibuca: [worker]: decodeVideo: first frame is not iframe"):E.setCodecVideo(e)},clearBuffer:function(){var e=0>4==1;E.calcNetworkDelay(r),E.decode(new Uint8Array(e,5),{type:2,ts:r,isIFrame:n})}}},calcNetworkDelay:function(e){var t,r,n;!p||e<=0||(null===y&&(y=e,g=I()),(n=(t=e-y)<(r=I()-g)?r-t:t-r)>E.opt.networkDelay&&E.opt.debug&&console.warn("Jessibuca: [worker]: ",`demuxFlv now dts:${e}, vs start is ${t},local diff is ${r} ,delay is `+n),postMessage({cmd:P,type:"netBuf",value:n}))},videoInfo:function(e,t,r){function n(e,t){var r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.bindTexture(i.TEXTURE_2D,null),i.uniform1i(i.getUniformLocation(o,e),t),r}var i,o,s,a,u,l,c;postMessage({cmd:"videoCode",code:e}),postMessage({cmd:C,w:t,h:r}),d=t,f=r,E.useOffscreen()&&(this.offscreenCanvas=new OffscreenCanvas(t,r),this.offscreenCanvasGL=this.offscreenCanvas.getContext("webgl"),this.webglObj=(i=this.offscreenCanvasGL,e=E.opt.openWebglAlignment,t=["attribute vec4 vertexPos;","attribute vec4 texturePos;","varying vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos.xy;","}"].join("\n"),r=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n"),e&&i.pixelStorei(i.UNPACK_ALIGNMENT,1),e=i.createShader(i.VERTEX_SHADER),i.shaderSource(e,t),i.compileShader(e),i.getShaderParameter(e,i.COMPILE_STATUS)||(console.log("Vertex shader failed to compile: "+i.getShaderInfoLog(e)),i.deleteShader(e)),t=i.createShader(i.FRAGMENT_SHADER),i.shaderSource(t,r),i.compileShader(t),i.getShaderParameter(t,i.COMPILE_STATUS)||(console.log("Fragment shader failed to compile: "+i.getShaderInfoLog(t)),i.deleteShader(t)),o=i.createProgram(),i.attachShader(o,e),i.attachShader(o,t),i.linkProgram(o),i.getProgramParameter(o,i.LINK_STATUS)||console.log("Program failed to compile: "+i.getProgramInfoLog(o)),i.useProgram(o),s=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,s),i.bufferData(i.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),i.STATIC_DRAW),r=i.getAttribLocation(o,"vertexPos"),i.enableVertexAttribArray(r),i.vertexAttribPointer(r,2,i.FLOAT,!1,0,0),a=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,a),i.bufferData(i.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),i.STATIC_DRAW),e=i.getAttribLocation(o,"texturePos"),i.enableVertexAttribArray(e),i.vertexAttribPointer(e,2,i.FLOAT,!1,0,0),u=n("ySampler",0),l=n("uSampler",1),c=n("vSampler",2),{render:function(e,t,r,n,o){i.viewport(0,0,e,t),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,u),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e,t,0,i.LUMINANCE,i.UNSIGNED_BYTE,r),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,l),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,n),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,c),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,o),i.drawArrays(i.TRIANGLE_STRIP,0,4)},renderYUV:function(e,t,r){var n=r.slice(0,e*t),o=r.slice(e*t,e*t*5/4),r=r.slice(e*t*5/4,e*t*3/2);i.viewport(0,0,e,t),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,u),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e,t,0,i.LUMINANCE,i.UNSIGNED_BYTE,n),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,l),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,o),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,c),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,r),i.drawArrays(i.TRIANGLE_STRIP,0,4)},destroy:function(){try{i.deleteProgram(o),i.deleteBuffer(s),i.deleteBuffer(a),i.deleteTexture(u),i.deleteTexture(l),i.deleteBuffer(c)}catch(e){}}}))},audioInfo:function(e,t,r){postMessage({cmd:"audioCode",code:e}),postMessage({cmd:"initAudio",sampleRate:t,channels:r}),b=r},yuvData:function(e,t){var r=d*f*3/2,e=a.HEAPU8.subarray(e,e+r),r=new Uint8Array(e);E.useOffscreen()?(this.webglObj.renderYUV(d,f,r),e=this.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:F,buffer:e,delay:this.delay,ts:t},[e])):postMessage({cmd:F,output:r,delay:this.delay,ts:t},[r.buffer])},pcmData:function(t,e,r){let n=e,o=[],i=0;for(let e=0;e<2;e++){var s=a.HEAPU32[(t>>2)+e]>>2;o[e]=a.HEAPF32.subarray(s,s+n)}if(w){if(!(n>=(e=1024-w)))return w+=n,u[0]=Float32Array.of(...u[0],...o[0]),void(2==b&&(u[1]=Float32Array.of(...u[1],...o[1])));v[0]=Float32Array.of(...u[0],...o[0].subarray(0,e)),2==b&&(v[1]=Float32Array.of(...u[1],...o[1].subarray(0,e))),postMessage({cmd:S,buffer:v,ts:r},v.map(e=>e.buffer)),i=e,n-=e}for(w=n;1024<=w;w-=1024)v[0]=o[0].slice(i,i+=1024),2==b&&(v[1]=o[1].slice(i-1024,i)),postMessage({cmd:S,buffer:v,ts:r},v.map(e=>e.buffer));w&&(u[0]=o[0].slice(i),2==b&&(u[1]=o[1].slice(i)))},timeEnd:function(){postMessage({cmd:"workerEnd"})}}),_=new a.AudioDecoder(E),T=new a.VideoDecoder(E);postMessage({cmd:R}),self.onmessage=function(e){var t=e.data;switch(t.cmd){case R:try{E.opt=Object.assign(E.opt,JSON.parse(t.opt))}catch(e){}E.init();break;case"decode":E.pushBuffer(t.buffer,t.options);break;case"audioDecode":E.decodeAudio(t.buffer,t.ts);break;case"videoDecode":E.decodeVideo(t.buffer,t.ts,t.isIFrame);break;case"clearBuffer":E.clearBuffer(t.needClear);break;case"fetchStream":E.fetchStream(t.url,JSON.parse(t.opt));break;case"close":E.close();break;case"updateConfig":E.opt[t.key]=t.value}}}$.U32=u,$.U16=l,$.U8=c,Date.now||(Date.now=function(){return(new Date).getTime()}),i.postRun=function(){f(i)}}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("path"),require("fs"),require("crypto")):"function"==typeof define&&define.amd?define(["path","fs","crypto"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).path,e.fs,e.crypto$1)}(this,function(e,_,g){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var Ut=t(e),xt=t(_),Bt=t(g);function r(e,t){return e(t={exports:{}},t.exports),t.exports}var y=r(function(z){var _;(_=void 0!==(_=void 0!==_?_:{})?_:{}).locateFile=function(e){return"decoder-pro-simd.wasm"==e&&"undefined"!=typeof JESSIBUCA_PRO_SIMD_WASM_URL&&""!=JESSIBUCA_PRO_SIMD_WASM_URL?JESSIBUCA_PRO_SIMD_WASM_URL:e};var t,m,R,M,N,O,s,G=Object.assign({},_),H="./this.program",V="object"==typeof window,h="function"==typeof importScripts,$="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,e="",j=($?(e=h?Ut.default.dirname(e)+"/":__dirname+"/",O=()=>{N||(M=xt.default,N=Ut.default)},t=function(e,t){return O(),e=N.normalize(e),M.readFileSync(e,t?void 0:"utf8")},R=e=>{e=t(e,!0);return e=e.buffer?e:new Uint8Array(e)},m=(e,r,i)=>{O(),e=N.normalize(e),M.readFile(e,function(e,t){e?i(e):r(t.buffer)})},1{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},h&&(R=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),m=(e,t,r)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):r()},i.onerror=r,i.send(null)}),_.print||console.log.bind(console)),o=_.printErr||console.warn.bind(console),W=(Object.assign(_,G),_.arguments&&_.arguments,_.thisProgram&&(H=_.thisProgram),_.quit&&_.quit,_.wasmBinary&&(s=_.wasmBinary),_.noExitRuntime,"object"!=typeof WebAssembly&&b("no native wasm support detected"),!1);function Y(e,t){e||b(t)}var q,u,f,l,X,d,p,K,Z,J,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function a(e,t,r){for(var i=t+r,n=t;e[n]&&!(i<=n);)++n;if(16>10,56320|1023&o))):s+=String.fromCharCode((31&l)<<6|a)):s+=String.fromCharCode(l)}return s}function ee(e,t){return e?a(f,e,t):""}function te(e,t,r,i){if(!(0>6,t[r++]=128|63&o}else if(o<=65535){if(s<=r+2)break;t[r++]=224|o>>12,t[r++]=128|o>>6&63,t[r++]=128|63&o}else{if(s<=r+3)break;t[r++]=240|o>>18,t[r++]=128|o>>12&63,t[r++]=128|o>>6&63,t[r++]=128|63&o}}return t[r]=0,r-n}function re(e){for(var t=0,r=0;r>2]=e},this.get_type=function(){return p[this.ptr+4>>2]},this.set_destructor=function(e){p[this.ptr+8>>2]=e},this.get_destructor=function(){return p[this.ptr+8>>2]},this.set_refcount=function(e){d[this.ptr>>2]=e},this.set_caught=function(e){u[this.ptr+12>>0]=e=e?1:0},this.get_caught=function(){return 0!=u[this.ptr+12>>0]},this.set_rethrown=function(e){u[this.ptr+13>>0]=e=e?1:0},this.get_rethrown=function(){return 0!=u[this.ptr+13>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=d[this.ptr>>2];d[this.ptr>>2]=e+1},this.release_ref=function(){var e=d[this.ptr>>2];return d[this.ptr>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){p[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return p[this.ptr+16>>2]},this.get_exception_ptr=function(){if(St(this.get_type()))return p[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}le(c="decoder-pro-simd.wasm")||(G=c,c=_.locateFile?_.locateFile(G,e):e+G);var v={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,i=e.length-1;0<=i;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=v.isAbs(e),r="/"===e.substr(-1);return(e=(e=v.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||t?e:".")&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var e=v.splitPath(e),t=e[0],e=e[1];return t||e?t+(e=e&&e.substr(0,e.length-1)):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=v.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments,0);return v.normalize(e.join("/"))},join2:(e,t)=>v.normalize(e+"/"+t)},w={resolve:function(){for(var e="",t=!1,r=arguments.length-1;-1<=r&&!t;r--){var i=0<=r?arguments[r]:E.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=v.isAbs(i)}return(t?"/":"")+v.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/")||"."},relative:(e,t)=>{function r(e){for(var t=0;t>>0),0!=r&&(t=Math.max(t,256)),r=e.contents,e.contents=new Uint8Array(t),0=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-n,i);if(8!!e),!1),i=E.root,n="/",s=0;s{for(var t,r;;){if(E.isRoot(e))return r=e.mount.mountpoint,t?"/"!==r[r.length-1]?r+"/"+t:r+t:r;t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,i=0;i>>0)%E.nameTable.length},hashAddNode:e=>{var t=E.hashName(e.parent.id,e.name);e.name_next=E.nameTable[t],E.nameTable[t]=e},hashRemoveNode:e=>{var t=E.hashName(e.parent.id,e.name);if(E.nameTable[t]===e)E.nameTable[t]=e.name_next;else for(var r=E.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=E.mayLookup(e);if(r)throw new E.ErrnoError(r,e);for(var r=E.hashName(e.id,t),i=E.nameTable[r];i;i=i.name_next){var n=i.name;if(i.parent.id===e.id&&n===t)return i}return E.lookup(e,t)},createNode:(e,t,r,i)=>{e=new E.FSNode(e,t,r,i);return E.hashAddNode(e),e},destroyNode:e=>{E.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=E.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>E.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{return E.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return E.lookupNode(e,t),20}catch(e){}return E.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var i;try{i=E.lookupNode(e,t)}catch(e){return e.errno}t=E.nodePermissions(e,"wx");if(t)return t;if(r){if(!E.isDir(i.mode))return 54;if(E.isRoot(i)||E.getPath(i)===E.cwd())return 10}else if(E.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?E.isLink(e.mode)?32:E.isDir(e.mode)&&("r"!==E.flagsToPermissionString(t)||512&t)?31:E.nodePermissions(e,E.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:function(){for(var e=0E.streams[e],createStream:(e,t,r)=>{E.FSStream||(E.FSStream=function(){this.shared={}},E.FSStream.prototype={},Object.defineProperties(E.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new E.FSStream,e);t=E.nextfd(t,r);return e.fd=t,E.streams[t]=e},closeStream:e=>{E.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=E.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new E.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{E.devices[e]={stream_ops:t}},getDevice:e=>E.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var i=r.pop();t.push(i),r.push.apply(r,i.mounts)}return t},syncfs:(t,r)=>{"function"==typeof t&&(r=t,t=!1),E.syncFSRequests++,1=i.length&&s(null)}i.forEach(e=>{if(!e.type.syncfs)return a(null);e.type.syncfs(e,t,a)})},mount:(e,t,r)=>{var i,n="/"===r,s=!r;if(n&&E.root)throw new E.ErrnoError(10);if(!n&&!s){s=E.lookupPath(r,{follow_mount:!1});if(r=s.path,i=s.node,E.isMountpoint(i))throw new E.ErrnoError(10);if(!E.isDir(i.mode))throw new E.ErrnoError(54)}s={type:e,opts:t,mountpoint:r,mounts:[]},t=e.mount(s);return(t.mount=s).root=t,n?E.root=t:i&&(i.mounted=s,i.mount&&i.mount.mounts.push(s)),t},unmount:e=>{e=E.lookupPath(e,{follow_mount:!1});if(!E.isMountpoint(e.node))throw new E.ErrnoError(28);var e=e.node,t=e.mounted,i=E.getMounts(t),t=(Object.keys(E.nameTable).forEach(e=>{for(var t=E.nameTable[e];t;){var r=t.name_next;i.includes(t.mount)&&E.destroyNode(t),t=r}}),e.mounted=null,e.mount.mounts.indexOf(t));e.mount.mounts.splice(t,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var i=E.lookupPath(e,{parent:!0}).node,e=v.basename(e);if(!e||"."===e||".."===e)throw new E.ErrnoError(28);var n=E.mayCreate(i,e);if(n)throw new E.ErrnoError(n);if(i.node_ops.mknod)return i.node_ops.mknod(i,e,t,r);throw new E.ErrnoError(63)},create:(e,t)=>E.mknod(e,t=(t=void 0!==t?t:438)&4095|32768,0),mkdir:(e,t)=>E.mknod(e,t=(t=void 0!==t?t:511)&1023|16384,0),mkdirTree:(e,t)=>{for(var r=e.split("/"),i="",n=0;n(void 0===r&&(r=t,t=438),E.mknod(e,t|=8192,r)),symlink:(e,t)=>{if(!w.resolve(e))throw new E.ErrnoError(44);var r=E.lookupPath(t,{parent:!0}).node;if(!r)throw new E.ErrnoError(44);var t=v.basename(t),i=E.mayCreate(r,t);if(i)throw new E.ErrnoError(i);if(r.node_ops.symlink)return r.node_ops.symlink(r,t,e);throw new E.ErrnoError(63)},rename:(e,t)=>{var r=v.dirname(e),i=v.dirname(t),n=v.basename(e),s=v.basename(t),a=E.lookupPath(e,{parent:!0}).node,o=E.lookupPath(t,{parent:!0}).node;if(!a||!o)throw new E.ErrnoError(44);if(a.mount!==o.mount)throw new E.ErrnoError(75);var l,d=E.lookupNode(a,n);if("."!==w.relative(e,i).charAt(0))throw new E.ErrnoError(28);if("."!==w.relative(t,r).charAt(0))throw new E.ErrnoError(55);try{l=E.lookupNode(o,s)}catch(e){}if(d!==l){i=E.isDir(d.mode),t=E.mayDelete(a,n,i);if(t)throw new E.ErrnoError(t);if(t=l?E.mayDelete(o,s,i):E.mayCreate(o,s))throw new E.ErrnoError(t);if(!a.node_ops.rename)throw new E.ErrnoError(63);if(E.isMountpoint(d)||l&&E.isMountpoint(l))throw new E.ErrnoError(10);if(o!==a&&(t=E.nodePermissions(a,"w")))throw new E.ErrnoError(t);E.hashRemoveNode(d);try{a.node_ops.rename(d,o,s)}catch(e){throw e}finally{E.hashAddNode(d)}}},rmdir:e=>{var t=E.lookupPath(e,{parent:!0}).node,e=v.basename(e),r=E.lookupNode(t,e),i=E.mayDelete(t,e,!0);if(i)throw new E.ErrnoError(i);if(!t.node_ops.rmdir)throw new E.ErrnoError(63);if(E.isMountpoint(r))throw new E.ErrnoError(10);t.node_ops.rmdir(t,e),E.destroyNode(r)},readdir:e=>{e=E.lookupPath(e,{follow:!0}).node;if(e.node_ops.readdir)return e.node_ops.readdir(e);throw new E.ErrnoError(54)},unlink:e=>{var t=E.lookupPath(e,{parent:!0}).node;if(!t)throw new E.ErrnoError(44);var e=v.basename(e),r=E.lookupNode(t,e),i=E.mayDelete(t,e,!1);if(i)throw new E.ErrnoError(i);if(!t.node_ops.unlink)throw new E.ErrnoError(63);if(E.isMountpoint(r))throw new E.ErrnoError(10);t.node_ops.unlink(t,e),E.destroyNode(r)},readlink:e=>{e=E.lookupPath(e).node;if(!e)throw new E.ErrnoError(44);if(e.node_ops.readlink)return w.resolve(E.getPath(e.parent),e.node_ops.readlink(e));throw new E.ErrnoError(28)},stat:(e,t)=>{e=E.lookupPath(e,{follow:!t}).node;if(!e)throw new E.ErrnoError(44);if(e.node_ops.getattr)return e.node_ops.getattr(e);throw new E.ErrnoError(63)},lstat:e=>E.stat(e,!0),chmod:(e,t,r)=>{r="string"==typeof e?E.lookupPath(e,{follow:!r}).node:e;if(!r.node_ops.setattr)throw new E.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,t)=>{E.chmod(e,t,!0)},fchmod:(e,t)=>{e=E.getStream(e);if(!e)throw new E.ErrnoError(8);E.chmod(e.node,t)},chown:(e,t,r,i)=>{i="string"==typeof e?E.lookupPath(e,{follow:!i}).node:e;if(!i.node_ops.setattr)throw new E.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,r)=>{E.chown(e,t,r,!0)},fchown:(e,t,r)=>{e=E.getStream(e);if(!e)throw new E.ErrnoError(8);E.chown(e.node,t,r)},truncate:(e,t)=>{if(t<0)throw new E.ErrnoError(28);e="string"==typeof e?E.lookupPath(e,{follow:!0}).node:e;if(!e.node_ops.setattr)throw new E.ErrnoError(63);if(E.isDir(e.mode))throw new E.ErrnoError(31);if(!E.isFile(e.mode))throw new E.ErrnoError(28);var r=E.nodePermissions(e,"w");if(r)throw new E.ErrnoError(r);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{e=E.getStream(e);if(!e)throw new E.ErrnoError(8);if(0==(2097155&e.flags))throw new E.ErrnoError(28);E.truncate(e.node,t)},utime:(e,t,r)=>{e=E.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new E.ErrnoError(44);var i;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?E.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)i=e;else{e=v.normalize(e);try{i=E.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var n=!1;if(64&t)if(i){if(128&t)throw new E.ErrnoError(20)}else i=E.mknod(e,r,0),n=!0;if(!i)throw new E.ErrnoError(44);if(E.isChrdev(i.mode)&&(t&=-513),65536&t&&!E.isDir(i.mode))throw new E.ErrnoError(54);if(!n){r=E.mayOpen(i,t);if(r)throw new E.ErrnoError(r)}512&t&&!n&&E.truncate(i,0),t&=-131713;r=E.createStream({node:i,path:E.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return r.stream_ops.open&&r.stream_ops.open(r),!_.logReadFiles||1&t||(E.readFiles||(E.readFiles={}),e in E.readFiles||(E.readFiles[e]=1)),r},close:e=>{if(E.isClosed(e))throw new E.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{E.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(E.isClosed(e))throw new E.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new E.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new E.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,i,n)=>{if(i<0||n<0)throw new E.ErrnoError(28);if(E.isClosed(e))throw new E.ErrnoError(8);if(1==(2097155&e.flags))throw new E.ErrnoError(8);if(E.isDir(e.node.mode))throw new E.ErrnoError(31);if(!e.stream_ops.read)throw new E.ErrnoError(28);var s=void 0!==n;if(s){if(!e.seekable)throw new E.ErrnoError(70)}else n=e.position;t=e.stream_ops.read(e,t,r,i,n);return s||(e.position+=t),t},write:(e,t,r,i,n,s)=>{if(i<0||n<0)throw new E.ErrnoError(28);if(E.isClosed(e))throw new E.ErrnoError(8);if(0==(2097155&e.flags))throw new E.ErrnoError(8);if(E.isDir(e.node.mode))throw new E.ErrnoError(31);if(!e.stream_ops.write)throw new E.ErrnoError(28);e.seekable&&1024&e.flags&&E.llseek(e,0,2);var a=void 0!==n;if(a){if(!e.seekable)throw new E.ErrnoError(70)}else n=e.position;t=e.stream_ops.write(e,t,r,i,n,s);return a||(e.position+=t),t},allocate:(e,t,r)=>{if(E.isClosed(e))throw new E.ErrnoError(8);if(t<0||r<=0)throw new E.ErrnoError(28);if(0==(2097155&e.flags))throw new E.ErrnoError(8);if(!E.isFile(e.node.mode)&&!E.isDir(e.node.mode))throw new E.ErrnoError(43);if(!e.stream_ops.allocate)throw new E.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,i,n)=>{if(0!=(2&i)&&0==(2&n)&&2!=(2097155&e.flags))throw new E.ErrnoError(2);if(1==(2097155&e.flags))throw new E.ErrnoError(2);if(e.stream_ops.mmap)return e.stream_ops.mmap(e,t,r,i,n);throw new E.ErrnoError(43)},msync:(e,t,r,i,n)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,i,n):0,munmap:e=>0,ioctl:(e,t,r)=>{if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,t,r);throw new E.ErrnoError(59)},readFile:function(e){let t=1E.currentPath,chdir:e=>{e=E.lookupPath(e,{follow:!0});if(null===e.node)throw new E.ErrnoError(44);if(!E.isDir(e.node.mode))throw new E.ErrnoError(54);var t=E.nodePermissions(e.node,"x");if(t)throw new E.ErrnoError(t);E.currentPath=e.path},createDefaultDirectories:()=>{E.mkdir("/tmp"),E.mkdir("/home"),E.mkdir("/home/web_user")},createDefaultDevices:()=>{E.mkdir("/dev"),E.registerDevice(E.makedev(1,3),{read:()=>0,write:(e,t,r,i,n)=>i}),E.mkdev("/dev/null",E.makedev(1,3)),n.register(E.makedev(5,0),n.default_tty_ops),n.register(E.makedev(6,0),n.default_tty1_ops),E.mkdev("/dev/tty",E.makedev(5,0)),E.mkdev("/dev/tty1",E.makedev(6,0));var e=function(){var e;if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=new Uint8Array(1),()=>(crypto.getRandomValues(e),e[0]);if($)try{var t=Bt.default;return()=>t.randomBytes(1)[0]}catch(e){}return()=>b("randomDevice")}();E.createDevice("/dev","random",e),E.createDevice("/dev","urandom",e),E.mkdir("/dev/shm"),E.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{E.mkdir("/proc");var t=E.mkdir("/proc/self");E.mkdir("/proc/self/fd"),E.mount({mount:()=>{var e=E.createNode(t,"fd",16895,73);return e.node_ops={lookup:(e,t)=>{var r=E.getStream(+t);if(!r)throw new E.ErrnoError(8);t={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return t.parent=t}},e}},{},"/proc/self/fd")},createStandardStreams:()=>{_.stdin?E.createDevice("/dev","stdin",_.stdin):E.symlink("/dev/tty","/dev/stdin"),_.stdout?E.createDevice("/dev","stdout",null,_.stdout):E.symlink("/dev/tty","/dev/stdout"),_.stderr?E.createDevice("/dev","stderr",null,_.stderr):E.symlink("/dev/tty1","/dev/stderr"),E.open("/dev/stdin",0),E.open("/dev/stdout",1),E.open("/dev/stderr",1)},ensureErrnoError:()=>{E.ErrnoError||(E.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},E.ErrnoError.prototype=new Error,E.ErrnoError.prototype.constructor=E.ErrnoError,[44].forEach(e=>{E.genericErrors[e]=new E.ErrnoError(e),E.genericErrors[e].stack=""}))},staticInit:()=>{E.ensureErrnoError(),E.nameTable=new Array(4096),E.mount(S,{},"/"),E.createDefaultDirectories(),E.createDefaultDevices(),E.createSpecialDirectories(),E.filesystems={MEMFS:S}},init:(e,t,r)=>{E.init.initialized=!0,E.ensureErrnoError(),_.stdin=e||_.stdin,_.stdout=t||_.stdout,_.stderr=r||_.stderr,E.createStandardStreams()},quit:()=>{E.init.initialized=!1;for(var e=0;e{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{e=E.analyzePath(e,t);return e.exists?e.object:null},analyzePath:(e,t)=>{try{e=(i=E.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=E.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=i.path,r.parentObject=i.node,r.name=v.basename(e),i=E.lookupPath(e,{follow:!t}),r.exists=!0,r.path=i.path,r.object=i.node,r.name=i.node.name,r.isRoot="/"===i.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,i)=>{e="string"==typeof e?e:E.getPath(e);for(var n=t.split("/").reverse();n.length;){var s=n.pop();if(s){var a=v.join2(e,s);try{E.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,t,r,i,n)=>{e=v.join2("string"==typeof e?e:E.getPath(e),t),t=E.getMode(i,n);return E.create(e,t)},createDataFile:(e,t,r,i,n,s)=>{var a=t,t=(e&&(e="string"==typeof e?e:E.getPath(e),a=t?v.join2(e,t):e),E.getMode(i,n)),e=E.create(a,t);if(r){if("string"==typeof r){for(var o=new Array(r.length),l=0,d=r.length;l{var e=v.join2("string"==typeof e?e:E.getPath(e),t),t=E.getMode(!!l,!!a),r=(E.createDevice.major||(E.createDevice.major=64),E.makedev(E.createDevice.major++,0));return E.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{a&&a.buffer&&a.buffer.length&&a(10)},read:(e,t,r,i,n)=>{for(var s,a=0,o=0;o{for(var s=0;s{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!t)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=pe(t(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new E.ErrnoError(29)}},createLazyFile:(e,t,a,r,i)=>{function n(){this.lengthKnown=!1,this.chunks=[]}if(n.prototype.get=function(e){var t;if(!(e>this.length-1||e<0))return t=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[t]},n.prototype.setDataGetter=function(e){this.getter=e},n.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var t,i=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,e=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576,s=(r||(n=i),this);s.setDataGetter(e=>{var t=e*n,r=(e+1)*n-1,r=Math.min(r,i-1);if(void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(t=s.length)return 0;var a=Math.min(s.length-n,i);if(s.slice)for(var o=0;o{var t=o.stream_ops[e];l[e]=function(){return E.forceLoadFile(o),t.apply(null,arguments)}}),l.read=(e,t,r,i,n)=>(E.forceLoadFile(o),d(e,t,r,i,n)),l.mmap=(e,t,r,i,n)=>{E.forceLoadFile(o);var s=ce(t);if(s)return d(e,u,s,t,r),{ptr:s,allocated:!0};throw new E.ErrnoError(48)},o.stream_ops=l,o},createPreloadedFile:(r,i,e,n,s,a,o,l,d,h)=>{var t,u,f,p=i?w.resolve(v.join2(r,i)):r;function c(e){function t(e){h&&h(),l||E.createDataFile(r,i,e,n,s,d),a&&a(),oe()}Browser.handledByPreloadPlugin(e,p,t,()=>{o&&o(),oe()})||t(e)}ae(),"string"==typeof e?(u=o,f="al "+(t=e),m(t,e=>{Y(e,'Loading data file "'+t+'" failed (no arrayBuffer).'),c(new Uint8Array(e)),f&&oe()},e=>{if(!u)throw'Loading data file "'+t+'" failed.';u()}),f&&ae()):c(e)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(a,o,l)=>{o=o||(()=>{}),l=l||(()=>{});var e=E.indexedDB();try{var d=e.open(E.DB_NAME(),E.DB_VERSION)}catch(a){return l(a)}d.onupgradeneeded=()=>{j("creating db"),d.result.createObjectStore(E.DB_STORE_NAME)},d.onsuccess=()=>{var e=d.result.transaction([E.DB_STORE_NAME],"readwrite"),t=e.objectStore(E.DB_STORE_NAME),r=0,i=0,n=a.length;function s(){(0==i?o:l)()}a.forEach(e=>{e=t.put(E.analyzePath(e).object.contents,e);e.onsuccess=()=>{++r+i==n&&s()},e.onerror=()=>{r+ ++i==n&&s()}}),e.onerror=l},d.onerror=l},loadFilesFromDB:(o,l,d)=>{l=l||(()=>{}),d=d||(()=>{});var e=E.indexedDB();try{var h=e.open(E.DB_NAME(),E.DB_VERSION)}catch(o){return d(o)}h.onupgradeneeded=d,h.onsuccess=()=>{var e=h.result;try{var t=e.transaction([E.DB_STORE_NAME],"readonly")}catch(e){return void d(e)}var r=t.objectStore(E.DB_STORE_NAME),i=0,n=0,s=o.length;function a(){(0==n?l:d)()}o.forEach(e=>{var t=r.get(e);t.onsuccess=()=>{E.analyzePath(e).exists&&E.unlink(e),E.createDataFile(v.dirname(e),v.basename(e),t.result,!0,!0,!0),++i+n==s&&a()},t.onerror=()=>{i+ ++n==s&&a()}}),t.onerror=d},h.onerror=d}},U={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(v.isAbs(t))return t;var i;if(-100===e)i=E.cwd();else{e=E.getStream(e);if(!e)throw new E.ErrnoError(8);i=e.path}if(0!=t.length)return v.join2(i,t);if(r)return i;throw new E.ErrnoError(44)},doStat:function(e,t,r){try{var i=e(t)}catch(e){if(e&&e.node&&v.normalize(t)!==v.normalize(E.getPath(e.node)))return-54;throw e}return d[r>>2]=i.dev,d[r+4>>2]=0,d[r+8>>2]=i.ino,d[r+12>>2]=i.mode,d[r+16>>2]=i.nlink,d[r+20>>2]=i.uid,d[r+24>>2]=i.gid,d[r+28>>2]=i.rdev,d[r+32>>2]=0,y=[i.size>>>0,(g=i.size,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+40>>2]=y[0],d[r+44>>2]=y[1],d[r+48>>2]=4096,d[r+52>>2]=i.blocks,y=[Math.floor(i.atime.getTime()/1e3)>>>0,(g=Math.floor(i.atime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+56>>2]=y[0],d[r+60>>2]=y[1],d[r+64>>2]=0,y=[Math.floor(i.mtime.getTime()/1e3)>>>0,(g=Math.floor(i.mtime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+72>>2]=y[0],d[r+76>>2]=y[1],d[r+80>>2]=0,y=[Math.floor(i.ctime.getTime()/1e3)>>>0,(g=Math.floor(i.ctime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+88>>2]=y[0],d[r+92>>2]=y[1],d[r+96>>2]=0,y=[i.ino>>>0,(g=i.ino,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+104>>2]=y[0],d[r+108>>2]=y[1],0},doMsync:function(e,t,r,i,n){e=f.slice(e,e+r);E.msync(t,e,n,r,i)},varargs:void 0,get:function(){return U.varargs+=4,d[U.varargs-4>>2]},getStr:function(e){return ee(e)},getStreamFromFD:function(e){e=E.getStream(e);if(e)return e;throw new E.ErrnoError(8)}};function me(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var _e=void 0;function x(e){for(var t="",r=e;f[r];)t+=_e[f[r++]];return t}var B={},A={},ge={};function ye(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&t<=57?"_"+e:e}function be(e,t){return e=ye(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function ve(e,t){var r=be(t,function(e){this.name=t,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return r.prototype=Object.create(e.prototype),(r.prototype.constructor=r).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var T=void 0;function k(e){throw new T(e)}var we=void 0;function Se(e){throw new we(e)}function Ee(i,t,n){function r(e){var t=n(e);t.length!==i.length&&Se("Mismatched type converter count");for(var r=0;r{A.hasOwnProperty(e)?s[t]=A[e]:(a.push(e),B.hasOwnProperty(e)||(B[e]=[]),B[e].push(()=>{s[t]=A[e],++o===a.length&&r(s)}))}),0===a.length&&r(s)}function C(e,t,r){r=2e()))}function Ue(e){k(e.$$.ptrType.registeredClass.name+" instance already deleted")}var xe=!1;function Be(e){}function Ae(e){--e.count.value,0===e.count.value&&((e=e).smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr))}var Te={};var ke=[];function Ce(){for(;ke.length;){var e=ke.pop();e.$$.deleteScheduled=!1,e.delete()}}var Fe=void 0;var Ie={};function Pe(e,t){return t.ptrType&&t.ptr||Se("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Se("Both smartPtrType and smartPtr must be specified"),t.count={value:1},De(Object.create(e,{$$:{value:t}}))}function De(e){return"undefined"==typeof FinalizationRegistry?(De=e=>e,e):(xe=new FinalizationRegistry(e=>{Ae(e.$$)}),Be=e=>xe.unregister(e),(De=e=>{var t=e.$$;return t.smartPtr&&xe.register(e,{$$:t},e),e})(e))}function F(){}function Le(e,t,r){var i;void 0===e[t].overloadTable&&(i=e[t],e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||k("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[i.argCount]=i)}function ze(e,t,r,i,n,s,a,o){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=i,this.baseClass=n,this.getActualType=s,this.upcast=a,this.downcast=o,this.pureVirtualFunctions=[]}function Re(e,t,r){for(;t!==r;)t.upcast||k("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Me(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Re(t.$$.ptr,r,this.registeredClass)}function Ne(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),this.isSmartPointer?(i=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,i),i):0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&k("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);var r,i,n=t.$$.ptrType.registeredClass;if(i=Re(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&k("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?i=t.$$.smartPtr:k("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);break;case 1:i=t.$$.smartPtr;break;case 2:t.$$.smartPtrType===this?i=t.$$.smartPtr:(r=t.clone(),i=this.rawShare(i,Qe.toHandle(function(){r.delete()})),null!==e&&e.push(this.rawDestructor,i));break;default:k("Unsupporting sharing policy")}return i}function Oe(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&k("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Re(t.$$.ptr,r,this.registeredClass)}function Ge(e){return this.fromWireType(d[e>>2])}function I(e,t,r,i,n,s,a,o,l,d,h){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=i,this.isSmartPointer=n,this.pointeeType=s,this.sharingPolicy=a,this.rawGetPointee=o,this.rawConstructor=l,this.rawShare=d,this.rawDestructor=h,n||void 0!==t.baseClass?this.toWireType=Ne:(this.toWireType=i?Me:Oe,this.destructorFunction=null)}var He=[];function Ve(e){var t=He[e];return t||(e>=He.length&&(He.length=e+1),He[e]=t=J.get(e)),t}function P(e,t){var n,s,a,r=(e=x(e)).includes("j")?(n=e,s=t,a=[],function(){return a.length=0,Object.assign(a,arguments),t=s,r=a,(e=n).includes("j")?(i=t,e=_["dynCall_"+e],r&&r.length?e.apply(null,[i].concat(r)):e.call(null,i)):Ve(t).apply(null,r);var e,t,r,i}):Ve(t);return"function"!=typeof r&&k("unknown function pointer with signature "+e+": "+t),r}var $e=void 0;function je(e){var e=bt(e),t=x(e);return L(e),t}function We(e,t){var r=[],i={};throw t.forEach(function e(t){i[t]||A[t]||(ge[t]?ge[t].forEach(e):(r.push(t),i[t]=!0))}),new $e(e+": "+r.map(je).join([", "]))}function Ye(e,t){for(var r=[],i=0;i>2]);return r}function qe(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Xe(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=be(e.name||"unknownFunctionName",function(){}),r=(r.prototype=e.prototype,new r),e=e.apply(r,t);return e instanceof Object?e:r}function Ke(e,t,r,i,n){var s=t.length;s<2&&k("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==r,a=!1,o=1;o(e||k("Cannot use deleted val. handle = "+e),D[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ze.length?Ze.pop():D.length;return D[t]={refcount:1,value:e},t}}};function et(e){if(null===e)return"null";var t=typeof e;return"object"==t||"array"==t||"function"==t?e.toString():""+e}var tt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function rt(e,t){for(var r,i=e>>1,n=i+t/2;!(n<=i)&&X[i];)++i;if(32<(r=i<<1)-e&&tt)return tt.decode(f.subarray(e,r));for(var s="",a=0;!(t/2<=a);++a){var o=l[e+2*a>>1];if(0==o)break;s+=String.fromCharCode(o)}return s}function it(e,t,r){if((r=void 0===r?2147483647:r)<2)return 0;for(var i=t,n=(r-=2)<2*e.length?r/2:e.length,s=0;s>1]=a,t+=2}return l[t>>1]=0,t-i}function nt(e){return 2*e.length}function st(e,t){for(var r=0,i="";!(t/4<=r);){var n,s=d[e+4*r>>2];if(0==s)break;++r,65536<=s?(n=s-65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n)):i+=String.fromCharCode(s)}return i}function at(e,t,r){if((r=void 0===r?2147483647:r)<4)return 0;for(var i=t,n=i+r-4,s=0;s>2]=a,(t+=4)+4>n)break}return d[t>>2]=0,t-i}function ot(e){for(var t=0,r=0;r>1]=2,0;case 16:case 8:default:return-28;case 9:return d[yt()>>2]=28,-1}}catch(e){if(void 0!==E&&e instanceof E.ErrnoError)return-e.errno;throw e}},v:function(e,t,r,i){U.varargs=i;try{t=U.getStr(t),t=U.calculateAt(e,t);var n=i?U.get():0;return E.open(t,r,n).fd}catch(e){if(void 0!==E&&e instanceof E.ErrnoError)return-e.errno;throw e}},u:function(e,t,r,i,n){},E:function(e,r,i,n,s){var a=me(i);C(e,{name:r=x(r),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:s},argPackAdvance:8,readValueFromPointer:function(e){var t;if(1===i)t=u;else if(2===i)t=l;else{if(4!==i)throw new TypeError("Unknown boolean type size: "+r);t=d}return this.fromWireType(t[e>>a])},destructorFunction:null})},m:function(l,e,t,d,r,h,i,u,n,f,p,s,c){p=x(p),h=P(r,h),u=u&&P(i,u),f=f&&P(n,f),c=P(s,c);var a,m=ye(p);r=m,i=function(){We("Cannot construct "+p+" due to unbound types",[d])},_.hasOwnProperty(r)?(k("Cannot register public name '"+r+"' twice"),Le(_,r,r),_.hasOwnProperty(a)&&k("Cannot register multiple overloads of a function with the same number of arguments ("+a+")!"),_[r].overloadTable[a]=i):_[r]=i,Ee([l,e,t],d?[d]:[],function(e){e=e[0],e=d?(a=e.registeredClass).instancePrototype:F.prototype;var t,r,i=be(m,function(){if(Object.getPrototypeOf(this)!==n)throw new T("Use 'new' to construct "+p);if(void 0===s.constructor_body)throw new T(p+" has no accessible constructor");var e=s.constructor_body[arguments.length];if(void 0===e)throw new T("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(s.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),n=Object.create(e,{constructor:{value:i}}),s=(i.prototype=n,new ze(p,i,n,c,a,h,u,f)),e=new I(p,s,!0,!1,!1),a=new I(p+"*",s,!1,!1,!1),o=new I(p+" const*",s,!1,!0,!1);return Te[l]={pointerType:a,constPointerType:o},t=m,i=i,_.hasOwnProperty(t)||Se("Replacing nonexistant public symbol"),_[t].overloadTable,_[t]=i,_[t].argCount=r,[e,a,o]})},l:function(e,i,t,r,n,s){Y(0{We("Cannot construct "+t.name+" due to unbound types",a)},Ee([],a,function(e){return e.splice(1,0,null),t.registeredClass.constructor_body[i-1]=Ke(r,e,null,n,s),[]}),[]})},f:function(e,s,a,t,r,o,l,d){var h=Ye(a,t);s=x(s),o=P(r,o),Ee([],[e],function(t){var r=(t=t[0]).name+"."+s;function e(){We("Cannot call "+r+" due to unbound types",h)}s.startsWith("@@")&&(s=Symbol[s.substring(2)]),d&&t.registeredClass.pureVirtualFunctions.push(s);var i=t.registeredClass.instancePrototype,n=i[s];return void 0===n||void 0===n.overloadTable&&n.className!==t.name&&n.argCount===a-2?(e.argCount=a-2,e.className=t.name,i[s]=e):(Le(i,s,r),i[s].overloadTable[a-2]=e),Ee([],h,function(e){e=Ke(r,e,t,o,l);return void 0===i[s].overloadTable?(e.argCount=a-2,i[s]=e):i[s].overloadTable[a-2]=e,[]}),[]})},D:function(e,t){C(e,{name:t=x(t),fromWireType:function(e){var t=Qe.toValue(e);return Je(e),t},toWireType:function(e,t){return Qe.toHandle(t)},argPackAdvance:8,readValueFromPointer:Ge,destructorFunction:null})},o:function(e,t,r){r=me(r);C(e,{name:t=x(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:function(e,t){switch(t){case 2:return function(e){return this.fromWireType(K[e>>2])};case 3:return function(e){return this.fromWireType(Z[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}(t,r),destructorFunction:null})},c:function(e,t,r,i,n){t=x(t);var s,a=me(r),o=e=>e,r=(0===i&&(s=32-8*r,o=e=>e<>>s),t.includes("unsigned"));C(e,{name:t,fromWireType:o,toWireType:r?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:function(e,t,r){switch(t){case 0:return r?function(e){return u[e]}:function(e){return f[e]};case 1:return r?function(e){return l[e>>1]}:function(e){return X[e>>1]};case 2:return r?function(e){return d[e>>2]}:function(e){return p[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}(t,a,0!==i),destructorFunction:null})},b:function(e,t,r){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function n(e){var t=p,r=t[e>>=2],t=t[e+1];return new i(q,t,r)}C(e,{name:r=x(r),fromWireType:n,argPackAdvance:8,readValueFromPointer:n},{ignoreDuplicateRegistrations:!0})},p:function(e,t){var d="std::string"===(t=x(t));C(e,{name:t,fromWireType:function(e){var t,r=p[e>>2],i=e+4;if(d)for(var n=i,s=0;s<=r;++s){var a,o=i+s;s!=r&&0!=f[o]||(a=ee(n,o-n),void 0===t?t=a:t=t+String.fromCharCode(0)+a,n=o+1)}else{for(var l=new Array(r),s=0;s>2]=r,d&&i)te(t,f,s,r+1);else if(i)for(var a=0;aX,u=1):4===l&&(d=st,s=at,a=ot,h=()=>p,u=2),C(e,{name:n,fromWireType:function(e){for(var t,r=p[e>>2],i=h(),n=e+4,s=0;s<=r;++s){var a,o=e+4+s*l;s!=r&&0!=i[o>>u]||(a=d(n,o-n),void 0===t?t=a:t=t+String.fromCharCode(0)+a,n=o+l)}return L(e),t},toWireType:function(e,t){"string"!=typeof t&&k("Cannot pass non-string to C++ string type "+n);var r=a(t),i=gt(4+r+l);return p[i>>2]=r>>u,s(t,i+4,r+l),null!==e&&e.push(L,i),i},argPackAdvance:8,readValueFromPointer:Ge,destructorFunction:function(e){L(e)}})},q:function(e,t){C(e,{isVoid:!0,name:t=x(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},j:function(){return Date.now()},e:function(e,t,r,i){(e=dt[e])(t=Qe.toValue(t),r=void 0===(t=lt[e=r])?x(e):t,null,i)},g:Je,d:function(e,t){var r=function(e,t){for(var r,i,n=new Array(e),s=0;s>2],void 0===(i=A[r])&&k("parameter "+s+" has unknown type "+je(r)),i);return n}(e,t),t=r[0],i=t.name+"_$"+r.slice(1).map(function(e){return e.name}).join("_")+"$",n=ht[i];if(void 0!==n)return n;for(var s=["retType"],a=[t],o="",l=0;l>2]=r,e),n=r,s=0;s>0]=i.charCodeAt(s);u[n>>0]=0,l+=e.length+1}),0},y:function(e,t){var r=ft(),i=(p[e>>2]=r.length,0);return r.forEach(function(e){i+=e.length+1}),p[t>>2]=i,0},n:function(e){try{var t=U.getStreamFromFD(e);return E.close(t),0}catch(e){if(void 0!==E&&e instanceof E.ErrnoError)return e.errno;throw e}},w:function(e,t){try{var r=U.getStreamFromFD(e),i=r.tty?2:E.isDir(r.mode)?3:E.isLink(r.mode)?7:4;return u[t>>0]=i,0}catch(e){if(void 0!==E&&e instanceof E.ErrnoError)return e.errno;throw e}},B:function(e,t,r,i){try{var n=function(e,t,r){for(var i=0,n=0;n>2],a=p[t+4>>2],s=(t+=8,E.read(e,u,s,a,void 0));if(s<0)return-1;if(i+=s,s>2]=n,0}catch(e){if(void 0!==E&&e instanceof E.ErrnoError)return e.errno;throw e}},t:function(e,t,r,i,n){try{var s=r+2097152>>>0<4194305-!!t?(t>>>0)+4294967296*r:NaN;if(isNaN(s))return 61;var a=U.getStreamFromFD(e);return E.llseek(a,s,i),y=[a.position>>>0,(g=a.position,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[n>>2]=y[0],d[n+4>>2]=y[1],a.getdents&&0===s&&0===i&&(a.getdents=null),0}catch(e){if(void 0!==E&&e instanceof E.ErrnoError)return e.errno;throw e}},A:function(e,t,r,i){try{var n=function(e,t,r){for(var i=0,n=0;n>2],a=p[t+4>>2],s=(t+=8,E.write(e,u,s,a,void 0));if(s<0)return-1;i+=s}return i}(U.getStreamFromFD(e),t,r);return p[i>>2]=n,0}catch(e){if(void 0!==E&&e instanceof E.ErrnoError)return e.errno;throw e}},h:function(e){}},L=(!function(){var t={a:_t};function r(e,t){var e=e.exports;_.asm=e,e=_.asm.F.buffer,q=e,_.HEAP8=u=new Int8Array(e),_.HEAP16=l=new Int16Array(e),_.HEAP32=d=new Int32Array(e),_.HEAPU8=f=new Uint8Array(e),_.HEAPU16=X=new Uint16Array(e),_.HEAPU32=p=new Uint32Array(e),_.HEAPF32=K=new Float32Array(e),_.HEAPF64=Z=new Float64Array(e),J=_.asm.J,e=_.asm.G,ne.unshift(e),oe()}function i(e){r(e.instance)}function n(e){return function(){if(!s&&(V||h)){if("function"==typeof fetch&&!de(c))return fetch(c,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+c+"'"}).catch(function(){return he(c)});if(m)return new Promise(function(t,e){m(c,function(e){t(new Uint8Array(e))},e)})}return Promise.resolve().then(function(){return he(c)})}().then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(e,function(e){o("failed to asynchronously prepare wasm: "+e),b(e)})}if(ae(),_.instantiateWasm)try{return _.instantiateWasm(t,r)}catch(t){return o("Module.instantiateWasm callback failed with error: "+t)}s||"function"!=typeof WebAssembly.instantiateStreaming||le(c)||de(c)||$||"function"!=typeof fetch?n(i):fetch(c,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,t).then(i,function(e){return o("wasm streaming compile failed: "+e),o("falling back to ArrayBuffer instantiation"),n(i)})})}(),_.___wasm_call_ctors=function(){return(_.___wasm_call_ctors=_.asm.G).apply(null,arguments)},_._free=function(){return(L=_._free=_.asm.H).apply(null,arguments)}),gt=_._malloc=function(){return(gt=_._malloc=_.asm.I).apply(null,arguments)},yt=_.___errno_location=function(){return(yt=_.___errno_location=_.asm.K).apply(null,arguments)},bt=_.___getTypeName=function(){return(bt=_.___getTypeName=_.asm.L).apply(null,arguments)};_.___embind_register_native_and_builtin_types=function(){return(_.___embind_register_native_and_builtin_types=_.asm.M).apply(null,arguments)};var vt,wt=_._emscripten_builtin_memalign=function(){return(wt=_._emscripten_builtin_memalign=_.asm.N).apply(null,arguments)},St=_.___cxa_is_pointer_type=function(){return(St=_.___cxa_is_pointer_type=_.asm.O).apply(null,arguments)};function Et(){function e(){if(!vt&&(vt=!0,_.calledRun=!0,!W)){if(_.noFSInit||E.init.initialized||E.init(),E.ignorePermissions=!1,ue(ne),_.onRuntimeInitialized&&_.onRuntimeInitialized(),_.postRun)for("function"==typeof _.postRun&&(_.postRun=[_.postRun]);_.postRun.length;)e=_.postRun.shift(),se.unshift(e);var e;ue(se)}}if(!(0{e&&g.pixelStorei(g.UNPACK_ALIGNMENT,1);e=s(g.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n attribute vec2 aTexturePosition;\n uniform mat4 uModelMatrix;\n uniform mat4 uViewMatrix;\n uniform mat4 uProjectionMatrix;\n varying lowp vec2 vTexturePosition;\n void main(void) {\n gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n vTexturePosition = aTexturePosition;\n }\n "),t=s(g.FRAGMENT_SHADER,"\n precision highp float;\n varying highp vec2 vTexturePosition;\n uniform int isyuv;\n uniform sampler2D rgbaTexture;\n uniform sampler2D yTexture;\n uniform sampler2D uTexture;\n uniform sampler2D vTexture;\n\n const mat4 YUV2RGB = mat4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n\n void main(void) {\n\n if (isyuv>0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),r=g.createProgram(),g.attachShader(r,e),g.attachShader(r,t),g.linkProgram(r);var t,r,e=g.getProgramParameter(r,g.LINK_STATUS)?r:(console.log("Unable to initialize the shader program: "+g.getProgramInfoLog(r)),null);let y={program:e,attribLocations:{vertexPosition:g.getAttribLocation(e,"aVertexPosition"),texturePosition:g.getAttribLocation(e,"aTexturePosition")},uniformLocations:{projectionMatrix:g.getUniformLocation(e,"uProjectionMatrix"),modelMatrix:g.getUniformLocation(e,"uModelMatrix"),viewMatrix:g.getUniformLocation(e,"uViewMatrix"),rgbatexture:g.getUniformLocation(e,"rgbaTexture"),ytexture:g.getUniformLocation(e,"yTexture"),utexture:g.getUniformLocation(e,"uTexture"),vtexture:g.getUniformLocation(e,"vTexture"),isyuv:g.getUniformLocation(e,"isyuv")}},b=(t=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,t),g.bufferData(g.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),g.STATIC_DRAW),r=(r=[]).concat([0,1],[1,1],[1,0],[0,0]),e=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,e),g.bufferData(g.ARRAY_BUFFER,new Float32Array(r),g.STATIC_DRAW),r=g.createBuffer(),g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,r),g.bufferData(g.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),g.STATIC_DRAW),{position:t,texPosition:e,indices:r}),i=n(),v=n(),w=n(),S=n();function n(){var e=g.createTexture();return g.bindTexture(g.TEXTURE_2D,e),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),e}function s(e,t){e=g.createShader(e);return g.shaderSource(e,t),g.compileShader(e),g.getShaderParameter(e,g.COMPILE_STATUS)?e:(console.log("An error occurred compiling the shaders: "+g.getShaderInfoLog(e)),g.deleteShader(e),null)}function a(e,t){g.viewport(0,0,e,t),g.clearColor(0,0,0,0),g.clearDepth(1),g.enable(g.DEPTH_TEST),g.depthFunc(g.LEQUAL),g.clear(g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT);const r=U();A(r,-1,1,-1,1,.1,100);var i,n,s,a,o,l,d,h,u,f,p,c,m,_,e=U(),t=(B(e),U());i=t,n=x(0,0,0),s=x(0,0,-1),a=x(0,1,0),u=n[0],f=n[1],n=n[2],p=a[0],c=a[1],a=a[2],m=s[0],_=s[1],s=s[2],Math.abs(u-m)>4===G&&e[1]===fe}r(function(e){var a,t,o,r,i;a="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=e.exports,o=function(){for(var e,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,i=t.length,n={};re.type===i):r)[0],s=null,e=1;var t;if(0{this.reject=e,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)},this.demand(r,!0)||null==(e=this.pull)||e.call(this,r)})},new(o=(o=a=void 0)||Promise)(function(r,t){function i(e){try{s(l.next(e))}catch(e){t(e)}}function n(e){try{s(l.throw(e))}catch(e){t(e)}}function s(e){var t;e.done?r(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(i,n)}s((l=l.apply(e,a||[])).next())});var e,a,o,l}readU32(){return this.read(k)}readU16(){return this.read(C)}readU8(){return this.read(F)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null!=(e=this.reject)&&e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(this.buffer&&this.need){let e=null;const i=this.buffer.subarray(this.consumed);let t=0;var r=e=>i.length<(t=e);if("number"==typeof this.need){if(r(this.need))return;e=i.subarray(0,t)}else if(this.need===k){if(r(4))return;e=i[0]<<24|i[1]<<16|i[2]<<8|i[3]}else if(this.need===C){if(r(2))return;e=i[0]<<8|i[1]}else if(this.need===F){if(r(1))return;e=i[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(i.subarray(0,t)),e=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(i.subarray(0,t)),e=this.need}return this.consumed+=t,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise(e=>this.pull=e);this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,r=t+e;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{const e=new Uint8Array(r);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,r)}return this.buffer=new Uint8Array(e),this.buffer}}Y.U32=k,Y.U16=C,Y.U8=F;class be{constructor(s){this.log=function(e){if(s._opt.debug&&s._opt.debugLevel==b){for(var t=s._opt.debugUuid?`[${s._opt.debugUuid}]`:"",r=arguments.length,i=new Array(1>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t;var t=this._current_word_bits_left?this._current_word:0,e=(t>>>=32-this._current_word_bits_left,e-this._current_word_bits_left),e=(this._fillCurrentWord(),Math.min(e,this._current_word_bits_left)),r=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class P{static _ebsp2rbsp(e){let t=e,r=t.byteLength,i=new Uint8Array(r),n=0;for(let e=0;e=this.buflen)return this.iserro=!0,0;this.iserro=!1,r=8>8-this.bufoff-r&255>>8-r),this.bufoff+=r,e-=r,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){var t=this.bufpos,r=this.bufoff,e=this.read(e);return this.bufpos=t,this.bufoff=r,e}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<>>24&255,r>>>16&255,r>>>8&255,255&r]),e=new Uint8Array(r+4);e.set(i,0),e.set(n.sps,4),n.sps=e}if(n.pps){const r=n.pps.byteLength,i=new Uint8Array([r>>>24&255,r>>>16&255,r>>>8&255,255&r]),e=new Uint8Array(r+4);e.set(i,0),e.set(n.pps,4),n.pps=e}return n}function Se(e,t){let r=[];r[0]=t?23:39,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}function Ee(e){const t=e.byteLength,r=new Uint8Array(4),i=(r[0]=t>>>24&255,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,new Uint8Array(t+4));return i.set(r,0),i.set(e,4),i}function X(e){return 31&e[0]}function Ue(e){return e===S}function xe(e){return(t=e)!==H&&t!==V&&!Ue(e);var t}function Be(e){return e===w}const Ae=e=>{let t=e,r=t.byteLength,i=new Uint8Array(r),n=0;for(let e=0;e{switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}};function ke(e){return(126&e[0])>>1}function I(e){return parseInt(e)===e}function D(e){if(I(e.length)){for(var t=0;t>4]+Ce[15&i])}return t.join("")}}),Fe={16:10,24:12,32:14},Ie=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],u=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],d=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Pe=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],De=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Le=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],ze=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Re=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Me=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Ne=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],Oe=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],Ge=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],He=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Ve=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],$e=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function je(e){for(var t=[],r=0;r>2][t%4]=s[t],this._Kd[e-r][t%4]=s[t];for(var a,o=0,l=n;l>16&255]<<24^u[a>>8&255]<<16^u[255&a]<<8^u[a>>24&255]^Ie[o]<<24,o+=1,8!=n)for(t=1;t>8&255]<<8^u[a>>16&255]<<16^u[a>>24&255]<<24,t=n/2+1;t>2][h=l%4]=s[t],this._Kd[e-d][h]=s[t++],l++}for(var d=1;d>24&255]^He[a>>16&255]^Ve[a>>8&255]^$e[255&a]},i.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],i=je(e),n=0;n<4;n++)i[n]^=this._Ke[0][n];for(var s=1;s>24&255]^De[i[(n+1)%4]>>16&255]^Le[i[(n+2)%4]>>8&255]^ze[255&i[(n+3)%4]]^this._Ke[s][n];i=r.slice()}for(var a,o=l(16),n=0;n<4;n++)a=this._Ke[t][n],o[4*n]=255&(u[i[n]>>24&255]^a>>24),o[4*n+1]=255&(u[i[(n+1)%4]>>16&255]^a>>16),o[4*n+2]=255&(u[i[(n+2)%4]>>8&255]^a>>8),o[4*n+3]=255&(u[255&i[(n+3)%4]]^a);return o},i.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],i=je(e),n=0;n<4;n++)i[n]^=this._Kd[0][n];for(var s=1;s>24&255]^Me[i[(n+3)%4]>>16&255]^Ne[i[(n+2)%4]>>8&255]^Oe[255&i[(n+1)%4]]^this._Kd[s][n];i=r.slice()}for(var a,o=l(16),n=0;n<4;n++)a=this._Kd[t][n],o[4*n]=255&(d[i[n]>>24&255]^a>>24),o[4*n+1]=255&(d[i[(n+3)%4]>>16&255]^a>>16),o[4*n+2]=255&(d[i[(n+2)%4]>>8&255]^a>>8),o[4*n+3]=255&(d[255&i[(n+1)%4]]^a);return o},o.prototype.encrypt=function(e){if((e=s(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=l(e.length),r=l(16),i=0;iNumber.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;0<=t;--t)this._counter[t]=e%256,e=parseInt(e/256)},c.prototype.setBytes=function(e){if(16!=(e=s(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},c.prototype.increment=function(){for(var e=15;0<=e;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};m.prototype.decrypt=m.prototype.encrypt=function(e){for(var t=s(e,!0),r=0;r>3)&&2<=t.data.length?32+((7&t.data[0])<<3)+((224&t.data[1])>>5):r:null},s.DecoderConfigDescriptor=function(e){s.Descriptor.call(this,4,e)},s.DecoderConfigDescriptor.prototype=new s.Descriptor,s.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},s.DecoderSpecificInfo=function(e){s.Descriptor.call(this,5,e)},s.DecoderSpecificInfo.prototype=new s.Descriptor,s.SLConfigDescriptor=function(e){s.Descriptor.call(this,6,e)},s.SLConfigDescriptor.prototype=new s.Descriptor,this}function n(){}function s(){}function B(e){this.stream=e||new r,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.onSidx=null,this.sidxSent=!1}a=new Date,o=4;var a,o,f={setLogLevel:function(e){o=e==this.debug?1:e==this.info?2:e==this.warn?3:(this.error,4)},debug:function(e,t){void 0===console.debug&&(console.debug=console.log),o<=1&&console.debug("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},log:function(e,t){this.debug(e.msg)},info:function(e,t){o<=2&&console.info("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},warn:function(e,t){o<=3&&console.warn("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},error:function(e,t){o<=4&&console.error("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)}},d=(f.getDurationString=function(e,t){var r;function i(e,t){for(var r=(""+e).split(".");r[0].length=this.getEndPosition()},u.prototype.readAnyInt=function(e,t){var r=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:r=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:r=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16,r=(r|=this.dataview.getUint8(this.position+1)<<8)|this.dataview.getUint8(this.position+2);break;case 4:r=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32,r|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,r}throw"Not enough bytes in buffer"},u.prototype.readUint8=function(){return this.readAnyInt(1,!1)},u.prototype.readUint16=function(){return this.readAnyInt(2,!1)},u.prototype.readUint24=function(){return this.readAnyInt(3,!1)},u.prototype.readUint32=function(){return this.readAnyInt(4,!1)},u.prototype.readUint64=function(){return this.readAnyInt(8,!1)},u.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",r=0;rthis._byteLength&&(this._byteLength=t);else{for(r<1&&(r=1);r=this._byteLength},l.prototype.mapUint8Array=function(e){this._realloc(+e);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.readInt32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Int32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Int16Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Int8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readUint32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Uint32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readUint16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Uint16Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readUint8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Uint8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readFloat64Array=function(e,t){e=null==e?this.byteLength-this.position/8:e;var r=new Float64Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readFloat32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Float32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt32=function(e){e=this._dataView.getInt32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readInt16=function(e){e=this._dataView.getInt16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},l.prototype.readUint32=function(e){e=this._dataView.getUint32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readUint16=function(e){e=this._dataView.getUint16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},l.prototype.readFloat32=function(e){e=this._dataView.getFloat32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readFloat64=function(e){e=this._dataView.getFloat64(this.position,null==e?this.endianness:e);return this.position+=8,e},l.endianness=0>16),this.writeUint8((65280&e)>>8),this.writeUint8(255&e)},l.prototype.adjustUint32=function(e,t){var r=this.position;this.seek(e),this.writeUint32(t),this.seek(r)},l.prototype.mapInt32Array=function(e,t){this._realloc(4*e);var r=new Int32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},l.prototype.mapInt16Array=function(e,t){this._realloc(2*e);var r=new Int16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},l.prototype.mapInt8Array=function(e){this._realloc(+e);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.mapUint32Array=function(e,t){this._realloc(4*e);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},l.prototype.mapUint16Array=function(e,t){this._realloc(2*e);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},l.prototype.mapFloat64Array=function(e,t){this._realloc(8*e);var r=new Float64Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=8*e,r},l.prototype.mapFloat32Array=function(e,t){this._realloc(4*e);var r=new Float32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},(r.prototype=new l(new ArrayBuffer,0,l.BIG_ENDIAN)).initialized=function(){var e;return-1i.byteLength){this.buffers.splice(r,1),r--;continue}f.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring")}else e.fileStart+e.byteLength<=i.fileStart||(e=this.reduceBuffer(e,0,i.fileStart-e.fileStart)),f.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(r,0,e),0===r&&(this.buffer=e);t=!1;break}if(e.fileStart"+this.buffer.byteLength+")"),!0))},r.prototype.findPosition=function(e,t,r){for(var i=null,n=-1,s=!0===e?0:this.bufferIndex;s=t?(f.debug("MultiBufferStream","Found position in existing buffer #"+n),n):-1},r.prototype.findEndContiguousBuf=function(e){var t,r,e=void 0!==e?e:this.bufferIndex,i=this.buffers[e];if(this.buffers.length>e+1)for(t=e+1;te.getEndPosition()?(e.seek(s),f.info("BoxParser","Not enough data in stream to parse the entire '"+l+"' box"),{code:b.ERR_NOT_ENOUGH_DATA,type:l,size:o,hdr_size:a,start:s}):t?{code:b.OK,type:l,size:o,hdr_size:a,start:s}:(b[l+"Box"]?i=new b[l+"Box"](o):"uuid"!==l?(f.warn("BoxParser","Unknown box type: '"+l+"'"),(i=new b.Box(l,o)).has_unparsed_data=!0):b.UUIDBoxes[n]?i=new b.UUIDBoxes[n](o):(f.warn("BoxParser","Unknown uuid type: '"+n+"'"),(i=new b.Box(l,o)).uuid=n,i.has_unparsed_data=!0),i.hdr_size=a,i.start=s,i.write===b.Box.prototype.write&&"mdat"!==i.type&&(f.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),i.parseDataAndRewind(e)),i.parse(e),(r=e.getPosition()-(i.start+i.size))<0?(f.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-r+" bytes), seeking forward"),e.seek(i.start+i.size)):0>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},b.SAMPLE_ENTRY_TYPE_VISUAL="Visual",b.SAMPLE_ENTRY_TYPE_AUDIO="Audio",b.SAMPLE_ENTRY_TYPE_HINT="Hint",b.SAMPLE_ENTRY_TYPE_METADATA="Metadata",b.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",b.SAMPLE_ENTRY_TYPE_SYSTEM="System",b.SAMPLE_ENTRY_TYPE_TEXT="Text",b.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},b.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},b.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},b.SampleEntry.prototype.parseFooter=function(e){b.ContainerBox.prototype.parse.call(this,e)},b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_HINT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT,"enct"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA,"encm"),b.createBoxCtor("a1lx",function(e){var t=16*(1+(1&e.readUint8()));this.layer_size=[];for(var r=0;r<3;r++)this.layer_size[r]=16==t?e.readUint16():e.readUint32()}),b.createBoxCtor("a1op",function(e){this.op_index=e.readUint8()}),b.createFullBoxCtor("auxC",function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),b.createBoxCtor("av1C",function(e){var t=e.readUint8();if(t>>7&!1)f.error("av1C marker problem");else if(this.version=127&t,1===this.version)if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=31&t,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=3&t,t=e.readUint8(),this.reserved_1=t>>5&7,0===this.reserved_1){if(this.initial_presentation_delay_present=t>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&t;else if(this.reserved_2=15&t,0!==this.reserved_2)return void f.error("av1C reserved_2 parsing problem");t=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(t)}else f.error("av1C reserved_1 parsing problem");else f.error("av1C version "+this.version+" not supported")}),b.createBoxCtor("avcC",function(e){var t,r;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=3&e.readUint8(),this.nb_SPS_nalus=31&e.readUint8(),r=this.size-this.hdr_size-6,this.SPS=[],t=0;t>7):"rICC"!==this.colour_type&&"prof"!==this.colour_type||(this.ICC_profile=e.readUint8Array(this.size-4))}),b.createFullBoxCtor("cprt",function(e){this.parseLanguage(e),this.notice=e.readCString()}),b.createFullBoxCtor("cslg",function(e){0===this.version&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),b.createFullBoxCtor("ctts",function(e){var t,r=e.readUint32();if(this.sample_counts=[],this.sample_offsets=[],0===this.version)for(t=0;t>6,this.bsid=t>>1&31,this.bsmod=(1&t)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=3&r|e>>5&7}),b.createBoxCtor("dec3",function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=7&t,this.ind_subs=[];for(var r=0;r>6,i.bsid=n>>1&31,i.bsmod=(1&n)<<4|s>>4&15,i.acmod=s>>1&7,i.lfeon=1&s,i.num_dep_sub=a>>1&15,0>12,e.readUint8Array(20)),t.push(r[n]),128&i)break}this.numMetadataBlocks=t.length+" ("+t.join(", ")+")"}),b.createBoxCtor("dimm",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("dmed",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dOps",function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t>6,this.general_tier_flag=(32&r)>>5,this.general_profile_idc=31&r,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=4095&e.readUint16(),this.parallelismType=3&e.readUint8(),this.chroma_format_idc=3&e.readUint8(),this.bit_depth_luma_minus8=7&e.readUint8(),this.bit_depth_chroma_minus8=7&e.readUint8(),this.avgFrameRate=e.readUint16(),r=e.readUint8(),this.constantFrameRate=r>>6,this.numTemporalLayers=(13&r)>>3,this.temporalIdNested=(4&r)>>2,this.lengthSizeMinusOne=3&r,this.nalu_arrays=[];for(var t,r,i=e.readUint8(),n=0;n>7,s.nalu_type=63&r,e.readUint16()),o=0;o>4&15,this.length_size=15&t,t=e.readUint8(),this.base_offset_size=t>>4&15,1===this.version||2===this.version?this.index_size=15&t:this.index_size=0,this.items=[],0);if(this.version<2)r=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";r=e.readUint32()}for(var i=0;i>7,this.axis=1&e}),b.createFullBoxCtor("infe",function(e){if(0!==this.version&&1!==this.version||(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),1===this.version)return this.extension_type=e.readString(4),f.warn("BoxParser","Cannot parse extension type"),void e.seek(this.start+this.size);2<=this.version&&(2===this.version?this.item_ID=e.readUint16():3===this.version&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),"mime"===this.item_type?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):"uri "===this.item_type&&(this.item_uri_type=e.readCString()))}),b.createFullBoxCtor("ipma",function(e){var t,r;for(entry_count=e.readUint32(),this.associations=[],t=0;t>7==1,1&this.flags?a.property_index=(127&s)<<8|e.readUint8():a.property_index=127&s}}}),b.createFullBoxCtor("iref",function(e){var t;for(this.references=[];e.getPosition()>7,i.assignment_type=127&n,i.assignment_type){case 0:i.grouping_type=e.readString(4);break;case 1:i.grouping_type=e.readString(4),i.grouping_type_parameter=e.readUint32();break;case 2:case 3:break;case 4:i.sub_track_id=e.readUint32();break;default:f.warn("BoxParser","Unknown leva assignement type")}}}),b.createBoxCtor("lsel",function(e){this.layer_id=e.readUint16()}),b.createBoxCtor("maxr",function(e){this.period=e.readUint32(),this.bytes=e.readUint32()}),b.createBoxCtor("mdcv",function(e){this.display_primaries=[],this.display_primaries[0]={},this.display_primaries[0].x=e.readUint16(),this.display_primaries[0].y=e.readUint16(),this.display_primaries[1]={},this.display_primaries[1].x=e.readUint16(),this.display_primaries[1].y=e.readUint16(),this.display_primaries[2]={},this.display_primaries[2].x=e.readUint16(),this.display_primaries[2].y=e.readUint16(),this.white_point={},this.white_point.x=e.readUint16(),this.white_point.y=e.readUint16(),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),b.createFullBoxCtor("mdhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),b.createFullBoxCtor("mehd",function(e){1&this.flags&&(f.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),b.createFullBoxCtor("meta",function(e){this.boxes=[],b.ContainerBox.prototype.parse.call(this,e)}),b.createFullBoxCtor("mfhd",function(e){this.sequence_number=e.readUint32()}),b.createFullBoxCtor("mfro",function(e){this._size=e.readUint32()}),b.createFullBoxCtor("mvhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),b.createBoxCtor("npck",function(e){this.packetssent=e.readUint32()}),b.createBoxCtor("nump",function(e){this.packetssent=e.readUint64()}),b.createFullBoxCtor("padb",function(e){var t=e.readUint32();this.padbits=[];for(var r=0;r>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var r=e.readUint8(),i=0;i>7,this.num_leading_samples=127&e}),b.createSampleGroupCtor("rash",function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)f.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t>4,this.skip_byte_block=15&t,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=b.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),b.createSampleGroupCtor("stsa",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("sync",function(e){e=e.readUint8();this.NAL_unit_type=63&e}),b.createSampleGroupCtor("tele",function(e){e=e.readUint8();this.level_independently_decodable=e>>7}),b.createSampleGroupCtor("tsas",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("tscl",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("vipr",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createFullBoxCtor("sbgp",function(e){this.grouping_type=e.readString(4),1===this.version?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),r=0;r>6,this.sample_depends_on[i]=t>>4&3,this.sample_is_depended_on[i]=t>>2&3,this.sample_has_redundancy[i]=3&t}),b.createFullBoxCtor("senc"),b.createFullBoxCtor("sgpd",function(e){this.grouping_type=e.readString(4),f.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=e.readUint32():this.default_length=0,2<=this.version&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),r=0;r>31&1,i.referenced_size=2147483647&n,i.subsegment_duration=e.readUint32(),n=e.readUint32(),i.starts_with_SAP=n>>31&1,i.SAP_type=n>>28&7,i.SAP_delta_time=268435455&n}}),b.SingleItemTypeReferenceBox=function(e,t,r,i){b.Box.call(this,e,t),this.hdr_size=r,this.start=i},b.SingleItemTypeReferenceBox.prototype=new b.Box,b.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var r=0;r>4&15,this.sample_sizes[t+1]=15&i}else if(8===this.field_size)for(t=0;t>4&15,this.default_skip_byte_block=15&t),this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=b.parseHex16(e),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),b.createFullBoxCtor("tfdt",function(e){1==this.version?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),b.createFullBoxCtor("tfhd",function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_FLAGS?this.default_sample_flags=e.readUint32():this.default_sample_flags=0}),b.createFullBoxCtor("tfra",function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=3&t,this.entries=[];for(var r=e.readUint32(),i=0;i>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),b.createBoxCtor("tmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("tmin",function(e){this.time=e.readUint32()}),b.createBoxCtor("totl",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpay",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpyl",function(e){this.bytessent=e.readUint64()}),b.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},b.createTrackGroupCtor("msrc"),b.TrackReferenceTypeBox=function(e,t,r,i){b.Box.call(this,e,t),this.hdr_size=r,this.start=i},b.TrackReferenceTypeBox.prototype=new b.Box,b.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},b.trefBox.prototype.parse=function(e){for(var t;e.getPosition()(t+=4)&&this.flags&b.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var r=0;r/g,">").replace(/"/g,""").replace(/'/g,"'")}),b.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(e){this.system_id=b.parseHex16(e);var t=e.readUint32();0>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=1&t,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8()):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=15&t,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=1&t),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)}),b.createBoxCtor("vttC",function(e){this.text=e.readString(this.size-this.hdr_size)}),b.createFullBoxCtor("vvcC",function(e){var t,r={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<>=1;e=e+b.decimalToHex(r,0)+".",0===this.hvcC.general_tier_flag?e+="L":e+="H",e+=this.hvcC.general_level_idc;var n=!1,s="";for(i=5;0<=i;i--)(this.hvcC.general_constraint_indicator[i]||n)&&(s="."+b.decimalToHex(this.hvcC.general_constraint_indicator[i],0)+s,n=!0);e+=s}return e},b.vvc1SampleEntry.prototype.getCodec=b.vvi1SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){e+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?e+=".H":e+=".L",e+=this.vvcC.general_level_idc;var t="";if(this.vvcC.general_constraint_info){var r,i=[],n=0,n=(n|=this.vvcC.ptl_frame_only_constraint<<7)|this.vvcC.ptl_multilayer_enabled<<6;for(l=0;l>2&63,i.push(n),n&&(r=l),n=this.vvcC.general_constraint_info[l]>>2&3;if(void 0===r)t=".CA";else{for(var t=".C",s="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",a=0,o=0,l=0;l<=r;++l)for(a=a<<8|i[l],o+=8;5<=o;)t+=s[a>>o-5&31],a&=(1<<(o-=5))-1;o&&(t+=s[31&(a<<=5-o)])}}e+=t}return e},b.mp4aSampleEntry.prototype.getCodec=function(){var e,t,r=b.SampleEntry.prototype.getCodec.call(this);return this.esds&&this.esds.esd?(e=this.esds.esd.getOTI(),t=this.esds.esd.getAudioConfig(),r+"."+b.decimalToHex(e)+(t?"."+t:"")):r},b.stxtSampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},b.vp08SampleEntry.prototype.getCodec=b.vp09SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level,r=this.vpcC.bitDepth;return e+".0"+this.vpcC.profile+"."+(t=0==t?"00":t)+"."+(r=8==r?"08":r)},b.av01SampleEntry.prototype.getCodec=function(){var e,t=b.SampleEntry.prototype.getCodec.call(this),r=this.av1C.seq_level_idx_0;return 2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?e=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(e=1===this.av1C.high_bitdepth?"10":"08"),t+"."+this.av1C.seq_profile+"."+(r=r<10?"0"+r:r)+(this.av1C.seq_tier_0?"H":"M")+"."+e},b.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),f.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>d?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),"uuid"===this.type&&e.writeUint8Array(this.uuid),this.size>d&&e.writeUint64(this.size)},b.FullBox.prototype.writeHeader=function(e){this.size+=4,b.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},b.Box.prototype.write=function(e){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},b.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;tt?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(e),1===this.version?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},b.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},b.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},b.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},b.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&b.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&b.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&b.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&b.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t=i.samples.length)&&(f.info("ISOFile","Sending fragmented data on track #"+r.id+" for samples ["+Math.max(0,i.nextSample-r.nb_samples)+","+(i.nextSample-1)+"]"),f.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(r.id,r.user,r.segmentStream.buffer,i.nextSample,e||i.nextSample>=i.samples.length),r.segmentStream=null,r!==this.fragmentedTracks[t]))break}if(null!==this.onSamples)for(t=0;t=i.samples.length)&&(f.debug("ISOFile","Sending samples on track #"+s.id+" for sample "+i.nextSample),this.onSamples&&this.onSamples(s.id,s.user,s.samples),s.samples=[],s!==this.extractedTracks[t]))break}}}},B.prototype.getBox=function(e){e=this.getBoxes(e,!0);return e.length?e[0]:null},B.prototype.getBoxes=function(e,t){var r=[];return B._sweep.call(this,e,r,t),r},B._sweep=function(e,t,r){for(var i in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&r)return;B._sweep.call(this.boxes[i],e,t,r)}},B.prototype.getTrackSamplesInfo=function(e){e=this.getTrackById(e);return e?e.samples:void 0},B.prototype.getTrackSample=function(e,t){e=this.getTrackById(e);return this.getSample(e,t)},B.prototype.releaseUsedSamples=function(e,t){var r=0,i=this.getTrackById(e);i.lastValidSample||(i.lastValidSample=0);for(var n=i.lastValidSample;ne*n.timescale){l=i-1;break}t&&n.is_sync&&(o=i)}for(t&&(l=o),e=r.samples[l].cts,r.nextSample=l;r.samples[l].alreadyRead===r.samples[l].size&&r.samples[l+1];)l++;return s=r.samples[l].offset+r.samples[l].alreadyRead,f.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+f.getDurationString(e,a)+" and offset: "+s),{offset:s,time:e/a}},B.prototype.seek=function(e,t){var r,i,n=this.moov,s={offset:1/0,time:1/0};if(this.moov){for(i=0;i=i[n].last_sample_in_run&&(i[n].last_sample_in_run<0&&(i[n].last_sample_in_run=0),i[n].entry_index++,i[n].entry_index<=i[n].sbgp.entries.length-1&&(i[n].last_sample_in_run+=i[n].sbgp.entries[i[n].entry_index].sample_count)),i[n].entry_index<=i[n].sbgp.entries.length-1?t.sample_groups[n].group_description_index=i[n].sbgp.entries[i[n].entry_index].group_description_index:t.sample_groups[n].group_description_index=-1,0!==t.sample_groups[n].group_description_index&&(a=i[n].fragment_description||i[n].description,0>16)-1:t.sample_groups[n].group_description_index-1,a&&0<=s&&(t.sample_groups[n].description=a.entries[s])):a&&2<=a.version&&0>16&1),u.is_leading=c>>26&3,u.depends_on=c>>24&3,u.is_depended_on=c>>22&3,u.has_redundancy=c>>20&3,u.degradation_priority=65535&c;var c=!!(l.tfhd.flags&b.TFHD_FLAG_BASE_DATA_OFFSET),m=!!(l.tfhd.flags&b.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),_=!!(f.flags&b.TRUN_FLAGS_DATA_OFFSET),c=c?l.tfhd.base_data_offset:m||0===y?o.start:s;u.offset=0===y&&0===p?_?c+f.data_offset:c:s,s=u.offset+u.size,(0d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},b.FullBox.prototype.printHeader=function(e){this.size+=4,b.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},b.Box.prototype.print=function(e){this.printHeader(e)},b.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t,r=0;r>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},b.tkhdBox.prototype.print=function(e){b.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var h=function(e,t){e=void 0===e||e,t=new B(t);return t.discardMdatData=!e,t};t.createFile=h});function Ye(l){function n(){t&&(t.abort(),t=null)}let i=[],d=[],s={},t=new AbortController,r=null,a=null,e=null,o=null,h=null,u=null,f=!1,p=!1,c=!1,m=!1,_=null,g=null,y=null,b=[],v=0,w=0,S=null,E=null,U=0,x=0,B=!1,A=!1,T=()=>{var e=function(){{var r=Q;let t="";if("object"==typeof r)try{t=JSON.stringify(r),t=JSON.parse(t)}catch(e){t=r}else t=r;return t}}();return{debug:e.debug,debugLevel:e.debugLevel,debugUuid:e.debugUuid,useOffscreen:e.useOffscreen,useWCS:e.useWCS,videoBuffer:e.videoBuffer,videoBufferDelay:e.videoBufferDelay,openWebglAlignment:e.openWebglAlignment,playType:e.playType,hasAudio:e.hasAudio,hasVideo:e.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:e.playbackForwardMaxRateDecodeIFrame,playbackIsCacheBeforeDecodeForFpsRender:e.playbackConfig.isCacheBeforeDecodeForFpsRender,sampleRate:0,networkDelay:e.networkDelay,visibility:!0,useSIMD:e.useSIMD,isRecording:!1,recordType:e.recordType,isNakedFlow:e.isNakedFlow,checkFirstIFrame:e.checkFirstIFrame,audioBufferSize:1024,isCrypto:e.isCrypto,cryptoKey:e.cryptoKey,cryptoIV:e.cryptoIV,isHls265:!1,isFlv:e.isFlv,isFmp4:e.isFmp4,isMpeg4:e.isMpeg4}},k=("VideoEncoder"in self&&(s={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(t){var e;s.isEmitInfo||(I.debug.log("worker","Webcodecs Video Decoder initSize"),postMessage({cmd:ee,w:t.codedWidth,h:t.codedHeight}),s.isEmitInfo=!0,s.offscreenCanvas=new OffscreenCanvas(t.codedWidth,t.codedHeight),s.offscreenCanvasCtx=s.offscreenCanvas.getContext("2d")),"function"==typeof t.createImageBitmap?t.createImageBitmap().then(e=>{s.offscreenCanvasCtx.drawImage(e,0,0,t.codedWidth,t.codedHeight);e=s.offscreenCanvas.transferToImageBitmap();postMessage({cmd:R,buffer:e,delay:I.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100)}):(s.offscreenCanvasCtx.drawImage(t,0,0,t.codedWidth,t.codedHeight),e=s.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:R,buffer:e,delay:I.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100))},error:function(e){I.debug.error("worker","VideoDecoder error",e)}}),decode:function(e,t,r){var i=e[0]>>4==1;if(s.hasInit){const r=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:i?"key":"delta"});s.decoder.decode(r)}else if(i&&0===e[1]){const t=15&e[0],r=(postMessage({cmd:re,code:t}),function(e){let r=e.subarray(1,4),i="avc1.";for(let t=0;t<3;t++){let e=r[t].toString(16);e.length<2&&(e="0"+e),i+=e}return{codec:i,description:e}}(e.slice(5)));postMessage({cmd:ie,buffer:e,codecId:t},[e.buffer]),s.decoder.configure(r),s.hasInit=!0}},reset(){s.hasInit=!1,s.isEmitInfo=!1,s.offscreenCanvas=null,s.offscreenCanvasCtx=null}}),{init(){k.lastBuf=null,k.vps=null,k.sps=null,k.pps=null,k.streamType=null,k.localDts=0,k.isSendSeqHeader=!1},destroy(){k.lastBuf=null,k.vps=null,k.sps=null,k.pps=null,k.streamType=null,k.localDts=0,k.isSendSeqHeader=!1},dispatch(e){e=new Uint8Array(e);k.extractNALu$2(e)},getNaluDts(){var e=k.localDts;return k.localDts=k.localDts+40,e},getNaluAudioDts(){var e=I._opt.sampleRate,t=I._opt.audioBufferSize;return k.localDts+parseInt(t/e*1e3)},extractNALu(e){let t,r,i=0,n=e.byteLength,s=0,a=[];for(;i>1)!==$&&r!==he&&r!==j||(t=de)),t}(e)),k.streamType===le){const t=k.handleAddNaluStartCode(e),r=k.extractNALu(t);if(0===r.length)I.debug.warn("worker","handleVideoNalu","naluList.length === 0");else{const i=[];if(r.forEach(e=>{var t=X(e);t===V||t===H?k.handleVideoH264Nalu(e):xe(t)&&i.push(e)}),1===i.length)k.handleVideoH264Nalu(i[0]);else{const e=function(t){if(0===t.length)return!1;var r=X(t[0]);for(let e=1;e{k.handleVideoH264Nalu(e)})}}}else k.streamType===de&&(ke(e)===j?k.extractH265PPS(e):k.handleVideoH265Nalu(e))},extractH264PPS(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{Ue(X(e))?k.extractH264SEI(e):k.handleVideoH264Nalu(e)})},extractH265PPS(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{39===ke(e)?k.extractH265SEI(e):k.handleVideoH265Nalu(e)})},extractH264SEI(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{k.handleVideoH264Nalu(e)})},extractH265SEI(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{k.handleVideoH265Nalu(e)})},handleAddNaluStartCode(e){const t=[0,0,0,1],r=new Uint8Array(e.length+t.length);return r.set(t),r.set(e,t.length),r},handleVideoH264Nalu(e){var i,t,r,n=X(e);switch(n){case H:k.sps=e;break;case V:k.pps=e}if(k.isSendSeqHeader)xe(n)?(i=Be(n),t=k.getNaluDts(),i&&I.calcIframeIntervalTimestamp(t),I.calcNetworkDelay(t),r=function(e){let t=[];t[0]=i?23:39,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e),I.decode(r,{type:2,ts:t,isIFrame:i,cts:0})):I.debug.warn("work","handleVideoH264Nalu Avc Seq Head is "+n);else if(k.sps&&k.pps){k.isSendSeqHeader=!0;const e=function(){var{sps:e,pps:t}={sps:k.sps,pps:k.pps};const r=[23,0,0,0,0,1,66,0,30,255];return r[0]=23,r[6]=e[1],r[7]=e[2],r[8]=e[3],r[10]=225,r[11]=e.byteLength>>8&255,r[12]=255&e.byteLength,r.push(...e,1,t.byteLength>>8&255,255&t.byteLength,...t),new Uint8Array(r)}();I.decode(e,{type:2,ts:0,isIFrame:!0,cts:0})}},handleVideoH264NaluList(e,t,r){var i,n;k.isSendSeqHeader?(i=k.getNaluDts(),I.calcNetworkDelay(i),n=Se(e.reduce((e,t)=>{const r=Ee(e),i=Ee(t),n=new Uint8Array(r.byteLength+i.byteLength);return n.set(r,0),n.set(i,r.byteLength),n}),t),I.decode(n,{type:2,ts:i,isIFrame:t,cts:0}),I.debug.log("worker",`handleVideoH264NaluList list size is ${e.length} package length is ${n.byteLength} isIFrame is ${t},nalu type is ${r}, dts is `+i)):I.debug.warn("worker","handleVideoH264NaluList isSendSeqHeader is false")},handleVideoH265Nalu(e){var i,t,r=ke(e);switch(r){case $:k.vps=e;break;case he:k.sps=e;break;case j:k.pps=e}if(k.isSendSeqHeader)32<=r&&r<=40?I.debug.warn("work","handleVideoH265Nalu HevcSeqHead is "+r):(i=16<=r&&r<=21,r=k.getNaluDts(),I.calcNetworkDelay(r),t=function(e){let t=[];t[0]=i?28:44,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e),i&&I.calcIframeIntervalTimestamp(r),I.decode(t,{type:2,ts:r,isIFrame:i,cts:0}));else if(k.vps&&k.sps&&k.pps){k.isSendSeqHeader=!0;const e=function(e){var{vps:e,pps:t,sps:r}=e,i={configurationVersion:1},n=(e=>{let t=Ae(e),r=new q(t);return r.readByte(),r.readByte(),r.readBits(4),r.readBits(2),r.readBits(6),{num_temporal_layers:r.readBits(3)+1,temporal_id_nested:r.readBool()}})(e),s=(e=>{let t=Ae(e),s=new q(t),r=(s.readByte(),s.readByte(),0),i=0,n=0,a=0;s.readBits(4);var o=s.readBits(3);s.readBool();let l=s.readBits(2),d=s.readBool(),h=s.readBits(5),u=s.readByte(),f=s.readByte(),p=s.readByte(),c=s.readByte(),m=s.readByte(),_=s.readByte(),g=s.readByte(),z=s.readByte(),R=s.readByte(),M=s.readByte(),y=s.readByte(),b=[],N=[];for(let e=0;e{let t=Ae(e),r=new q(t),i=(r.readByte(),r.readByte(),r.readUEG(),r.readUEG(),r.readBool(),r.readBool(),r.readBits(3),r.readBool(),r.readBool(),r.readUEG(),r.readUEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool()&&r.readUEG(),r.readSEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool(),r.readBool(),r.readBool()),n=r.readBool(),s=1;return n&&i?s=0:n?s=3:i&&(s=2),{parallelismType:s}})(t),i=Object.assign(i,n,s,a);let o=23+(5+e.byteLength)+(5+r.byteLength)+(5+t.byteLength),l=new Uint8Array(o);l[0]=1,l[1]=(3&i.general_profile_space)<<6|(i.general_tier_flag?1:0)<<5|31&i.general_profile_idc,l[2]=i.general_profile_compatibility_flags_1||0,l[3]=i.general_profile_compatibility_flags_2||0,l[4]=i.general_profile_compatibility_flags_3||0,l[5]=i.general_profile_compatibility_flags_4||0,l[6]=i.general_constraint_indicator_flags_1||0,l[7]=i.general_constraint_indicator_flags_2||0,l[8]=i.general_constraint_indicator_flags_3||0,l[9]=i.general_constraint_indicator_flags_4||0,l[10]=i.general_constraint_indicator_flags_5||0,l[11]=i.general_constraint_indicator_flags_6||0,l[12]=60,l[13]=240|(3840&i.min_spatial_segmentation_idc)>>8,l[14]=255&i.min_spatial_segmentation_idc,l[15]=252|3&i.parallelismType,l[16]=252|3&i.chroma_format_idc,l[17]=248|7&i.bit_depth_luma_minus8,l[18]=248|7&i.bit_depth_chroma_minus8,l[19]=0,l[20]=0,l[21]=(3&i.constant_frame_rate)<<6|(7&i.num_temporal_layers)<<3|(i.temporal_id_nested?1:0)<<2|3,l[22]=3,l[23]=128|$,l[24]=0,l[25]=1,l[26]=(65280&e.byteLength)>>8,l[27]=(255&e.byteLength)>>0,l.set(e,28),l[23+(5+e.byteLength)+0]=128|he,l[23+(5+e.byteLength)+1]=0,l[23+(5+e.byteLength)+2]=1,l[23+(5+e.byteLength)+3]=(65280&r.byteLength)>>8,l[23+(5+e.byteLength)+4]=(255&r.byteLength)>>0,l.set(r,23+(5+e.byteLength)+5),l[23+(5+e.byteLength+5+r.byteLength)+0]=128|j,l[23+(5+e.byteLength+5+r.byteLength)+1]=0,l[23+(5+e.byteLength+5+r.byteLength)+2]=1,l[23+(5+e.byteLength+5+r.byteLength)+3]=(65280&t.byteLength)>>8,l[23+(5+e.byteLength+5+r.byteLength)+4]=(255&t.byteLength)>>0,l.set(t,23+(5+e.byteLength+5+r.byteLength)+5);const d=[28,0,0,0,0],h=new Uint8Array(d.length+l.byteLength);return h.set(d,0),h.set(l,d.length),h}({vps:k.vps,sps:k.sps,pps:k.pps});I.decode(e,{type:2,ts:0,isIFrame:!0,cts:0})}}}),C={LOG_NAME:"worker fmp4Demuxer",mp4Box:K.createFile(),offset:0,videoTrackId:null,audioTrackId:null,isHevc:!1,listenMp4Box(){C.mp4Box.onReady=C.onReady,C.mp4Box.onError=C.onError,C.mp4Box.onSamples=C.onSamples},_getSeqHeader(t){const r=C.mp4Box.getTrackById(t.id);for(const t of r.mdia.minf.stbl.stsd.entries)if(t.avcC||t.hvcC){const r=new K.DataStream(void 0,0,K.DataStream.BIG_ENDIAN);let e=[];e=t.avcC?(t.avcC.write(r),[23,0,0,0,0]):(C.isHevc=!0,t.hvcC.write(r),[28,0,0,0,0]);const i=new Uint8Array(r.buffer,8),n=new Uint8Array(e.length+i.length);return n.set(e,0),n.set(i,e.length),n}return null},onReady(i){I.debug.log(C.LOG_NAME,"onReady()",i);const n=i.videoTracks[0],e=i.audioTracks[0];if(n){C.videoTrackId=n.id;const i=C._getSeqHeader(n);i&&(I.debug.log(C.LOG_NAME,"seqHeader"),I.decodeVideo(i,0,!0,0)),C.mp4Box.setExtractionOptions(n.id)}if(e){C.audioTrackId=e.id;const i=e.audio||{},n=ce.indexOf(i.sample_rate),s=e.codec.replace("mp4a.40.","");C.mp4Box.setExtractionOptions(e.id);var t=function(){var{profile:e,sampleRate:t,channel:r}={profile:parseInt(s,10),sampleRate:n,channel:i.channel_count};return new Uint8Array([175,0,e<<3|(14&t)>>1,(1&t)<<7|r<<3])}();I.debug.log(C.LOG_NAME,"aacADTSHeader"),I.decodeAudio(t,0)}C.mp4Box.start()},onError(e){I.debug.error(C.LOG_NAME,"mp4Box onError",e)},onSamples(e,t,r){if(e===C.videoTrackId)for(const e of r){const t=e.data,r=e.is_sync,n=1e3*e.cts/e.timescale;e.duration,e.timescale,r&&I.calcIframeIntervalTimestamp(n);var i=(C.isHevc?function(e,t){let r=[];r[0]=t?28:44,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}:Se)(t,r);I.decode(i,{type:2,ts:n,isIFrame:r,cts:0})}else if(e===C.audioTrackId)for(const e of r){const t=e.data,r=1e3*e.cts/e.timescale,s=(e.duration,e.timescale,new Uint8Array(t.byteLength+2));s.set([175,1],0),s.set(t,2),I.decode(s,{type:1,ts:r,isIFrame:!1,cts:0})}else I.debug.warn(C.LOG_NAME,"onSamples() trackId error",e)},dispatch(e){let t=e;"string"!=typeof e?"object"==typeof e?(t.buffer.fileStart=C.offset,C.offset+=t.byteLength,C.mp4Box.appendBuffer(t.buffer)):I.debug.warn(C.LOG_NAME,"dispatch()","data is not object",e):I.debug.warn(C.LOG_NAME,"dispatch()","data is string",e)},destroy(){C.mp4Box&&(C.mp4Box.flush(),C.mp4Box=null),C.offset=0,C.videoTrackId=null,C.audioTrackId=null,C.isHevc=!1}},F={LOG_NAME:"worker mpeg4Demuxer",lastBuffer:new Uint8Array(0),parsedOffset:0,firstStartCodeOffset:0,secondStartCodeOffset:0,state:"init",hasInitVideoCodec:!1,localDts:0,dispatch(e){e=new Uint8Array(e);F.extractNALu(e)},destroy(){F.lastBuffer=new Uint8Array(0),F.parsedOffset=0,F.firstStartCodeOffset=0,F.secondStartCodeOffset=0,F.state="init",F.hasInitVideoCodec=!1,F.localDts=0},extractNALu(e){if(!e||e.byteLength<1)I.debug.warn(F.LOG_NAME,"extractNALu() buffer error",e);else{const t=new Uint8Array(F.lastBuffer.length+e.length);for(t.set(F.lastBuffer,0),t.set(new Uint8Array(e),F.lastBuffer.length),F.lastBuffer=t;;){if("init"===F.state){let e=!1;for(;4<=F.lastBuffer.length-F.parsedOffset;)if(0===F.lastBuffer[F.parsedOffset])if(0===F.lastBuffer[F.parsedOffset+1])if(1===F.lastBuffer[F.parsedOffset+2]){if(182===F.lastBuffer[F.parsedOffset+3]){F.state="findFirstStartCode",F.firstStartCodeOffset=F.parsedOffset,F.parsedOffset+=4,e=!0;break}F.parsedOffset++}else F.parsedOffset++;else F.parsedOffset++;else F.parsedOffset++;if(e)continue;break}if("findFirstStartCode"===F.state){let e=!1;for(;4<=F.lastBuffer.length-F.parsedOffset;)if(0===F.lastBuffer[F.parsedOffset])if(0===F.lastBuffer[F.parsedOffset+1])if(1===F.lastBuffer[F.parsedOffset+2]){if(182===F.lastBuffer[F.parsedOffset+3]){F.state="findSecondStartCode",F.secondStartCodeOffset=F.parsedOffset,F.parsedOffset+=4,e=!0;break}F.parsedOffset++}else F.parsedOffset++;else F.parsedOffset++;else F.parsedOffset++;if(e)continue;break}if("findSecondStartCode"===F.state){if(!(0{a&&a(0);var e=JSON.stringify({demuxBufferDelay:I.getVideoBufferLength(),audioDemuxBufferDelay:I.getAudioBufferLength(),flvBufferByteLength:I.getFlvBufferLength(),netBuf:I.networkDelay||0,pushLatestDelay:I.pushLatestDelay||0,isDropping:ye(I.dropping)||ye(I.isPushDropping),isStreamTsMoreThanLocal:m});postMessage({cmd:M,type:"streamStats",value:e})},1e3)},stopStreamRateAndStatsInterval:function(){e&&(clearInterval(e),e=null)},useOffscreen:function(){return I._opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},getDelay:function(e){return!e||I._opt.hasVideo&&!c?-1:(I.preDelayTimestamp&&I.preDelayTimestamp>e?1e3 timestamp is ${e} more than ${I.preDelayTimestamp-e}ms`):I.firstTimestamp?e&&(t=Date.now()-I.startTimestamp,(r=e-I.firstTimestamp)<=t?(m=!1,I.delay=t-r):(m=!0,I.delay=r-t)):(I.firstTimestamp=e,I.startTimestamp=Date.now(),I.delay=-1),I.preDelayTimestamp=e,I.delay);var t,r},getDelayNotUpdateDelay:function(t){if(!t||I._opt.hasVideo&&!c)return-1;if(I.preDelayTimestamp&&1e3 timestamp is ${t} more than ${I.preDelayTimestamp-t}ms`),-1;if(I.firstTimestamp){let e=-1;var r;return t&&(r=Date.now()-I.startTimestamp,t=t-I.firstTimestamp,e=t<=r?(m=!1,r-t):(m=!0,t-r)),e}return-1},resetDelay:function(){I.firstTimestamp=null,I.startTimestamp=null,I.delay=-1},resetAllDelay:function(){I.resetDelay(),I.preDelayTimestamp=null},doDecode:function(e){I._opt.useWCS&&I.useOffscreen()&&2===e.type&&s.decode?s.decode(e.payload,e.ts,e.cts):e.decoder.decode(e.payload,e.ts,e.isIFrame,e.cts)},init:function(){I.debug.log("worker","init and opt is",I._opt);const t=I._opt.playType===L,r="playbackTF"===I._opt.playType;if(k.init(),I.isPlayer=t,I.isPlayback=r,I.isPlaybackCacheBeforeDecodeForFpsRender())I.debug.log("worker","playback and playbackIsCacheBeforeDecodeForFpsRender is true");else{const r=()=>{let e=null;if(i.length)if(I.isPushDropping)I.debug.warn("worker","loop() isPushDropping is true and bufferList length is "+i.length);else if(I.dropping){for(e=i.shift(),I.debug.warn("worker",`loop() dropBuffer is dropping and isIFrame ${e.isIFrame} and delay is ${I.delay} and bufferlist is `+i.length);!e.isIFrame&&i.length;)e=i.shift();const t=I.getDelayNotUpdateDelay(e.ts);e.isIFrame&&t<=I.getNotDroppingDelayTs()&&(I.debug.log("worker","loop() is dropping = false, is iFrame"),I.dropping=!1,I.doDecode(e))}else if(e=i[0],-1===I.getDelay(e.ts)||I.isPlayback)I.isPlayer&&I.debug.log("worker","loop() common dumex delay is -1 ,data.ts is",e.ts),i.shift(),I.doDecode(e);else if(I.delay>I._opt.videoBuffer+I._opt.videoBufferDelay&&t)I.hasIframeInBufferList()?(I.debug.log("worker",`delay is ${I.delay}, set dropping is true`),I.resetAllDelay(),I.dropping=!0):(i.shift(),I.doDecode(e));else for(;i.length;){if(e=i[0],!(I.getDelay(e.ts)>I._opt.videoBuffer)){I.delay<0&&I.debug.warn("worker",`loop() do not decode and delay is ${I.delay}, bufferList is `+i.length);break}i.shift(),I.doDecode(e)}else-1!==I.delay&&I.debug.log("worker","loop() bufferList is empty and reset delay"),I.resetAllDelay()};I.stopId=setInterval(()=>{var e=(new Date).getTime(),e=e-(_=_||e);100{var e;i.length&&(e=i.shift(),I.doDecode(e))},t=(e(),Math.ceil(1e3/(I.streamFps*I._opt.playbackRate)));I.debug.log("worker",`playbackCacheLoop fragDuration is ${t}, streamFps is ${I.streamFps}, playbackRate is `+I._opt.playbackRate),I.stopId=setInterval(e,t)},close:function(){I.debug.log("worker","close"),I.isDestroyed=!0,I.stopStreamRateAndStatsInterval(),I.stopId&&(clearInterval(I.stopId),I.stopId=null),P&&(P.clear&&P.clear(),P=null),D&&(D.clear&&D.clear(),D=null),a=null,_=null,m=!1,s&&(s.reset&&s.reset(),s=null),I.firstTimestamp=null,I.startTimestamp=null,I.networkDelay=0,I.streamFps=null,I.streamAudioFps=null,I.streamVideoFps=null,I.delay=-1,I.pushLatestDelay=-1,I.preDelayTimestamp=null,I.dropping=!1,I.isPushDropping=!1,I.isPlayer=!0,I.isPlayback=!1,I._opt=T(),I.webglObj&&(I.webglObj.destroy(),I.offscreenCanvas.removeEventListener("webglcontextlost",I.onOffscreenCanvasWebglContextLost),I.offscreenCanvas.removeEventListener("webglcontextrestored",I.onOffscreenCanvasWebglContextRestored),I.offscreenCanvas=null,I.offscreenCanvasGL=null,I.offscreenCanvasCtx=null),i=[],d=[],n(),o=null,r&&(r.close(1e3,"Client disconnecting"),r=null),h=null,u=null,f=!1,p=!1,c=!1,B=!1,A=!1,b=[],v=0,w=0,g=null,y=null,S=null,E=null,U=0,x=0,k.destroy(),C.destroy(),F.destroy(),postMessage({cmd:"closeEnd"})},pushBuffer:function(e,t){if(1===t.type&&pe(e))I.decodeAudio(e,t.ts);else{if(I.isPlayer&&02*U-5&&I.debug.warn("worker",`pushBuffer video + ts is ${t.ts}, preTimestamp is ${E}, + diff is ${e} and preTimestampDuration is ${U} + maybe trigger black screen or flower screen + `)}if(I.isPlayer&&0e&&I.delay{2===e.type&&(t+=1)}),t},hasIframeInBufferList:()=>i.some(e=>2===e.type&&e.isIFrame),getNotDroppingDelayTs:()=>I._opt.videoBuffer+I._opt.videoBufferDelay/2,getAudioBufferLength(){let t=0;return i.forEach(e=>{1===e.type&&(t+=1)}),t},getFlvBufferLength(){let e=0;return o&&o.buffer&&(e=o.buffer.byteLength),e=I._opt.isNakedFlow&&k.lastBuf?k.lastBuf.byteLength:e},fetchStream:function(e,i){I.debug.log("worker","fetchStream, url is "+e,"options:",JSON.stringify(i)),i.isFlv?I._opt.isFlv=!0:i.isFmp4?I._opt.isFmp4=!0:i.isMpeg4&&(I._opt.isMpeg4=!0),a=function(r){let i=0,n=_e();return e=>{var t;"[object Number]"===Object.prototype.toString.call(e)&&(i+=e,1e3<=(t=(e=_e())-n)&&(r(i/t*1e3),n=e,i=0))}}(e=>{postMessage({cmd:M,type:"streamRate",value:e})}),I.startStreamRateAndStatsInterval(),i.isFmp4&&C.listenMp4Box(),2===i.protocol?(o=new Y(I.demuxFlv()),fetch(e,{signal:t.signal}).then(e=>{if(!(e.ok&&200<=e.status&&e.status<=299))return I.debug.warn("worker",`fetch response status is ${e.status} and ok is ${e.ok} and emit error and next abort()`),n(),void postMessage({cmd:M,type:O,value:`fetch response status is ${e.status} and ok is `+e.ok});if(postMessage({cmd:M,type:oe}),"undefined"!=typeof WritableStream)e.body.pipeTo(new WritableStream({write:e=>{a(e.byteLength),i.isFlv?o.write(e):i.isFmp4?I.demuxFmp4(e):i.isMpeg4&&I.demuxMpeg4(e)},close:()=>{o=null,n(),postMessage({cmd:M,type:N,value:J})},abort:e=>{o=null,e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}))}}));else{const t=e.body.getReader(),r=()=>{t.read().then(e=>{var{done:e,value:t}=e;if(e)return o=null,n(),void postMessage({cmd:M,type:N,value:J});a(t.byteLength),i.isFlv?o.write(t):i.isFmp4?I.demuxFmp4(t):i.isMpeg4&&I.demuxMpeg4(t),r()}).catch(e=>{o=null,e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}))})};r()}}).catch(e=>{e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}),o=null)})):1===i.protocol&&(i.isFlv&&(o=new Y(I.demuxFlv())),(r=new WebSocket(e)).binaryType="arraybuffer",r.onopen=()=>{I.debug.log("worker","fetchStream, WebsocketStream socket open"),postMessage({cmd:M,type:oe}),postMessage({cmd:M,type:"websocketOpen"})},r.onclose=e=>{I.debug.log("worker","fetchStream, WebsocketStream socket close and code is "+e.code),1006===e.code&&I.debug.warn("worker","fetchStream, WebsocketStream socket close abnormally and code is "+e.code),o=null,postMessage({cmd:M,type:N,value:"websocket"})},r.onerror=e=>{I.debug.error("worker","fetchStream, WebsocketStream socket error",e),o=null,postMessage({cmd:M,type:"websocketError",value:e.isTrusted?"websocket user aborted":"websocket error"})},r.onmessage=e=>{a(e.data.byteLength),i.isFlv?o.write(e.data):i.isFmp4?I.demuxFmp4(e.data):i.isMpeg4?I.demuxMpeg4(e.data):I._opt.isNakedFlow?I.demuxNakedFlow(e.data):I.demuxM7s(e.data)})},demuxFlv:function*(){yield 9;const r=new ArrayBuffer(4),e=new Uint8Array(r),i=new Uint32Array(r);for(;;){e[3]=0;const r=yield 15,a=r[4];e[0]=r[7],e[1]=r[6],e[2]=r[5];var t=i[0],n=(e[0]=r[10],e[1]=r[9],e[2]=r[8],e[3]=r[11],i[0]),s=(yield t).slice();switch(a){case 8:I.decode(s,{type:1,ts:n});break;case 9:if(0>4==1;I.isPlayer&&(I.calcNetworkDelay(n),r&&I.calcIframeIntervalTimestamp(n)),i[0]=s[4],i[1]=s[3],i[2]=s[2],i[3]=0;let e=i[0],t=s;I._opt.isCrypto&&(I._opt.cryptoIV&&0n)break;var a=t[s+4];if(1==(a&=31)||5==a){const n=t.slice(s+4+2,s+4+o);let e=new We.ModeOfOperation.ctr(r,new We.Counter(i));a=e.decrypt(n);e=null,t.set(a,s+4+2)}s=s+4+o}var o;return t}(s,I._opt.cryptoKey,I._opt.cryptoIV):I.debug.error("worker",`cryptoKey.length is ${I._opt.cryptoKey&&I._opt.cryptoKey.byteLength} or cryptoIV.length is ${I._opt.cryptoIV&&I._opt.cryptoIV.byteLength} null`)),I.decode(t,{type:2,ts:n,isIFrame:r,cts:e})}break;default:I.debug.log("worker","demuxFlv() type is "+a)}}},decode:function(e,t){1===t.type?I._opt.hasAudio&&(postMessage({cmd:M,type:"streamAbps",value:e.byteLength}),I.isPlayer?I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):I.isPlayback&&(I.isPlaybackCacheBeforeDecodeForFpsRender()||1===I._opt.playbackRate?I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):I.decodeAudio(e,t.ts))):2===t.type&&I._opt.hasVideo&&(postMessage({cmd:M,type:se,value:e.byteLength}),postMessage({cmd:M,type:ae,value:t.ts}),I.isPlayer?I.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame,cts:t.cts}):I.isPlayback&&(I.isPlaybackOnlyDecodeIFrame()?t.isIFrame&&I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}):(I.isPlaybackCacheBeforeDecodeForFpsRender(),I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}))))},setCodecAudio:function(e){var t=e[0]>>4;if(pe(e)||7==t||8==t){I.debug.log("worker","setCodecAudio: init audio codec, codeId is "+t);e=t===G?e.slice(2):e.slice(1);P.setCodec(t,I._opt.sampleRate,e),p=!0;{const e=Number("1")||1;setTimeout(()=>{I.close(),postMessage({cmd:ne})},60*e*60*1e3)}}else I.debug.warn("worker","setCodecAudio: hasInitAudioCodec is false, codecId is ",t)},decodeAudio:function(e,t){var r=e[0]>>4;p?P.decode(r===G?e.slice(2):e.slice(1),t):I.setCodecAudio(e)},setCodecVideo:function(e){var t=15&e[0];if(I.isVideoSequenceHeader(e))if(7==t||12==t){I.debug.log("worker","setCodecVideo: init video codec , codecId is "+t);var r=e.slice(5);if(7==t&&I._opt.useSIMD){const e=we(r);if(4080>4} and packetType is `+e[1])},decodeVideo:function(t,r,e,i){if(f)if(c=!c&&e?!0:c){if(e&&I.isVideoSequenceHeader(t)){const r=15&t[0];let e={};7==r?e=we(t.slice(5)):12==r&&(e=function(e){let n={width:0,height:0,profile:0,level:0};e=e.slice(5);do{let t={};if(e.length<23)break;if(t.configurationVersion=e[0],1!=t.configurationVersion)break;t.general_profile_space=e[1]>>6&3,t.general_tier_flag=e[1]>>5&1,t.general_profile_idc=31&e[1],t.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],t.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],t.general_constraint_indicator_flags=t.general_constraint_indicator_flags<<16|e[10]<<8|e[11],t.general_level_idc=e[12],t.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],t.parallelismType=3&e[15],t.chromaFormat=3&e[16],t.bitDepthLumaMinus8=7&e[17],t.bitDepthChromaMinus8=7&e[18],t.avgFrameRate=e[19]<<8|e[20],t.constantFrameRate=e[21]>>6&3,t.numTemporalLayers=e[21]>>3&7,t.temporalIdNested=e[21]>>2&1,t.lengthSizeMinusOne=3&e[21];let r=e[22],i=e.slice(23);for(let e=0;eye(e.isIFrame)&&2===e.type))?(t=(i=i.slice(e)).shift(),r=I.getDelayNotUpdateDelay(t.ts),I.doDecode(t),I.isPushDropping=!1,I.debug.log("worker",`dropBuffer$2() iFrameIndex is ${e},and bufferList length is ${i.length} and tempDelay is ${r} ,delay is ${I.delay} `)):I.isPushDropping=!1),0===i.length&&(I.isPushDropping=!1)},demuxM7s:function(e){const t=new DataView(e),r=t.getUint32(1,!1);switch(t.getUint8(0)){case 1:I.decode(new Uint8Array(e,5),{type:1,ts:r});break;case 2:var i;5>4==1,I.isPlayer&&(I.calcNetworkDelay(r),i&&I.calcIframeIntervalTimestamp(r)),I.decode(new Uint8Array(e,5),{type:2,ts:r,isIFrame:i}))}},demuxNakedFlow:function(e){k.dispatch(e)},demuxFmp4:function(e){e=new Uint8Array(e);C.dispatch(e)},demuxMpeg4:function(e){F.dispatch(e)},calcNetworkDelay:function(e){var t,r,i;c&&0I._opt.networkDelay&&I._opt.playType===L&&(I.debug.warn("worker",`calcNetworkDelay now dts:${e}, start dts is ${g} vs start is ${t},local diff is ${r} ,delay is `+i),postMessage({cmd:M,type:"networkDelayTimeout",value:i})))},calcIframeIntervalTimestamp:function(e){null===S?S=e:S=I._opt.playbackForwardMaxRateDecodeIFrame},playbackUpdatePlaybackRate:function(){I.clearBuffer(!0)},isVideoSequenceHeader:function(e){return e[0]>>4==1&&e[1]===fe},onOffscreenCanvasWebglContextLost:function(e){I.debug.error("worker","handleOffscreenCanvasWebglContextLost and next try to create webgl"),e.preventDefault(),B=!0,I.webglObj.destroy(),I.webglObj=null,I.offscreenCanvasGL=null,setTimeout(()=>{I.offscreenCanvasGL=I.offscreenCanvas.getContext("webgl"),I.offscreenCanvasGL&&I.offscreenCanvasGL.getContextAttributes().stencil?(I.webglObj=Z(I.offscreenCanvasGL,I._opt.openWebglAlignment),B=!1):I.debug.error("worker","handleOffscreenCanvasWebglContextLost, stencil is false")},500)},onOffscreenCanvasWebglContextRestored:function(e){I.debug.log("worker","handleOffscreenCanvasWebglContextRestored"),e.preventDefault()},videoInfo:function(e,t,r){postMessage({cmd:re,code:e}),postMessage({cmd:ee,w:t,h:r}),h=t,u=r,I.useOffscreen()&&(I.offscreenCanvas=new OffscreenCanvas(t,r),I.offscreenCanvasGL=I.offscreenCanvas.getContext("webgl"),I.webglObj=Z(I.offscreenCanvasGL,I._opt.openWebglAlignment),I.offscreenCanvas.addEventListener("webglcontextlost",I.onOffscreenCanvasWebglContextLost,!1),I.offscreenCanvas.addEventListener("webglcontextrestored",I.onOffscreenCanvasWebglContextRestored,!1))},audioInfo:function(e,t,r){postMessage({cmd:"audioCode",code:e}),postMessage({cmd:"initAudio",sampleRate:t,channels:r}),w=r},yuvData:function(e,t){if(I.isDestroyed)I.debug.log("worker","yuvData, decoder is destroyed and return");else{var r,i=h*u*3/2,e=l.HEAPU8.subarray(e,e+i),i=new Uint8Array(e);if(I.useOffscreen())try{B||(I.webglObj.renderYUV(h,u,i),r=I.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:R,buffer:r,delay:I.delay,ts:t},[r]))}catch(e){I.debug.error("worker","yuvData, transferToImageBitmap error is",e)}else postMessage({cmd:R,output:i,delay:I.delay,ts:t},[i.buffer])}},pcmData:function(n,s,a){if(I.isDestroyed)I.debug.log("worker","pcmData, decoder is destroyed and return");else{let t=s,r=[],e=0,i=I._opt.audioBufferSize;for(let e=0;e<2;e++){var o=l.HEAPU32[(n>>2)+e]>>2;r[e]=l.HEAPF32.subarray(o,o+t)}if(v){if(!(t>=(s=i-v)))return v+=t,d[0]=Float32Array.of(...d[0],...r[0]),void(2==w&&(d[1]=Float32Array.of(...d[1],...r[1])));b[0]=Float32Array.of(...d[0],...r[0].subarray(0,s)),2==w&&(b[1]=Float32Array.of(...d[1],...r[1].subarray(0,s))),postMessage({cmd:te,buffer:b,ts:a},b.map(e=>e.buffer)),e=s,t-=s}for(v=t;v>=i;v-=i)b[0]=r[0].slice(e,e+=i),2==w&&(b[1]=r[1].slice(e-i,e)),postMessage({cmd:te,buffer:b,ts:a},b.map(e=>e.buffer));v&&(d[0]=r[0].slice(e),2==w&&(d[1]=r[1].slice(e)))}},sendWebsocketMessage:function(e){r?1===r.readyState?r.send(e):I.debug.error("worker","socket is not open"):I.debug.error("worker","socket is null")},timeEnd:function(){I.debug.error("worker","jessibuca pro 体验结束,请刷新页面再次体验,如需要购买商业授权,可以联系微信:bosswancheng"),I.close(),postMessage({cmd:ne})},postStreamToMain(e,t){postMessage({cmd:"tempStream",type:t,buffer:e},[e.buffer])}},P=(I.debug=new be(I),null),D=(l.AudioDecoder&&(P=new l.AudioDecoder(I)),null);l.VideoDecoder&&(D=new l.VideoDecoder(I)),postMessage({cmd:"init"}),self.onmessage=function(e){var t=e.data;switch(t.cmd){case"init":try{I._opt=Object.assign(I._opt,JSON.parse(t.opt))}catch(e){}I.init();break;case"decode":I.pushBuffer(t.buffer,t.options);break;case"audioDecode":I.decodeAudio(t.buffer,t.ts);break;case"videoDecode":I.decodeVideo(t.buffer,t.ts,t.isIFrame);break;case"clearBuffer":I.clearBuffer(t.needClear);break;case"fetchStream":I.fetchStream(t.url,JSON.parse(t.opt));break;case"close":I.close();break;case"updateConfig":I.debug.log("worker","updateConfig",t.key,t.value),I._opt[t.key]=t.value,"playbackRate"===t.key&&(I.playbackUpdatePlaybackRate(),I.isPlaybackCacheBeforeDecodeForFpsRender()&&I.playbackCacheLoop());break;case"sendWsMessage":I.sendWebsocketMessage(t.message)}}}K.Log,K.MP4BoxStream,K.DataStream,K.MultiBufferStream,K.MPEG4DescriptorParser,K.BoxParser,K.XMLSubtitlein4Parser,K.Textin4Parser,K.ISOFile,K.createFile,Date.now||(Date.now=function(){return(new Date).getTime()}),y.postRun=function(){Ye(y)}}); diff --git a/ui/decoder-pro-simd.wasm b/ui/decoder-pro-simd.wasm index a3078d8..eb8ca95 100755 Binary files a/ui/decoder-pro-simd.wasm and b/ui/decoder-pro-simd.wasm differ diff --git a/ui/decoder-pro.js b/ui/decoder-pro.js index ce15b21..3f9ea8a 100644 --- a/ui/decoder-pro.js +++ b/ui/decoder-pro.js @@ -1 +1,14 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("path"),require("fs"),require("crypto")):"function"==typeof define&&define.amd?define(["path","fs","crypto"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).path,e.fs,e.crypto$1)}(this,function(e,t,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var kt=n(e),At=n(t),Dt=n(r);function o(e,t){return e(t={exports:{}},t.exports),t.exports}var i=o(function($){var t,m,B,N,O,j,i,y=void 0!==y?y:{},L=Object.assign({},y),W="./this.program",z="object"==typeof window,c="function"==typeof importScripts,V="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,e="",H=(V?(e=c?kt.default.dirname(e)+"/":__dirname+"/",j=()=>{O||(N=At.default,O=kt.default)},t=function(e,t){return j(),e=O.normalize(e),N.readFileSync(e,t?void 0:"utf8")},B=e=>{e=t(e,!0);return e=e.buffer?e:new Uint8Array(e)},m=(e,r,n)=>{j(),e=O.normalize(e),N.readFile(e,function(e,t){e?n(e):r(t.buffer)})},1{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},c&&(B=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),m=(e,t,r)=>{var n=new XMLHttpRequest;n.open("GET",e,!0),n.responseType="arraybuffer",n.onload=()=>{200==n.status||0==n.status&&n.response?t(n.response):r()},n.onerror=r,n.send(null)}),y.print||console.log.bind(console)),a=y.printErr||console.warn.bind(console),X=(Object.assign(y,L),y.arguments&&y.arguments,y.thisProgram&&(W=y.thisProgram),y.quit&&y.quit,y.wasmBinary&&(i=y.wasmBinary),y.noExitRuntime,"object"!=typeof WebAssembly&&w("no native wasm support detected"),!1);function q(e,t){e||w(t)}var G,d,f,u,J,l,p,Y,K,Q,Z="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function s(e,t,r){for(var n=t+r,o=t;e[o]&&!(n<=o);)++o;if(16>10,56320|1023&a))):i+=String.fromCharCode((31&u)<<6|s)):i+=String.fromCharCode(u)}return i}function ee(e,t){return e?s(f,e,t):""}function te(e,t,r,n){if(!(0>6,t[r++]=128|63&a}else if(a<=65535){if(i<=r+2)break;t[r++]=224|a>>12,t[r++]=128|a>>6&63,t[r++]=128|63&a}else{if(i<=r+3)break;t[r++]=240|a>>18,t[r++]=128|a>>12&63,t[r++]=128|a>>6&63,t[r++]=128|63&a}}return t[r]=0,r-o}function re(e){for(var t=0,r=0;r>2]=e},this.get_type=function(){return p[this.ptr+4>>2]},this.set_destructor=function(e){p[this.ptr+8>>2]=e},this.get_destructor=function(){return p[this.ptr+8>>2]},this.set_refcount=function(e){l[this.ptr>>2]=e},this.set_caught=function(e){d[this.ptr+12>>0]=e=e?1:0},this.get_caught=function(){return 0!=d[this.ptr+12>>0]},this.set_rethrown=function(e){d[this.ptr+13>>0]=e=e?1:0},this.get_rethrown=function(){return 0!=d[this.ptr+13>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=l[this.ptr>>2];l[this.ptr>>2]=e+1},this.release_ref=function(){var e=l[this.ptr>>2];return l[this.ptr>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){p[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return p[this.ptr+16>>2]},this.get_exception_ptr=function(){if(_t(this.get_type()))return p[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}ue(h="decoder-pro.wasm")||(L=h,h=y.locateFile?y.locateFile(L,e):e+L);var b={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,n=e.length-1;0<=n;n--){var o=e[n];"."===o?e.splice(n,1):".."===o?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=b.isAbs(e),r="/"===e.substr(-1);return(e=(e=b.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||t?e:".")&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var e=b.splitPath(e),t=e[0],e=e[1];return t||e?t+(e=e&&e.substr(0,e.length-1)):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=b.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments,0);return b.normalize(e.join("/"))},join2:(e,t)=>b.normalize(e+"/"+t)},E={resolve:function(){for(var e="",t=!1,r=arguments.length-1;-1<=r&&!t;r--){var n=0<=r?arguments[r]:T.cwd();if("string"!=typeof n)throw new TypeError("Arguments to path.resolve must be strings");if(!n)return"";e=n+"/"+e,t=b.isAbs(n)}return(t?"/":"")+b.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/")||"."},relative:(e,t)=>{function r(e){for(var t=0;t>>0),0!=r&&(t=Math.max(t,256)),r=e.contents,e.contents=new Uint8Array(t),0=e.node.usedBytes)return 0;var s=Math.min(e.node.usedBytes-o,n);if(8!!e),!1),n=T.root,o="/",i=0;i{for(var t,r;;){if(T.isRoot(e))return r=e.mount.mountpoint,t?"/"!==r[r.length-1]?r+"/"+t:r+t:r;t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,n=0;n>>0)%T.nameTable.length},hashAddNode:e=>{var t=T.hashName(e.parent.id,e.name);e.name_next=T.nameTable[t],T.nameTable[t]=e},hashRemoveNode:e=>{var t=T.hashName(e.parent.id,e.name);if(T.nameTable[t]===e)T.nameTable[t]=e.name_next;else for(var r=T.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=T.mayLookup(e);if(r)throw new T.ErrnoError(r,e);for(var r=T.hashName(e.id,t),n=T.nameTable[r];n;n=n.name_next){var o=n.name;if(n.parent.id===e.id&&o===t)return n}return T.lookup(e,t)},createNode:(e,t,r,n)=>{e=new T.FSNode(e,t,r,n);return T.hashAddNode(e),e},destroyNode:e=>{T.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=T.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>T.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{return T.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return T.lookupNode(e,t),20}catch(e){}return T.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var n;try{n=T.lookupNode(e,t)}catch(e){return e.errno}t=T.nodePermissions(e,"wx");if(t)return t;if(r){if(!T.isDir(n.mode))return 54;if(T.isRoot(n)||T.getPath(n)===T.cwd())return 10}else if(T.isDir(n.mode))return 31;return 0},mayOpen:(e,t)=>e?T.isLink(e.mode)?32:T.isDir(e.mode)&&("r"!==T.flagsToPermissionString(t)||512&t)?31:T.nodePermissions(e,T.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:function(){for(var e=0T.streams[e],createStream:(e,t,r)=>{T.FSStream||(T.FSStream=function(){this.shared={}},T.FSStream.prototype={},Object.defineProperties(T.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new T.FSStream,e);t=T.nextfd(t,r);return e.fd=t,T.streams[t]=e},closeStream:e=>{T.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=T.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new T.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{T.devices[e]={stream_ops:t}},getDevice:e=>T.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var n=r.pop();t.push(n),r.push.apply(r,n.mounts)}return t},syncfs:(t,r)=>{"function"==typeof t&&(r=t,t=!1),T.syncFSRequests++,1=n.length&&i(null)}n.forEach(e=>{if(!e.type.syncfs)return s(null);e.type.syncfs(e,t,s)})},mount:(e,t,r)=>{var n,o="/"===r,i=!r;if(o&&T.root)throw new T.ErrnoError(10);if(!o&&!i){i=T.lookupPath(r,{follow_mount:!1});if(r=i.path,n=i.node,T.isMountpoint(n))throw new T.ErrnoError(10);if(!T.isDir(n.mode))throw new T.ErrnoError(54)}i={type:e,opts:t,mountpoint:r,mounts:[]},t=e.mount(i);return(t.mount=i).root=t,o?T.root=t:n&&(n.mounted=i,n.mount&&n.mount.mounts.push(i)),t},unmount:e=>{e=T.lookupPath(e,{follow_mount:!1});if(!T.isMountpoint(e.node))throw new T.ErrnoError(28);var e=e.node,t=e.mounted,n=T.getMounts(t),t=(Object.keys(T.nameTable).forEach(e=>{for(var t=T.nameTable[e];t;){var r=t.name_next;n.includes(t.mount)&&T.destroyNode(t),t=r}}),e.mounted=null,e.mount.mounts.indexOf(t));e.mount.mounts.splice(t,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var n=T.lookupPath(e,{parent:!0}).node,e=b.basename(e);if(!e||"."===e||".."===e)throw new T.ErrnoError(28);var o=T.mayCreate(n,e);if(o)throw new T.ErrnoError(o);if(n.node_ops.mknod)return n.node_ops.mknod(n,e,t,r);throw new T.ErrnoError(63)},create:(e,t)=>T.mknod(e,t=(t=void 0!==t?t:438)&4095|32768,0),mkdir:(e,t)=>T.mknod(e,t=(t=void 0!==t?t:511)&1023|16384,0),mkdirTree:(e,t)=>{for(var r=e.split("/"),n="",o=0;o(void 0===r&&(r=t,t=438),T.mknod(e,t|=8192,r)),symlink:(e,t)=>{if(!E.resolve(e))throw new T.ErrnoError(44);var r=T.lookupPath(t,{parent:!0}).node;if(!r)throw new T.ErrnoError(44);var t=b.basename(t),n=T.mayCreate(r,t);if(n)throw new T.ErrnoError(n);if(r.node_ops.symlink)return r.node_ops.symlink(r,t,e);throw new T.ErrnoError(63)},rename:(e,t)=>{var r=b.dirname(e),n=b.dirname(t),o=b.basename(e),i=b.basename(t),s=T.lookupPath(e,{parent:!0}).node,a=T.lookupPath(t,{parent:!0}).node;if(!s||!a)throw new T.ErrnoError(44);if(s.mount!==a.mount)throw new T.ErrnoError(75);var u,l=T.lookupNode(s,o);if("."!==E.relative(e,n).charAt(0))throw new T.ErrnoError(28);if("."!==E.relative(t,r).charAt(0))throw new T.ErrnoError(55);try{u=T.lookupNode(a,i)}catch(e){}if(l!==u){n=T.isDir(l.mode),t=T.mayDelete(s,o,n);if(t)throw new T.ErrnoError(t);if(t=u?T.mayDelete(a,i,n):T.mayCreate(a,i))throw new T.ErrnoError(t);if(!s.node_ops.rename)throw new T.ErrnoError(63);if(T.isMountpoint(l)||u&&T.isMountpoint(u))throw new T.ErrnoError(10);if(a!==s&&(t=T.nodePermissions(s,"w")))throw new T.ErrnoError(t);T.hashRemoveNode(l);try{s.node_ops.rename(l,a,i)}catch(e){throw e}finally{T.hashAddNode(l)}}},rmdir:e=>{var t=T.lookupPath(e,{parent:!0}).node,e=b.basename(e),r=T.lookupNode(t,e),n=T.mayDelete(t,e,!0);if(n)throw new T.ErrnoError(n);if(!t.node_ops.rmdir)throw new T.ErrnoError(63);if(T.isMountpoint(r))throw new T.ErrnoError(10);t.node_ops.rmdir(t,e),T.destroyNode(r)},readdir:e=>{e=T.lookupPath(e,{follow:!0}).node;if(e.node_ops.readdir)return e.node_ops.readdir(e);throw new T.ErrnoError(54)},unlink:e=>{var t=T.lookupPath(e,{parent:!0}).node;if(!t)throw new T.ErrnoError(44);var e=b.basename(e),r=T.lookupNode(t,e),n=T.mayDelete(t,e,!1);if(n)throw new T.ErrnoError(n);if(!t.node_ops.unlink)throw new T.ErrnoError(63);if(T.isMountpoint(r))throw new T.ErrnoError(10);t.node_ops.unlink(t,e),T.destroyNode(r)},readlink:e=>{e=T.lookupPath(e).node;if(!e)throw new T.ErrnoError(44);if(e.node_ops.readlink)return E.resolve(T.getPath(e.parent),e.node_ops.readlink(e));throw new T.ErrnoError(28)},stat:(e,t)=>{e=T.lookupPath(e,{follow:!t}).node;if(!e)throw new T.ErrnoError(44);if(e.node_ops.getattr)return e.node_ops.getattr(e);throw new T.ErrnoError(63)},lstat:e=>T.stat(e,!0),chmod:(e,t,r)=>{r="string"==typeof e?T.lookupPath(e,{follow:!r}).node:e;if(!r.node_ops.setattr)throw new T.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,t)=>{T.chmod(e,t,!0)},fchmod:(e,t)=>{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);T.chmod(e.node,t)},chown:(e,t,r,n)=>{n="string"==typeof e?T.lookupPath(e,{follow:!n}).node:e;if(!n.node_ops.setattr)throw new T.ErrnoError(63);n.node_ops.setattr(n,{timestamp:Date.now()})},lchown:(e,t,r)=>{T.chown(e,t,r,!0)},fchown:(e,t,r)=>{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);T.chown(e.node,t,r)},truncate:(e,t)=>{if(t<0)throw new T.ErrnoError(28);e="string"==typeof e?T.lookupPath(e,{follow:!0}).node:e;if(!e.node_ops.setattr)throw new T.ErrnoError(63);if(T.isDir(e.mode))throw new T.ErrnoError(31);if(!T.isFile(e.mode))throw new T.ErrnoError(28);var r=T.nodePermissions(e,"w");if(r)throw new T.ErrnoError(r);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);if(0==(2097155&e.flags))throw new T.ErrnoError(28);T.truncate(e.node,t)},utime:(e,t,r)=>{e=T.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new T.ErrnoError(44);var n;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?T.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)n=e;else{e=b.normalize(e);try{n=T.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var o=!1;if(64&t)if(n){if(128&t)throw new T.ErrnoError(20)}else n=T.mknod(e,r,0),o=!0;if(!n)throw new T.ErrnoError(44);if(T.isChrdev(n.mode)&&(t&=-513),65536&t&&!T.isDir(n.mode))throw new T.ErrnoError(54);if(!o){r=T.mayOpen(n,t);if(r)throw new T.ErrnoError(r)}512&t&&!o&&T.truncate(n,0),t&=-131713;r=T.createStream({node:n,path:T.getPath(n),flags:t,seekable:!0,position:0,stream_ops:n.stream_ops,ungotten:[],error:!1});return r.stream_ops.open&&r.stream_ops.open(r),!y.logReadFiles||1&t||(T.readFiles||(T.readFiles={}),e in T.readFiles||(T.readFiles[e]=1)),r},close:e=>{if(T.isClosed(e))throw new T.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{T.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(T.isClosed(e))throw new T.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new T.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new T.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,n,o)=>{if(n<0||o<0)throw new T.ErrnoError(28);if(T.isClosed(e))throw new T.ErrnoError(8);if(1==(2097155&e.flags))throw new T.ErrnoError(8);if(T.isDir(e.node.mode))throw new T.ErrnoError(31);if(!e.stream_ops.read)throw new T.ErrnoError(28);var i=void 0!==o;if(i){if(!e.seekable)throw new T.ErrnoError(70)}else o=e.position;t=e.stream_ops.read(e,t,r,n,o);return i||(e.position+=t),t},write:(e,t,r,n,o,i)=>{if(n<0||o<0)throw new T.ErrnoError(28);if(T.isClosed(e))throw new T.ErrnoError(8);if(0==(2097155&e.flags))throw new T.ErrnoError(8);if(T.isDir(e.node.mode))throw new T.ErrnoError(31);if(!e.stream_ops.write)throw new T.ErrnoError(28);e.seekable&&1024&e.flags&&T.llseek(e,0,2);var s=void 0!==o;if(s){if(!e.seekable)throw new T.ErrnoError(70)}else o=e.position;t=e.stream_ops.write(e,t,r,n,o,i);return s||(e.position+=t),t},allocate:(e,t,r)=>{if(T.isClosed(e))throw new T.ErrnoError(8);if(t<0||r<=0)throw new T.ErrnoError(28);if(0==(2097155&e.flags))throw new T.ErrnoError(8);if(!T.isFile(e.node.mode)&&!T.isDir(e.node.mode))throw new T.ErrnoError(43);if(!e.stream_ops.allocate)throw new T.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,n,o)=>{if(0!=(2&n)&&0==(2&o)&&2!=(2097155&e.flags))throw new T.ErrnoError(2);if(1==(2097155&e.flags))throw new T.ErrnoError(2);if(e.stream_ops.mmap)return e.stream_ops.mmap(e,t,r,n,o);throw new T.ErrnoError(43)},msync:(e,t,r,n,o)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,n,o):0,munmap:e=>0,ioctl:(e,t,r)=>{if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,t,r);throw new T.ErrnoError(59)},readFile:function(e){let t=1T.currentPath,chdir:e=>{e=T.lookupPath(e,{follow:!0});if(null===e.node)throw new T.ErrnoError(44);if(!T.isDir(e.node.mode))throw new T.ErrnoError(54);var t=T.nodePermissions(e.node,"x");if(t)throw new T.ErrnoError(t);T.currentPath=e.path},createDefaultDirectories:()=>{T.mkdir("/tmp"),T.mkdir("/home"),T.mkdir("/home/web_user")},createDefaultDevices:()=>{T.mkdir("/dev"),T.registerDevice(T.makedev(1,3),{read:()=>0,write:(e,t,r,n,o)=>n}),T.mkdev("/dev/null",T.makedev(1,3)),o.register(T.makedev(5,0),o.default_tty_ops),o.register(T.makedev(6,0),o.default_tty1_ops),T.mkdev("/dev/tty",T.makedev(5,0)),T.mkdev("/dev/tty1",T.makedev(6,0));var e=function(){var e;if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=new Uint8Array(1),()=>(crypto.getRandomValues(e),e[0]);if(V)try{var t=Dt.default;return()=>t.randomBytes(1)[0]}catch(e){}return()=>w("randomDevice")}();T.createDevice("/dev","random",e),T.createDevice("/dev","urandom",e),T.mkdir("/dev/shm"),T.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{T.mkdir("/proc");var t=T.mkdir("/proc/self");T.mkdir("/proc/self/fd"),T.mount({mount:()=>{var e=T.createNode(t,"fd",16895,73);return e.node_ops={lookup:(e,t)=>{var r=T.getStream(+t);if(!r)throw new T.ErrnoError(8);t={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return t.parent=t}},e}},{},"/proc/self/fd")},createStandardStreams:()=>{y.stdin?T.createDevice("/dev","stdin",y.stdin):T.symlink("/dev/tty","/dev/stdin"),y.stdout?T.createDevice("/dev","stdout",null,y.stdout):T.symlink("/dev/tty","/dev/stdout"),y.stderr?T.createDevice("/dev","stderr",null,y.stderr):T.symlink("/dev/tty1","/dev/stderr"),T.open("/dev/stdin",0),T.open("/dev/stdout",1),T.open("/dev/stderr",1)},ensureErrnoError:()=>{T.ErrnoError||(T.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},T.ErrnoError.prototype=new Error,T.ErrnoError.prototype.constructor=T.ErrnoError,[44].forEach(e=>{T.genericErrors[e]=new T.ErrnoError(e),T.genericErrors[e].stack=""}))},staticInit:()=>{T.ensureErrnoError(),T.nameTable=new Array(4096),T.mount(_,{},"/"),T.createDefaultDirectories(),T.createDefaultDevices(),T.createSpecialDirectories(),T.filesystems={MEMFS:_}},init:(e,t,r)=>{T.init.initialized=!0,T.ensureErrnoError(),y.stdin=e||y.stdin,y.stdout=t||y.stdout,y.stderr=r||y.stderr,T.createStandardStreams()},quit:()=>{T.init.initialized=!1;for(var e=0;e{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{e=T.analyzePath(e,t);return e.exists?e.object:null},analyzePath:(e,t)=>{try{e=(n=T.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var n=T.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=n.path,r.parentObject=n.node,r.name=b.basename(e),n=T.lookupPath(e,{follow:!t}),r.exists=!0,r.path=n.path,r.object=n.node,r.name=n.node.name,r.isRoot="/"===n.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,n)=>{e="string"==typeof e?e:T.getPath(e);for(var o=t.split("/").reverse();o.length;){var i=o.pop();if(i){var s=b.join2(e,i);try{T.mkdir(s)}catch(e){}e=s}}return s},createFile:(e,t,r,n,o)=>{e=b.join2("string"==typeof e?e:T.getPath(e),t),t=T.getMode(n,o);return T.create(e,t)},createDataFile:(e,t,r,n,o,i)=>{var s=t,t=(e&&(e="string"==typeof e?e:T.getPath(e),s=t?b.join2(e,t):e),T.getMode(n,o)),e=T.create(s,t);if(r){if("string"==typeof r){for(var a=new Array(r.length),u=0,l=r.length;u{var e=b.join2("string"==typeof e?e:T.getPath(e),t),t=T.getMode(!!u,!!s),r=(T.createDevice.major||(T.createDevice.major=64),T.makedev(T.createDevice.major++,0));return T.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{s&&s.buffer&&s.buffer.length&&s(10)},read:(e,t,r,n,o)=>{for(var i,s=0,a=0;a{for(var i=0;i{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!t)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=pe(t(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new T.ErrnoError(29)}},createLazyFile:(e,t,s,r,n)=>{function o(){this.lengthKnown=!1,this.chunks=[]}if(o.prototype.get=function(e){var t;if(!(e>this.length-1||e<0))return t=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[t]},o.prototype.setDataGetter=function(e){this.getter=e},o.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",s,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+s+". Status: "+e.status);var t,n=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,e=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,o=1048576,i=(r||(o=n),this);i.setDataGetter(e=>{var t=e*o,r=(e+1)*o-1,r=Math.min(r,n-1);if(void 0===i.chunks[e]&&(i.chunks[e]=((e,t)=>{if(t=i.length)return 0;var s=Math.min(i.length-o,n);if(i.slice)for(var a=0;a{var t=a.stream_ops[e];u[e]=function(){return T.forceLoadFile(a),t.apply(null,arguments)}}),u.read=(e,t,r,n,o)=>(T.forceLoadFile(a),l(e,t,r,n,o)),u.mmap=(e,t,r,n,o)=>{T.forceLoadFile(a);var i=he(t);if(i)return l(e,d,i,t,r),{ptr:i,allocated:!0};throw new T.ErrnoError(48)},a.stream_ops=u,a},createPreloadedFile:(r,n,e,o,i,s,a,u,l,c)=>{var t,d,f,p=n?E.resolve(b.join2(r,n)):r;function h(e){function t(e){c&&c(),u||T.createDataFile(r,n,e,o,i,l),s&&s(),ae()}Browser.handledByPreloadPlugin(e,p,t,()=>{a&&a(),ae()})||t(e)}se(),"string"==typeof e?(d=a,f="al "+(t=e),m(t,e=>{q(e,'Loading data file "'+t+'" failed (no arrayBuffer).'),h(new Uint8Array(e)),f&&ae()},e=>{if(!d)throw'Loading data file "'+t+'" failed.';d()}),f&&se()):h(e)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(s,a,u)=>{a=a||(()=>{}),u=u||(()=>{});var e=T.indexedDB();try{var l=e.open(T.DB_NAME(),T.DB_VERSION)}catch(s){return u(s)}l.onupgradeneeded=()=>{H("creating db"),l.result.createObjectStore(T.DB_STORE_NAME)},l.onsuccess=()=>{var e=l.result.transaction([T.DB_STORE_NAME],"readwrite"),t=e.objectStore(T.DB_STORE_NAME),r=0,n=0,o=s.length;function i(){(0==n?a:u)()}s.forEach(e=>{e=t.put(T.analyzePath(e).object.contents,e);e.onsuccess=()=>{++r+n==o&&i()},e.onerror=()=>{r+ ++n==o&&i()}}),e.onerror=u},l.onerror=u},loadFilesFromDB:(a,u,l)=>{u=u||(()=>{}),l=l||(()=>{});var e=T.indexedDB();try{var c=e.open(T.DB_NAME(),T.DB_VERSION)}catch(a){return l(a)}c.onupgradeneeded=l,c.onsuccess=()=>{var e=c.result;try{var t=e.transaction([T.DB_STORE_NAME],"readonly")}catch(e){return void l(e)}var r=t.objectStore(T.DB_STORE_NAME),n=0,o=0,i=a.length;function s(){(0==o?u:l)()}a.forEach(e=>{var t=r.get(e);t.onsuccess=()=>{T.analyzePath(e).exists&&T.unlink(e),T.createDataFile(b.dirname(e),b.basename(e),t.result,!0,!0,!0),++n+o==i&&s()},t.onerror=()=>{n+ ++o==i&&s()}}),t.onerror=l},c.onerror=l}},k={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(b.isAbs(t))return t;var n;if(-100===e)n=T.cwd();else{e=T.getStream(e);if(!e)throw new T.ErrnoError(8);n=e.path}if(0!=t.length)return b.join2(n,t);if(r)return n;throw new T.ErrnoError(44)},doStat:function(e,t,r){try{var n=e(t)}catch(e){if(e&&e.node&&b.normalize(t)!==b.normalize(T.getPath(e.node)))return-54;throw e}return l[r>>2]=n.dev,l[r+4>>2]=0,l[r+8>>2]=n.ino,l[r+12>>2]=n.mode,l[r+16>>2]=n.nlink,l[r+20>>2]=n.uid,l[r+24>>2]=n.gid,l[r+28>>2]=n.rdev,l[r+32>>2]=0,v=[n.size>>>0,(g=n.size,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+40>>2]=v[0],l[r+44>>2]=v[1],l[r+48>>2]=4096,l[r+52>>2]=n.blocks,v=[Math.floor(n.atime.getTime()/1e3)>>>0,(g=Math.floor(n.atime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+56>>2]=v[0],l[r+60>>2]=v[1],l[r+64>>2]=0,v=[Math.floor(n.mtime.getTime()/1e3)>>>0,(g=Math.floor(n.mtime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+72>>2]=v[0],l[r+76>>2]=v[1],l[r+80>>2]=0,v=[Math.floor(n.ctime.getTime()/1e3)>>>0,(g=Math.floor(n.ctime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+88>>2]=v[0],l[r+92>>2]=v[1],l[r+96>>2]=0,v=[n.ino>>>0,(g=n.ino,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[r+104>>2]=v[0],l[r+108>>2]=v[1],0},doMsync:function(e,t,r,n,o){e=f.slice(e,e+r);T.msync(t,e,o,r,n)},varargs:void 0,get:function(){return k.varargs+=4,l[k.varargs-4>>2]},getStr:function(e){return ee(e)},getStreamFromFD:function(e){e=T.getStream(e);if(e)return e;throw new T.ErrnoError(8)}};function me(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var ye=void 0;function A(e){for(var t="",r=e;f[r];)t+=ye[f[r++]];return t}var D={},C={},ge={};function ve(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&t<=57?"_"+e:e}function we(e,t){return e=ve(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function be(e,t){var r=we(t,function(e){this.name=t,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return r.prototype=Object.create(e.prototype),(r.prototype.constructor=r).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var F=void 0;function S(e){throw new F(e)}var Ee=void 0;function _e(e){throw new Ee(e)}function Te(n,t,o){function r(e){var t=o(e);t.length!==n.length&&_e("Mismatched type converter count");for(var r=0;r{C.hasOwnProperty(e)?i[t]=C[e]:(s.push(e),D.hasOwnProperty(e)||(D[e]=[]),D[e].push(()=>{i[t]=C[e],++a===s.length&&r(i)}))}),0===s.length&&r(i)}function P(e,t,r){r=2e()))}function ke(e){S(e.$$.ptrType.registeredClass.name+" instance already deleted")}var Ae=!1;function De(e){}function Ce(e){--e.count.value,0===e.count.value&&((e=e).smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr))}var Fe={};var Se=[];function Pe(){for(;Se.length;){var e=Se.pop();e.$$.deleteScheduled=!1,e.delete()}}var Re=void 0;var xe={};function Me(e,t){return t.ptrType&&t.ptr||_e("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&_e("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Ie(Object.create(e,{$$:{value:t}}))}function Ie(e){return"undefined"==typeof FinalizationRegistry?(Ie=e=>e,e):(Ae=new FinalizationRegistry(e=>{Ce(e.$$)}),De=e=>Ae.unregister(e),(Ie=e=>{var t=e.$$;return t.smartPtr&&Ae.register(e,{$$:t},e),e})(e))}function R(){}function Ue(e,t,r){var n;void 0===e[t].overloadTable&&(n=e[t],e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||S("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[n.argCount]=n)}function $e(e,t,r,n,o,i,s,a){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=n,this.baseClass=o,this.getActualType=i,this.upcast=s,this.downcast=a,this.pureVirtualFunctions=[]}function Be(e,t,r){for(;t!==r;)t.upcast||S("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Ne(e,t){if(null===t)return this.isReference&&S("null is not a valid "+this.name),0;t.$$||S('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Be(t.$$.ptr,r,this.registeredClass)}function Oe(e,t){if(null===t)return this.isReference&&S("null is not a valid "+this.name),this.isSmartPointer?(n=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,n),n):0;t.$$||S('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&S("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);var r,n,o=t.$$.ptrType.registeredClass;if(n=Be(t.$$.ptr,o,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&S("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:S("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);break;case 1:n=t.$$.smartPtr;break;case 2:t.$$.smartPtrType===this?n=t.$$.smartPtr:(r=t.clone(),n=this.rawShare(n,Ze.toHandle(function(){r.delete()})),null!==e&&e.push(this.rawDestructor,n));break;default:S("Unsupporting sharing policy")}return n}function je(e,t){if(null===t)return this.isReference&&S("null is not a valid "+this.name),0;t.$$||S('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&S("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Be(t.$$.ptr,r,this.registeredClass)}function Le(e){return this.fromWireType(l[e>>2])}function x(e,t,r,n,o,i,s,a,u,l,c){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=n,this.isSmartPointer=o,this.pointeeType=i,this.sharingPolicy=s,this.rawGetPointee=a,this.rawConstructor=u,this.rawShare=l,this.rawDestructor=c,o||void 0!==t.baseClass?this.toWireType=Oe:(this.toWireType=n?Ne:je,this.destructorFunction=null)}var We=[];function ze(e){var t=We[e];return t||(e>=We.length&&(We.length=e+1),We[e]=t=Q.get(e)),t}function M(e,t){var o,i,s,r=(e=A(e)).includes("j")?(o=e,i=t,s=[],function(){return s.length=0,Object.assign(s,arguments),t=i,r=s,(e=o).includes("j")?(n=t,e=y["dynCall_"+e],r&&r.length?e.apply(null,[n].concat(r)):e.call(null,n)):ze(t).apply(null,r);var e,t,r,n}):ze(t);return"function"!=typeof r&&S("unknown function pointer with signature "+e+": "+t),r}var Ve=void 0;function He(e){var e=wt(e),t=A(e);return U(e),t}function Xe(e,t){var r=[],n={};throw t.forEach(function e(t){n[t]||C[t]||(ge[t]?ge[t].forEach(e):(r.push(t),n[t]=!0))}),new Ve(e+": "+r.map(He).join([", "]))}function qe(e,t){for(var r=[],n=0;n>2]);return r}function Ge(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Je(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=we(e.name||"unknownFunctionName",function(){}),r=(r.prototype=e.prototype,new r),e=e.apply(r,t);return e instanceof Object?e:r}function Ye(e,t,r,n,o){var i=t.length;i<2&&S("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==r,s=!1,a=1;a(e||S("Cannot use deleted val. handle = "+e),I[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ke.length?Ke.pop():I.length;return I[t]={refcount:1,value:e},t}}};function et(e){if(null===e)return"null";var t=typeof e;return"object"==t||"array"==t||"function"==t?e.toString():""+e}var tt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function rt(e,t){for(var r,n=e>>1,o=n+t/2;!(o<=n)&&J[n];)++n;if(32<(r=n<<1)-e&&tt)return tt.decode(f.subarray(e,r));for(var i="",s=0;!(t/2<=s);++s){var a=u[e+2*s>>1];if(0==a)break;i+=String.fromCharCode(a)}return i}function nt(e,t,r){if((r=void 0===r?2147483647:r)<2)return 0;for(var n=t,o=(r-=2)<2*e.length?r/2:e.length,i=0;i>1]=s,t+=2}return u[t>>1]=0,t-n}function ot(e){return 2*e.length}function it(e,t){for(var r=0,n="";!(t/4<=r);){var o,i=l[e+4*r>>2];if(0==i)break;++r,65536<=i?(o=i-65536,n+=String.fromCharCode(55296|o>>10,56320|1023&o)):n+=String.fromCharCode(i)}return n}function st(e,t,r){if((r=void 0===r?2147483647:r)<4)return 0;for(var n=t,o=n+r-4,i=0;i>2]=s,(t+=4)+4>o)break}return l[t>>2]=0,t-n}function at(e){for(var t=0,r=0;r>1]=2,0;case 16:case 8:default:return-28;case 9:return l[vt()>>2]=28,-1}}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return-e.errno;throw e}},w:function(e,t,r,n){k.varargs=n;try{t=k.getStr(t),t=k.calculateAt(e,t);var o=n?k.get():0;return T.open(t,r,o).fd}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return-e.errno;throw e}},u:function(e,t,r,n,o){},E:function(e,r,n,o,i){var s=me(n);P(e,{name:r=A(r),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?o:i},argPackAdvance:8,readValueFromPointer:function(e){var t;if(1===n)t=d;else if(2===n)t=u;else{if(4!==n)throw new TypeError("Unknown boolean type size: "+r);t=l}return this.fromWireType(t[e>>s])},destructorFunction:null})},l:function(u,e,t,l,r,c,n,d,o,f,p,i,h){p=A(p),c=M(r,c),d=d&&M(n,d),f=f&&M(o,f),h=M(i,h);var s,m=ve(p);r=m,n=function(){Xe("Cannot construct "+p+" due to unbound types",[l])},y.hasOwnProperty(r)?(S("Cannot register public name '"+r+"' twice"),Ue(y,r,r),y.hasOwnProperty(s)&&S("Cannot register multiple overloads of a function with the same number of arguments ("+s+")!"),y[r].overloadTable[s]=n):y[r]=n,Te([u,e,t],l?[l]:[],function(e){e=e[0],e=l?(s=e.registeredClass).instancePrototype:R.prototype;var t,r,n=we(m,function(){if(Object.getPrototypeOf(this)!==o)throw new F("Use 'new' to construct "+p);if(void 0===i.constructor_body)throw new F(p+" has no accessible constructor");var e=i.constructor_body[arguments.length];if(void 0===e)throw new F("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(i.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),o=Object.create(e,{constructor:{value:n}}),i=(n.prototype=o,new $e(p,n,o,h,s,c,d,f)),e=new x(p,i,!0,!1,!1),s=new x(p+"*",i,!1,!1,!1),a=new x(p+" const*",i,!1,!0,!1);return Fe[u]={pointerType:s,constPointerType:a},t=m,n=n,y.hasOwnProperty(t)||_e("Replacing nonexistant public symbol"),y[t].overloadTable,y[t]=n,y[t].argCount=r,[e,s,a]})},k:function(e,n,t,r,o,i){q(0{Xe("Cannot construct "+t.name+" due to unbound types",s)},Te([],s,function(e){return e.splice(1,0,null),t.registeredClass.constructor_body[n-1]=Ye(r,e,null,o,i),[]}),[]})},d:function(e,i,s,t,r,a,u,l){var c=qe(s,t);i=A(i),a=M(r,a),Te([],[e],function(t){var r=(t=t[0]).name+"."+i;function e(){Xe("Cannot call "+r+" due to unbound types",c)}i.startsWith("@@")&&(i=Symbol[i.substring(2)]),l&&t.registeredClass.pureVirtualFunctions.push(i);var n=t.registeredClass.instancePrototype,o=n[i];return void 0===o||void 0===o.overloadTable&&o.className!==t.name&&o.argCount===s-2?(e.argCount=s-2,e.className=t.name,n[i]=e):(Ue(n,i,r),n[i].overloadTable[s-2]=e),Te([],c,function(e){e=Ye(r,e,t,a,u);return void 0===n[i].overloadTable?(e.argCount=s-2,n[i]=e):n[i].overloadTable[s-2]=e,[]}),[]})},D:function(e,t){P(e,{name:t=A(t),fromWireType:function(e){var t=Ze.toValue(e);return Qe(e),t},toWireType:function(e,t){return Ze.toHandle(t)},argPackAdvance:8,readValueFromPointer:Le,destructorFunction:null})},p:function(e,t,r){r=me(r);P(e,{name:t=A(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:function(e,t){switch(t){case 2:return function(e){return this.fromWireType(Y[e>>2])};case 3:return function(e){return this.fromWireType(K[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}(t,r),destructorFunction:null})},c:function(e,t,r,n,o){t=A(t);var i,s=me(r),a=e=>e,r=(0===n&&(i=32-8*r,a=e=>e<>>i),t.includes("unsigned"));P(e,{name:t,fromWireType:a,toWireType:r?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:function(e,t,r){switch(t){case 0:return r?function(e){return d[e]}:function(e){return f[e]};case 1:return r?function(e){return u[e>>1]}:function(e){return J[e>>1]};case 2:return r?function(e){return l[e>>2]}:function(e){return p[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}(t,s,0!==n),destructorFunction:null})},b:function(e,t,r){var n=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function o(e){var t=p,r=t[e>>=2],t=t[e+1];return new n(G,t,r)}P(e,{name:r=A(r),fromWireType:o,argPackAdvance:8,readValueFromPointer:o},{ignoreDuplicateRegistrations:!0})},o:function(e,t){var l="std::string"===(t=A(t));P(e,{name:t,fromWireType:function(e){var t,r=p[e>>2],n=e+4;if(l)for(var o=n,i=0;i<=r;++i){var s,a=n+i;i!=r&&0!=f[a]||(s=ee(o,a-o),void 0===t?t=s:t=t+String.fromCharCode(0)+s,o=a+1)}else{for(var u=new Array(r),i=0;i>2]=r,l&&n)te(t,f,i,r+1);else if(n)for(var s=0;sJ,d=1):4===u&&(l=it,i=st,s=at,c=()=>p,d=2),P(e,{name:o,fromWireType:function(e){for(var t,r=p[e>>2],n=c(),o=e+4,i=0;i<=r;++i){var s,a=e+4+i*u;i!=r&&0!=n[a>>d]||(s=l(o,a-o),void 0===t?t=s:t=t+String.fromCharCode(0)+s,o=a+u)}return U(e),t},toWireType:function(e,t){"string"!=typeof t&&S("Cannot pass non-string to C++ string type "+o);var r=s(t),n=gt(4+r+u);return p[n>>2]=r>>d,i(t,n+4,r+u),null!==e&&e.push(U,n),n},argPackAdvance:8,readValueFromPointer:Le,destructorFunction:function(e){U(e)}})},q:function(e,t){P(e,{isVoid:!0,name:t=A(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},i:function(){return Date.now()},e:function(e,t,r,n){(e=lt[e])(t=Ze.toValue(t),r=void 0===(t=ut[e=r])?A(e):t,null,n)},g:Qe,f:function(e,t){var r=function(e,t){for(var r,n,o=new Array(e),i=0;i>2],void 0===(n=C[r])&&S("parameter "+i+" has unknown type "+He(r)),n);return o}(e,t),t=r[0],n=t.name+"_$"+r.slice(1).map(function(e){return e.name}).join("_")+"$",o=ct[n];if(void 0!==o)return o;for(var i=["retType"],s=[t],a="",u=0;u>2]=r,e),o=r,i=0;i>0]=n.charCodeAt(i);d[o>>0]=0,u+=e.length+1}),0},z:function(e,t){var r=ft(),n=(p[e>>2]=r.length,0);return r.forEach(function(e){n+=e.length+1}),p[t>>2]=n,0},n:function(e){try{var t=k.getStreamFromFD(e);return T.close(t),0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},x:function(e,t){try{var r=k.getStreamFromFD(e),n=r.tty?2:T.isDir(r.mode)?3:T.isLink(r.mode)?7:4;return d[t>>0]=n,0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},B:function(e,t,r,n){try{var o=function(e,t,r){for(var n=0,o=0;o>2],s=p[t+4>>2],i=(t+=8,T.read(e,d,i,s,void 0));if(i<0)return-1;if(n+=i,i>2]=o,0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},t:function(e,t,r,n,o){try{var i=r+2097152>>>0<4194305-!!t?(t>>>0)+4294967296*r:NaN;if(isNaN(i))return 61;var s=k.getStreamFromFD(e);return T.llseek(s,i,n),v=[s.position>>>0,(g=s.position,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],l[o>>2]=v[0],l[o+4>>2]=v[1],s.getdents&&0===i&&0===n&&(s.getdents=null),0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},m:function(e,t,r,n){try{var o=function(e,t,r){for(var n=0,o=0;o>2],s=p[t+4>>2],i=(t+=8,T.write(e,d,i,s,void 0));if(i<0)return-1;n+=i}return n}(k.getStreamFromFD(e),t,r);return p[n>>2]=o,0}catch(e){if(void 0!==T&&e instanceof T.ErrnoError)return e.errno;throw e}},h:function(e){}},U=(!function(){var t={a:yt};function r(e,t){var e=e.exports;y.asm=e,e=y.asm.F.buffer,G=e,y.HEAP8=d=new Int8Array(e),y.HEAP16=u=new Int16Array(e),y.HEAP32=l=new Int32Array(e),y.HEAPU8=f=new Uint8Array(e),y.HEAPU16=J=new Uint16Array(e),y.HEAPU32=p=new Uint32Array(e),y.HEAPF32=Y=new Float32Array(e),y.HEAPF64=K=new Float64Array(e),Q=y.asm.J,e=y.asm.G,oe.unshift(e),ae()}function n(e){r(e.instance)}function o(e){return function(){if(!i&&(z||c)){if("function"==typeof fetch&&!le(h))return fetch(h,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+h+"'"}).catch(function(){return ce(h)});if(m)return new Promise(function(t,e){m(h,function(e){t(new Uint8Array(e))},e)})}return Promise.resolve().then(function(){return ce(h)})}().then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(e,function(e){a("failed to asynchronously prepare wasm: "+e),w(e)})}if(se(),y.instantiateWasm)try{return y.instantiateWasm(t,r)}catch(t){return a("Module.instantiateWasm callback failed with error: "+t)}i||"function"!=typeof WebAssembly.instantiateStreaming||ue(h)||le(h)||V||"function"!=typeof fetch?o(n):fetch(h,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,t).then(n,function(e){return a("wasm streaming compile failed: "+e),a("falling back to ArrayBuffer instantiation"),o(n)})})}(),y.___wasm_call_ctors=function(){return(y.___wasm_call_ctors=y.asm.G).apply(null,arguments)},y._free=function(){return(U=y._free=y.asm.H).apply(null,arguments)}),gt=y._malloc=function(){return(gt=y._malloc=y.asm.I).apply(null,arguments)},vt=y.___errno_location=function(){return(vt=y.___errno_location=y.asm.K).apply(null,arguments)},wt=y.___getTypeName=function(){return(wt=y.___getTypeName=y.asm.L).apply(null,arguments)};y.___embind_register_native_and_builtin_types=function(){return(y.___embind_register_native_and_builtin_types=y.asm.M).apply(null,arguments)};var bt,Et=y._emscripten_builtin_memalign=function(){return(Et=y._emscripten_builtin_memalign=y.asm.N).apply(null,arguments)},_t=y.___cxa_is_pointer_type=function(){return(_t=y.___cxa_is_pointer_type=y.asm.O).apply(null,arguments)};function Tt(){function e(){if(!bt&&(bt=!0,y.calledRun=!0,!X)){if(y.noFSInit||T.init.initialized||T.init(),T.ignorePermissions=!1,de(oe),y.onRuntimeInitialized&&y.onRuntimeInitialized(),y.postRun)for("function"==typeof y.postRun&&(y.postRun=[y.postRun]);y.postRun.length;)e=y.postRun.shift(),ie.unshift(e);var e;de(ie)}}if(!(0e.forEach(e=>d.set(e,t)));class ${constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}fillFromReader(r){return e=this,u=function*(){var{done:e,value:t}=yield r.read();return e?void this.close():(this.write(t),this.fillFromReader(r))},new(a=(a=s=void 0)||Promise)(function(r,t){function n(e){try{i(u.next(e))}catch(e){t(e)}}function o(e){try{i(u.throw(e))}catch(e){t(e)}}function i(e){var t;e.done?r(e.value):((t=e.value)instanceof a?t:new a(function(e){e(t)})).then(n,o)}i((u=u.apply(e,s||[])).next())});var e,s,a,u}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(r){return new Promise((t,e)=>{if(this.resolve)return e("last read not complete yet");this.resolve=e=>{delete this.resolve,delete this.need,t(e)},this.demand(r,!0)})}readU32(){return this.read(u)}readU16(){return this.read(l)}readU8(){return this.read(c)}close(){this.g&&this.g.return()}flush(){if(this.buffer&&this.need){let e=null;const n=this.buffer.subarray(this.consumed);let t=0;var r=e=>n.length<(t=e);if("number"==typeof this.need){if(r(this.need))return;e=n.subarray(0,t)}else if(this.need instanceof ArrayBuffer){if(r(this.need.byteLength))return;new Uint8Array(this.need).set(n.subarray(0,t)),e=this.need}else if(this.need===u){if(r(4))return;e=n[0]<<24|n[1]<<16|n[2]<<8|n[3]}else if(this.need===l){if(r(2))return;e=n[0]<<8|n[1]}else if(this.need===c){if(r(1))return;e=n[0]}else if(d.has(this.need.constructor)){if(r(this.need.length<>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,r=t+e;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{const e=new Uint8Array(r);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,r)}return this.buffer=new Uint8Array(e),this.buffer}}function f(a){function r(){i&&(i.abort(),i=null)}let n=[],u=[],o={},i=new AbortController,s=null,l=null,e=null,c=null,d=null,f=null,p=!1,h=!1,m=!1,y=null,g=null,v=[],w=0,b=0,E=("VideoEncoder"in self&&(o={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(t){var e;o.isEmitInfo||(E.opt.debug&&console.log("Jessibuca: [worker] Webcodecs Video Decoder initSize"),postMessage({cmd:C,w:t.codedWidth,h:t.codedHeight}),o.isEmitInfo=!0,o.offscreenCanvas=new OffscreenCanvas(t.codedWidth,t.codedHeight),o.offscreenCanvasCtx=o.offscreenCanvas.getContext("2d")),"function"==typeof t.createImageBitmap?t.createImageBitmap().then(e=>{o.offscreenCanvasCtx.drawImage(e,0,0,t.codedWidth,t.codedHeight);e=o.offscreenCanvas.transferToImageBitmap();postMessage({cmd:F,buffer:e,delay:E.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100)}):(o.offscreenCanvasCtx.drawImage(t,0,0,t.codedWidth,t.codedHeight),e=o.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:F,buffer:e,delay:E.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100))},error:function(e){console.error(e)}}),decode:function(e,t){const r=e[0]>>4==1;if(o.hasInit){t=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:r?"key":"delta"});o.decoder.decode(t)}else if(r&&0===e[1]){const t=15&e[0],r=(E.setVideoCodec(t),function(e){let r=e.subarray(1,4),n="avc1.";for(let t=0;t<3;t++){let e=r[t].toString(16);e.length<2&&(e="0"+e),n+=e}return{codec:n,description:e}}(e.slice(5)));o.decoder.configure(r),o.hasInit=!0}},reset(){o.hasInit=!1,o.isEmitInfo=!1,o.offscreenCanvas=null,o.offscreenCanvasCtx=null}}),{opt:{debug:D.debug,useOffscreen:D.useOffscreen,useWCS:D.useWCS,videoBuffer:D.videoBuffer,videoBufferDelay:D.videoBufferDelay,openWebglAlignment:D.openWebglAlignment,playType:D.playType,hasAudio:D.hasAudio,hasVideo:D.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:D.playbackForwardMaxRateDecodeIFrame,sampleRate:0,networkDelay:D.networkDelay,visibility:!0},startStreamRateInterval:function(){E.stopStreamRateInterval(),e=setInterval(()=>{l&&l(0)},1e3)},stopStreamRateInterval:function(){e&&(clearInterval(e),e=null)},useOffscreen:function(){return E.opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},getDelay:function(e){return e?(this.firstTimestamp?e&&(t=Date.now()-this.startTimestamp,r=e-this.firstTimestamp,this.delay=r<=t?t-r:r-t):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.delay):-1;var t,r},resetDelay:function(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1},doDecode:function(e){E.opt.useWCS&&E.useOffscreen()&&2===e.type&&o.decode?o.decode(e.payload,e.ts):e.decoder.decode(e.payload,e.ts,e.isIFrame)},init:function(){E.opt.debug&&console.log("Jessibuca: [worker] init");const t=E.opt.playType===k;this.stopId=setInterval(()=>{let e=null;if(n.length)if(this.dropping){for(E.opt.debug&&console.log("Jessibuca: [worker]: loop is dropping"),1===(e=n.shift()).type&&0===e.payload[1]&&E.doDecode(e);!e.isIFrame&&n.length;)E.opt.debug&&console.log("Jessibuca: [worker]: loop is dropping = true, isIFrame is",e.isIFrame),1===(e=n.shift()).type&&0===e.payload[1]&&E.doDecode(e);e.isIFrame&&n.length<10&&(this.dropping=!1,E.doDecode(e))}else if(e=n[0],-1===E.getDelay(e.ts))E.opt.debug&&console.log("Jessibuca: [worker]: common dumex delay is -1 ,data.ts is",e.ts),n.shift(),E.doDecode(e);else if(E.delay>E.opt.videoBuffer+E.opt.videoBufferDelay&&t)E.opt.debug&&console.log("Jessibuca: [worker]:",`delay is ${this.delay}, set dropping is true`),this.resetDelay(),this.dropping=!0;else for(;n.length;){if(e=n[0],!(E.getDelay(e.ts)>E.opt.videoBuffer)){E.delay<0&&E.opt.debug&&console.warn("Jessibuca: [worker]:",`delay is ${this.delay}, bufferList is `+n.length);break}n.shift(),E.doDecode(e)}},10)},close:function(){E.opt.debug&&console.log("Jessibuca: [worker]: close"),E.stopStreamRateInterval(),clearInterval(this.stopId),this.stopId=null,_.clear&&_.clear(),T.clear&&T.clear(),_=null,T=null,o.reset&&o.reset(),this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1,this.webglObj&&(this.webglObj.destroy(),this.offscreenCanvas=null,this.offscreenCanvasGL=null,this.offscreenCanvasCtx=null),n=[],u=[],i=null,c=null,s&&(s.close(),s=null),d=null,f=null,p=!1,h=!1,m=!1,v=[],w=0,b=0,y=null,g=null,delete E.playAudioPlanar,delete E.draw,delete E.demuxFlv},pushBuffer:function(e,t){if(E.opt.playType===k){const e=E.opt.videoBuffer+E.opt.videoBufferDelay;E.getDelay(t.ts)>e&&(E.opt.debug&&console.log(`Jessibuca: [worker]: pushBuffer, decoder.delay is ${E.delay} more than `+e),this.dropBuffer())}1===t.type?n.push({ts:t.ts,payload:e,decoder:{decode:E.decodeAudio},type:1,isIFrame:!1}):2===t.type&&n.push({ts:t.ts,payload:e,decoder:{decode:E.decodeVideo},type:2,isIFrame:t.isIFrame}),60{var t;"[object Number]"===Object.prototype.toString.call(e)&&(n+=e,1e3<=(t=(e=U())-o)&&(r(n/t*1e3),o=e,n=0))}}(e=>{postMessage({cmd:P,type:"streamRate",value:e})}),E.startStreamRateInterval(),2===t.protocol?(c=new $(E.demuxFlv()),fetch(e,{signal:i.signal}).then(e=>{postMessage({cmd:P,type:x}),e.body.pipeTo(new WritableStream({write:e=>{l(e.byteLength),c.write(e)},close:()=>{c=null},abort:e=>{c=null,postMessage({cmd:P,type:M,value:e.toString()}),r()}}))}).catch(e=>{postMessage({cmd:P,type:M,value:e.toString()}),r()})):1===t.protocol&&(t.isFlv&&(c=new $(E.demuxFlv())),(s=new WebSocket(e)).binaryType="arraybuffer",s.onopen=()=>{E.opt.debug&&console.log("Jessibuca: [worker]: fetchStream, WebsocketStream socket open"),postMessage({cmd:P,type:x})},s.onclose=()=>{E.opt.debug&&console.log("Jessibuca: [worker]: fetchStream, WebsocketStream socket close"),c=null,postMessage({cmd:P,type:"streamEnd"})},s.onerror=e=>{E.opt.debug&&console.log("Jessibuca: [worker]: fetchStream, WebsocketStream socket error"),c=null,postMessage({cmd:P,type:"websocketError",value:e.toString()})},s.onmessage=e=>{l(e.data.byteLength),t.isFlv?c.write(e.data):E.demuxM7s(e.data)})},demuxFlv:function*(){yield 9;const t=new ArrayBuffer(4),r=new Uint8Array(t),n=new Uint32Array(t);for(;;){r[3]=0;const t=yield 15,s=t[4];r[0]=t[7],r[1]=t[6],r[2]=t[5];var o=n[0];r[0]=t[10],r[1]=t[9],r[2]=t[8];let e=n[0];16777215===e&&(r[3]=t[11],e=n[0]);var i=(yield o).slice();switch(s){case 8:E.decode(i,{type:1,ts:e});break;case 9:if(0>4==1;E.calcNetworkDelay(e),E.decode(i,{type:2,ts:e,isIFrame:t})}}}},decode:function(e,t){var r=E.opt.playType;1===t.type?E.opt.hasAudio&&(postMessage({cmd:P,type:"streamAbps",value:e.byteLength}),r===k?E.pushBuffer(e,{type:t.type,ts:t.ts}):r===A&&_.decode(e,t.ts)):2===t.type&&E.opt.hasVideo&&(postMessage({cmd:P,type:"streamVbps",value:e.byteLength}),r===k?E.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame}):r===A&&(E.opt.playbackRate>=E.opt.playbackForwardMaxRateDecodeIFrame?t.isIFrame&&E.decodeVideo(e,t.ts,t.isIFrame):1===E.opt.playbackRate?E.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame}):E.decodeVideo(e,t.ts,t.isIFrame)))},setCodecAudio:function(e){var t=e[0]>>4;(10==t&&0===e[1]||7==t||8==t)&&(e=10==t?e.slice(2):e.slice(1),_.setCodec(t,E.opt.sampleRate,e),h=!0)},decodeAudio:function(e,t){var r=e[0]>>4;h?_.decode(10==r?e.slice(2):e.slice(1),t):E.setCodecAudio(e)},setCodecVideo:function(e){var t=15&e[0];e[0]>>4!=1||0!==e[1]||7!=t&&12!=t||(E.opt.debug&&console.log("Jessibuca: [worker]: decodeVideo: init video codec"),p=!0,e=e.slice(5),T.setCodec(t,e))},decodeVideo:function(e,t,r){p?(m=!m&&r?!0:m)?T.decode(e.slice(5),r?1:0,t):E.opt.debug&&console.error("Jessibuca: [worker]: decodeVideo: first frame is not iframe"):E.setCodecVideo(e)},clearBuffer:function(){var e=0>4==1;E.calcNetworkDelay(r),E.decode(new Uint8Array(e,5),{type:2,ts:r,isIFrame:n})}}},calcNetworkDelay:function(e){var t,r,n;!p||e<=0||(null===y&&(y=e,g=I()),(n=(t=e-y)<(r=I()-g)?r-t:t-r)>E.opt.networkDelay&&E.opt.debug&&console.warn("Jessibuca: [worker]: ",`demuxFlv now dts:${e}, vs start is ${t},local diff is ${r} ,delay is `+n),postMessage({cmd:P,type:"netBuf",value:n}))},videoInfo:function(e,t,r){function n(e,t){var r=i.createTexture();return i.bindTexture(i.TEXTURE_2D,r),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.bindTexture(i.TEXTURE_2D,null),i.uniform1i(i.getUniformLocation(o,e),t),r}var i,o,s,a,u,l,c;postMessage({cmd:"videoCode",code:e}),postMessage({cmd:C,w:t,h:r}),d=t,f=r,E.useOffscreen()&&(this.offscreenCanvas=new OffscreenCanvas(t,r),this.offscreenCanvasGL=this.offscreenCanvas.getContext("webgl"),this.webglObj=(i=this.offscreenCanvasGL,e=E.opt.openWebglAlignment,t=["attribute vec4 vertexPos;","attribute vec4 texturePos;","varying vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos.xy;","}"].join("\n"),r=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n"),e&&i.pixelStorei(i.UNPACK_ALIGNMENT,1),e=i.createShader(i.VERTEX_SHADER),i.shaderSource(e,t),i.compileShader(e),i.getShaderParameter(e,i.COMPILE_STATUS)||(console.log("Vertex shader failed to compile: "+i.getShaderInfoLog(e)),i.deleteShader(e)),t=i.createShader(i.FRAGMENT_SHADER),i.shaderSource(t,r),i.compileShader(t),i.getShaderParameter(t,i.COMPILE_STATUS)||(console.log("Fragment shader failed to compile: "+i.getShaderInfoLog(t)),i.deleteShader(t)),o=i.createProgram(),i.attachShader(o,e),i.attachShader(o,t),i.linkProgram(o),i.getProgramParameter(o,i.LINK_STATUS)||console.log("Program failed to compile: "+i.getProgramInfoLog(o)),i.useProgram(o),s=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,s),i.bufferData(i.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),i.STATIC_DRAW),r=i.getAttribLocation(o,"vertexPos"),i.enableVertexAttribArray(r),i.vertexAttribPointer(r,2,i.FLOAT,!1,0,0),a=i.createBuffer(),i.bindBuffer(i.ARRAY_BUFFER,a),i.bufferData(i.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),i.STATIC_DRAW),e=i.getAttribLocation(o,"texturePos"),i.enableVertexAttribArray(e),i.vertexAttribPointer(e,2,i.FLOAT,!1,0,0),u=n("ySampler",0),l=n("uSampler",1),c=n("vSampler",2),{render:function(e,t,r,n,o){i.viewport(0,0,e,t),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,u),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e,t,0,i.LUMINANCE,i.UNSIGNED_BYTE,r),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,l),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,n),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,c),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,o),i.drawArrays(i.TRIANGLE_STRIP,0,4)},renderYUV:function(e,t,r){var n=r.slice(0,e*t),o=r.slice(e*t,e*t*5/4),r=r.slice(e*t*5/4,e*t*3/2);i.viewport(0,0,e,t),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,u),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e,t,0,i.LUMINANCE,i.UNSIGNED_BYTE,n),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,l),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,o),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,c),i.texImage2D(i.TEXTURE_2D,0,i.LUMINANCE,e/2,t/2,0,i.LUMINANCE,i.UNSIGNED_BYTE,r),i.drawArrays(i.TRIANGLE_STRIP,0,4)},destroy:function(){try{i.deleteProgram(o),i.deleteBuffer(s),i.deleteBuffer(a),i.deleteTexture(u),i.deleteTexture(l),i.deleteBuffer(c)}catch(e){}}}))},audioInfo:function(e,t,r){postMessage({cmd:"audioCode",code:e}),postMessage({cmd:"initAudio",sampleRate:t,channels:r}),b=r},yuvData:function(e,t){var r=d*f*3/2,e=a.HEAPU8.subarray(e,e+r),r=new Uint8Array(e);E.useOffscreen()?(this.webglObj.renderYUV(d,f,r),e=this.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:F,buffer:e,delay:this.delay,ts:t},[e])):postMessage({cmd:F,output:r,delay:this.delay,ts:t},[r.buffer])},pcmData:function(t,e,r){let n=e,o=[],i=0;for(let e=0;e<2;e++){var s=a.HEAPU32[(t>>2)+e]>>2;o[e]=a.HEAPF32.subarray(s,s+n)}if(w){if(!(n>=(e=1024-w)))return w+=n,u[0]=Float32Array.of(...u[0],...o[0]),void(2==b&&(u[1]=Float32Array.of(...u[1],...o[1])));v[0]=Float32Array.of(...u[0],...o[0].subarray(0,e)),2==b&&(v[1]=Float32Array.of(...u[1],...o[1].subarray(0,e))),postMessage({cmd:S,buffer:v,ts:r},v.map(e=>e.buffer)),i=e,n-=e}for(w=n;1024<=w;w-=1024)v[0]=o[0].slice(i,i+=1024),2==b&&(v[1]=o[1].slice(i-1024,i)),postMessage({cmd:S,buffer:v,ts:r},v.map(e=>e.buffer));w&&(u[0]=o[0].slice(i),2==b&&(u[1]=o[1].slice(i)))},timeEnd:function(){postMessage({cmd:"workerEnd"})}}),_=new a.AudioDecoder(E),T=new a.VideoDecoder(E);postMessage({cmd:R}),self.onmessage=function(e){var t=e.data;switch(t.cmd){case R:try{E.opt=Object.assign(E.opt,JSON.parse(t.opt))}catch(e){}E.init();break;case"decode":E.pushBuffer(t.buffer,t.options);break;case"audioDecode":E.decodeAudio(t.buffer,t.ts);break;case"videoDecode":E.decodeVideo(t.buffer,t.ts,t.isIFrame);break;case"clearBuffer":E.clearBuffer(t.needClear);break;case"fetchStream":E.fetchStream(t.url,JSON.parse(t.opt));break;case"close":E.close();break;case"updateConfig":E.opt[t.key]=t.value}}}$.U32=u,$.U16=l,$.U8=c,Date.now||(Date.now=function(){return(new Date).getTime()}),i.postRun=function(){f(i)}}); +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("path"),require("fs"),require("crypto")):"function"==typeof define&&define.amd?define(["path","fs","crypto"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).path,e.fs,e.crypto$1)}(this,function(e,_,g){"use strict";function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var Ut=t(e),xt=t(_),Bt=t(g);function r(e,t){return e(t={exports:{}},t.exports),t.exports}var y=r(function(z){var _;(_=void 0!==(_=void 0!==_?_:{})?_:{}).locateFile=function(e){return"decoder-pro.wasm"==e&&"undefined"!=typeof JESSIBUCA_PRO_WASM_URL&&""!=JESSIBUCA_PRO_WASM_URL?JESSIBUCA_PRO_WASM_URL:e};var t,m,R,M,N,O,s,G=Object.assign({},_),H="./this.program",V="object"==typeof window,h="function"==typeof importScripts,$="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node,e="",j=($?(e=h?Ut.default.dirname(e)+"/":__dirname+"/",O=()=>{N||(M=xt.default,N=Ut.default)},t=function(e,t){return O(),e=N.normalize(e),M.readFileSync(e,t?void 0:"utf8")},R=e=>{e=t(e,!0);return e=e.buffer?e:new Uint8Array(e)},m=(e,r,i)=>{O(),e=N.normalize(e),M.readFile(e,function(e,t){e?i(e):r(t.buffer)})},1{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},h&&(R=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),m=(e,t,r)=>{var i=new XMLHttpRequest;i.open("GET",e,!0),i.responseType="arraybuffer",i.onload=()=>{200==i.status||0==i.status&&i.response?t(i.response):r()},i.onerror=r,i.send(null)}),_.print||console.log.bind(console)),o=_.printErr||console.warn.bind(console),W=(Object.assign(_,G),_.arguments&&_.arguments,_.thisProgram&&(H=_.thisProgram),_.quit&&_.quit,_.wasmBinary&&(s=_.wasmBinary),_.noExitRuntime,"object"!=typeof WebAssembly&&b("no native wasm support detected"),!1);function Y(e,t){e||b(t)}var q,u,f,l,X,d,p,K,Z,J,Q="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;function a(e,t,r){for(var i=t+r,n=t;e[n]&&!(i<=n);)++n;if(16>10,56320|1023&o))):s+=String.fromCharCode((31&l)<<6|a)):s+=String.fromCharCode(l)}return s}function ee(e,t){return e?a(f,e,t):""}function te(e,t,r,i){if(!(0>6,t[r++]=128|63&o}else if(o<=65535){if(s<=r+2)break;t[r++]=224|o>>12,t[r++]=128|o>>6&63,t[r++]=128|63&o}else{if(s<=r+3)break;t[r++]=240|o>>18,t[r++]=128|o>>12&63,t[r++]=128|o>>6&63,t[r++]=128|63&o}}return t[r]=0,r-n}function re(e){for(var t=0,r=0;r>2]=e},this.get_type=function(){return p[this.ptr+4>>2]},this.set_destructor=function(e){p[this.ptr+8>>2]=e},this.get_destructor=function(){return p[this.ptr+8>>2]},this.set_refcount=function(e){d[this.ptr>>2]=e},this.set_caught=function(e){u[this.ptr+12>>0]=e=e?1:0},this.get_caught=function(){return 0!=u[this.ptr+12>>0]},this.set_rethrown=function(e){u[this.ptr+13>>0]=e=e?1:0},this.get_rethrown=function(){return 0!=u[this.ptr+13>>0]},this.init=function(e,t){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(t),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){var e=d[this.ptr>>2];d[this.ptr>>2]=e+1},this.release_ref=function(){var e=d[this.ptr>>2];return d[this.ptr>>2]=e-1,1===e},this.set_adjusted_ptr=function(e){p[this.ptr+16>>2]=e},this.get_adjusted_ptr=function(){return p[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Et(this.get_type()))return p[this.excPtr>>2];var e=this.get_adjusted_ptr();return 0!==e?e:this.excPtr}}le(c="decoder-pro.wasm")||(G=c,c=_.locateFile?_.locateFile(G,e):e+G);var v={isAbs:e=>"/"===e.charAt(0),splitPath:e=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(e).slice(1),normalizeArray:(e,t)=>{for(var r=0,i=e.length-1;0<=i;i--){var n=e[i];"."===n?e.splice(i,1):".."===n?(e.splice(i,1),r++):r&&(e.splice(i,1),r--)}if(t)for(;r;r--)e.unshift("..");return e},normalize:e=>{var t=v.isAbs(e),r="/"===e.substr(-1);return(e=(e=v.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/"))||t?e:".")&&r&&(e+="/"),(t?"/":"")+e},dirname:e=>{var e=v.splitPath(e),t=e[0],e=e[1];return t||e?t+(e=e&&e.substr(0,e.length-1)):"."},basename:e=>{if("/"===e)return"/";var t=(e=(e=v.normalize(e)).replace(/\/$/,"")).lastIndexOf("/");return-1===t?e:e.substr(t+1)},join:function(){var e=Array.prototype.slice.call(arguments,0);return v.normalize(e.join("/"))},join2:(e,t)=>v.normalize(e+"/"+t)},w={resolve:function(){for(var e="",t=!1,r=arguments.length-1;-1<=r&&!t;r--){var i=0<=r?arguments[r]:S.cwd();if("string"!=typeof i)throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";e=i+"/"+e,t=v.isAbs(i)}return(t?"/":"")+v.normalizeArray(e.split("/").filter(e=>!!e),!t).join("/")||"."},relative:(e,t)=>{function r(e){for(var t=0;t>>0),0!=r&&(t=Math.max(t,256)),r=e.contents,e.contents=new Uint8Array(t),0=e.node.usedBytes)return 0;var a=Math.min(e.node.usedBytes-n,i);if(8!!e),!1),i=S.root,n="/",s=0;s{for(var t,r;;){if(S.isRoot(e))return r=e.mount.mountpoint,t?"/"!==r[r.length-1]?r+"/"+t:r+t:r;t=t?e.name+"/"+t:e.name,e=e.parent}},hashName:(e,t)=>{for(var r=0,i=0;i>>0)%S.nameTable.length},hashAddNode:e=>{var t=S.hashName(e.parent.id,e.name);e.name_next=S.nameTable[t],S.nameTable[t]=e},hashRemoveNode:e=>{var t=S.hashName(e.parent.id,e.name);if(S.nameTable[t]===e)S.nameTable[t]=e.name_next;else for(var r=S.nameTable[t];r;){if(r.name_next===e){r.name_next=e.name_next;break}r=r.name_next}},lookupNode:(e,t)=>{var r=S.mayLookup(e);if(r)throw new S.ErrnoError(r,e);for(var r=S.hashName(e.id,t),i=S.nameTable[r];i;i=i.name_next){var n=i.name;if(i.parent.id===e.id&&n===t)return i}return S.lookup(e,t)},createNode:(e,t,r,i)=>{e=new S.FSNode(e,t,r,i);return S.hashAddNode(e),e},destroyNode:e=>{S.hashRemoveNode(e)},isRoot:e=>e===e.parent,isMountpoint:e=>!!e.mounted,isFile:e=>32768==(61440&e),isDir:e=>16384==(61440&e),isLink:e=>40960==(61440&e),isChrdev:e=>8192==(61440&e),isBlkdev:e=>24576==(61440&e),isFIFO:e=>4096==(61440&e),isSocket:e=>49152==(49152&e),flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:e=>{var t=S.flagModes[e];if(void 0===t)throw new Error("Unknown file open mode: "+e);return t},flagsToPermissionString:e=>{var t=["r","w","rw"][3&e];return 512&e&&(t+="w"),t},nodePermissions:(e,t)=>S.ignorePermissions||(!t.includes("r")||292&e.mode)&&(!t.includes("w")||146&e.mode)&&(!t.includes("x")||73&e.mode)?0:2,mayLookup:e=>{return S.nodePermissions(e,"x")||(e.node_ops.lookup?0:2)},mayCreate:(e,t)=>{try{return S.lookupNode(e,t),20}catch(e){}return S.nodePermissions(e,"wx")},mayDelete:(e,t,r)=>{var i;try{i=S.lookupNode(e,t)}catch(e){return e.errno}t=S.nodePermissions(e,"wx");if(t)return t;if(r){if(!S.isDir(i.mode))return 54;if(S.isRoot(i)||S.getPath(i)===S.cwd())return 10}else if(S.isDir(i.mode))return 31;return 0},mayOpen:(e,t)=>e?S.isLink(e.mode)?32:S.isDir(e.mode)&&("r"!==S.flagsToPermissionString(t)||512&t)?31:S.nodePermissions(e,S.flagsToPermissionString(t)):44,MAX_OPEN_FDS:4096,nextfd:function(){for(var e=0S.streams[e],createStream:(e,t,r)=>{S.FSStream||(S.FSStream=function(){this.shared={}},S.FSStream.prototype={},Object.defineProperties(S.FSStream.prototype,{object:{get:function(){return this.node},set:function(e){this.node=e}},isRead:{get:function(){return 1!=(2097155&this.flags)}},isWrite:{get:function(){return 0!=(2097155&this.flags)}},isAppend:{get:function(){return 1024&this.flags}},flags:{get:function(){return this.shared.flags},set:function(e){this.shared.flags=e}},position:{get:function(){return this.shared.position},set:function(e){this.shared.position=e}}})),e=Object.assign(new S.FSStream,e);t=S.nextfd(t,r);return e.fd=t,S.streams[t]=e},closeStream:e=>{S.streams[e]=null},chrdev_stream_ops:{open:e=>{var t=S.getDevice(e.node.rdev);e.stream_ops=t.stream_ops,e.stream_ops.open&&e.stream_ops.open(e)},llseek:()=>{throw new S.ErrnoError(70)}},major:e=>e>>8,minor:e=>255&e,makedev:(e,t)=>e<<8|t,registerDevice:(e,t)=>{S.devices[e]={stream_ops:t}},getDevice:e=>S.devices[e],getMounts:e=>{for(var t=[],r=[e];r.length;){var i=r.pop();t.push(i),r.push.apply(r,i.mounts)}return t},syncfs:(t,r)=>{"function"==typeof t&&(r=t,t=!1),S.syncFSRequests++,1=i.length&&s(null)}i.forEach(e=>{if(!e.type.syncfs)return a(null);e.type.syncfs(e,t,a)})},mount:(e,t,r)=>{var i,n="/"===r,s=!r;if(n&&S.root)throw new S.ErrnoError(10);if(!n&&!s){s=S.lookupPath(r,{follow_mount:!1});if(r=s.path,i=s.node,S.isMountpoint(i))throw new S.ErrnoError(10);if(!S.isDir(i.mode))throw new S.ErrnoError(54)}s={type:e,opts:t,mountpoint:r,mounts:[]},t=e.mount(s);return(t.mount=s).root=t,n?S.root=t:i&&(i.mounted=s,i.mount&&i.mount.mounts.push(s)),t},unmount:e=>{e=S.lookupPath(e,{follow_mount:!1});if(!S.isMountpoint(e.node))throw new S.ErrnoError(28);var e=e.node,t=e.mounted,i=S.getMounts(t),t=(Object.keys(S.nameTable).forEach(e=>{for(var t=S.nameTable[e];t;){var r=t.name_next;i.includes(t.mount)&&S.destroyNode(t),t=r}}),e.mounted=null,e.mount.mounts.indexOf(t));e.mount.mounts.splice(t,1)},lookup:(e,t)=>e.node_ops.lookup(e,t),mknod:(e,t,r)=>{var i=S.lookupPath(e,{parent:!0}).node,e=v.basename(e);if(!e||"."===e||".."===e)throw new S.ErrnoError(28);var n=S.mayCreate(i,e);if(n)throw new S.ErrnoError(n);if(i.node_ops.mknod)return i.node_ops.mknod(i,e,t,r);throw new S.ErrnoError(63)},create:(e,t)=>S.mknod(e,t=(t=void 0!==t?t:438)&4095|32768,0),mkdir:(e,t)=>S.mknod(e,t=(t=void 0!==t?t:511)&1023|16384,0),mkdirTree:(e,t)=>{for(var r=e.split("/"),i="",n=0;n(void 0===r&&(r=t,t=438),S.mknod(e,t|=8192,r)),symlink:(e,t)=>{if(!w.resolve(e))throw new S.ErrnoError(44);var r=S.lookupPath(t,{parent:!0}).node;if(!r)throw new S.ErrnoError(44);var t=v.basename(t),i=S.mayCreate(r,t);if(i)throw new S.ErrnoError(i);if(r.node_ops.symlink)return r.node_ops.symlink(r,t,e);throw new S.ErrnoError(63)},rename:(e,t)=>{var r=v.dirname(e),i=v.dirname(t),n=v.basename(e),s=v.basename(t),a=S.lookupPath(e,{parent:!0}).node,o=S.lookupPath(t,{parent:!0}).node;if(!a||!o)throw new S.ErrnoError(44);if(a.mount!==o.mount)throw new S.ErrnoError(75);var l,d=S.lookupNode(a,n);if("."!==w.relative(e,i).charAt(0))throw new S.ErrnoError(28);if("."!==w.relative(t,r).charAt(0))throw new S.ErrnoError(55);try{l=S.lookupNode(o,s)}catch(e){}if(d!==l){i=S.isDir(d.mode),t=S.mayDelete(a,n,i);if(t)throw new S.ErrnoError(t);if(t=l?S.mayDelete(o,s,i):S.mayCreate(o,s))throw new S.ErrnoError(t);if(!a.node_ops.rename)throw new S.ErrnoError(63);if(S.isMountpoint(d)||l&&S.isMountpoint(l))throw new S.ErrnoError(10);if(o!==a&&(t=S.nodePermissions(a,"w")))throw new S.ErrnoError(t);S.hashRemoveNode(d);try{a.node_ops.rename(d,o,s)}catch(e){throw e}finally{S.hashAddNode(d)}}},rmdir:e=>{var t=S.lookupPath(e,{parent:!0}).node,e=v.basename(e),r=S.lookupNode(t,e),i=S.mayDelete(t,e,!0);if(i)throw new S.ErrnoError(i);if(!t.node_ops.rmdir)throw new S.ErrnoError(63);if(S.isMountpoint(r))throw new S.ErrnoError(10);t.node_ops.rmdir(t,e),S.destroyNode(r)},readdir:e=>{e=S.lookupPath(e,{follow:!0}).node;if(e.node_ops.readdir)return e.node_ops.readdir(e);throw new S.ErrnoError(54)},unlink:e=>{var t=S.lookupPath(e,{parent:!0}).node;if(!t)throw new S.ErrnoError(44);var e=v.basename(e),r=S.lookupNode(t,e),i=S.mayDelete(t,e,!1);if(i)throw new S.ErrnoError(i);if(!t.node_ops.unlink)throw new S.ErrnoError(63);if(S.isMountpoint(r))throw new S.ErrnoError(10);t.node_ops.unlink(t,e),S.destroyNode(r)},readlink:e=>{e=S.lookupPath(e).node;if(!e)throw new S.ErrnoError(44);if(e.node_ops.readlink)return w.resolve(S.getPath(e.parent),e.node_ops.readlink(e));throw new S.ErrnoError(28)},stat:(e,t)=>{e=S.lookupPath(e,{follow:!t}).node;if(!e)throw new S.ErrnoError(44);if(e.node_ops.getattr)return e.node_ops.getattr(e);throw new S.ErrnoError(63)},lstat:e=>S.stat(e,!0),chmod:(e,t,r)=>{r="string"==typeof e?S.lookupPath(e,{follow:!r}).node:e;if(!r.node_ops.setattr)throw new S.ErrnoError(63);r.node_ops.setattr(r,{mode:4095&t|-4096&r.mode,timestamp:Date.now()})},lchmod:(e,t)=>{S.chmod(e,t,!0)},fchmod:(e,t)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);S.chmod(e.node,t)},chown:(e,t,r,i)=>{i="string"==typeof e?S.lookupPath(e,{follow:!i}).node:e;if(!i.node_ops.setattr)throw new S.ErrnoError(63);i.node_ops.setattr(i,{timestamp:Date.now()})},lchown:(e,t,r)=>{S.chown(e,t,r,!0)},fchown:(e,t,r)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);S.chown(e.node,t,r)},truncate:(e,t)=>{if(t<0)throw new S.ErrnoError(28);e="string"==typeof e?S.lookupPath(e,{follow:!0}).node:e;if(!e.node_ops.setattr)throw new S.ErrnoError(63);if(S.isDir(e.mode))throw new S.ErrnoError(31);if(!S.isFile(e.mode))throw new S.ErrnoError(28);var r=S.nodePermissions(e,"w");if(r)throw new S.ErrnoError(r);e.node_ops.setattr(e,{size:t,timestamp:Date.now()})},ftruncate:(e,t)=>{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);if(0==(2097155&e.flags))throw new S.ErrnoError(28);S.truncate(e.node,t)},utime:(e,t,r)=>{e=S.lookupPath(e,{follow:!0}).node;e.node_ops.setattr(e,{timestamp:Math.max(t,r)})},open:(e,t,r)=>{if(""===e)throw new S.ErrnoError(44);var i;if(r=void 0===r?438:r,r=64&(t="string"==typeof t?S.modeStringToFlags(t):t)?4095&r|32768:0,"object"==typeof e)i=e;else{e=v.normalize(e);try{i=S.lookupPath(e,{follow:!(131072&t)}).node}catch(e){}}var n=!1;if(64&t)if(i){if(128&t)throw new S.ErrnoError(20)}else i=S.mknod(e,r,0),n=!0;if(!i)throw new S.ErrnoError(44);if(S.isChrdev(i.mode)&&(t&=-513),65536&t&&!S.isDir(i.mode))throw new S.ErrnoError(54);if(!n){r=S.mayOpen(i,t);if(r)throw new S.ErrnoError(r)}512&t&&!n&&S.truncate(i,0),t&=-131713;r=S.createStream({node:i,path:S.getPath(i),flags:t,seekable:!0,position:0,stream_ops:i.stream_ops,ungotten:[],error:!1});return r.stream_ops.open&&r.stream_ops.open(r),!_.logReadFiles||1&t||(S.readFiles||(S.readFiles={}),e in S.readFiles||(S.readFiles[e]=1)),r},close:e=>{if(S.isClosed(e))throw new S.ErrnoError(8);e.getdents&&(e.getdents=null);try{e.stream_ops.close&&e.stream_ops.close(e)}catch(e){throw e}finally{S.closeStream(e.fd)}e.fd=null},isClosed:e=>null===e.fd,llseek:(e,t,r)=>{if(S.isClosed(e))throw new S.ErrnoError(8);if(!e.seekable||!e.stream_ops.llseek)throw new S.ErrnoError(70);if(0!=r&&1!=r&&2!=r)throw new S.ErrnoError(28);return e.position=e.stream_ops.llseek(e,t,r),e.ungotten=[],e.position},read:(e,t,r,i,n)=>{if(i<0||n<0)throw new S.ErrnoError(28);if(S.isClosed(e))throw new S.ErrnoError(8);if(1==(2097155&e.flags))throw new S.ErrnoError(8);if(S.isDir(e.node.mode))throw new S.ErrnoError(31);if(!e.stream_ops.read)throw new S.ErrnoError(28);var s=void 0!==n;if(s){if(!e.seekable)throw new S.ErrnoError(70)}else n=e.position;t=e.stream_ops.read(e,t,r,i,n);return s||(e.position+=t),t},write:(e,t,r,i,n,s)=>{if(i<0||n<0)throw new S.ErrnoError(28);if(S.isClosed(e))throw new S.ErrnoError(8);if(0==(2097155&e.flags))throw new S.ErrnoError(8);if(S.isDir(e.node.mode))throw new S.ErrnoError(31);if(!e.stream_ops.write)throw new S.ErrnoError(28);e.seekable&&1024&e.flags&&S.llseek(e,0,2);var a=void 0!==n;if(a){if(!e.seekable)throw new S.ErrnoError(70)}else n=e.position;t=e.stream_ops.write(e,t,r,i,n,s);return a||(e.position+=t),t},allocate:(e,t,r)=>{if(S.isClosed(e))throw new S.ErrnoError(8);if(t<0||r<=0)throw new S.ErrnoError(28);if(0==(2097155&e.flags))throw new S.ErrnoError(8);if(!S.isFile(e.node.mode)&&!S.isDir(e.node.mode))throw new S.ErrnoError(43);if(!e.stream_ops.allocate)throw new S.ErrnoError(138);e.stream_ops.allocate(e,t,r)},mmap:(e,t,r,i,n)=>{if(0!=(2&i)&&0==(2&n)&&2!=(2097155&e.flags))throw new S.ErrnoError(2);if(1==(2097155&e.flags))throw new S.ErrnoError(2);if(e.stream_ops.mmap)return e.stream_ops.mmap(e,t,r,i,n);throw new S.ErrnoError(43)},msync:(e,t,r,i,n)=>e&&e.stream_ops.msync?e.stream_ops.msync(e,t,r,i,n):0,munmap:e=>0,ioctl:(e,t,r)=>{if(e.stream_ops.ioctl)return e.stream_ops.ioctl(e,t,r);throw new S.ErrnoError(59)},readFile:function(e){let t=1S.currentPath,chdir:e=>{e=S.lookupPath(e,{follow:!0});if(null===e.node)throw new S.ErrnoError(44);if(!S.isDir(e.node.mode))throw new S.ErrnoError(54);var t=S.nodePermissions(e.node,"x");if(t)throw new S.ErrnoError(t);S.currentPath=e.path},createDefaultDirectories:()=>{S.mkdir("/tmp"),S.mkdir("/home"),S.mkdir("/home/web_user")},createDefaultDevices:()=>{S.mkdir("/dev"),S.registerDevice(S.makedev(1,3),{read:()=>0,write:(e,t,r,i,n)=>i}),S.mkdev("/dev/null",S.makedev(1,3)),n.register(S.makedev(5,0),n.default_tty_ops),n.register(S.makedev(6,0),n.default_tty1_ops),S.mkdev("/dev/tty",S.makedev(5,0)),S.mkdev("/dev/tty1",S.makedev(6,0));var e=function(){var e;if("object"==typeof crypto&&"function"==typeof crypto.getRandomValues)return e=new Uint8Array(1),()=>(crypto.getRandomValues(e),e[0]);if($)try{var t=Bt.default;return()=>t.randomBytes(1)[0]}catch(e){}return()=>b("randomDevice")}();S.createDevice("/dev","random",e),S.createDevice("/dev","urandom",e),S.mkdir("/dev/shm"),S.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{S.mkdir("/proc");var t=S.mkdir("/proc/self");S.mkdir("/proc/self/fd"),S.mount({mount:()=>{var e=S.createNode(t,"fd",16895,73);return e.node_ops={lookup:(e,t)=>{var r=S.getStream(+t);if(!r)throw new S.ErrnoError(8);t={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>r.path}};return t.parent=t}},e}},{},"/proc/self/fd")},createStandardStreams:()=>{_.stdin?S.createDevice("/dev","stdin",_.stdin):S.symlink("/dev/tty","/dev/stdin"),_.stdout?S.createDevice("/dev","stdout",null,_.stdout):S.symlink("/dev/tty","/dev/stdout"),_.stderr?S.createDevice("/dev","stderr",null,_.stderr):S.symlink("/dev/tty1","/dev/stderr"),S.open("/dev/stdin",0),S.open("/dev/stdout",1),S.open("/dev/stderr",1)},ensureErrnoError:()=>{S.ErrnoError||(S.ErrnoError=function(e,t){this.node=t,this.setErrno=function(e){this.errno=e},this.setErrno(e),this.message="FS error"},S.ErrnoError.prototype=new Error,S.ErrnoError.prototype.constructor=S.ErrnoError,[44].forEach(e=>{S.genericErrors[e]=new S.ErrnoError(e),S.genericErrors[e].stack=""}))},staticInit:()=>{S.ensureErrnoError(),S.nameTable=new Array(4096),S.mount(E,{},"/"),S.createDefaultDirectories(),S.createDefaultDevices(),S.createSpecialDirectories(),S.filesystems={MEMFS:E}},init:(e,t,r)=>{S.init.initialized=!0,S.ensureErrnoError(),_.stdin=e||_.stdin,_.stdout=t||_.stdout,_.stderr=r||_.stderr,S.createStandardStreams()},quit:()=>{S.init.initialized=!1;for(var e=0;e{var r=0;return e&&(r|=365),t&&(r|=146),r},findObject:(e,t)=>{e=S.analyzePath(e,t);return e.exists?e.object:null},analyzePath:(e,t)=>{try{e=(i=S.lookupPath(e,{follow:!t})).path}catch(e){}var r={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var i=S.lookupPath(e,{parent:!0});r.parentExists=!0,r.parentPath=i.path,r.parentObject=i.node,r.name=v.basename(e),i=S.lookupPath(e,{follow:!t}),r.exists=!0,r.path=i.path,r.object=i.node,r.name=i.node.name,r.isRoot="/"===i.path}catch(e){r.error=e.errno}return r},createPath:(e,t,r,i)=>{e="string"==typeof e?e:S.getPath(e);for(var n=t.split("/").reverse();n.length;){var s=n.pop();if(s){var a=v.join2(e,s);try{S.mkdir(a)}catch(e){}e=a}}return a},createFile:(e,t,r,i,n)=>{e=v.join2("string"==typeof e?e:S.getPath(e),t),t=S.getMode(i,n);return S.create(e,t)},createDataFile:(e,t,r,i,n,s)=>{var a=t,t=(e&&(e="string"==typeof e?e:S.getPath(e),a=t?v.join2(e,t):e),S.getMode(i,n)),e=S.create(a,t);if(r){if("string"==typeof r){for(var o=new Array(r.length),l=0,d=r.length;l{var e=v.join2("string"==typeof e?e:S.getPath(e),t),t=S.getMode(!!l,!!a),r=(S.createDevice.major||(S.createDevice.major=64),S.makedev(S.createDevice.major++,0));return S.registerDevice(r,{open:e=>{e.seekable=!1},close:e=>{a&&a.buffer&&a.buffer.length&&a(10)},read:(e,t,r,i,n)=>{for(var s,a=0,o=0;o{for(var s=0;s{if(e.isDevice||e.isFolder||e.link||e.contents)return!0;if("undefined"!=typeof XMLHttpRequest)throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(!t)throw new Error("Cannot load without read() or XMLHttpRequest.");try{e.contents=pe(t(e.url),!0),e.usedBytes=e.contents.length}catch(e){throw new S.ErrnoError(29)}},createLazyFile:(e,t,a,r,i)=>{function n(){this.lengthKnown=!1,this.chunks=[]}if(n.prototype.get=function(e){var t;if(!(e>this.length-1||e<0))return t=e%this.chunkSize,e=e/this.chunkSize|0,this.getter(e)[t]},n.prototype.setDataGetter=function(e){this.getter=e},n.prototype.cacheLength=function(){var e=new XMLHttpRequest;if(e.open("HEAD",a,!1),e.send(null),!(200<=e.status&&e.status<300||304===e.status))throw new Error("Couldn't load "+a+". Status: "+e.status);var t,i=Number(e.getResponseHeader("Content-length")),r=(t=e.getResponseHeader("Accept-Ranges"))&&"bytes"===t,e=(t=e.getResponseHeader("Content-Encoding"))&&"gzip"===t,n=1048576,s=(r||(n=i),this);s.setDataGetter(e=>{var t=e*n,r=(e+1)*n-1,r=Math.min(r,i-1);if(void 0===s.chunks[e]&&(s.chunks[e]=((e,t)=>{if(t=s.length)return 0;var a=Math.min(s.length-n,i);if(s.slice)for(var o=0;o{var t=o.stream_ops[e];l[e]=function(){return S.forceLoadFile(o),t.apply(null,arguments)}}),l.read=(e,t,r,i,n)=>(S.forceLoadFile(o),d(e,t,r,i,n)),l.mmap=(e,t,r,i,n)=>{S.forceLoadFile(o);var s=ce(t);if(s)return d(e,u,s,t,r),{ptr:s,allocated:!0};throw new S.ErrnoError(48)},o.stream_ops=l,o},createPreloadedFile:(r,i,e,n,s,a,o,l,d,h)=>{var t,u,f,p=i?w.resolve(v.join2(r,i)):r;function c(e){function t(e){h&&h(),l||S.createDataFile(r,i,e,n,s,d),a&&a(),oe()}Browser.handledByPreloadPlugin(e,p,t,()=>{o&&o(),oe()})||t(e)}ae(),"string"==typeof e?(u=o,f="al "+(t=e),m(t,e=>{Y(e,'Loading data file "'+t+'" failed (no arrayBuffer).'),c(new Uint8Array(e)),f&&oe()},e=>{if(!u)throw'Loading data file "'+t+'" failed.';u()}),f&&ae()):c(e)},indexedDB:()=>window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,DB_NAME:()=>"EM_FS_"+window.location.pathname,DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(a,o,l)=>{o=o||(()=>{}),l=l||(()=>{});var e=S.indexedDB();try{var d=e.open(S.DB_NAME(),S.DB_VERSION)}catch(a){return l(a)}d.onupgradeneeded=()=>{j("creating db"),d.result.createObjectStore(S.DB_STORE_NAME)},d.onsuccess=()=>{var e=d.result.transaction([S.DB_STORE_NAME],"readwrite"),t=e.objectStore(S.DB_STORE_NAME),r=0,i=0,n=a.length;function s(){(0==i?o:l)()}a.forEach(e=>{e=t.put(S.analyzePath(e).object.contents,e);e.onsuccess=()=>{++r+i==n&&s()},e.onerror=()=>{r+ ++i==n&&s()}}),e.onerror=l},d.onerror=l},loadFilesFromDB:(o,l,d)=>{l=l||(()=>{}),d=d||(()=>{});var e=S.indexedDB();try{var h=e.open(S.DB_NAME(),S.DB_VERSION)}catch(o){return d(o)}h.onupgradeneeded=d,h.onsuccess=()=>{var e=h.result;try{var t=e.transaction([S.DB_STORE_NAME],"readonly")}catch(e){return void d(e)}var r=t.objectStore(S.DB_STORE_NAME),i=0,n=0,s=o.length;function a(){(0==n?l:d)()}o.forEach(e=>{var t=r.get(e);t.onsuccess=()=>{S.analyzePath(e).exists&&S.unlink(e),S.createDataFile(v.dirname(e),v.basename(e),t.result,!0,!0,!0),++i+n==s&&a()},t.onerror=()=>{i+ ++n==s&&a()}}),t.onerror=d},h.onerror=d}},U={DEFAULT_POLLMASK:5,calculateAt:function(e,t,r){if(v.isAbs(t))return t;var i;if(-100===e)i=S.cwd();else{e=S.getStream(e);if(!e)throw new S.ErrnoError(8);i=e.path}if(0!=t.length)return v.join2(i,t);if(r)return i;throw new S.ErrnoError(44)},doStat:function(e,t,r){try{var i=e(t)}catch(e){if(e&&e.node&&v.normalize(t)!==v.normalize(S.getPath(e.node)))return-54;throw e}return d[r>>2]=i.dev,d[r+4>>2]=0,d[r+8>>2]=i.ino,d[r+12>>2]=i.mode,d[r+16>>2]=i.nlink,d[r+20>>2]=i.uid,d[r+24>>2]=i.gid,d[r+28>>2]=i.rdev,d[r+32>>2]=0,y=[i.size>>>0,(g=i.size,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+40>>2]=y[0],d[r+44>>2]=y[1],d[r+48>>2]=4096,d[r+52>>2]=i.blocks,y=[Math.floor(i.atime.getTime()/1e3)>>>0,(g=Math.floor(i.atime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+56>>2]=y[0],d[r+60>>2]=y[1],d[r+64>>2]=0,y=[Math.floor(i.mtime.getTime()/1e3)>>>0,(g=Math.floor(i.mtime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+72>>2]=y[0],d[r+76>>2]=y[1],d[r+80>>2]=0,y=[Math.floor(i.ctime.getTime()/1e3)>>>0,(g=Math.floor(i.ctime.getTime()/1e3),1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+88>>2]=y[0],d[r+92>>2]=y[1],d[r+96>>2]=0,y=[i.ino>>>0,(g=i.ino,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[r+104>>2]=y[0],d[r+108>>2]=y[1],0},doMsync:function(e,t,r,i,n){e=f.slice(e,e+r);S.msync(t,e,n,r,i)},varargs:void 0,get:function(){return U.varargs+=4,d[U.varargs-4>>2]},getStr:function(e){return ee(e)},getStreamFromFD:function(e){e=S.getStream(e);if(e)return e;throw new S.ErrnoError(8)}};function me(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}var _e=void 0;function x(e){for(var t="",r=e;f[r];)t+=_e[f[r++]];return t}var B={},A={},ge={};function ye(e){if(void 0===e)return"_unknown";var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&t<=57?"_"+e:e}function be(e,t){return e=ye(e),new Function("body","return function "+e+'() {\n "use strict"; return body.apply(this, arguments);\n};\n')(t)}function ve(e,t){var r=be(t,function(e){this.name=t,this.message=e;e=new Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});return r.prototype=Object.create(e.prototype),(r.prototype.constructor=r).prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message},r}var T=void 0;function k(e){throw new T(e)}var we=void 0;function Ee(e){throw new we(e)}function Se(i,t,n){function r(e){var t=n(e);t.length!==i.length&&Ee("Mismatched type converter count");for(var r=0;r{A.hasOwnProperty(e)?s[t]=A[e]:(a.push(e),B.hasOwnProperty(e)||(B[e]=[]),B[e].push(()=>{s[t]=A[e],++o===a.length&&r(s)}))}),0===a.length&&r(s)}function C(e,t,r){r=2e()))}function Ue(e){k(e.$$.ptrType.registeredClass.name+" instance already deleted")}var xe=!1;function Be(e){}function Ae(e){--e.count.value,0===e.count.value&&((e=e).smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr))}var Te={};var ke=[];function Ce(){for(;ke.length;){var e=ke.pop();e.$$.deleteScheduled=!1,e.delete()}}var Fe=void 0;var Ie={};function Pe(e,t){return t.ptrType&&t.ptr||Ee("makeClassHandle requires ptr and ptrType"),!!t.smartPtrType!=!!t.smartPtr&&Ee("Both smartPtrType and smartPtr must be specified"),t.count={value:1},De(Object.create(e,{$$:{value:t}}))}function De(e){return"undefined"==typeof FinalizationRegistry?(De=e=>e,e):(xe=new FinalizationRegistry(e=>{Ae(e.$$)}),Be=e=>xe.unregister(e),(De=e=>{var t=e.$$;return t.smartPtr&&xe.register(e,{$$:t},e),e})(e))}function F(){}function Le(e,t,r){var i;void 0===e[t].overloadTable&&(i=e[t],e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||k("Function '"+r+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[i.argCount]=i)}function ze(e,t,r,i,n,s,a,o){this.name=e,this.constructor=t,this.instancePrototype=r,this.rawDestructor=i,this.baseClass=n,this.getActualType=s,this.upcast=a,this.downcast=o,this.pureVirtualFunctions=[]}function Re(e,t,r){for(;t!==r;)t.upcast||k("Expected null or instance of "+r.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function Me(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name);var r=t.$$.ptrType.registeredClass;return Re(t.$$.ptr,r,this.registeredClass)}function Ne(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),this.isSmartPointer?(i=this.rawConstructor(),null!==e&&e.push(this.rawDestructor,i),i):0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&k("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);var r,i,n=t.$$.ptrType.registeredClass;if(i=Re(t.$$.ptr,n,this.registeredClass),this.isSmartPointer)switch(void 0===t.$$.smartPtr&&k("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?i=t.$$.smartPtr:k("Cannot convert argument of type "+(t.$$.smartPtrType||t.$$.ptrType).name+" to parameter type "+this.name);break;case 1:i=t.$$.smartPtr;break;case 2:t.$$.smartPtrType===this?i=t.$$.smartPtr:(r=t.clone(),i=this.rawShare(i,Qe.toHandle(function(){r.delete()})),null!==e&&e.push(this.rawDestructor,i));break;default:k("Unsupporting sharing policy")}return i}function Oe(e,t){if(null===t)return this.isReference&&k("null is not a valid "+this.name),0;t.$$||k('Cannot pass "'+et(t)+'" as a '+this.name),t.$$.ptr||k("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&k("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var r=t.$$.ptrType.registeredClass;return Re(t.$$.ptr,r,this.registeredClass)}function Ge(e){return this.fromWireType(d[e>>2])}function I(e,t,r,i,n,s,a,o,l,d,h){this.name=e,this.registeredClass=t,this.isReference=r,this.isConst=i,this.isSmartPointer=n,this.pointeeType=s,this.sharingPolicy=a,this.rawGetPointee=o,this.rawConstructor=l,this.rawShare=d,this.rawDestructor=h,n||void 0!==t.baseClass?this.toWireType=Ne:(this.toWireType=i?Me:Oe,this.destructorFunction=null)}var He=[];function Ve(e){var t=He[e];return t||(e>=He.length&&(He.length=e+1),He[e]=t=J.get(e)),t}function P(e,t){var n,s,a,r=(e=x(e)).includes("j")?(n=e,s=t,a=[],function(){return a.length=0,Object.assign(a,arguments),t=s,r=a,(e=n).includes("j")?(i=t,e=_["dynCall_"+e],r&&r.length?e.apply(null,[i].concat(r)):e.call(null,i)):Ve(t).apply(null,r);var e,t,r,i}):Ve(t);return"function"!=typeof r&&k("unknown function pointer with signature "+e+": "+t),r}var $e=void 0;function je(e){var e=bt(e),t=x(e);return L(e),t}function We(e,t){var r=[],i={};throw t.forEach(function e(t){i[t]||A[t]||(ge[t]?ge[t].forEach(e):(r.push(t),i[t]=!0))}),new $e(e+": "+r.map(je).join([", "]))}function Ye(e,t){for(var r=[],i=0;i>2]);return r}function qe(e){for(;e.length;){var t=e.pop();e.pop()(t)}}function Xe(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var r=be(e.name||"unknownFunctionName",function(){}),r=(r.prototype=e.prototype,new r),e=e.apply(r,t);return e instanceof Object?e:r}function Ke(e,t,r,i,n){var s=t.length;s<2&&k("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==t[1]&&null!==r,a=!1,o=1;o(e||k("Cannot use deleted val. handle = "+e),D[e].value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:var t=Ze.length?Ze.pop():D.length;return D[t]={refcount:1,value:e},t}}};function et(e){if(null===e)return"null";var t=typeof e;return"object"==t||"array"==t||"function"==t?e.toString():""+e}var tt="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;function rt(e,t){for(var r,i=e>>1,n=i+t/2;!(n<=i)&&X[i];)++i;if(32<(r=i<<1)-e&&tt)return tt.decode(f.subarray(e,r));for(var s="",a=0;!(t/2<=a);++a){var o=l[e+2*a>>1];if(0==o)break;s+=String.fromCharCode(o)}return s}function it(e,t,r){if((r=void 0===r?2147483647:r)<2)return 0;for(var i=t,n=(r-=2)<2*e.length?r/2:e.length,s=0;s>1]=a,t+=2}return l[t>>1]=0,t-i}function nt(e){return 2*e.length}function st(e,t){for(var r=0,i="";!(t/4<=r);){var n,s=d[e+4*r>>2];if(0==s)break;++r,65536<=s?(n=s-65536,i+=String.fromCharCode(55296|n>>10,56320|1023&n)):i+=String.fromCharCode(s)}return i}function at(e,t,r){if((r=void 0===r?2147483647:r)<4)return 0;for(var i=t,n=i+r-4,s=0;s>2]=a,(t+=4)+4>n)break}return d[t>>2]=0,t-i}function ot(e){for(var t=0,r=0;r>1]=2,0;case 16:case 8:default:return-28;case 9:return d[yt()>>2]=28,-1}}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return-e.errno;throw e}},w:function(e,t,r,i){U.varargs=i;try{t=U.getStr(t),t=U.calculateAt(e,t);var n=i?U.get():0;return S.open(t,r,n).fd}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return-e.errno;throw e}},u:function(e,t,r,i,n){},E:function(e,r,i,n,s){var a=me(i);C(e,{name:r=x(r),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?n:s},argPackAdvance:8,readValueFromPointer:function(e){var t;if(1===i)t=u;else if(2===i)t=l;else{if(4!==i)throw new TypeError("Unknown boolean type size: "+r);t=d}return this.fromWireType(t[e>>a])},destructorFunction:null})},l:function(l,e,t,d,r,h,i,u,n,f,p,s,c){p=x(p),h=P(r,h),u=u&&P(i,u),f=f&&P(n,f),c=P(s,c);var a,m=ye(p);r=m,i=function(){We("Cannot construct "+p+" due to unbound types",[d])},_.hasOwnProperty(r)?(k("Cannot register public name '"+r+"' twice"),Le(_,r,r),_.hasOwnProperty(a)&&k("Cannot register multiple overloads of a function with the same number of arguments ("+a+")!"),_[r].overloadTable[a]=i):_[r]=i,Se([l,e,t],d?[d]:[],function(e){e=e[0],e=d?(a=e.registeredClass).instancePrototype:F.prototype;var t,r,i=be(m,function(){if(Object.getPrototypeOf(this)!==n)throw new T("Use 'new' to construct "+p);if(void 0===s.constructor_body)throw new T(p+" has no accessible constructor");var e=s.constructor_body[arguments.length];if(void 0===e)throw new T("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(s.constructor_body).toString()+") parameters instead!");return e.apply(this,arguments)}),n=Object.create(e,{constructor:{value:i}}),s=(i.prototype=n,new ze(p,i,n,c,a,h,u,f)),e=new I(p,s,!0,!1,!1),a=new I(p+"*",s,!1,!1,!1),o=new I(p+" const*",s,!1,!0,!1);return Te[l]={pointerType:a,constPointerType:o},t=m,i=i,_.hasOwnProperty(t)||Ee("Replacing nonexistant public symbol"),_[t].overloadTable,_[t]=i,_[t].argCount=r,[e,a,o]})},k:function(e,i,t,r,n,s){Y(0{We("Cannot construct "+t.name+" due to unbound types",a)},Se([],a,function(e){return e.splice(1,0,null),t.registeredClass.constructor_body[i-1]=Ke(r,e,null,n,s),[]}),[]})},f:function(e,s,a,t,r,o,l,d){var h=Ye(a,t);s=x(s),o=P(r,o),Se([],[e],function(t){var r=(t=t[0]).name+"."+s;function e(){We("Cannot call "+r+" due to unbound types",h)}s.startsWith("@@")&&(s=Symbol[s.substring(2)]),d&&t.registeredClass.pureVirtualFunctions.push(s);var i=t.registeredClass.instancePrototype,n=i[s];return void 0===n||void 0===n.overloadTable&&n.className!==t.name&&n.argCount===a-2?(e.argCount=a-2,e.className=t.name,i[s]=e):(Le(i,s,r),i[s].overloadTable[a-2]=e),Se([],h,function(e){e=Ke(r,e,t,o,l);return void 0===i[s].overloadTable?(e.argCount=a-2,i[s]=e):i[s].overloadTable[a-2]=e,[]}),[]})},D:function(e,t){C(e,{name:t=x(t),fromWireType:function(e){var t=Qe.toValue(e);return Je(e),t},toWireType:function(e,t){return Qe.toHandle(t)},argPackAdvance:8,readValueFromPointer:Ge,destructorFunction:null})},p:function(e,t,r){r=me(r);C(e,{name:t=x(t),fromWireType:function(e){return e},toWireType:function(e,t){return t},argPackAdvance:8,readValueFromPointer:function(e,t){switch(t){case 2:return function(e){return this.fromWireType(K[e>>2])};case 3:return function(e){return this.fromWireType(Z[e>>3])};default:throw new TypeError("Unknown float type: "+e)}}(t,r),destructorFunction:null})},c:function(e,t,r,i,n){t=x(t);var s,a=me(r),o=e=>e,r=(0===i&&(s=32-8*r,o=e=>e<>>s),t.includes("unsigned"));C(e,{name:t,fromWireType:o,toWireType:r?function(e,t){return this.name,t>>>0}:function(e,t){return this.name,t},argPackAdvance:8,readValueFromPointer:function(e,t,r){switch(t){case 0:return r?function(e){return u[e]}:function(e){return f[e]};case 1:return r?function(e){return l[e>>1]}:function(e){return X[e>>1]};case 2:return r?function(e){return d[e>>2]}:function(e){return p[e>>2]};default:throw new TypeError("Unknown integer type: "+e)}}(t,a,0!==i),destructorFunction:null})},b:function(e,t,r){var i=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][t];function n(e){var t=p,r=t[e>>=2],t=t[e+1];return new i(q,t,r)}C(e,{name:r=x(r),fromWireType:n,argPackAdvance:8,readValueFromPointer:n},{ignoreDuplicateRegistrations:!0})},o:function(e,t){var d="std::string"===(t=x(t));C(e,{name:t,fromWireType:function(e){var t,r=p[e>>2],i=e+4;if(d)for(var n=i,s=0;s<=r;++s){var a,o=i+s;s!=r&&0!=f[o]||(a=ee(n,o-n),void 0===t?t=a:t=t+String.fromCharCode(0)+a,n=o+1)}else{for(var l=new Array(r),s=0;s>2]=r,d&&i)te(t,f,s,r+1);else if(i)for(var a=0;aX,u=1):4===l&&(d=st,s=at,a=ot,h=()=>p,u=2),C(e,{name:n,fromWireType:function(e){for(var t,r=p[e>>2],i=h(),n=e+4,s=0;s<=r;++s){var a,o=e+4+s*l;s!=r&&0!=i[o>>u]||(a=d(n,o-n),void 0===t?t=a:t=t+String.fromCharCode(0)+a,n=o+l)}return L(e),t},toWireType:function(e,t){"string"!=typeof t&&k("Cannot pass non-string to C++ string type "+n);var r=a(t),i=gt(4+r+l);return p[i>>2]=r>>u,s(t,i+4,r+l),null!==e&&e.push(L,i),i},argPackAdvance:8,readValueFromPointer:Ge,destructorFunction:function(e){L(e)}})},q:function(e,t){C(e,{isVoid:!0,name:t=x(t),argPackAdvance:0,fromWireType:function(){},toWireType:function(e,t){}})},i:function(){return Date.now()},d:function(e,t,r,i){(e=dt[e])(t=Qe.toValue(t),r=void 0===(t=lt[e=r])?x(e):t,null,i)},g:Je,e:function(e,t){var r=function(e,t){for(var r,i,n=new Array(e),s=0;s>2],void 0===(i=A[r])&&k("parameter "+s+" has unknown type "+je(r)),i);return n}(e,t),t=r[0],i=t.name+"_$"+r.slice(1).map(function(e){return e.name}).join("_")+"$",n=ht[i];if(void 0!==n)return n;for(var s=["retType"],a=[t],o="",l=0;l>2]=r,e),n=r,s=0;s>0]=i.charCodeAt(s);u[n>>0]=0,l+=e.length+1}),0},z:function(e,t){var r=ft(),i=(p[e>>2]=r.length,0);return r.forEach(function(e){i+=e.length+1}),p[t>>2]=i,0},n:function(e){try{var t=U.getStreamFromFD(e);return S.close(t),0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},x:function(e,t){try{var r=U.getStreamFromFD(e),i=r.tty?2:S.isDir(r.mode)?3:S.isLink(r.mode)?7:4;return u[t>>0]=i,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},B:function(e,t,r,i){try{var n=function(e,t,r){for(var i=0,n=0;n>2],a=p[t+4>>2],s=(t+=8,S.read(e,u,s,a,void 0));if(s<0)return-1;if(i+=s,s>2]=n,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},t:function(e,t,r,i,n){try{var s=r+2097152>>>0<4194305-!!t?(t>>>0)+4294967296*r:NaN;if(isNaN(s))return 61;var a=U.getStreamFromFD(e);return S.llseek(a,s,i),y=[a.position>>>0,(g=a.position,1<=+Math.abs(g)?0>>0:~~+Math.ceil((g-(~~g>>>0))/4294967296)>>>0:0)],d[n>>2]=y[0],d[n+4>>2]=y[1],a.getdents&&0===s&&0===i&&(a.getdents=null),0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},m:function(e,t,r,i){try{var n=function(e,t,r){for(var i=0,n=0;n>2],a=p[t+4>>2],s=(t+=8,S.write(e,u,s,a,void 0));if(s<0)return-1;i+=s}return i}(U.getStreamFromFD(e),t,r);return p[i>>2]=n,0}catch(e){if(void 0!==S&&e instanceof S.ErrnoError)return e.errno;throw e}},h:function(e){}},L=(!function(){var t={a:_t};function r(e,t){var e=e.exports;_.asm=e,e=_.asm.F.buffer,q=e,_.HEAP8=u=new Int8Array(e),_.HEAP16=l=new Int16Array(e),_.HEAP32=d=new Int32Array(e),_.HEAPU8=f=new Uint8Array(e),_.HEAPU16=X=new Uint16Array(e),_.HEAPU32=p=new Uint32Array(e),_.HEAPF32=K=new Float32Array(e),_.HEAPF64=Z=new Float64Array(e),J=_.asm.J,e=_.asm.G,ne.unshift(e),oe()}function i(e){r(e.instance)}function n(e){return function(){if(!s&&(V||h)){if("function"==typeof fetch&&!de(c))return fetch(c,{credentials:"same-origin"}).then(function(e){if(e.ok)return e.arrayBuffer();throw"failed to load wasm binary file at '"+c+"'"}).catch(function(){return he(c)});if(m)return new Promise(function(t,e){m(c,function(e){t(new Uint8Array(e))},e)})}return Promise.resolve().then(function(){return he(c)})}().then(function(e){return WebAssembly.instantiate(e,t)}).then(function(e){return e}).then(e,function(e){o("failed to asynchronously prepare wasm: "+e),b(e)})}if(ae(),_.instantiateWasm)try{return _.instantiateWasm(t,r)}catch(t){return o("Module.instantiateWasm callback failed with error: "+t)}s||"function"!=typeof WebAssembly.instantiateStreaming||le(c)||de(c)||$||"function"!=typeof fetch?n(i):fetch(c,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,t).then(i,function(e){return o("wasm streaming compile failed: "+e),o("falling back to ArrayBuffer instantiation"),n(i)})})}(),_.___wasm_call_ctors=function(){return(_.___wasm_call_ctors=_.asm.G).apply(null,arguments)},_._free=function(){return(L=_._free=_.asm.H).apply(null,arguments)}),gt=_._malloc=function(){return(gt=_._malloc=_.asm.I).apply(null,arguments)},yt=_.___errno_location=function(){return(yt=_.___errno_location=_.asm.K).apply(null,arguments)},bt=_.___getTypeName=function(){return(bt=_.___getTypeName=_.asm.L).apply(null,arguments)};_.___embind_register_native_and_builtin_types=function(){return(_.___embind_register_native_and_builtin_types=_.asm.M).apply(null,arguments)};var vt,wt=_._emscripten_builtin_memalign=function(){return(wt=_._emscripten_builtin_memalign=_.asm.N).apply(null,arguments)},Et=_.___cxa_is_pointer_type=function(){return(Et=_.___cxa_is_pointer_type=_.asm.O).apply(null,arguments)};function St(){function e(){if(!vt&&(vt=!0,_.calledRun=!0,!W)){if(_.noFSInit||S.init.initialized||S.init(),S.ignorePermissions=!1,ue(ne),_.onRuntimeInitialized&&_.onRuntimeInitialized(),_.postRun)for("function"==typeof _.postRun&&(_.postRun=[_.postRun]);_.postRun.length;)e=_.postRun.shift(),se.unshift(e);var e;ue(se)}}if(!(0{e&&g.pixelStorei(g.UNPACK_ALIGNMENT,1);e=s(g.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n attribute vec2 aTexturePosition;\n uniform mat4 uModelMatrix;\n uniform mat4 uViewMatrix;\n uniform mat4 uProjectionMatrix;\n varying lowp vec2 vTexturePosition;\n void main(void) {\n gl_Position = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n vTexturePosition = aTexturePosition;\n }\n "),t=s(g.FRAGMENT_SHADER,"\n precision highp float;\n varying highp vec2 vTexturePosition;\n uniform int isyuv;\n uniform sampler2D rgbaTexture;\n uniform sampler2D yTexture;\n uniform sampler2D uTexture;\n uniform sampler2D vTexture;\n\n const mat4 YUV2RGB = mat4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n\n void main(void) {\n\n if (isyuv>0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),r=g.createProgram(),g.attachShader(r,e),g.attachShader(r,t),g.linkProgram(r);var t,r,e=g.getProgramParameter(r,g.LINK_STATUS)?r:(console.log("Unable to initialize the shader program: "+g.getProgramInfoLog(r)),null);let y={program:e,attribLocations:{vertexPosition:g.getAttribLocation(e,"aVertexPosition"),texturePosition:g.getAttribLocation(e,"aTexturePosition")},uniformLocations:{projectionMatrix:g.getUniformLocation(e,"uProjectionMatrix"),modelMatrix:g.getUniformLocation(e,"uModelMatrix"),viewMatrix:g.getUniformLocation(e,"uViewMatrix"),rgbatexture:g.getUniformLocation(e,"rgbaTexture"),ytexture:g.getUniformLocation(e,"yTexture"),utexture:g.getUniformLocation(e,"uTexture"),vtexture:g.getUniformLocation(e,"vTexture"),isyuv:g.getUniformLocation(e,"isyuv")}},b=(t=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,t),g.bufferData(g.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),g.STATIC_DRAW),r=(r=[]).concat([0,1],[1,1],[1,0],[0,0]),e=g.createBuffer(),g.bindBuffer(g.ARRAY_BUFFER,e),g.bufferData(g.ARRAY_BUFFER,new Float32Array(r),g.STATIC_DRAW),r=g.createBuffer(),g.bindBuffer(g.ELEMENT_ARRAY_BUFFER,r),g.bufferData(g.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),g.STATIC_DRAW),{position:t,texPosition:e,indices:r}),i=n(),v=n(),w=n(),E=n();function n(){var e=g.createTexture();return g.bindTexture(g.TEXTURE_2D,e),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MAG_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_MIN_FILTER,g.LINEAR),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_S,g.CLAMP_TO_EDGE),g.texParameteri(g.TEXTURE_2D,g.TEXTURE_WRAP_T,g.CLAMP_TO_EDGE),e}function s(e,t){e=g.createShader(e);return g.shaderSource(e,t),g.compileShader(e),g.getShaderParameter(e,g.COMPILE_STATUS)?e:(console.log("An error occurred compiling the shaders: "+g.getShaderInfoLog(e)),g.deleteShader(e),null)}function a(e,t){g.viewport(0,0,e,t),g.clearColor(0,0,0,0),g.clearDepth(1),g.enable(g.DEPTH_TEST),g.depthFunc(g.LEQUAL),g.clear(g.COLOR_BUFFER_BIT|g.DEPTH_BUFFER_BIT);const r=U();A(r,-1,1,-1,1,.1,100);var i,n,s,a,o,l,d,h,u,f,p,c,m,_,e=U(),t=(B(e),U());i=t,n=x(0,0,0),s=x(0,0,-1),a=x(0,1,0),u=n[0],f=n[1],n=n[2],p=a[0],c=a[1],a=a[2],m=s[0],_=s[1],s=s[2],Math.abs(u-m)>4===G&&e[1]===fe}r(function(e){var a,t,o,r,i;a="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=e.exports,o=function(){for(var e,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],r=0,i=t.length,n={};re.type===i):r)[0],s=null,e=1;var t;if(0{this.reject=e,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)},this.demand(r,!0)||null==(e=this.pull)||e.call(this,r)})},new(o=(o=a=void 0)||Promise)(function(r,t){function i(e){try{s(l.next(e))}catch(e){t(e)}}function n(e){try{s(l.throw(e))}catch(e){t(e)}}function s(e){var t;e.done?r(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(i,n)}s((l=l.apply(e,a||[])).next())});var e,a,o,l}readU32(){return this.read(k)}readU16(){return this.read(C)}readU8(){return this.read(F)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null!=(e=this.reject)&&e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(this.buffer&&this.need){let e=null;const i=this.buffer.subarray(this.consumed);let t=0;var r=e=>i.length<(t=e);if("number"==typeof this.need){if(r(this.need))return;e=i.subarray(0,t)}else if(this.need===k){if(r(4))return;e=i[0]<<24|i[1]<<16|i[2]<<8|i[3]}else if(this.need===C){if(r(2))return;e=i[0]<<8|i[1]}else if(this.need===F){if(r(1))return;e=i[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(i.subarray(0,t)),e=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(i.subarray(0,t)),e=this.need}return this.consumed+=t,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise(e=>this.pull=e);this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,r=t+e;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{const e=new Uint8Array(r);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,r)}return this.buffer=new Uint8Array(e),this.buffer}}Y.U32=k,Y.U16=C,Y.U8=F;class be{constructor(s){this.log=function(e){if(s._opt.debug&&s._opt.debugLevel==b){for(var t=s._opt.debugUuid?`[${s._opt.debugUuid}]`:"",r=arguments.length,i=new Array(1>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t;var t=this._current_word_bits_left?this._current_word:0,e=(t>>>=32-this._current_word_bits_left,e-this._current_word_bits_left),e=(this._fillCurrentWord(),Math.min(e,this._current_word_bits_left)),r=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class P{static _ebsp2rbsp(e){let t=e,r=t.byteLength,i=new Uint8Array(r),n=0;for(let e=0;e=this.buflen)return this.iserro=!0,0;this.iserro=!1,r=8>8-this.bufoff-r&255>>8-r),this.bufoff+=r,e-=r,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){var t=this.bufpos,r=this.bufoff,e=this.read(e);return this.bufpos=t,this.bufoff=r,e}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<>>24&255,r>>>16&255,r>>>8&255,255&r]),e=new Uint8Array(r+4);e.set(i,0),e.set(n.sps,4),n.sps=e}if(n.pps){const r=n.pps.byteLength,i=new Uint8Array([r>>>24&255,r>>>16&255,r>>>8&255,255&r]),e=new Uint8Array(r+4);e.set(i,0),e.set(n.pps,4),n.pps=e}return n}function Ee(e,t){let r=[];r[0]=t?23:39,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}function Se(e){const t=e.byteLength,r=new Uint8Array(4),i=(r[0]=t>>>24&255,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,new Uint8Array(t+4));return i.set(r,0),i.set(e,4),i}function X(e){return 31&e[0]}function Ue(e){return e===E}function xe(e){return(t=e)!==H&&t!==V&&!Ue(e);var t}function Be(e){return e===w}const Ae=e=>{let t=e,r=t.byteLength,i=new Uint8Array(r),n=0;for(let e=0;e{switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}};function ke(e){return(126&e[0])>>1}function I(e){return parseInt(e)===e}function D(e){if(I(e.length)){for(var t=0;t>4]+Ce[15&i])}return t.join("")}}),Fe={16:10,24:12,32:14},Ie=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],u=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],d=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Pe=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],De=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],Le=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],ze=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],Re=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Me=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Ne=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],Oe=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],Ge=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],He=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Ve=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],$e=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function je(e){for(var t=[],r=0;r>2][t%4]=s[t],this._Kd[e-r][t%4]=s[t];for(var a,o=0,l=n;l>16&255]<<24^u[a>>8&255]<<16^u[255&a]<<8^u[a>>24&255]^Ie[o]<<24,o+=1,8!=n)for(t=1;t>8&255]<<8^u[a>>16&255]<<16^u[a>>24&255]<<24,t=n/2+1;t>2][h=l%4]=s[t],this._Kd[e-d][h]=s[t++],l++}for(var d=1;d>24&255]^He[a>>16&255]^Ve[a>>8&255]^$e[255&a]},i.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,r=[0,0,0,0],i=je(e),n=0;n<4;n++)i[n]^=this._Ke[0][n];for(var s=1;s>24&255]^De[i[(n+1)%4]>>16&255]^Le[i[(n+2)%4]>>8&255]^ze[255&i[(n+3)%4]]^this._Ke[s][n];i=r.slice()}for(var a,o=l(16),n=0;n<4;n++)a=this._Ke[t][n],o[4*n]=255&(u[i[n]>>24&255]^a>>24),o[4*n+1]=255&(u[i[(n+1)%4]>>16&255]^a>>16),o[4*n+2]=255&(u[i[(n+2)%4]>>8&255]^a>>8),o[4*n+3]=255&(u[255&i[(n+3)%4]]^a);return o},i.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,r=[0,0,0,0],i=je(e),n=0;n<4;n++)i[n]^=this._Kd[0][n];for(var s=1;s>24&255]^Me[i[(n+3)%4]>>16&255]^Ne[i[(n+2)%4]>>8&255]^Oe[255&i[(n+1)%4]]^this._Kd[s][n];i=r.slice()}for(var a,o=l(16),n=0;n<4;n++)a=this._Kd[t][n],o[4*n]=255&(d[i[n]>>24&255]^a>>24),o[4*n+1]=255&(d[i[(n+3)%4]>>16&255]^a>>16),o[4*n+2]=255&(d[i[(n+2)%4]>>8&255]^a>>8),o[4*n+3]=255&(d[255&i[(n+1)%4]]^a);return o},o.prototype.encrypt=function(e){if((e=s(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=l(e.length),r=l(16),i=0;iNumber.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;0<=t;--t)this._counter[t]=e%256,e=parseInt(e/256)},c.prototype.setBytes=function(e){if(16!=(e=s(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},c.prototype.increment=function(){for(var e=15;0<=e;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}};m.prototype.decrypt=m.prototype.encrypt=function(e){for(var t=s(e,!0),r=0;r>3)&&2<=t.data.length?32+((7&t.data[0])<<3)+((224&t.data[1])>>5):r:null},s.DecoderConfigDescriptor=function(e){s.Descriptor.call(this,4,e)},s.DecoderConfigDescriptor.prototype=new s.Descriptor,s.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},s.DecoderSpecificInfo=function(e){s.Descriptor.call(this,5,e)},s.DecoderSpecificInfo.prototype=new s.Descriptor,s.SLConfigDescriptor=function(e){s.Descriptor.call(this,6,e)},s.SLConfigDescriptor.prototype=new s.Descriptor,this}function n(){}function s(){}function B(e){this.stream=e||new r,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.onSidx=null,this.sidxSent=!1}a=new Date,o=4;var a,o,f={setLogLevel:function(e){o=e==this.debug?1:e==this.info?2:e==this.warn?3:(this.error,4)},debug:function(e,t){void 0===console.debug&&(console.debug=console.log),o<=1&&console.debug("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},log:function(e,t){this.debug(e.msg)},info:function(e,t){o<=2&&console.info("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},warn:function(e,t){o<=3&&console.warn("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)},error:function(e,t){o<=4&&console.error("["+f.getDurationString(new Date-a,1e3)+"]","["+e+"]",t)}},d=(f.getDurationString=function(e,t){var r;function i(e,t){for(var r=(""+e).split(".");r[0].length=this.getEndPosition()},u.prototype.readAnyInt=function(e,t){var r=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:r=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:r=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";r=this.dataview.getUint8(this.position)<<16,r=(r|=this.dataview.getUint8(this.position+1)<<8)|this.dataview.getUint8(this.position+2);break;case 4:r=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";r=this.dataview.getUint32(this.position)<<32,r|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,r}throw"Not enough bytes in buffer"},u.prototype.readUint8=function(){return this.readAnyInt(1,!1)},u.prototype.readUint16=function(){return this.readAnyInt(2,!1)},u.prototype.readUint24=function(){return this.readAnyInt(3,!1)},u.prototype.readUint32=function(){return this.readAnyInt(4,!1)},u.prototype.readUint64=function(){return this.readAnyInt(8,!1)},u.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",r=0;rthis._byteLength&&(this._byteLength=t);else{for(r<1&&(r=1);r=this._byteLength},l.prototype.mapUint8Array=function(e){this._realloc(+e);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.readInt32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Int32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Int16Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Int8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readUint32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Uint32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readUint16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var r=new Uint16Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readUint8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Uint8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readFloat64Array=function(e,t){e=null==e?this.byteLength-this.position/8:e;var r=new Float64Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readFloat32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var r=new Float32Array(e);return l.memcpy(r.buffer,0,this.buffer,this.byteOffset+this.position,e*r.BYTES_PER_ELEMENT),l.arrayToNative(r,null==t?this.endianness:t),this.position+=r.byteLength,r},l.prototype.readInt32=function(e){e=this._dataView.getInt32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readInt16=function(e){e=this._dataView.getInt16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},l.prototype.readUint32=function(e){e=this._dataView.getUint32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readUint16=function(e){e=this._dataView.getUint16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},l.prototype.readFloat32=function(e){e=this._dataView.getFloat32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readFloat64=function(e){e=this._dataView.getFloat64(this.position,null==e?this.endianness:e);return this.position+=8,e},l.endianness=0>16),this.writeUint8((65280&e)>>8),this.writeUint8(255&e)},l.prototype.adjustUint32=function(e,t){var r=this.position;this.seek(e),this.writeUint32(t),this.seek(r)},l.prototype.mapInt32Array=function(e,t){this._realloc(4*e);var r=new Int32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},l.prototype.mapInt16Array=function(e,t){this._realloc(2*e);var r=new Int16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},l.prototype.mapInt8Array=function(e){this._realloc(+e);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.mapUint32Array=function(e,t){this._realloc(4*e);var r=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},l.prototype.mapUint16Array=function(e,t){this._realloc(2*e);var r=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=2*e,r},l.prototype.mapFloat64Array=function(e,t){this._realloc(8*e);var r=new Float64Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=8*e,r},l.prototype.mapFloat32Array=function(e,t){this._realloc(4*e);var r=new Float32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(r,null==t?this.endianness:t),this.position+=4*e,r},(r.prototype=new l(new ArrayBuffer,0,l.BIG_ENDIAN)).initialized=function(){var e;return-1i.byteLength){this.buffers.splice(r,1),r--;continue}f.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring")}else e.fileStart+e.byteLength<=i.fileStart||(e=this.reduceBuffer(e,0,i.fileStart-e.fileStart)),f.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(r,0,e),0===r&&(this.buffer=e);t=!1;break}if(e.fileStart"+this.buffer.byteLength+")"),!0))},r.prototype.findPosition=function(e,t,r){for(var i=null,n=-1,s=!0===e?0:this.bufferIndex;s=t?(f.debug("MultiBufferStream","Found position in existing buffer #"+n),n):-1},r.prototype.findEndContiguousBuf=function(e){var t,r,e=void 0!==e?e:this.bufferIndex,i=this.buffers[e];if(this.buffers.length>e+1)for(t=e+1;te.getEndPosition()?(e.seek(s),f.info("BoxParser","Not enough data in stream to parse the entire '"+l+"' box"),{code:b.ERR_NOT_ENOUGH_DATA,type:l,size:o,hdr_size:a,start:s}):t?{code:b.OK,type:l,size:o,hdr_size:a,start:s}:(b[l+"Box"]?i=new b[l+"Box"](o):"uuid"!==l?(f.warn("BoxParser","Unknown box type: '"+l+"'"),(i=new b.Box(l,o)).has_unparsed_data=!0):b.UUIDBoxes[n]?i=new b.UUIDBoxes[n](o):(f.warn("BoxParser","Unknown uuid type: '"+n+"'"),(i=new b.Box(l,o)).uuid=n,i.has_unparsed_data=!0),i.hdr_size=a,i.start=s,i.write===b.Box.prototype.write&&"mdat"!==i.type&&(f.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),i.parseDataAndRewind(e)),i.parse(e),(r=e.getPosition()-(i.start+i.size))<0?(f.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-r+" bytes), seeking forward"),e.seek(i.start+i.size)):0>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},b.SAMPLE_ENTRY_TYPE_VISUAL="Visual",b.SAMPLE_ENTRY_TYPE_AUDIO="Audio",b.SAMPLE_ENTRY_TYPE_HINT="Hint",b.SAMPLE_ENTRY_TYPE_METADATA="Metadata",b.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",b.SAMPLE_ENTRY_TYPE_SYSTEM="System",b.SAMPLE_ENTRY_TYPE_TEXT="Text",b.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},b.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},b.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},b.SampleEntry.prototype.parseFooter=function(e){b.ContainerBox.prototype.parse.call(this,e)},b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_HINT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT,"enct"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA,"encm"),b.createBoxCtor("a1lx",function(e){var t=16*(1+(1&e.readUint8()));this.layer_size=[];for(var r=0;r<3;r++)this.layer_size[r]=16==t?e.readUint16():e.readUint32()}),b.createBoxCtor("a1op",function(e){this.op_index=e.readUint8()}),b.createFullBoxCtor("auxC",function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),b.createBoxCtor("av1C",function(e){var t=e.readUint8();if(t>>7&!1)f.error("av1C marker problem");else if(this.version=127&t,1===this.version)if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=31&t,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=3&t,t=e.readUint8(),this.reserved_1=t>>5&7,0===this.reserved_1){if(this.initial_presentation_delay_present=t>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&t;else if(this.reserved_2=15&t,0!==this.reserved_2)return void f.error("av1C reserved_2 parsing problem");t=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(t)}else f.error("av1C reserved_1 parsing problem");else f.error("av1C version "+this.version+" not supported")}),b.createBoxCtor("avcC",function(e){var t,r;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=3&e.readUint8(),this.nb_SPS_nalus=31&e.readUint8(),r=this.size-this.hdr_size-6,this.SPS=[],t=0;t>7):"rICC"!==this.colour_type&&"prof"!==this.colour_type||(this.ICC_profile=e.readUint8Array(this.size-4))}),b.createFullBoxCtor("cprt",function(e){this.parseLanguage(e),this.notice=e.readCString()}),b.createFullBoxCtor("cslg",function(e){0===this.version&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),b.createFullBoxCtor("ctts",function(e){var t,r=e.readUint32();if(this.sample_counts=[],this.sample_offsets=[],0===this.version)for(t=0;t>6,this.bsid=t>>1&31,this.bsmod=(1&t)<<2|r>>6&3,this.acmod=r>>3&7,this.lfeon=r>>2&1,this.bit_rate_code=3&r|e>>5&7}),b.createBoxCtor("dec3",function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=7&t,this.ind_subs=[];for(var r=0;r>6,i.bsid=n>>1&31,i.bsmod=(1&n)<<4|s>>4&15,i.acmod=s>>1&7,i.lfeon=1&s,i.num_dep_sub=a>>1&15,0>12,e.readUint8Array(20)),t.push(r[n]),128&i)break}this.numMetadataBlocks=t.length+" ("+t.join(", ")+")"}),b.createBoxCtor("dimm",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("dmed",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dOps",function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t>6,this.general_tier_flag=(32&r)>>5,this.general_profile_idc=31&r,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=4095&e.readUint16(),this.parallelismType=3&e.readUint8(),this.chroma_format_idc=3&e.readUint8(),this.bit_depth_luma_minus8=7&e.readUint8(),this.bit_depth_chroma_minus8=7&e.readUint8(),this.avgFrameRate=e.readUint16(),r=e.readUint8(),this.constantFrameRate=r>>6,this.numTemporalLayers=(13&r)>>3,this.temporalIdNested=(4&r)>>2,this.lengthSizeMinusOne=3&r,this.nalu_arrays=[];for(var t,r,i=e.readUint8(),n=0;n>7,s.nalu_type=63&r,e.readUint16()),o=0;o>4&15,this.length_size=15&t,t=e.readUint8(),this.base_offset_size=t>>4&15,1===this.version||2===this.version?this.index_size=15&t:this.index_size=0,this.items=[],0);if(this.version<2)r=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";r=e.readUint32()}for(var i=0;i>7,this.axis=1&e}),b.createFullBoxCtor("infe",function(e){if(0!==this.version&&1!==this.version||(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),1===this.version)return this.extension_type=e.readString(4),f.warn("BoxParser","Cannot parse extension type"),void e.seek(this.start+this.size);2<=this.version&&(2===this.version?this.item_ID=e.readUint16():3===this.version&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),"mime"===this.item_type?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):"uri "===this.item_type&&(this.item_uri_type=e.readCString()))}),b.createFullBoxCtor("ipma",function(e){var t,r;for(entry_count=e.readUint32(),this.associations=[],t=0;t>7==1,1&this.flags?a.property_index=(127&s)<<8|e.readUint8():a.property_index=127&s}}}),b.createFullBoxCtor("iref",function(e){var t;for(this.references=[];e.getPosition()>7,i.assignment_type=127&n,i.assignment_type){case 0:i.grouping_type=e.readString(4);break;case 1:i.grouping_type=e.readString(4),i.grouping_type_parameter=e.readUint32();break;case 2:case 3:break;case 4:i.sub_track_id=e.readUint32();break;default:f.warn("BoxParser","Unknown leva assignement type")}}}),b.createBoxCtor("lsel",function(e){this.layer_id=e.readUint16()}),b.createBoxCtor("maxr",function(e){this.period=e.readUint32(),this.bytes=e.readUint32()}),b.createBoxCtor("mdcv",function(e){this.display_primaries=[],this.display_primaries[0]={},this.display_primaries[0].x=e.readUint16(),this.display_primaries[0].y=e.readUint16(),this.display_primaries[1]={},this.display_primaries[1].x=e.readUint16(),this.display_primaries[1].y=e.readUint16(),this.display_primaries[2]={},this.display_primaries[2].x=e.readUint16(),this.display_primaries[2].y=e.readUint16(),this.white_point={},this.white_point.x=e.readUint16(),this.white_point.y=e.readUint16(),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),b.createFullBoxCtor("mdhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),b.createFullBoxCtor("mehd",function(e){1&this.flags&&(f.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),b.createFullBoxCtor("meta",function(e){this.boxes=[],b.ContainerBox.prototype.parse.call(this,e)}),b.createFullBoxCtor("mfhd",function(e){this.sequence_number=e.readUint32()}),b.createFullBoxCtor("mfro",function(e){this._size=e.readUint32()}),b.createFullBoxCtor("mvhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),b.createBoxCtor("npck",function(e){this.packetssent=e.readUint32()}),b.createBoxCtor("nump",function(e){this.packetssent=e.readUint64()}),b.createFullBoxCtor("padb",function(e){var t=e.readUint32();this.padbits=[];for(var r=0;r>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var r=e.readUint8(),i=0;i>7,this.num_leading_samples=127&e}),b.createSampleGroupCtor("rash",function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)f.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t>4,this.skip_byte_block=15&t,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=b.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),b.createSampleGroupCtor("stsa",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("sync",function(e){e=e.readUint8();this.NAL_unit_type=63&e}),b.createSampleGroupCtor("tele",function(e){e=e.readUint8();this.level_independently_decodable=e>>7}),b.createSampleGroupCtor("tsas",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("tscl",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("vipr",function(e){f.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createFullBoxCtor("sbgp",function(e){this.grouping_type=e.readString(4),1===this.version?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),r=0;r>6,this.sample_depends_on[i]=t>>4&3,this.sample_is_depended_on[i]=t>>2&3,this.sample_has_redundancy[i]=3&t}),b.createFullBoxCtor("senc"),b.createFullBoxCtor("sgpd",function(e){this.grouping_type=e.readString(4),f.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=e.readUint32():this.default_length=0,2<=this.version&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),r=0;r>31&1,i.referenced_size=2147483647&n,i.subsegment_duration=e.readUint32(),n=e.readUint32(),i.starts_with_SAP=n>>31&1,i.SAP_type=n>>28&7,i.SAP_delta_time=268435455&n}}),b.SingleItemTypeReferenceBox=function(e,t,r,i){b.Box.call(this,e,t),this.hdr_size=r,this.start=i},b.SingleItemTypeReferenceBox.prototype=new b.Box,b.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var r=0;r>4&15,this.sample_sizes[t+1]=15&i}else if(8===this.field_size)for(t=0;t>4&15,this.default_skip_byte_block=15&t),this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=b.parseHex16(e),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),b.createFullBoxCtor("tfdt",function(e){1==this.version?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),b.createFullBoxCtor("tfhd",function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_FLAGS?this.default_sample_flags=e.readUint32():this.default_sample_flags=0}),b.createFullBoxCtor("tfra",function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=3&t,this.entries=[];for(var r=e.readUint32(),i=0;i>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),b.createBoxCtor("tmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("tmin",function(e){this.time=e.readUint32()}),b.createBoxCtor("totl",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpay",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpyl",function(e){this.bytessent=e.readUint64()}),b.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},b.createTrackGroupCtor("msrc"),b.TrackReferenceTypeBox=function(e,t,r,i){b.Box.call(this,e,t),this.hdr_size=r,this.start=i},b.TrackReferenceTypeBox.prototype=new b.Box,b.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},b.trefBox.prototype.parse=function(e){for(var t;e.getPosition()(t+=4)&&this.flags&b.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var r=0;r/g,">").replace(/"/g,""").replace(/'/g,"'")}),b.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(e){this.system_id=b.parseHex16(e);var t=e.readUint32();0>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=1&t,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8()):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=15&t,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=1&t),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)}),b.createBoxCtor("vttC",function(e){this.text=e.readString(this.size-this.hdr_size)}),b.createFullBoxCtor("vvcC",function(e){var t,r={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<>=1;e=e+b.decimalToHex(r,0)+".",0===this.hvcC.general_tier_flag?e+="L":e+="H",e+=this.hvcC.general_level_idc;var n=!1,s="";for(i=5;0<=i;i--)(this.hvcC.general_constraint_indicator[i]||n)&&(s="."+b.decimalToHex(this.hvcC.general_constraint_indicator[i],0)+s,n=!0);e+=s}return e},b.vvc1SampleEntry.prototype.getCodec=b.vvi1SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){e+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?e+=".H":e+=".L",e+=this.vvcC.general_level_idc;var t="";if(this.vvcC.general_constraint_info){var r,i=[],n=0,n=(n|=this.vvcC.ptl_frame_only_constraint<<7)|this.vvcC.ptl_multilayer_enabled<<6;for(l=0;l>2&63,i.push(n),n&&(r=l),n=this.vvcC.general_constraint_info[l]>>2&3;if(void 0===r)t=".CA";else{for(var t=".C",s="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",a=0,o=0,l=0;l<=r;++l)for(a=a<<8|i[l],o+=8;5<=o;)t+=s[a>>o-5&31],a&=(1<<(o-=5))-1;o&&(t+=s[31&(a<<=5-o)])}}e+=t}return e},b.mp4aSampleEntry.prototype.getCodec=function(){var e,t,r=b.SampleEntry.prototype.getCodec.call(this);return this.esds&&this.esds.esd?(e=this.esds.esd.getOTI(),t=this.esds.esd.getAudioConfig(),r+"."+b.decimalToHex(e)+(t?"."+t:"")):r},b.stxtSampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},b.vp08SampleEntry.prototype.getCodec=b.vp09SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level,r=this.vpcC.bitDepth;return e+".0"+this.vpcC.profile+"."+(t=0==t?"00":t)+"."+(r=8==r?"08":r)},b.av01SampleEntry.prototype.getCodec=function(){var e,t=b.SampleEntry.prototype.getCodec.call(this),r=this.av1C.seq_level_idx_0;return 2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?e=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(e=1===this.av1C.high_bitdepth?"10":"08"),t+"."+this.av1C.seq_profile+"."+(r=r<10?"0"+r:r)+(this.av1C.seq_tier_0?"H":"M")+"."+e},b.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),f.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>d?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),"uuid"===this.type&&e.writeUint8Array(this.uuid),this.size>d&&e.writeUint64(this.size)},b.FullBox.prototype.writeHeader=function(e){this.size+=4,b.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},b.Box.prototype.write=function(e){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},b.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;tt?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(e),1===this.version?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},b.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},b.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},b.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},b.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&b.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&b.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&b.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&b.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t=i.samples.length)&&(f.info("ISOFile","Sending fragmented data on track #"+r.id+" for samples ["+Math.max(0,i.nextSample-r.nb_samples)+","+(i.nextSample-1)+"]"),f.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(r.id,r.user,r.segmentStream.buffer,i.nextSample,e||i.nextSample>=i.samples.length),r.segmentStream=null,r!==this.fragmentedTracks[t]))break}if(null!==this.onSamples)for(t=0;t=i.samples.length)&&(f.debug("ISOFile","Sending samples on track #"+s.id+" for sample "+i.nextSample),this.onSamples&&this.onSamples(s.id,s.user,s.samples),s.samples=[],s!==this.extractedTracks[t]))break}}}},B.prototype.getBox=function(e){e=this.getBoxes(e,!0);return e.length?e[0]:null},B.prototype.getBoxes=function(e,t){var r=[];return B._sweep.call(this,e,r,t),r},B._sweep=function(e,t,r){for(var i in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&r)return;B._sweep.call(this.boxes[i],e,t,r)}},B.prototype.getTrackSamplesInfo=function(e){e=this.getTrackById(e);return e?e.samples:void 0},B.prototype.getTrackSample=function(e,t){e=this.getTrackById(e);return this.getSample(e,t)},B.prototype.releaseUsedSamples=function(e,t){var r=0,i=this.getTrackById(e);i.lastValidSample||(i.lastValidSample=0);for(var n=i.lastValidSample;ne*n.timescale){l=i-1;break}t&&n.is_sync&&(o=i)}for(t&&(l=o),e=r.samples[l].cts,r.nextSample=l;r.samples[l].alreadyRead===r.samples[l].size&&r.samples[l+1];)l++;return s=r.samples[l].offset+r.samples[l].alreadyRead,f.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+r.nextSample+" on track "+r.tkhd.track_id+", time "+f.getDurationString(e,a)+" and offset: "+s),{offset:s,time:e/a}},B.prototype.seek=function(e,t){var r,i,n=this.moov,s={offset:1/0,time:1/0};if(this.moov){for(i=0;i=i[n].last_sample_in_run&&(i[n].last_sample_in_run<0&&(i[n].last_sample_in_run=0),i[n].entry_index++,i[n].entry_index<=i[n].sbgp.entries.length-1&&(i[n].last_sample_in_run+=i[n].sbgp.entries[i[n].entry_index].sample_count)),i[n].entry_index<=i[n].sbgp.entries.length-1?t.sample_groups[n].group_description_index=i[n].sbgp.entries[i[n].entry_index].group_description_index:t.sample_groups[n].group_description_index=-1,0!==t.sample_groups[n].group_description_index&&(a=i[n].fragment_description||i[n].description,0>16)-1:t.sample_groups[n].group_description_index-1,a&&0<=s&&(t.sample_groups[n].description=a.entries[s])):a&&2<=a.version&&0>16&1),u.is_leading=c>>26&3,u.depends_on=c>>24&3,u.is_depended_on=c>>22&3,u.has_redundancy=c>>20&3,u.degradation_priority=65535&c;var c=!!(l.tfhd.flags&b.TFHD_FLAG_BASE_DATA_OFFSET),m=!!(l.tfhd.flags&b.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),_=!!(f.flags&b.TRUN_FLAGS_DATA_OFFSET),c=c?l.tfhd.base_data_offset:m||0===y?o.start:s;u.offset=0===y&&0===p?_?c+f.data_offset:c:s,s=u.offset+u.size,(0d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},b.FullBox.prototype.printHeader=function(e){this.size+=4,b.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},b.Box.prototype.print=function(e){this.printHeader(e)},b.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t,r=0;r>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},b.tkhdBox.prototype.print=function(e){b.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var h=function(e,t){e=void 0===e||e,t=new B(t);return t.discardMdatData=!e,t};t.createFile=h});function Ye(l){function n(){t&&(t.abort(),t=null)}let i=[],d=[],s={},t=new AbortController,r=null,a=null,e=null,o=null,h=null,u=null,f=!1,p=!1,c=!1,m=!1,_=null,g=null,y=null,b=[],v=0,w=0,E=null,S=null,U=0,x=0,B=!1,A=!1,T=()=>{var e=function(){{var r=Q;let t="";if("object"==typeof r)try{t=JSON.stringify(r),t=JSON.parse(t)}catch(e){t=r}else t=r;return t}}();return{debug:e.debug,debugLevel:e.debugLevel,debugUuid:e.debugUuid,useOffscreen:e.useOffscreen,useWCS:e.useWCS,videoBuffer:e.videoBuffer,videoBufferDelay:e.videoBufferDelay,openWebglAlignment:e.openWebglAlignment,playType:e.playType,hasAudio:e.hasAudio,hasVideo:e.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:e.playbackForwardMaxRateDecodeIFrame,playbackIsCacheBeforeDecodeForFpsRender:e.playbackConfig.isCacheBeforeDecodeForFpsRender,sampleRate:0,networkDelay:e.networkDelay,visibility:!0,useSIMD:e.useSIMD,isRecording:!1,recordType:e.recordType,isNakedFlow:e.isNakedFlow,checkFirstIFrame:e.checkFirstIFrame,audioBufferSize:1024,isCrypto:e.isCrypto,cryptoKey:e.cryptoKey,cryptoIV:e.cryptoIV,isHls265:!1,isFlv:e.isFlv,isFmp4:e.isFmp4,isMpeg4:e.isMpeg4}},k=("VideoEncoder"in self&&(s={hasInit:!1,isEmitInfo:!1,offscreenCanvas:null,offscreenCanvasCtx:null,decoder:new VideoDecoder({output:function(t){var e;s.isEmitInfo||(I.debug.log("worker","Webcodecs Video Decoder initSize"),postMessage({cmd:ee,w:t.codedWidth,h:t.codedHeight}),s.isEmitInfo=!0,s.offscreenCanvas=new OffscreenCanvas(t.codedWidth,t.codedHeight),s.offscreenCanvasCtx=s.offscreenCanvas.getContext("2d")),"function"==typeof t.createImageBitmap?t.createImageBitmap().then(e=>{s.offscreenCanvasCtx.drawImage(e,0,0,t.codedWidth,t.codedHeight);e=s.offscreenCanvas.transferToImageBitmap();postMessage({cmd:R,buffer:e,delay:I.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100)}):(s.offscreenCanvasCtx.drawImage(t,0,0,t.codedWidth,t.codedHeight),e=s.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:R,buffer:e,delay:I.delay,ts:0},[e]),setTimeout(function(){t.close?t.close():t.destroy()},100))},error:function(e){I.debug.error("worker","VideoDecoder error",e)}}),decode:function(e,t,r){var i=e[0]>>4==1;if(s.hasInit){const r=new EncodedVideoChunk({data:e.slice(5),timestamp:t,type:i?"key":"delta"});s.decoder.decode(r)}else if(i&&0===e[1]){const t=15&e[0],r=(postMessage({cmd:re,code:t}),function(e){let r=e.subarray(1,4),i="avc1.";for(let t=0;t<3;t++){let e=r[t].toString(16);e.length<2&&(e="0"+e),i+=e}return{codec:i,description:e}}(e.slice(5)));postMessage({cmd:ie,buffer:e,codecId:t},[e.buffer]),s.decoder.configure(r),s.hasInit=!0}},reset(){s.hasInit=!1,s.isEmitInfo=!1,s.offscreenCanvas=null,s.offscreenCanvasCtx=null}}),{init(){k.lastBuf=null,k.vps=null,k.sps=null,k.pps=null,k.streamType=null,k.localDts=0,k.isSendSeqHeader=!1},destroy(){k.lastBuf=null,k.vps=null,k.sps=null,k.pps=null,k.streamType=null,k.localDts=0,k.isSendSeqHeader=!1},dispatch(e){e=new Uint8Array(e);k.extractNALu$2(e)},getNaluDts(){var e=k.localDts;return k.localDts=k.localDts+40,e},getNaluAudioDts(){var e=I._opt.sampleRate,t=I._opt.audioBufferSize;return k.localDts+parseInt(t/e*1e3)},extractNALu(e){let t,r,i=0,n=e.byteLength,s=0,a=[];for(;i>1)!==$&&r!==he&&r!==j||(t=de)),t}(e)),k.streamType===le){const t=k.handleAddNaluStartCode(e),r=k.extractNALu(t);if(0===r.length)I.debug.warn("worker","handleVideoNalu","naluList.length === 0");else{const i=[];if(r.forEach(e=>{var t=X(e);t===V||t===H?k.handleVideoH264Nalu(e):xe(t)&&i.push(e)}),1===i.length)k.handleVideoH264Nalu(i[0]);else{const e=function(t){if(0===t.length)return!1;var r=X(t[0]);for(let e=1;e{k.handleVideoH264Nalu(e)})}}}else k.streamType===de&&(ke(e)===j?k.extractH265PPS(e):k.handleVideoH265Nalu(e))},extractH264PPS(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{Ue(X(e))?k.extractH264SEI(e):k.handleVideoH264Nalu(e)})},extractH265PPS(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{39===ke(e)?k.extractH265SEI(e):k.handleVideoH265Nalu(e)})},extractH264SEI(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{k.handleVideoH264Nalu(e)})},extractH265SEI(e){e=k.handleAddNaluStartCode(e);k.extractNALu(e).forEach(e=>{k.handleVideoH265Nalu(e)})},handleAddNaluStartCode(e){const t=[0,0,0,1],r=new Uint8Array(e.length+t.length);return r.set(t),r.set(e,t.length),r},handleVideoH264Nalu(e){var i,t,r,n=X(e);switch(n){case H:k.sps=e;break;case V:k.pps=e}if(k.isSendSeqHeader)xe(n)?(i=Be(n),t=k.getNaluDts(),i&&I.calcIframeIntervalTimestamp(t),I.calcNetworkDelay(t),r=function(e){let t=[];t[0]=i?23:39,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e),I.decode(r,{type:2,ts:t,isIFrame:i,cts:0})):I.debug.warn("work","handleVideoH264Nalu Avc Seq Head is "+n);else if(k.sps&&k.pps){k.isSendSeqHeader=!0;const e=function(){var{sps:e,pps:t}={sps:k.sps,pps:k.pps};const r=[23,0,0,0,0,1,66,0,30,255];return r[0]=23,r[6]=e[1],r[7]=e[2],r[8]=e[3],r[10]=225,r[11]=e.byteLength>>8&255,r[12]=255&e.byteLength,r.push(...e,1,t.byteLength>>8&255,255&t.byteLength,...t),new Uint8Array(r)}();I.decode(e,{type:2,ts:0,isIFrame:!0,cts:0})}},handleVideoH264NaluList(e,t,r){var i,n;k.isSendSeqHeader?(i=k.getNaluDts(),I.calcNetworkDelay(i),n=Ee(e.reduce((e,t)=>{const r=Se(e),i=Se(t),n=new Uint8Array(r.byteLength+i.byteLength);return n.set(r,0),n.set(i,r.byteLength),n}),t),I.decode(n,{type:2,ts:i,isIFrame:t,cts:0}),I.debug.log("worker",`handleVideoH264NaluList list size is ${e.length} package length is ${n.byteLength} isIFrame is ${t},nalu type is ${r}, dts is `+i)):I.debug.warn("worker","handleVideoH264NaluList isSendSeqHeader is false")},handleVideoH265Nalu(e){var i,t,r=ke(e);switch(r){case $:k.vps=e;break;case he:k.sps=e;break;case j:k.pps=e}if(k.isSendSeqHeader)32<=r&&r<=40?I.debug.warn("work","handleVideoH265Nalu HevcSeqHead is "+r):(i=16<=r&&r<=21,r=k.getNaluDts(),I.calcNetworkDelay(r),t=function(e){let t=[];t[0]=i?28:44,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const r=new Uint8Array(t.length+e.byteLength);return r.set(t,0),r.set(e,t.length),r}(e),i&&I.calcIframeIntervalTimestamp(r),I.decode(t,{type:2,ts:r,isIFrame:i,cts:0}));else if(k.vps&&k.sps&&k.pps){k.isSendSeqHeader=!0;const e=function(e){var{vps:e,pps:t,sps:r}=e,i={configurationVersion:1},n=(e=>{let t=Ae(e),r=new q(t);return r.readByte(),r.readByte(),r.readBits(4),r.readBits(2),r.readBits(6),{num_temporal_layers:r.readBits(3)+1,temporal_id_nested:r.readBool()}})(e),s=(e=>{let t=Ae(e),s=new q(t),r=(s.readByte(),s.readByte(),0),i=0,n=0,a=0;s.readBits(4);var o=s.readBits(3);s.readBool();let l=s.readBits(2),d=s.readBool(),h=s.readBits(5),u=s.readByte(),f=s.readByte(),p=s.readByte(),c=s.readByte(),m=s.readByte(),_=s.readByte(),g=s.readByte(),z=s.readByte(),R=s.readByte(),M=s.readByte(),y=s.readByte(),b=[],N=[];for(let e=0;e{let t=Ae(e),r=new q(t),i=(r.readByte(),r.readByte(),r.readUEG(),r.readUEG(),r.readBool(),r.readBool(),r.readBits(3),r.readBool(),r.readBool(),r.readUEG(),r.readUEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool()&&r.readUEG(),r.readSEG(),r.readSEG(),r.readBool(),r.readBool(),r.readBool(),r.readBool(),r.readBool()),n=r.readBool(),s=1;return n&&i?s=0:n?s=3:i&&(s=2),{parallelismType:s}})(t),i=Object.assign(i,n,s,a);let o=23+(5+e.byteLength)+(5+r.byteLength)+(5+t.byteLength),l=new Uint8Array(o);l[0]=1,l[1]=(3&i.general_profile_space)<<6|(i.general_tier_flag?1:0)<<5|31&i.general_profile_idc,l[2]=i.general_profile_compatibility_flags_1||0,l[3]=i.general_profile_compatibility_flags_2||0,l[4]=i.general_profile_compatibility_flags_3||0,l[5]=i.general_profile_compatibility_flags_4||0,l[6]=i.general_constraint_indicator_flags_1||0,l[7]=i.general_constraint_indicator_flags_2||0,l[8]=i.general_constraint_indicator_flags_3||0,l[9]=i.general_constraint_indicator_flags_4||0,l[10]=i.general_constraint_indicator_flags_5||0,l[11]=i.general_constraint_indicator_flags_6||0,l[12]=60,l[13]=240|(3840&i.min_spatial_segmentation_idc)>>8,l[14]=255&i.min_spatial_segmentation_idc,l[15]=252|3&i.parallelismType,l[16]=252|3&i.chroma_format_idc,l[17]=248|7&i.bit_depth_luma_minus8,l[18]=248|7&i.bit_depth_chroma_minus8,l[19]=0,l[20]=0,l[21]=(3&i.constant_frame_rate)<<6|(7&i.num_temporal_layers)<<3|(i.temporal_id_nested?1:0)<<2|3,l[22]=3,l[23]=128|$,l[24]=0,l[25]=1,l[26]=(65280&e.byteLength)>>8,l[27]=(255&e.byteLength)>>0,l.set(e,28),l[23+(5+e.byteLength)+0]=128|he,l[23+(5+e.byteLength)+1]=0,l[23+(5+e.byteLength)+2]=1,l[23+(5+e.byteLength)+3]=(65280&r.byteLength)>>8,l[23+(5+e.byteLength)+4]=(255&r.byteLength)>>0,l.set(r,23+(5+e.byteLength)+5),l[23+(5+e.byteLength+5+r.byteLength)+0]=128|j,l[23+(5+e.byteLength+5+r.byteLength)+1]=0,l[23+(5+e.byteLength+5+r.byteLength)+2]=1,l[23+(5+e.byteLength+5+r.byteLength)+3]=(65280&t.byteLength)>>8,l[23+(5+e.byteLength+5+r.byteLength)+4]=(255&t.byteLength)>>0,l.set(t,23+(5+e.byteLength+5+r.byteLength)+5);const d=[28,0,0,0,0],h=new Uint8Array(d.length+l.byteLength);return h.set(d,0),h.set(l,d.length),h}({vps:k.vps,sps:k.sps,pps:k.pps});I.decode(e,{type:2,ts:0,isIFrame:!0,cts:0})}}}),C={LOG_NAME:"worker fmp4Demuxer",mp4Box:K.createFile(),offset:0,videoTrackId:null,audioTrackId:null,isHevc:!1,listenMp4Box(){C.mp4Box.onReady=C.onReady,C.mp4Box.onError=C.onError,C.mp4Box.onSamples=C.onSamples},_getSeqHeader(t){const r=C.mp4Box.getTrackById(t.id);for(const t of r.mdia.minf.stbl.stsd.entries)if(t.avcC||t.hvcC){const r=new K.DataStream(void 0,0,K.DataStream.BIG_ENDIAN);let e=[];e=t.avcC?(t.avcC.write(r),[23,0,0,0,0]):(C.isHevc=!0,t.hvcC.write(r),[28,0,0,0,0]);const i=new Uint8Array(r.buffer,8),n=new Uint8Array(e.length+i.length);return n.set(e,0),n.set(i,e.length),n}return null},onReady(i){I.debug.log(C.LOG_NAME,"onReady()",i);const n=i.videoTracks[0],e=i.audioTracks[0];if(n){C.videoTrackId=n.id;const i=C._getSeqHeader(n);i&&(I.debug.log(C.LOG_NAME,"seqHeader"),I.decodeVideo(i,0,!0,0)),C.mp4Box.setExtractionOptions(n.id)}if(e){C.audioTrackId=e.id;const i=e.audio||{},n=ce.indexOf(i.sample_rate),s=e.codec.replace("mp4a.40.","");C.mp4Box.setExtractionOptions(e.id);var t=function(){var{profile:e,sampleRate:t,channel:r}={profile:parseInt(s,10),sampleRate:n,channel:i.channel_count};return new Uint8Array([175,0,e<<3|(14&t)>>1,(1&t)<<7|r<<3])}();I.debug.log(C.LOG_NAME,"aacADTSHeader"),I.decodeAudio(t,0)}C.mp4Box.start()},onError(e){I.debug.error(C.LOG_NAME,"mp4Box onError",e)},onSamples(e,t,r){if(e===C.videoTrackId)for(const e of r){const t=e.data,r=e.is_sync,n=1e3*e.cts/e.timescale;e.duration,e.timescale,r&&I.calcIframeIntervalTimestamp(n);var i=(C.isHevc?function(e,t){let r=[];r[0]=t?28:44,r[1]=1,r[2]=0,r[3]=0,r[4]=0;const i=new Uint8Array(r.length+e.byteLength);return i.set(r,0),i.set(e,r.length),i}:Ee)(t,r);I.decode(i,{type:2,ts:n,isIFrame:r,cts:0})}else if(e===C.audioTrackId)for(const e of r){const t=e.data,r=1e3*e.cts/e.timescale,s=(e.duration,e.timescale,new Uint8Array(t.byteLength+2));s.set([175,1],0),s.set(t,2),I.decode(s,{type:1,ts:r,isIFrame:!1,cts:0})}else I.debug.warn(C.LOG_NAME,"onSamples() trackId error",e)},dispatch(e){let t=e;"string"!=typeof e?"object"==typeof e?(t.buffer.fileStart=C.offset,C.offset+=t.byteLength,C.mp4Box.appendBuffer(t.buffer)):I.debug.warn(C.LOG_NAME,"dispatch()","data is not object",e):I.debug.warn(C.LOG_NAME,"dispatch()","data is string",e)},destroy(){C.mp4Box&&(C.mp4Box.flush(),C.mp4Box=null),C.offset=0,C.videoTrackId=null,C.audioTrackId=null,C.isHevc=!1}},F={LOG_NAME:"worker mpeg4Demuxer",lastBuffer:new Uint8Array(0),parsedOffset:0,firstStartCodeOffset:0,secondStartCodeOffset:0,state:"init",hasInitVideoCodec:!1,localDts:0,dispatch(e){e=new Uint8Array(e);F.extractNALu(e)},destroy(){F.lastBuffer=new Uint8Array(0),F.parsedOffset=0,F.firstStartCodeOffset=0,F.secondStartCodeOffset=0,F.state="init",F.hasInitVideoCodec=!1,F.localDts=0},extractNALu(e){if(!e||e.byteLength<1)I.debug.warn(F.LOG_NAME,"extractNALu() buffer error",e);else{const t=new Uint8Array(F.lastBuffer.length+e.length);for(t.set(F.lastBuffer,0),t.set(new Uint8Array(e),F.lastBuffer.length),F.lastBuffer=t;;){if("init"===F.state){let e=!1;for(;4<=F.lastBuffer.length-F.parsedOffset;)if(0===F.lastBuffer[F.parsedOffset])if(0===F.lastBuffer[F.parsedOffset+1])if(1===F.lastBuffer[F.parsedOffset+2]){if(182===F.lastBuffer[F.parsedOffset+3]){F.state="findFirstStartCode",F.firstStartCodeOffset=F.parsedOffset,F.parsedOffset+=4,e=!0;break}F.parsedOffset++}else F.parsedOffset++;else F.parsedOffset++;else F.parsedOffset++;if(e)continue;break}if("findFirstStartCode"===F.state){let e=!1;for(;4<=F.lastBuffer.length-F.parsedOffset;)if(0===F.lastBuffer[F.parsedOffset])if(0===F.lastBuffer[F.parsedOffset+1])if(1===F.lastBuffer[F.parsedOffset+2]){if(182===F.lastBuffer[F.parsedOffset+3]){F.state="findSecondStartCode",F.secondStartCodeOffset=F.parsedOffset,F.parsedOffset+=4,e=!0;break}F.parsedOffset++}else F.parsedOffset++;else F.parsedOffset++;else F.parsedOffset++;if(e)continue;break}if("findSecondStartCode"===F.state){if(!(0{a&&a(0);var e=JSON.stringify({demuxBufferDelay:I.getVideoBufferLength(),audioDemuxBufferDelay:I.getAudioBufferLength(),flvBufferByteLength:I.getFlvBufferLength(),netBuf:I.networkDelay||0,pushLatestDelay:I.pushLatestDelay||0,isDropping:ye(I.dropping)||ye(I.isPushDropping),isStreamTsMoreThanLocal:m});postMessage({cmd:M,type:"streamStats",value:e})},1e3)},stopStreamRateAndStatsInterval:function(){e&&(clearInterval(e),e=null)},useOffscreen:function(){return I._opt.useOffscreen&&"undefined"!=typeof OffscreenCanvas},getDelay:function(e){return!e||I._opt.hasVideo&&!c?-1:(I.preDelayTimestamp&&I.preDelayTimestamp>e?1e3 timestamp is ${e} more than ${I.preDelayTimestamp-e}ms`):I.firstTimestamp?e&&(t=Date.now()-I.startTimestamp,(r=e-I.firstTimestamp)<=t?(m=!1,I.delay=t-r):(m=!0,I.delay=r-t)):(I.firstTimestamp=e,I.startTimestamp=Date.now(),I.delay=-1),I.preDelayTimestamp=e,I.delay);var t,r},getDelayNotUpdateDelay:function(t){if(!t||I._opt.hasVideo&&!c)return-1;if(I.preDelayTimestamp&&1e3 timestamp is ${t} more than ${I.preDelayTimestamp-t}ms`),-1;if(I.firstTimestamp){let e=-1;var r;return t&&(r=Date.now()-I.startTimestamp,t=t-I.firstTimestamp,e=t<=r?(m=!1,r-t):(m=!0,t-r)),e}return-1},resetDelay:function(){I.firstTimestamp=null,I.startTimestamp=null,I.delay=-1},resetAllDelay:function(){I.resetDelay(),I.preDelayTimestamp=null},doDecode:function(e){I._opt.useWCS&&I.useOffscreen()&&2===e.type&&s.decode?s.decode(e.payload,e.ts,e.cts):e.decoder.decode(e.payload,e.ts,e.isIFrame,e.cts)},init:function(){I.debug.log("worker","init and opt is",I._opt);const t=I._opt.playType===L,r="playbackTF"===I._opt.playType;if(k.init(),I.isPlayer=t,I.isPlayback=r,I.isPlaybackCacheBeforeDecodeForFpsRender())I.debug.log("worker","playback and playbackIsCacheBeforeDecodeForFpsRender is true");else{const r=()=>{let e=null;if(i.length)if(I.isPushDropping)I.debug.warn("worker","loop() isPushDropping is true and bufferList length is "+i.length);else if(I.dropping){for(e=i.shift(),I.debug.warn("worker",`loop() dropBuffer is dropping and isIFrame ${e.isIFrame} and delay is ${I.delay} and bufferlist is `+i.length);!e.isIFrame&&i.length;)e=i.shift();const t=I.getDelayNotUpdateDelay(e.ts);e.isIFrame&&t<=I.getNotDroppingDelayTs()&&(I.debug.log("worker","loop() is dropping = false, is iFrame"),I.dropping=!1,I.doDecode(e))}else if(e=i[0],-1===I.getDelay(e.ts)||I.isPlayback)I.isPlayer&&I.debug.log("worker","loop() common dumex delay is -1 ,data.ts is",e.ts),i.shift(),I.doDecode(e);else if(I.delay>I._opt.videoBuffer+I._opt.videoBufferDelay&&t)I.hasIframeInBufferList()?(I.debug.log("worker",`delay is ${I.delay}, set dropping is true`),I.resetAllDelay(),I.dropping=!0):(i.shift(),I.doDecode(e));else for(;i.length;){if(e=i[0],!(I.getDelay(e.ts)>I._opt.videoBuffer)){I.delay<0&&I.debug.warn("worker",`loop() do not decode and delay is ${I.delay}, bufferList is `+i.length);break}i.shift(),I.doDecode(e)}else-1!==I.delay&&I.debug.log("worker","loop() bufferList is empty and reset delay"),I.resetAllDelay()};I.stopId=setInterval(()=>{var e=(new Date).getTime(),e=e-(_=_||e);100{var e;i.length&&(e=i.shift(),I.doDecode(e))},t=(e(),Math.ceil(1e3/(I.streamFps*I._opt.playbackRate)));I.debug.log("worker",`playbackCacheLoop fragDuration is ${t}, streamFps is ${I.streamFps}, playbackRate is `+I._opt.playbackRate),I.stopId=setInterval(e,t)},close:function(){I.debug.log("worker","close"),I.isDestroyed=!0,I.stopStreamRateAndStatsInterval(),I.stopId&&(clearInterval(I.stopId),I.stopId=null),P&&(P.clear&&P.clear(),P=null),D&&(D.clear&&D.clear(),D=null),a=null,_=null,m=!1,s&&(s.reset&&s.reset(),s=null),I.firstTimestamp=null,I.startTimestamp=null,I.networkDelay=0,I.streamFps=null,I.streamAudioFps=null,I.streamVideoFps=null,I.delay=-1,I.pushLatestDelay=-1,I.preDelayTimestamp=null,I.dropping=!1,I.isPushDropping=!1,I.isPlayer=!0,I.isPlayback=!1,I._opt=T(),I.webglObj&&(I.webglObj.destroy(),I.offscreenCanvas.removeEventListener("webglcontextlost",I.onOffscreenCanvasWebglContextLost),I.offscreenCanvas.removeEventListener("webglcontextrestored",I.onOffscreenCanvasWebglContextRestored),I.offscreenCanvas=null,I.offscreenCanvasGL=null,I.offscreenCanvasCtx=null),i=[],d=[],n(),o=null,r&&(r.close(1e3,"Client disconnecting"),r=null),h=null,u=null,f=!1,p=!1,c=!1,B=!1,A=!1,b=[],v=0,w=0,g=null,y=null,E=null,S=null,U=0,x=0,k.destroy(),C.destroy(),F.destroy(),postMessage({cmd:"closeEnd"})},pushBuffer:function(e,t){if(1===t.type&&pe(e))I.decodeAudio(e,t.ts);else{if(I.isPlayer&&02*U-5&&I.debug.warn("worker",`pushBuffer video + ts is ${t.ts}, preTimestamp is ${S}, + diff is ${e} and preTimestampDuration is ${U} + maybe trigger black screen or flower screen + `)}if(I.isPlayer&&0e&&I.delay{2===e.type&&(t+=1)}),t},hasIframeInBufferList:()=>i.some(e=>2===e.type&&e.isIFrame),getNotDroppingDelayTs:()=>I._opt.videoBuffer+I._opt.videoBufferDelay/2,getAudioBufferLength(){let t=0;return i.forEach(e=>{1===e.type&&(t+=1)}),t},getFlvBufferLength(){let e=0;return o&&o.buffer&&(e=o.buffer.byteLength),e=I._opt.isNakedFlow&&k.lastBuf?k.lastBuf.byteLength:e},fetchStream:function(e,i){I.debug.log("worker","fetchStream, url is "+e,"options:",JSON.stringify(i)),i.isFlv?I._opt.isFlv=!0:i.isFmp4?I._opt.isFmp4=!0:i.isMpeg4&&(I._opt.isMpeg4=!0),a=function(r){let i=0,n=_e();return e=>{var t;"[object Number]"===Object.prototype.toString.call(e)&&(i+=e,1e3<=(t=(e=_e())-n)&&(r(i/t*1e3),n=e,i=0))}}(e=>{postMessage({cmd:M,type:"streamRate",value:e})}),I.startStreamRateAndStatsInterval(),i.isFmp4&&C.listenMp4Box(),2===i.protocol?(o=new Y(I.demuxFlv()),fetch(e,{signal:t.signal}).then(e=>{if(!(e.ok&&200<=e.status&&e.status<=299))return I.debug.warn("worker",`fetch response status is ${e.status} and ok is ${e.ok} and emit error and next abort()`),n(),void postMessage({cmd:M,type:O,value:`fetch response status is ${e.status} and ok is `+e.ok});if(postMessage({cmd:M,type:oe}),"undefined"!=typeof WritableStream)e.body.pipeTo(new WritableStream({write:e=>{a(e.byteLength),i.isFlv?o.write(e):i.isFmp4?I.demuxFmp4(e):i.isMpeg4&&I.demuxMpeg4(e)},close:()=>{o=null,n(),postMessage({cmd:M,type:N,value:J})},abort:e=>{o=null,e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}))}}));else{const t=e.body.getReader(),r=()=>{t.read().then(e=>{var{done:e,value:t}=e;if(e)return o=null,n(),void postMessage({cmd:M,type:N,value:J});a(t.byteLength),i.isFlv?o.write(t):i.isFmp4?I.demuxFmp4(t):i.isMpeg4&&I.demuxMpeg4(t),r()}).catch(e=>{o=null,e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}))})};r()}}).catch(e=>{e.name!==ue&&(n(),postMessage({cmd:M,type:O,value:e.toString()}),o=null)})):1===i.protocol&&(i.isFlv&&(o=new Y(I.demuxFlv())),(r=new WebSocket(e)).binaryType="arraybuffer",r.onopen=()=>{I.debug.log("worker","fetchStream, WebsocketStream socket open"),postMessage({cmd:M,type:oe}),postMessage({cmd:M,type:"websocketOpen"})},r.onclose=e=>{I.debug.log("worker","fetchStream, WebsocketStream socket close and code is "+e.code),1006===e.code&&I.debug.warn("worker","fetchStream, WebsocketStream socket close abnormally and code is "+e.code),o=null,postMessage({cmd:M,type:N,value:"websocket"})},r.onerror=e=>{I.debug.error("worker","fetchStream, WebsocketStream socket error",e),o=null,postMessage({cmd:M,type:"websocketError",value:e.isTrusted?"websocket user aborted":"websocket error"})},r.onmessage=e=>{a(e.data.byteLength),i.isFlv?o.write(e.data):i.isFmp4?I.demuxFmp4(e.data):i.isMpeg4?I.demuxMpeg4(e.data):I._opt.isNakedFlow?I.demuxNakedFlow(e.data):I.demuxM7s(e.data)})},demuxFlv:function*(){yield 9;const r=new ArrayBuffer(4),e=new Uint8Array(r),i=new Uint32Array(r);for(;;){e[3]=0;const r=yield 15,a=r[4];e[0]=r[7],e[1]=r[6],e[2]=r[5];var t=i[0],n=(e[0]=r[10],e[1]=r[9],e[2]=r[8],e[3]=r[11],i[0]),s=(yield t).slice();switch(a){case 8:I.decode(s,{type:1,ts:n});break;case 9:if(0>4==1;I.isPlayer&&(I.calcNetworkDelay(n),r&&I.calcIframeIntervalTimestamp(n)),i[0]=s[4],i[1]=s[3],i[2]=s[2],i[3]=0;let e=i[0],t=s;I._opt.isCrypto&&(I._opt.cryptoIV&&0n)break;var a=t[s+4];if(1==(a&=31)||5==a){const n=t.slice(s+4+2,s+4+o);let e=new We.ModeOfOperation.ctr(r,new We.Counter(i));a=e.decrypt(n);e=null,t.set(a,s+4+2)}s=s+4+o}var o;return t}(s,I._opt.cryptoKey,I._opt.cryptoIV):I.debug.error("worker",`cryptoKey.length is ${I._opt.cryptoKey&&I._opt.cryptoKey.byteLength} or cryptoIV.length is ${I._opt.cryptoIV&&I._opt.cryptoIV.byteLength} null`)),I.decode(t,{type:2,ts:n,isIFrame:r,cts:e})}break;default:I.debug.log("worker","demuxFlv() type is "+a)}}},decode:function(e,t){1===t.type?I._opt.hasAudio&&(postMessage({cmd:M,type:"streamAbps",value:e.byteLength}),I.isPlayer?I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):I.isPlayback&&(I.isPlaybackCacheBeforeDecodeForFpsRender()||1===I._opt.playbackRate?I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts}):I.decodeAudio(e,t.ts))):2===t.type&&I._opt.hasVideo&&(postMessage({cmd:M,type:se,value:e.byteLength}),postMessage({cmd:M,type:ae,value:t.ts}),I.isPlayer?I.pushBuffer(e,{type:t.type,ts:t.ts,isIFrame:t.isIFrame,cts:t.cts}):I.isPlayback&&(I.isPlaybackOnlyDecodeIFrame()?t.isIFrame&&I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}):(I.isPlaybackCacheBeforeDecodeForFpsRender(),I.pushBuffer(e,{type:t.type,ts:t.ts,cts:t.cts,isIFrame:t.isIFrame}))))},setCodecAudio:function(e){var t=e[0]>>4;if(pe(e)||7==t||8==t){I.debug.log("worker","setCodecAudio: init audio codec, codeId is "+t);e=t===G?e.slice(2):e.slice(1);P.setCodec(t,I._opt.sampleRate,e),p=!0;{const e=Number("1")||1;setTimeout(()=>{I.close(),postMessage({cmd:ne})},60*e*60*1e3)}}else I.debug.warn("worker","setCodecAudio: hasInitAudioCodec is false, codecId is ",t)},decodeAudio:function(e,t){var r=e[0]>>4;p?P.decode(r===G?e.slice(2):e.slice(1),t):I.setCodecAudio(e)},setCodecVideo:function(e){var t=15&e[0];if(I.isVideoSequenceHeader(e))if(7==t||12==t){I.debug.log("worker","setCodecVideo: init video codec , codecId is "+t);var r=e.slice(5);if(7==t&&I._opt.useSIMD){const e=we(r);if(4080>4} and packetType is `+e[1])},decodeVideo:function(t,r,e,i){if(f)if(c=!c&&e?!0:c){if(e&&I.isVideoSequenceHeader(t)){const r=15&t[0];let e={};7==r?e=we(t.slice(5)):12==r&&(e=function(e){let n={width:0,height:0,profile:0,level:0};e=e.slice(5);do{let t={};if(e.length<23)break;if(t.configurationVersion=e[0],1!=t.configurationVersion)break;t.general_profile_space=e[1]>>6&3,t.general_tier_flag=e[1]>>5&1,t.general_profile_idc=31&e[1],t.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],t.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],t.general_constraint_indicator_flags=t.general_constraint_indicator_flags<<16|e[10]<<8|e[11],t.general_level_idc=e[12],t.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],t.parallelismType=3&e[15],t.chromaFormat=3&e[16],t.bitDepthLumaMinus8=7&e[17],t.bitDepthChromaMinus8=7&e[18],t.avgFrameRate=e[19]<<8|e[20],t.constantFrameRate=e[21]>>6&3,t.numTemporalLayers=e[21]>>3&7,t.temporalIdNested=e[21]>>2&1,t.lengthSizeMinusOne=3&e[21];let r=e[22],i=e.slice(23);for(let e=0;eye(e.isIFrame)&&2===e.type))?(t=(i=i.slice(e)).shift(),r=I.getDelayNotUpdateDelay(t.ts),I.doDecode(t),I.isPushDropping=!1,I.debug.log("worker",`dropBuffer$2() iFrameIndex is ${e},and bufferList length is ${i.length} and tempDelay is ${r} ,delay is ${I.delay} `)):I.isPushDropping=!1),0===i.length&&(I.isPushDropping=!1)},demuxM7s:function(e){const t=new DataView(e),r=t.getUint32(1,!1);switch(t.getUint8(0)){case 1:I.decode(new Uint8Array(e,5),{type:1,ts:r});break;case 2:var i;5>4==1,I.isPlayer&&(I.calcNetworkDelay(r),i&&I.calcIframeIntervalTimestamp(r)),I.decode(new Uint8Array(e,5),{type:2,ts:r,isIFrame:i}))}},demuxNakedFlow:function(e){k.dispatch(e)},demuxFmp4:function(e){e=new Uint8Array(e);C.dispatch(e)},demuxMpeg4:function(e){F.dispatch(e)},calcNetworkDelay:function(e){var t,r,i;c&&0I._opt.networkDelay&&I._opt.playType===L&&(I.debug.warn("worker",`calcNetworkDelay now dts:${e}, start dts is ${g} vs start is ${t},local diff is ${r} ,delay is `+i),postMessage({cmd:M,type:"networkDelayTimeout",value:i})))},calcIframeIntervalTimestamp:function(e){null===E?E=e:E=I._opt.playbackForwardMaxRateDecodeIFrame},playbackUpdatePlaybackRate:function(){I.clearBuffer(!0)},isVideoSequenceHeader:function(e){return e[0]>>4==1&&e[1]===fe},onOffscreenCanvasWebglContextLost:function(e){I.debug.error("worker","handleOffscreenCanvasWebglContextLost and next try to create webgl"),e.preventDefault(),B=!0,I.webglObj.destroy(),I.webglObj=null,I.offscreenCanvasGL=null,setTimeout(()=>{I.offscreenCanvasGL=I.offscreenCanvas.getContext("webgl"),I.offscreenCanvasGL&&I.offscreenCanvasGL.getContextAttributes().stencil?(I.webglObj=Z(I.offscreenCanvasGL,I._opt.openWebglAlignment),B=!1):I.debug.error("worker","handleOffscreenCanvasWebglContextLost, stencil is false")},500)},onOffscreenCanvasWebglContextRestored:function(e){I.debug.log("worker","handleOffscreenCanvasWebglContextRestored"),e.preventDefault()},videoInfo:function(e,t,r){postMessage({cmd:re,code:e}),postMessage({cmd:ee,w:t,h:r}),h=t,u=r,I.useOffscreen()&&(I.offscreenCanvas=new OffscreenCanvas(t,r),I.offscreenCanvasGL=I.offscreenCanvas.getContext("webgl"),I.webglObj=Z(I.offscreenCanvasGL,I._opt.openWebglAlignment),I.offscreenCanvas.addEventListener("webglcontextlost",I.onOffscreenCanvasWebglContextLost,!1),I.offscreenCanvas.addEventListener("webglcontextrestored",I.onOffscreenCanvasWebglContextRestored,!1))},audioInfo:function(e,t,r){postMessage({cmd:"audioCode",code:e}),postMessage({cmd:"initAudio",sampleRate:t,channels:r}),w=r},yuvData:function(e,t){if(I.isDestroyed)I.debug.log("worker","yuvData, decoder is destroyed and return");else{var r,i=h*u*3/2,e=l.HEAPU8.subarray(e,e+i),i=new Uint8Array(e);if(I.useOffscreen())try{B||(I.webglObj.renderYUV(h,u,i),r=I.offscreenCanvas.transferToImageBitmap(),postMessage({cmd:R,buffer:r,delay:I.delay,ts:t},[r]))}catch(e){I.debug.error("worker","yuvData, transferToImageBitmap error is",e)}else postMessage({cmd:R,output:i,delay:I.delay,ts:t},[i.buffer])}},pcmData:function(n,s,a){if(I.isDestroyed)I.debug.log("worker","pcmData, decoder is destroyed and return");else{let t=s,r=[],e=0,i=I._opt.audioBufferSize;for(let e=0;e<2;e++){var o=l.HEAPU32[(n>>2)+e]>>2;r[e]=l.HEAPF32.subarray(o,o+t)}if(v){if(!(t>=(s=i-v)))return v+=t,d[0]=Float32Array.of(...d[0],...r[0]),void(2==w&&(d[1]=Float32Array.of(...d[1],...r[1])));b[0]=Float32Array.of(...d[0],...r[0].subarray(0,s)),2==w&&(b[1]=Float32Array.of(...d[1],...r[1].subarray(0,s))),postMessage({cmd:te,buffer:b,ts:a},b.map(e=>e.buffer)),e=s,t-=s}for(v=t;v>=i;v-=i)b[0]=r[0].slice(e,e+=i),2==w&&(b[1]=r[1].slice(e-i,e)),postMessage({cmd:te,buffer:b,ts:a},b.map(e=>e.buffer));v&&(d[0]=r[0].slice(e),2==w&&(d[1]=r[1].slice(e)))}},sendWebsocketMessage:function(e){r?1===r.readyState?r.send(e):I.debug.error("worker","socket is not open"):I.debug.error("worker","socket is null")},timeEnd:function(){I.debug.error("worker","jessibuca pro 体验结束,请刷新页面再次体验,如需要购买商业授权,可以联系微信:bosswancheng"),I.close(),postMessage({cmd:ne})},postStreamToMain(e,t){postMessage({cmd:"tempStream",type:t,buffer:e},[e.buffer])}},P=(I.debug=new be(I),null),D=(l.AudioDecoder&&(P=new l.AudioDecoder(I)),null);l.VideoDecoder&&(D=new l.VideoDecoder(I)),postMessage({cmd:"init"}),self.onmessage=function(e){var t=e.data;switch(t.cmd){case"init":try{I._opt=Object.assign(I._opt,JSON.parse(t.opt))}catch(e){}I.init();break;case"decode":I.pushBuffer(t.buffer,t.options);break;case"audioDecode":I.decodeAudio(t.buffer,t.ts);break;case"videoDecode":I.decodeVideo(t.buffer,t.ts,t.isIFrame);break;case"clearBuffer":I.clearBuffer(t.needClear);break;case"fetchStream":I.fetchStream(t.url,JSON.parse(t.opt));break;case"close":I.close();break;case"updateConfig":I.debug.log("worker","updateConfig",t.key,t.value),I._opt[t.key]=t.value,"playbackRate"===t.key&&(I.playbackUpdatePlaybackRate(),I.isPlaybackCacheBeforeDecodeForFpsRender()&&I.playbackCacheLoop());break;case"sendWsMessage":I.sendWebsocketMessage(t.message)}}}K.Log,K.MP4BoxStream,K.DataStream,K.MultiBufferStream,K.MPEG4DescriptorParser,K.BoxParser,K.XMLSubtitlein4Parser,K.Textin4Parser,K.ISOFile,K.createFile,Date.now||(Date.now=function(){return(new Date).getTime()}),y.postRun=function(){Ye(y)}}); diff --git a/ui/decoder-pro.wasm b/ui/decoder-pro.wasm index 5786486..eeb02ee 100755 Binary files a/ui/decoder-pro.wasm and b/ui/decoder-pro.wasm differ diff --git a/ui/demo.html b/ui/demo.html new file mode 100644 index 0000000..3c1fba1 --- /dev/null +++ b/ui/demo.html @@ -0,0 +1,554 @@ + + + + + + Preview by JessibucaPro + + + + + + +
+
+
+
+
MediaSource + Webcodec + SIMD +
+
+
+ 协议切换: + +
+
+
+ 缓存时长: + 秒 + 缓存延迟(延迟超过会触发丢帧): + 秒 + +
+
+ +
+
输入URL:
+ + + +
+
+ + +
+
+
+
+
+ 当前浏览器: + + + + +
+
+
+
+ 当前浏览器: + + + + +
+
+
+
+ 当前浏览器: + + +
+
+ + + + + + + \ No newline at end of file diff --git a/ui/index.html b/ui/index.html deleted file mode 100644 index 997cc76..0000000 --- a/ui/index.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - M7s Preview 预览 - - -解除静音 - - - - \ No newline at end of file diff --git a/ui/jessibuca-pro-demo.js b/ui/jessibuca-pro-demo.js new file mode 100644 index 0000000..4649e87 --- /dev/null +++ b/ui/jessibuca-pro-demo.js @@ -0,0 +1,460 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self)["jessibuca-demo"]=t()}(this,function(){"use strict";const i="fetch",F="websocket",O="worker",n="player",N="playerAudio",A="playbackTF",u="mp4",j="webm",z="flv",G="webTransport",H="nakedFlow",V="fmp4",W="mpeg4",K={flv:"FLV",m7s:"m7s",hls:"HLS",fmp4:"FMP4",mpeg4:"MPEG4",webrtc:"Webrtc",webTransport:"WebTransport",nakedFlow:"裸流"},Y="canvas",q="video",J="debug",Q="warn",$="click",X="jbprov",Z={url:"",playbackConfig:{},fullscreenWatermarkConfig:{},playType:n,playbackForwardMaxRateDecodeIFrame:4,playOptions:{},isLive:!0,isMulti:!1,isCrypto:!1},ee={playType:n,container:"",videoBuffer:1e3,videoBufferDelay:1e3,networkDelay:1e4,isResize:!0,isFullResize:!1,isFlv:!1,isHls:!1,isFmp4:!1,isWebrtc:!1,isWebrtcForZLM:!1,isNakedFlow:!1,isMpeg4:!1,debug:!1,debugLevel:Q,debugUuid:"",isMulti:!1,hotKey:!1,loadingTimeout:10,heartTimeout:10,timeout:10,pageVisibilityHiddenTimeout:300,loadingTimeoutReplay:!0,heartTimeoutReplay:!0,loadingTimeoutReplayTimes:3,heartTimeoutReplayTimes:3,heartTimeoutReplayUseLastFrameShow:!1,replayUseLastFrameShow:!1,supportDblclickFullscreen:!1,showBandwidth:!1,showPerformance:!1,mseCorrectTimeDuration:20,keepScreenOn:!0,isNotMute:!1,hasAudio:!0,hasVideo:!0,operateBtns:{fullscreen:!1,screenshot:!1,play:!1,audio:!1,record:!1,ptz:!1,quality:!1,zoom:!1,close:!1,scale:!1,performance:!1,aiFace:!1,aiObject:!1,fullscreenFn:null,fullscreenExitFn:null,screenshotFn:null,playFn:null,pauseFn:null,recordFn:null,recordStopFn:null},extendOperateBtns:[],contextmenuBtns:[],watermarkConfig:{},controlAutoHide:!1,hasControl:!1,loadingIcon:!0,loadingText:"",background:"",backgroundLoadingShow:!1,loadingBackground:"",decoder:"decoder-pro.js",decoderAudio:"decoder-pro-audio.js",decoderWASM:"",isDecoderUseCDN:!1,url:"",rotate:0,mirrorRotate:"none",playbackConfig:{playList:[],fps:"",showControl:!0,showRateBtn:!1,rateConfig:[],isCacheBeforeDecodeForFpsRender:!1,uiUsePlaybackPause:!1,isPlaybackPauseClearCache:!0,isUseFpsRender:!1,isUseLocalCalculateTime:!1,localOneFrameTimestamp:40,supportWheel:!1},qualityConfig:[],defaultStreamQuality:"",scaleConfig:["拉伸","缩放","正常"],forceNoOffscreen:!0,hiddenAutoPause:!1,protocol:2,demuxType:z,useWasm:!1,useWCS:!1,useSIMD:!0,wcsUseVideoRender:!0,wasmUseVideoRender:!0,mseUseCanvasRender:!1,hlsUseCanvasRender:!1,useMSE:!1,useOffscreen:!1,useWebGPU:!1,mseDecodeErrorReplay:!0,wcsDecodeErrorReplay:!0,wasmDecodeErrorReplay:!0,autoWasm:!0,webglAlignmentErrorReplay:!0,webglContextLostErrorReplay:!0,openWebglAlignment:!1,syncAudioAndVideo:!1,playbackDelayTime:1e3,playbackFps:25,playbackForwardMaxRateDecodeIFrame:4,playbackCurrentTimeMove:!0,useVideoRender:!0,useCanvasRender:!1,networkDelayTimeoutReplay:!1,recordType:u,checkFirstIFrame:!0,nakedFlowFps:25,audioEngine:null,isShowRecordingUI:!0,isShowZoomingUI:!0,useFaceDetector:!1,useObjectDetector:!1,ptzClickType:$,ptzStopEmitDelay:.3,ptzZoomShow:!1,ptzApertureShow:!1,ptzFocusShow:!1,ptzMoreArrowShow:!1,weiXinInAndroidAudioBufferSize:4800,isCrypto:!1,cryptoKey:"",cryptoIV:"",cryptoKeyUrl:"",autoResize:!1,useWebFullScreen:!1,ptsMaxDiff:3600,aiFaceDetectWidth:192,aiObjectDetectWidth:192,videoRenderSupportScale:!0,mediaSourceTsIsMaxDiffReplay:!0,controlHtml:"",isH265:!1,supportLockScreenPlayAudio:!0,supportHls265:!0},te="init",ie="initVideo",re="initAudio",se="audioCode",ae="videoCode",ne="videoCodec",oe="workerEnd",le="closeEnd",b={fullscreen:"fullscreen$2",webFullscreen:"webFullscreen",decoderWorkerInit:"decoderWorkerInit",play:"play",playing:"playing",pause:"pause",mute:"mute",load:"load",loading:"loading",zooming:"zooming",videoInfo:"videoInfo",timeUpdate:"timeUpdate",audioInfo:"audioInfo",log:"log",error:"error",kBps:"kBps",timeout:"timeout",delayTimeout:"delayTimeout",delayTimeoutRetryEnd:"delayTimeoutRetryEnd",loadingTimeout:"loadingTimeout",loadingTimeoutRetryEnd:"loadingTimeoutRetryEnd",stats:"stats",performance:"performance",faceDetectActive:"faceDetectActive",objectDetectActive:"objectDetectActive",record:"record",recording:"recording",recordingTimestamp:"recordingTimestamp",recordStart:"recordStart",recordEnd:"recordEnd",recordCreateError:"recordCreateError",recordBlob:"recordBlob",buffer:"buffer",videoFrame:"videoFrame",start:"start",metadata:"metadata",resize:"resize",volumechange:"volumechange",destroy:"destroy",beforeDestroy:"beforeDestroy",streamEnd:"streamEnd",streamRate:"streamRate",streamAbps:"streamAbps",streamVbps:"streamVbps",streamDts:"streamDts",streamSuccess:"streamSuccess",streamMessage:"streamMessage",streamError:"streamError",streamStats:"streamStats",mseSourceOpen:"mseSourceOpen",mseSourceClose:"mseSourceClose",mseSourceended:"mseSourceended",mseSourceBufferError:"mseSourceBufferError",mseAddSourceBufferError:"mseAddSourceBufferError",mseSourceBufferBusy:"mseSourceBufferBusy",mseSourceBufferFull:"mseSourceBufferFull",videoWaiting:"videoWaiting",videoTimeUpdate:"videoTimeUpdate",videoSyncAudio:"videoSyncAudio",playToRenderTimes:"playToRenderTimes",playbackTime:"playbackTime",playbackTimestamp:"playbackTimestamp",playbackPrecision:"playbackPrecision",playbackJustTime:"playbackJustTime",playbackStats:"playbackStats",playbackSeek:"playbackSeek",playbackPause:"playbackPause",playbackPauseOrResume:"playbackPauseOrResume",playbackRateChange:"playbackRateChange",playbackPreRateChange:"playbackPreRateChange",ptz:"ptz",streamQualityChange:"streamQualityChange",visibilityChange:"visibilityChange",netBuf:"netBuf",close:"close",networkDelayTimeout:"networkDelayTimeout",togglePerformancePanel:"togglePerformancePanel",viewResizeChange:"viewResizeChange",flvDemuxBufferSizeTooLarge:"flvDemuxBufferSizeTooLarge",talkGetUserMediaSuccess:"talkGetUserMediaSuccess",talkGetUserMediaFail:"talkGetUserMediaFail",talkGetUserMediaTimeout:"talkGetUserMediaTimeout",talkStreamStart:"talkStreamStart",talkStreamOpen:"talkStreamOpen",talkStreamClose:"talkStreamClose",talkStreamError:"talkStreamError",talkStreamInactive:"talkStreamInactive",webrtcDisconnect:"webrtcDisconnect",webrtcFailed:"webrtcFailed",webrtcClosed:"webrtcClosed",crashLog:"crashLog",focus:"focus",blur:"blur",visibilityHiddenTimeout:"visibilityHiddenTimeout",websocketOpen:"websocketOpen",websocketClose:"websocketClose",websocketError:"websocketError",websocketMessage:"websocketMessage",aiObjectDetectorInfo:"aiObjectDetectorInfo",aiFaceDetector:"aiFaceDetector",playFailedAndPaused:"playFailedAndPaused",audioResumeState:"audioResumeState"},de={load:b.load,timeUpdate:b.timeUpdate,videoInfo:b.videoInfo,audioInfo:b.audioInfo,error:b.error,kBps:b.kBps,start:b.start,timeout:b.timeout,loadingTimeout:b.loadingTimeout,loadingTimeoutRetryEnd:b.loadingTimeoutRetryEnd,delayTimeout:b.delayTimeout,delayTimeoutRetryEnd:b.delayTimeoutRetryEnd,fullscreen:"fullscreen",webFullscreen:b.webFullscreen,play:b.play,pause:b.pause,mute:b.mute,stats:b.stats,performance:b.performance,recordingTimestamp:b.recordingTimestamp,recordStart:b.recordStart,recordEnd:b.recordEnd,recordBlob:b.recordBlob,playToRenderTimes:b.playToRenderTimes,playbackSeek:b.playbackSeek,playbackStats:b.playbackStats,playbackTimestamp:b.playbackTimestamp,playbackPauseOrResume:b.playbackPauseOrResume,playbackPreRateChange:b.playbackPreRateChange,playbackRateChange:b.playbackRateChange,ptz:b.ptz,streamQualityChange:b.streamQualityChange,zooming:b.zooming,crashLog:b.crashLog,focus:b.focus,blur:b.blur,visibilityHiddenTimeout:b.visibilityHiddenTimeout,visibilityChange:b.visibilityChange,websocketOpen:b.websocketOpen,websocketClose:b.websocketClose,networkDelayTimeout:b.networkDelayTimeout,aiObjectDetectorInfo:b.aiObjectDetectorInfo,playFailedAndPaused:b.playFailedAndPaused,audioResumeState:b.audioResumeState},he={talkStreamClose:b.talkStreamClose,talkStreamError:b.talkStreamError,talkStreamInactive:b.talkStreamInactive,talkGetUserMediaTimeout:b.talkGetUserMediaTimeout},v={playError:"playIsNotPauseOrUrlIsNull",fetchError:"fetchError",websocketError:"websocketError",webcodecsH265NotSupport:"webcodecsH265NotSupport",webcodecsDecodeError:"webcodecsDecodeError",webcodecsUnsupportedConfigurationError:"webcodecsUnsupportedConfigurationError",mediaSourceH265NotSupport:"mediaSourceH265NotSupport",mediaSourceDecoderConfigurationError:"mediaSourceDecoderConfigurationError",mediaSourceFull:b.mseSourceBufferFull,mseSourceBufferError:b.mseSourceBufferError,mseAddSourceBufferError:b.mseAddSourceBufferError,mediaSourceAppendBufferError:"mediaSourceAppendBufferError",mediaSourceBufferListLarge:"mediaSourceBufferListLarge",mediaSourceAppendBufferEndTimeout:"mediaSourceAppendBufferEndTimeout",mediaSourceTsIsMaxDiff:"mediaSourceTsIsMaxDiff",mediaSourceUseCanvasRenderPlayFailed:"mediaSourceUseCanvasRenderPlayFailed",wasmDecodeError:"wasmDecodeError",wasmUseVideoRenderError:"wasmUseVideoRenderError",hlsError:"hlsError",webrtcError:"webrtcError",webglAlignmentError:"webglAlignmentError",wasmWidthOrHeightChange:"wasmWidthOrHeightChange",mseWidthOrHeightChange:"mseWidthOrHeightChange",wcsWidthOrHeightChange:"wcsWidthOrHeightChange",tallWebsocketClosedByError:"tallWebsocketClosedByError",flvDemuxBufferSizeTooLarge:b.flvDemuxBufferSizeTooLarge,wasmDecodeVideoNoResponseError:"wasmDecodeVideoNoResponseError",audioChannelError:"audioChannelError",simdH264DecodeVideoWidthIsTooLarge:"simdH264DecodeVideoWidthIsTooLarge",webglContextLostError:"webglContextLostError"},ce="notConnect",ue="open",l={download:"download",base64:"base64",blob:"blob"},pe="download",fe={7:"H264(AVC)",12:"H265(HEVC)",99:"MPEG4"},me="H264(AVC)",ge="H265(HEVC)",ye=10,Ae={AAC:"AAC",ALAW:"ALAW(g711a)",MULAW:"MULAW(g711u)"},be={10:"AAC",7:"ALAW",8:"MULAW"},ve=7,_e=8,Se=5,Ee=6,we=32,Te=33,ke=34,xe="webcodecs",r="webgl",Ce="webgpu",De="offscreen",Re="mse",Le='video/mp4; codecs="avc1.64002A"',Ie='video/mp4; codecs="hev1.1.6.L123.b0"',Pe="oneHour",Be="halfHour",Ue="tenMin",Me="fiveMin",Fe={oneHour:"one-hour",halfHour:"half-hour",tenMin:"ten-min",fiveMin:"five-min"},Oe=["oneHour","halfHour","tenMin","fiveMin"],Ne=["up","right","down","left","left-up","right-up","left-down","right-down"],je="stop",ze="fiStop",Ge="g711a",He="g711u",d={png:"image/png",jpeg:"image/jpeg",webp:"image/webp"},Ve="canplay",We="waiting",Ke="timeupdate",Ye="ratechange",qe="hevc",Je="The user aborted a request",Qe="AbortError",$e="AbortError",Xe=0,Ze=1,et="worklet",tt={encType:Ge,packetType:"rtp",rtpSsrc:"0000000000",numberChannels:1,sampleRate:8e3,sampleBitsWidth:16,debug:!1,debugLevel:Q,testMicrophone:!1,audioBufferLength:160,engine:et,checkGetUserMediaTimeout:!1,getUserMediaTimeout:1e4},it="worklet",rt="script",st="active",at={name:"",index:0,icon:"",iconHover:"",iconTitle:"",activeIcon:"",activeIconHover:"",activeIconTitle:"",click:null,activeClick:null},nt={content:"",click:null,index:0},ot="load-retry",lt="load-start";class dt{constructor(a){this.log=function(e){if(a._opt.debug&&a._opt.debugLevel==J){for(var t=a._opt.debugUuid?`[${a._opt.debugUuid}]`:"",i=arguments.length,r=new Array(1>1,(1&t)<<7|i<<3])}function pt(e){return e[0]>>4===ye&&e[1]===Xe}ct.isEnabled;const ft=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],mt=ft;function gt(e,t){return 1024*(1{S(t,e,i[e])}),t.style[i]=e)}function vt(e,t,i){i=!(2{var t;h(e)&&(r+=e,1e3<=(t=(e=_t())-s)&&(i(r/t*1e3),s=e,r=0))}}try{if("object"==typeof WebAssembly&&"function"==typeof WebAssembly.instantiate){var Et=new WebAssembly.Module(Uint8Array.of(0,97,115,109,1,0,0,0));if(Et instanceof WebAssembly.Module)new WebAssembly.Instance(Et),WebAssembly.Instance}}catch(e){}const wt='"6-8-2023"';function m(){return/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase())}function Tt(){const t=window.navigator.userAgent.toLowerCase()||"",i={type:"",version:""},e={IE:window.ActiveXObject||"ActiveXObject"in window,Chrome:-1{var i=r[t];return"a"===t?["一","二","三","四","五","六","日"][i-1]:(i=0{l=!1,n&&(e.apply(o,n),n=null,o=null)},a)}}function Pt(e){if(null==e||""==e)return"0 Bytes";var t=new Array("Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"),e=parseFloat(e),i=Math.floor(Math.log(e)/Math.log(1024));return(e/Math.pow(1024,i)).toFixed(2)+t[i]}function h(e){return"[object Number]"===Object.prototype.toString.call(e)}function Bt(){let e=!1;return e="MediaSource"in window&&window.MediaSource.isTypeSupported(Ie)?!0:e}function Ut(){const e=Tt();return"chrome"===e.type.toLowerCase()&&107<=e.version}function Mt(){let e=!1;return e="MediaStreamTrackGenerator"in window?!0:e}function Ft(){let e=!1;return e="MediaStream"in window?!0:e}function Ot(e){return null==e}function Nt(e){return!0===e||!1===e}function x(e){return!Ot(e)}function jt(e){var t={left:"",right:"",top:"",bottom:"",opacity:1,backgroundColor:"",image:{src:"",width:"100",height:"60"},text:{content:"",fontSize:"14",color:"#000"},rect:{color:"",lineWidth:2,width:"",height:""},html:""},i=Object.assign(t.image,e.image||{}),r=Object.assign(t.text,e.text||{});return Object.assign(t,e,{image:i,text:r})}function zt(e,t){e={container:e||"",text:"",opacity:"",angle:"",color:"",fontSize:"",fontFamily:""};return{watermark_parent_node:(e=Object.assign(e,t)).container,watermark_alpha:e.opacity,watermark_angle:e.angle,watermark_fontsize:e.fontSize,watermark_color:e.color,watermark_font:e.fontFamily,watermark_txt:e.text}}function Gt(e,d){return new Promise((t,i)=>{let r=jt(d);if(!r.image.src&&!r.text.content)return t(e);let s=document.createElement("canvas"),a=(s.width=d.width,s.height=d.height,s.getContext("2d")),n=0,o=0;h(r.left)?n=r.left:h(r.right)&&(n=s.width-r.right),h(r.top)?o=r.top:h(r.bottom)&&(o=s.height-r.bottom);const l=new Image;l.src=e,l.onload=()=>{if(a.drawImage(l,0,0),r.image&&r.image.src){const e=new Image;e.src=r.image.src,e.setAttribute("crossOrigin","Anonymous"),e.onload=()=>{n-=r.image.width,a.drawImage(e,n,o,r.image.width,r.image.height),t(s.toDataURL(d.format,d.quality))},e.onerror=e=>{i()}}else r.text&&r.text.content&&(a.font=r.text.fontSize+"px 宋体",a.fillStyle=r.text.color,a.textAlign="right",a.fillText(r.text.content,n,o),t(s.toDataURL(d.format,d.quality)))},l.onerror=e=>{i(e)}})}function Ht(e){var t,i;return-1{var e=window.navigator.userAgent;return/MicroMessenger/i.test(e)};function Qt(e){e=e||window.event;return e.target||e.srcElement}function E(e){return"function"==typeof e}function $t(e){let t=0,i=0;var r=e||window.event;return r.pageX||r.pageY?(t=r.pageX,i=r.pageY):(r.clientX||r.clientY)&&(t=e.clientX+document.documentElement.scrollLeft+document.body.scrollLeft,i=e.clientY+document.documentElement.scrollTop+document.body.scrollTop),{posX:t,posY:i}}function Xt(){let e=document.createElement("video"),t=e.canPlayType("application/vnd.apple.mpegurl");return e=null,t}function Zt(e){return g(e.hasAudio)&&(e.useMSE||e.useWCS&&!e.useOffscreen)}function ei(e){e=e.toString().trim().match(/^function\s*\w*\s*\([\w\s,]*\)\s*{([\w\W]*?)}$/)[1],e=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(e)}function ti(e){e.close?e.close():e.destroy&&e.destroy()}function ii(){return"https:"===window.location.protocol||"localhost"===window.location.hostname}function ri(i,r){let s=(i=r?i.filter(e=>e.type===r):i)[0],a=null,e=1;var t;if(0>4===Ze&&e[1]===Xe}function f(e){return!0===e||"true"===e}function g(e){return!0!==e&&"true"!==e}function di(e){return e.replace(/-([a-z])/g,function(e,t){return t.toUpperCase()})}class hi{constructor(e){this.destroys=[],this.proxy=this.proxy.bind(this),this.master=e}proxy(t,e,i){let r=3this.proxy(t,e,i,r));t.addEventListener(e,i,r);var s=()=>{E(t.removeEventListener)&&t.removeEventListener(e,i,r)};return this.destroys.push(s),s}}destroy(){this.master.debug&&this.master.debug.log("Events","destroy"),this.destroys.forEach(e=>e()),this.destroys=[]}}class e{on(e,t,i){const r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:i}),this}once(r,s,a){const n=this;function o(){n.off(r,o);for(var e=arguments.length,t=new Array(e),i=0;i{delete t[e]}),void delete this.e;const r=t[e],s=[];if(r&&i)for(let e=0,t=r.length;e0) {\n\n highp float y = texture2D(yTexture, vTexturePosition).r;\n highp float u = texture2D(uTexture, vTexturePosition).r;\n highp float v = texture2D(vTexture, vTexturePosition).r;\n gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;\n\n } else {\n gl_FragColor = texture2D(rgbaTexture, vTexturePosition);\n }\n }\n "),i=this.gl.createProgram();return this.gl.attachShader(i,e),this.gl.attachShader(i,t),this.gl.linkProgram(i),this.gl.getProgramParameter(i,this.gl.LINK_STATUS)?i:(console.log("Unable to initialize the shader program: "+this.gl.getProgramInfoLog(i)),null)}_loadShader(e,t){const i=this.gl,r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),i.getShaderParameter(r,i.COMPILE_STATUS)?r:(console.log("An error occurred compiling the shaders: "+i.getShaderInfoLog(r)),i.deleteShader(r),null)}_initBuffers(){const e=this.gl,t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t);var i=[-1,-1,1,-1,1,1,-1,1];e.bufferData(e.ARRAY_BUFFER,new Float32Array(i),e.STATIC_DRAW);var r=(r=[]).concat([0,1],[1,1],[1,0],[0,0]),s=e.createBuffer(),r=(e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,new Float32Array(r),e.STATIC_DRAW),e.createBuffer());return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),e.STATIC_DRAW),{positions:i,position:t,texPosition:s,indices:r}}_createTexture(){var e=this.gl.createTexture();return this.gl.bindTexture(this.gl.TEXTURE_2D,e),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),e}_drawScene(e,t,i){this.gl.viewport(0,0,e,t),this.gl.enable(this.gl.BLEND),this.gl.blendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this._buffers.position),this.gl.bufferData(this.gl.ARRAY_BUFFER,new Float32Array(this._buffers.positions),this.gl.STATIC_DRAW),this.gl.vertexAttribPointer(this._programInfo.attribLocations.vertexPosition,2,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(this._programInfo.attribLocations.vertexPosition),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this._buffers.texPosition),this.gl.vertexAttribPointer(this._programInfo.attribLocations.texturePosition,2,this.gl.FLOAT,!1,0,0),this.gl.enableVertexAttribArray(this._programInfo.attribLocations.texturePosition),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this._buffers.indices),i?(this.gl.activeTexture(this.gl.TEXTURE0+3),this.gl.bindTexture(this.gl.TEXTURE_2D,this._ytexture),this.gl.activeTexture(this.gl.TEXTURE0+4),this.gl.bindTexture(this.gl.TEXTURE_2D,this._utexture),this.gl.activeTexture(this.gl.TEXTURE0+5),this.gl.bindTexture(this.gl.TEXTURE_2D,this._vtexture)):(this.gl.activeTexture(this.gl.TEXTURE0+2),this.gl.bindTexture(this.gl.TEXTURE_2D,this._rgbatexture)),this.gl.useProgram(this._programInfo.program),this.gl.uniform1i(this._programInfo.uniformLocations.rgbatexture,2),this.gl.uniform1i(this._programInfo.uniformLocations.ytexture,3),this.gl.uniform1i(this._programInfo.uniformLocations.utexture,4),this.gl.uniform1i(this._programInfo.uniformLocations.vtexture,5),this.gl.uniform1i(this._programInfo.uniformLocations.isyuv,i?1:0),this.gl.drawElements(this.gl.TRIANGLES,6,this.gl.UNSIGNED_SHORT,0)}_calRect(e,t,i,r,s,a){var n=2*e/s-1,r=2*(a-t-r)/a-1,e=2*(e+i)/s-1,i=2*(a-t)/a-1;return[n,r,e,r,e,i,n,i]}_clear(){this.gl.clearColor(0,0,0,1),this.gl.clearDepth(1),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}render(e,t,i,r,s){const a=this.gl;this._clear(),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._ytexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e,t,0,a.LUMINANCE,a.UNSIGNED_BYTE,i),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this._utexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,r),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,this._vtexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,s),this._buffers.positions=[-1,-1,1,-1,1,1,-1,1],this._drawScene(e,t,!0)}renderYUV(e,t,i){var r=i.slice(0,e*t),s=i.slice(e*t,e*t*5/4),i=i.slice(e*t*5/4,e*t*3/2);const a=this.gl;this._clear(),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._ytexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e,t,0,a.LUMINANCE,a.UNSIGNED_BYTE,r),a.activeTexture(a.TEXTURE1),a.bindTexture(a.TEXTURE_2D,this._utexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,s),a.activeTexture(a.TEXTURE2),a.bindTexture(a.TEXTURE_2D,this._vtexture),a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,t/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,i),this._buffers.positions=[-1,-1,1,-1,1,1,-1,1],this._drawScene(e,t,!0)}drawDom(e,t,i,r,s){const a=this.gl;a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,this._rgbatexture),a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,s),this._buffers.positions=this._calRect(i,r,s.width,s.height,e,t),this._drawScene(e,t,!1)}}class gi{constructor(e){this.gpu=e,this.pipeline=null,this.matrixGroupInfo=null,this.depthTexture=null,this.textureGroupInfo=null,this.hasInited=!1,this.buffers=this._initBuffer(),this._initPipeline().then(e=>{this.pipeline=e,this.matrixGroupInfo=this._initMatrixGroupInfo(),this.hasInited=!0})}destroy(){this.gpu&&(this.gpu.device.destroy(),this.gpu=null),this.hasInited=!1,this.pipeline=null,this.matrixGroupInfo=null,this.depthTexture=null,this.textureGroupInfo=null}_initBuffer(){const e=this.gpu.device,t=new Float32Array([-1,-1,-1,1,-1,-1,1,1,-1,-1,1,-1]),i=e.createBuffer({size:t.byteLength,usage:window.GPUBufferUsage.VERTEX|window.GPUBufferUsage.COPY_DST});e.queue.writeBuffer(i,0,t);var r=new Float32Array([0,1,1,1,1,0,0,0]),s=e.createBuffer({size:r.byteLength,usage:window.GPUBufferUsage.VERTEX|window.GPUBufferUsage.COPY_DST}),r=(e.queue.writeBuffer(s,0,r),new Uint16Array([0,1,2,0,2,3])),a=e.createBuffer({size:r.byteLength,usage:window.GPUBufferUsage.INDEX|window.GPUBufferUsage.COPY_DST});return e.queue.writeBuffer(a,0,r),{positionBuffer:i,texpositionBuffer:s,indexBuffer:a}}_initPipeline(){return new Promise((t,i)=>{const e=this.gpu.device,r=this.gpu.format,s={layout:"auto",vertex:{module:e.createShaderModule({code:"\n\n @binding(0) @group(0) var uModelMatrix : mat4x4;\n @binding(1) @group(0) var uViewMatrix : mat4x4;\n @binding(2) @group(0) var uProjectionMatrix : mat4x4;\n\n struct VertexOutput {\n @builtin(position) Position : vec4,\n @location(0) vTexturePosition : vec2,\n }\n\n @vertex\n fn main(\n @location(0) aVertexPosition : vec4,\n @location(1) aTexturePosition : vec2\n ) -> VertexOutput {\n var output : VertexOutput;\n var tmppos : vec4 = uProjectionMatrix * uViewMatrix * uModelMatrix * aVertexPosition;\n output.Position = vec4(tmppos.x, tmppos.y, (tmppos.z+1.)/2., tmppos.w); // webgl z [-1, 1], webgpu z [0, 1], 这里z做下调整 z-webgpu = (z-webgl+1)/2\n output.vTexturePosition = aTexturePosition;\n return output;\n }\n\n "}),entryPoint:"main",buffers:[{arrayStride:12,attributes:[{shaderLocation:0,offset:0,format:"float32x3"}]},{arrayStride:8,attributes:[{shaderLocation:1,offset:0,format:"float32x2"}]}]},primitive:{topology:"triangle-list"},fragment:{module:e.createShaderModule({code:"\n @group(1) @binding(0) var mySampler: sampler;\n @group(1) @binding(1) var yTexture: texture_2d;\n @group(1) @binding(2) var uTexture: texture_2d;\n @group(1) @binding(3) var vTexture: texture_2d;\n\n const YUV2RGB : mat4x4 = mat4x4( 1.1643828125, 0, 1.59602734375, -.87078515625,\n 1.1643828125, -.39176171875, -.81296875, .52959375,\n 1.1643828125, 2.017234375, 0, -1.081390625,\n 0, 0, 0, 1);\n\n @fragment\n fn main(\n @location(0) vTexturePosition: vec2\n ) -> @location(0) vec4 {\n\n var y : f32= textureSample(yTexture, mySampler, vTexturePosition).r;\n var u : f32 = textureSample(uTexture, mySampler, vTexturePosition).r;\n var v : f32 = textureSample(vTexture, mySampler, vTexturePosition).r;\n\n return vec4(y, u, v, 1.0)*YUV2RGB;\n }\n\n "}),entryPoint:"main",targets:[{format:r}]},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}};e.createRenderPipelineAsync(s).then(e=>{t(e)}).catch(e=>{i(e)})})}_initMatrixGroupInfo(){const e=this.gpu.device,t=this.pipeline,i=ui();r=(s=m=1)/((f=-1)-m),A=1/((a=-1)-s),h=1/((d=.1)-(l=100)),(c=i)[0]=-2*r,c[1]=0,c[2]=0,c[3]=0,c[4]=0,c[5]=-2*A,c[6]=0,c[7]=0,c[8]=0,c[9]=0,c[10]=2*h,c[11]=0,c[12]=(f+m)*r,c[13]=(s+a)*A,c[14]=(l+d)*h,c[15]=1;var r,s,a,n,o,l,d,h,c,u,p,f=ui(),m=(pi(f),ui()),g=(r=m,s=fi(0,0,0),a=fi(0,0,-1),A=fi(0,1,0),l=s[0],d=s[1],s=s[2],h=A[0],c=A[1],A=A[2],u=a[0],p=a[1],a=a[2],Math.abs(l-u)<1e-6&&Math.abs(d-p)<1e-6&&Math.abs(s-a)<1e-6?pi(r):(a=s-a,y=c*(a*=g=1/Math.hypot(u=l-u,p=d-p,a))-A*(p*=g),A=A*(u*=g)-h*a,h=h*p-c*u,(g=Math.hypot(y,A,h))?(y*=g=1/g,A*=g,h*=g):h=A=y=0,c=p*h-a*A,n=a*y-u*h,o=u*A-p*y,(g=Math.hypot(c,n,o))?(c*=g=1/g,n*=g,o*=g):o=n=c=0,r[0]=y,r[1]=c,r[2]=u,r[3]=0,r[4]=A,r[5]=n,r[6]=p,r[7]=0,r[8]=h,r[9]=o,r[10]=a,r[11]=0,r[12]=-(y*l+A*d+h*s),r[13]=-(c*l+n*d+o*s),r[14]=-(u*l+p*d+a*s),r[15]=1),e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST})),y=(e.queue.writeBuffer(g,0,f),e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST})),A=(e.queue.writeBuffer(y,0,m),e.createBuffer({size:64,usage:window.GPUBufferUsage.UNIFORM|window.GPUBufferUsage.COPY_DST}));return e.queue.writeBuffer(A,0,i),{modelMatrixBuffer:g,viewMatrixBuffer:y,projectMatrixBuffer:A,group:e.createBindGroup({label:"group0",layout:t.getBindGroupLayout(0),entries:[{binding:0,resource:{buffer:g}},{binding:1,resource:{buffer:y}},{binding:2,resource:{buffer:A}}]})}}_initTextureGroupInfo(e,t){const i=this.gpu.device,r=this.pipeline,s=i.createTexture({size:[e,t],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),a=i.createTexture({size:[e/2,t/2],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),n=i.createTexture({size:[e/2,t/2],format:"r8unorm",usage:window.GPUTextureUsage.TEXTURE_BINDING|window.GPUTextureUsage.COPY_DST|window.GPUTextureUsage.RENDER_ATTACHMENT}),o=i.createSampler({magFilter:"linear",minFilter:"linear"}),l=i.createBindGroup({label:"group1",layout:r.getBindGroupLayout(1),entries:[{binding:0,resource:o},{binding:1,resource:s.createView()},{binding:2,resource:a.createView()},{binding:3,resource:n.createView()}]});return{yTexture:s,uTexture:a,vTexture:n,group:l}}_drawScene(){const e=this.gpu.device,t=this.gpu.context,i=e.createCommandEncoder(),r={colorAttachments:[{view:t.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:0},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:this.depthTexture.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}},s=i.beginRenderPass(r);s.setPipeline(this.pipeline),s.setBindGroup(0,this.matrixGroupInfo.group),s.setBindGroup(1,this.textureGroupInfo.group),s.setVertexBuffer(0,this.buffers.positionBuffer),s.setVertexBuffer(1,this.buffers.texpositionBuffer),s.setIndexBuffer(this.buffers.indexBuffer,"uint16"),s.drawIndexed(6),s.end(),e.queue.submit([i.finish()])}renderYUV(e,t,i){if(this.hasInited){var r=i.slice(0,e*t),s=i.slice(e*t,e*t*5/4),i=i.slice(e*t*5/4,e*t*3/2);const a=this.gpu.device;this.depthTexture||(this.depthTexture=this.gpu.device.createTexture({size:[e,t],format:"depth24plus",usage:window.GPUTextureUsage.RENDER_ATTACHMENT})),this.textureGroupInfo||(this.textureGroupInfo=this._initTextureGroupInfo(e,t)),a.queue.writeTexture({texture:this.textureGroupInfo.yTexture},r,{bytesPerRow:e,rowsPerImage:t},[e,t]),a.queue.writeTexture({texture:this.textureGroupInfo.uTexture},s,{bytesPerRow:e/2,rowsPerImage:t/2},[e/2,t/2]),a.queue.writeTexture({texture:this.textureGroupInfo.vTexture},i,{bytesPerRow:e/2,rowsPerImage:t/2},[e/2,t/2]),this._drawScene()}}clear(){}}class yi extends e{constructor(){super(),this.videoInfo={width:null,height:null,encType:null},this.init=!1}destroy(){this.resetInit(),this.off()}resetInit(){this.videoInfo={width:null,height:null,encType:null},this.init=!1}getHasInit(){return this.init}updateVideoInfo(e){x(e.encTypeCode)&&(this.videoInfo.encType=fe[e.encTypeCode]),x(e.encType)&&(this.videoInfo.encType=e.encType),x(e.width)&&(this.videoInfo.width=e.width),x(e.height)&&(this.videoInfo.height=e.height),x(this.videoInfo.encType)&&x(this.videoInfo.height)&&x(this.videoInfo.width)&&!this.init&&(this.player.emit(b.videoInfo,this.videoInfo),this.init=!0)}getVideoInfo(){return this.videoInfo}clearView(){}play(){}pause(){}getType(){return""}getCanvasType(){return""}isPlaying(){return!0}addContentToCanvas(){}getPlaybackQuality(){return null}}var Ai="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0;function bi(e,t,i){var r=new XMLHttpRequest;r.open("GET",e),r.responseType="blob",r.onload=function(){Ei(r.response,t,i)},r.onerror=function(){console.error("could not download file")},r.send()}function vi(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch(e){}return 200<=t.status&&t.status<=299}function _i(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(e){var i=document.createEvent("MouseEvents");i.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(i)}}var Si=Ai.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),Ei="object"!=typeof window||window!==Ai?function(){}:"download"in HTMLAnchorElement.prototype&&!Si?function(e,t,i){var r=Ai.URL||Ai.webkitURL,s=document.createElementNS("http://www.w3.org/1999/xhtml","a");t=t||e.name||"download",s.download=t,s.rel="noopener","string"==typeof e?(s.href=e,s.origin!==location.origin?vi(s.href)?bi(e,t,i):_i(s,s.target="_blank"):_i(s)):(s.href=r.createObjectURL(e),setTimeout(function(){r.revokeObjectURL(s.href)},4e4),setTimeout(function(){_i(s)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,i){var r;t=t||e.name||"download","string"==typeof e?vi(e)?bi(e,t,i):((r=document.createElement("a")).href=e,r.target="_blank",setTimeout(function(){_i(r)})):navigator.msSaveOrOpenBlob((e=e,void 0===(i=i)?i={autoBom:!1}:"object"!=typeof i&&(console.warn("Deprecated: Expected third argument to be a object"),i={autoBom:!i}),i.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([String.fromCharCode(65279),e],{type:e.type}):e),t)}:function(e,t,i,r){if((r=r||open("","_blank"))&&(r.document.title=r.document.body.innerText="downloading..."),"string"==typeof e)return bi(e,t,i);var s,a,n,t="application/octet-stream"===e.type,i=/constructor/i.test(Ai.HTMLElement)||Ai.safari,o=/CriOS\/[\d]+/.test(navigator.userAgent);(o||t&&i||Si)&&"undefined"!=typeof FileReader?((s=new FileReader).onloadend=function(){var e=s.result,e=o?e:e.replace(/^data:[^;]*;/,"data:attachment/file;");r?r.location.href=e:location=e,r=null},s.readAsDataURL(e)):(a=Ai.URL||Ai.webkitURL,n=a.createObjectURL(e),r?r.location=n:location.href=n,r=null,setTimeout(function(){a.revokeObjectURL(n)},4e4))};class wi{constructor(e,t){this.gl=e,t&&this.gl.pixelStorei(this.gl.UNPACK_ALIGNMENT,1);e=this._initShaderProgram();this.shaderProgram=e,this.programInfo={program:e,attribLocations:{vertexPosition:this.gl.getAttribLocation(e,"aVertexPosition")},uniformLocations:{linewidth:this.gl.getUniformLocation(e,"uLineWidth"),rect:this.gl.getUniformLocation(e,"uRect"),linecolor:this.gl.getUniformLocation(e,"uLineColor"),resolution:this.gl.getUniformLocation(e,"uResolution")}},this.buffers=this._initBuffers()}destroy(){this.gl.deleteProgram(this.shaderProgram),this.gl.deleteBuffer(this.buffers.position),this.gl.deleteBuffer(this.buffers.indices),this.shaderProgram=null,this.buffers=null}_initShaderProgram(){const e=this.gl,t=this._loadShader(e.VERTEX_SHADER,"\n attribute vec4 aVertexPosition;\n void main(void) {\n gl_Position = aVertexPosition;\n }\n "),i=this._loadShader(e.FRAGMENT_SHADER,"\n precision highp float;\n uniform float uLineWidth;\n uniform vec4 uRect;\n uniform vec3 uLineColor;\n uniform vec2 uResolution;\n\n\n float inBox(vec2 st, vec4 rect){\n\n vec2 bl = step(rect.xy,st);\n float pct = bl.x * bl.y;\n\n vec2 tr = step(st, rect.zw);\n pct *= tr.x * tr.y;\n\n return pct;\n }\n\n void main(void) {\n\n vec2 cur = gl_FragCoord.xy/uResolution;\n\n float xlinewidth = uLineWidth/uResolution.x;\n float ylinewidth = uLineWidth/uResolution.y;\n\n // vec4 outRect = uRect + vec4(-1.*xlinewidth/2., -1.*ylinewidth/2., xlinewidth/2., ylinewidth/2.);\n // vec4 inRect = uRect + vec4(xlinewidth/2., ylinewidth/2., -1.*xlinewidth/2., -1.*ylinewidth/2.);\n\n vec4 outRect = uRect + vec4(-1.*xlinewidth/2., -1.*ylinewidth/2., xlinewidth/2., ylinewidth/2.);\n vec4 inRect = uRect;\n\n float a = inBox(cur, outRect);\n float b = inBox(cur, inRect);\n\n gl_FragColor = mix(vec4(0., 0., 0., 0.), vec4(uLineColor.rgb, 1.0), a-b);\n\n }\n "),r=e.createProgram();return e.attachShader(r,t),e.attachShader(r,i),e.linkProgram(r),e.getProgramParameter(r,e.LINK_STATUS)?r:(console.log("Unable to initialize the shader program: "+e.getProgramInfoLog(r)),null)}_loadShader(e,t){const i=this.gl,r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),i.getShaderParameter(r,i.COMPILE_STATUS)?r:(console.log("An error occurred compiling the shaders: "+i.getShaderInfoLog(r)),i.deleteShader(r),null)}_createTexture(){const e=this.gl;var t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),t}_initBuffers(){const e=this.gl,t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,1,1,-1,1]),e.STATIC_DRAW);var i=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,i),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,0,2,3]),e.STATIC_DRAW),{position:t,indices:i}}_drawScene(e){var{canvasWidth:e,canvasHeight:t,rect:i,lineWidth:r,lineColor:s}=e;const a=this.gl,n=this.buffers,o=this.programInfo;a.viewport(0,0,e,t),a.enable(a.BLEND),a.blendFunc(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA),a.bindBuffer(a.ARRAY_BUFFER,n.position),a.vertexAttribPointer(o.attribLocations.vertexPosition,2,a.FLOAT,!1,0,0),a.enableVertexAttribArray(o.attribLocations.vertexPosition),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,n.indices),a.useProgram(o.program),a.uniform2f(o.uniformLocations.resolution,e,t),a.uniform4f(o.uniformLocations.rect,i[0],i[1],i[2],i[3]),a.uniform1f(o.uniformLocations.linewidth,r),a.uniform3f(o.uniformLocations.linecolor,s[0],s[1],s[2]),a.drawElements(a.TRIANGLES,6,a.UNSIGNED_SHORT,0)}drawBox(e){var{x:e,y:t,width:i,height:r,lineWidth:s,lineColor:a,canvasWidth:n,canvasHeight:o}=e,l=(l=e/n,r=(o-t-r)/o,e=(e+i)/n,i=(o-t)/o,(t=new ci(4))[0]=l,t[1]=r,t[2]=e,t[3]=i,t),a=fi(1,0,0);this._drawScene({canvasWidth:n,canvasHeight:o,rect:l,lineWidth:s,lineColor:a})}}class Ti extends yi{constructor(e){super(),this.player=e;const t=document.createElement("canvas");t.style.position="absolute",t.style.top=0,t.style.left=0,this.$videoElement=t,e.$container.appendChild(this.$videoElement),this.context2D=null,this.contextGl=null,this.webglRender=null,this.webglRectRender=null,this.webGPURender=null,this.isWebglContextLost=!1,this.bitmaprenderer=null,this.renderType=null,this.controlHeight=0,this.proxyDestroyList=[],this.tempCanvasContentList=[],this._initCanvasRender()}destroy(){super.destroy(),0{e&&e()}),this.proxyDestroyList=[]),this.contextGl&&(this.contextGl=null),this.context2D&&(this.context2D=null),this.webglRender&&(this.webglRender.destroy(),this.webglRender=null),this.webglRectRender&&(this.webglRectRender.destroy(),this.webglRectRender=null),this.webGPURender&&(this.webGPURender.destroy(),this.webGPURender=null),this.bitmaprenderer&&(this.bitmaprenderer=null),this.renderType=null,this.isWebglContextLost=!1,this.videoInfo={width:"",height:"",encType:""},this.tempCanvasContentList=[],this.player.$container.removeChild(this.$videoElement),this.init=!1,this.off()}_initContextGl(){const e=this.player.events["proxy"];var t,i;this.contextGl=At(this.$videoElement),this.contextGl?(t=e(this.$videoElement,"webglcontextlost",e=>{e.preventDefault(),this.player.debug.error("canvasVideo","webglcontextlost error",e),this.isWebglContextLost=!0,this.webglRender&&(this.player.debug.log("CommonCanvasLoader","webglcontextlost error and destroy webglRender"),this.webglRender.destroy(),this.webglRender=null),this.webglRectRender&&(this.player.debug.log("CommonCanvasLoader","webglcontextlost error and destroy webglRectRender"),this.webglRectRender.destroy(),this.webglRectRender=null),this.contextGl=null,setTimeout(()=>{this.player.debug.log("CommonCanvasLoader","createContextGL()"),this.contextGl=At(this.$videoElement),this.player.debug.log("CommonCanvasLoader","createContextGL success"),this.contextGl&&this.contextGl.getContextAttributes&&this.contextGl.getContextAttributes().stencil?(this.webglRender=new mi(this.contextGl,this.player._opt.openWebglAlignment),this.webglRectRender=new wi(this.contextGl,this.player._opt.openWebglAlignment),this.isWebglContextLost=!1,this.player.debug.log("CommonCanvasLoader","webglcontextlost error reset and getContextAttributes().stencil is true")):(this.player.debug.error("CommonCanvasLoader","webglcontextlost error, getContextAttributes().stencil is false"),this.player.emitError(v.webglContextLostError))},500)}),i=e(this.$videoElement,"webglcontextrestored",e=>{e.preventDefault(),this.player.debug.log("CommonCanvasLoader","webglcontextrestored ",e)}),this.webglRender=new mi(this.contextGl,this.player._opt.openWebglAlignment),this.webglRectRender=new wi(this.contextGl,this.player._opt.openWebglAlignment),this.proxyDestroyList.push(t,i)):this.player.debug.error("CommonCanvasLoader","_initContextGl() createContextGL error")}_initContextGPU(){var a=this.$videoElement;new Promise((r,s)=>{navigator.gpu?navigator.gpu.requestAdapter().then(i=>{i?i.requestDevice().then(e=>{if(e){const t=a.getContext("webgpu");if(t){const a=navigator.gpu.getPreferredCanvasFormat();t.configure({device:e,format:a,alphaMode:"opaque"}),r({adapter:i,device:e,context:t,format:a})}else s('WebGPU "context" create fail')}else s('WebGPU "device" request fail')}).catch(e=>{s('WebGPU "adapter.requestDevice()" fail')}):s('WebGPU "adapter" request fail is empty')}).catch(e=>{s('WebGPU "navigator.gpu.requestAdapter()" fail')}):s("WebGPU not support!!")}).then(e=>{this.webGPURender=new gi(e),this.player.debug.log("CommonCanvasLoader","webGPURender init success")}).catch(e=>{this.player.debug.error("CommonCanvasLoader",`createWebGPUContext error is ${e} and next use webgl render`),this.renderType=r,this._initContextGl()})}initCanvasViewSize(){this.$videoElement.width=this.videoInfo.width,this.$videoElement.height=this.videoInfo.height,this.resize()}screenshot(e,t,i,r){e=e||p(),r=r||l.download;let s=.92;!d[t]&&l[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i));const a=d[t]||d.png,n=this.$videoElement.toDataURL(a,s);if(r===l.base64)return n;{const t=bt(n);if(r===l.blob)return t;if(r===l.download){const i=a.split("/")[1];Ei(t,e+"."+i)}}}screenshotWatermark(s){return new Promise((t,i)=>{(s=(s=qt(s)?{filename:s}:s)||{}).width=this.videoInfo.width,s.height=this.videoInfo.height,s.filename=s.filename||p(),s.format=s.format?d[s.format]:d.png,s.quality=Number(s.quality)||.92,s.type=s.type||l.download;const r=this.$videoElement.toDataURL(s.format,s.quality);Gt(r,s).then(e=>{if(s.type===l.base64)t(r);else{const r=bt(e);if(s.type===l.blob)t(r);else if(s.type===l.download){t();const e=s.format.split("/")[1];Ei(r,s.filename+"."+e)}}}).catch(e=>{i(e)})})}render(){}clearView(){}play(){}pause(){}resize(){this.player.debug.log("canvasVideo","resize");var e=this.player._opt;let t=this.player.width,i=this.player.height;if(e.hasControl&&!e.controlAutoHide){const r=this.controlHeight;m()&&this.player.fullscreen&&e.useWebFullScreen?t-=r:i-=r}let r=this.$videoElement.width,s=this.$videoElement.height;var a=e.rotate,n=(t-r)/2,o=(i-s)/2,l=(270!==a&&90!==a||(r=this.$videoElement.height,s=this.$videoElement.width),t/r),d=i/s;let h=d{this.context2D.drawImage(e,0,0,this.$videoElement.width,this.$videoElement.height),ti(t.videoFrame),this.doAddContentToCanvas()})}catch(t){}else this.context2D.drawImage(t.videoFrame,0,0,this.$videoElement.width,this.$videoElement.height),ti(t.videoFrame),this.doAddContentToCanvas();break;case Re:case"hls":this.context2D.drawImage(t.$video,0,0,this.$videoElement.width,this.$videoElement.height),this.doAddContentToCanvas()}}clearView(){switch(this.renderType){case De:!function(e,t){const i=document.createElement("canvas");i.width=e,i.height=t;e=window.createImageBitmap(i,0,0,e,t);return i.width=0,i.height=0,e}(this.$videoElement.width,this.$videoElement.height).then(e=>{this.bitmaprenderer.transferFromImageBitmap(e)});break;case r:this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);break;case Ce:this.webGPURender.clear();break;case xe:case Re:case"hls":this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height)}}_initTempTextCanvas(){this.tempTextCanvas=document.createElement("canvas"),this.tempTextCanvasCtx=this.tempTextCanvas.getContext("2d"),this.tempTextCanvas.width=600,this.tempTextCanvas.height=20}doAddContentToCanvas(){if(0{"text"===e.type?(t.font=`${e.fontSize||12}px Arial`,t.fillStyle=e.color||"green",t.fillText(e.text,e.x,e.y)):"rect"===e.type&&(t.strokeStyle=e.color||"green",t.lineWidth=e.lineWidth||2,t.strokeRect(e.x,e.y,e.width,e.height))}),t.restore()}}doAddContentToWebGlCanvas(){0{var t=e.x,i=e.y;if("rect"===e.type){var r=e.width,s=e.height,a=(a=e.color||"#008000",[parseInt(a.substring(1,3),16)/255,parseInt(a.substring(3,5),16)/255,parseInt(a.substring(5,7),16)/255,1]),n=e.lineWidth||4;r&&s&&this.webglRectRender.drawBox({x:t,y:i,width:r,height:s,lineColor:a,lineWidth:n,canvasWidth:this.$videoElement.width,canvasHeight:this.$videoElement.height})}else if("text"===e.type){const a=e.text||"";a&&(r=e.fontSize||20,s=e.color||"#008000",this.tempTextCanvas||this._initTempTextCanvas(),this.tempTextCanvasCtx.clearRect(0,0,this.tempTextCanvas.width,this.tempTextCanvas.height),this.tempTextCanvasCtx.font=r+"px Arial",this.tempTextCanvasCtx.fillStyle=s,this.tempTextCanvasCtx.textBaseline="top",this.tempTextCanvasCtx.fillText(a,0,0),this.webglRender.drawDom(this.$videoElement.width,this.$videoElement.height,t,i,this.tempTextCanvas))}})}}class xi{constructor(e){this.player=e,this.configList=[],this.shadowRoot=null,this.shadowRootRealDom=null,this.shadowRootInnerDom=null,this.scale=1,this._initDom(),this.player.debug.log("SingleWatermark","int")}destroy(){this.configList=[],this.shadowRootInnerDom=null,this.scale=1,this.shadowRoot&&(this.player.$container.removeChild(this.shadowRootRealDom),this.shadowRoot=null,this.shadowRootInnerDom=null),this.player.debug.log("SingleWatermark","destroy")}resize(){this._resizeDom()}_initDom(){const e=this.player.$container;let t=null;const i=document.createElement("div"),r=(i.setAttribute("style","pointer-events: none !important;display: block !important;"),t="function"==typeof i.attachShadow?i.attachShadow({mode:"open"}):i.shadowRoot||i,document.createElement("div"));r.setAttribute("style","position: absolute; top: 0; left: 0; width: 0; height: 0;display: none;"),t.appendChild(r);var s=e.children,a=Math.floor(Math.random()*(s.length-1));s[a]?e.insertBefore(i,s[a]):e.appendChild(i),this.shadowRootInnerDom=r,this.shadowRootRealDom=i,this.shadowRoot=t}update(e){this._removeDom();let t=[];Array.isArray(e)?t=e:Yt(e)&&t.push(e);e=t.map(e=>jt(e));this.configList=e,this._updateDom()}_resizeDom(){this.player.$container;const n=this.player.width,o=this.player.height,l=this.player.getVideoInfo();if(l&&0{const t=document.createElement("div");let i=null;e.image&&e.image.src?((i=document.createElement("img")).style.height="100%",i.style.width="100%",i.style.objectFit="contain",i.src=e.image.src):e.text&&e.text.content?i=document.createTextNode(e.text.content):(e.rect&&e.rect.color&&e.rect.width||e.html)&&(i=document.createElement("div")),i&&(t.appendChild(i),t.style.visibility="",t.style.position="absolute",t.style.display="block",t.style["-ms-user-select"]="none",t.style["-moz-user-select"]="none",t.style["-webkit-user-select"]="none",t.style["-o-user-select"]="none",t.style["user-select"]="none",t.style["-webkit-touch-callout"]="none",t.style["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",t.style["-webkit-text-size-adjust"]="none",t.style["-webkit-touch-callout"]="none",t.style.opacity=e.opacity,h(e.left)&&(t.style.left=e.left+"px"),h(e.right)&&(t.style.right=e.right+"px"),h(e.top)&&(t.style.top=e.top+"px"),h(e.bottom)&&(t.style.bottom=e.bottom+"px"),e.backgroundColor&&(t.style.backgroundColor=e.backgroundColor),t.style.overflow="hidden",t.style.zIndex="9999999",e.image&&e.image.src?(t.style.width=e.image.width+"px",t.style.height=e.image.height+"px"):e.text&&e.text.content?(t.style.fontSize=e.text.fontSize+"px",t.style.color=e.text.color):e.rect&&e.rect.color&&e.rect.width?(t.style.width=e.rect.width+"px",t.style.height=e.rect.height+"px",t.style.borderWidth=e.rect.lineWidth+"px",t.style.borderStyle="solid",t.style.borderColor=e.rect.color):e.html&&(t.innerHTML=e.html,t.style.width=e.width+"px",t.style.height=e.height+"px"),this.shadowRootInnerDom.appendChild(t))})}remove(){this._removeDom()}_removeDom(){this.shadowRootInnerDom&&(this.shadowRootInnerDom.innerHTML="")}}class Ci extends yi{constructor(t){super(),this.player=t;const e=document.createElement("video"),i=document.createElement("canvas"),r=(e.muted=!0,e.style.position="absolute",e.style.top=0,e.style.left=0,this._delayPlay=!1,t.$container.appendChild(e),this.$videoElement=e,this.$canvasElement=i,this.canvasContext=i.getContext("2d"),this.mediaStream=null,this.vwriter=null,t.canVideoTrackWritter()&&Mt()&&Ft()&&(this.trackGenerator=new MediaStreamTrackGenerator({kind:"video"}),this.mediaStream=new MediaStream([this.trackGenerator]),e.srcObject=this.mediaStream,this.vwriter=this.trackGenerator.writable.getWriter()),this.fixChromeVideoFlashBug(),this.resize(),this.eventListenList=[],this.tempContentList=[],this.contentWatermark=null,this.player.events)["proxy"],s=r(this.$videoElement,"canplay",()=>{this.player.debug.log("Video","canplay"),this._delayPlay&&this._play()}),a=r(this.$videoElement,"waiting",()=>{this.player.debug.log("Video","waiting")}),n=r(this.$videoElement,"loadedmetadata",()=>{this.player.debug.log("Video","loadedmetadata")}),o=r(this.$videoElement,"timeupdate",e=>{e=parseInt(e.timeStamp,10);(this.player._opt.isWebrtc||this.player.isOldHls())&&this.player.emit(b.timeUpdate,e),t._opt.isWebrtc&&(t.handleRender(),t.updateStats({fps:!0}))}),l=r(this.$videoElement,"error",()=>{this.player.debug.error("Video","Error "+this.$videoElement.error.code+"; details: "+this.$videoElement.error.message)});this.eventListenList.push(s,a,o,l,n),this.player.debug.log("Video","init")}destroy(){if(super.destroy(),this.eventListenList&&(this.eventListenList.forEach(e=>{e()}),this.eventListenList=[]),this.contentWatermark&&(this.contentWatermark.destroy(),this.contentWatermark=null),this.tempContentList=[],this.player._opt.videoRenderSupportScale&&this._isNeedAddBackDropFilter()){const e=this.player.$container;e.style.backdropFilter="none",e.style.transform="none"}if(this.$canvasElement.height=0,this.$canvasElement.width=0,this.$canvasElement=null,this.canvasContext=null,this.$videoElement){this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")),this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src"));try{this.$videoElement.load()}catch(e){}this.player.$container.removeChild(this.$videoElement),this.$videoElement=null}this.trackGenerator&&(this.trackGenerator.stop(),this.trackGenerator=null),this.vwriter&&(this.vwriter.close(),this.vwriter=null),this._delayPlay=!1,this.mediaStream&&(this.mediaStream.getTracks().forEach(e=>e.stop()),this.mediaStream=null),this.off(),this.player.debug.log("Video","destroy")}fixChromeVideoFlashBug(){if(this.player._opt.videoRenderSupportScale&&this._isNeedAddBackDropFilter()){const e=this.player.$container;e.style.backdropFilter="blur(0px)",e.style.transform="translateZ(0)"}}_isNeedAddBackDropFilter(){var e=Tt().type.toLowerCase();return"chrome"===e||"edge"===e}isPause(){let e=!0;return e=this.$videoElement?this.$videoElement.paused:e}_getVideoReadyState(){let e=0;return e=this.$videoElement?this.$videoElement.readyState:e}_getVideoCurrentTime(){let e=0;return e=this.$videoElement?this.$videoElement.currentTime:e}play(){if(this.$videoElement){var e=this._getVideoReadyState();if(this.player.debug.log("Video","play and readyState: "+e),0===e)return this.player.debug.warn("Video","readyState is 0 and set _delayPlay to true"),void(this._delayPlay=!0);this._play()}}_play(){this.$videoElement&&this.$videoElement.play().then(()=>{this._delayPlay=!1,this.player.debug.log("Video","_play success"),setTimeout(()=>{this.isPlaying()||(this.player.debug.warn("Video","play failed and retry play"),this._play())},100)}).catch(e=>{this.player.debug.error("Video","_play error",e)})}pause(e){this.isPlaying()&&(e?this.$videoElement&&this.$videoElement.pause():setTimeout(()=>{this.$videoElement&&this.$videoElement.pause()},100))}clearView(){this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")))}screenshot(e,t,i,r){if(!this._canScreenshot())return this.player.debug.warn("Video","screenshot failed, video is not ready"),null;e=e||p(),r=r||l.download;let s=.92;!d[t]&&l[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i));i=this.$videoElement;let a=this.$canvasElement;a.width=i.videoWidth,a.height=i.videoHeight,this.canvasContext.drawImage(i,0,0,a.width,a.height);const n=d[t]||d.png,o=a.toDataURL(n,s);if(this.canvasContext.clearRect(0,0,a.width,a.height),a.width=0,a.height=0,r===l.base64)return o;{const t=bt(o);if(r===l.blob)return t;if(r===l.download){const i=n.split("/")[1];Ei(t,e+"."+i)}}}screenshotWatermark(a){return new Promise((i,t)=>{if(qt(a)&&(a={filename:a}),!this._canScreenshot())return this.player.debug.warn("Video","screenshot failed, video is not ready"),t("screenshot failed, video is not ready");var e=this.$videoElement;(a=a||{}).width=e.videoWidth,a.height=e.videoHeight,a.filename=a.filename||p(),a.format=a.format?d[a.format]:d.png,a.quality=Number(a.quality)||.92,a.type=a.type||l.download;let r=this.$canvasElement;r.width=e.videoWidth,r.height=e.videoHeight,this.canvasContext.drawImage(e,0,0,r.width,r.height);const s=r.toDataURL(a.format,a.quality);this.canvasContext.clearRect(0,0,r.width,r.height),r.width=0,r.height=0,Gt(s,a).then(e=>{if(a.type===l.base64)i(s);else{var t=bt(e);if(a.type===l.blob)i(t);else if(a.type===l.download){i();const e=a.format.split("/")[1];Ei(t,a.filename+"."+e)}}}).catch(e=>{t(e)})})}initCanvasViewSize(){this.resize()}clear(){const e=this.$videoElement,t=e.buffered,i=t.length?t.end(t.length-1):0;e.currentTime=i}render(t){if(this.vwriter){if(this.$videoElement.srcObject||(this.$videoElement.srcObject=this.mediaStream),this.$videoElement.paused&&this.player.debug.warn("Video","render error, video is paused"),this.player.videoTimestamp=t.ts||0,this.player.updateStats({fps:!0,ts:t.ts||0}),t.videoFrame)this.vwriter.write(t.videoFrame),ti(t.videoFrame);else if(t.output){let e=t.output;this.player.faceDetectActive&&this.player.ai&&this.player.ai.faceDetector&&(e=this.player.ai.faceDetector.detect({width:this.videoInfo.width,height:this.videoInfo.height,data:t.output})),this.player.objectDetectActive&&this.player.ai&&this.player.ai.objectDetector&&(e=this.player.ai.objectDetector.detect({width:this.videoInfo.width,height:this.videoInfo.height,data:t.output}));try{r=e,s={format:"I420",codedWidth:this.videoInfo.width,codedHeight:this.videoInfo.height,timestamp:t.ts};var i=new VideoFrame(r,s);this.vwriter.write(i),ti(i)}catch(t){this.player.debug.error("Video","render error",t),this.player.emitError(v.wasmUseVideoRenderError,t)}}this.doAddContentToWatermark()}else this.player.debug.warn("Video","render and this.vwriter is null");var r,s}resize(){let e=this.player.width,t=this.player.height;const i=this.player._opt,r=i.rotate;if(i.hasControl&&!i.controlAutoHide){const r=i.playType===A?48:38;m()&&this.player.fullscreen&&i.useWebFullScreen?e-=r:t-=r}this.$videoElement.width=e,this.$videoElement.height=t,270!==r&&90!==r||(this.$videoElement.width=t,this.$videoElement.height=e);let s=(e-this.$videoElement.width)/2,a=(t-this.$videoElement.height)/2,n="contain",o=(i.isResize||(n="fill"),i.isFullResize&&(n="none"),"");"none"===i.mirrorRotate&&r&&(o+=" rotate("+r+"deg)"),"level"===i.mirrorRotate?o+=" rotateY(180deg)":"vertical"===i.mirrorRotate&&(o+=" rotateX(180deg)"),this.player._opt.videoRenderSupportScale&&(this.$videoElement.style.objectFit=n),this.$videoElement.style.transform=o,this.$videoElement.style.left=s+"px",this.$videoElement.style.top=a+"px"}getType(){return q}isPlaying(){return this.$videoElement&&g(this.$videoElement.paused)&&g(this.$videoElement.ended)&&0!==this.$videoElement.playbackRate&&0!==this.$videoElement.readyState}_canScreenshot(){return this.$videoElement&&2<=this.$videoElement.readyState}addContentToCanvas(){this.tempContentList=0{let t={left:e.x,top:e.y};return"text"===e.type?t.text={content:e.text,fontSize:e.fontSize,color:e.color}:"rect"===e.type&&(t.rect={width:e.width,height:e.height,color:e.color,lineWidth:e.lineWidth}),t}),this.contentWatermark.update(e)):this.contentWatermark&&this.contentWatermark.remove()}getPlaybackQuality(){let e=null;var t;return this.$videoElement&&(e=E(this.$videoElement.getVideoPlaybackQuality)?{droppedVideoFrames:(t=this.$videoElement.getVideoPlaybackQuality()).droppedVideoFrames||t.corruptedVideoFrames,totalVideoFrames:t.totalVideoFrames,creationTime:t.creationTime}:{droppedVideoFrames:this.$videoElement.webkitDroppedFrameCount,totalVideoFrames:this.$videoElement.webkitDecodedFrameCount,creationTime:p()})&&(e.renderedVideoFrames=e.totalVideoFrames-e.droppedVideoFrames),e}}class Di extends Ti{constructor(e){super(e),this.controlHeight=48,this.bufferList=[],this.playing=!1,this.playInterval=null,this.fps=1,this.preFps=1,this.streamFps=0,this.playbackRate=1,this._firstTimestamp=null,this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._hasCalcFps=!1,this.player.on(b.playbackPause,e=>{e?(this.pause(),this.player.playback.isPlaybackPauseClearCache&&this.clear()):this.resume()}),this.player.debug.log("CanvasPlaybackLoader","init")}destroy(){this._stopSync(),this._firstTimestamp=null,this.playing=!1,this.playbackRate=1,this.fps=1,this.preFps=1,this.bufferList=[],this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._hasCalcFps=!1,super.destroy(),this.player.debug.log("CanvasPlaybackLoader","destroy")}_initCanvasRender(){this.player._opt.useWebGPU?(this.renderType=Ce,this._initContextGPU()):(this.renderType=r,this._initContextGl())}_sync(){this._stopSync(),this._doPlay(),this.playInterval=setInterval(()=>{this._doPlay()},this.fragDuration)}_doPlay(){var e;0 `+this.fps),this.player.playback.isUseFpsRender&&this._sync()):this.player.debug.log("CanvasPlaybackLoader","setFps, same fps "+e)}setStreamFps(e){this.player.debug.log("CanvasPlaybackLoader","setStreamFps",e),this._hasCalcFps=!0,this.streamFps=e,this.preFps=e,this.setFps(e)}setRate(e){e!==this.playbackRate&&(this.playbackRate=e,this.player.playback.isUseFpsRender&&this._sync())}render$2(e){null===this._firstTimestamp&&(this._firstTimestamp=e.ts);var t={tfTs:e.ts-this._firstTimestamp,ts:e.ts,buffer:e.output};this.bufferList.push(t),this.startRender(),this.player.handleRender(),this.player.playback.updateStats({ts:e.ts,tfTs:t.tfTs})}startRender(){for(;!(this.bufferList.length<=0);){var e=this.bufferList.shift();this._doRender(e.buffer)}}pushData(e){null===this._firstTimestamp&&(this._firstTimestamp=e.ts);const t={tfTs:e.ts-this._firstTimestamp,ts:e.ts,buffer:e.output},i=this.player._opt.playbackConfig.isCacheBeforeDecodeForFpsRender;if(i||this.bufferSize>this.fps*this.playbackRate*2&&(this.player.debug.warn("CanvasPlaybackLoader","buffer size is "+this.bufferSize),this._doPlay()),this.bufferList.push(t),!this._hasCalcFps){const e=ri(this.bufferList);null!==e&&e!==this.preFps&&(this.player.debug.log("CanvasPlaybackLoader",`calc fps is ${e} pre fps is ${this.preFps} and updatePreFps`),this.setStreamFps(e))}if(!i){const e=this.bufferList.length,t=e/(this.fps*this.playbackRate);this.player.debug.log("CanvasPlaybackLoader","rate is",t),t<=1?this.setFps(this.preFps):(this.setFps(this.fps+Math.floor(t*this.playbackRate)),this.player.debug.warn("CanvasPlaybackLoader","rate is",t,"fps is",this.fps,"bufferListLength is",e))}this.bufferList.length}initVideo(){this.player.playback&&this.player.playback.isUseFpsRender&&this._sync(),this.playing=!0}initVideoDelay(){var e=this.player._opt.playbackDelayTime;0{this.initVideo()},e):this.initVideo()}clearView(){this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT)}clear(){this.bufferList=[]}resume(){this.player.playback.isUseFpsRender&&this._sync(),this.playing=!0}pause(){this.player.playback.isUseFpsRender&&this._stopSync(),this.playing=!1}}class Ri{constructor(e){return new(Ri.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.useMSE?e.mseUseCanvasRender?ki:Ci:e.isHls&&g(e.supportHls265)?e.useCanvasRender?ki:Ci:e.isWebrtc?Ci:e.useWCS?!e.useOffscreen&&e.wcsUseVideoRender?Ci:ki:e.playType===A?Di:e.wasmUseVideoRender&&!e.useOffscreen?Ci:ki}}class Li extends e{constructor(e){super(),this.bufferList=[],this.player=e,this.$audio=null,this.scriptNode=null,this.workletProcessorNode=null,this.hasInitScriptNode=!1,this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:48e3}),this.gainNode=this.audioContext.createGain();const t=this.audioContext.createBufferSource();t.buffer=this.audioContext.createBuffer(1,1,22050),t.connect(this.audioContext.destination),t.noteOn?t.noteOn(0):t.start(0),this.audioBufferSourceNode=t,this.mediaStreamAudioDestinationNode=this.audioContext.createMediaStreamDestination(),this.gainNode.gain.value=0,this.playing=!1,this.audioSyncVideoOption={diff:null},this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1,this.hasAudio=!1,this.audioResumeStateTimeout=null,this.on(b.videoSyncAudio,e=>{this.audioSyncVideoOption=e})}destroy(){this.closeAudio(),this.resetInit(),this.audioContext.close(),this.audioContext=null,this.gainNode=null,this.hasAudio=!1,this.playing=!1,this.scriptNode&&(this.scriptNode.onaudioprocess=yt,this.scriptNode=null),this.workletProcessorNode&&(this.workletProcessorNode.port.onmessage=yt,this.workletProcessorNode=null),this.audioResumeStateTimeout&&(clearTimeout(this.audioResumeStateTimeout),this.audioResumeStateTimeout=null),this.audioBufferSourceNode=null,this.mediaStreamAudioDestinationNode=null,this.hasInitScriptNode=!1,this.audioSyncVideoOption={diff:null},this.off()}resetInit(){this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1}getAudioInfo(){return this.audioInfo}updateAudioInfo(e){e.encTypeCode&&(this.audioInfo.encType=be[e.encTypeCode]),e.channels&&(this.audioInfo.channels=e.channels),e.sampleRate&&(this.audioInfo.sampleRate=e.sampleRate),this.audioInfo.sampleRate&&this.audioInfo.channels&&this.audioInfo.encType&&!this.init&&(this.player.emit(b.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return this.playing}get isMute(){return 0===this.gainNode.gain.value}get volume(){return this.gainNode.gain.value}get bufferSize(){return this.bufferList.length}initScriptNode(){}initMobileScriptNode(){}initWorkletScriptNode(){}getEngineType(){return""}mute(e){e?(this.isMute||this.player.emit(b.mute,e),this.setVolume(0),this.clear()):(this.isMute&&this.player.emit(b.mute,e),this.setVolume(.5))}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(this.audioEnabled(!0),e=_(e,0,1),this.gainNode.gain.value=e,this.player.emit(b.volumechange,this.player.volume))}closeAudio(){this.hasInitScriptNode&&(this.scriptNode&&this.scriptNode.disconnect(this.gainNode),this.workletProcessorNode&&this.workletProcessorNode.disconnect(this.gainNode),this.gainNode&&(this.gainNode.disconnect(this.mediaStreamAudioDestinationNode),this.$audio||this.gainNode.disconnect(this.audioContext.destination))),this.clear()}audioEnabled(e){e?this.isStateSuspended()&&(this.audioContext.resume().then(()=>{this.player.emit(b.audioResumeState,{state:this.audioContext.state,isRunning:this.isStateRunning()})}),this.audioResumeStateTimeout=setTimeout(()=>{clearTimeout(this.audioResumeStateTimeout),this.audioResumeStateTimeout=null,this.isStateSuspended()&&this.player.emit(b.audioResumeState,{state:this.audioContext.state,isRunning:this.isStateRunning()})},1e3)):this.isStateRunning()&&this.audioContext.suspend()}isStateRunning(){return"running"===this.audioContext.state}isStateSuspended(){return"suspended"===this.audioContext.state}clear(){this.bufferList=[]}play(e,t){}pause(){this.audioSyncVideoOption={diff:null},this.playing=!1}resume(){this.playing=!0}setRate(e){}getAudioBufferSize(){return 0}}class Ii{constructor(e,t,i,r){this.player=e,this.audio=t,this.channel=i,this.bufferSize=r}extract(t,e){var i=this.provide(e);for(let e=0;en){try{for(let e=0;ethis._frameCount)||(e=this.frameCount),this._frameCount-=e,this._position+=e}receiveSamples(e){var t=1=e-1)break e;var o=i+2*a;r[s+2*n]=(1-this.slopeCount)*t[o]+this.slopeCount*t[o+2],r[s+2*n+1]=(1-this.slopeCount)*t[o+1]+this.slopeCount*t[o+3],n+=1,this.slopeCount+=this._rate}return this.prevSampleL=t[i+2*e-2],this.prevSampleR=t[i+2*e-1],n}}function Mi(){}class Fi extends class{constructor(e){this._pipe=e}get pipe(){return this._pipe}get inputBuffer(){return this._pipe.inputBuffer}get outputBuffer(){return this._pipe.outputBuffer}fillInputBuffer(){throw new Error("fillInputBuffer() not overridden")}fillOutputBuffer(){let e=0this._position)throw new RangeError("New position may not be greater than current position");var t=this.outputBufferPosition-(this._position-e);if(t<0)throw new RangeError("New position falls outside of history buffer");this.outputBufferPosition=t,this._position=e}get sourcePosition(){return this._sourcePosition}set sourcePosition(e){this.clear(),this._sourcePosition=e}onEnd(){this.callback()}fillInputBuffer(){var e=0t&&(t=i,e=r);return e}seekBestOverlapPositionStereoQuick(){let t,i,r,s,a,n=0;for(this.preCalculateCorrelationReferenceStereo(),i=Number.MIN_VALUE,t=0,s=0,a=0;n<4;n+=1){let e=0;for(;Oi[n][e]&&!((a=s+Oi[n][e])>=this.seekLength);)(r=this.calculateCrossCorrelationStereo(2*a,this.refMidBuffer))>i&&(i=r,t=a),e+=1;s=t}return t}preCalculateCorrelationReferenceStereo(){let e,t,i=0;for(;i=this.sampleReq;){e=this.seekBestOverlapPosition(),this._outputBuffer.ensureAdditionalCapacity(this.overlapLength),this.overlap(Math.floor(e)),this._outputBuffer.put(this.overlapLength),0<(t=this.seekWindowLength-2*this.overlapLength)&&this._outputBuffer.putBuffer(this._inputBuffer,e+this.overlapLength,t);var t=this._inputBuffer.startIndex+2*(e+this.seekWindowLength-this.overlapLength);this.midBuffer.set(this._inputBuffer.vector.subarray(t,t+2*this.overlapLength)),this.skipFract+=this.nominalSkip,e=Math.floor(this.skipFract),this.skipFract-=e,this._inputBuffer.receive(e)}}}function ji(e,t){return 1e-10<(t{e()}),this.eventListenList=[]),this.$audio&&(this.$audio.pause(),this.$audio.srcObject=null,this.$audio.parentNode&&this.$audio.parentNode.removeChild(this.$audio),this.$audio=null),this.processor&&(this.processor.destroy(),this.processor=null),this.rateProcessor&&(this.rateProcessor.destroy(),this.rateProcessor=null),this.scriptNodeInterval&&(clearInterval(this.scriptNodeInterval),this.scriptNodeInterval=null),this.defaultPlaybackRate=1,this.playbackRate=1,this.scriptStartTime=0,this.audioBufferSize=0,this.engineType=rt,this.player.debug.log("AudioContext","destroy")}isAudioPlaying(){return this.$audio&&g(this.$audio.paused)&&g(this.$audio.ended)&&0!==this.$audio.playbackRate&&0!==this.$audio.readyState}_bindAudioProxy(){const e=this.player.events["proxy"],t=e(this.$audio,"canplay",()=>{this.player.debug.log("AudioContext","canplay"),this._delayPlay&&this._audioElementPlay()});this.eventListenList.push(t)}_getAudioElementReadyState(){let e=0;return e=this.$audio?this.$audio.readyState:e}audioElementPlay(){if(this.$audio){var e=this._getAudioElementReadyState();if(this.player.debug.log("AudioContext","play and readyState: "+e),!(0!==e||Jt()&&kt()))return this.player.debug.warn("AudioContext","readyState is 0 and set _delayPlay to true"),void(this._delayPlay=!0);this._audioElementPlay()}}_audioElementPlay(){this.$audio&&this.$audio.play().then(()=>{this._delayPlay=!1,this.player.debug.log("AudioContext","_audioElementPlay success"),setTimeout(()=>{this.isAudioPlaying()||(this.player.debug.warn("AudioContext","play failed and retry play"),this._audioElementPlay())},100),this.isAudioPlaying()&&(this.player.debug.log("AudioContext","play success and remove document click event listener"),document.removeEventListener("click",this._audioElementPlay.bind(this)))}).catch(e=>{this.player.debug.error("AudioContext","_audioElementPlay error",e),document.addEventListener("click",this._audioElementPlay.bind(this))})}getAudioBufferSize(){return this.audioBufferSize}get oneBufferDuration(){return this.audioBufferSize/this.audioContext.sampleRate*1e3}get isActiveEngineType(){return this.engineType===st}initProcessor(){this.processor=new Ii(this.player,this,this.audioInfo.channels,this.audioBufferSize),this.rateProcessor=new Gi(this.player,this,this.processor)}getAutoAudioEngineType(){let e=this.player._opt.audioEngine||rt;var t=()=>{e=Jt()&&function(){var e=window.navigator.userAgent.toLowerCase();return/android/i.test(e)}()?st:(!kt()||!this.player._opt.supportLockScreenPlayAudio)&&ii()?it:rt};return this.player._opt.audioEngine?this.player._opt.audioEngine===it&&ii()?e=it:this.player._opt.audioEngine===st?e=st:this.player._opt.audioEngine===rt?e=rt:t():t(),e}getAudioBufferSizeByType(){var e=this.engineType,t=(this.player._opt.hasVideo,this.player._opt.weiXinInAndroidAudioBufferSize);return e!==it&&e===st?t||4800:1024}initScriptNode(){this.playing=!0,this.hasInitScriptNode||(this.initProcessor(),this.engineType===it?this.initWorkletScriptNode():this.engineType===st?this.initIntervalScriptNode():this.engineType===rt&&this.initProcessScriptNode(),this.audioElementPlay())}getEngineType(){return this.engineType}isPlaybackRateSpeed(){return this.playbackRate>this.defaultPlaybackRate}initProcessScriptNode(){const e=this.audioContext.createScriptProcessor(this.audioBufferSize,0,this.audioInfo.channels);e.onaudioprocess=e=>{e=e.outputBuffer;this.handleScriptNodeCallback(e)},e.connect(this.gainNode),this.scriptNode=e,this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.$audio?this.$audio.srcObject=this.mediaStreamAudioDestinationNode.stream:this.gainNode.connect(this.audioContext.destination),this.hasInitScriptNode=!0}initIntervalScriptNode(){this.scriptStartTime=0;var e=1e3*this.audioBufferSize/this.audioContext.sampleRate;this.scriptNodeInterval=setInterval(()=>{const e=this.audioContext.createBufferSource(),t=this.audioContext.createBuffer(this.audioInfo.channels,this.audioBufferSize,this.audioContext.sampleRate);this.handleScriptNodeCallback(t,()=>{this.scriptStartTime{"init"===e.data.message?(this.audioBufferSize=e.data.audioBufferSize,this.start=e.data.start,this.channels=e.data.channels,this.state=0,this.offset=0,this.samplesArray=[]):"stop"===e.data.message?(this.state=0,this.start=!1,this.offset=0,this.samplesArray=[]):"data"===e.data.message?this.samplesArray.push(e.data.buffer):"zero"===e.data.message&&this.samplesArray.push({left:new Float32Array(this.audioBufferSize).fill(0),right:new Float32Array(this.audioBufferSize).fill(0)})}}process(t,e,i){const r=e[0][0],s=e[0][1];if(0===this.offset&&this.port.postMessage({message:"beep"}),0===this.state)this.state=1;else if(1===this.state&&4<=this.samplesArray.length)this.state=2;else if(2===this.state){const t=this.samplesArray[0];for(let e=0;e{if(this.audioContext){let e=[1];2===this.audioInfo.channels&&(e=[1,1]),this.workletProcessorNode=new AudioWorkletNode(this.audioContext,"worklet-processor",{numberOfOutputs:this.audioInfo.channels,outputChannelCount:e}),this.workletProcessorNode.connect(this.gainNode),this.gainNode.connect(this.mediaStreamAudioDestinationNode),this.$audio?this.$audio.srcObject=this.mediaStreamAudioDestinationNode.stream:this.gainNode.connect(this.audioContext.destination),this.hasInitScriptNode=!0,this.workletProcessorNode.port.postMessage({message:"init",audioBufferSize:this.audioBufferSize,start:!0,channels:this.audioInfo.channels}),this.workletProcessorNode.port.onmessage=e=>{this.workletProcessorNode?this.audioContext?this.handleScriptNodeCallback(this.workletProcessorNode,null,!0):this.workletProcessorNode.port.postMessage({message:"zero"}):this.player.debug.error("AudioContext","workletProcessorNode is null")}}else this.player.debug.error("AudioContext","initWorkletScriptNode audioContext is null")})}handleScriptNodeCallback(e,t){let i,r=2i)return this.player.debug.warn("AudioContext",`bufferList length ${this.bufferList.length} more than ${i}, and drop`),void this.clear();this.bufferList.length>t?(e=this.defaultPlaybackRate+.1,this.player.debug.warn("AudioContext",`bufferList length ${this.bufferList.length} more than ${t}, speed up, playbackRate is `+e)):this.bufferList.length{this.listenPlaybackPause(e)}),this.player.debug.log("AudioPlaybackContext","init")}destroy(){this.delayTimeout&&(clearTimeout(this.delayTimeout),this.delayTimeout=null),super.destroy(),this.player.debug.log("AudioPlaybackLoader","destroy")}listenPlaybackPause(e){e?(this.pause(),this.player.playback.isPlaybackPauseClearCache&&this.clear()):this.resume()}initScriptNodeDelay(){var e=this.player._opt.playbackDelayTime;0{this.initScriptNode()},e):this.initScriptNode()}setRate(e){e!==this.defaultPlaybackRate&&this.rateProcessor&&(this.player.debug.log("AudioPlaybackContext","setRate",e),this.defaultPlaybackRate=e,this.updatePlaybackRate(e))}}class Ki extends Hi{constructor(e){super(e),this.TAG_NAME="AudioPlayerLoader",this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.TAG_NAME,"destroy")}play(e,t){g(this.playing)||super.play(e,t)}pause(){this.player.debug.log(this.TAG_NAME,"pause"),this.playing=!1,this.clear()}resume(){this.player.debug.log(this.TAG_NAME,"resume"),this.playing=!0}}class Yi{constructor(e){return new(Yi.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.playType===A?Wi:e.playType===N?Ki:e.isHls&&g(e.supportHls265)||e.isWebrtc?Vi:Hi}}class qi extends e{constructor(t){super(),this.player=t,this.playing=!1,this.abortController=new AbortController,this.streamRate=St(e=>{t.emit(b.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("FetchStream","init")}destroy(){this.abort(),this.off(),this.streamRate=null,this.stopStreamRateInterval(),this.player.debug.log("FetchStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}fetchStream(e){var t=1{if(!(e.ok&&200<=e.status&&e.status<=299))return this.player.debug.error("FetchStream",`fetch response status is ${e.status} and ok is ${e.ok} and emit error and next abort()`),this.abort(),void this.emit(v.fetchError,`fetch response status is ${e.status} and ok is `+e.ok);if(this.emit(b.streamSuccess),this.startStreamRateInterval(),"undefined"!=typeof WritableStream)e.body.pipeTo(new WritableStream({write:e=>(this.streamRate&&this.streamRate(e.byteLength),r.dispatch(e)),close:()=>{r.close()},abort:e=>{r.close();const t=e.toString();-1===t.indexOf(Je)&&-1===t.indexOf(Qe)&&e.name!==$e&&(this.abort(),this.emit(v.fetchError,e))}}));else{this.player.debug.log("FetchStream","not support WritableStream and use getReader() to read stream");const t=e.body.getReader(),i=()=>{t.read().then(e=>{var{done:e,value:t}=e;e?r.close():(this.streamRate&&this.streamRate(t.byteLength),r.dispatch(t),i())}).catch(e=>{r.close();const t=e.toString();-1===t.indexOf(Je)&&-1===t.indexOf(Qe)&&e.name!==$e&&(this.abort(),this.emit(v.fetchError,e))})};i()}}).catch(e=>{"AbortError"!==e.name&&(r.close(),this.abort(),this.emit(v.fetchError,e))})}abort(){this.abortController&&(this.abortController.abort(),this.abortController=null)}getStreamType(){return i}}class Ji extends e{constructor(t){super(),this.player=t,this.socket=null,this.socketStatus=ce,this.wsUrl=null,this.socketDestroyFnList=[],this.streamRate=St(e=>{t.emit(b.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("WebsocketStream","init")}destroy(){this._closeWebSocket(),this.stopStreamRateInterval(),this.wsUrl=null,this.off(),this.player.debug.log("WebsocketStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebSocket(){const e=this.player,{debug:t,events:{proxy:i},demux:r}=e;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer";var s=i(this.socket,"open",()=>{t.log("WebsocketStream","socket open"),this.socketStatus=ue,this.emit(b.streamSuccess),this.player.emit(b.websocketOpen),this.startStreamRateInterval()}),a=i(this.socket,"message",e=>{this.streamRate&&this.streamRate(e.data.byteLength),this._handleMessage(e.data)}),n=i(this.socket,"close",e=>{t.log("WebsocketStream","socket close and code is "+e.code),1006===e.code&&t.error("WebsocketStream","socket close abnormally and code is "+e.code),r.close(),this.socketStatus="close",this.player.emit(b.websocketClose),this.emit(b.streamEnd)}),o=i(this.socket,"error",e=>{t.error("WebsocketStream","socket error",e),this.socketStatus="error",this.emit(v.websocketError,e),r.close(),t.log("WebsocketStream","socket error:",e.isTrusted?"websocket user aborted":"websocket error")});this.socketDestroyFnList.push(s,a,n,o)}_closeWebSocket(){this.socketDestroyFnList.forEach(e=>e()),this.socket&&(this.socket.close(1e3,"Client disconnecting"),this.socket=null),this.socketStatus=ce,this.streamRate=null}_handleMessage(e){const t=this.player["demux"];t?t.dispatch(e):this.player.debug.warn("WebsocketStream","websocket handle message demux is null")}fetchStream(e,t){this.player._times.streamStart=p(),this.wsUrl=e,this._createWebSocket()}sendMessage(e){this.socket?this.socketStatus===ue?this.socket.send(e):this.player.debug.error("WebsocketStream","websocket send message error and socket status is "+this.socketStatus):this.player.debug.error("WebsocketStream","websocket send message socket is null")}resetFetchStream(){this._closeWebSocket(),this._createWebSocket()}getStreamType(){return F}}class Qi extends e{constructor(e){super(),(this.player=e).debug.log("HlsStream","init")}destroy(){this.off(),this.player.debug.log("HlsStream","destroy")}fetchStream(e){const t=this.player["hlsDecoder"];this.player._times.streamStart=p(),t.loadSource(e).then(()=>{this.player.debug.log("HlsStream","loadSource success"),this.emit(b.streamSuccess)}).catch(e=>{this.emit(v.hlsError,e)})}getStreamType(){return"hls"}}class $i extends e{constructor(e){super(),this.player=e,this.webrctUrl=null,e.debug.log("WebrtcStream","init")}destroy(){this.webrctUrl=null,this.off(),this.player.debug.log("WebrtcStream","destroy")}fetchStream(e){const t=this.player["webrtc"];this.player._times.streamStart=p(),this.webrctUrl=e.replace("webrtc:",window.location.protocol),t.loadSource(this.webrctUrl).then(()=>{this.player.debug.log("WebrtcStream","loadSource success"),this.emit(b.streamSuccess)}).catch(e=>{this.emit(v.webrtcError,e)})}getStreamType(){return"webrtc"}}class Xi extends e{constructor(t){super(),this.player=t,this.transport=null,this.wtUrl=null,this.streamRate=St(e=>{t.emit(b.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("WebTransportLoader","init")}destroy(){this.abort(),this.off(),this.player.debug.log("WebTransportLoader","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebTransport(){const e=this.player,{events:{},demux:t}=e;try{this.transport=new WebTransport(this.wtUrl),this.transport.ready.then(()=>{this.emit(b.streamSuccess),this.startStreamRateInterval(),this.transport.createBidirectionalStream().then(e=>{e.readable.pipeTo(new WritableStream(t.input))})}).catch(e=>{this.player.debug.warn("WebTransportLoader","_createWebTransport-ready",e)})}catch(e){this.player.debug.warn("WebTransportLoader","_createWebTransport",e)}}fetchStream(e){this.player._times.streamStart=p(),this.wtUrl=e.replace(/^wt/,"https"),this._createWebTransport()}abort(){if(this.transport)try{this.transport.close(),this.transport=null}catch(e){this.transport=null}}getStreamType(){return"webTransport"}}class Zi extends e{constructor(e){super(),this.player=e,this.workUrl=null,e.debug.log("WorkerStream","init")}destroy(){this.workUrl=null,this.off(),this.player.debug.log("WorkerStream","destroy")}sendMessage(e){this.player.decoderWorker.workerSendMessage(e)}fetchStream(e){this.workUrl=e,this.player._times.streamStart=p(),this.player.decoderWorker.workerFetchStream(e)}getStreamType(){var e=this.player._opt.protocol;return O+" "+(2===e?i:F)}}class er{constructor(e){return new(er.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){var{protocol:t,useWasm:i,playType:r}=e;return 2===t?r===N||r!==n||i&&!Zt(e)?Zi:qi:1===t?r===N||r!==n||i&&!Zt(e)?Zi:Ji:3===t?Qi:4===t?$i:5===t?Xi:void 0}}var tr=ht(function(e){function E(i,s){if(!i)throw"First parameter is required.";s=new f(i,s=s||{type:"video"});var a=this;function t(e){e&&(s.initCallback=function(){e(),e=s.initCallback=null});var t=new m(i,s);(h=new t(i,s)).record(),d("recording"),s.disableLogs||console.log("Initialized recorderType:",h.constructor.name,"for output-type:",s.type)}function n(r){if(r=r||function(){},h){if("paused"===a.state)return a.resumeRecording(),void setTimeout(function(){n(r)},1);"recording"===a.state||s.disableLogs||console.warn('Recording state should be: "recording", however current state is: ',a.state),s.disableLogs||console.log("Stopped recording "+s.type+" stream."),"gif"!==s.type?h.stop(e):(h.stop(),e()),d("stopped")}else c();function e(e){if(h){Object.keys(h).forEach(function(e){"function"!=typeof h[e]&&(a[e]=h[e])});var t,i=h.blob;if(!i){if(!e)throw"Recording failed.";h.blob=i=e}if(i&&!s.disableLogs&&console.log(i.type,"->",A(i.size)),r){try{t=w.createObjectURL(i)}catch(e){}"function"==typeof r.call?r.call(a,t):r(t)}s.autoWriteToDisk&&l(function(e){var t={};t[s.type+"Blob"]=e,D.Store(t)})}else"function"==typeof r.call?r.call(a,""):r("")}}function o(e){postMessage((new FileReaderSync).readAsDataURL(e))}function l(t,e){if(!t)throw"Pass a callback function over getDataURL.";var i,r=(e||h||{}).blob;if(!r)return s.disableLogs||console.warn("Blob encoder did not finish its job yet."),void setTimeout(function(){l(t,e)},1e3);"undefined"==typeof Worker||navigator.mozGetUserMedia?((i=new FileReader).readAsDataURL(r),i.onload=function(e){t(e.target.result)}):((i=function(e){try{var t=w.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),i=new Worker(t);return w.revokeObjectURL(t),i}catch(e){}}(o)).onmessage=function(e){t(e.data)},i.postMessage(r))}function r(e){e=e||0,"paused"!==a.state?"stopped"!==a.state&&(e>=a.recordingDuration?n(a.onRecordingStopped):(e+=1e3,setTimeout(function(){r(e)},1e3))):setTimeout(function(){r(e)},1e3)}function d(e){a&&(a.state=e,"function"==typeof a.onStateChanged.call?a.onStateChanged.call(a,e):a.onStateChanged(e))}var h,e='It seems that recorder is destroyed or "startRecording" is not invoked for '+s.type+" recorder.";function c(){!0!==s.disableLogs&&console.warn(e)}var u,p={startRecording:function(e){return s.disableLogs||console.log("RecordRTC version: ",a.version),(s=e?new f(i,e):s).disableLogs||console.log("started recording "+s.type+" stream."),h?(h.clearRecordedData(),h.record(),d("recording"),a.recordingDuration&&r()):t(function(){a.recordingDuration&&r()}),a},stopRecording:n,pauseRecording:function(){h?"recording"===a.state?(d("paused"),h.pause(),s.disableLogs||console.log("Paused recording.")):s.disableLogs||console.warn("Unable to pause the recording. Recording state: ",a.state):c()},resumeRecording:function(){h?"paused"===a.state?(d("recording"),h.resume(),s.disableLogs||console.log("Resumed recording.")):s.disableLogs||console.warn("Unable to resume the recording. Recording state: ",a.state):c()},initRecorder:t,setRecordingDuration:function(e,t){if(void 0===e)throw"recordingDuration is required.";if("number"!=typeof e)throw"recordingDuration must be a number.";return a.recordingDuration=e,a.onRecordingStopped=t||function(){},{onRecordingStopped:function(e){a.onRecordingStopped=e}}},clearRecordedData:function(){h?(h.clearRecordedData(),s.disableLogs||console.log("Cleared old recorded data.")):c()},getBlob:function(){if(h)return h.blob;c()},getDataURL:l,toURL:function(){if(h)return w.createObjectURL(h.blob);c()},getInternalRecorder:function(){return h},save:function(e){h?b(h.blob,e):c()},getFromDisk:function(e){h?E.getFromDisk(s.type,e):c()},setAdvertisementArray:function(e){s.advertisement=[];for(var t=e.length,i=0;i>=8;return new Uint8Array(t.reverse())}(e[i].id)),t.push(n(a)),t.push(r)}return new Blob(t,{type:"video/webm"})}function o(e){for(var t=0,i={};t 127 not supported";return[128|e.trackNum,e.timecode>>8,255&e.timecode,t].map(function(e){return String.fromCharCode(e)}).join("")+e.frame}({discardable:0,frame:e.data.slice(4),invisible:0,keyframe:1,lacing:0,trackNum:1,timecode:Math.round(i)});return i+=e.duration,{data:t,id:163}}))}(a,0,n)};r[1].data.push(l),a+=o}return d(r)}(e.map(function(e){var t=function(e){for(var t=e.RIFF[0].WEBP[0],i=t.indexOf("*"),r=0,s=[];r<4;r++)s[r]=t.charCodeAt(i+3+r);return{width:16383&(s[1]<<8|s[0]),height:16383&(s[3]<<8|s[2]),data:t,riff:e}}(o(atob(e.image.slice(23))));return t.duration=e.duration,t}));postMessage(e)}E.Whammy=k;var D={init:function(){var i,e,t,r=this;function s(e){e.createObjectStore(r.dataStoreName)}function a(){var e=i.transaction([r.dataStoreName],"readwrite");function t(t){e.objectStore(r.dataStoreName).get(t).onsuccess=function(e){r.callback&&r.callback(e.target.result,t)}}r.videoBlob&&e.objectStore(r.dataStoreName).put(r.videoBlob,"videoBlob"),r.gifBlob&&e.objectStore(r.dataStoreName).put(r.gifBlob,"gifBlob"),r.audioBlob&&e.objectStore(r.dataStoreName).put(r.audioBlob,"audioBlob"),t("audioBlob"),t("videoBlob"),t("gifBlob")}"undefined"!=typeof indexedDB&&void 0!==indexedDB.open?(e=this.dbName||location.href.replace(/\/|:|#|%|\.|\[|\]/g,""),(t=indexedDB.open(e,1)).onerror=r.onError,t.onsuccess=function(){(i=t.result).onerror=r.onError,i.setVersion&&1!==i.version?i.setVersion(1).onsuccess=function(){s(i),a()}:a()},t.onupgradeneeded=function(e){s(e.target.result)}):console.error("IndexedDB API are not available in this browser.")},Fetch:function(e){return this.callback=e,this.init(),this},Store:function(e){return this.audioBlob=e.audioBlob,this.videoBlob=e.videoBlob,this.gifBlob=e.gifBlob,this.init(),this},onError:function(e){console.error(JSON.stringify(e,null,"\t"))},dataStoreName:"recordRTC",dbName:null};function R(e,i){"undefined"==typeof GIFEncoder&&((t=document.createElement("script")).src="https://www.webrtc-experiment.com/gif-recorder.js",(document.body||document.documentElement).appendChild(t)),i=i||{};var t,r,s=e instanceof CanvasRenderingContext2D||e instanceof HTMLCanvasElement,a=(this.record=function(){"undefined"!=typeof GIFEncoder&&l?(s||(i.width||(i.width=r.offsetWidth||320),i.height||(i.height=r.offsetHeight||240),i.video||(i.video={width:i.width,height:i.height}),i.canvas||(i.canvas={width:i.width,height:i.height}),n.width=i.canvas.width||320,n.height=i.canvas.height||240,r.width=i.video.width||320,r.height=i.video.height||240),(h=new GIFEncoder).setRepeat(0),h.setDelay(i.frameRate||200),h.setQuality(i.quality||10),h.start(),"function"==typeof i.onGifRecordingStarted&&i.onGifRecordingStarted(),c=p(function e(t){if(!0!==u.clearedRecordedData){if(a)return setTimeout(function(){e(t)},100);c=p(e),t-d<90||(!s&&r.paused&&r.play(),s||o.drawImage(r,0,0,n.width,n.height),i.onGifPreview&&i.onGifPreview(n.toDataURL("image/png")),h.addFrame(o),d=t)}}),i.initCallback&&i.initCallback()):setTimeout(u.record,1e3)},!(this.stop=function(e){e=e||function(){},c&&g(c),this.blob=new Blob([new Uint8Array(h.stream().bin)],{type:"image/gif"}),e(this.blob),h.stream().bin=[]})),n=(this.pause=function(){a=!0},this.resume=function(){a=!1},this.clearRecordedData=function(){u.clearedRecordedData=!0,h&&(h.stream().bin=[])},this.name="GifRecorder",this.toString=function(){return this.name},document.createElement("canvas")),o=n.getContext("2d"),l=(s&&(e instanceof CanvasRenderingContext2D?n=(o=e).canvas:e instanceof HTMLCanvasElement&&(o=e.getContext("2d"),n=e)),!0);s||((r=document.createElement("video")).muted=!0,r.autoplay=!0,r.playsInline=!0,l=!1,r.onloadedmetadata=function(){l=!0},S(e,r),r.play());var d,h,c=null,u=this}function L(r,s){s=s||"multi-streams-mixer";var a=[],n=!1,o=document.createElement("canvas"),l=o.getContext("2d"),d=(o.style.opacity=0,o.style.position="absolute",o.style.zIndex=-1,o.style.top="-1000em",o.style.left="-1000em",o.className=s,(document.body||document.documentElement).appendChild(o),this.disableLogs=!1,this.frameInterval=10,this.width=360,this.height=240,this.useGainNode=!0,this),e=window.AudioContext;void 0===e&&("undefined"!=typeof webkitAudioContext&&(e=webkitAudioContext),"undefined"!=typeof mozAudioContext&&(e=mozAudioContext));window.URL,"undefined"!=typeof navigator&&void 0===navigator.getUserMedia&&(void 0!==navigator.webkitGetUserMedia&&(navigator.getUserMedia=navigator.webkitGetUserMedia),void 0!==navigator.mozGetUserMedia&&(navigator.getUserMedia=navigator.mozGetUserMedia));var h=window.MediaStream,c=(void 0!==(h=void 0===h&&"undefined"!=typeof webkitMediaStream?webkitMediaStream:h)&&void 0===h.prototype.stop&&(h.prototype.stop=function(){this.getTracks().forEach(function(e){e.stop()})}),{});function u(){var e,t,i;n||(e=a.length,t=!1,i=[],a.forEach(function(e){e.stream||(e.stream={}),e.stream.fullcanvas?t=e:i.push(e)}),t?(o.width=t.stream.width,o.height=t.stream.height):i.length?(o.width=1>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t;var t=this._current_word_bits_left?this._current_word:0,e=(t>>>=32-this._current_word_bits_left,e-this._current_word_bits_left),e=(this._fillCurrentWord(),Math.min(e,this._current_word_bits_left)),i=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class P{static _ebsp2rbsp(e){let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let e=0;e=this.buflen)return this.iserro=!0,0;this.iserro=!1,i=8>8-this.bufoff-i&255>>8-i),this.bufoff+=i,e-=i,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){var t=this.bufpos,i=this.bufoff,e=this.read(e);return this.bufpos=t,this.bufoff=i,e}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<>>24&255,i>>>16&255,i>>>8&255,255&i]),e=new Uint8Array(i+4);e.set(r,0),e.set(s.sps,4),s.sps=e}if(s.pps){const i=s.pps.byteLength,r=new Uint8Array([i>>>24&255,i>>>16&255,i>>>8&255,255&i]),e=new Uint8Array(i+4);e.set(r,0),e.set(s.pps,4),s.pps=e}return s}function ar(e){let{sps:t,pps:i}=e,r=8+t.byteLength+1+2+i.byteLength,s=!1;e=P.parseSPS$2(t);66!==t[3]&&77!==t[3]&&88!==t[3]&&(s=!0,r+=4);let a=new Uint8Array(r);a[0]=1,a[1]=t[1],a[2]=t[2],a[3]=t[3],a[4]=255,a[5]=225;var n=t.byteLength,o=(a[6]=n>>>8,a[7]=255&n,8),n=(a.set(t,8),o+=n,a[o]=1,i.byteLength);a[o+1]=n>>>8,a[o+2]=255&n,a.set(i,o+3),o+=3+n,s&&(a[o]=252|e.chroma_format_idc,a[o+1]=248|e.bit_depth_luma-8,a[o+2]=248|e.bit_depth_chroma-8,a[o+3]=0,o+=4);const l=[23,0,0,0,0],d=new Uint8Array(l.length+a.byteLength);return d.set(l,0),d.set(a,l.length),d}function nr(e,t){let i=[];i[0]=t?23:39,i[1]=1,i[2]=0,i[3]=0,i[4]=0;const r=new Uint8Array(i.length+e.byteLength);return r.set(i,0),r.set(e,i.length),r}function or(e){const t=e.byteLength,i=new Uint8Array(4),r=(i[0]=t>>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,new Uint8Array(t+4));return r.set(i,0),r.set(e,4),r}function lr(e){return 31&e[0]}function dr(e){return e===Ee}function hr(e){return(t=e)!==ve&&t!==_e&&!dr(e);var t}function cr(e){return e===Se}const ur=e=>{let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let e=0;e{switch(e){case 0:return"4:0:0";case 1:return"4:2:0";case 2:return"4:2:2";case 3:return"4:4:4";default:return"Unknown"}};function fr(e){let s={width:0,height:0,profile:0,level:0};e=e.slice(5);do{let t={};if(e.length<23)break;if(t.configurationVersion=e[0],1!=t.configurationVersion)break;t.general_profile_space=e[1]>>6&3,t.general_tier_flag=e[1]>>5&1,t.general_profile_idc=31&e[1],t.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],t.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],t.general_constraint_indicator_flags=t.general_constraint_indicator_flags<<16|e[10]<<8|e[11],t.general_level_idc=e[12],t.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],t.parallelismType=3&e[15],t.chromaFormat=3&e[16],t.bitDepthLumaMinus8=7&e[17],t.bitDepthChromaMinus8=7&e[18],t.avgFrameRate=e[19]<<8|e[20],t.constantFrameRate=e[21]>>6&3,t.numTemporalLayers=e[21]>>3&7,t.temporalIdNested=e[21]>>2&1,t.lengthSizeMinusOne=3&e[21];let i=e[22],r=e.slice(23);for(let e=0;e{let t=ur(e),i=new ir(t);return i.readByte(),i.readByte(),i.readBits(4),i.readBits(2),i.readBits(6),{num_temporal_layers:i.readBits(3)+1,temporal_id_nested:i.readBool()}})(e),a=(e=>{let t=ur(e),a=new ir(t),i=(a.readByte(),a.readByte(),0),r=0,s=0,n=0;a.readBits(4);var o=a.readBits(3);a.readBool();let l=a.readBits(2),d=a.readBool(),h=a.readBits(5),c=a.readByte(),u=a.readByte(),p=a.readByte(),f=a.readByte(),m=a.readByte(),g=a.readByte(),y=a.readByte(),M=a.readByte(),F=a.readByte(),O=a.readByte(),A=a.readByte(),b=[],N=[];for(let e=0;e{let t=ur(e),i=new ir(t),r=(i.readByte(),i.readByte(),i.readUEG(),i.readUEG(),i.readBool(),i.readBool(),i.readBits(3),i.readBool(),i.readBool(),i.readUEG(),i.readUEG(),i.readSEG(),i.readBool(),i.readBool(),i.readBool()&&i.readUEG(),i.readSEG(),i.readSEG(),i.readBool(),i.readBool(),i.readBool(),i.readBool(),i.readBool()),s=i.readBool(),a=1;return s&&r?a=0:s?a=3:r&&(a=2),{parallelismType:a}})(t),r=Object.assign(r,s,a,n);let o=23+(5+e.byteLength)+(5+i.byteLength)+(5+t.byteLength),l=new Uint8Array(o);l[0]=1,l[1]=(3&r.general_profile_space)<<6|(r.general_tier_flag?1:0)<<5|31&r.general_profile_idc,l[2]=r.general_profile_compatibility_flags_1||0,l[3]=r.general_profile_compatibility_flags_2||0,l[4]=r.general_profile_compatibility_flags_3||0,l[5]=r.general_profile_compatibility_flags_4||0,l[6]=r.general_constraint_indicator_flags_1||0,l[7]=r.general_constraint_indicator_flags_2||0,l[8]=r.general_constraint_indicator_flags_3||0,l[9]=r.general_constraint_indicator_flags_4||0,l[10]=r.general_constraint_indicator_flags_5||0,l[11]=r.general_constraint_indicator_flags_6||0,l[12]=60,l[13]=240|(3840&r.min_spatial_segmentation_idc)>>8,l[14]=255&r.min_spatial_segmentation_idc,l[15]=252|3&r.parallelismType,l[16]=252|3&r.chroma_format_idc,l[17]=248|7&r.bit_depth_luma_minus8,l[18]=248|7&r.bit_depth_chroma_minus8,l[19]=0,l[20]=0,l[21]=(3&r.constant_frame_rate)<<6|(7&r.num_temporal_layers)<<3|(r.temporal_id_nested?1:0)<<2|3,l[22]=3,l[23]=128|we,l[24]=0,l[25]=1,l[26]=(65280&e.byteLength)>>8,l[27]=(255&e.byteLength)>>0,l.set(e,28),l[23+(5+e.byteLength)+0]=128|Te,l[23+(5+e.byteLength)+1]=0,l[23+(5+e.byteLength)+2]=1,l[23+(5+e.byteLength)+3]=(65280&i.byteLength)>>8,l[23+(5+e.byteLength)+4]=(255&i.byteLength)>>0,l.set(i,23+(5+e.byteLength)+5),l[23+(5+e.byteLength+5+i.byteLength)+0]=128|ke,l[23+(5+e.byteLength+5+i.byteLength)+1]=0,l[23+(5+e.byteLength+5+i.byteLength)+2]=1,l[23+(5+e.byteLength+5+i.byteLength)+3]=(65280&t.byteLength)>>8,l[23+(5+e.byteLength+5+i.byteLength)+4]=(255&t.byteLength)>>0,l.set(t,23+(5+e.byteLength+5+i.byteLength)+5);const d=[28,0,0,0,0],h=new Uint8Array(d.length+l.byteLength);return h.set(d,0),h.set(l,d.length),h}function gr(e,t){let i=[];i[0]=t?28:44,i[1]=1,i[2]=0,i[3]=0,i[4]=0;const r=new Uint8Array(i.length+e.byteLength);return r.set(i,0),r.set(e,i.length),r}function yr(e){return(126&e[0])>>1}function Ar(e){return!(32<=e&&e<=40)}class br extends e{constructor(e){super(),this.player=e,this.fileName="",this._isRecording=!1,this._recordingTimestamp=0,this.recordingInterval=null,this.sps=null,this.pps=null,this.vps=null,this.codecId=null,this.mdatBytesLength=0,this.metaInfo={codecWidth:0,codecHeight:0,presentWidth:0,presentHeight:0,refSampleDuration:0,timescale:1e3,avcc:null,videoType:""}}destroy(){this._reset()}get isH264(){return 7===this.codecId}get isH265(){return 12===this.codecId}setFileName(e){this.fileName=e}get isRecording(){return this._isRecording}get recording(){return this._isRecording}get recordTime(){return this._recordingTimestamp}startRecord(){}handleAddNaluTrack(e,t,i,r){}handleAddTrack(e){}stopRecordAndSave(){}startRecordingInterval(){}stopRecordingInterval(){this.recordingInterval&&clearInterval(this.recordingInterval),this.recordingInterval=null}getToTalByteLength(){}_reset(){this.fileName="",this._isRecording=!1,this._recordingTimestamp=0,this.stopRecordingInterval(),this.sps=null,this.pps=null,this.vps=null,this.codecId=null,this.mdatBytesLength=0}initMetaData(e,t){let i;var r=e.slice(5);if(this.codecId=t,this.metaInfo.avcc=r,7===t)i=sr(r);else if(12===t){i=function(e){var t=23,i=e[23];if((63&i)!==we)return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and vpsTag is "+i),{};t+=2,++t;var i=e[27]|e[26]<<8,r=(t+=2,e.slice(28,28+i)),s=e[t+=i];if((63&s)!==Te)return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and sps tag is "+s),{};t+=2;var s=e[1+ ++t]|e[t]<<8,a=e.slice(t+=2,t+s),n=e[t+=s];if((63&n)!==ke)return console.warn("parseHEVCDecoderVPSAndSPSAndPPS and pps tag is "+n),{};t+=2;n=e[1+ ++t]|e[t]<<8;const o=e.slice(t+=2,t+n),l=new Uint8Array([s>>>24&255,s>>>16&255,s>>>8&255,255&s]),d=new Uint8Array([n>>>24&255,n>>>16&255,n>>>8&255,255&n]),h=new Uint8Array([i>>>24&255,i>>>16&255,i>>>8&255,255&i]),c=new Uint8Array(4+s),u=(c.set(l,0),c.set(a,4),new Uint8Array(4+n)),p=(u.set(d,0),u.set(o,4),new Uint8Array(4+i));return p.set(h,0),p.set(r,4),{sps:c,pps:u,vps:p}}(r);const t=fr(e);i=Object.assign(i,t)}i&&(i.vps&&(this.vps=i.vps),i.pps&&(this.pps=i.pps),i.sps&&(this.sps=i.sps),i.presentWidth&&(this.metaInfo.presentWidth=i.presentWidth),i.presentHeight&&(this.metaInfo.presentHeight=i.presentHeight),i.codecWidth&&(this.metaInfo.codecWidth=i.codecWidth),i.codecHeight&&(this.metaInfo.codecHeight=i.codecHeight),i.timescale&&(this.metaInfo.timescale=i.timescale),i.refSampleDuration&&(this.metaInfo.refSampleDuration=i.refSampleDuration),i.videoType&&(this.metaInfo.videoType=i.videoType))}}class vr extends br{constructor(e){super(e),this.totalByteLength=0,this._startRecordingTimestamp=null,e.debug.log("RecorderRTC","init")}_reset(){super._reset(),this.totalByteLength=0,this._startRecordingTimestamp=null,this.recorder&&(this.recorder.destroy(),this.recorder=null)}destroy(){super.destroy(),this._reset(),this.player.debug.log("RecorderRTC","destroy")}getSeekableBlob(t){const s=new EBML.Reader,a=new EBML.Decoder,n=EBML.tools,i=new FileReader;return new Promise((r,e)=>{i.onload=function(e){a.decode(this.result).forEach(function(e){s.read(e)}),s.stop();var t=n.makeMetadataSeekable(s.metadatas,s.duration,s.cues),i=this.result.slice(s.metadataSize),t=new Blob([t,i],{type:"video/webm"});r(t)},i.readAsArrayBuffer(t)})}startRecord(){const t=this.player.debug,i={type:"video",mimeType:"video/webm;codecs=h264",timeSlice:1e3,onTimeStamp:e=>{t.log("RecorderRTC","record timestamp :"+e),null===this._startRecordingTimestamp&&(this._startRecordingTimestamp=e),this._recordingTimestamp=(e-this._startRecordingTimestamp)/1e3},ondataavailable:e=>{this.totalByteLength+=e.size,t.log("RecorderRTC","ondataavailable",e.size)},disableLogs:!this.player._opt.debug};try{let e=null;if(this.player.getRenderType()===Y?e=this.player.video.$videoElement.captureStream(25):this.player.video.mediaStream?e=this.player.video.mediaStream:this.player.isOldHls()||this.player._opt.useMSE||this.player._opt.useWCS?e=this.player.video.$videoElement.captureStream(25):this.player._opt.isWebrtc&&(e=this.player.webrtc.videoStream),e){if(this.player.audio&&this.player.audio.mediaStreamAudioDestinationNode&&this.player.audio.mediaStreamAudioDestinationNode.stream&&!this.player.audio.isStateSuspended()&&this.player.audio.hasAudio&&this.player._opt.hasAudio){const t=this.player.audio.mediaStreamAudioDestinationNode.stream;if(0{this.player.emit(b.recordingTimestamp,this._recordingTimestamp)},1e3)}stopRecordAndSave(){let i=0{this.recorder&&this._isRecording||e("recorder is not ready"),r&&this.setFileName(r),this.recorder.stopRecording(()=>{this.player.debug.log("RecorderRTC","stop recording");var e=(this.fileName||p())+"."+j;if(this.recorder.getBlob(),"blob"===i){const i=this.recorder.getBlob();t(i),this.player.emit(b.recordBlob,i)}else t(),this.recorder.save(e);this.player.emit(b.recordEnd),this._reset(),this.player.emit(b.recording,!1)})})}getToTalByteLength(){return this.totalByteLength}getTotalDuration(){return this.recordTime}getType(){return j}initMetaData(){}}class c{static init(){for(var e in c.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[],".mp3":[],free:[],edts:[],elst:[],stss:[]},c.types)c.types.hasOwnProperty(e)&&(c.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let t=c.constants={};t.FTYP=new Uint8Array([105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,97,118,99,49,109,112,52,49,0,0,0,0]),t.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),t.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSC=t.STCO=t.STTS,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),t.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let e=0;e>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let e=0;e=Math.pow(2,32)-1?(a=16,(n=new Uint8Array(i+a)).set(new Uint8Array([0,0,0,1]),0),n.set(c.types.mdat,4),n.set(new Uint8Array([i+8>>>56&255,i+8>>>48&255,i+8>>>40&255,i+8>>>32&255,i+8>>>24&255,i+8>>>16&255,i+8>>>8&255,i+8&255]),8)):((n=new Uint8Array(i+a))[0]=i+8>>>24&255,n[1]=i+8>>>16&255,n[2]=i+8>>>8&255,n[3]=i+8&255,n.set(c.types.mdat,4));for(let e=0;e>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3]))}static trak(e){return c.box(c.types.trak,c.tkhd(e),c.mdia(e))}static tkhd(e){var t=e.id,i=e.duration,r=e.presentWidth,e=e.presentHeight;return c.box(c.types.tkhd,new Uint8Array([0,0,0,15,206,186,253,168,206,186,253,168,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,e>>>8&255,255&e,0,0]))}static edts(e,t){return c.box(c.types.edts,c.elst(e,t))}static elst(t,i){let r=0;for(let e=0;e>>24&255,r>>>16&255,r>>>8&255,255&r,255,255,255,255,0,1,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,0,0,1,0,0]))}static mdia(e){return c.box(c.types.mdia,c.mdhd(e),c.hdlr(e),c.minf(e))}static mdhd(e){var t=e.timescale/e.refSampleDuration,e=t*e.duration/e.timescale;return c.box(c.types.mdhd,new Uint8Array([0,0,0,0,206,186,253,168,206,186,253,168,t>>>24&255,t>>>16&255,t>>>8&255,255&t,e>>>24&255,e>>>16&255,e>>>8&255,255&e,85,196,0,0]))}static hdlr(e){var t=c.constants.HDLR_VIDEO;return c.box(c.types.hdlr,t)}static minf(e){var t=c.box(c.types.vmhd,c.constants.VMHD);return c.box(c.types.minf,t,c.dinf(),c.stbl(e))}static dinf(){return c.box(c.types.dinf,c.box(c.types.dref,c.constants.DREF))}static stbl(e){let i=e.samples,r=[{No:1,num:0,sampleDelte:1,chunkNo:1,duration:i[0].duration}],s=[i[0].duration],a=i.length;for(let t=0;t>>24&255,i>>>16&255,i>>>8&255,255&i]),r=e.byteLength,s=new Uint8Array(r+8*i);s.set(e,0);for(let e=0;e>>24&255,t[e].num>>>16&255,t[e].num>>>8&255,255&t[e].num,t[e].sampleDelte>>>24&255,t[e].sampleDelte>>>16&255,t[e].sampleDelte>>>8&255,255&t[e].sampleDelte]),r),r+=8;return c.box(c.types.stts,s)}static stss(t){let i=[],r=t.length;for(let e=0;e>>24&255,s>>>16&255,s>>>8&255,255&s]),a=e.byteLength,n=new Uint8Array(a+4*s);n.set(e,0);for(let e=0;e>>24&255,i[e]>>>16&255,i[e]>>>8&255,255&i[e]]),a),a+=4;return c.box(c.types.stss,n)}static stsc(t){let i=t.length,e=new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i]),r=e.byteLength,s=new Uint8Array(r+12*i);s.set(e,0);for(let e=0;e>>24&255,a>>>16&255,a>>>8&255,255&a,n>>>24&255,n>>>16&255,n>>>8&255,255&n,o>>>24&255,o>>>16&255,o>>>8&255,255&o]),r),r+=12}return c.box(c.types.stsc,s)}static stsz(t){let i=t.length,e=new Uint8Array([0,0,0,0,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i]),r=e.byteLength,s=new Uint8Array(r+4*i);s.set(e,0);for(let e=0;e>>24&255,a>>>16&255,a>>>8&255,255&a]),r),r+=4}return c.box(c.types.stsz,s)}static stco(e,t){t=t[0].chunkOffset;return c.box(c.types.stco,new Uint8Array([0,0,0,0,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t]))}static stsd(e){return"audio"===e.type?"mp3"===e.codec?c.box(c.types.stsd,c.constants.STSD_PREFIX,c.mp3(e)):c.box(c.types.stsd,c.constants.STSD_PREFIX,c.mp4a(e)):"avc"===e.videoType?c.box(c.types.stsd,c.constants.STSD_PREFIX,c.avc1(e)):c.box(c.types.stsd,c.constants.STSD_PREFIX,c.hvc1(e))}static mp3(e){var t=e.channelCount,e=e.audioSampleRate,t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,e>>>8&255,255&e,0,0]);return c.box(c.types[".mp3"],t)}static mp4a(e){var t=e.channelCount,i=e.audioSampleRate,t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return c.box(c.types.mp4a,t,c.esds(e))}static esds(e){var e=e.config||[],t=e.length,t=new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e).concat([6,1,2]));return c.box(c.types.esds,t)}static avc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,13,106,101,115,115,105,98,117,99,97,45,112,114,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return c.box(c.types.avc1,i,c.box(c.types.avcC,t))}static hvc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,13,106,101,115,115,105,98,117,99,97,45,112,114,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return c.box(c.types.hvc1,i,c.box(c.types.hvcC,t))}static mvex(e){return c.box(c.types.mvex,c.trex(e))}static trex(e){e=e.id,e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return c.box(c.types.trex,e)}static moof(e,t){return c.box(c.types.moof,c.mfhd(e.sequenceNumber),c.traf(e,t))}static mfhd(e){e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return c.box(c.types.mfhd,e)}static traf(e,t){var i=e.id,i=c.box(c.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),t=c.box(c.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),r=c.sdtp(e),e=c.trun(e,r.byteLength+16+16+8+16+8+8);return c.box(c.types.traf,i,t,e,r)}static sdtp(e){let t=e.samples||[],i=t.length,r=new Uint8Array(4+i);for(let e=0;e>>24&255,r>>>16&255,r>>>8&255,255&r,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);for(let e=0;e>>24&255,n>>>16&255,n>>>8&255,255&n,o>>>24&255,o>>>16&255,o>>>8&255,255&o,l.isLeading<<2|l.dependsOn,l.isDependedOn<<6|l.hasRedundancy<<4|l.isNonSync,0,0,d>>>24&255,d>>>16&255,d>>>8&255,255&d],12+16*e)}return c.box(c.types.trun,a)}static mdat(e){return c.box(c.types.mdat,e)}}c.init();class _r extends br{constructor(e){super(e),this.tagName="recorderMP4",this.totalDuration=0,this.totalByteLength=0,this.bufferList=[],this.cacheTrack={},this.sequenceNumber=0,e.debug.log(this.tagName,"init")}destroy(){super.destroy(),this._reset(),this.player.debug.log(this.tagName,"destroy")}_reset(){super._reset(),this.totalDuration=0,this.totalByteLength=0,this.sequenceNumber=0,this.cacheTrack={},this.bufferList=[]}startRecord(){const e=this.player.debug;this._isRecording=!0,this.player.emit(b.recording,!0),e.log(this.tagName,"start recording"),this.player.emit(b.recordStart),this.startRecordingInterval()}startRecordingInterval(){this.stopRecordingInterval(),this.recordingInterval=window.setInterval(()=>{this.player.emit(b.recordingTimestamp,this.getTotalDuration())},1e3)}formatFmp4Track(e,t,i,r){return{id:1,sequenceNumber:++this.sequenceNumber,size:e.byteLength,dts:i,cts:r,isKeyframe:t,data:e,duration:0,flags:{isLeading:0,dependsOn:t?2:1,isDependedOn:t?1:0,hasRedundancy:0,isNonSync:t?0:1}}}handleAddNaluTrack(e,t,i,r){this.cacheTrack.id&&i>=this.cacheTrack.dts?(this.cacheTrack.duration=i-this.cacheTrack.dts,this.handleAddFmp4Track(this.cacheTrack)):this.cacheTrack={},this.cacheTrack=this.formatFmp4Track(e,t,i,r)}handleAddFmp4Track(e){if(this.isRecording)if(null!==this.sps&&null!==this.pps||!this.isH264)if(null!==this.sps&&null!==this.pps&&null!==this.vps||!this.isH265){const i=Object.assign({},e);i.pts=i.dts+i.cts;var t=i.data;if(i.isKeyframe)if(this.isH264){const e=new Uint8Array(this.sps.byteLength+this.pps.byteLength),r=(e.set(this.sps,0),e.set(this.pps,this.sps.byteLength),new Uint8Array(e.byteLength+t.byteLength));r.set(e,0),r.set(t,e.byteLength),i.data=r}else if(this.isH265){const e=new Uint8Array(this.sps.byteLength+this.pps.byteLength+this.vps.byteLength),s=(e.set(this.vps,0),e.set(this.sps,this.vps.byteLength),e.set(this.pps,this.vps.byteLength+this.sps.byteLength),new Uint8Array(e.byteLength+t.byteLength));s.set(e,0),s.set(t,e.byteLength),i.data=s}i.size=i.data.byteLength,this.totalDuration+=i.duration,this.totalByteLength+=i.data.byteLength,i.duration=0,i.originalDts=i.dts,delete i.id,delete i.sequenceNumber,this.bufferList.push(i)}else this.player.debug.error(this.tagName,"handleAddFmp4Track, is h265 and this.sps or this.pps or this.vps is null ");else this.player.debug.error(this.tagName,"handleAddFmp4Track, is h264 and this.sps or this.pps is null ");else this.player.debug.error(this.tagName,"handleAddFmp4Track, isRecording is false ")}getTotalDuration(){return this.totalDuration/1e3}getType(){return u}getToTalByteLength(){return this.totalByteLength}stopRecordAndSave(){let e=0{if(!this.isRecording)return this.player.debug.error(this.tagName,"stop recording fail, isRecording is false "),s("stop recording fail, isRecording is false ");if(0===this.bufferList.length)return this.player.debug.error(this.tagName,"stop recording fail, this.bufferList.length is 0 "),s("stop recording fail, this.bufferList.length is 0 ");t&&this.setFileName(t);s={id:1,type:"video",sps:this.sps,pps:this.pps,samples:this.bufferList,sequenceNumber:this.bufferList.length,length:0,addSampleNum:1,duration:0,...this.metaInfo},s=c.generateInitSegment({timescale:1e3,duration:this.totalDuration},[s],this.totalByteLength),this.player.debug.log(this.tagName,"stop recording"),s=new Blob([s],{type:"application/octet-stream"});if("blob"===e)r(s),this.player.emit(b.recordBlob,s);else{r();{r=(this.fileName||p())+"."+u;let e=window.URL.createObjectURL(s),t=window.document.createElement("a"),i=(t.download=r,t.href=e,window.document.createEvent("MouseEvents"));i.initEvent("click",!0,!0),t.dispatchEvent(i),setTimeout(()=>{window.URL.revokeObjectURL(e)},kt()?1e3:0)}}this._reset(),this.player.emit(b.recording,!1)})}}class Sr{constructor(e){return new(Sr.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.recordType===u&&(e.useWasm||e.useMSE||e.useWCS)?_r:vr}}class Er{constructor(e){this.player=e,this.destroyResolve=null;let t=e._opt.decoder;if(0===(t=g(this.player._opt.useWasm)?e._opt.decoderAudio:t).indexOf("http")&&this.player._opt.isDecoderUseCDN){const e=new Blob([`importScripts("${t}")`],{type:"application/javascript"});t=window.URL.createObjectURL(e)}this.decoderWorker=new Worker(t),this._initDecoderWorker(),e.debug.log("decoderWorker","init"),e.on(b.visibilityChange,()=>{this.updateWorkConfig({key:"visibility",value:e.visibility})})}destroy(){return new Promise((e,t)=>{this.player.loaded?(this.player.debug.log("decoderWorker","has loaded and post message to destroy"),this.decoderWorker?(this.decoderWorker.postMessage({cmd:"close"}),this.destroyResolve=e):(this.player.debug.warn("decoderWorker","has loaded but decoderWorker is null and destroy directly"),this._destroy(),setTimeout(()=>{e()},0))):(this.player.debug.log("decoderWorker","has not loaded and destroy directly"),this._destroy(),setTimeout(()=>{e()},0))})}_destroy(){this.decoderWorker&&(this.decoderWorker.terminate(),this.decoderWorker=null),this.player.debug.log("decoderWorker","destroy"),this.destroyResolve&&(this.destroyResolve(),this.destroyResolve=null)}_initDecoderWorker(){const{debug:i,events:{}}=this.player;this.decoderWorker.onmessage=e=>{const t=e.data;switch(t.cmd){case te:i.log("decoderWorker","onmessage:",te),this.decoderWorker&&this._initWork(),this.player.loaded||this.player.emit(b.load),this.player.emit(b.decoderWorkerInit);break;case ae:i.log("decoderWorker","onmessage:",ae,t.code),this.player._times.decodeStart||(this.player._times.decodeStart=p()),this.player.video.updateVideoInfo({encTypeCode:t.code});break;case ne:i.log("decoderWorker","onmessage:",ne,t.codecId),this.player.recorder&&this.player.recorder.initMetaData(t.buffer,t.codecId);break;case se:i.log("decoderWorker","onmessage:",se,t.code),this.player.audio&&this.player.audio.updateAudioInfo({encTypeCode:t.code});break;case ie:if(i.log("decoderWorker","onmessage:",ie,`width:${t.w},height:`+t.h),this.player.video.updateVideoInfo({width:t.w,height:t.h}),!this.player._opt.openWebglAlignment&&t.w/2%4!=0&&this.player.getRenderType()===Y)return void this.player.emit(v.webglAlignmentError);this.player.video.initCanvasViewSize(),this.player._opt.playType===A&&(this.player.video.initFps(),this.player.video.initVideoDelay());break;case re:if(i.log("decoderWorker","onmessage:",re,`channels:${t.channels},sampleRate:`+t.sampleRate),2=this.player._opt.playbackForwardMaxRateDecodeIFrame?i&&(this.player.debug.log("decoderWorker",`current rate is ${this.player.video.rate},only decode i frame`),this._decodeVideoNoDelay(e,t,i)):1===this.player.video.rate?this._decodeVideo(e,t,i):this._decodeVideoNoDelay(e,t,i))}_decodeVideo(e,t,i){t={type:2,ts:Math.max(t,0),isIFrame:i};this.decoderWorker.postMessage({cmd:"decode",buffer:e,options:t},[e.buffer])}_decodeVideoNoDelay(e,t,i){this.decoderWorker.postMessage({cmd:"videoDecode",buffer:e,ts:Math.max(t,0),isIFrame:i},[e.buffer])}decodeAudio(e,t){this.player._opt.playType===n?this.player._opt.useWCS||this.player._opt.useMSE||this.player.isUseHls265()?this._decodeAudioNoDelay(e,t):this._decodeAudio(e,t):this.player._opt.playType===A&&(1===this.player.video.rate?this._decodeAudio(e,t):this._decodeAudioNoDelay(e,t))}_decodeAudio(e,t){t={type:1,ts:Math.max(t,0)};this.decoderWorker.postMessage({cmd:"decode",buffer:e,options:t},[e.buffer])}_decodeAudioNoDelay(e,t){this.decoderWorker.postMessage({cmd:"audioDecode",buffer:e,ts:Math.max(t,0)},[e.buffer])}updateWorkConfig(e){this.decoderWorker&&this.decoderWorker.postMessage({cmd:"updateConfig",key:e.key,value:e.value})}workerFetchStream(e){var t=this.player["_opt"],t={protocol:t.protocol,isFlv:t.isFlv,isFmp4:t.isFmp4,isMpeg4:t.isMpeg4};this.decoderWorker.postMessage({cmd:"fetchStream",url:e,opt:JSON.stringify(t)})}clearWorkBuffer(){this.decoderWorker.postMessage({cmd:"clearBuffer",needClear:0e?1e3 timestamp is ${e} more than ${this.preDelayTimestamp-e}ms`):this.firstTimestamp?e&&(t=Date.now()-this.startTimestamp,(i=e-this.firstTimestamp)<=t?(this.isStreamTsMoreThanLocal=!1,this.delay=t-i):(this.isStreamTsMoreThanLocal=!0,this.delay=i-t)):(this.firstTimestamp=e,this.startTimestamp=Date.now(),this.delay=-1),this.preDelayTimestamp=e,this.delay):-1;var t,i}getDelayNotUpdateDelay(t){if(!t||!this.player.isDemuxDecodeFirstIIframeInit())return-1;if(this.preDelayTimestamp&&1e3 timestamp is ${t} more than ${this.preDelayTimestamp-t}ms`),-1;if(this.firstTimestamp){let e=-1;var i;return t&&(i=Date.now()-this.startTimestamp,t=t-this.firstTimestamp,e=t<=i?i-t:t-i),e}return-1}resetDelay(){this.firstTimestamp=null,this.startTimestamp=null,this.delay=-1,this.dropping=!1}resetAllDelay(){this.resetDelay(),this.preDelayTimestamp=null}initInterval(){this.player.debug.log("CommonDemux","initInterval()"),this.player.isUseHls265()?this.player.debug.log("CommonDemux","initInterval() and is hls and support hls265 so return"):(this._loop(),this.stopId=setInterval(()=>{var e=(new Date).getTime(),e=(this.preLoopTimestamp||(this.preLoopTimestamp=e),e-this.preLoopTimestamp);100i+t&&r?this.hasIframeInBufferList()?(this.player.debug.warn("CommonDemux",`_loop delay is ${this.delay}, set dropping is true`),this.resetAllDelay(),this.dropping=!0):(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay>t?(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay<0&&this.player.debug.warn("CommonDemux",`_loop delay is ${this.delay} bufferList is `+this.bufferList);else-1!==this.delay&&this.player.debug.log("CommonDemux","loop() bufferList is empty and reset delay"),this.resetAllDelay()}_doDecode(e,t,i,r){const s=this.player;let a={ts:i,cts:4=2*this.preTimestampDuration-5&&this.player.debug.warn("CommonDemux",`pushBuffer video + ts is ${t.ts}, preTimestamp is ${this.preTimestamp}, + diff is ${e} and preTimestampDuration is ${this.preTimestampDuration} + maybe trigger black screen or flower screen`)}if(0s&&this.delay ${r+i}, bufferList is ${this.bufferList.length}, delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2()):a>s&&this.delay ${r+i},bufferList is ${this.bufferList.length}, delay is ${this.delay} and dropBuffer$2()`),this.dropBuffer$2())}2===t.type&&(0f(e.isIFrame)&&2===e.type))?(this.bufferList=this.bufferList.slice(e),t=this.bufferList.shift(),i=this.getDelayNotUpdateDelay(t.ts),this._doDecoderDecode(t),this.isPushDropping=!1,this.player.debug.log("CommonDemux",`dropBuffer$2() iFrameIndex is ${e},and bufferList length is ${this.bufferList.length} and tempDelay is ${i} ,delay is ${this.delay} `)):this.isPushDropping=!1),0===this.bufferList.length&&(this.isPushDropping=!1)}clearBuffer(){var e=0this.player._opt.networkDelay&&this.player._opt.playType===n&&(this.player.debug.warn("CommonDemux",`delay is more than networkDelay and now dts:${e},start dts is ${this.bufferStartDts}, vs start is ${t},local diff is ${i} ,delay is ${r}, _opt.networkDelay is `+this.player._opt.networkDelay),this.player.emit(b.networkDelayTimeout,r)),this.player.updateStats({netBuf:r}))}calcIframeIntervalTimestamp(e){var t;null===this.preIframeTs?this.preIframeTs=e:this.preIframeTs2===e.type&&e.isIFrame)}getInputByteLength(){return 0}getIsStreamTsMoreThanLocal(){return this.isStreamTsMoreThanLocal}close(){}reset(){}}const Tr=Symbol(32),kr=Symbol(16),xr=Symbol(8);class Cr{constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}setG(e){this.g=e,this.demand(e.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(i){return e=this,l=function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{this.reject=e,this.resolve=e=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(e)},this.demand(i,!0)||null==(e=this.pull)||e.call(this,i)})},new(o=(o=n=void 0)||Promise)(function(i,t){function r(e){try{a(l.next(e))}catch(e){t(e)}}function s(e){try{a(l.throw(e))}catch(e){t(e)}}function a(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}a((l=l.apply(e,n||[])).next())});var e,n,o,l}readU32(){return this.read(Tr)}readU16(){return this.read(kr)}readU8(){return this.read(xr)}close(){var e;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),null!=(e=this.reject)&&e.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(this.buffer&&this.need){let e=null;const r=this.buffer.subarray(this.consumed);let t=0;var i=e=>r.length<(t=e);if("number"==typeof this.need){if(i(this.need))return;e=r.subarray(0,t)}else if(this.need===Tr){if(i(4))return;e=r[0]<<24|r[1]<<16|r[2]<<8|r[3]}else if(this.need===kr){if(i(2))return;e=r[0]<<8|r[1]}else if(this.need===xr){if(i(1))return;e=r[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(i(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(r.subarray(0,t)),e=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(i(this.need.byteLength))return;new Uint8Array(this.need).set(r.subarray(0,t)),e=this.need}return this.consumed+=t,this.g?this.demand(this.g.next(e).value,!0):this.resolve&&this.resolve(e),e}}write(e){if(e instanceof Uint8Array?this.malloc(e.length).set(e):"buffer"in e?this.malloc(e.byteLength).set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength)):this.malloc(e.byteLength).set(new Uint8Array(e)),!this.g&&!this.resolve)return new Promise(e=>this.pull=e);this.flush()}writeU32(e){this.malloc(4).set([e>>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,i=t+e;if(i<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,i);else{const e=new Uint8Array(i);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,i)}return this.buffer=new Uint8Array(e),this.buffer}}Cr.U32=Tr,Cr.U16=kr,Cr.U8=xr;var Dr,Rr="application/json, text/javascript",Lr="text/html",Ir=/^(?:text|application)\/xml/i,Pr=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Br=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ur=/^\s*$/,Mr={},Fr={},Or="",Nr={type:"GET",beforeSend:w,success:w,error:w,complete:w,context:null,xhr:function(){return new window.XMLHttpRequest},accepts:{json:Rr,xml:"application/xml, text/xml",html:Lr,text:"text/plain","*":"*/".concat("*")},crossDomain:!1,timeout:0,username:null,password:null,processData:!0,promise:w,contentType:"application/x-www-form-urlencoded; charset=UTF-8"};function w(){}function o(e,t){"object"==typeof e&&(t=e,e=void 0);var i,r=Kr({},t=t||{});for(i in Nr)void 0===r[i]&&(r[i]=Nr[i]);try{var s={},a=new Promise(function(e,t){s.resolve=e,s.reject=t});a.resolve=s.resolve,a.reject=s.reject,r.promise=a}catch(e){r.promise={resolve:w,reject:w}}var n,o,l,d,h,a=Br.exec(window.location.href.toLowerCase())||[],c=(r.url=((e||r.url||window.location.href)+"").replace(/#.*$/,"").replace(/^\/\//,a[1]+"//"),r.url),u=(r.crossDomain||(r.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(r.url)&&RegExp.$2!==window.location.href),r.dataType);if("jsonp"===u)return/=\?/.test(r.url)||(a=(r.jsonp||"callback")+"=?",r.url=Vr(r.url,a)),l=(n=r).jsonpCallback||"jsonp"+Jr(),d=window.document.createElement("script"),h={abort:function(){l in window&&(window[l]=w)}},a=window.document.getElementsByTagName("head")[0]||window.document.documentElement,d.onerror=function(e){e=e,window.clearTimeout(o),h.abort(),Gr(e.type,h,e.type,n),p()},window[l]=function(e){window.clearTimeout(o),jr(e,h,n),p()},Wr(n),d.src=n.url.replace(/=\?/,"="+l),d.src=Vr(d.src,"_="+(new Date).getTime()),d.async=!0,n.scriptCharset&&(d.charset=n.scriptCharset),a.insertBefore(d,a.firstChild),0>4]+Xr[15&r])}return t.join("")}}),ts={16:10,24:12,32:14},is=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],k=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],rs=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ss=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],as=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],ns=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],os=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],ls=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],ds=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],hs=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],cs=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],us=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],ps=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],fs=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],ms=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function gs(e){for(var t=[],i=0;i>2][t%4]=a[t],this._Kd[e-i][t%4]=a[t];for(var n,o=0,l=s;l>16&255]<<24^k[n>>8&255]<<16^k[255&n]<<8^k[n>>24&255]^is[o]<<24,o+=1,8!=s)for(t=1;t>8&255]<<8^k[n>>16&255]<<16^k[n>>24&255]<<24,t=s/2+1;t>2][h=l%4]=a[t],this._Kd[e-d][h]=a[t++],l++}for(var d=1;d>24&255]^ps[n>>16&255]^fs[n>>8&255]^ms[255&n]},s.prototype.encrypt=function(e){if(16!=e.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var t=this._Ke.length-1,i=[0,0,0,0],r=gs(e),s=0;s<4;s++)r[s]^=this._Ke[0][s];for(var a=1;a>24&255]^as[r[(s+1)%4]>>16&255]^ns[r[(s+2)%4]>>8&255]^os[255&r[(s+3)%4]]^this._Ke[a][s];r=i.slice()}for(var n,o=y(16),s=0;s<4;s++)n=this._Ke[t][s],o[4*s]=255&(k[r[s]>>24&255]^n>>24),o[4*s+1]=255&(k[r[(s+1)%4]>>16&255]^n>>16),o[4*s+2]=255&(k[r[(s+2)%4]>>8&255]^n>>8),o[4*s+3]=255&(k[255&r[(s+3)%4]]^n);return o},s.prototype.decrypt=function(e){if(16!=e.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var t=this._Kd.length-1,i=[0,0,0,0],r=gs(e),s=0;s<4;s++)r[s]^=this._Kd[0][s];for(var a=1;a>24&255]^ds[r[(s+3)%4]>>16&255]^hs[r[(s+2)%4]>>8&255]^cs[255&r[(s+1)%4]]^this._Kd[a][s];r=i.slice()}for(var n,o=y(16),s=0;s<4;s++)n=this._Kd[t][s],o[4*s]=255&(rs[r[s]>>24&255]^n>>24),o[4*s+1]=255&(rs[r[(s+3)%4]>>16&255]^n>>16),o[4*s+2]=255&(rs[r[(s+2)%4]>>8&255]^n>>8),o[4*s+3]=255&(rs[255&r[(s+1)%4]]^n);return o},function(e){if(!(this instanceof ys))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new s(e)}),As=(ys.prototype.encrypt=function(e){if((e=a(e)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var t=y(e.length),i=y(16),r=0;rNumber.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var t=15;0<=t;--t)this._counter[t]=e%256,e=parseInt(e/256)},_s.prototype.setBytes=function(e){if(16!=(e=a(e,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=e},_s.prototype.increment=function(){for(var e=15;0<=e;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}},function(e,t){if(!(this instanceof Ss))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",t instanceof _s||(t=new _s(t)),this._counter=t,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new s(e)});Ss.prototype.encrypt=function(e){for(var t=a(e,!0),i=0;i>4&15,d=1==t;if(1!=t&&2!=t&&r.debug.warn("FlvDemux",`frameType is ${t} is not keyFrame or interFrame`),d&&this.calcIframeIntervalTimestamp(a),0s)break;var n=t[a+4];if(1==(n&=31)||5==n){const s=t.slice(a+4+2,a+4+o);let e=new Es.ModeOfOperation.ctr(i,new Es.Counter(r));n=e.decrypt(s);e=null,t.set(n,a+4+2)}a=a+4+o}var o;return t}(n,r._opt.cryptoKey,r._opt.cryptoIV):r.debug.error("FlvDemux",`cryptoKey.length is ${r._opt.cryptoKey&&r._opt.cryptoKey.byteLength} or cryptoIV.length is ${r._opt.cryptoIV&&r._opt.cryptoIV.byteLength} null`)),this._doDecode(e,2,a,d,o)}}break;default:r.debug.log("FlvDemux","demux() type is "+l)}}}close(){this.input=null}getInputByteLength(){let e=0;return e=this.input&&this.input.buffer?this.input.buffer.byteLength:e}}class Ts extends wr{constructor(e){super(e),e.debug.log("M7sDemux","init")}destroy(){super.destroy(),this.player.debug.log("M7sDemux","destroy")}dispatch(t){const i=this.player,r=new DataView(t),s=r.getUint8(0),a=r.getUint32(1,!1);switch(s){case 1:if(i._opt.hasAudio){const r=new Uint8Array(t,5);i.updateStats({abps:r.byteLength}),0>4==1;let e=a;this.player._opt.useMSE&&x(this.player.mseDecoder.firstRenderTime)&&(e=a-this.player.mseDecoder.firstRenderTime),i.updateStats({vbps:n.byteLength,dts:e}),0>1)!==we&&i!==Te&&i!==ke||(t=ge)),t}(t)),this.streamVideoType===me){const e=this.handleAddNaluStartCode(t),i=this.extractNALu(e);if(0===i.length)this.player.debug.warn(this.TAG_NAME,"handleVideoNalu","naluList.length === 0");else{const r=[];if(i.forEach(e=>{var t=lr(e);t===_e||t===ve?this.handleVideoH264Nalu(e):hr(t)&&r.push(e)}),1===r.length)this.handleVideoH264Nalu(r[0]);else{const e=function(t){if(0===t.length)return!1;var i=lr(t[0]);for(let e=1;e{this.handleVideoH264Nalu(e)})}}}else this.streamVideoType===ge?yr(t)===ke?this.extractH265PPS(t):this.handleVideoH265Nalu(t):this.player.debug.error(this.TAG_NAME," this.streamVideoType is null")}extractH264PPS(e){e=this.handleAddNaluStartCode(e);this.extractNALu(e).forEach(e=>{dr(lr(e))?this.extractH264SEI(e):this.handleVideoH264Nalu(e)})}extractH265PPS(e){e=this.handleAddNaluStartCode(e);this.extractNALu(e).forEach(e=>{39===yr(e)?this.extractH265SEI(e):this.handleVideoH265Nalu(e)})}extractH264SEI(e){e=this.handleAddNaluStartCode(e);this.extractNALu(e).forEach(e=>{this.handleVideoH264Nalu(e)})}extractH265SEI(e){e=this.handleAddNaluStartCode(e);this.extractNALu(e).forEach(e=>{this.handleVideoH265Nalu(e)})}handleAddNaluStartCode(e){const t=[0,0,0,1],i=new Uint8Array(e.length+t.length);return i.set(t),i.set(e,t.length),i}handleAudioAACNalu(t){if(t&&!(t.byteLength<1)){this.streamAudioType||(this.streamAudioType=Ae.AAC);let e=new Uint8Array(t);var i=e.slice(0,7);if(e=e.slice(7),!this.isSendAACSeqHeader){const t=(192&i[2])>>6,e=(60&i[2])>>2,r=(1&i[2])<<2|(192&i[3])>>6,s=new Uint8Array([175,0,t<<3|(14&e)>>1,(1&e)<<7|r<<3]);this.isSendAACSeqHeader=!0,this._doDecode(s,1,0,!1,0)}const r=this.getNaluAudioDts(),s=new Uint8Array(e.length+2);s.set([175,1],0),s.set(e,2),this._doDecode(s,1,r,!1,0)}}handleAudioG711ANalu(e){if(e&&!(e.byteLength<1)){this.streamAudioType||(this.streamAudioType=Ae.ALAW);e=new Uint8Array(e);const t=this.getNaluAudioDts(),i=new Uint8Array(e.length+1);i.set([114],0),i.set(e,1),this._doDecode(i,1,t,!1,0)}}handleAudioG711UNalu(e){if(e&&!(e.byteLength<1)){this.streamAudioType||(this.streamAudioType=Ae.MULAW);e=new Uint8Array(e);const t=this.getNaluAudioDts(),i=new Uint8Array(e.length+1);i.set([130],0),i.set(e,1),this._doDecode(i,1,t,!1,0)}}handleVideoH264Nalu(e){var t=lr(e);switch(t){case ve:this.sps=e;break;case _e:this.pps=e}if(this.isSendSeqHeader)if(hr(t)){this.player._times.demuxStart||(this.player._times.demuxStart=p());const r=cr(t),i=this.getNaluDts(),s=function(e){let t=[];t[0]=r?23:39,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const i=new Uint8Array(t.length+e.byteLength);return i.set(t,0),i.set(e,t.length),i}(e);this.player.updateStats({vbps:s.byteLength,dts:i}),r&&this.calcIframeIntervalTimestamp(i),this._doDecode(s,2,i,r,0)}else this.player.debug.warn(this.TAG_NAME,"handleVideoH264Nalu is avc seq head nalType is "+t);else if(this.sps&&this.pps){this.isSendSeqHeader=!0;const e=ar({sps:this.sps,pps:this.pps});this._doDecode(e,2,0,!0,0)}}handleVideoH264NaluList(e,t,i){if(this.isSendSeqHeader){this.player._times.demuxStart||(this.player._times.demuxStart=p());const i=this.getNaluDts(),r=nr(e.reduce((e,t)=>{const i=or(e),r=or(t),s=new Uint8Array(i.byteLength+r.byteLength);return s.set(i,0),s.set(r,i.byteLength),s}),t);this.player.updateStats({vbps:r.byteLength,dts:i}),t&&this.calcIframeIntervalTimestamp(i),this._doDecode(r,2,i,t,0)}else this.player.debug.warn(this.TAG_NAME,"handleVideoH264NaluList isSendSeqHeader is false")}handleVideoH265Nalu(e){var t=yr(e);switch(t){case we:this.vps=e;break;case Te:this.sps=e;break;case ke:this.pps=e}if(this.isSendSeqHeader){if(Ar(t)){this.player._times.demuxStart||(this.player._times.demuxStart=p());const r=16<=t&&t<=21,i=this.getNaluDts(),s=function(e){let t=[];t[0]=r?28:44,t[1]=1,t[2]=0,t[3]=0,t[4]=0,t[5]=e.byteLength>>24&255,t[6]=e.byteLength>>16&255,t[7]=e.byteLength>>8&255,t[8]=255&e.byteLength;const i=new Uint8Array(t.length+e.byteLength);return i.set(t,0),i.set(e,t.length),i}(e);this.player.updateStats({vbps:s.byteLength,dts:i}),r&&this.calcIframeIntervalTimestamp(i),this._doDecode(s,2,i,r,0)}}else if(this.vps&&this.sps&&this.pps){this.isSendSeqHeader=!0;const e=mr({vps:this.vps,sps:this.sps,pps:this.pps});this._doDecode(e,2,0,!0,0)}}getInputByteLength(){let e=0;return e=this.lastBuf?this.lastBuf.byteLength:e}}class Cs extends wr{constructor(e){super(e),(this.player=e).debug.log("EmptyDemux","init")}destroy(){super.destroy(),this.player.debug.log("EmptyDemux","destroy")}}var C=ht(function(e,t){function c(e){if(!(e instanceof ArrayBuffer))throw"Needs an array buffer";this.buffer=e,this.dataview=new DataView(e),this.position=0}function l(e,t,i){this._byteOffset=t||0,e instanceof ArrayBuffer?this.buffer=e:"object"==typeof e?(this.dataView=e,t&&(this._byteOffset+=t)):this.buffer=new ArrayBuffer(e||0),this.position=0,this.endianness=null==i?l.LITTLE_ENDIAN:i}function i(e){this.buffers=[],this.bufferIndex=-1,e&&(this.insertBuffer(e),this.bufferIndex=0)}function r(){var s=[],r=(s[3]="ES_Descriptor",s[4]="DecoderConfigDescriptor",s[5]="DecoderSpecificInfo",s[6]="SLConfigDescriptor",this.getDescriptorName=function(e){return s[e]},this),a={};return this.parseOneDescriptor=function(e){for(var t=0,i=e.readUint8(),r=e.readUint8();128&r;)t=(127&r)<<7,r=e.readUint8();return u.debug("MPEG4DescriptorParser","Found "+(s[i]||"Descriptor "+i)+", size "+(t+=127&r)+" at position "+e.getPosition()),(i=new(s[i]?a[s[i]]:a.Descriptor)(t)).parse(e),i},a.Descriptor=function(e,t){this.tag=e,this.size=t,this.descs=[]},a.Descriptor.prototype.parse=function(e){this.data=e.readUint8Array(this.size)},a.Descriptor.prototype.findDescriptor=function(e){for(var t=0;t>3)&&2<=t.data.length?32+((7&t.data[0])<<3)+((224&t.data[1])>>5):i:null},a.DecoderConfigDescriptor=function(e){a.Descriptor.call(this,4,e)},a.DecoderConfigDescriptor.prototype=new a.Descriptor,a.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readUint8(),this.streamType=e.readUint8(),this.bufferSize=e.readUint24(),this.maxBitrate=e.readUint32(),this.avgBitrate=e.readUint32(),this.size-=13,this.parseRemainingDescriptors(e)},a.DecoderSpecificInfo=function(e){a.Descriptor.call(this,5,e)},a.DecoderSpecificInfo.prototype=new a.Descriptor,a.SLConfigDescriptor=function(e){a.Descriptor.call(this,6,e)},a.SLConfigDescriptor.prototype=new a.Descriptor,this}function s(){}function a(){}function k(e){this.stream=e||new i,this.boxes=[],this.mdats=[],this.moofs=[],this.isProgressive=!1,this.moovStartFound=!1,this.onMoovStart=null,this.moovStartSent=!1,this.onReady=null,this.readySent=!1,this.onSegment=null,this.onSamples=null,this.onError=null,this.sampleListBuilt=!1,this.fragmentedTracks=[],this.extractedTracks=[],this.isFragmentationInitialized=!1,this.sampleProcessingStarted=!1,this.nextMoofNumber=0,this.itemListBuilt=!1,this.onSidx=null,this.sidxSent=!1}n=new Date,o=4;var n,o,u={setLogLevel:function(e){o=e==this.debug?1:e==this.info?2:e==this.warn?3:(this.error,4)},debug:function(e,t){void 0===console.debug&&(console.debug=console.log),o<=1&&console.debug("["+u.getDurationString(new Date-n,1e3)+"]","["+e+"]",t)},log:function(e,t){this.debug(e.msg)},info:function(e,t){o<=2&&console.info("["+u.getDurationString(new Date-n,1e3)+"]","["+e+"]",t)},warn:function(e,t){o<=3&&console.warn("["+u.getDurationString(new Date-n,1e3)+"]","["+e+"]",t)},error:function(e,t){o<=4&&console.error("["+u.getDurationString(new Date-n,1e3)+"]","["+e+"]",t)}},d=(u.getDurationString=function(e,t){var i;function r(e,t){for(var i=(""+e).split(".");i[0].length=this.getEndPosition()},c.prototype.readAnyInt=function(e,t){var i=0;if(this.position+e<=this.buffer.byteLength){switch(e){case 1:i=t?this.dataview.getInt8(this.position):this.dataview.getUint8(this.position);break;case 2:i=t?this.dataview.getInt16(this.position):this.dataview.getUint16(this.position);break;case 3:if(t)throw"No method for reading signed 24 bits values";i=this.dataview.getUint8(this.position)<<16,i=(i|=this.dataview.getUint8(this.position+1)<<8)|this.dataview.getUint8(this.position+2);break;case 4:i=t?this.dataview.getInt32(this.position):this.dataview.getUint32(this.position);break;case 8:if(t)throw"No method for reading signed 64 bits values";i=this.dataview.getUint32(this.position)<<32,i|=this.dataview.getUint32(this.position+4);break;default:throw"readInt method not implemented for size: "+e}return this.position+=e,i}throw"Not enough bytes in buffer"},c.prototype.readUint8=function(){return this.readAnyInt(1,!1)},c.prototype.readUint16=function(){return this.readAnyInt(2,!1)},c.prototype.readUint24=function(){return this.readAnyInt(3,!1)},c.prototype.readUint32=function(){return this.readAnyInt(4,!1)},c.prototype.readUint64=function(){return this.readAnyInt(8,!1)},c.prototype.readString=function(e){if(this.position+e<=this.buffer.byteLength){for(var t="",i=0;ithis._byteLength&&(this._byteLength=t);else{for(i<1&&(i=1);i=this._byteLength},l.prototype.mapUint8Array=function(e){this._realloc(+e);var t=new Uint8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.readInt32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Int32Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readInt16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var i=new Int16Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readInt8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Int8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readUint32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Uint32Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readUint16Array=function(e,t){e=null==e?this.byteLength-this.position/2:e;var i=new Uint16Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readUint8Array=function(e){e=null==e?this.byteLength-this.position:e;var t=new Uint8Array(e);return l.memcpy(t.buffer,0,this.buffer,this.byteOffset+this.position,e*t.BYTES_PER_ELEMENT),this.position+=t.byteLength,t},l.prototype.readFloat64Array=function(e,t){e=null==e?this.byteLength-this.position/8:e;var i=new Float64Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readFloat32Array=function(e,t){e=null==e?this.byteLength-this.position/4:e;var i=new Float32Array(e);return l.memcpy(i.buffer,0,this.buffer,this.byteOffset+this.position,e*i.BYTES_PER_ELEMENT),l.arrayToNative(i,null==t?this.endianness:t),this.position+=i.byteLength,i},l.prototype.readInt32=function(e){e=this._dataView.getInt32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readInt16=function(e){e=this._dataView.getInt16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readInt8=function(){var e=this._dataView.getInt8(this.position);return this.position+=1,e},l.prototype.readUint32=function(e){e=this._dataView.getUint32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readUint16=function(e){e=this._dataView.getUint16(this.position,null==e?this.endianness:e);return this.position+=2,e},l.prototype.readUint8=function(){var e=this._dataView.getUint8(this.position);return this.position+=1,e},l.prototype.readFloat32=function(e){e=this._dataView.getFloat32(this.position,null==e?this.endianness:e);return this.position+=4,e},l.prototype.readFloat64=function(e){e=this._dataView.getFloat64(this.position,null==e?this.endianness:e);return this.position+=8,e},l.endianness=0>16),this.writeUint8((65280&e)>>8),this.writeUint8(255&e)},l.prototype.adjustUint32=function(e,t){var i=this.position;this.seek(e),this.writeUint32(t),this.seek(i)},l.prototype.mapInt32Array=function(e,t){this._realloc(4*e);var i=new Int32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i},l.prototype.mapInt16Array=function(e,t){this._realloc(2*e);var i=new Int16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=2*e,i},l.prototype.mapInt8Array=function(e){this._realloc(+e);var t=new Int8Array(this._buffer,this.byteOffset+this.position,e);return this.position+=+e,t},l.prototype.mapUint32Array=function(e,t){this._realloc(4*e);var i=new Uint32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i},l.prototype.mapUint16Array=function(e,t){this._realloc(2*e);var i=new Uint16Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=2*e,i},l.prototype.mapFloat64Array=function(e,t){this._realloc(8*e);var i=new Float64Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=8*e,i},l.prototype.mapFloat32Array=function(e,t){this._realloc(4*e);var i=new Float32Array(this._buffer,this.byteOffset+this.position,e);return l.arrayToNative(i,null==t?this.endianness:t),this.position+=4*e,i},(i.prototype=new l(new ArrayBuffer,0,l.BIG_ENDIAN)).initialized=function(){var e;return-1r.byteLength){this.buffers.splice(i,1),i--;continue}u.warn("MultiBufferStream","Buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+") already appended, ignoring")}else e.fileStart+e.byteLength<=r.fileStart||(e=this.reduceBuffer(e,0,r.fileStart-e.fileStart)),u.debug("MultiBufferStream","Appending new buffer (fileStart: "+e.fileStart+" - Length: "+e.byteLength+")"),this.buffers.splice(i,0,e),0===i&&(this.buffer=e);t=!1;break}if(e.fileStart"+this.buffer.byteLength+")"),!0))},i.prototype.findPosition=function(e,t,i){for(var r=null,s=-1,a=!0===e?0:this.bufferIndex;a=t?(u.debug("MultiBufferStream","Found position in existing buffer #"+s),s):-1},i.prototype.findEndContiguousBuf=function(e){var t,i,e=void 0!==e?e:this.bufferIndex,r=this.buffers[e];if(this.buffers.length>e+1)for(t=e+1;te.getEndPosition()?(e.seek(a),u.info("BoxParser","Not enough data in stream to parse the entire '"+l+"' box"),{code:b.ERR_NOT_ENOUGH_DATA,type:l,size:o,hdr_size:n,start:a}):t?{code:b.OK,type:l,size:o,hdr_size:n,start:a}:(b[l+"Box"]?r=new b[l+"Box"](o):"uuid"!==l?(u.warn("BoxParser","Unknown box type: '"+l+"'"),(r=new b.Box(l,o)).has_unparsed_data=!0):b.UUIDBoxes[s]?r=new b.UUIDBoxes[s](o):(u.warn("BoxParser","Unknown uuid type: '"+s+"'"),(r=new b.Box(l,o)).uuid=s,r.has_unparsed_data=!0),r.hdr_size=n,r.start=a,r.write===b.Box.prototype.write&&"mdat"!==r.type&&(u.info("BoxParser","'"+d+"' box writing not yet implemented, keeping unparsed data in memory for later write"),r.parseDataAndRewind(e)),r.parse(e),(i=e.getPosition()-(r.start+r.size))<0?(u.warn("BoxParser","Parsing of box '"+d+"' did not read the entire indicated box data size (missing "+-i+" bytes), seeking forward"),e.seek(r.start+r.size)):0>10&31,e[1]=this.language>>5&31,e[2]=31&this.language,this.languageString=String.fromCharCode(e[0]+96,e[1]+96,e[2]+96)},b.SAMPLE_ENTRY_TYPE_VISUAL="Visual",b.SAMPLE_ENTRY_TYPE_AUDIO="Audio",b.SAMPLE_ENTRY_TYPE_HINT="Hint",b.SAMPLE_ENTRY_TYPE_METADATA="Metadata",b.SAMPLE_ENTRY_TYPE_SUBTITLE="Subtitle",b.SAMPLE_ENTRY_TYPE_SYSTEM="System",b.SAMPLE_ENTRY_TYPE_TEXT="Text",b.SampleEntry.prototype.parseHeader=function(e){e.readUint8Array(6),this.data_reference_index=e.readUint16(),this.hdr_size+=8},b.SampleEntry.prototype.parse=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size)},b.SampleEntry.prototype.parseDataAndRewind=function(e){this.parseHeader(e),this.data=e.readUint8Array(this.size-this.hdr_size),this.hdr_size-=8,e.position-=this.size-this.hdr_size},b.SampleEntry.prototype.parseFooter=function(e){b.ContainerBox.prototype.parse.call(this,e)},b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_HINT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,function(e){var t;this.parseHeader(e),e.readUint16(),e.readUint16(),e.readUint32Array(3),this.width=e.readUint16(),this.height=e.readUint16(),this.horizresolution=e.readUint32(),this.vertresolution=e.readUint32(),e.readUint32(),this.frame_count=e.readUint16(),t=Math.min(31,e.readUint8()),this.compressorname=e.readString(t),t<31&&e.readString(31-t),this.depth=e.readUint16(),e.readUint16(),this.parseFooter(e)}),b.createMediaSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,function(e){this.parseHeader(e),e.readUint32Array(2),this.channel_count=e.readUint16(),this.samplesize=e.readUint16(),e.readUint16(),e.readUint16(),this.samplerate=e.readUint32()/65536,this.parseFooter(e)}),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc2"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"avc4"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"av01"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"hev1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvc1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvi1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvs1"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vvcN"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp08"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"vp09"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"mp4a"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ac-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"ec-3"),b.createSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"Opus"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_VISUAL,"encv"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_AUDIO,"enca"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SUBTITLE,"encu"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_SYSTEM,"encs"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_TEXT,"enct"),b.createEncryptedSampleEntryCtor(b.SAMPLE_ENTRY_TYPE_METADATA,"encm"),b.createBoxCtor("a1lx",function(e){var t=16*(1+(1&e.readUint8()));this.layer_size=[];for(var i=0;i<3;i++)this.layer_size[i]=16==t?e.readUint16():e.readUint32()}),b.createBoxCtor("a1op",function(e){this.op_index=e.readUint8()}),b.createFullBoxCtor("auxC",function(e){this.aux_type=e.readCString();var t=this.size-this.hdr_size-(this.aux_type.length+1);this.aux_subtype=e.readUint8Array(t)}),b.createBoxCtor("av1C",function(e){var t=e.readUint8();if(t>>7&!1)u.error("av1C marker problem");else if(this.version=127&t,1===this.version)if(t=e.readUint8(),this.seq_profile=t>>5&7,this.seq_level_idx_0=31&t,t=e.readUint8(),this.seq_tier_0=t>>7&1,this.high_bitdepth=t>>6&1,this.twelve_bit=t>>5&1,this.monochrome=t>>4&1,this.chroma_subsampling_x=t>>3&1,this.chroma_subsampling_y=t>>2&1,this.chroma_sample_position=3&t,t=e.readUint8(),this.reserved_1=t>>5&7,0===this.reserved_1){if(this.initial_presentation_delay_present=t>>4&1,1===this.initial_presentation_delay_present)this.initial_presentation_delay_minus_one=15&t;else if(this.reserved_2=15&t,0!==this.reserved_2)return void u.error("av1C reserved_2 parsing problem");t=this.size-this.hdr_size-4;this.configOBUs=e.readUint8Array(t)}else u.error("av1C reserved_1 parsing problem");else u.error("av1C version "+this.version+" not supported")}),b.createBoxCtor("avcC",function(e){var t,i;for(this.configurationVersion=e.readUint8(),this.AVCProfileIndication=e.readUint8(),this.profile_compatibility=e.readUint8(),this.AVCLevelIndication=e.readUint8(),this.lengthSizeMinusOne=3&e.readUint8(),this.nb_SPS_nalus=31&e.readUint8(),i=this.size-this.hdr_size-6,this.SPS=[],t=0;t>7):"rICC"!==this.colour_type&&"prof"!==this.colour_type||(this.ICC_profile=e.readUint8Array(this.size-4))}),b.createFullBoxCtor("cprt",function(e){this.parseLanguage(e),this.notice=e.readCString()}),b.createFullBoxCtor("cslg",function(e){0===this.version&&(this.compositionToDTSShift=e.readInt32(),this.leastDecodeToDisplayDelta=e.readInt32(),this.greatestDecodeToDisplayDelta=e.readInt32(),this.compositionStartTime=e.readInt32(),this.compositionEndTime=e.readInt32())}),b.createFullBoxCtor("ctts",function(e){var t,i=e.readUint32();if(this.sample_counts=[],this.sample_offsets=[],0===this.version)for(t=0;t>6,this.bsid=t>>1&31,this.bsmod=(1&t)<<2|i>>6&3,this.acmod=i>>3&7,this.lfeon=i>>2&1,this.bit_rate_code=3&i|e>>5&7}),b.createBoxCtor("dec3",function(e){var t=e.readUint16();this.data_rate=t>>3,this.num_ind_sub=7&t,this.ind_subs=[];for(var i=0;i>6,r.bsid=s>>1&31,r.bsmod=(1&s)<<4|a>>4&15,r.acmod=a>>1&7,r.lfeon=1&a,r.num_dep_sub=n>>1&15,0>12,e.readUint8Array(20)),t.push(i[s]),128&r)break}this.numMetadataBlocks=t.length+" ("+t.join(", ")+")"}),b.createBoxCtor("dimm",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("dmed",function(e){this.bytessent=e.readUint64()}),b.createBoxCtor("dOps",function(e){if(this.Version=e.readUint8(),this.OutputChannelCount=e.readUint8(),this.PreSkip=e.readUint16(),this.InputSampleRate=e.readUint32(),this.OutputGain=e.readInt16(),this.ChannelMappingFamily=e.readUint8(),0!==this.ChannelMappingFamily){this.StreamCount=e.readUint8(),this.CoupledCount=e.readUint8(),this.ChannelMapping=[];for(var t=0;t>6,this.general_tier_flag=(32&i)>>5,this.general_profile_idc=31&i,this.general_profile_compatibility=e.readUint32(),this.general_constraint_indicator=e.readUint8Array(6),this.general_level_idc=e.readUint8(),this.min_spatial_segmentation_idc=4095&e.readUint16(),this.parallelismType=3&e.readUint8(),this.chroma_format_idc=3&e.readUint8(),this.bit_depth_luma_minus8=7&e.readUint8(),this.bit_depth_chroma_minus8=7&e.readUint8(),this.avgFrameRate=e.readUint16(),i=e.readUint8(),this.constantFrameRate=i>>6,this.numTemporalLayers=(13&i)>>3,this.temporalIdNested=(4&i)>>2,this.lengthSizeMinusOne=3&i,this.nalu_arrays=[];for(var t,i,r=e.readUint8(),s=0;s>7,a.nalu_type=63&i,e.readUint16()),o=0;o>4&15,this.length_size=15&t,t=e.readUint8(),this.base_offset_size=t>>4&15,1===this.version||2===this.version?this.index_size=15&t:this.index_size=0,this.items=[],0);if(this.version<2)i=e.readUint16();else{if(2!==this.version)throw"version of iloc box not supported";i=e.readUint32()}for(var r=0;r>7,this.axis=1&e}),b.createFullBoxCtor("infe",function(e){if(0!==this.version&&1!==this.version||(this.item_ID=e.readUint16(),this.item_protection_index=e.readUint16(),this.item_name=e.readCString(),this.content_type=e.readCString(),this.content_encoding=e.readCString()),1===this.version)return this.extension_type=e.readString(4),u.warn("BoxParser","Cannot parse extension type"),void e.seek(this.start+this.size);2<=this.version&&(2===this.version?this.item_ID=e.readUint16():3===this.version&&(this.item_ID=e.readUint32()),this.item_protection_index=e.readUint16(),this.item_type=e.readString(4),this.item_name=e.readCString(),"mime"===this.item_type?(this.content_type=e.readCString(),this.content_encoding=e.readCString()):"uri "===this.item_type&&(this.item_uri_type=e.readCString()))}),b.createFullBoxCtor("ipma",function(e){var t,i;for(entry_count=e.readUint32(),this.associations=[],t=0;t>7==1,1&this.flags?n.property_index=(127&a)<<8|e.readUint8():n.property_index=127&a}}}),b.createFullBoxCtor("iref",function(e){var t;for(this.references=[];e.getPosition()>7,r.assignment_type=127&s,r.assignment_type){case 0:r.grouping_type=e.readString(4);break;case 1:r.grouping_type=e.readString(4),r.grouping_type_parameter=e.readUint32();break;case 2:case 3:break;case 4:r.sub_track_id=e.readUint32();break;default:u.warn("BoxParser","Unknown leva assignement type")}}}),b.createBoxCtor("lsel",function(e){this.layer_id=e.readUint16()}),b.createBoxCtor("maxr",function(e){this.period=e.readUint32(),this.bytes=e.readUint32()}),b.createBoxCtor("mdcv",function(e){this.display_primaries=[],this.display_primaries[0]={},this.display_primaries[0].x=e.readUint16(),this.display_primaries[0].y=e.readUint16(),this.display_primaries[1]={},this.display_primaries[1].x=e.readUint16(),this.display_primaries[1].y=e.readUint16(),this.display_primaries[2]={},this.display_primaries[2].x=e.readUint16(),this.display_primaries[2].y=e.readUint16(),this.white_point={},this.white_point.x=e.readUint16(),this.white_point.y=e.readUint16(),this.max_display_mastering_luminance=e.readUint32(),this.min_display_mastering_luminance=e.readUint32()}),b.createFullBoxCtor("mdhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.parseLanguage(e),e.readUint16()}),b.createFullBoxCtor("mehd",function(e){1&this.flags&&(u.warn("BoxParser","mehd box incorrectly uses flags set to 1, converting version to 1"),this.version=1),1==this.version?this.fragment_duration=e.readUint64():this.fragment_duration=e.readUint32()}),b.createFullBoxCtor("meta",function(e){this.boxes=[],b.ContainerBox.prototype.parse.call(this,e)}),b.createFullBoxCtor("mfhd",function(e){this.sequence_number=e.readUint32()}),b.createFullBoxCtor("mfro",function(e){this._size=e.readUint32()}),b.createFullBoxCtor("mvhd",function(e){1==this.version?(this.creation_time=e.readUint64(),this.modification_time=e.readUint64(),this.timescale=e.readUint32(),this.duration=e.readUint64()):(this.creation_time=e.readUint32(),this.modification_time=e.readUint32(),this.timescale=e.readUint32(),this.duration=e.readUint32()),this.rate=e.readUint32(),this.volume=e.readUint16()>>8,e.readUint16(),e.readUint32Array(2),this.matrix=e.readUint32Array(9),e.readUint32Array(6),this.next_track_id=e.readUint32()}),b.createBoxCtor("npck",function(e){this.packetssent=e.readUint32()}),b.createBoxCtor("nump",function(e){this.packetssent=e.readUint64()}),b.createFullBoxCtor("padb",function(e){var t=e.readUint32();this.padbits=[];for(var i=0;i>7,this.avgRateFlag=t>>6&1,this.durationFlag&&(this.duration=e.readUint32()),this.avgRateFlag&&(this.accurateStatisticsFlag=e.readUint8(),this.avgBitRate=e.readUint16(),this.avgFrameRate=e.readUint16()),this.dependency=[];for(var i=e.readUint8(),r=0;r>7,this.num_leading_samples=127&e}),b.createSampleGroupCtor("rash",function(e){if(this.operation_point_count=e.readUint16(),this.description_length!==2+(1===this.operation_point_count?2:6*this.operation_point_count)+9)u.warn("BoxParser","Mismatch in "+this.grouping_type+" sample group length"),this.data=e.readUint8Array(this.description_length-2);else{if(1===this.operation_point_count)this.target_rate_share=e.readUint16();else{this.target_rate_share=[],this.available_bitrate=[];for(var t=0;t>4,this.skip_byte_block=15&t,this.isProtected=e.readUint8(),this.Per_Sample_IV_Size=e.readUint8(),this.KID=b.parseHex16(e),this.constant_IV_size=0,this.constant_IV=0,1===this.isProtected&&0===this.Per_Sample_IV_Size&&(this.constant_IV_size=e.readUint8(),this.constant_IV=e.readUint8Array(this.constant_IV_size))}),b.createSampleGroupCtor("stsa",function(e){u.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("sync",function(e){e=e.readUint8();this.NAL_unit_type=63&e}),b.createSampleGroupCtor("tele",function(e){e=e.readUint8();this.level_independently_decodable=e>>7}),b.createSampleGroupCtor("tsas",function(e){u.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("tscl",function(e){u.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createSampleGroupCtor("vipr",function(e){u.warn("BoxParser","Sample Group type: "+this.grouping_type+" not fully parsed")}),b.createFullBoxCtor("sbgp",function(e){this.grouping_type=e.readString(4),1===this.version?this.grouping_type_parameter=e.readUint32():this.grouping_type_parameter=0,this.entries=[];for(var t=e.readUint32(),i=0;i>6,this.sample_depends_on[r]=t>>4&3,this.sample_is_depended_on[r]=t>>2&3,this.sample_has_redundancy[r]=3&t}),b.createFullBoxCtor("senc"),b.createFullBoxCtor("sgpd",function(e){this.grouping_type=e.readString(4),u.debug("BoxParser","Found Sample Groups of type "+this.grouping_type),1===this.version?this.default_length=e.readUint32():this.default_length=0,2<=this.version&&(this.default_group_description_index=e.readUint32()),this.entries=[];for(var t=e.readUint32(),i=0;i>31&1,r.referenced_size=2147483647&s,r.subsegment_duration=e.readUint32(),s=e.readUint32(),r.starts_with_SAP=s>>31&1,r.SAP_type=s>>28&7,r.SAP_delta_time=268435455&s}}),b.SingleItemTypeReferenceBox=function(e,t,i,r){b.Box.call(this,e,t),this.hdr_size=i,this.start=r},b.SingleItemTypeReferenceBox.prototype=new b.Box,b.SingleItemTypeReferenceBox.prototype.parse=function(e){this.from_item_ID=e.readUint16();var t=e.readUint16();this.references=[];for(var i=0;i>4&15,this.sample_sizes[t+1]=15&r}else if(8===this.field_size)for(t=0;t>4&15,this.default_skip_byte_block=15&t),this.default_isProtected=e.readUint8(),this.default_Per_Sample_IV_Size=e.readUint8(),this.default_KID=b.parseHex16(e),1===this.default_isProtected&&0===this.default_Per_Sample_IV_Size&&(this.default_constant_IV_size=e.readUint8(),this.default_constant_IV=e.readUint8Array(this.default_constant_IV_size))}),b.createFullBoxCtor("tfdt",function(e){1==this.version?this.baseMediaDecodeTime=e.readUint64():this.baseMediaDecodeTime=e.readUint32()}),b.createFullBoxCtor("tfhd",function(e){var t=0;this.track_id=e.readUint32(),this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET?(this.base_data_offset=e.readUint64(),t+=8):this.base_data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DESC?(this.default_sample_description_index=e.readUint32(),t+=4):this.default_sample_description_index=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_DUR?(this.default_sample_duration=e.readUint32(),t+=4):this.default_sample_duration=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_SIZE?(this.default_sample_size=e.readUint32(),t+=4):this.default_sample_size=0,this.size-this.hdr_size>t&&this.flags&b.TFHD_FLAG_SAMPLE_FLAGS?this.default_sample_flags=e.readUint32():this.default_sample_flags=0}),b.createFullBoxCtor("tfra",function(e){this.track_ID=e.readUint32(),e.readUint24();var t=e.readUint8();this.length_size_of_traf_num=t>>4&3,this.length_size_of_trun_num=t>>2&3,this.length_size_of_sample_num=3&t,this.entries=[];for(var i=e.readUint32(),r=0;r>8,e.readUint16(),this.matrix=e.readInt32Array(9),this.width=e.readUint32(),this.height=e.readUint32()}),b.createBoxCtor("tmax",function(e){this.time=e.readUint32()}),b.createBoxCtor("tmin",function(e){this.time=e.readUint32()}),b.createBoxCtor("totl",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpay",function(e){this.bytessent=e.readUint32()}),b.createBoxCtor("tpyl",function(e){this.bytessent=e.readUint64()}),b.TrackGroupTypeBox.prototype.parse=function(e){this.parseFullHeader(e),this.track_group_id=e.readUint32()},b.createTrackGroupCtor("msrc"),b.TrackReferenceTypeBox=function(e,t,i,r){b.Box.call(this,e,t),this.hdr_size=i,this.start=r},b.TrackReferenceTypeBox.prototype=new b.Box,b.TrackReferenceTypeBox.prototype.parse=function(e){this.track_ids=e.readUint32Array((this.size-this.hdr_size)/4)},b.trefBox.prototype.parse=function(e){for(var t;e.getPosition()(t+=4)&&this.flags&b.TRUN_FLAGS_DATA_OFFSET?(this.data_offset=e.readInt32(),t+=4):this.data_offset=0,this.size-this.hdr_size>t&&this.flags&b.TRUN_FLAGS_FIRST_FLAG?(this.first_sample_flags=e.readUint32(),t+=4):this.first_sample_flags=0,this.sample_duration=[],this.sample_size=[],this.sample_flags=[],this.sample_composition_time_offset=[],this.size-this.hdr_size>t)for(var i=0;i/g,">").replace(/"/g,""").replace(/'/g,"'")}),b.createUUIDBox("d08a4f1810f34a82b6c832d8aba183d3",!0,!1,function(e){this.system_id=b.parseHex16(e);var t=e.readUint32();0>4,this.chromaSubsampling=t>>1&7,this.videoFullRangeFlag=1&t,this.colourPrimaries=e.readUint8(),this.transferCharacteristics=e.readUint8(),this.matrixCoefficients=e.readUint8()):(this.profile=e.readUint8(),this.level=e.readUint8(),t=e.readUint8(),this.bitDepth=t>>4&15,this.colorSpace=15&t,t=e.readUint8(),this.chromaSubsampling=t>>4&15,this.transferFunction=t>>1&7,this.videoFullRangeFlag=1&t),this.codecIntializationDataSize=e.readUint16(),this.codecIntializationData=e.readUint8Array(this.codecIntializationDataSize)}),b.createBoxCtor("vttC",function(e){this.text=e.readString(this.size-this.hdr_size)}),b.createFullBoxCtor("vvcC",function(e){var t,i={held_bits:void 0,num_held_bits:0,stream_read_1_bytes:function(e){this.held_bits=e.readUint8(),this.num_held_bits=8},stream_read_2_bytes:function(e){this.held_bits=e.readUint16(),this.num_held_bits=16},extract_bits:function(e){var t=this.held_bits>>this.num_held_bits-e&(1<>=1;e=e+b.decimalToHex(i,0)+".",0===this.hvcC.general_tier_flag?e+="L":e+="H",e+=this.hvcC.general_level_idc;var s=!1,a="";for(r=5;0<=r;r--)(this.hvcC.general_constraint_indicator[r]||s)&&(a="."+b.decimalToHex(this.hvcC.general_constraint_indicator[r],0)+a,s=!0);e+=a}return e},b.vvc1SampleEntry.prototype.getCodec=b.vvi1SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);if(this.vvcC){e+="."+this.vvcC.general_profile_idc,this.vvcC.general_tier_flag?e+=".H":e+=".L",e+=this.vvcC.general_level_idc;var t="";if(this.vvcC.general_constraint_info){var i,r=[],s=0,s=(s|=this.vvcC.ptl_frame_only_constraint<<7)|this.vvcC.ptl_multilayer_enabled<<6;for(l=0;l>2&63,r.push(s),s&&(i=l),s=this.vvcC.general_constraint_info[l]>>2&3;if(void 0===i)t=".CA";else{for(var t=".C",a="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",n=0,o=0,l=0;l<=i;++l)for(n=n<<8|r[l],o+=8;5<=o;)t+=a[n>>o-5&31],n&=(1<<(o-=5))-1;o&&(t+=a[31&(n<<=5-o)])}}e+=t}return e},b.mp4aSampleEntry.prototype.getCodec=function(){var e,t,i=b.SampleEntry.prototype.getCodec.call(this);return this.esds&&this.esds.esd?(e=this.esds.esd.getOTI(),t=this.esds.esd.getAudioConfig(),i+"."+b.decimalToHex(e)+(t?"."+t:"")):i},b.stxtSampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this);return this.mime_format?e+"."+this.mime_format:e},b.vp08SampleEntry.prototype.getCodec=b.vp09SampleEntry.prototype.getCodec=function(){var e=b.SampleEntry.prototype.getCodec.call(this),t=this.vpcC.level,i=this.vpcC.bitDepth;return e+".0"+this.vpcC.profile+"."+(t=0==t?"00":t)+"."+(i=8==i?"08":i)},b.av01SampleEntry.prototype.getCodec=function(){var e,t=b.SampleEntry.prototype.getCodec.call(this),i=this.av1C.seq_level_idx_0;return 2===this.av1C.seq_profile&&1===this.av1C.high_bitdepth?e=1===this.av1C.twelve_bit?"12":"10":this.av1C.seq_profile<=2&&(e=1===this.av1C.high_bitdepth?"10":"08"),t+"."+this.av1C.seq_profile+"."+(i=i<10?"0"+i:i)+(this.av1C.seq_tier_0?"H":"M")+"."+e},b.Box.prototype.writeHeader=function(e,t){this.size+=8,this.size>d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),u.debug("BoxWriter","Writing box "+this.type+" of size: "+this.size+" at position "+e.getPosition()+(t||"")),this.size>d?e.writeUint32(1):(this.sizePosition=e.getPosition(),e.writeUint32(this.size)),e.writeString(this.type,null,4),"uuid"===this.type&&e.writeUint8Array(this.uuid),this.size>d&&e.writeUint64(this.size)},b.FullBox.prototype.writeHeader=function(e){this.size+=4,b.Box.prototype.writeHeader.call(this,e," v="+this.version+" f="+this.flags),e.writeUint8(this.version),e.writeUint24(this.flags)},b.Box.prototype.write=function(e){"mdat"===this.type?this.data&&(this.size=this.data.length,this.writeHeader(e),e.writeUint8Array(this.data)):(this.size=this.data?this.data.length:0,this.writeHeader(e),this.data&&e.writeUint8Array(this.data))},b.ContainerBox.prototype.write=function(e){this.size=0,this.writeHeader(e);for(var t=0;tt?1:0,this.flags=0,this.size=4,1===this.version&&(this.size+=4),this.writeHeader(e),1===this.version?e.writeUint64(this.baseMediaDecodeTime):e.writeUint32(this.baseMediaDecodeTime)},b.tfhdBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&(this.size+=8),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&(this.size+=4),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&(this.size+=4),this.writeHeader(e),e.writeUint32(this.track_id),this.flags&b.TFHD_FLAG_BASE_DATA_OFFSET&&e.writeUint64(this.base_data_offset),this.flags&b.TFHD_FLAG_SAMPLE_DESC&&e.writeUint32(this.default_sample_description_index),this.flags&b.TFHD_FLAG_SAMPLE_DUR&&e.writeUint32(this.default_sample_duration),this.flags&b.TFHD_FLAG_SAMPLE_SIZE&&e.writeUint32(this.default_sample_size),this.flags&b.TFHD_FLAG_SAMPLE_FLAGS&&e.writeUint32(this.default_sample_flags)},b.tkhdBox.prototype.write=function(e){this.version=0,this.size=80,this.writeHeader(e),e.writeUint32(this.creation_time),e.writeUint32(this.modification_time),e.writeUint32(this.track_id),e.writeUint32(0),e.writeUint32(this.duration),e.writeUint32(0),e.writeUint32(0),e.writeInt16(this.layer),e.writeInt16(this.alternate_group),e.writeInt16(this.volume<<8),e.writeUint16(0),e.writeInt32Array(this.matrix),e.writeUint32(this.width),e.writeUint32(this.height)},b.trexBox.prototype.write=function(e){this.version=0,this.flags=0,this.size=20,this.writeHeader(e),e.writeUint32(this.track_id),e.writeUint32(this.default_sample_description_index),e.writeUint32(this.default_sample_duration),e.writeUint32(this.default_sample_size),e.writeUint32(this.default_sample_flags)},b.trunBox.prototype.write=function(e){this.version=0,this.size=4,this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.size+=4),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&(this.size+=4),this.flags&b.TRUN_FLAGS_DURATION&&(this.size+=4*this.sample_duration.length),this.flags&b.TRUN_FLAGS_SIZE&&(this.size+=4*this.sample_size.length),this.flags&b.TRUN_FLAGS_FLAGS&&(this.size+=4*this.sample_flags.length),this.flags&b.TRUN_FLAGS_CTS_OFFSET&&(this.size+=4*this.sample_composition_time_offset.length),this.writeHeader(e),e.writeUint32(this.sample_count),this.flags&b.TRUN_FLAGS_DATA_OFFSET&&(this.data_offset_position=e.getPosition(),e.writeInt32(this.data_offset)),this.flags&b.TRUN_FLAGS_FIRST_FLAG&&e.writeUint32(this.first_sample_flags);for(var t=0;t=r.samples.length)&&(u.info("ISOFile","Sending fragmented data on track #"+i.id+" for samples ["+Math.max(0,r.nextSample-i.nb_samples)+","+(r.nextSample-1)+"]"),u.info("ISOFile","Sample data size in memory: "+this.getAllocatedSampleDataSize()),this.onSegment&&this.onSegment(i.id,i.user,i.segmentStream.buffer,r.nextSample,e||r.nextSample>=r.samples.length),i.segmentStream=null,i!==this.fragmentedTracks[t]))break}if(null!==this.onSamples)for(t=0;t=r.samples.length)&&(u.debug("ISOFile","Sending samples on track #"+a.id+" for sample "+r.nextSample),this.onSamples&&this.onSamples(a.id,a.user,a.samples),a.samples=[],a!==this.extractedTracks[t]))break}}}},k.prototype.getBox=function(e){e=this.getBoxes(e,!0);return e.length?e[0]:null},k.prototype.getBoxes=function(e,t){var i=[];return k._sweep.call(this,e,i,t),i},k._sweep=function(e,t,i){for(var r in this.type&&this.type==e&&t.push(this),this.boxes){if(t.length&&i)return;k._sweep.call(this.boxes[r],e,t,i)}},k.prototype.getTrackSamplesInfo=function(e){e=this.getTrackById(e);return e?e.samples:void 0},k.prototype.getTrackSample=function(e,t){e=this.getTrackById(e);return this.getSample(e,t)},k.prototype.releaseUsedSamples=function(e,t){var i=0,r=this.getTrackById(e);r.lastValidSample||(r.lastValidSample=0);for(var s=r.lastValidSample;se*s.timescale){l=r-1;break}t&&s.is_sync&&(o=r)}for(t&&(l=o),e=i.samples[l].cts,i.nextSample=l;i.samples[l].alreadyRead===i.samples[l].size&&i.samples[l+1];)l++;return a=i.samples[l].offset+i.samples[l].alreadyRead,u.info("ISOFile","Seeking to "+(t?"RAP":"")+" sample #"+i.nextSample+" on track "+i.tkhd.track_id+", time "+u.getDurationString(e,n)+" and offset: "+a),{offset:a,time:e/n}},k.prototype.seek=function(e,t){var i,r,s=this.moov,a={offset:1/0,time:1/0};if(this.moov){for(r=0;r=r[s].last_sample_in_run&&(r[s].last_sample_in_run<0&&(r[s].last_sample_in_run=0),r[s].entry_index++,r[s].entry_index<=r[s].sbgp.entries.length-1&&(r[s].last_sample_in_run+=r[s].sbgp.entries[r[s].entry_index].sample_count)),r[s].entry_index<=r[s].sbgp.entries.length-1?t.sample_groups[s].group_description_index=r[s].sbgp.entries[r[s].entry_index].group_description_index:t.sample_groups[s].group_description_index=-1,0!==t.sample_groups[s].group_description_index&&(n=r[s].fragment_description||r[s].description,0>16)-1:t.sample_groups[s].group_description_index-1,n&&0<=a&&(t.sample_groups[s].description=n.entries[a])):n&&2<=n.version&&0>16&1),c.is_leading=f>>26&3,c.depends_on=f>>24&3,c.is_depended_on=f>>22&3,c.has_redundancy=f>>20&3,c.degradation_priority=65535&f;var f=!!(l.tfhd.flags&b.TFHD_FLAG_BASE_DATA_OFFSET),m=!!(l.tfhd.flags&b.TFHD_FLAG_DEFAULT_BASE_IS_MOOF),g=!!(u.flags&b.TRUN_FLAGS_DATA_OFFSET),f=f?l.tfhd.base_data_offset:m||0===A?o.start:a;c.offset=0===A&&0===p?g?f+u.data_offset:f:a,a=c.offset+c.size,(0d&&(this.size+=8),"uuid"===this.type&&(this.size+=16),e.log(e.indent+"size:"+this.size),e.log(e.indent+"type:"+this.type)},b.FullBox.prototype.printHeader=function(e){this.size+=4,b.Box.prototype.printHeader.call(this,e),e.log(e.indent+"version:"+this.version),e.log(e.indent+"flags:"+this.flags)},b.Box.prototype.print=function(e){this.printHeader(e)},b.ContainerBox.prototype.print=function(e){this.printHeader(e);for(var t,i=0;i>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"next_track_id: "+this.next_track_id)},b.tkhdBox.prototype.print=function(e){b.FullBox.prototype.printHeader.call(this,e),e.log(e.indent+"creation_time: "+this.creation_time),e.log(e.indent+"modification_time: "+this.modification_time),e.log(e.indent+"track_id: "+this.track_id),e.log(e.indent+"duration: "+this.duration),e.log(e.indent+"volume: "+(this.volume>>8)),e.log(e.indent+"matrix: "+this.matrix.join(", ")),e.log(e.indent+"layer: "+this.layer),e.log(e.indent+"alternate_group: "+this.alternate_group),e.log(e.indent+"width: "+this.width),e.log(e.indent+"height: "+this.height)};var h=function(e,t){e=void 0===e||e,t=new k(t);return t.discardMdatData=!e,t};t.createFile=h});C.Log,C.MP4BoxStream,C.DataStream,C.MultiBufferStream,C.MPEG4DescriptorParser,C.BoxParser,C.XMLSubtitlein4Parser,C.Textin4Parser,C.ISOFile,C.createFile;class Ds extends wr{TAG_NAME="Fmp4Loader";constructor(e){super(e),this.player=e,this.mp4Box=C.createFile(),this.tempFmp4List=[],this.offset=0,this.videoTrackId=null,this.audioTrackId=null,this.isHevc=!1,this._listenMp4Box(),e.debug.log(this.TAG_NAME,"init")}destroy(){this.mp4Box&&(this.mp4Box.flush(),this.mp4Box=null),this.tempFmp4List=[],this.offset=0,this.videoTrackId=null,this.audioTrackId=null,this.isHevc=!1,this.player.debug.log(this.TAG_NAME,"destroy")}_listenMp4Box(){this.mp4Box.onReady=this.onReady.bind(this),this.mp4Box.onError=this.onError.bind(this),this.mp4Box.onSamples=this.onSamples.bind(this)}onReady(e){this.player.debug.log(this.TAG_NAME,"onReady",e);const t=e.videoTracks[0],i=e.audioTracks[0];if(t){this.videoTrackId=t.id;const e=this.getSeqHeader(t);e&&(this.player.debug.log(this.TAG_NAME,"seqHeader",e),this._doDecodeByFmp4(e,2,0,!0,0)),this.mp4Box.setExtractionOptions(t.id)}if(i){this.audioTrackId=i.id;const e=i.audio||{},t=mt.indexOf(e.sample_rate),a=i.codec.replace("mp4a.40.","");this.mp4Box.setExtractionOptions(i.id);var r={profile:parseInt(a,10),sampleRate:t,channel:e.channel_count},s=ut(r);this.player.debug.log(this.TAG_NAME,"aacADTSHeader",s,"config",r),this._doDecodeByFmp4(s,1,0,!1,0)}this.mp4Box.start()}onError(e){this.player.debug.error(this.TAG_NAME,"mp4Box onError",e)}onSamples(e,t,i){if(e===this.videoTrackId)for(const e of i){const t=e.data,i=e.is_sync,s=1e3*e.cts/e.timescale;e.duration,e.timescale,this.player.updateStats({vbps:t.byteLength,dts:s}),i&&this.calcIframeIntervalTimestamp(s);var r=(this.isHevc?gr:nr)(t,i);this._doDecodeByFmp4(r,2,s,i,0)}else if(e===this.audioTrackId)for(const e of i){const t=e.data,i=(this.player.updateStats({abps:t.byteLength}),1e3*e.cts/e.timescale),a=(e.duration,e.timescale,new Uint8Array(t.byteLength+2));a.set([175,1],0),a.set(t,2),this._doDecodeByFmp4(a,1,i,!1,0)}else this.player.debug.warn(this.TAG_NAME,"onSamples() trackId error",e)}getSeqHeader(t){const i=this.mp4Box.getTrackById(t.id);for(const t of i.mdia.minf.stbl.stsd.entries)if(t.avcC||t.hvcC){const i=new C.DataStream(void 0,0,C.DataStream.BIG_ENDIAN);let e=[];e=t.avcC?(t.avcC.write(i),[23,0,0,0,0]):(this.isHevc=!0,t.hvcC.write(i),[28,0,0,0,0]);const r=new Uint8Array(i.buffer,8),s=new Uint8Array(e.length+r.length);return s.set(e,0),s.set(r,e.length),s}return null}dispatch(e){let t=new Uint8Array(e);"string"!=typeof e?"object"==typeof e?(t.buffer.fileStart=this.offset,this.offset+=t.byteLength,this.mp4Box.appendBuffer(t.buffer)):this.player.debug.warn(this.TAG_NAME,"dispatch()","data is not object",e):this.player.debug.warn(this.TAG_NAME,"dispatch()","data is string",e)}downloadFmp4File(){const e=new Blob(this.tempFmp4List,{type:'video/mp4; codecs="avc1.640028,mp4a.40.2"'}),t=URL.createObjectURL(e),i=document.createElement("a");i.href=t,i.download=p()+".fmp4",i.click(),URL.revokeObjectURL(t)}}class Rs extends wr{LOG_NAME="Mpeg4Loader";constructor(e){super(e),this.player=e,this.player.debug.log(this.LOG_NAME,"init")}destroy(){super.destroy(),this.player.debug.log(this.LOG_NAME,"destroy")}}class Ls{constructor(e){return new(Ls.getLoaderFactory(e._opt.demuxType))(e)}static getLoaderFactory(e){return"m7s"===e?Ts:e===z?ws:e===G?ks:e===H?xs:e===V?Ds:e===W?Rs:Cs}}class Is extends e{constructor(e){super(),this.player=e,this.hasInit=!1,this.isDecodeFirstIIframe=!1,this.isInitInfo=!1,this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.decoder=null,this.isWidthOrHeightChanged=!1,this.initDecoder(),e.debug.log("Webcodecs","init")}destroy(){this.decoder&&("closed"!==this.decoder.state&&this.decoder.close(),this.decoder=null),this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.hasInit=!1,this.isInitInfo=!1,this.isDecodeFirstIIframe=!1,this.isWidthOrHeightChanged=!1,this.off(),this.player.debug.log("Webcodecs","destroy")}initDecoder(){const t=this;this.decoder=new VideoDecoder({output(e){t.handleDecode(e)},error(e){t.handleError(e)}})}handleDecode(e){this.isInitInfo||(this.player.video.updateVideoInfo({width:e.codedWidth,height:e.codedHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0),this.player._times.videoStart||(this.player._times.videoStart=p(),this.player.handlePlayToRenderTimes()),this.player.video.render({videoFrame:e,ts:e.timestamp}),this.player.handleRender(),this.player.updateStats({dfps:!0,buf:this.player.demux&&this.player.demux.delay||0})}handleError(e){this.player.debug.error("Webcodecs","VideoDecoder handleError:",e.code,e);const t=e.toString();-1!==t.indexOf("Unsupported configuration")&&this.player.emitError(v.webcodecsUnsupportedConfigurationError,t)}decodeVideo(i,r,s,a){if(this.hasInit)if(this.isDecodeFirstIIframe||s||this.player.debug.warn("Webcodecs","VideoDecoder isDecodeFirstIIframe false and isIframe is false"),!this.isDecodeFirstIIframe&&s&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe){if(s&&0===i[1]){const r=15&i[0];let e={};7==r?e=sr(i.slice(5)):12==r&&(e=fr(i));const a=this.player.video.videoInfo;a&&a.width&&a.height&&e&&e.codecWidth&&e.codecHeight&&(e.codecWidth!==a.width||e.codecHeight!==a.height)&&(this.player.debug.warn("Webcodecs",`decodeVideo: video width or height is changed, old width is ${videoWidth}, old height is ${videoHeight}, new width is ${e.codecWidth}, new height is ${e.codecHeight}, and emit change event`),this.isWidthOrHeightChanged=!0,this.player.emitError(v.wcsWidthOrHeightChange))}if(this.isWidthOrHeightChanged)this.player.debug.warn("Webcodecs","decodeVideo: video width or height is changed, and return");else if(li(i))this.player.debug.warn("Webcodecs","decodeVideo and payload is video sequence header so drop this frame");else if(i.byteLength<12)this.player.debug.warn("Webcodecs","decodeVideo and payload is too small , payload length is "+i.byteLength);else{let e=!1,t=(new Date).getTime();this.prevTimestamp||(this.prevTimestamp=t,e=!0);var n=t-this.prevTimestamp,n=(((this.decodeDiffTimestamp=n)<5||500(e[t]=` + + ${Ps[t]?`${Ps[t]}`:""} +`,e),{});function Bs(e,t){let i=!1;return e.forEach(e=>{i||e.startTimestamp<=t&&e.endTimestamp>t&&(i=!0)}),i}function Us(e,t,i){let r=0 + ${a.title} + + `),s[u]);d&&(i+=` +
${d.title}
+ `),u+=1}t&&a.$playbackTimeListOne.insertAdjacentHTML("beforeend",t),i&&a.$playbackTimeListSecond.insertAdjacentHTML("beforeend",i),(c+=1){const{proxy:s}=v["events"],a=document.createElement("object");a.setAttribute("aria-hidden","true"),a.setAttribute("tabindex",-1),a.type="text/html",a.data="about:blank",S(a,{display:"block",position:"absolute",top:"0",left:"0",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:"-1"});let n=v.width,e=v.height;const t=It(()=>{v.width===n&&v.height===e||(n=v.width,e=v.height,v.emit(b.resize),l())},500),i=(s(a,"load",()=>{s(a.contentDocument.defaultView,"resize",()=>{t()})}),v.$container.appendChild(a),v.on(b.destroy,()=>{v.$container.removeChild(a)}),v.on(b.volumechange,()=>{var e,t,i;0===(e=v.volume)?(S(_.$volumeOn,"display","none"),S(_.$volumeOff,"display","flex"),S(_.$volumeHandle,"top","48px")):_.$volumeHandle&&_.$volumePanel&&(t=vt(_.$volumePanel,"height")||60,i=vt(_.$volumeHandle,"height"),S(_.$volumeHandle,"top",t-(t-i)*e-i+"px"),S(_.$volumeOn,"display","flex"),S(_.$volumeOff,"display","none")),_.$volumePanelText&&(_.$volumePanelText.innerHTML=parseInt(100*e))}),v.on(b.loading,e=>{S(_.$loading,"display",e?"flex":"none"),(g(v._opt.backgroundLoadingShow)&&f(e)||g(e))&&S(_.$poster,"display","none"),e&&S(_.$playBig,"display","none"),m()||e||(_.$loadingBgImage.width=0,_.$loadingBgImage.height=0,_.$loadingBgImage.src="",S(_.$loadingBg,"display","none"))}),e=>{v.fullscreen&&Qt(e)!==v.$container||r()}),r=e=>{e=Nt(e)?e:v.fullscreen;S(_.$fullscreenExit,"display",e?"flex":"none"),S(_.$fullscreen,"display",e?"none":"flex")},o=()=>v._opt.playType===A&&v._opt.playbackConfig.showControl,l=i=>{m()&&_.$controls&&v._opt.useWebFullScreen&&setTimeout(()=>{if(v.fullscreen){const i=o()?48:38;var e=v.height/2-v.width+i/2,t=v.height/2-i/2;_.$controls.style.transform=`translateX(${-e}px) translateY(-${t}px) rotate(-90deg)`}else _.$controls.style.transform="translateX(0) translateY(0) rotate(0)";i&&i()},10)};try{ct.on("change",i),v.events.destroys.push(()=>{ct.off("change",i)})}catch(v){}v.on(b.webFullscreen,e=>{m()&&(r(e),l(()=>{h()}))}),v.on(b.recording,()=>{v.playing&&(S(_.$record,"display",v.recording?"none":"flex"),S(_.$recordStop,"display",v.recording?"flex":"none"),(v._opt.hasControl||v._opt.isShowRecordingUI)&&S(_.$recording,"display",v.recording?"flex":"none"))}),v.on(b.recordingTimestamp,e=>{_.$recordingTime&&(_.$recordingTime.innerHTML=Ht(e))}),v.on(b.zooming,()=>{v.playing&&(S(_.$zoom,"display",v.zooming?"none":"flex"),S(_.$zoomStop,"display",v.zooming?"flex":"none"),(v._opt.hasControl||v._opt.isShowZoomingUI)&&S(_.$zoomControls,"display",v.zooming?"flex":"none"))}),v.on(b.playing,e=>{d(e)});const d=t=>{S(_.$play,"display",t?"none":"flex"),S(_.$playBig,"display",t?"none":"block"),S(_.$pause,"display",t?"flex":"none"),S(_.$screenshot,"display",t?"flex":"none"),S(_.$record,"display",t?"flex":"none"),S(_.$qualityMenu,"display",t?"flex":"none"),S(_.$volume,"display",t?"flex":"none"),S(_.$ptz,"display",t?"flex":"none"),S(_.$zoom,"display",t?"flex":"none"),S(_.$scaleMenu,"display",t?"flex":"none"),S(_.$faceDetect,"display",t?"flex":"none"),S(_.$controlHtml,"display",t?"flex":"none"),v.isPlayback()&&S(_.$speedMenu,"display",t?"flex":"none"),r(),_.extendBtnList.forEach(e=>{e.$iconWrap&&S(e.$iconWrap,"display",t?"flex":"none"),e.$activeIconWrap&&S(e.$activeIconWrap,"display","none")}),v._opt.showPerformance?S(_.$performanceActive,"display",t?"flex":"none"):S(_.$performance,"display",t?"flex":"none"),S(_.$poster,"display","none"),S(_.$ptzActive,"display","none"),S(_.$recordStop,"display","none"),S(_.$zoomStop,"display","none"),S(_.$faceDetectActive,"display","none"),t||(_.$speed&&(_.$speed.innerHTML="0 KB/s"),S(_.$zoomControls,"display","none"),S(_.$recording,"display","none"),_.$ptzControl&&_.$ptzControl.classList.remove("jessibuca-ptz-controls-show")),h()},h=(v.on(b.playbackPause,e=>{d(!e)}),v.on(b.kBps,e=>{e=function(e){if(null==e||""===e||0===parseFloat(e)||"NaN"===e)return"0 KB/s";var t=["KB/s","MB/s","GB/s","TB/s","PB/s","EB/s","ZB/s","YB/s"],e=parseFloat(e),i=Math.floor(Math.log(e)/Math.log(1024));let r=e/Math.pow(1024,i);return(r=r.toFixed(2))+(t[i]||t[0])}(e);_.kbpsShow=e,v._opt.showBandwidth&&(_.$speed&&(_.$speed.innerHTML=e),h())}),()=>{if(o()){let e=_.controlsInnerRect.width-_.controlsLeftRect.width-_.controlsRightRect.width-_.controlsPlaybackBtnsRect.width;m()&&v.webFullscreen&&(e=_.controlsInnerRect.height-_.controlsLeftRect.height-_.controlsRightRect.height-_.controlsPlaybackBtnsRect.height),_.$playbackTimeInner.style.width=e+"px"}});if(o()){const s=()=>{if(o()){let e=0;var t=v.playback&&v.playback.playingTimestamp;if(t){const i=new Date(t),r=i.getHours(),s=i.getMinutes(),a=i.getSeconds();v.playback.is60Min?e=60*r+s:v.playback.is30Min?e=2*(60*r+s)+parseInt(a/30,10):v.playback.is10Min?e=6*(60*r+s)+parseInt(a/10,10):v.playback.is5Min?e=12*(60*r+s)+parseInt(a/5,10):v.playback.is1Min&&(e=60*(60*r+s)+parseInt(a,10)),_.$playbackCurrentTime.style.left=e+"px"}}},a=e=>{_.$playbackNarrow.classList.remove("disabled"),_.$playbackExpand.classList.remove("disabled"),e===Pe&&_.$playbackNarrow.classList.add("disabled"),e===Me&&_.$playbackExpand.classList.add("disabled")},n=()=>{var e=_.$playbackCurrentTime.style.left;let t=parseInt(e,10);e=_.controlsPlaybackTimeInner.width;t=0{_.$playbackCurrentTimeText&&(_.$playbackCurrentTimeText.innerText=Ct(e,"{h}:{i}:{s}")),s()}),v.on(b.playbackPrecision,(i,r)=>{_.$playbackTimeScroll.classList.remove(Fe.oneHour,Fe.halfHour,Fe.fiveMin,Fe.tenMin),_.$playbackTimeScroll.classList.add(Fe[i]),_.rafId&&(window.cancelAnimationFrame(_.rafId),_.rafId=null),_.changePercisitionInterval&&(clearTimeout(_.changePercisitionInterval),_.changePercisitionInterval=null),_.$playbackTimeListOne.innerHTML="",_.$playbackTimeListSecond.innerHTML="",_.changePercisitionInterval=setTimeout(()=>{switch(_.$playbackTimeListOne.innerHTML="",_.$playbackTimeListSecond.innerHTML="",i){case Pe:Ms(r,_);break;case Be:t=_,Us(function(e){let s=0{h()}),h()}if(v._opt.operateBtns.quality&&0{s(e)});const s=i=>{_.$qualityText.innerText=i,_.$qualityMenuItems.forEach(e=>{var t=e.dataset.quality;e.classList.remove("jessibuca-quality-menu-item-active"),t===i&&e.classList.add("jessibuca-quality-menu-item-active")})};{const c=v._opt.qualityConfig||[];let t="";c.forEach(e=>{t+=` +
${e}
+ `}),t&&(_.$qualityMenuList.insertAdjacentHTML("beforeend",t),Object.defineProperty(_,"$qualityMenuItems",{value:v.$container.querySelectorAll(".jessibuca-quality-menu-item")}),setTimeout(()=>{var e=c[0];v.streamQuality=e},0))}v.streamQuality&&s(v.streamQuality)}if(v._opt.operateBtns.scale&&0{s(e)});const s=i=>{var e=v._opt.scaleConfig[i];_.$scaleText.innerText=e,_.$scaleMenuItems.forEach(e=>{var t=e.dataset.scale;e.classList.remove("jessibuca-scale-menu-item-active"),Rt(t)===Rt(i)&&e.classList.add("jessibuca-scale-menu-item-active")})};{const u=v._opt.scaleConfig||[];let i="";u.forEach((e,t)=>{i+=` +
${e}
+ `}),i&&(_.$scaleMenuList.insertAdjacentHTML("beforeend",i),Object.defineProperty(_,"$scaleMenuItems",{value:v.$container.querySelectorAll(".jessibuca-scale-menu-item")}))}s(v.scaleType)}if(v.isPlayback()&&v._opt.playbackConfig.showRateBtn&&0{s(e)});const s=i=>{var e=v._opt.playbackConfig.rateConfig.find(e=>Rt(e.value)===Rt(i));e&&(_.$speedText.innerText=e.label,_.$speedMenuItems.forEach(e=>{var t=e.dataset.speed;e.classList.remove("jessibuca-speed-menu-item-active"),Rt(t)===Rt(i)&&e.classList.add("jessibuca-speed-menu-item-active")}))};{const p=v._opt.playbackConfig.rateConfig;let i="";p.forEach((e,t)=>{i+=` +
${e.label}
+ `}),i&&(_.$speedMenuList.insertAdjacentHTML("beforeend",i),Object.defineProperty(_,"$speedMenuItems",{value:v.$container.querySelectorAll(".jessibuca-speed-menu-item")}))}const a=v.playback?v.playback.playbackRate:1;s(a)}v.on(b.stats,function(){var e,t,i,r,s,a,n,o,l,d,h,c,u,p,f,m,g,y,A,b=0 + 版本 ${A} + + ${e?` +
+ 内存大小限制 ${Pt(e.jsHeapSizeLimit)} +
+
+ 可使用的内存 ${Pt(e.totalJSHeapSize)} +
+
+ 已使用的内存 ${Pt(e.usedJSHeapSize)} +
+ `:""} + ${e&&e.usedJSHeapSize>e.totalJSHeapSize?'\n
\n 可能内存泄漏 是}\n
\n ':""} +
+ 播放模式 ${f} +
+ ${v.isPlayback()?` +
+ 播放倍率 ${v.playback.rate}倍 +
+
+ 播放模式 ${v.playback.isUseFpsRender?"固定FPS":"动态FPS"} +
+ ${v.playback.isUseFpsRender?` +
+ 固定FPS ${v.video.getStreamFps()} +
+ `:""} + `:""} +
+ 解封装模式 ${K[o]} +
+
+ 解码模式 ${n} +
+
+ 渲染组件 ${s} +
+ ${s===Y?` +
+ 渲染引擎 ${a} +
+ `:""} +
+ 网络请求组件 ${l} +
+
+ 视频格式 ${t.encType||"-"} +
+
+ 视频(宽x高) ${t.width||"-"}x${t.height||"-"} +
+ ${v.isPlayer()?` +
+ 视频GOP(ms) ${c||"-"} +
+ `:""} +
+ 音频格式 ${Ae[i.encType]||"-"} +
+
+ 音频引擎 ${d||"-"} +
+
+ 音频通道 ${i.channels||"-"} +
+
+ 音频采样率 ${i.sampleRate||"-"} +
+ ${v.isPlayer()?` +
+ 播放器初始化(ms) ${r.playTimestamp} +
+
+ 开始请求地址(ms) ${r.streamTimestamp} +
+
+ 请求响应(ms) ${r.streamResponseTimestamp} +
+
+ 解封装(ms) ${r.demuxTimestamp} +
+
+ 解码(ms) ${r.decodeTimestamp} +
+
+ 页面开始渲染(ms) ${r.videoTimestamp} +
+
+ 初始化到页面渲染(ms) ${r.allTimestamp} +
+ ${v.recording?` +
+ 视频录制时间 ${u} +
+
+ 视频录制大小 ${p} +
+ `:""} + `:""} +
+ 音频码率(bit) ${b.abps} +
+
+ 视频码率(bit) ${b.vbps} +
+
+ 视频帧率(fps) ${b.fps} +
+
+ 视频峰值帧率(fps) ${b.maxFps} +
+
+ 解码帧率(fps) ${b.dfps} +
+
+ 音频缓冲帧 ${b.audioBuffer} +
+
+ 音频缓冲时长(ms) ${b.audioBufferDelayTs} +
+ ${v.isPlayer()?` +
+ 视频待解码帧 ${b.demuxBuffer} +
+ `:` +
+ 缓存时长(ms) ${b.playbackCacheDataDuration} +
+
+ 视频待渲染帧 ${b.playbackVideoBuffer} +
+
+ 视频待解码帧 ${b.demuxBuffer} +
+
+ 音频待解码帧 ${b.audioDemuxBuffer} +
+ `} +
+ 待解封装数据(byte) ${b.flvBuffer} +
+ ${v._opt.useMSE?` +
+ MSE缓冲时长(ms) ${b.mseDelay} +
+
+ MSE解码间隔(ms) ${b.mseDecodeDiffTimes} +
+
+ MSE解码时间(ms) ${b.mseTs} +
+
+ MSE播放模式 ${1 +
+ `:""} + ${v._opt.useWCS?` +
+ WCS解码间隔(ms) ${b.wcsDecodeDiffTimes} +
+ `:""} + ${v.isOldHls()?`
+ HLS缓冲时长(ms) ${b.hlsDelay} +
+
+ HLS播放模式 ${1 +
+ `:""} + ${v.isUseHls265()?`
+ HLS缓冲时长(ms) ${b.hlsDelay} +
+
+ HLS待解码帧 ${b.hlsDemuxLength} +
+
+ HLS待解码视频帧 ${b.hlsDemuxVideoLength} +
+
+ HLS待解码音频帧 ${b.hlsDemuxAudioLength} +
+ `:""} + ${v.isPlayer()&&y?` +
+ 已渲染帧 ${y.renderedVideoFrames} +
+
+ 已丢弃帧 ${y.droppedVideoFrames} +
+ `:""} + ${v.isPlayer()?` +
+ 网络延迟(ms) ${b.netBuf} +
+
+ 缓冲时长(ms) ${b.buf} +
+
+ 最新缓冲时长(ms) ${b.pushLatestDelay} +
+ `:""} +
+ 视频显示时间(ms) ${b.ts} +
+ ${v._opt.hasAudio&&v.isAudioNotMute()?` +
+ 音频显示时间(ms) ${b.audioTs} +
+ ${v._opt.hasVideo?` +
+ 音视频同步时间戳(ms) ${b.ts-b.audioTs} +
+ `:""} +
+ 音频播放模式 ${h?"加速":"正常"} +
+ `:""} +
+ 视频解码时间(ms) ${b.dts} +
+ ${v.isPlayer()?` +
+ 解码前-解码后延迟(ms) ${b.delayTs} +
+
+ 总延迟(网络+解码)(ms) ${b.totalDelayTs} +
+ `:""} + ${v.isPlayer()&&b.isStreamTsMoreThanLocal?'
\n 是否超过一倍率推流 是\n
\n ':""} + ${v.isPlayer()?` +
+ 是否在丢帧 ${m} +
+ `:""} +
+ 网速 ${g} +
+
+ 播放时长(s) ${Ht(b.pTs)} +
+
+ `,_.$performancePanel.insertAdjacentHTML("beforeend",A)):(_.$performancePanel.innerHTML="",S(_.$performancePanel,"display","none"))}),v.on(b.togglePerformancePanel,e=>{S(_.$performance,"display",e?"none":"flex"),S(_.$performanceActive,"display",e?"flex":"none")}),v.on(b.faceDetectActive,e=>{S(_.$faceDetect,"display",e?"none":"flex"),S(_.$faceDetectActive,"display",e?"flex":"none")})};function Os(e,t){var i,r,t=(t=void 0===t?{}:t).insertAt;e&&"undefined"!=typeof document&&(i=document.head||document.getElementsByTagName("head")[0],(r=document.createElement("style")).type="text/css","top"===t&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e)))}function Ns(e,t){t instanceof Element?e.appendChild(t):e.insertAdjacentHTML("beforeend",String(t)),e.lastElementChild||e.lastChild}function R(e,t,i){e.style[t]=i}function js(e,t){return e.composedPath&&-1 +
+
+
+
+
+
+
+
+
+
+
00:00:00
+
+
+
+
+
+
${D.narrow}
+
${D.expand}
+
+ + `,l.$container.insertAdjacentHTML("beforeend",` + ${h.background?`
`:""} +
+ +
+ ${h.loadingIcon?` +
+ ${D.loading} + ${h.loadingText?`
${h.loadingText}
`:""} +
+ `:""} + ${h.hasControl&&c.play?'
':""} + ${h.hasControl&&c.ptz?` +
+
+
+
+
+
+ ${h.ptzMoreArrowShow?'\n
\n
\n
\n
\n ':""} +
+
+ ${h.ptzZoomShow?'\n
\n
\n \n \n 缩放+\n \n
\n
\n \n \n 缩放-\n \n
\n
\n ':""} + ${h.ptzApertureShow?'\n
\n
\n \n \n 光圈+\n \n
\n
\n \n \n 光圈-\n \n
\n
\n ':""} + ${h.ptzFocusShow?'\n
\n
\n \n \n 聚焦+\n \n
\n
\n \n \n 聚焦-\n \n
\n
\n ':""} +
+ +
+ `:""} + ${h.hasVideo?` +
+
${D.narrow}
+
电子放大
+
${D.expand}
+
${D.zoomStop}
+
+
+
+
00:00:00
+
${D.recordStop}
+
+ `:""} + + ${h.hasControl?` +
+
+
+ ${h.showBandwidth?'
':""} +
${h.controlHtml}
+
+ ${h.playType===A&&h.playbackConfig.showControl?u:""} + +
+ ${h.playType===A&&h.playbackConfig.showRateBtn?'\n
\n
\n
\n
\n
\n
\n ':""} + ${c.close?`
${D.close}
`:""} + ${c.performance?`
${D.performance}
${D.performanceActive}
`:""} + ${c.aiFace?`
${D.face}
${D.faceActive}
`:""} + ${c.quality?'\n
\n
\n
\n
\n
\n
\n ':""} + ${c.scale?'\n
\n
\n
\n
\n
\n
\n ':""} + ${c.audio?` +
+
+ ${D.audio} + ${D.mute} +
+
+
+
+
+
+
+
+ `:""} + ${c.play?`
${D.play}
${D.pause}
`:""} + ${c.screenshot?`
${D.screenshot}
`:""} + ${c.record?`
${D.record}
${D.recordStop}
`:""} + ${c.ptz?`
${D.ptz}
${D.ptzActive}
`:""} + ${c.zoom?`
${D.zoom}
${D.zoomStop}
`:""} + ${c.fullscreen?`
${D.fullscreen}
${D.fullscreenExit}
`:""} +
+
+
+ `:""} +
+
+ `),Object.defineProperty(d,"$poster",{value:l.$container.querySelector(".jessibuca-poster")}),Object.defineProperty(d,"$loadingBg",{value:l.$container.querySelector(".jessibuca-loading-bg")}),Object.defineProperty(d,"$loadingBgImage",{value:l.$container.querySelector(".jessibuca-loading-bg-image")}),Object.defineProperty(d,"$loading",{value:l.$container.querySelector(".jessibuca-loading")}),Object.defineProperty(d,"$play",{value:l.$container.querySelector(".jessibuca-play")}),Object.defineProperty(d,"$playBig",{value:l.$container.querySelector(".jessibuca-play-big")}),Object.defineProperty(d,"$recording",{value:l.$container.querySelector(".jessibuca-recording")}),Object.defineProperty(d,"$recordingTime",{value:l.$container.querySelector(".jessibuca-recording-time")}),Object.defineProperty(d,"$recordingStop",{value:l.$container.querySelector(".jessibuca-recording-stop")}),Object.defineProperty(d,"$pause",{value:l.$container.querySelector(".jessibuca-pause")}),Object.defineProperty(d,"$controls",{value:l.$container.querySelector(".jessibuca-controls")}),Object.defineProperty(d,"$controlsInner",{value:l.$container.querySelector(".jessibuca-controls-bottom")}),Object.defineProperty(d,"$controlsLeft",{value:l.$container.querySelector(".jessibuca-controls-left")}),Object.defineProperty(d,"$controlsRight",{value:l.$container.querySelector(".jessibuca-controls-right")}),Object.defineProperty(d,"$volume",{value:l.$container.querySelector(".jessibuca-volume")}),Object.defineProperty(d,"$volumePanelWrap",{value:l.$container.querySelector(".jessibuca-volume-panel-wrap")}),Object.defineProperty(d,"$volumePanelText",{value:l.$container.querySelector(".jessibuca-volume-panel-text")}),Object.defineProperty(d,"$volumePanel",{value:l.$container.querySelector(".jessibuca-volume-panel")}),Object.defineProperty(d,"$volumeHandle",{value:l.$container.querySelector(".jessibuca-volume-panel-handle")}),Object.defineProperty(d,"$volumeOn",{value:l.$container.querySelector(".jessibuca-icon-audio")}),Object.defineProperty(d,"$volumeOff",{value:l.$container.querySelector(".jessibuca-icon-mute")}),Object.defineProperty(d,"$fullscreen",{value:l.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(d,"$fullscreenExit",{value:l.$container.querySelector(".jessibuca-fullscreen-exit")}),Object.defineProperty(d,"$record",{value:l.$container.querySelector(".jessibuca-record")}),Object.defineProperty(d,"$recordStop",{value:l.$container.querySelector(".jessibuca-record-stop")}),Object.defineProperty(d,"$screenshot",{value:l.$container.querySelector(".jessibuca-screenshot")}),Object.defineProperty(d,"$speed",{value:l.$container.querySelector(".jessibuca-speed")}),Object.defineProperty(d,"$controlHtml",{value:l.$container.querySelector(".jessibuca-controls-item-html")}),Object.defineProperty(d,"$playbackTime",{value:l.$container.querySelector(".jessibuca-controls-playback-time")}),Object.defineProperty(d,"$playbackTimeInner",{value:l.$container.querySelector(".jessibuca-controls-playback-time-inner")}),Object.defineProperty(d,"$playbackTimeScroll",{value:l.$container.querySelector(".jessibuca-controls-playback-time-scroll")}),Object.defineProperty(d,"$playbackTimeList",{value:l.$container.querySelector(".jessibuca-controls-playback-time-list")}),Object.defineProperty(d,"$playbackTimeListOne",{value:l.$container.querySelector(".jessibuca-playback-time-one-wrap")}),Object.defineProperty(d,"$playbackTimeListSecond",{value:l.$container.querySelector(".jessibuca-playback-time-second-wrap")}),Object.defineProperty(d,"$playbackCurrentTime",{value:l.$container.querySelector(".jessibuca-controls-playback-current-time")}),Object.defineProperty(d,"$playbackCurrentTimeText",{value:l.$container.querySelector(".jessibuca-controls-playback-current-time-text")}),Object.defineProperty(d,"$controlsPlaybackBtns",{value:l.$container.querySelector(".jessibuca-controls-playback-btns")}),Object.defineProperty(d,"$playbackNarrow",{value:l.$container.querySelector(".jessibuca-playback-narrow")}),Object.defineProperty(d,"$playbackExpand",{value:l.$container.querySelector(".jessibuca-playback-expand")}),Object.defineProperty(d,"$ptz",{value:l.$container.querySelector(".jessibuca-ptz")}),Object.defineProperty(d,"$ptzActive",{value:l.$container.querySelector(".jessibuca-ptz-active")}),Object.defineProperty(d,"$ptzControl",{value:l.$container.querySelector(".jessibuca-ptz-controls")}),Object.defineProperty(d,"$ptzBgActive",{value:l.$container.querySelector(".jessibuca-ptz-bg-active")}),Object.defineProperty(d,"$ptzControlCircular",{value:l.$container.querySelector(".jessibuca-ptz-control")}),Object.defineProperty(d,"$ptzArrows",{value:l.$container.querySelectorAll(".jessibuca-ptz-arrow")}),Object.defineProperty(d,"$ptzExpand",{value:l.$container.querySelector(".jessibuca-ptz-expand")}),Object.defineProperty(d,"$ptzNarrow",{value:l.$container.querySelector(".jessibuca-ptz-narrow")}),Object.defineProperty(d,"$ptzApertureFar",{value:l.$container.querySelector(".jessibuca-ptz-aperture-far")}),Object.defineProperty(d,"$ptzApertureNear",{value:l.$container.querySelector(".jessibuca-ptz-aperture-near")}),Object.defineProperty(d,"$ptzFocusFar",{value:l.$container.querySelector(".jessibuca-ptz-focus-far")}),Object.defineProperty(d,"$ptzFocusNear",{value:l.$container.querySelector(".jessibuca-ptz-focus-near")}),Object.defineProperty(d,"$qualityText",{value:l.$container.querySelector(".jessibuca-quality-icon-text")}),Object.defineProperty(d,"$qualityMenu",{value:l.$container.querySelector(".jessibuca-quality-menu")}),Object.defineProperty(d,"$qualityMenuList",{value:l.$container.querySelector(".jessibuca-quality-menu-list")}),Object.defineProperty(d,"$scaleText",{value:l.$container.querySelector(".jessibuca-scale-icon-text")}),Object.defineProperty(d,"$scaleMenu",{value:l.$container.querySelector(".jessibuca-scale-menu")}),Object.defineProperty(d,"$scaleMenuList",{value:l.$container.querySelector(".jessibuca-scale-menu-list")}),Object.defineProperty(d,"$zoom",{value:l.$container.querySelector(".jessibuca-zoom")}),Object.defineProperty(d,"$zoomStop",{value:l.$container.querySelector(".jessibuca-zoom-stop")}),Object.defineProperty(d,"$zoomNarrow",{value:l.$container.querySelector(".jessibuca-zoom-narrow")}),Object.defineProperty(d,"$zoomExpand",{value:l.$container.querySelector(".jessibuca-zoom-expand")}),Object.defineProperty(d,"$zoomStop2",{value:l.$container.querySelector(".jessibuca-zoom-stop2")}),Object.defineProperty(d,"$close",{value:l.$container.querySelector(".jessibuca-close")}),Object.defineProperty(d,"$zoomControls",{value:l.$container.querySelector(".jessibuca-zoom-controls")}),Object.defineProperty(d,"$performancePanel",{value:l.$container.querySelector(".jessibuca-performance-panel")}),Object.defineProperty(d,"$performance",{value:l.$container.querySelector(".jessibuca-performance")}),Object.defineProperty(d,"$performanceActive",{value:l.$container.querySelector(".jessibuca-performance-active")}),Object.defineProperty(d,"$faceDetect",{value:l.$container.querySelector(".jessibuca-face")}),Object.defineProperty(d,"$faceDetectActive",{value:l.$container.querySelector(".jessibuca-face-active")}),Object.defineProperty(d,"$contextmenus",{value:l.$container.querySelector(".jessibuca-contextmenus")}),Object.defineProperty(d,"$speedText",{value:l.$container.querySelector(".jessibuca-speed-icon-text")}),Object.defineProperty(d,"$speedMenu",{value:l.$container.querySelector(".jessibuca-speed-menu")}),Object.defineProperty(d,"$speedMenuList",{value:l.$container.querySelector(".jessibuca-speed-menu-list")}),0{this.addExtendBtn(e)}),o=this,Object.defineProperty(o,"controlsRect",{get:()=>o.$controls.getBoundingClientRect()}),Object.defineProperty(o,"controlsInnerRect",{get:()=>o.$controlsInner.getBoundingClientRect()}),Object.defineProperty(o,"controlsLeftRect",{get:()=>o.$controlsLeft.getBoundingClientRect()}),Object.defineProperty(o,"controlsRightRect",{get:()=>o.$controlsRight.getBoundingClientRect()}),Object.defineProperty(o,"controlsPlaybackTimeInner",{get:()=>o.$playbackTimeInner&&o.$playbackTimeInner.getBoundingClientRect()||{}}),Object.defineProperty(o,"controlsPlaybackBtnsRect",{get:()=>o.$controlsPlaybackBtns&&o.$controlsPlaybackBtns.getBoundingClientRect()||{width:0}}),Fs(e,this);{var r=e,s=this;const p=r["events"]["proxy"],f=r._opt,m=f.operateBtns;function t(e){var{bottom:t,height:i}=s.$volumePanel.getBoundingClientRect(),r=s.$volumeHandle.getBoundingClientRect()["height"];return _(t-e.y-r/2,0,i-r/2)/(i-r)}if(p(window,["click","contextmenu"],e=>{-1{setTimeout(()=>{r.resize()},300)}),p(s.$controls,"click",e=>{e.stopPropagation()}),m.play&&(p(s.$pause,"click",e=>{f.playType===A&&f.playbackConfig.uiUsePlaybackPause?r.playbackPause=!0:E(m.pauseFn)?m.pauseFn():r.pause()}),p(s.$play,"click",e=>{f.playType===A&&r.playbackPause?r.playbackPause=!1:E(m.playFn)?m.playFn():(r.play(),r.resumeAudioAfterPause())})),p(s.$playBig,"click",e=>{f.playType===A&&r.playbackPause?r.playbackPause=!1:E(m.playFn)?m.playFn():(r.play(),r.resumeAudioAfterPause())}),m.screenshot&&p(s.$screenshot,"click",e=>{e.stopPropagation(),E(m.screenshotFn)?m.screenshotFn():r.video.screenshot()}),m.audio&&(p(s.$volume,"mouseover",()=>{s.$volumePanelWrap.classList.add("jessibuca-volume-panel-wrap-show")}),p(s.$volume,"mouseout",()=>{s.$volumePanelWrap.classList.remove("jessibuca-volume-panel-wrap-show")}),p(s.$volumeOn,"click",e=>{e.stopPropagation(),S(s.$volumeOn,"display","none"),S(s.$volumeOff,"display","block");e=r.volume;r.volume=0,r._lastVolume=e}),p(s.$volumeOff,"click",e=>{e.stopPropagation(),S(s.$volumeOn,"display","block"),S(s.$volumeOff,"display","none"),r.volume=r.lastVolume||.5}),p(s.$volumePanel,"click",e=>{e.stopPropagation(),r.volume=t(e)}),p(s.$volumeHandle,"mousedown",()=>{s.isVolumeDroging=!0}),p(s.$volumeHandle,"mousemove",e=>{s.isVolumeDroging&&(r.volume=t(e))}),p(document,"mouseup",()=>{s.isVolumeDroging&&(s.isVolumeDroging=!1)})),m.record&&(p(s.$record,"click",e=>{e.stopPropagation(),E(m.recordFn)?m.recordFn():r.recording=!0}),p(s.$recordStop,"click",e=>{e.stopPropagation(),E(m.recordStopFn)?m.recordStopFn():r.recording=!1})),p(s.$recordingStop,"click",e=>{e.stopPropagation(),E(m.recordStopFn)?m.recordStopFn():r.recording=!1}),m.fullscreen&&(p(s.$fullscreen,"click",e=>{e.stopPropagation(),E(m.fullscreenFn)?m.fullscreenFn():r.fullscreen=!0}),p(s.$fullscreenExit,"click",e=>{e.stopPropagation(),E(m.fullscreenExitFn)?m.fullscreenExitFn():r.fullscreen=!1})),m.ptz&&(p(s.$ptz,"click",e=>{e.stopPropagation(),S(s.$ptzActive,"display","flex"),S(s.$ptz,"display","none"),s.$ptzControl.classList.add("jessibuca-ptz-controls-show")}),p(s.$ptzActive,"click",e=>{e.stopPropagation(),S(s.$ptz,"display","flex"),S(s.$ptzActive,"display","none"),s.$ptzControl.classList.remove("jessibuca-ptz-controls-show")}),s.$ptzArrows.forEach(e=>{if(f.ptzClickType===$)p(e,"click",e=>{e.stopPropagation();e=e.currentTarget.dataset.arrow;s.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-show"),s.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-"+e),s.$ptzControlCircular.classList.add("jessibuca-ptz-control-"+e),r.emit(b.ptz,di(e)),setTimeout(()=>{s.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-show"),Ne.forEach(e=>{s.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-"+e),s.$ptzControlCircular.classList.remove("jessibuca-ptz-control-"+e)}),r.emit(b.ptz,je)},1e3*f.ptzStopEmitDelay)});else if("mouseDownAndUp"===f.ptzClickType){let t=!1;p(e,"mousedown",e=>{e.stopPropagation(),t=!0;e=e.currentTarget.dataset.arrow;s.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-show"),s.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-"+e),s.$ptzControlCircular.classList.add("jessibuca-ptz-control-"+e),r.emit(b.ptz,di(e))});const i=()=>{t=!1,s.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-show"),Ne.forEach(e=>{s.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-"+e),s.$ptzControlCircular.classList.remove("jessibuca-ptz-control-"+e)}),r.emit(b.ptz,je)};p(e,"mouseup",e=>{e.stopPropagation(),t&&i()}),p(window,"mouseup",e=>{e.stopPropagation(),t&&i()})}}),f.ptzZoomShow&&(p(s.$ptzExpand,"click",e=>{e.stopPropagation(),r.emit(b.ptz,"zoomExpand"),setTimeout(()=>{r.emit(b.ptz,je)},1e3*f.ptzStopEmitDelay)}),p(s.$ptzNarrow,"click",e=>{e.stopPropagation(),r.emit(b.ptz,"zoomNarrow"),setTimeout(()=>{r.emit(b.ptz,je)},1e3*f.ptzStopEmitDelay)})),f.ptzApertureShow&&(p(s.$ptzApertureFar,"click",e=>{e.stopPropagation(),r.emit(b.ptz,"apertureFar"),setTimeout(()=>{r.emit(b.ptz,ze)},1e3*f.ptzStopEmitDelay)}),p(s.$ptzApertureNear,"click",e=>{e.stopPropagation(),r.emit(b.ptz,"apertureNear"),setTimeout(()=>{r.emit(b.ptz,ze)},1e3*f.ptzStopEmitDelay)})),f.ptzFocusShow&&(p(s.$ptzFocusFar,"click",e=>{e.stopPropagation(),r.emit(b.ptz,"focusFar"),setTimeout(()=>{r.emit(b.ptz,ze)},1e3*f.ptzStopEmitDelay)}),p(s.$ptzFocusNear,"click",e=>{e.stopPropagation(),r.emit(b.ptz,"focusNear"),setTimeout(()=>{r.emit(b.ptz,ze)},1e3*f.ptzStopEmitDelay)}))),m.performance&&(p(s.$performance,"click",e=>{e.stopPropagation(),r.togglePerformancePanel(!0)}),p(s.$performanceActive,"click",e=>{e.stopPropagation(),r.togglePerformancePanel(!1)})),m.aiFace&&(p(s.$faceDetect,"click",e=>{e.stopPropagation(),r.faceDetect(!0)}),p(s.$faceDetectActive,"click",e=>{e.stopPropagation(),r.faceDetect(!1)})),r._opt.hasControl&&r._opt.controlAutoHide){p(r.$container,"mouseover",()=>{r.fullscreen||(S(s.$controls,"display","block"),f())}),p(r.$container,"mousemove",()=>{r.$container&&s.$controls&&(r.fullscreen,"none"===s.$controls.style.display&&(S(s.$controls,"display","block"),f()))}),p(r.$container,"mouseout",()=>{m(),S(s.$controls,"display","none")});let e=null;const f=()=>{m(),e=setTimeout(()=>{S(s.$controls,"display","none")},5e3)},m=()=>{e&&(clearTimeout(e),e=null)}}r._opt.playType===A&&(p(s.$playbackNarrow,"click",e=>{e.stopPropagation(),r.playback&&r.playback.narrowPrecision()}),p(s.$playbackExpand,"click",e=>{e.stopPropagation(),r.playback&&r.playback.expandPrecision()}),p(s.$playbackTimeList,"click",e=>{const t=Qt(e);t.matches("div.jessibuca-playback-time-minute-one")&&r.playback&&r.playback.seek(t.dataset)}),r._opt.playbackConfig.showRateBtn&&(p(s.$speedMenu,"mouseover",()=>{s.$speedMenuList.classList.add("jessibuca-speed-menu-shown")}),p(s.$speedMenu,"mouseout",()=>{s.$speedMenuList.classList.remove("jessibuca-speed-menu-shown")}),p(s.$speedMenuList,"click",e=>{const t=Qt(e);if(t.matches("div.jessibuca-speed-menu-item")){const e=t.dataset;r.emit(b.playbackPreRateChange,e.speed)}})),r._opt.playbackConfig.supportWheel&&p(s.$playbackTimeInner,"wheel",e=>{e.preventDefault(),0<(e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3)?r.playback&&r.playback.expandPrecision():r.playback&&r.playback.narrowPrecision()})),m.quality&&(p(s.$qualityMenu,"mouseover",()=>{s.$qualityMenuList.classList.add("jessibuca-quality-menu-shown")}),p(s.$qualityMenu,"mouseout",()=>{s.$qualityMenuList.classList.remove("jessibuca-quality-menu-shown")}),p(s.$qualityMenuList,"click",e=>{const t=Qt(e);if(t.matches("div.jessibuca-quality-menu-item")){const e=t.dataset;r.streamQuality=e.quality}})),m.scale&&(p(s.$scaleMenu,"mouseover",()=>{s.$scaleMenuList.classList.add("jessibuca-scale-menu-shown")}),p(s.$scaleMenu,"mouseout",()=>{s.$scaleMenuList.classList.remove("jessibuca-scale-menu-shown")}),p(s.$scaleMenuList,"click",e=>{const t=Qt(e);if(t.matches("div.jessibuca-scale-menu-item")){const e=t.dataset;r.setScaleMode(e.scale)}})),m.zoom&&(p(s.$zoom,"click",e=>{e.stopPropagation(),r.zooming=!0}),p(s.$zoomStop,"click",e=>{e.stopPropagation(),r.zooming=!1})),p(s.$zoomExpand,"click",e=>{e.stopPropagation(),r.zoom&&r.zoom.expandPrecision()}),p(s.$zoomNarrow,"click",e=>{e.stopPropagation(),r.zoom&&r.zoom.narrowPrecision()}),p(s.$zoomStop2,"click",e=>{e.stopPropagation(),r.zooming=!1}),m.close&&p(s.$close,"click",e=>{e.stopPropagation(),r.doDestroy()})}if(e._opt.hotKey){var i=e,a=this;const g=i["events"]["proxy"],y={};function n(e,t){y[e]?y[e].push(t):y[e]=[t]}n(27,()=>{i.fullscreen&&(i.fullscreen=!1)}),n(38,()=>{i.volume+=.05}),n(40,()=>{i.volume-=.05}),g(window,"keydown",e=>{if(a.isFocus){const a=document.activeElement.tagName.toUpperCase(),t=document.activeElement.getAttribute("contenteditable");if("INPUT"!==a&&"TEXTAREA"!==a&&""!==t&&"true"!==t){const a=y[e.keyCode];a&&(e.preventDefault(),a.forEach(e=>e()))}}})}var o,l,d,h,c,u;this.btnIndex=0,this.kbpsShow="0 KB/s",this.initLoadingBackground(),this.player.debug.log("Control","init")}destroy(){var e;this.$performancePanel&&(this.$performancePanel.innerHTML="",t(this.$performancePanel)||(e=this.player.$container.querySelector(".jessibuca-performance-panel"))&&this.player.$container&&this.player.$container.removeChild(e)),this.$poster&&!t(this.$poster)&&(e=this.player.$container.querySelector(".jessibuca-poster"))&&this.player.$container&&this.player.$container.removeChild(e),this.$loading&&!t(this.$loading)&&(e=this.player.$container.querySelector(".jessibuca-loading"))&&this.player.$container&&this.player.$container.removeChild(e),this.$loadingBg&&!t(this.$loadingBg)&&(e=this.player.$container.querySelector(".jessibuca-loading-bg"))&&this.player.$container&&this.player.$container.removeChild(e),this.$controls&&!t(this.$controls)&&(e=this.player.$container.querySelector(".jessibuca-controls"))&&this.player.$container&&this.player.$container.removeChild(e),this.$playBig&&!t(this.$playBig)&&(e=this.player.$container.querySelector(".jessibuca-play-big"))&&this.player.$container&&this.player.$container.removeChild(e),this.$recording&&!t(this.$recording)&&(e=this.player.$container.querySelector(".jessibuca-recording"))&&this.player.$container&&this.player.$container.removeChild(e),this.$ptzControl&&!t(this.$ptzControl)&&(e=this.player.$container.querySelector(".jessibuca-ptz-controls"))&&this.player.$container&&this.player.$container.removeChild(e),this.$zoomControls&&!t(this.$zoomControls)&&(e=this.player.$container.querySelector(".jessibuca-zoom-controls"))&&this.player.$container&&this.player.$container.removeChild(e),this.$contextmenus&&(this.$contextmenus.innerHTML="",t(this.$contextmenus)||(e=this.player.$container.querySelector(".jessibuca-contextmenus"))&&this.player.$container&&this.player.$container.removeChild(e)),this.btnIndex=0,this.extendBtnList=[],this.kbpsShow="0 KB/s",this.player.$container&&(this.player.$container.classList.remove("jessibuca-controls-show-auto-hide"),this.player.$container.classList.remove("jessibuca-controls-show")),this.player.debug.log("control","destroy")}getBtnIndex(){return this.btnIndex++}autoSize(){const e=this.player,t=(e.$container.style.padding="0 0",e.width),i=e.height,r=t/i,s=e.video.$videoElement.width/e.video.$videoElement.height;if(r>s){const r=(t-i*s)/2;e.$container.style.padding=`0 ${r}px`}else{const r=(i-t/s)/2;e.$container.style.padding=r+"px 0"}}initLoadingBackground(){var r=this.player;if(r._opt.loadingBackground&&r._opt.heartTimeoutReplayUseLastFrameShow){let e=r.height;var s=r._opt,a=(s.hasControl&&!s.controlAutoHide&&(e-=s.playType===A?48:38),this.$loadingBgImage.width=r.width,this.$loadingBgImage.height=e,s.rotate);270!==a&&90!==a||(control.$loadingBgImage.width=e,control.$loadingBgImage.height=r.width),this.$loadingBgImage.src=r._opt.loadingBackground;let t="contain",i=(s.isResize||(t="fill"),s.isFullResize&&(t="none"),"");"none"===s.mirrorRotate&&a&&(i+=" rotate("+a+"deg)"),"level"===s.mirrorRotate?i+=" rotateY(180deg)":"vertical"===s.mirrorRotate&&(i+=" rotateX(180deg)"),this.$loadingBgImage.style.transform=i,this.$loadingBgImage.style.objectFit=t,R(this.$loadingBg,"display","block")}}_validateExtendBtn(t){let e=!0;return t.name||(this.player.debug.warn("Control","extend button name is required"),e=!1),e&&-1!==this.extendBtnList.findIndex(e=>e.name===t.name)&&(this.player.debug.warn("Control",`extend button name: ${t.name} is already exist`),e=!1),e&&!t.icon&&(this.player.debug.warn("Control","extend button icon is required"),e=!1),e}addExtendBtn(){let t=0 + ${t.icon?`
+ + ${t.iconTitle?` + ${t.iconTitle} + `:""} +
`:""} + ${t.activeIcon?`
+ + ${t.activeIconTitle?` + ${t.activeIconTitle} + `:""} +
`:""} + + `,n=Array.from(r.children)[t.index],o=(n?n.insertAdjacentHTML("beforebegin",a):Ns(r,a),t.icon?r.querySelector(".jessibuca-icon-extend-"+i):null),l=t.icon?r.querySelector(".jessibuca-control-extend-"+i):null,d=t.activeIcon?r.querySelector(`.jessibuca-icon-extend-${i}-active`):null,h=t.activeIcon?r.querySelector(`.jessibuca-control-extend-${i}-active`):null,{proxy:c}=this.player["events"];t.icon&&(R(o,"background",`url(${t.icon}) no-repeat center`),R(o,"background-size","100% 100%"),R(l,"display","none"),t.iconHover&&(c(o,"mouseover",()=>{R(o,"background",`url(${t.iconHover}) no-repeat center`),R(o,"background-size","100% 100%")}),c(o,"mouseout",()=>{R(o,"background",`url(${t.icon}) no-repeat center`),R(o,"background-size","100% 100%")}))),t.activeIcon&&(R(d,"background",`url(${t.activeIcon}) no-repeat center`),R(d,"background-size","100% 100%"),R(h,"display","none"),t.activeIconHover&&(c(d,"mouseover",()=>{R(d,"background",`url(${t.activeIconHover}) no-repeat center`),R(d,"background-size","100% 100%")}),c(d,"mouseout",()=>{R(d,"background",`url(${t.activeIcon}) no-repeat center`),R(d,"background-size","100% 100%")}))),t.click&&o&&c(o,"click",e=>{e.preventDefault(),s&&(R(l,"display","none"),R(h,"display","flex")),t.click.call(this.player,this,e)}),t.activeClick&&d&&c(d,"click",e=>{e.preventDefault(),R(l,"display","flex"),R(h,"display","none"),t.activeClick.call(this.player,this,e)}),this.extendBtnList.push({name:i,$iconWrap:l,$activeIconWrap:h})}}}Os(".jessibuca-container{position:relative;width:100%;height:100%;overflow:hidden}.jessibuca-container.jessibuca-fullscreen-web{position:fixed;z-index:9999;left:0;top:0;right:0;bottom:0;width:100vw!important;height:100vh!important;background:#000}");class L{static init(){for(var e in L.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},L.types)L.types.hasOwnProperty(e)&&(L.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let t=L.constants={};t.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),t.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),t.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSC=t.STCO=t.STTS,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),t.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let e=0;e>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let a=8;for(let e=0;e>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}static trak(e){return L.box(L.types.trak,L.tkhd(e),L.mdia(e))}static tkhd(e){var t=e.id,i=e.duration,r=e.presentWidth,e=e.presentHeight;return L.box(L.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,e>>>8&255,255&e,0,0]))}static mdia(e){return L.box(L.types.mdia,L.mdhd(e),L.hdlr(e),L.minf(e))}static mdhd(e){var t=e.timescale,e=e.duration;return L.box(L.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,e>>>24&255,e>>>16&255,e>>>8&255,255&e,85,196,0,0]))}static hdlr(e){e="audio"===e.type?L.constants.HDLR_AUDIO:L.constants.HDLR_VIDEO;return L.box(L.types.hdlr,e)}static minf(e){var t="audio"===e.type?L.box(L.types.smhd,L.constants.SMHD):L.box(L.types.vmhd,L.constants.VMHD);return L.box(L.types.minf,t,L.dinf(),L.stbl(e))}static dinf(){return L.box(L.types.dinf,L.box(L.types.dref,L.constants.DREF))}static stbl(e){return L.box(L.types.stbl,L.stsd(e),L.box(L.types.stts,L.constants.STTS),L.box(L.types.stsc,L.constants.STSC),L.box(L.types.stsz,L.constants.STSZ),L.box(L.types.stco,L.constants.STCO))}static stsd(e){return"audio"===e.type?L.box(L.types.stsd,L.constants.STSD_PREFIX,L.mp4a(e)):"avc"===e.videoType?L.box(L.types.stsd,L.constants.STSD_PREFIX,L.avc1(e)):L.box(L.types.stsd,L.constants.STSD_PREFIX,L.hvc1(e))}static mp4a(e){var t=e.channelCount,i=e.audioSampleRate,t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return L.box(L.types.mp4a,t,L.esds(e))}static esds(e){var e=e.config||[],t=e.length,t=new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e).concat([6,1,2]));return L.box(L.types.esds,t)}static avc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return L.box(L.types.avc1,i,L.box(L.types.avcC,t))}static hvc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return L.box(L.types.hvc1,i,L.box(L.types.hvcC,t))}static mvex(e){return L.box(L.types.mvex,L.trex(e))}static trex(e){e=e.id,e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return L.box(L.types.trex,e)}static moof(e,t){return L.box(L.types.moof,L.mfhd(e.sequenceNumber),L.traf(e,t))}static mfhd(e){e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return L.box(L.types.mfhd,e)}static traf(e,t){var i=e.id,i=L.box(L.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),t=L.box(L.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),r=L.sdtp(e),e=L.trun(e,r.byteLength+16+16+8+16+8+8);return L.box(L.types.traf,i,t,e,r)}static sdtp(e){let t=new Uint8Array(5),i=e.flags;return t[4]=i.isLeading<<6|i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy,L.box(L.types.sdtp,t)}static trun(e,t){let i=new Uint8Array(28);t+=36,i.set([0,0,15,1,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);var t=e.duration,r=e.size,s=e.flags,e=e.cts;return i.set([t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,s.isLeading<<2|s.dependsOn,s.isDependedOn<<6|s.hasRedundancy<<4|s.isNonSync,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e],12),L.box(L.types.trun,i)}static mdat(e){return L.box(L.types.mdat,e)}}L.init();class Gs extends e{constructor(t){super(),this.player=t,this.isAvc=!0,this.mediaSource=new window.MediaSource,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.cacheTrack={},this.timeInit=!1,this.sequenceNumber=0,this.dropping=!1,this.firstRenderTime=null,this.$videoElement=null,this.mediaSourceAppendBufferFull=!1,this.mediaSourceAppendBufferError=!1,this.isDecodeFirstIIframe=!1,this.prevTimestamp=null,this.decodeDiffTimestamp=null,this.prevDts=null,this.prevPayloadBufferSize=0,this.isWidthOrHeightChanged=!1,this.prevTs=null,this.mediaSourceObjectURL=window.URL.createObjectURL(this.mediaSource),this.eventListenList=[],t._opt.mseUseCanvasRender?(this.$videoElement=document.createElement("video"),this.$videoElement.src=this.mediaSourceObjectURL,this.initVideoEvents()):(this.player.video.$videoElement.src=this.mediaSourceObjectURL,this.$videoElement=this.player.video.$videoElement);const{proxy:e}=t["events"],i=e(this.mediaSource,"sourceopen",()=>{this.player&&this.player.emit(b.mseSourceOpen)}),r=e(this.mediaSource,"sourceclose",()=>{this.player&&this.player.emit(b.mseSourceClose)}),s=e(this.mediaSource,"sourceended",()=>{this.player&&this.player.emit(b.mseSourceended)});if(this.eventListenList.push(i,r,s),this.player.isPlayer){const a=e(this.$videoElement,Ke,e=>{if(this._handleUpdatePlaybackRate(),t._opt.mseUseCanvasRender)if(this.player.checkIsInRender())this.player.handleRender();else{const t=parseInt(e.timeStamp,10);this.player.debug.warn("MediaSource",`mseUseCanvasRender is true and $videoElement ts is ${t}, but not in render`)}else this.player.handleRender()}),i=e(this.$videoElement,Ye,()=>{t.debug.log("MediaSource","video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate)});this.eventListenList.push(a,i)}t.debug.log("MediaSource","init")}destroy(){this.stop(),this.eventListenList.length&&(this.eventListenList.forEach(e=>e()),this.eventListenList=[]),this.mediaSource=null,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.sequenceNumber=0,this.cacheTrack={},this.timeInit=!1,this.mediaSourceAppendBufferFull=!1,this.mediaSourceAppendBufferError=!1,this.isDecodeFirstIIframe=!1,this.prevTimestamp=null,this.prevDts=null,this.prevPayloadBufferSize=0,this.prevTs=null,this.firstRenderTime=null,this.isWidthOrHeightChanged=!1,this.dropping=!1,this.$videoElement&&(this.player._opt.mseUseCanvasRender&&this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement=null),this.mediaSourceObjectURL&&(window.URL.revokeObjectURL(this.mediaSourceObjectURL),this.mediaSourceObjectURL=null),this.off(),this.player.debug.log("MediaSource","destroy")}get state(){return this.mediaSource&&this.mediaSource.readyState}get isStateOpen(){return"open"===this.state}get isStateClosed(){return"closed"===this.state}get isStateEnded(){return"ended"===this.state}get duration(){return this.mediaSource&&this.mediaSource.duration||-1}set duration(e){this.mediaSource.duration=e}initVideoEvents(){const e=this.player.events["proxy"],t=e(this.$videoElement,Ve,()=>{this.player.debug.log("MediaSource","video canplay"),this.$videoElement.play().then(()=>{this.player.debug.log("MediaSource","video play")}).catch(e=>{this.player.debug.error("MediaSource","video play error ",e),this.player.emitError(v.mediaSourceUseCanvasRenderPlayFailed,e)})}),i=e(this.$videoElement,We,()=>{this.player.debug.log("MediaSource","video waiting")}),r=e(this.$videoElement,Ke,e=>{e=parseInt(e.timeStamp,10);this.player.emit(b.videoTimeUpdate,e),this.$videoElement.paused&&(this.player.debug.warn("MediaSource","video is paused and next try to replay"),this.$videoElement.play().then(()=>{this.player.debug.log("MediaSource","video is paused and replay success")}).catch(e=>{this.player.debug.warn("MediaSource","video is paused and replay error ",e)}))});this.eventListenList.push(t,i,r)}decodeVideo(t,i,r,s){const e=this.player;if(e)if(this.player.isDestroyed())this.player.debug.warn("MediaSource","decodeVideo() player is destroyed");else if(this.hasInit)if(!this.isDecodeFirstIIframe&&r&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe){if(r&&0===t[1]){const i=15&t[0];let e={};7==i?e=sr(t.slice(5)):12==i&&(e=fr(t));const s=this.player.video.videoInfo;s&&s.width&&s.height&&e&&e.codecWidth&&e.codecHeight&&(e.codecWidth!==s.width||e.codecHeight!==s.height)&&(this.player.debug.warn("MediaSource",` + decodeVideo: video width or height is changed, + old width is ${s.width}, old height is ${s.height}, + new width is ${e.codecWidth}, new height is ${e.codecHeight}, + and emit change event`),this.isWidthOrHeightChanged=!0,this.player.emitError(v.mseWidthOrHeightChange))}if(this.isWidthOrHeightChanged)this.player.debug.warn("MediaSource","decodeVideo: video width or height is changed, and return");else if(li(t))this.player.debug.warn("MediaSource","decodeVideo and payload is video sequence header so drop this frame");else if(t.byteLength<12)this.player.debug.warn("MediaSource","decodeVideo and payload is too small , payload length is "+t.byteLength);else{null===this.firstRenderTime&&(this.firstRenderTime=i);let e=i-this.firstRenderTime;if(e<0&&(this.player.debug.warn("MediaSource",`decodeVideo + local dts is < 0 , ts is ${i} and prevTs is ${this.prevTs}, + firstRenderTime is ${this.firstRenderTime} and mseCorrectTimeDuration is `+this.player._opt.mseCorrectTimeDuration),e=null===this.prevDts?0:this.prevDts+this.player._opt.mseCorrectTimeDuration,this._checkTsIsMaxDiff(i)))return this.player.debug.warn("MediaSource",`decodeVideo is max diff , ts is ${i} and prevTs is ${this.prevTs}, diff is `+(this.prevTs-i)),void this.emit(v.mediaSourceTsIsMaxDiff);if(null!==this.prevDts&&e<=this.prevDts){if(this.player.debug.warn("MediaSource",` + decodeVideo dts is less than(or equal) prev dts , + dts is ${e} and prev dts is ${this.prevDts} , + and now ts is ${i} and prev ts is ${this.prevTs} , + and diff is ${i-this.prevTs} and firstRenderTime is ${this.firstRenderTime}, + and mseCorrectTimeDuration is ${this.player._opt.mseCorrectTimeDuration}, + and prevPayloadBufferSize is ${this.prevPayloadBufferSize} and payload size is `+t.byteLength),e===this.prevDts&&this.prevPayloadBufferSize===t.byteLength)return void this.player.debug.warn("MediaSource","decodeVideo dts is equal to prev dts and payload size is equal to prev payload size so drop this frame");if(e=this.prevDts+this.player._opt.mseCorrectTimeDuration,this._checkTsIsMaxDiff(i))return this.player.debug.warn("MediaSource",`decodeVideo is max diff , ts is ${i} and prevTs is ${this.prevTs}, diff is ${this.prevTs-i} and emit replay`),void this.emit(v.mediaSourceTsIsMaxDiff)}this._decodeVideo(t,e,r,s,i),this.prevDts=e,this.prevPayloadBufferSize=t.byteLength,this.prevTs=i,this.player.getRenderType()===q&&this.player.video&&this.player.video.doAddContentToWatermark()}}else this.player.debug.warn("MediaSource","decodeVideo isDecodeFirstIIframe false");else if(r&&t[1]===Xe){const s=15&t[0];(e.video.updateVideoInfo({encTypeCode:s}),12!=s||Bt())?(e._times.decodeStart||(e._times.decodeStart=p()),this.hasInit=this._decodeConfigurationRecord(t,i,r,s)):this.emit(v.mediaSourceH265NotSupport)}else this.player.debug.warn("MediaSource",`decodeVideo has not init , isIframe is ${r} , payload is `+t[1])}_checkTsIsMaxDiff(e){return 0c)n.debug.warn("MediaSource","dropping time is ",s-this.cacheTrack.dts),this.dropping=!1,this.cacheTrack={};else if(this.cacheTrack.id&&s>=this.cacheTrack.dts){let e=8+this.cacheTrack.size,t=new Uint8Array(e),i=(t[0]=e>>>24&255,t[1]=e>>>16&255,t[2]=e>>>8&255,t[3]=255&e,t.set(L.types.mdat,4),t.set(this.cacheTrack.data,8),this.cacheTrack.duration=s-this.cacheTrack.dts,this.player.recorder&&this.player.recorder.isRecording&&this.player._opt.recordType===u&&this.player.recorder.handleAddFmp4Track(this.cacheTrack),L.moof(this.cacheTrack,this.cacheTrack.dts)),r=new Uint8Array(i.byteLength+t.byteLength);r.set(i,0),r.set(t,i.byteLength),this.appendBuffer(r.buffer),n.emit(b.timeUpdate,a),n.videoTimestamp=a,n.updateStats({fps:!0,ts:a,mseTs:s,buf:n.demux&&n.demux.delay||0}),n._times.videoStart||(n._times.videoStart=p(),n.handlePlayToRenderTimes())}else n.debug.log("MediaSource",`timeInit set false , cacheTrack = {} now dts is ${s}, and ts is ${a} cacheTrack dts is `+(this.cacheTrack&&this.cacheTrack.dts)),this.timeInit=!1,this.cacheTrack={};this.cacheTrack||(this.cacheTrack={}),this.cacheTrack.id=1,this.cacheTrack.sequenceNumber=++this.sequenceNumber,this.cacheTrack.size=o,this.cacheTrack.dts=s,this.cacheTrack.cts=i,this.cacheTrack.isKeyframe=t,this.cacheTrack.data=r,this.cacheTrack.flags={isLeading:0,dependsOn:t?2:1,isDependedOn:t?1:0,hasRedundancy:0,isNonSync:t?0:1},this.timeInit||1!==h.buffered.length||(n.debug.log("MediaSource","timeInit set true"),this.timeInit=!0,h.currentTime=h.buffered.end(0)),!this.isInitInfo&&0{this.player.emitError(v.mseSourceBufferError,e)}),t=i(this.sourceBuffer,"updateend",()=>{});this.eventListenList.push(e,t)}}if(this.mediaSourceAppendBufferFull)t.warn("MediaSource","this.mediaSourceAppendBufferFull is true");else if(this.mediaSourceAppendBufferError)t.warn("MediaSource","this.mediaSourceAppendBufferError is true");else if(!1===this.sourceBuffer.updating&&this.isStateOpen)try{this.sourceBuffer.appendBuffer(e)}catch(e){t.warn("MediaSource","this.sourceBuffer.appendBuffer()",e.code,e),22===e.code?(this.stop(),this.mediaSourceAppendBufferFull=!0,this.emit(v.mediaSourceFull)):11===e.code?(this.stop(),this.mediaSourceAppendBufferError=!0,this.emit(v.mediaSourceAppendBufferError)):(t.error("MediaSource","appendBuffer error",e),this.player.emitError(b.mseSourceBufferError,e))}else this.isStateClosed?this.player.emitError(v.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed"):this.isStateEnded?this.player.emitError(v.mseSourceBufferError,"mediaSource is end"):f(this.sourceBuffer.updating)&&(t.warn("MediaSource","mseSourceBufferBusy"),this.player.emit(b.mseSourceBufferBusy))}getSourceBufferUpdating(){return this.sourceBuffer&&this.sourceBuffer.updating}stop(){this.abortSourceBuffer(),this.endOfStream(),this.removeSourceBuffer()}dropSourceBuffer(e){const t=this.$videoElement;this.dropping=e,0"wakeLock"in navigator&&-1===window.navigator.userAgent.indexOf("Samsung")&&g(kt());class Vs{constructor(e){this.player=e,this.enabled=!1,Hs()?(this.player.debug.log("NoSleep","Native Wake Lock API supported."),this._wakeLock=null,this.handleVisibilityChange=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()},document.addEventListener("visibilitychange",this.handleVisibilityChange),document.addEventListener("fullscreenchange",this.handleVisibilityChange)):(this.player.debug.log("NoSleep","Native Wake Lock API not supported. so use video element."),this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm","data:video/webm;base64,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ggOtgPj//qOHggPBgPj//qOHggPVgPj//qOHggPpgPj//qOegQPvANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCA/2A+P/+o4eCBBGA+P/+o4eCBCWA+P/+o4eCBDmA+P/+o4eCBE2A+P/+o56BBFMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IEiID4//6jh4IEnID4//6jh4IEsID4//6jnoEEtwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggTEgPj//qOHggTYgPj//qOHggTsgPj//qOHggUAgPj//qOHggUUgPj//qOegQUbANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCBSiA+P/+o4eCBTyA+P/+o4eCBVCA+P/+o4eCBWSA+P/+o4eCBXiA+P/+o56BBX8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IFjID4//6jh4IFoID4//6jh4IFtID4//6jh4IFyID4//6jh4IF3ID4//6jnoEF4wDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggXwgPj//qOHggYEgPj//qOHggYYgPj//qOHggYsgPj//qOHggZAgPj//qOegQZHANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCBlSA+P/+o4eCBmiA+P/+o4eCBnyA+P/+o4eCBpCA+P/+o4eCBqSA+P/+o56BBqsA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IGuID4//6jh4IGzID4//6jh4IG4ID4//6jh4IG9ID4//6jh4IHCID4//6jnoEHDwDRAgAFEBAUYABhYL/QACIAEM1+tck+ccwAAKOHggccgPj//qOHggcwgPj//qOHggdEgPj//qOHggdYgPj//qOHggdsgPj//qOegQdzANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCB4CA+P/+o4eCB5SA+P/+o4eCB6iA+P/+o4eCB7yA+P/+o4eCB9CA+P/+o56BB9cA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IH5ID4//6jh4IH+ID4//6jh4IIDID4//6jh4IIIID4//6jh4IINID4//6jnoEIOwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgghIgPj//qOHgghcgPj//qOHgghwgPj//qOHggiEgPj//qOegQifANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCMCA+P/+o4eCCNSA+P/+o4eCCOiA+P/+o4eCCPyA+P/+o56BCQMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IJEID4//6jh4IJJID4//6jh4IJOID4//6jh4IJTID4//6jh4IJYID4//6jnoEJZwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggl0gPj//qOHggmIgPj//qOHggmcgPj//qOHggmwgPj//qOHggnEgPj//qOegQnLANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCdiA+P/+o4eCCeyA+P/+o4eCCgCA+P/+o4eCChSA+P/+o4eCCiiA+P/+o56BCi8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IKPID4//6jh4IKUID4//6jh4IKZID4//6jh4IKeID4//6jh4IKjID4//6jnoEKkwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggqggPj//qOHggq0gPj//qOHggrIgPj//qOHggrcgPj//qOHggrwgPj//qOegQr3ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCCwSA+P/+o4eCCxiA+P/+o4eCCyyA+P/+o4eCC0CA+P/+o4eCC1SA+P/+o56BC1sA0QIABRAQFGAAYWC/0AAiABDNfrXJPnHMAACjh4ILaID4//6jh4ILfID4//6jh4ILkID4//6jh4ILpID4//6jh4ILuID4//6jnoELvwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHggvMgPj//qOHggvggPj//qOHggv0gPj//qOHggwIgPj//qOHggwcgPj//qOegQwjANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDDCA+P/+o4eCDESA+P/+o4eCDFiA+P/+o4eCDGyA+P/+o4eCDICA+P/+o56BDIcA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IMlID4//6jh4IMqID4//6jh4IMvID4//6jh4IM0ID4//6jnoEM6wDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg0MgPj//qOHgg0ggPj//qOHgg00gPj//qOHgg1IgPj//qOegQ1PANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDVyA+P/+o4eCDXCA+P/+o4eCDYSA+P/+o4eCDZiA+P/+o4eCDayA+P/+o56BDbMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4INwID4//6jh4IN1ID4//6jh4IN6ID4//6jh4IN/ID4//6jh4IOEID4//6jnoEOFwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg4kgPj//qOHgg44gPj//qOHgg5MgPj//qOHgg5ggPj//qOHgg50gPj//qOegQ57ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCDoiA+P/+o4eCDpyA+P/+o4eCDrCA+P/+o4eCDsSA+P/+o4eCDtiA+P/+o56BDt8A0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IO7ID4//6jh4IPAID4//6jh4IPFID4//6jh4IPKID4//6jh4IPPID4//6jnoEPQwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHgg9QgPj//qOHgg9kgPj//qOHgg94gPj//qOHgg+MgPj//qOHgg+ggPj//qOegQ+nANECAAUQEBRgAGFgv9AAIgAQzX61yT5xzAAAo4eCD7SA+P/+o4eCD8iA+P/+o4eCD9yA+P/+o4eCD/CA+P/+o4eCEASA+P/+o56BEAsA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IQGID4//6jh4IQLID4//6jh4IQQID4//6jh4IQVID4//6jh4IQaID4//6jnoEQbwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghB8gPj//qOHghCQgPj//qOHghCkgPj//qOHghC4gPj//qOHghDMgPj//qOegRDTANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEOCA+P/+o4eCEPSA+P/+o4eCEQiA+P/+o56BETcA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4IRQ4D4//6jh4IRV4D4//6jh4IRa4D4//6jh4IRf4D4//6jh4IRk4D4//6jnoERmwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghGngPj//qOHghG7gPj//qOHghHPgPj//qOHghHjgPj//qOHghH3gPj//qOegRH/ANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEguA+P/+o4eCEh+A+P/+o4eCEjOA+P/+o4eCEkeA+P/+o4eCEluA+P/+o56BEmMA0QIABRCsABgAGFgv9AAIgAQzX61yT5xzAACjh4ISb4D4//6jh4ISg4D4//6jh4ISl4D4//6jh4ISq4D4//6jh4ISv4D4//6jnoESxwDRAgAFEKwAGAAYWC/0AAiABDNfrXJPnHMAAKOHghLTgPj//qOHghLngPj//qOHghL7gPj//qOHghMPgPj//qOHghMjgPj//qOegRMrANECAAUQrAAYABhYL/QACIAEM1+tck+ccwAAo4eCEzeA+P/+o4eCE0uA+P/+o4eCE1+A+P/+o4eCE3OA+P/+oAEAAAAAAAAPoYeCE4cA+P/+daKDB/KBHFO7a5G7j7OBB7eK94EB8YIDX/CBDA=="),this._addSourceToVideo(this.noSleepVideo,"mp4","data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACORtZGF03gIATGF2YzU4LjM1LjEwMAACMEAOAAACcQYF//9t3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MSByMzAyNyA0MTIxMjc3IC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTAgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTcgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0wIHdlaWdodHA9MCBrZXlpbnQ9MjUwIGtleWludF9taW49MTAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIzLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAADvZYiED/JigADD7JycnJycnJycnJycnJycnJycnJ11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111114BGCAHARggBwEYIAcBGCAHARggBwAAAAdBmjgf4BLYARggBwEYIAcBGCAHARggBwAAAAdBmlQH+AS2ARggBwEYIAcBGCAHARggBwAAAAdBmmA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZqAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZrAP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0Ga4D/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbAD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbID/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdBm0A/wCWwARggBwEYIAcBGCAHAAAAB0GbYD/AJbABGCAHARggBwEYIAcAAAAHQZuAP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GboD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbwD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0Gb4D/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdBmgA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmiA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmkA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZpgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZqgP8AlsAEYIAcBGCAHARggBwAAAAdBmsA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmuA/wCWwARggBwEYIAcBGCAHARggBwAAAAdBmwA/wCWwARggBwEYIAcBGCAHARggBwEYIAcAAAAHQZsgP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZtAP8AlsAEYIAcBGCAHARggBwEYIAcAAAAHQZtgP8AlsAEYIAcBGCAHARggBwEYIAcBGCAHAAAAB0GbgD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GboD/AJbABGCAHARggBwEYIAcBGCAHAAAAB0GbwD/AJbABGCAHARggBwEYIAcBGCAHARggBwAAAAdB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"),Object.assign(this.noSleepVideo.style,{position:"absolute",left:"-100%",top:"-100%"}),document.querySelector("body").append(this.noSleepVideo),this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo&&4{this._wakeLock=e,this.enabled=!0,t.log("wakeLock","Wake Lock active."),this._wakeLock.addEventListener("release",()=>{t.log("wakeLock","Wake Lock released.")})}).catch(e=>{throw this.enabled=!1,t.warn("wakeLock",e.name+", "+e.message),e}):this.noSleepVideo.play().then(e=>(t.log("wakeLock","noSleepVideo Wake Lock active."),this.enabled=!0,e)).catch(e=>{throw t.warn("wakeLock",`noSleepVideo ${e.name}, `+e.message),this.enabled=!1,e})}disable(){Hs()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):this.noSleepVideo.pause(),this.enabled=!1,this.player.debug.log("wakeLock","Disabling wake lock.")}}var I=(es=ht(function(e,t){"undefined"!=typeof window&&(e.exports=(()=>{var i={"./src/config.ts":(e,t,i)=>{i.r(t),i.d(t,{enableStreamingMode:()=>function(e){var t=e.loader;t!==f.default&&t!==p.default?(y.logger.log("[config]: Custom loader detected, cannot enable progressive streaming"),e.progressive=!1):(0,f.fetchSupported)()&&(e.loader=f.default,e.progressive=!0,e.enableSoftwareAES=!0,y.logger.log("[config]: Progressive streaming enabled, using FetchLoader"))},hlsDefaultConfig:()=>_,mergeConfig:()=>function(e,t){if((t.liveSyncDurationCount||t.liveMaxLatencyDurationCount)&&(t.liveSyncDuration||t.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(void 0!==t.liveMaxLatencyDurationCount&&(void 0===t.liveSyncDurationCount||t.liveMaxLatencyDurationCount<=t.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(void 0!==t.liveMaxLatencyDuration&&(void 0===t.liveSyncDuration||t.liveMaxLatencyDuration<=t.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');return A({},e,t)}});var t=i("./src/controller/abr-controller.ts"),r=i("./src/controller/audio-stream-controller.ts"),s=i("./src/controller/audio-track-controller.ts"),a=i("./src/controller/subtitle-stream-controller.ts"),n=i("./src/controller/subtitle-track-controller.ts"),o=i("./src/controller/buffer-controller.ts"),l=i("./src/controller/timeline-controller.ts"),d=i("./src/controller/cap-level-controller.ts"),h=i("./src/controller/fps-controller.ts"),c=i("./src/controller/eme-controller.ts"),u=i("./src/controller/cmcd-controller.ts"),p=i("./src/utils/xhr-loader.ts"),f=i("./src/utils/fetch-loader.ts"),m=i("./src/utils/cues.ts"),g=i("./src/utils/mediakeys-helper.ts"),y=i("./src/utils/logger.ts");function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var t=1;t{i.r(t),i.d(t,{default:()=>l});var v=i("./src/polyfills/number.ts"),r=i("./src/utils/ewma-bandwidth-estimator.ts"),A=i("./src/events.ts"),s=i("./src/errors.ts"),o=i("./src/types/loader.ts"),_=i("./src/utils/logger.ts");function a(e,t){for(var i,r=0;r{i.r(t),i.d(t,{default:()=>_});var s,a=i("./src/polyfills/number.ts"),u=i("./src/controller/base-stream-controller.ts"),p=i("./src/events.ts"),n=i("./src/utils/buffer-helper.ts"),o=i("./src/controller/fragment-tracker.ts"),r=i("./src/types/level.ts"),h=i("./src/types/loader.ts"),f=i("./src/loader/fragment.ts"),c=i("./src/demux/chunk-cache.ts"),m=i("./src/demux/transmuxer-interface.ts"),g=i("./src/types/transmuxer.ts"),l=i("./src/controller/fragment-finders.ts"),d=i("./src/utils/discontinuities.ts"),y=i("./src/errors.ts");function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var t=1;t=this.getMaxBufferLength(null==e?void 0:e.len)&&!t||(a=s.fragments[0].start,n=r.end,t&&i&&(n=t=this.getLoadPosition(),s.PTSKnown&&ta||r.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),i.currentTime=a+.05)),e&&n>e.end+s.targetduration||!(e&&e.len||!r.len)||((t=this.getNextFragment(n,s))?this.loadFragment(t,s,n):this.bufferFlushed=!0))}}}},i.getMaxBufferLength=function(e){var t=s.prototype.getMaxBufferLength.call(this);return e?Math.max(t,e):t},i.onMediaDetaching=function(){this.videoBuffer=null,s.prototype.onMediaDetaching.call(this)},i.onAudioTracksUpdated=function(e,t){t=t.audioTracks;this.resetTransmuxer(),this.levels=t.map(function(e){return new r.Level(e)})},i.onAudioTrackSwitching=function(e,t){var i=!!t.url,t=(this.trackId=t.id,this.fragCurrent);t&&t.abortRequests(),this.fragCurrent=null,this.clearWaitingFragment(),i?this.setInterval(100):this.resetTransmuxer(),i?(this.audioSwitch=!0,this.state=u.State.IDLE):this.state=u.State.STOPPED,this.tick()},i.onManifestLoading=function(){this.mainDetails=null,this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=!1},i.onLevelLoaded=function(e,t){this.mainDetails=t.details,null!==this.cachedTrackLoadedData&&(this.hls.trigger(p.Events.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)},i.onAudioTrackLoaded=function(e,t){if(null!=this.mainDetails){var i=this.levels,r=t.details,s=t.id;if(i){this.log("Track "+s+" loaded ["+r.startSN+","+r.endSN+"],duration:"+r.totalduration);var i=i[s],a=0;if(r.live||null!=(n=i.details)&&n.live){var n=this.mainDetails;if(r.fragments[0]||(r.deltaUpdateFailed=!0),r.deltaUpdateFailed||!n)return;a=!i.details&&r.hasProgramDateTime&&n.hasProgramDateTime?((0,d.alignMediaPlaylistByPDT)(r,n),r.fragments[0].start):this.alignPlaylists(r,i.details)}i.details=r,this.levelLastLoaded=s,this.startFragRequested||!this.mainDetails&&r.live||this.setStartPosition(i.details,a),this.state!==u.State.WAITING_TRACK||this.waitForCdnTuneIn(r)||(this.state=u.State.IDLE),this.tick()}else this.warn("Audio tracks were reset while loading level "+s)}else this.cachedTrackLoadedData=t},i._handleFragmentLoadProgress=function(e){var t,i,r,s,a=e.frag,n=e.part,e=e.payload,o=this.config,l=this.trackId,d=this.levels;d?(d=d[l],console.assert(d,"Audio track is defined on fragment load progress"),t=d.details,console.assert(t,"Audio track details are defined on fragment load progress"),o=o.defaultAudioCodec||d.audioCodec||"mp4a.40.2",d=(d=this.transmuxer)||(this.transmuxer=new m.default(this.hls,h.PlaylistLevelType.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this))),i=this.initPTS[a.cc],r=null==(r=a.initSegment)?void 0:r.data,void 0!==i?(s=n?n.index:-1,s=new g.ChunkMetadata(a.level,a.sn,a.stats.chunkCount,e.byteLength,s,-1!==s),d.push(e,r,o,"",a,n,t.totalduration,!1,s,i)):(this.log("Unknown video PTS for cc "+a.cc+", waiting for video PTS before demuxing audio frag "+a.sn+" of ["+t.startSN+" ,"+t.endSN+"],track "+l),(this.waitingData=this.waitingData||{frag:a,part:n,cache:new c.default,complete:!1}).cache.push(new Uint8Array(e)),this.waitingVideoCC=this.videoTrackCC,this.state=u.State.WAITING_INIT_PTS)):this.warn("Audio tracks were reset while fragment load was in progress. Fragment "+a.sn+" of level "+a.level+" will not be buffered")},i._handleFragmentLoadComplete=function(e){this.waitingData?this.waitingData.complete=!0:s.prototype._handleFragmentLoadComplete.call(this,e)},i.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},i.onBufferCreated=function(e,t){var i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer||null),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer||null)},i.onFragBuffered=function(e,t){var i=t.frag,t=t.part;i.type===h.PlaylistLevelType.AUDIO?this.fragContextChanged(i)?this.warn("Fragment "+i.sn+(t?" p: "+t.index:"")+" of level "+i.level+" finished buffering, but was aborted. state: "+this.state+", audioSwitch: "+this.audioSwitch):("initSegment"!==i.sn&&(this.fragPrevious=i,this.audioSwitch&&(this.audioSwitch=!1,this.hls.trigger(p.Events.AUDIO_TRACK_SWITCHED,{id:this.trackId}))),this.fragBufferedComplete(i,t)):this.loadedmetadata||i.type!==h.PlaylistLevelType.MAIN||null!=(t=this.videoBuffer||this.media)&&t.buffered.length&&(this.loadedmetadata=!0)},i.onError=function(e,t){if(t.type!==y.ErrorTypes.KEY_SYSTEM_ERROR)switch(t.details){case y.ErrorDetails.FRAG_LOAD_ERROR:case y.ErrorDetails.FRAG_LOAD_TIMEOUT:case y.ErrorDetails.FRAG_PARSING_ERROR:case y.ErrorDetails.KEY_LOAD_ERROR:case y.ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(h.PlaylistLevelType.AUDIO,t);break;case y.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case y.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:this.state!==u.State.ERROR&&this.state!==u.State.STOPPED&&(this.state=t.fatal?u.State.ERROR:u.State.IDLE,this.warn(t.details+" while loading frag, switching to "+this.state+" state"));break;case y.ErrorDetails.BUFFER_FULL_ERROR:var i,r;"audio"!==t.parent||this.state!==u.State.PARSING&&this.state!==u.State.PARSED||(i=!0,(i=(r=this.getFwdBufferInfo(this.mediaBuffer,h.PlaylistLevelType.AUDIO))&&.5{i.r(t),i.d(t,{default:()=>h});var s,l=i("./src/events.ts"),r=i("./src/errors.ts"),t=i("./src/controller/base-playlist-controller.ts"),a=i("./src/types/loader.ts");function n(e,t){for(var i,r=0;r=o.length?this.warn("Invalid id passed to audio-track controller"):(this.clearTimer(),t=o[this.trackId],this.log("Now switching to audio-track index "+e),i=(o=o[e]).id,r=void 0===(r=o.groupId)?"":r,s=o.name,a=o.type,n=o.url,this.trackId=e,this.trackName=s,this.selectDefaultTrack=!1,this.hls.trigger(l.Events.AUDIO_TRACK_SWITCHING,{id:i,groupId:r,name:s,type:a,url:n}),o.details&&!o.details.live||(e=this.switchParams(o.url,null==t?void 0:t.details),this.loadPlaylist(e)))},t.selectInitialTrack=function(){var e=this.tracksInGroup,e=(console.assert(e.length,"Initial audio track should be selected when tracks are known"),this.trackName),e=this.findTrackId(e)||this.findTrackId();-1!==e?this.setAudioTrack(e):(this.warn("No track found for running audio group-ID: "+this.groupId),this.hls.trigger(l.Events.ERROR,{type:r.ErrorTypes.MEDIA_ERROR,details:r.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,fatal:!0}))},t.findTrackId=function(e){for(var t=this.tracksInGroup,i=0;i{i.r(t),i.d(t,{default:()=>s});var o=i("./src/types/level.ts"),m=i("./src/controller/level-helper.ts"),l=i("./src/utils/logger.ts"),r=i("./src/errors.ts"),s=((t=a.prototype).destroy=function(){this.clearTimer(),this.hls=this.log=this.warn=null},t.onError=function(e,t){!t.fatal||t.type!==r.ErrorTypes.NETWORK_ERROR&&t.type!==r.ErrorTypes.KEY_SYSTEM_ERROR||this.stopLoad()},t.clearTimer=function(){clearTimeout(this.timer),this.timer=-1},t.startLoad=function(){this.canLoad=!0,this.retryCount=0,this.requestScheduled=-1,this.loadPlaylist()},t.stopLoad=function(){this.canLoad=!1,this.clearTimer()},t.switchParams=function(e,t){var i=null==t?void 0:t.renditionReports;if(i)for(var r=0;rt.partTarget&&(a+=1)),new o.HlsUrlParameters(n,0<=a?a:void 0,o.HlsSkip.No)}},t.loadPlaylist=function(e){-1===this.requestScheduled&&(this.requestScheduled=self.performance.now())},t.shouldLoadTrack=function(e){return this.canLoad&&e&&!!e.url&&(!e.details||e.details.live)},t.playlistLoaded=function(e,t,i){var r=this,s=t.details,a=t.stats,n=self.performance.now(),o=a.loading.first?Math.max(0,n-a.loading.first):0;if(s.advancedDateTime=Date.now()-o,s.live||null!=i&&i.live){if(s.reloaded(i),i&&this.log("live playlist "+e+" "+(s.advanced?"REFRESHED "+s.lastPartSn+"-"+s.lastPartIndex:"MISSED")),i&&0i.tuneInGoal?(this.warn("CDN Tune-in goal increased from: "+i.tuneInGoal+" to: "+u+" with playlist age: "+s.age),u=0):(o+=p=Math.floor(u/s.targetduration),void 0!==d&&(d+=Math.round(u%s.targetduration/s.partTarget)),this.log("CDN Tune-in age: "+s.ageHeader+"s last advanced "+c.toFixed(2)+"s goal: "+u+" skip sn "+p+" to part "+d)),s.tuneInGoal=u),l=this.getDeliveryDirectives(s,t.deliveryDirectives,o,d),h||!f)return void this.loadPlaylist(l)}else l=this.getDeliveryDirectives(s,t.deliveryDirectives,o,d);i=this.hls.mainForwardBufferInfo,c=i?i.end-i.len:0,p=1e3*(s.edge-c),u=(0,m.computeReloadInterval)(s,p),h=(s.updated?n>this.requestScheduled+u&&(this.requestScheduled=a.loading.start):this.requestScheduled=-1,void 0!==o&&s.canBlockReload?this.requestScheduled=a.loading.first+u-(1e3*s.partTarget||1e3):this.requestScheduled=(-1===this.requestScheduled?n:this.requestScheduled)+u,this.requestScheduled-n),h=Math.max(0,h);this.log("reload live playlist "+e+" in "+Math.round(h)+" ms"),this.timer=self.setTimeout(function(){return r.loadPlaylist(l)},h)}}else this.clearTimer()},t.getDeliveryDirectives=function(e,t,i,r){var s=(0,o.getSkipValue)(e,i);return null!=t&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,r=t.part,s=o.HlsSkip.No),new o.HlsUrlParameters(i,r,s)},t.retryLoadingOrFail=function(e){var t,i=this,r=this.hls.config,s=this.retryCount{i.r(t),i.d(t,{State:()=>_,default:()=>S});var h=i("./src/polyfills/number.ts"),t=i("./src/task-loop.ts"),d=i("./src/controller/fragment-tracker.ts"),n=i("./src/utils/buffer-helper.ts"),a=i("./src/utils/logger.ts"),c=i("./src/events.ts"),r=i("./src/errors.ts"),s=i("./src/types/transmuxer.ts"),o=i("./src/utils/mp4-tools.ts"),l=i("./src/utils/discontinuities.ts"),u=i("./src/controller/fragment-finders.ts"),p=i("./src/controller/level-helper.ts"),f=i("./src/loader/fragment-loader.ts"),m=i("./src/crypt/decrypter.ts"),g=i("./src/utils/time-ranges.ts"),y=i("./src/types/loader.ts");function A(e,t){for(var i,r=0;rr.end)&&(s=s buffer:"+(i?g.default.toString(n.BufferHelper.getBuffered(i)):"(detached)")+")"),this.state=_.IDLE,i&&(!this.loadedmetadata&&e.type==y.PlaylistLevelType.MAIN&&i.buffered.length&&(null==(t=this.fragCurrent)?void 0:t.sn)===(null==(e=this.fragPrevious)?void 0:e.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())},t.seekToStartPos=function(){},t._handleFragmentLoadComplete=function(e){var t,i,r=this.transmuxer;r&&(i=e.frag,t=e.part,e=!(e=e.partsLoaded)||0===e.length||e.some(function(e){return!e}),i=new s.ChunkMetadata(i.level,i.sn,i.stats.chunkCount+1,0,t?t.index:-1,!e),r.flush(i))},t._handleFragmentLoadProgress=function(e){},t._doFragLoad=function(t,e,i,r){var s=this;if(void 0===i&&(i=null),!this.levels)throw new Error("frag load aborted, missing levels");var a=null;if(!t.encrypted||null!=(o=t.decryptdata)&&o.key?!t.encrypted&&e.encryptedFragments.length&&this.keyLoader.loadClear(t,e.encryptedFragments):(this.log("Loading key for "+t.sn+" of ["+e.startSN+"-"+e.endSN+"], "+("[stream-controller]"===this.logPrefix?"level":"track")+" "+t.level),this.state=_.KEY_LOADING,this.fragCurrent=t,a=this.keyLoader.load(t).then(function(e){if(!s.fragContextChanged(e.frag))return s.hls.trigger(c.Events.KEY_LOADED,e),e}),this.hls.trigger(c.Events.KEY_LOADING,{frag:t}),this.throwIfFragContextChanged("KEY_LOADING")),i=Math.max(t.start,i||0),this.config.lowLatencyMode&&e){var n=e.partList;if(n&&r){i>t.end&&e.fragmentHint&&(t=e.fragmentHint);var o,l=this.getNextPart(n,t,i);if(-1i&&this.flushMainBuffer(r,e.start)):this.flushMainBuffer(0,e.start))},t.getFwdBufferInfo=function(e,t){var i=this.config,r=this.getLoadPosition();if(!(0,h.isFiniteNumber)(r))return null;var s=n.BufferHelper.bufferInfo(e,r,i.maxBufferHole);if(0===s.len&&void 0!==s.nextStart){t=this.fragmentTracker.getBufferedFrag(r,t);if(t&&s.nextStart=e&&(t.maxMaxBufferLength/=2,this.warn("Reduce max buffer length to "+t.maxMaxBufferLength+"s"),!0)},t.getNextFragment=function(e,t){var i=t.fragments,r=i.length;if(!r)return null;var s,a=this.config,n=i[0].start;if(t.live){var o=a.initialLiveManifestSize;if(re.start&&e.loaded},t.getInitialLiveFragment=function(e,t){var i,r=this.fragPrevious,s=null;return r?(e.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+r.programDateTime),s=(0,u.findFragmentByPDT)(t,r.endProgramDateTime,this.config.maxFragLookUpTolerance)),s||((i=r.sn+1)>=e.startSN&&i<=e.endSN&&(i=t[i-e.startSN],r.cc===i.cc&&this.log("Live playlist, switching playlist, load frag with next SN: "+(s=i).sn)),s||(s=(0,u.findFragWithCC)(t,r.cc))&&this.log("Live playlist, switching playlist, load frag with same CC: "+s.sn))):null!==(i=this.hls.liveSyncPosition)&&(s=this.getFragmentAtPosition(i,this.bitrateTest?e.fragmentEnd:e.edge,e)),s},t.getFragmentAtPosition=function(e,t,i){var r=this.config,s=this.fragPrevious,a=i.fragments,n=i.endSN,o=i.fragmentHint,l=r.maxFragLookUpTolerance,r=!!(r.lowLatencyMode&&i.partList&&o);return r&&o&&!this.bitrateTest&&(a=a.concat(o),n=o.sn),(o=e=s-a.maxFragLookUpTolerance&&i<=r,null!==t&&n.duration>t&&(i"+e.startSN+" prev-sn: "+(s?s.sn:"na")+" fragments: "+r),n):a},t.waitForCdnTuneIn=function(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)},t.setStartPosition=function(e,t){var i,r=this.startPosition;-1!==(r=r"+e))}}]),Object.defineProperty(i,"prototype",{writable:!1}),E);function E(e,t,i,r){var s;return(s=v.call(this)||this).hls=void 0,s.fragPrevious=null,s.fragCurrent=null,s.fragmentTracker=void 0,s.transmuxer=null,s._state=_.STOPPED,s.media=null,s.mediaBuffer=null,s.config=void 0,s.bitrateTest=!1,s.lastCurrentTime=0,s.nextLoadPosition=0,s.startPosition=0,s.loadedmetadata=!1,s.fragLoadError=0,s.retryDate=0,s.levels=null,s.fragmentLoader=void 0,s.keyLoader=void 0,s.levelLastLoaded=null,s.startFragRequested=!1,s.decrypter=void 0,s.initPTS=[],s.onvseeking=null,s.onvended=null,s.logPrefix="",s.log=void 0,s.warn=void 0,s.logPrefix=r,s.log=a.logger.log.bind(a.logger,r+":"),s.warn=a.logger.warn.bind(a.logger,r+":"),s.hls=e,s.fragmentLoader=new f.default(e.config),s.keyLoader=i,s.fragmentTracker=t,s.config=e.config,s.decrypter=new m.default(e.config),e.on(c.Events.LEVEL_SWITCHING,s.onLevelSwitching,function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(s)),s}},"./src/controller/buffer-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>a});var d=i("./src/polyfills/number.ts"),g=i("./src/events.ts"),y=i("./src/utils/logger.ts"),A=i("./src/errors.ts"),b=i("./src/utils/buffer-helper.ts"),t=i("./src/utils/mediasource-helper.ts"),n=i("./src/loader/fragment.ts"),r=i("./src/controller/buffer-operation-queue.ts"),s=(0,t.getMediaSource)(),u=/([ha]vc.)(?:\.[^.,]+)+/,a=((i=o.prototype).hasSourceTypes=function(){return 0i.config.appendErrorMaxRetry&&(y.logger.error("[buffer-controller]: Failed "+i.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),t.fatal=!0,i.stopLoad())),i.trigger(g.Events.ERROR,t)}},o)},i.onBufferFlushing=function(e,i){function t(t){return{execute:r.removeExecutor.bind(r,t,i.startOffset,i.endOffset),onStart:function(){},onComplete:function(){r.hls.trigger(g.Events.BUFFER_FLUSHED,{type:t})},onError:function(e){y.logger.warn("[buffer-controller]: Failed to remove from "+t+" SourceBuffer",e)}}}var r=this,s=this.operationQueue;i.type?s.append(t(i.type),i.type):this.getSourceBufferTypes().forEach(function(e){s.append(t(e),e)})},i.onFragParsed=function(e,t){var i=this,r=t.frag,s=t.part,t=[],a=(s||r).elementaryStreams;a[n.ElementaryStreamTypes.AUDIOVIDEO]?t.push("audiovideo"):(a[n.ElementaryStreamTypes.AUDIO]&&t.push("audio"),a[n.ElementaryStreamTypes.VIDEO]&&t.push("video")),0===t.length&&y.logger.warn("Fragments must have at least one ElementaryStreamType set. type: "+r.type+" level: "+r.level+" sn: "+r.sn),this.blockBuffers(function(){var e=self.performance.now(),e=(r.stats.buffering.end=e,s&&(s.stats.buffering.end=e),(s||r).stats);i.hls.trigger(g.Events.FRAG_BUFFERED,{frag:r,part:s,stats:e,id:r.type})},t)},i.onFragChanged=function(e,t){this.flushBackBuffer()},i.onBufferEos=function(e,r){var s=this;this.getSourceBufferTypes().reduce(function(e,t){var i=s.sourceBuffer[t];return!i||r.type&&r.type!==t||(i.ending=!0,i.ended||(i.ended=!0,y.logger.log("[buffer-controller]: "+t+" sourceBuffer now EOS"))),e&&!(i&&!i.ended)},!0)&&(y.logger.log("[buffer-controller]: Queueing mediaSource.endOfStream()"),this.blockBuffers(function(){s.getSourceBufferTypes().forEach(function(e){e=s.sourceBuffer[e];e&&(e.ending=!1)});var e=s.mediaSource;e&&"open"===e.readyState?(y.logger.log("[buffer-controller]: Calling mediaSource.endOfStream()"),e.endOfStream()):e&&y.logger.info("[buffer-controller]: Could not call mediaSource.endOfStream(). mediaSource.readyState: "+e.readyState)}))},i.onLevelUpdated=function(e,t){t=t.details;t.fragments.length&&(this.details=t,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())},i.flushBackBuffer=function(){var e,t,r,s,a,n=this.hls,o=this.details,i=this.media,l=this.sourceBuffer;i&&null!==o&&(e=this.getSourceBufferTypes()).length&&(t=o.live&&null!==n.config.liveBackBufferLength?n.config.liveBackBufferLength:n.config.backBufferLength,!(0,d.isFiniteNumber)(t)||t<0||(r=i.currentTime,s=o.levelTargetDuration,i=Math.max(t,s),a=Math.floor(r/s)*s-i,e.forEach(function(e){var t=l[e];if(t){var i=b.BufferHelper.getBuffered(t);if(0i.start(0)){if(n.trigger(g.Events.BACK_BUFFER_REACHED,{bufferEnd:a}),o.live)n.trigger(g.Events.LIVE_BACK_BUFFER_REACHED,{bufferEnd:a});else if(t.ended&&i.end(i.length-1)-r<2*s)return void y.logger.info("[buffer-controller]: Cannot flush "+e+" back buffer while SourceBuffer is in ended state");n.trigger(g.Events.BUFFER_FLUSHING,{startOffset:0,endOffset:a,type:e})}}})))},i.updateMediaElementDuration=function(){var e,t,i,r,s,a;this.details&&this.media&&this.mediaSource&&"open"===this.mediaSource.readyState&&(e=this.details,t=this.hls,s=this.media,i=this.mediaSource,r=e.fragments[0].start+e.totalduration,s=s.duration,a=(0,d.isFiniteNumber)(i.duration)?i.duration:0,e.live&&t.config.liveDurationInfinity?(y.logger.log("[buffer-controller]: Media Source duration is set to Infinity"),i.duration=1/0,this.updateSeekableRange(e)):(a{i.r(t),i.d(t,{default:()=>r});var a=i("./src/utils/logger.ts"),r=((t=s.prototype).append=function(e,t){var i=this.queues[t];i.push(e),1===i.length&&this.buffers[t]&&this.executeNext(t)},t.insertAbort=function(e,t){this.queues[t].unshift(e),this.executeNext(t)},t.appendBlocker=function(e){var t,i=new Promise(function(e){t=e}),r={execute:t,onStart:function(){},onComplete:function(){},onError:function(){}};return this.append(r,e),i},t.executeNext=function(e){var t=this.buffers,i=this.queues,r=t[e],i=i[e];if(i.length){var s=i[0];try{s.execute()}catch(t){a.logger.warn("[buffer-operation-queue]: Unhandled exception executing the current operation"),s.onError(t),r&&r.updating||(i.shift(),this.executeNext(e))}}},t.shiftAndExecuteNext=function(e){this.queues[e].shift(),this.executeNext(e)},t.current=function(e){return this.queues[e][0]},s);function s(e){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=e}},"./src/controller/cap-level-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>n});var r=i("./src/events.ts");function s(e,t){for(var i,r=0;rthis.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping))},t.getMaxLevel=function(i){var r=this,e=this.hls.levels;if(!e.length)return-1;e=e.filter(function(e,t){return a.isLevelAllowed(t,r.restrictedLevels)&&t<=i});return this.clientRect=null,a.getMaxLevelByMediaSize(e,this.mediaWidth,this.mediaHeight)},t.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},t.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)},t.getDimensions=function(){if(this.clientRect)return this.clientRect;var e,t=this.media,i={width:0,height:0};return t&&(e=t.getBoundingClientRect(),i.width=e.width,i.height=e.height,i.width||i.height||(i.width=e.right-e.left||t.width||0,i.height=e.bottom-e.top||t.height||0)),this.clientRect=i},a.isLevelAllowed=function(e,t){return-1===(t=void 0===t?[]:t).indexOf(e)},a.getMaxLevelByMediaSize=function(e,t,i){if(!e||!e.length)return-1;for(var r,s=e.length-1,a=0;a=t||n.height>=i)&&(!(r=e[a+1])||n.width!==r.width||n.height!==r.height)){s=a;break}}return s},s((t=a).prototype,[{key:"mediaWidth",get:function(){return this.getDimensions().width*this.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*this.contentScaleFactor}},{key:"contentScaleFactor",get:function(){var e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch(e){}return e}}]),Object.defineProperty(t,"prototype",{writable:!1});const n=a},"./src/controller/cmcd-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>u});var r=i("./src/events.ts"),n=i("./src/types/cmcd.ts"),s=i("./src/utils/buffer-helper.ts"),o=i("./src/utils/logger.ts");function a(e,t){for(var i,r=0;r=e.length?{done:!0}:{done:!1,value:e[i++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,r=new Array(t);it&&(t=s.bitrate)}return 0{i.r(t),i.d(t,{default:()=>E});var r=i("./src/events.ts"),h=i("./src/errors.ts"),s=i("./src/utils/logger.ts"),m=i("./src/utils/mediakeys-helper.ts"),c=i("./src/utils/keysystem-util.ts"),g=i("./src/utils/numeric-encoding-utils.ts"),y=i("./src/loader/level-key.ts"),A=i("./src/utils/hex.ts"),b=i("./src/utils/mp4-tools.ts"),t=i("./node_modules/eventemitter3/index.js"),u=i.n(t);function a(e){var i="function"==typeof Map?new Map:void 0;return(a=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==i){if(i.has(e))return i.get(e);i.set(e,t)}function t(){return n(e,arguments,l(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),o(t,e)})(e)}function n(e,t,i){return(n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return;if(Reflect.construct.sham)return;if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),1}catch(e){return}}()?Reflect.construct.bind():function(e,t,i){var r=[null],t=(r.push.apply(r,t),new(Function.bind.apply(e,r)));return i&&o(t,i.prototype),t}).apply(null,arguments)}function o(e,t){return(o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function l(e){return(l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var d="[eme]",t=((i=p.prototype).destroy=function(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null},i.registerListeners=function(){this.hls.on(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(r.Events.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(r.Events.MANIFEST_LOADED,this.onManifestLoaded,this)},i.unregisterListeners=function(){this.hls.off(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(r.Events.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(r.Events.MANIFEST_LOADED,this.onManifestLoaded,this)},i.getLicenseServerUrl=function(e){var t=this.config,i=t.drmSystems,t=t.widevineLicenseUrl,i=i[e];if(i)return i.licenseUrl;if(e===m.KeySystems.WIDEVINE&&t)return t;throw new Error('no license server URL configured for key-system "'+e+'"')},i.getServerCertificateUrl=function(e){var t=this.config.drmSystems[e];if(t)return t.serverCertificateUrl;this.log('No Server Certificate in config.drmSystems["'+e+'"]')},i.attemptKeySystemAccess=function(e){function t(e,t,i){return!!e&&i.indexOf(e)===t}var n=this,i=this.hls.levels,o=i.map(function(e){return e.audioCodec}).filter(t),l=i.map(function(e){return e.videoCodec}).filter(t);return o.length+l.length===0&&l.push("avc1.42e01e"),new Promise(function(s,a){!function t(i){var r=i.shift();n.getMediaKeysPromise(r,o,l).then(function(e){return s({keySystem:r,mediaKeys:e})}).catch(function(e){i.length?t(i):a(e instanceof _?e:new _({type:h.ErrorTypes.KEY_SYSTEM_ERROR,details:h.ErrorDetails.KEY_SYSTEM_NO_ACCESS,error:e,fatal:!0},e.message))})}(e)})},i.requestMediaKeySystemAccess=function(e,t){var i,r=this.config.requestMediaKeySystemAccessFunc;return"function"!=typeof r?(i="Configured requestMediaKeySystemAccess is not a function "+r,null===m.requestMediaKeySystemAccess&&"http:"===self.location.protocol&&(i="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(new Error(i))):r(e,t)},i.getMediaKeysPromise=function(r,e,t){var s,a=this,e=(0,m.getSupportedMediaKeySystemConfigurations)(r,e,t,this.config.drmSystemOptions),i=this.keySystemAccessPromises[r],t=null==i?void 0:i.keySystemAccess;return t?t.then(function(){return i.mediaKeys}):(this.log('Requesting encrypted media "'+r+'" key-system access with config: '+JSON.stringify(e)),t=this.requestMediaKeySystemAccess(r,e),s=this.keySystemAccessPromises[r]={keySystemAccess:t},t.catch(function(e){a.log('Failed to obtain access to key-system "'+r+'": '+e)}),t.then(function(e){a.log('Access for key-system "'+e.keySystem+'" obtained');var i=a.fetchServerCertificate(r);return a.log('Create media-keys for "'+r+'"'),s.mediaKeys=e.createMediaKeys().then(function(t){return a.log('Media-keys created for "'+r+'"'),i.then(function(e){return e?a.setMediaKeysServerCertificate(t,r,e):t})}),s.mediaKeys.catch(function(e){a.error('Failed to create media-keys for "'+r+'"}: '+e)}),s.mediaKeys}))},i.createMediaKeySessionContext=function(e){var t=e.decryptdata,i=e.keySystem,e=e.mediaKeys,r=(console.assert(!!e,"mediaKeys is defined"),this.log('Creating key-system session "'+i+'" keyId: '+A.default.hexDump(t.keyId||[])),e.createSession()),t={decryptdata:t,keySystem:i,mediaKeys:e,mediaKeysSession:r,keyStatus:"status-pending"};return this.mediaKeySessions.push(t),t},i.renewKeySession=function(e){var t,i,r=e.decryptdata;r.pssh?(t=this.createMediaKeySessionContext(e),i=this.getKeyIdString(r),this.keyIdToKeySessionPromise[i]=this.generateRequestWithPreferredKeySession(t,"cenc",r.pssh,"expired")):this.warn("Could not renew expired session. Missing pssh initData."),this.removeSession(e)},i.getKeyIdString=function(e){if(!e)throw new Error("Could not read keyId of undefined decryptdata");if(null===e.keyId)throw new Error("keyId is null");return A.default.hexDump(e.keyId)},i.updateKeySession=function(e,t){var i=e.mediaKeysSession;return this.log('Updating key-session "'+i.sessionId+'" for keyID '+A.default.hexDump((null==(e=e.decryptdata)?void 0:e.keyId)||[])+"\n } (data length: "+(t&&t.byteLength)+")"),i.update(t)},i.selectKeySystemFormat=function(e){var t=Object.keys(e.levelkeys||{});return this.keyFormatPromise||(this.log("Selecting key-system from fragment (sn: "+e.sn+" "+e.type+": "+e.level+") key formats "+t.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(t)),this.keyFormatPromise},i.getKeyFormatPromise=function(s){var a=this;return new Promise(function(i,r){var t=(0,m.getKeySystemsForConfig)(a.config),e=s.map(m.keySystemFormatToKeySystemDomain).filter(function(e){return!!e&&-1!==t.indexOf(e)});return a.getKeySystemSelectionPromise(e).then(function(e){var e=e.keySystem,t=(0,m.keySystemDomainToKeySystemFormat)(e);t?i(t):r(new Error('Unable to find format for key-system "'+e+'"'))}).catch(r)})},i.loadKey=function(r){var s=this,a=r.keyInfo.decryptdata,e=this.getKeyIdString(a),n="(keyId: "+e+' format: "'+a.keyFormat+'" method: '+a.method+" uri: "+a.uri+")",t=(this.log("Starting session for key "+n),this.keyIdToKeySessionPromise[e]);return t||(t=this.keyIdToKeySessionPromise[e]=this.getKeySystemForKeyPromise(a).then(function(e){var t=e.keySystem,i=e.mediaKeys;return s.throwIfDestroyed(),s.log("Handle encrypted media sn: "+r.frag.sn+" "+r.frag.type+": "+r.frag.level+" using key "+n),s.attemptSetMediaKeys(t,i).then(function(){s.throwIfDestroyed();var e=s.createMediaKeySessionContext({keySystem:t,mediaKeys:i,decryptdata:a});return s.generateRequestWithPreferredKeySession(e,"cenc",a.pssh,"playlist-key")})})).catch(function(e){return s.handleError(e)}),t},i.throwIfDestroyed=function(e){if(!this.hls)throw new Error("invalid state")},i.handleError=function(e){this.hls&&(this.error(e.message),e instanceof _?this.hls.trigger(r.Events.ERROR,e.data):this.hls.trigger(r.Events.ERROR,{type:h.ErrorTypes.KEY_SYSTEM_ERROR,details:h.ErrorDetails.KEY_SYSTEM_NO_KEYS,error:e,fatal:!0}))},i.getKeySystemForKeyPromise=function(e){var t=this.getKeyIdString(e),t=this.keyIdToKeySessionPromise[t];return t||(e=(t=(0,m.keySystemFormatToKeySystemDomain)(e.keyFormat))?[t]:(0,m.getKeySystemsForConfig)(this.config),this.attemptKeySystemAccess(e))},i.getKeySystemSelectionPromise=function(e){if(0===(e=e.length?e:(0,m.getKeySystemsForConfig)(this.config)).length)throw new _({type:h.ErrorTypes.KEY_SYSTEM_ERROR,details:h.ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(e)},i._onMediaEncrypted=function(e){var s,t,a=this,n=e.initDataType,o=e.initData;if(this.debug('"'+e.type+'" event: init data type: "'+n+'"'),null!==o){if("sinf"===n&&this.config.drmSystems[m.KeySystems.FAIRPLAY]){var i=(0,b.bin2str)(new Uint8Array(o));try{var r=(0,g.base64Decode)(JSON.parse(i).sinf),l=(0,b.parseSinf)(new Uint8Array(r));if(!l)return;s=l.subarray(8,24),t=m.KeySystems.FAIRPLAY}catch(e){return void this.warn('Failed to parse sinf "encrypted" event message initData')}}else{i=(0,b.parsePssh)(o);if(null===i)return;0===i.version&&i.systemId===m.KeySystemIds.WIDEVINE&&i.data&&(s=i.data.subarray(8,24)),t=(0,m.keySystemIdToKeySystemDomain)(i.systemId)}if(t&&s){for(var d=A.default.hexDump(s),h=this.keyIdToKeySessionPromise,c=this.mediaKeySessions,u=h[d],p=0;p{i.r(t),i.d(t,{default:()=>s});var l=i("./src/events.ts"),d=i("./src/utils/logger.ts");function r(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}(t=r.prototype).setStreamController=function(e){this.streamController=e},t.registerListeners=function(){this.hls.on(l.Events.MEDIA_ATTACHING,this.onMediaAttaching,this)},t.unregisterListeners=function(){this.hls.off(l.Events.MEDIA_ATTACHING,this.onMediaAttaching)},t.destroy=function(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null},t.onMediaAttaching=function(e,t){var i=this.hls.config;i.capLevelOnFPSDrop&&(t=t.media instanceof self.HTMLVideoElement?t.media:null,(this.media=t)&&"function"==typeof t.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),i.fpsDroppedMonitoringPeriod))},t.checkFPS=function(e,t,i){var r,s,a,n,o=performance.now();t&&(this.lastTime&&(n=o-this.lastTime,r=i-this.lastDroppedFrames,s=t-this.lastDecodedFrames,n=1e3*r/n,(a=this.hls).trigger(l.Events.FPS_DROP,{currentDropped:r,currentDecoded:s,totalDroppedFrames:i}),0a.config.fpsDroppedMonitoringThreshold*s&&(n=a.currentLevel,d.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+n),0=n)&&(a.trigger(l.Events.FPS_DROP_LEVEL_CAPPING,{level:--n,droppedLevel:a.currentLevel}),a.autoLevelCapping=n,this.streamController.nextLevelSwitch()))),this.lastTime=o,this.lastDroppedFrames=i,this.lastDecodedFrames=t)},t.checkFPSInterval=function(){var e,t=this.media;t&&(this.isVideoPlaybackQualityAvailable?(e=t.getVideoPlaybackQuality(),this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)):this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount))};const s=r},"./src/controller/fragment-finders.ts":(e,t,i)=>{i.r(t),i.d(t,{findFragWithCC:()=>function(e,t){return n.default.search(e,function(e){return e.cct?-1:0})},findFragmentByPDT:()=>function(e,t,i){if(null===t||!Array.isArray(e)||!e.length||!(0,a.isFiniteNumber)(t))return null;if(t<(e[0].programDateTime||0))return null;if(t>=(e[e.length-1].endProgramDateTime||0))return null;i=i||0;for(var r=0;rfunction(e,t,i,r){void 0===i&&(i=0),void 0===r&&(r=0);var s=null;if(e?s=t[e.sn-t[0].sn+1]||null:0===i&&0===t[0].start&&(s=t[0]),s&&0===o(i,r,s))return s;t=n.default.search(t,o.bind(null,i,r));return!t||t===e&&s?s:t},fragmentWithinToleranceTest:()=>o,pdtWithinToleranceTest:()=>l});var a=i("./src/polyfills/number.ts"),n=i("./src/utils/binary-search.ts");function o(e,t,i){if(void 0===t&&(t=0),i.start<=(e=void 0===e?0:e)&&i.start+i.duration>e)return 0;t=Math.min(t,i.duration+(i.deltaPTS||0));return i.start+i.duration-t<=e?1:i.start-t>e&&i.start?-1:0}function l(e,t,i){t=1e3*Math.min(t,i.duration+(i.deltaPTS||0));return(i.endProgramDateTime||0)-t>e}},"./src/controller/fragment-tracker.ts":(e,t,i)=>{i.r(t),i.d(t,{FragmentState:()=>r,FragmentTracker:()=>a});var r,s=i("./src/events.ts"),d=i("./src/types/loader.ts"),a=((t=r=r||{}).NOT_LOADED="NOT_LOADED",t.APPENDING="APPENDING",t.PARTIAL="PARTIAL",t.OK="OK",(i=n.prototype)._registerListeners=function(){var e=this.hls;e.on(s.Events.BUFFER_APPENDED,this.onBufferAppended,this),e.on(s.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.on(s.Events.FRAG_LOADED,this.onFragLoaded,this)},i._unregisterListeners=function(){var e=this.hls;e.off(s.Events.BUFFER_APPENDED,this.onBufferAppended,this),e.off(s.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.off(s.Events.FRAG_LOADED,this.onFragLoaded,this)},i.destroy=function(){this._unregisterListeners(),this.fragments=this.endListFragments=this.timeRanges=this.activeFragment=this.activeParts=null},i.getAppendedFrag=function(e,t){if(t===d.PlaylistLevelType.MAIN){var i=this.activeFragment,r=this.activeParts;if(!i)return null;if(r)for(var s=r.length;s--;){var a=r[s],n=a?a.end:i.appendedPTS;if(a.start<=e&&void 0!==n&&e<=n)return 9i.startPTS?n.appendedPTS=Math.max(s,n.appendedPTS||0):n.appendedPTS=i.endPTS}}})},i.onFragBuffered=function(e,t){this.detectPartialFragments(t)},i.hasFragment=function(e){e=h(e);return!!this.fragments[e]},i.removeFragmentsInRange=function(t,i,r){var s=this;Object.keys(this.fragments).forEach(function(e){var e=s.fragments[e];e&&e.buffered&&((e=e.body).type===r&&e.startt&&s.removeFragment(e))})},i.removeFragment=function(e){var t=h(e);e.stats.loaded=0,e.clearElementaryStreamInfo(),e.appendedPTS=void 0,delete this.fragments[t],e.endList&&delete this.endListFragments[e.type]},i.removeAllFragments=function(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activeFragment=null,this.activeParts=null},n);function n(e){this.activeFragment=null,this.activeParts=null,this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hls=e,this._registerListeners()}function l(e){var t;return e.buffered&&((null==(t=e.range.video)?void 0:t.partial)||(null==(t=e.range.audio)?void 0:t.partial))}function h(e){return e.type+"_"+e.level+"_"+e.urlId+"_"+e.sn}},"./src/controller/gap-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{MAX_START_GAP_JUMP:()=>f,SKIP_BUFFER_HOLE_STEP_SECONDS:()=>m,SKIP_BUFFER_RANGE_START:()=>g,STALL_MINIMUM_DURATION_MS:()=>p,default:()=>r});var d=i("./src/utils/buffer-helper.ts"),h=i("./src/errors.ts"),c=i("./src/events.ts"),u=i("./src/utils/logger.ts"),p=250,f=2,m=.1,g=.05,r=((t=s.prototype).destroy=function(){this.media=null,this.hls=this.fragmentTracker=null},t.poll=function(e,t){var i=this.config,r=this.media,s=this.stalled;if(null!==r){var a=r.currentTime,n=r.seeking,o=this.seeking&&!n,l=!this.seeking&&n;if(this.seeking=n,a===e){if((l||o)&&(this.stalled=null),!(r.paused&&!n||r.ended||0===r.playbackRate)&&d.BufferHelper.getBuffered(r).length){e=d.BufferHelper.bufferInfo(r,a,0),l=0f,t=!o||t&&t.start<=a||fi.maxBufferHole&&t>1e3*i.highBufferWatchdogPeriod&&(u.logger.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer()))},t._reportStall=function(e){var t=this.hls,i=this.media;!this.stallReported&&i&&(this.stallReported=!0,u.logger.warn("Playback stalling at @"+i.currentTime+" due to low buffer ("+JSON.stringify(e)+")"),t.trigger(c.Events.ERROR,{type:h.ErrorTypes.MEDIA_ERROR,details:h.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1,buffer:e.len}))},t._trySkipBufferHole=function(e){var t=this.config,i=this.hls,r=this.media;if(null===r)return 0;for(var s=r.currentTime,a=0,n=d.BufferHelper.getBuffered(r),o=0;o=a&&s{i.r(t),i.d(t,{default:()=>a});var n=i("./src/polyfills/number.ts"),r=i("./src/events.ts"),l=i("./src/utils/texttrack-utils.ts"),m=i("./src/demux/id3.ts"),v=i("./src/loader/date-range.ts"),_=i("./src/types/demuxer.ts");function S(){return self.WebKitDataCue||self.VTTCue||self.TextTrackCue}var E=function(){var e=S();try{new e(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY}();function w(e,t){return e.getTime()/1e3-t}function s(e){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=e,this._registerListeners()}(t=s.prototype).destroy=function(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null},t._registerListeners=function(){var e=this.hls;e.on(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(r.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(r.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(r.Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.on(r.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(r.Events.LEVEL_UPDATED,this.onLevelUpdated,this)},t._unregisterListeners=function(){var e=this.hls;e.off(r.Events.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(r.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(r.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(r.Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),e.off(r.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(r.Events.LEVEL_UPDATED,this.onLevelUpdated,this)},t.onMediaAttached=function(e,t){this.media=t.media},t.onMediaDetaching=function(){this.id3Track&&((0,l.clearCurrentCues)(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})},t.onManifestLoading=function(){this.dateRangeCuesAppended={}},t.createTrack=function(e){e=this.getID3Track(e.textTracks);return e.mode="hidden",e},t.getID3Track=function(e){if(this.media){for(var t=0;tr.startDate&&e.push(i),e},[]).sort(function(e,t){return e.startDate.getTime()-t.startDate.getTime()})[0])&&(n=w(o.startDate,A),s=!0);for(var l,d=Object.keys(r.attr),h=0;h{i.r(t),i.d(t,{default:()=>o});var r=i("./src/errors.ts"),s=i("./src/events.ts"),a=i("./src/utils/logger.ts");function n(e,t){for(var i,r=0;r{i.r(t),i.d(t,{default:()=>n});var p=i("./src/types/level.ts"),f=i("./src/events.ts"),m=i("./src/errors.ts"),g=i("./src/utils/codecs.ts"),y=i("./src/controller/level-helper.ts"),t=i("./src/controller/base-playlist-controller.ts"),d=i("./src/types/loader.ts");function s(){return(s=Object.assign?Object.assign.bind():function(e){for(var t=1;t(t.attrs["HDCP-LEVEL"]||"")?1:-1:e.bitrate!==t.bitrate?e.bitrate-t.bitrate:e.attrs.SCORE!==t.attrs.SCORE?e.attrs.decimalFloatingPoint("SCORE")-t.attrs.decimalFloatingPoint("SCORE"):l&&e.height!==t.height?e.height-t.height:0}),this._levels=s;for(var c=0;cthis.hls.config.fragLoadingMaxRetry&&(s=a)):s=a);break;case m.ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:var l=r.attrs["HDCP-LEVEL"];l&&(this.hls.maxHdcpLevel=p.HdcpLevels[p.HdcpLevels.indexOf(l)-1],this.warn('Restricting playback to HDCP-LEVEL of "'+this.hls.maxHdcpLevel+'" or lower'));case m.ErrorDetails.FRAG_PARSING_ERROR:case m.ErrorDetails.KEY_SYSTEM_NO_SESSION:s=(null==(a=t.frag)?void 0:a.type)===d.PlaylistLevelType.MAIN?t.frag.level:this.currentLevelIndex,t.levelRetry=!1;break;case m.ErrorDetails.LEVEL_LOAD_ERROR:case m.ErrorDetails.LEVEL_LOAD_TIMEOUT:i&&(i.deliveryDirectives&&(o=!1),s=i.level),n=!0;break;case m.ErrorDetails.REMUX_ALLOC_ERROR:s=null!=(l=t.level)?l:this.currentLevelIndex,n=!0}void 0!==s&&this.recoverLevel(t,s,n,o)}}},t.recoverLevel=function(e,t,i,r){var s=e.details,a=this._levels[t];if(a.loadError++,i){if(!this.retryLoadingOrFail(e))return void(this.currentLevelIndex=-1);e.levelRetry=!0}if(r){i=a.url.length;if(1=t.length){var i=e<0;if(this.hls.trigger(f.Events.ERROR,{type:m.ErrorTypes.OTHER_ERROR,details:m.ErrorDetails.LEVEL_SWITCH_ERROR,level:e,fatal:i,reason:"invalid level idx"}),i)return;e=Math.min(e,t.length-1)}this.clearTimer();var i=this.currentLevelIndex,r=t[i],t=t[e],i=(this.log("switching to level "+e+" from "+i),s({},t,{level:this.currentLevelIndex=e,maxBitrate:t.maxBitrate,uri:t.uri,urlId:t.urlId})),e=(delete i._urlId,this.hls.trigger(f.Events.LEVEL_SWITCHING,i),t.details);e&&!e.live||(i=this.switchParams(t.uri,null==r?void 0:r.details),this.loadPlaylist(i))}}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){var e;return void 0===this._startLevel?void 0!==(e=this.hls.config.startLevel)?e:this._firstLevel:this._startLevel},set:function(e){this._startLevel=e}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}]),Object.defineProperty(i,"prototype",{writable:!1}),o);function o(e){return(e=h.call(this,e,"[level-controller]")||this)._levels=[],e._firstLevel=-1,e._startLevel=void 0,e.currentLevelIndex=-1,e.manualLevelIndex=-1,e.onParsedComplete=void 0,e._registerListeners(),e}},"./src/controller/level-helper.ts":(e,t,i)=>{i.r(t),i.d(t,{addGroupId:()=>function(e,t,i){switch(t){case"audio":e.audioGroupIds||(e.audioGroupIds=[]),e.audioGroupIds.push(i);break;case"text":e.textGroupIds||(e.textGroupIds=[]),e.textGroupIds.push(i)}},addSliding:()=>r,adjustSliding:()=>S,assignTrackIdsByGroup:()=>function(e){var i={};e.forEach(function(e){var t=e.groupId||"";e.id=i[t]=i[t]||0,i[t]++})},computeReloadInterval:()=>function(e,t){void 0===t&&(t=1/0);var i=1e3*e.targetduration;e.updated?(e=e.fragments).length&&t<4*i&&((t=1e3*e[e.length-1].duration)function(e,t,i){if(!e||!e.details)return null;var r,e=e.details;return(r=e.fragments[t-e.startSN])||((r=e.fragmentHint)&&r.sn===t?r:tfunction(e,t,i){if(!e||!e.details)return null;var r=e.details.partList;if(r)for(var s=r.length;s--;){var a=r[s];if(a.index===i&&a.fragment.sn===t)return a}return null},mapFragmentIntersection:()=>_,mapPartIntersection:()=>v,mergeDetails:()=>function(e,i){for(var r=null,t=e.fragments,s=t.length-1;0<=s;s--){var a=t[s].initSegment;if(a){r=a;break}}e.fragmentHint&&delete e.fragmentHint.endPTS;var n,o,l,d=0;if(_(e,i,function(e,t){e.relurl&&(d=e.cc-t.cc),(0,m.isFiniteNumber)(e.startPTS)&&(0,m.isFiniteNumber)(e.endPTS)&&(t.start=t.startPTS=e.startPTS,t.startDTS=e.startDTS,t.appendedPTS=e.appendedPTS,t.maxStartPTS=e.maxStartPTS,t.endPTS=e.endPTS,t.endDTS=e.endDTS,t.minEndPTS=e.minEndPTS,t.duration=e.endPTS-e.startPTS,t.duration&&(n=t),i.PTSKnown=i.alignedSliding=!0),t.elementaryStreams=e.elementaryStreams,t.loader=e.loader,t.stats=e.stats,t.urlId=e.urlId,e.initSegment&&(t.initSegment=e.initSegment,r=e.initSegment)}),r&&(i.fragmentHint?i.fragments.concat(i.fragmentHint):i.fragments).forEach(function(e){var t;e.initSegment&&e.initSegment.relurl!==(null==(t=r)?void 0:t.relurl)||(e.initSegment=r)}),i.skippedSegments)if(i.deltaUpdateFailed=i.fragments.some(function(e){return!e}),i.deltaUpdateFailed){g.logger.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(var h=i.skippedSegments;h--;)i.fragments.shift();i.startSN=i.fragments[0].sn,i.startCC=i.fragments[0].cc}else i.canSkipDateRanges&&(i.dateRanges=(p=e.dateRanges,o=i.dateRanges,f=i.recentlyRemovedDateranges,l=A({},p),f&&f.forEach(function(e){delete l[e]}),Object.keys(o).forEach(function(e){var t=new y.DateRange(o[e].attr,l[e]);t.isValid?l[e]=t:g.logger.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "'+JSON.stringify(o[e].attr)+'"')}),l));var c=i.fragments;if(d){g.logger.warn("discontinuity sliding from playlist, take drift into account");for(var u=0;ub,updatePTS:()=>function(e,t,i){p(e[t],e[i])}});var m=i("./src/polyfills/number.ts"),g=i("./src/utils/logger.ts"),y=i("./src/loader/date-range.ts");function A(){return(A=Object.assign?Object.assign.bind():function(e){for(var t=1;te.sn?(i=r-e.start,e):(i=e.start-r,t)).duration!==i&&(r.duration=i)):t.sn>e.sn?e.cc===t.cc&&e.minEndPTS?t.start=e.start+(e.minEndPTS-e.start):t.start=e.start+e.duration:t.start=Math.max(e.start-t.duration,0)}function b(e,t,i,r,s,a){r-i<=0&&(g.logger.warn("Fragment should have a positive duration",t),r=i+t.duration,a=s+t.duration);var n=i,o=r,l=t.startPTS,d=t.endPTS,h=((0,m.isFiniteNumber)(l)&&(h=Math.abs(l-i),(0,m.isFiniteNumber)(t.deltaPTS)?t.deltaPTS=Math.max(h,t.deltaPTS):t.deltaPTS=h,n=Math.max(i,l),i=Math.min(i,l),s=Math.min(s,t.startDTS),o=Math.min(r,d),r=Math.max(r,d),a=Math.max(a,t.endDTS)),t.duration=r-i,i-t.start);t.start=t.startPTS=i,t.maxStartPTS=n,t.startDTS=s,t.endPTS=r,t.minEndPTS=o,t.endDTS=a;var c,l=t.sn;if(!e||le.endSN)return 0;var d=l-e.startSN,u=e.fragments;for(u[d]=t,c=d;0=e.length||r(t,e[i].start)}function r(e,t){if(t){for(var i=e.fragments,r=e.skippedSegments;r{i.r(t),i.d(t,{default:()=>f});var g=i("./src/polyfills/number.ts"),y=i("./src/controller/base-stream-controller.ts"),a=i("./src/is-supported.ts"),A=i("./src/events.ts"),s=i("./src/utils/buffer-helper.ts"),n=i("./src/controller/fragment-tracker.ts"),c=i("./src/types/loader.ts"),b=i("./src/loader/fragment.ts"),u=i("./src/demux/transmuxer-interface.ts"),p=i("./src/types/transmuxer.ts"),r=i("./src/controller/gap-controller.ts"),o=i("./src/errors.ts");function l(e,t){for(var i,r=0;r=this.getMaxBufferLength(t.maxBitrate)||(this.backtrackFragment&&this.backtrackFragment.start>r.end&&(this.backtrackFragment=null),i=this.backtrackFragment?this.backtrackFragment.start:r.end,e=this.getNextFragment(i,s),this.couldBacktrack&&!this.fragPrevious&&e&&"initSegment"!==e.sn&&this.fragmentTracker.getState(e)!==n.FragmentState.OK?(t=(null!=(a=this.backtrackFragment)?a:e).sn-s.startSN,(a=s.fragments[t-1])&&e.cc===a.cc&&this.fragmentTracker.removeFragment(e=a)):this.backtrackFragment&&r.len&&(this.backtrackFragment=null),e&&this.fragmentTracker.getState(e)===n.FragmentState.OK&&this.nextLoadPosition>i&&((a=((t=this.audioOnly&&!this.altAudio?b.ElementaryStreamTypes.AUDIO:b.ElementaryStreamTypes.VIDEO)===b.ElementaryStreamTypes.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media)&&this.afterBufferFlushed(a,t,c.PlaylistLevelType.MAIN),e=this.getNextFragment(this.nextLoadPosition,s)),e&&(!e.initSegment||e.initSegment.data||this.bitrateTest||(e=e.initSegment),this.loadFragment(e,s,i)))}}},i.loadFragment=function(e,t,i){var r=this.fragmentTracker.getState(e);this.fragCurrent=e,r===n.FragmentState.NOT_LOADED?"initSegment"===e.sn?this._loadInitSegment(e,t):this.bitrateTest?(this.log("Fragment "+e.sn+" of level "+e.level+" is being downloaded to test bitrate and will not be buffered"),this._loadBitrateTestFrag(e,t)):(this.startFragRequested=!0,h.prototype.loadFragment.call(this,e,t,i)):r===n.FragmentState.APPENDING?this.reduceMaxBufferLength(e.duration)&&this.fragmentTracker.removeFragment(e):0===(null==(t=this.media)?void 0:t.buffered.length)&&this.fragmentTracker.removeAllFragments()},i.getAppendedFrag=function(e){e=this.fragmentTracker.getAppendedFrag(e,c.PlaylistLevelType.MAIN);return e&&"fragment"in e?e.fragment:e},i.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,c.PlaylistLevelType.MAIN)},i.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.end+.5):null},i.immediateLevelSwitch=function(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},i.nextLevelSwitch=function(){var e,t=this.levels,i=this.media;null!=i&&i.readyState&&((e=this.getAppendedFrag(i.currentTime))&&1{i.r(t),i.d(t,{SubtitleStreamController:()=>m});var n=i("./src/events.ts"),l=i("./src/utils/buffer-helper.ts"),d=i("./src/controller/fragment-finders.ts"),o=i("./src/utils/discontinuities.ts"),h=i("./src/controller/level-helper.ts"),c=i("./src/controller/fragment-tracker.ts"),u=i("./src/controller/base-stream-controller.ts"),p=i("./src/types/loader.ts"),r=i("./src/types/level.ts");function s(e,t){for(var i,r=0;r=r[n].start&&a<=r[n].end){s=r[n];break}t=i.start+i.duration;s?s.end=t:r.push(s={start:a,end:t}),this.fragmentTracker.fragBuffered(i)}}},i.onBufferFlushing=function(e,t){var i,r,s,a=t.startOffset,n=t.endOffset;0===a&&n!==Number.POSITIVE_INFINITY&&(i=this.currentTrackId,(r=this.levels).length&&r[i]&&r[i].details&&((s=n-r[i].details.targetduration)<=0||(t.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach(function(e){for(var t=0;t=s.length||t!==r)&&a){this.mediaBuffer=this.mediaBufferTimeRanges;s=0;if(i.live||null!=(r=a.details)&&r.live){r=this.mainDetails;if(i.deltaUpdateFailed||!r)return;var n=r.fragments[0];a.details?0===(s=this.alignPlaylists(i,a.details))&&n&&(s=n.start,(0,h.addSliding)(i,s)):i.hasProgramDateTime&&r.hasProgramDateTime?((0,o.alignMediaPlaylistByPDT)(i,r),s=i.fragments[0].start):n&&(s=n.start,(0,h.addSliding)(i,s))}a.details=i,this.levelLastLoaded=t,this.startFragRequested||!this.mainDetails&&i.live||this.setStartPosition(a.details,s),this.tick(),!i.live||this.fragCurrent||!this.media||this.state!==u.State.IDLE||(0,d.findFragmentByPTS)(null,i.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),a.details=void 0)}}},i._handleFragmentLoadComplete=function(e){var i,t=this,r=e.frag,e=e.payload,s=r.decryptdata,a=this.hls;!this.fragContextChanged(r)&&e&&0this.getMaxBufferLength(null==s?void 0:s.len)+o||(console.assert(e,"Subtitle track details are defined on idle subtitle stream controller tick"),s=(r=e.fragments).length,o=e.edge,a=null,n=this.fragPrevious,i>>=0)>i-1)throw new DOMException("Failed to execute '"+e+"' on 'TimeRanges': The index provided ("+t+") is greater than the maximum bound ("+i+")");return r[t][e]}this.buffered={get length(){return r.length},end:function(e){return t("end",e,r.length)},start:function(e){return t("start",e,r.length)}}};function y(e,t,i){return(e=f.call(this,e,t,i,"[subtitle-stream-controller]")||this).levels=[],e.currentTrackId=-1,e.tracksBuffered=[],e.mainDetails=null,e._registerListeners(),e}},"./src/controller/subtitle-track-controller.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>c});var s,l=i("./src/events.ts"),r=i("./src/utils/texttrack-utils.ts"),t=i("./src/controller/base-playlist-controller.ts"),a=i("./src/types/loader.ts");function n(e,t){for(var i,r=0;r=o.length||(this.clearTimer(),i=o[e],this.log("Switching to subtitle track "+e),this.trackId=e,i?(o=i.id,r=i.groupId,s=i.name,a=i.type,n=i.url,this.hls.trigger(l.Events.SUBTITLE_TRACK_SWITCH,{id:o,groupId:void 0===r?"":r,name:s,type:a,url:n}),o=this.switchParams(i.url,null==t?void 0:t.details),this.loadPlaylist(o)):this.hls.trigger(l.Events.SUBTITLE_TRACK_SWITCH,{id:e}))):this.queuedDefaultTrack=e},t.onTextTracksChanged=function(){if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),this.media&&this.hls.config.renderTextTracksNatively){for(var e=-1,t=h(this.media.textTracks),i=0;i{i.r(t),i.d(t,{TimelineController:()=>r});var n=i("./src/polyfills/number.ts"),u=i("./src/events.ts"),a=i("./src/utils/cea-608-parser.ts"),o=i("./src/utils/output-filter.ts"),l=i("./src/utils/webvtt-parser.ts"),d=i("./src/utils/texttrack-utils.ts"),h=i("./src/utils/imsc1-ttml-parser.ts"),c=i("./src/utils/mp4-tools.ts"),p=i("./src/types/loader.ts"),f=i("./src/utils/logger.ts"),r=((t=s.prototype).destroy=function(){var e=this.hls;e.off(u.Events.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(u.Events.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(u.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(u.Events.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(u.Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(u.Events.FRAG_LOADING,this.onFragLoading,this),e.off(u.Events.FRAG_LOADED,this.onFragLoaded,this),e.off(u.Events.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(u.Events.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(u.Events.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(u.Events.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(u.Events.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.cea608Parser1=this.cea608Parser2=null},t.addCues=function(e,t,i,r,s){for(var a,n,o,l=!1,d=s.length;d--;){var h=s[d],c=(a=h[0],c=h[1],n=t,Math.min(c,i)-Math.max(a,n));if(0<=c&&(h[0]=Math.min(h[0],t),h[1]=Math.max(h[1],i),l=!0,.5{i.r(t),i.d(t,{default:()=>r});s.prototype.decrypt=function(e,t){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},t,e)};var r=s;function s(e,t){this.subtle=void 0,this.aesIV=void 0,this.subtle=e,this.aesIV=t}},"./src/crypt/aes-decryptor.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>s,removePadding:()=>function(e){var t=e.byteLength,i=t&&new DataView(e.buffer).getUint8(t-1);return i?(0,r.sliceUint8)(e,0,t-i):e}});var r=i("./src/utils/typed-array.ts");(t=a.prototype).uint8ArrayToUint32Array_=function(e){for(var t=new DataView(e),i=new Uint32Array(4),r=0;r<4;r++)i[r]=t.getUint32(4*r);return i},t.initTable=function(){for(var e=this.sBox,t=this.invSBox,i=this.subMix,r=i[0],s=i[1],a=i[2],n=i[3],i=this.invSubMix,o=i[0],l=i[1],d=i[2],h=i[3],c=new Uint32Array(256),u=0,p=0,f=0,f=0;f<256;f++)c[f]=f<128?f<<1:f<<1^283;for(f=0;f<256;f++){var m=p^p<<1^p<<2^p<<3^p<<4,g=(e[u]=m=m>>>8^255&m^99,c[t[m]=u]),y=c[g],A=c[y],b=257*c[m]^16843008*m;r[u]=b<<24|b>>>8,s[u]=b<<16|b>>>16,a[u]=b<<8|b>>>24,n[u]=b,o[m]=(b=16843009*A^65537*y^257*g^16843008*u)<<24|b>>>8,l[m]=b<<16|b>>>16,d[m]=b<<8|b>>>24,h[m]=b,u?(u=g^c[c[c[A^g]]],p^=c[c[p]]):u=p=1}},t.expandKey=function(e){for(var t=this.uint8ArrayToUint32Array_(e),i=!0,r=0;r{i.r(t),i.d(t,{default:()=>r});var n=i("./src/crypt/aes-crypto.ts"),o=i("./src/crypt/fast-aes-key.ts"),l=i("./src/crypt/aes-decryptor.ts"),d=i("./src/utils/logger.ts"),h=i("./src/utils/mp4-tools.ts"),c=i("./src/utils/typed-array.ts"),r=((t=s.prototype).destroy=function(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null},t.isSync=function(){return this.useSoftware},t.flush=function(){var e=this.currentResult,t=this.remainderData;if(!e||t)return d.logger.error("[softwareDecrypt] "+(t?"overflow bytes: "+t.byteLength:"no result")),this.reset(),null;t=new Uint8Array(e);return this.reset(),this.removePKCS7Padding?(0,l.removePadding)(t):t},t.reset=function(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)},t.decrypt=function(r,s,a){var n=this;return this.useSoftware?new Promise(function(e,t){n.softwareDecrypt(new Uint8Array(r),s,a);var i=n.flush();i?e(i.buffer):t(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(r),s,a)},t.softwareDecrypt=function(e,t,i){var r=this.currentIV,s=this.currentResult,a=this.remainderData,a=(this.logOnce("JS AES decrypt"),a&&(e=(0,h.appendUint8Array)(a,e),this.remainderData=null),this.getValidChunk(e));if(!a.length)return null;r&&(i=r);e=this.softwareDecrypter,(e=e||(this.softwareDecrypter=new l.default)).expandKey(t),r=s;return this.currentResult=e.decrypt(a.buffer,0,i),this.currentIV=(0,c.sliceUint8)(a,-16).buffer,r||null},t.webCryptoDecrypt=function(t,i,r){var s=this,a=this.subtle;return this.key===i&&this.fastAesKey||(this.key=i,this.fastAesKey=new o.default(a,i)),this.fastAesKey.expandKey().then(function(e){return a?(s.logOnce("WebCrypto AES decrypt"),new n.default(a,new Uint8Array(r)).decrypt(t.buffer,e)):Promise.reject(new Error("web crypto not initialized"))}).catch(function(e){return d.logger.warn("[decrypter]: WebCrypto Error, disable WebCrypto API, "+e.name+": "+e.message),s.onWebCryptoError(t,i,r)})},t.onWebCryptoError=function(e,t,i){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,t,i);e=this.flush();if(e)return e.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")},t.getValidChunk=function(e){var t=e,i=e.length-e.length%16;return i!==e.length&&(t=(0,c.sliceUint8)(e,0,i),this.remainderData=(0,c.sliceUint8)(e,i)),t},t.logOnce=function(e){this.logEnabled&&(d.logger.log("[decrypter]: "+e),this.logEnabled=!1)},s);function s(e,t){t=(void 0===t?{}:t).removePKCS7Padding,t=void 0===t||t;if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=e.enableSoftwareAES,this.removePKCS7Padding=t)try{var i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch(e){}null===this.subtle&&(this.useSoftware=!0)}},"./src/crypt/fast-aes-key.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});s.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])};var r=s;function s(e,t){this.subtle=void 0,this.key=void 0,this.subtle=e,this.key=t}},"./src/demux/aacdemuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>d});var s,t=i("./src/demux/base-audio-demuxer.ts"),r=i("./src/demux/adts.ts"),a=i("./src/utils/logger.ts"),n=i("./src/demux/id3.ts");function o(e,t){return(o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function l(e,t){var i;return(i=s.call(this)||this).observer=void 0,i.config=void 0,i.observer=e,i.config=t,i}s=t.default,i=s,(t=l).prototype=Object.create(i.prototype),o(t.prototype.constructor=t,i),(t=l.prototype).resetInitSegment=function(e,t,i,r){s.prototype.resetInitSegment.call(this,e,t,i,r),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:t,duration:r,inputTimeScale:9e4,dropped:0}},l.probe=function(e){if(!e)return!1;for(var t=(n.getID3Data(e,0)||[]).length,i=e.length;t{i.r(t),i.d(t,{appendFrame:()=>function(e,t,i,r,s){var a,r=r+s*d(e.samplerate),s=h(t,i);{var n,o;if(s)return n=s.frameLength,s=s.headerLength,n=s+n,(o=Math.max(0,i+n-t.length))?(a=new Uint8Array(n-s)).set(t.subarray(i+s,t.length),0):a=t.subarray(i+s,i+n),s={unit:a,pts:r},o||e.samples.push(s),{sample:s,length:n,missing:o}}e=t.length-i;return(a=new Uint8Array(e)).set(t.subarray(i,t.length),0),{sample:{unit:a,pts:r},length:e,missing:-1}},canGetFrameLength:()=>o,canParse:()=>function(e,t){return o(e,t)&&r(e,t)&&n(e,t)<=e.length-t},getAudioConfig:()=>a,getFrameDuration:()=>d,getFullFrameLength:()=>n,getHeaderLength:()=>s,initTrackConfig:()=>function(e,t,i,r,s){e.samplerate||(t=a(t,i,r,s))&&(e.config=t.config,e.samplerate=t.samplerate,e.channelCount=t.channelCount,e.codec=t.codec,e.manifestCodec=t.manifestCodec,c.logger.log("parsed codec:"+e.codec+", rate:"+t.samplerate+", channels:"+t.channelCount))},isHeader:()=>l,isHeaderPattern:()=>r,parseFrameHeader:()=>h,probe:()=>function(e,t){if(l(e,t)){var i=s(e,t);if(t+i>=e.length)return!1;var r=n(e,t);if(r<=i)return!1;i=t+r;return i===e.length||l(e,i)}return!1}});var c=i("./src/utils/logger.ts"),u=i("./src/errors.ts"),p=i("./src/events.ts");function a(e,t,i,r){var s,a,n=navigator.userAgent.toLowerCase(),o=r,l=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],d=1+((192&t[i+2])>>>6),h=(60&t[i+2])>>>2;if(!(l.length-1>>6,c.logger.log("manifest codec:"+r+", ADTS type:"+d+", samplingIndex:"+h),t=/firefox/i.test(n)?6<=h?(d=5,a=new Array(4),h-3):(d=2,a=new Array(2),h):-1!==n.indexOf("android")?(d=2,a=new Array(2),h):(d=5,a=new Array(4),r&&(-1!==r.indexOf("mp4a.40.29")||-1!==r.indexOf("mp4a.40.5"))||!r&&6<=h?h-3:((r&&-1!==r.indexOf("mp4a.40.2")&&(6<=h&&1==s||/vivaldi/i.test(n))||!r&&1==s)&&(d=2,a=new Array(2)),h)),a[0]=d<<3,a[0]|=(14&h)>>1,a[1]|=(1&h)<<7,a[1]|=s<<3,5===d&&(a[1]|=(14&t)>>1,a[2]=(1&t)<<7,a[2]|=8,a[3]=0),{config:a,samplerate:l[h],channelCount:s,codec:"mp4a.40."+d,manifestCodec:o};e.trigger(p.Events.ERROR,{type:u.ErrorTypes.MEDIA_ERROR,details:u.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+h})}function r(e,t){return 255===e[t]&&240==(246&e[t+1])}function s(e,t){return 1&e[t+1]?7:9}function n(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function o(e,t){return t+5{i.r(t),i.d(t,{default:()=>s,initPTSFn:()=>g});var h=i("./src/polyfills/number.ts"),c=i("./src/demux/id3.ts"),u=i("./src/types/demuxer.ts"),p=i("./src/demux/dummy-demuxed-track.ts"),f=i("./src/utils/mp4-tools.ts"),m=i("./src/utils/typed-array.ts");(t=r.prototype).resetInitSegment=function(e,t,i,r){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}},t.resetTimeStamp=function(e){this.initPTS=e,this.resetContiguity()},t.resetContiguity=function(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0},t.canParse=function(e,t){return!1},t.appendFrame=function(e,t,i){},t.demux=function(e,t){this.cachedData&&(e=(0,f.appendUint8Array)(this.cachedData,e),this.cachedData=null);var i,r,s=c.getID3Data(e,0),a=s?s.length:0,n=this._audioTrack,o=this._id3Track,l=s?c.getTimeStamp(s):void 0,d=e.length;for((null===this.basePTS||0===this.frameIndex&&(0,h.isFiniteNumber)(l))&&(this.basePTS=g(l,t,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),s&&0{i.r(t),i.d(t,{default:()=>r});(i=s.prototype).push=function(e){this.chunks.push(e),this.dataLength+=e.length},i.flush=function(){var e=this.chunks,a=this.dataLength;return e.length?(e=1===e.length?e[0]:function(e){for(var t=new Uint8Array(a),i=0,r=0;r{i.r(t),i.d(t,{dummyTrack:()=>function(e,t){return{type:e=void 0===e?"":e,id:-1,pid:-1,inputTimeScale:t=void 0===t?9e4:t,sequenceNumber:-1,samples:[],dropped:0}}})},"./src/demux/exp-golomb.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>s});var r=i("./src/utils/logger.ts");(t=a.prototype).loadWord=function(){var e=this.data,t=this.bytesAvailable,i=e.byteLength-t,r=new Uint8Array(4),t=Math.min(4,t);if(0===t)throw new Error("no bytes available");r.set(e.subarray(i,i+t)),this.word=new DataView(r.buffer).getUint32(0),this.bitsAvailable=8*t,this.bytesAvailable-=t},t.skipBits=function(e){var t;e=Math.min(e,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>e||(e=(e-=this.bitsAvailable)-((t=e>>3)<<3),this.bytesAvailable-=t,this.loadWord()),this.word<<=e,this.bitsAvailable-=e},t.readBits=function(e){var t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;if(32>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},t.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.skipEG=function(){this.skipBits(1+this.skipLZ())},t.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},t.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},t.readBoolean=function(){return 1===this.readBits(1)},t.readUByte=function(){return this.readBits(8)},t.readUShort=function(){return this.readBits(16)},t.readUInt=function(){return this.readBits(32)},t.skipScalingList=function(e){for(var t=8,i=8,r=0;r{i.r(t),i.d(t,{canParse:()=>s,decodeFrame:()=>p,getID3Data:()=>r,getID3Frames:()=>u,getTimeStamp:()=>a,isFooter:()=>l,isHeader:()=>o,isTimeStampFrame:()=>n,testables:()=>b,utf8ArrayToStr:()=>A});var h,o=function(e,t){return t+10<=e.length&&73===e[t]&&68===e[t+1]&&51===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},l=function(e,t){return t+10<=e.length&&51===e[t]&&68===e[t+1]&&73===e[t+2]&&e[t+3]<255&&e[t+4]<255&&e[t+6]<128&&e[t+7]<128&&e[t+8]<128&&e[t+9]<128},r=function(e,t){for(var i=t,r=0;o(e,t);)r=(r+=10)+d(e,t+6),l(e,t+10)&&(r+=10),t+=r;if(0>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:l+=String.fromCharCode(s);break;case 12:case 13:a=e[d++],l+=String.fromCharCode((31&s)<<6|63&a);break;case 14:a=e[d++],n=e[d++],l+=String.fromCharCode((15&s)<<12|(63&a)<<6|(63&n)<<0)}}return l},b={decodeTextFrame:m}},"./src/demux/mp3demuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>d});var s,t=i("./src/demux/base-audio-demuxer.ts"),r=i("./src/demux/id3.ts"),a=i("./src/utils/logger.ts"),n=i("./src/demux/mpegaudio.ts");function o(e,t){return(o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function l(){return s.apply(this,arguments)||this}s=t.default,i=s,(t=l).prototype=Object.create(i.prototype),o(t.prototype.constructor=t,i),(t=l.prototype).resetInitSegment=function(e,t,i,r){s.prototype.resetInitSegment.call(this,e,t,i,r),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:t,duration:r,inputTimeScale:9e4,dropped:0}},l.probe=function(e){if(!e)return!1;for(var t=(r.getID3Data(e,0)||[]).length,i=e.length;t{i.r(t),i.d(t,{default:()=>r});var a=i("./src/polyfills/number.ts"),n=i("./src/types/demuxer.ts"),h=i("./src/utils/mp4-tools.ts"),c=i("./src/demux/dummy-demuxed-track.ts"),o=/\/emsg[-/]ID3/i;(t=s.prototype).resetTimeStamp=function(){},t.resetInitSegment=function(e,t,i,r){var s,a,n,o=this.videoTrack=(0,c.dummyTrack)("video",1),l=this.audioTrack=(0,c.dummyTrack)("audio",1),d=this.txtTrack=(0,c.dummyTrack)("text",1);this.id3Track=(0,c.dummyTrack)("id3",1),this.timeOffset=0,e&&e.byteLength&&((e=(0,h.parseInitSegment)(e)).video&&(s=(n=e.video).id,a=n.timescale,n=n.codec,o.id=s,o.timescale=d.timescale=a,o.codec=n),e.audio&&(a=(s=e.audio).id,n=s.timescale,e=s.codec,l.id=a,l.timescale=n,l.codec=e),d.id=h.RemuxerTrackIdConfig.text,o.sampleDuration=0,o.duration=l.duration=r)},t.resetContiguity=function(){},s.probe=function(e){return e=16384{i.r(t),i.d(t,{appendFrame:()=>function(e,t,i,r,s){if(!(i+24>t.length)){var a=n(t,i);if(a&&i+a.frameLength<=t.length)return r=r+s*(9e4*a.samplesPerFrame/a.sampleRate),s={unit:t.subarray(i,i+a.frameLength),pts:r,dts:r},e.config=[],e.channelCount=a.channelCount,e.samplerate=a.sampleRate,e.samples.push(s),{sample:s,length:a.frameLength,missing:0}}},canParse:()=>function(e,t){return s(e,t)&&4<=e.length-t},isHeader:()=>a,isHeaderPattern:()=>s,parseHeader:()=>n,probe:()=>function(e,t){{var i,r;if(t+1>3&3,l=e[t+1]>>1&3,d=e[t+2]>>4&15,h=e[t+2]>>2&3;if(1!=o&&0!=d&&15!=d&&3!=h)return n=e[t+2]>>1&1,i=e[t+3]>>6,d=1e3*u[14*(3==o?3-l:3==l?3:4)+d-1],h=p[3*(3==o?0:2==o?1:2)+h],r=3==i?1:2,a=8*(o=f[o][l])*(s=m[l]),o=Math.floor(o*d/h+n)*s,null===c&&(n=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),c=n?parseInt(n[1]):0),c&&c<=87&&2==l&&224e3<=d&&0==i&&(e[t+3]=128|e[t+3]),{sampleRate:h,channelCount:r,frameLength:o,samplesPerFrame:a}}function s(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])}function a(e,t){return t+1{i.r(t),i.d(t,{default:()=>s});var r=i("./src/crypt/decrypter.ts"),l=i("./src/utils/mp4-tools.ts");(t=a.prototype).decryptBuffer=function(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer)},t.decryptAacSample=function(t,i,r){var e,s=this,a=t[i].unit;a.length<=16||(e=(e=a.subarray(16,a.length-a.length%16)).buffer.slice(e.byteOffset,e.byteOffset+e.length),this.decryptBuffer(e).then(function(e){e=new Uint8Array(e);a.set(e,16),s.decrypter.isSync()||s.decryptAacSamples(t,i+1,r)}))},t.decryptAacSamples=function(e,t,i){for(;;t++){if(t>=e.length)return void i();if(!(e[t].unit.length<32||(this.decryptAacSample(e,t,i),this.decrypter.isSync())))return}},t.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,i=new Int8Array(t),r=0,s=32;s=e.length)return void r();for(var s=e[t].units;!(i>=s.length);i++){var a=s[i];if(!(a.data.length<=48||1!==a.type&&5!==a.type||(this.decryptAvcSample(e,t,i,r,a),this.decrypter.isSync())))return}}};const s=a;function a(e,t,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new r.default(t,{removePKCS7Padding:!1})}},"./src/demux/transmuxer-interface.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});var l=i("./src/demux/webworkify-webpack.js"),d=i("./src/events.ts"),S=i("./src/demux/transmuxer.ts"),E=i("./src/utils/logger.ts"),h=i("./src/errors.ts"),t=i("./src/utils/mediasource-helper.ts"),c=i("./node_modules/eventemitter3/index.js"),u=(0,t.getMediaSource)()||{isTypeSupported:function(){return!1}},r=((i=s.prototype).destroy=function(){var e=this.worker,e=(e?(e.removeEventListener("message",this.onwmsg),e.terminate(),this.worker=null,this.onwmsg=void 0):(e=this.transmuxer)&&(e.destroy(),this.transmuxer=null),this.observer);e&&e.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null},i.push=function(e,t,i,r,s,a,n,o,l,d){var h=this,c=(l.transmuxing.start=self.performance.now(),this.transmuxer),u=this.worker,p=(a||s).start,f=s.decryptdata,m=this.frag,g=!(m&&s.cc===m.cc),y=!(m&&l.level===m.level),A=m?l.sn-m.sn:-1,b=this.part?l.part-this.part.index:-1,v=0==A&&1{i.r(t),i.d(t,{default:()=>function(a){function n(e,t){a.postMessage({event:e,data:t})}var o=new r.EventEmitter;o.on(d.Events.FRAG_DECRYPTED,n),o.on(d.Events.ERROR,n),a.addEventListener("message",function(e){var t=e.data;switch(t.cmd){case"init":var i,r=JSON.parse(t.config);for(i in a.transmuxer=new l.default(o,t.typeSupported,r,t.vendor,t.id),(0,h.enableLogs)(r.debug,t.id),h.logger)!function(t){h.logger[t]=function(e){n("workerLog",{logType:t,message:e})}}(i);n("init",null);break;case"configure":a.transmuxer.configure(t.config);break;case"demux":r=a.transmuxer.push(t.data,t.decryptdata,t.chunkMeta,t.state);(0,l.isPromise)(r)?(a.transmuxer.async=!0,r.then(function(e){u(a,e)}).catch(function(e){n(d.Events.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,details:c.ErrorDetails.FRAG_PARSING_ERROR,chunkMeta:t.chunkMeta,fatal:!1,error:e,err:e,reason:"transmuxer-worker push error"})})):(a.transmuxer.async=!1,u(a,r));break;case"flush":var s=t.chunkMeta,r=a.transmuxer.flush(s);(0,l.isPromise)(r)||a.transmuxer.async?(r=(0,l.isPromise)(r)?r:Promise.resolve(r)).then(function(e){p(a,e,s)}).catch(function(e){n(d.Events.ERROR,{type:c.ErrorTypes.MEDIA_ERROR,details:c.ErrorDetails.FRAG_PARSING_ERROR,chunkMeta:t.chunkMeta,fatal:!1,error:e,err:e,reason:"transmuxer-worker flush error"})}):p(a,r,s)}})}});var l=i("./src/demux/transmuxer.ts"),d=i("./src/events.ts"),h=i("./src/utils/logger.ts"),r=i("./node_modules/eventemitter3/index.js"),c=i("./src/errors.ts");function u(e,t){if(!((i=t.remuxResult).audio||i.video||i.text||i.id3||i.initSegment))return!1;var i=[],r=t.remuxResult,s=r.audio,r=r.video;return s&&a(i,s),r&&a(i,r),e.postMessage({event:"transmuxComplete",data:t},i),!0}function a(e,t){t.data1&&e.push(t.data1.buffer),t.data2&&e.push(t.data2.buffer)}function p(i,e,t){e.reduce(function(e,t){return u(i,t)||e},!1)||i.postMessage({event:"transmuxComplete",data:e[0]}),i.postMessage({event:"flush",data:t})}},"./src/demux/transmuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{TransmuxConfig:()=>g,TransmuxState:()=>y,default:()=>d,isPromise:()=>c});var A,o=i("./src/events.ts"),l=i("./src/errors.ts"),r=i("./src/crypt/decrypter.ts"),t=i("./src/demux/aacdemuxer.ts"),u=i("./src/demux/mp4demuxer.ts"),s=i("./src/demux/tsdemuxer.ts"),a=i("./src/demux/mp3demuxer.ts"),n=i("./src/remux/mp4-remuxer.ts"),p=i("./src/remux/passthrough-remuxer.ts"),f=i("./src/utils/logger.ts");try{A=self.performance.now.bind(self.performance)}catch(e){f.logger.debug("Unable to use Performance API on this environment"),A=self.Date.now}var m=[{demux:u.default,remux:p.default},{demux:s.default,remux:n.default},{demux:t.default,remux:n.default},{demux:a.default,remux:n.default}],d=((i=h.prototype).configure=function(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()},i.push=function(e,t,i,r){var s=this,a=i.transmuxing,e=(a.executeStart=A(),new Uint8Array(e)),n=this.currentTransmuxState,o=this.transmuxConfig,r=(r&&(this.currentTransmuxState=r),r||n),n=r.contiguous,l=r.discontinuity,d=r.trackSwitch,h=r.accurateTimeOffset,c=r.timeOffset,r=r.initSegmentChange,u=o.audioCodec,p=o.videoCodec,f=o.defaultInitPts,m=o.duration,o=o.initSegmentData,g=(g=null,g=0{i.r(t),i.d(t,{default:()=>n});var f=i("./src/demux/adts.ts"),l=i("./src/demux/mpegaudio.ts"),p=i("./src/demux/exp-golomb.ts"),r=i("./src/demux/sample-aes.ts"),C=i("./src/events.ts"),D=i("./src/utils/mp4-tools.ts"),R=i("./src/utils/logger.ts"),L=i("./src/errors.ts"),s=i("./src/types/demuxer.ts");function a(){return(a=Object.assign?Object.assign.bind():function(e){for(var t=1;te.size-6)return null;var l=t[7],d=(192&l&&(r=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,64&l?54e5>4){if((T=S+5+e[S+4])===S+188)continue}else T=S+4;switch(w){case d:E&&(h&&(s=P(h))&&this.parseAVCPES(a,l,s,!1),h={data:[],size:0}),h&&(h.data.push(e.subarray(T,S+188)),h.size+=S+188-T);break;case c:if(E){if(p&&(s=P(p)))switch(n.segmentCodec){case"aac":this.parseAACPES(n,s);break;case"mp3":this.parseMPEGPES(n,s)}p={data:[],size:0}}p&&(p.data.push(e.subarray(T,S+188)),p.size+=S+188-T);break;case u:E&&(f&&(s=P(f))&&this.parseID3PES(o,s),f={data:[],size:0}),f&&(f.data.push(e.subarray(T,S+188)),f.size+=S+188-T);break;case 0:E&&(T+=e[T]+1),y=this._pmtId=(31&(k=e)[(v=T)+10])<<8|k[v+11];break;case y:E&&(T+=e[T]+1);var k=function(e,t,i,r){var s={audio:-1,avc:-1,id3:-1,segmentCodec:"aac"},a=t+3+((15&e[t+1])<<8|e[t+2])-4;for(t+=12+((15&e[t+10])<<8|e[t+11]);t{u.r(t),u.d(t,{default:()=>function(c,e){e=e||{};var i={main:u.m},r=e.all?{main:Object.keys(i.main)}:function(e){for(var t={main:[c]},i={main:[]},r={main:{}};function(i){return Object.keys(i).reduce(function(e,t){return e||0/);if(!t)return r;for(var a,t=t[1],n=new RegExp("(\\\\n|\\W)"+m(t)+f,"g");a=n.exec(s);)"dll-reference"!==a[3]&&r[i].push(a[3]);for(n=new RegExp("\\("+m(t)+'\\("(dll-reference\\s('+p+'))"\\)\\)'+f,"g");a=n.exec(s);)e[a[2]]||(r[i].push(a[1]),e[a[2]]=u(a[1]).m),r[a[2]]=r[a[2]]||[],r[a[2]].push(a[4]);for(var o,l=Object.keys(r),d=0;d{var r,s;i.r(t),i.d(t,{ErrorDetails:()=>s,ErrorTypes:()=>r}),(i=r=r||{}).NETWORK_ERROR="networkError",i.MEDIA_ERROR="mediaError",i.KEY_SYSTEM_ERROR="keySystemError",i.MUX_ERROR="muxError",i.OTHER_ERROR="otherError",(t=s=s||{}).KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown"},"./src/events.ts":(e,t,i)=>{var r;i.r(t),i.d(t,{Events:()=>r}),(i=r=r||{}).MEDIA_ATTACHING="hlsMediaAttaching",i.MEDIA_ATTACHED="hlsMediaAttached",i.MEDIA_DETACHING="hlsMediaDetaching",i.MEDIA_DETACHED="hlsMediaDetached",i.BUFFER_RESET="hlsBufferReset",i.BUFFER_CODECS="hlsBufferCodecs",i.BUFFER_CREATED="hlsBufferCreated",i.BUFFER_APPENDING="hlsBufferAppending",i.BUFFER_APPENDED="hlsBufferAppended",i.BUFFER_EOS="hlsBufferEos",i.BUFFER_FLUSHING="hlsBufferFlushing",i.BUFFER_FLUSHED="hlsBufferFlushed",i.MANIFEST_LOADING="hlsManifestLoading",i.MANIFEST_LOADED="hlsManifestLoaded",i.MANIFEST_PARSED="hlsManifestParsed",i.LEVEL_SWITCHING="hlsLevelSwitching",i.LEVEL_SWITCHED="hlsLevelSwitched",i.LEVEL_LOADING="hlsLevelLoading",i.LEVEL_LOADED="hlsLevelLoaded",i.LEVEL_UPDATED="hlsLevelUpdated",i.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",i.LEVELS_UPDATED="hlsLevelsUpdated",i.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",i.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",i.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",i.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",i.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",i.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",i.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",i.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",i.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",i.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",i.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",i.CUES_PARSED="hlsCuesParsed",i.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",i.INIT_PTS_FOUND="hlsInitPtsFound",i.FRAG_LOADING="hlsFragLoading",i.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",i.FRAG_LOADED="hlsFragLoaded",i.FRAG_DECRYPTED="hlsFragDecrypted",i.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",i.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",i.FRAG_PARSING_METADATA="hlsFragParsingMetadata",i.FRAG_PARSED="hlsFragParsed",i.FRAG_BUFFERED="hlsFragBuffered",i.FRAG_CHANGED="hlsFragChanged",i.FPS_DROP="hlsFpsDrop",i.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",i.ERROR="hlsError",i.DESTROYING="hlsDestroying",i.KEY_LOADING="hlsKeyLoading",i.KEY_LOADED="hlsKeyLoaded",i.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",i.BACK_BUFFER_REACHED="hlsBackBufferReached"},"./src/hls.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>d});var s=i("./node_modules/url-toolkit/src/url-toolkit.js"),c=i("./src/loader/playlist-loader.ts"),u=i("./src/controller/id3-track-controller.ts"),p=i("./src/controller/latency-controller.ts"),f=i("./src/controller/level-controller.ts"),m=i("./src/controller/fragment-tracker.ts"),g=i("./src/loader/key-loader.ts"),y=i("./src/controller/stream-controller.ts"),r=i("./src/is-supported.ts"),A=i("./src/utils/logger.ts"),b=i("./src/config.ts"),v=i("./node_modules/eventemitter3/index.js"),a=i("./src/events.ts"),n=i("./src/errors.ts"),o=i("./src/types/level.ts");function l(e,t){for(var i,r=0;r=t)return r;return 0}},{key:"maxAutoLevel",get:function(){var e=this.levels,t=this.autoLevelCapping,i=this.maxHdcpLevel,t=-1===t&&e&&e.length?e.length-1:t;if(i)for(var r=t;r--;){var s=e[r].attrs["HDCP-LEVEL"];if(s&&s<=i)return r}return t}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}},{key:"playingDate",get:function(){return this.streamController.currentProgramDateTime}},{key:"mainForwardBufferInfo",get:function(){return this.streamController.getMainFwdBufferInfo()}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"media",get:function(){return this._media}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}},{key:"lowLatencyMode",get:function(){return this.config.lowLatencyMode},set:function(e){this.config.lowLatencyMode=e}},{key:"liveSyncPosition",get:function(){return this.latencyController.liveSyncPosition}},{key:"latency",get:function(){return this.latencyController.latency}},{key:"maxLatency",get:function(){return this.latencyController.maxLatency}},{key:"targetLatency",get:function(){return this.latencyController.targetLatency}},{key:"drift",get:function(){return this.latencyController.drift}},{key:"forceStartLoad",get:function(){return this.streamController.forceStartLoad}}]),l(i,t),Object.defineProperty(i,"prototype",{writable:!1});var d=_;function _(e){void 0===e&&(e={}),this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new v.EventEmitter,this._autoLevelCapping=void 0,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null;var t=this.config=(0,b.mergeConfig)(_.DefaultConfig,e),e=(this.userConfig=e,(0,A.enableLogs)(t.debug,"Hls instance"),this._autoLevelCapping=-1,t.progressive&&(0,b.enableStreamingMode)(t),t.abrController),i=t.bufferController,r=t.capLevelController,s=t.fpsController,e=this.abrController=new e(this),i=this.bufferController=new i(this),r=this.capLevelController=new r(this),s=new s(this),a=new c.default(this),n=new u.default(this),o=this.levelController=new f.default(this),l=new m.FragmentTracker(this),d=new g.default(this.config),h=this.streamController=new y.default(this,l,d),a=(r.setStreamController(h),s.setStreamController(h),[a,o,h]),o=(this.networkControllers=a,[e,i,r,s,n,l]),h=(this.audioTrackController=this.createController(t.audioTrackController,a),t.audioStreamController),e=(h&&a.push(new h(this,l,d)),this.subtitleTrackController=this.createController(t.subtitleTrackController,a),t.subtitleStreamController);e&&a.push(new e(this,l,d)),this.createController(t.timelineController,o),d.emeController=this.emeController=this.createController(t.emeController,o),this.cmcdController=this.createController(t.cmcdController,o),this.latencyController=this.createController(p.default,o),this.coreComponents=o}d.defaultConfig=void 0},"./src/is-supported.ts":(e,t,i)=>{i.r(t),i.d(t,{changeTypeSupported:()=>function(){var e=s();return"function"==typeof(null==e||null==(e=e.prototype)?void 0:e.changeType)},isSupported:()=>function(){var e=(0,r.getMediaSource)();if(!e)return!1;var t=s(),e=e&&"function"==typeof e.isTypeSupported&&e.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),t=!t||t.prototype&&"function"==typeof t.prototype.appendBuffer&&"function"==typeof t.prototype.remove;return!!e&&!!t}});var r=i("./src/utils/mediasource-helper.ts");function s(){return self.SourceBuffer||self.WebKitSourceBuffer}},"./src/loader/date-range.ts":(e,t,i)=>{i.r(t),i.d(t,{DateRange:()=>d,DateRangeAttribute:()=>s});var s,a=i("./src/polyfills/number.ts"),n=i("./src/utils/attr-list.ts"),o=i("./src/utils/logger.ts");function l(){return(l=Object.assign?Object.assign.bind():function(e){for(var t=1;t{i.r(t),i.d(t,{LoadError:()=>m,default:()=>l});var n=i("./src/polyfills/number.ts"),u=i("./src/errors.ts");function r(e){var i="function"==typeof Map?new Map:void 0;return(r=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==i){if(i.has(e))return i.get(e);i.set(e,t)}function t(){return s(e,arguments,o(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),a(t,e)})(e)}function s(e,t,i){return(s=function(){if("undefined"==typeof Reflect||!Reflect.construct)return;if(Reflect.construct.sham)return;if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),1}catch(e){return}}()?Reflect.construct.bind():function(e,t,i){var r=[null],t=(r.push.apply(r,t),new(Function.bind.apply(e,r)));return i&&a(t,i.prototype),t}).apply(null,arguments)}function a(e,t){return(a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var p=Math.pow(2,17),l=((t=d.prototype).destroy=function(){this.loader&&(this.loader.destroy(),this.loader=null)},t.abort=function(){this.loader&&this.loader.abort()},t.load=function(n,o){var l=this,e=n.url;if(!e)return Promise.reject(new m({type:u.ErrorTypes.NETWORK_ERROR,details:u.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:n,networkDetails:null},"Fragment does not have a "+(e?"part list":"url")));this.abort();var i=this.config,d=i.fLoader,h=i.loader;return new Promise(function(s,r){l.loader&&l.loader.destroy();var a=l.loader=n.loader=new(d||h)(i),e=f(n),t={timeout:i.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:i.fragLoadingMaxRetryTimeout,highWaterMark:"initSegment"===n.sn?1/0:p};n.stats=a.stats,a.load(e,t,{onSuccess:function(e,t,i,r){l.resetLoader(n,a);e=e.data;i.resetIV&&n.decryptdata&&(n.decryptdata.iv=new Uint8Array(e.slice(0,16)),e=e.slice(16)),s({frag:n,part:null,payload:e,networkDetails:r})},onError:function(e,t,i){l.resetLoader(n,a),r(new m({type:u.ErrorTypes.NETWORK_ERROR,details:u.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:n,response:e,networkDetails:i}))},onAbort:function(e,t,i){l.resetLoader(n,a),r(new m({type:u.ErrorTypes.NETWORK_ERROR,details:u.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:n,networkDetails:i}))},onTimeout:function(e,t,i){l.resetLoader(n,a),r(new m({type:u.ErrorTypes.NETWORK_ERROR,details:u.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:n,networkDetails:i}))},onProgress:function(e,t,i,r){o&&o({frag:n,part:null,payload:i,networkDetails:r})}})})},t.loadPart=function(n,o,l){var d=this,i=(this.abort(),this.config),h=i.fLoader,c=i.loader;return new Promise(function(s,r){d.loader&&d.loader.destroy();var a=d.loader=n.loader=new(h||c)(i),e=f(n,o),t={timeout:i.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:i.fragLoadingMaxRetryTimeout,highWaterMark:p};o.stats=a.stats,a.load(e,t,{onSuccess:function(e,t,i,r){d.resetLoader(n,a),d.updateStatsFromPart(n,o);e={frag:n,part:o,payload:e.data,networkDetails:r};l(e),s(e)},onError:function(e,t,i){d.resetLoader(n,a),r(new m({type:u.ErrorTypes.NETWORK_ERROR,details:u.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:n,part:o,response:e,networkDetails:i}))},onAbort:function(e,t,i){n.stats.aborted=o.stats.aborted,d.resetLoader(n,a),r(new m({type:u.ErrorTypes.NETWORK_ERROR,details:u.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:n,part:o,networkDetails:i}))},onTimeout:function(e,t,i){d.resetLoader(n,a),r(new m({type:u.ErrorTypes.NETWORK_ERROR,details:u.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:n,part:o,networkDetails:i}))}})})},t.updateStatsFromPart=function(e,t){var i=e.stats,r=t.stats,s=r.total,e=(i.loaded+=r.loaded,s?(s=((e=Math.round(e.duration/t.duration))-(t=Math.min(Math.round(i.loaded/s),e)))*Math.round(i.loaded/t),i.total=i.loaded+s):i.total=Math.max(i.loaded,i.total),i.loading),t=r.loading;e.start?e.first+=t.first-t.start:(e.start=t.start,e.first=t.first),e.end=t.end},t.resetLoader=function(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()},d);function d(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}function f(e,t){var i,r,s=(t=void 0===t?null:t)||e,t={frag:e,part:t,responseType:"arraybuffer",url:s.url,headers:{},rangeStart:0,rangeEnd:0},a=s.byteRangeStartOffset,s=s.byteRangeEndOffset;return(0,n.isFiniteNumber)(a)&&(0,n.isFiniteNumber)(s)&&(i=a,r=s,"initSegment"===e.sn&&"AES-128"===(null==(e=e.decryptdata)?void 0:e.method)&&((e=s-a)%16&&(r=s+(16-e%16)),0!==a&&(t.resetIV=!0,i=a-16)),t.rangeStart=i,t.rangeEnd=r),t}h=r(Error),i=h,(t=c).prototype=Object.create(i.prototype),a(t.prototype.constructor=t,i);var h,m=c;function c(e){for(var t,i=arguments.length,r=new Array(1{i.r(t),i.d(t,{BaseSegment:()=>p,ElementaryStreamTypes:()=>r,Fragment:()=>f,Part:()=>m});var r,s=i("./src/polyfills/number.ts"),a=i("./node_modules/url-toolkit/src/url-toolkit.js"),n=i("./src/loader/load-stats.ts");function o(e,t){e.prototype=Object.create(t.prototype),l(e.prototype.constructor=e,t)}function l(e,t){return(l=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function d(e,t){for(var i,r=0;r{i.r(t),i.d(t,{default:()=>r});var d=i("./src/errors.ts"),s=i("./src/loader/fragment-loader.ts"),r=((t=a.prototype).abort=function(){for(var e in this.keyUriToKeyInfo){e=this.keyUriToKeyInfo[e].loader;e&&e.abort()}},t.detach=function(){for(var e in this.keyUriToKeyInfo){var t=this.keyUriToKeyInfo[e];(t.mediaKeySessionContext||t.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[e]}},t.destroy=function(){for(var e in this.detach(),this.keyUriToKeyInfo){e=this.keyUriToKeyInfo[e].loader;e&&e.destroy()}this.keyUriToKeyInfo={}},t.createKeyLoadError=function(e,t,i,r){return void 0===t&&(t=d.ErrorDetails.KEY_LOAD_ERROR),new s.LoadError({type:d.ErrorTypes.NETWORK_ERROR,details:t,fatal:!1,frag:e,networkDetails:i})},t.loadClear=function(e,i){var r=this;if(this.emeController&&this.config.emeEnabled)for(var s=e.sn,a=e.cc,t=0;t{i.r(t),i.d(t,{LevelDetails:()=>a});var r=i("./src/polyfills/number.ts");function s(e,t){for(var i,r=0;re.endSN||0{i.r(t),i.d(t,{LevelKey:()=>r});var a=i("./src/utils/keysystem-util.ts"),n=i("./src/utils/mediakeys-helper.ts"),o=i("./src/utils/mp4-tools.ts"),l=i("./src/utils/logger.ts"),d=i("./src/utils/numeric-encoding-utils.ts"),h={},r=(c.clearKeyUriToKeyIdMap=function(){h={}},(t=c.prototype).isSupported=function(){if(this.method){if("AES-128"===this.method||"NONE"===this.method)return!0;switch(this.keyFormat){case"identity":return"SAMPLE-AES"===this.method;case n.KeySystemFormats.FAIRPLAY:case n.KeySystemFormats.WIDEVINE:case n.KeySystemFormats.PLAYREADY:case n.KeySystemFormats.CLEARKEY:return-1!==["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)}}return!1},t.getDecryptData=function(e){if(!this.encrypted||!this.uri)return null;if("AES-128"===this.method&&this.uri&&!this.iv)return"number"!=typeof e&&("AES-128"!==this.method||this.iv||l.logger.warn('missing IV for initialization segment with method="'+this.method+'" - compliance issue'),e=0),e=function(e){for(var t=new Uint8Array(16),i=12;i<16;i++)t[i]=e>>8*(15-i)&255;return t}(e),new c(this.method,this.uri,"identity",this.keyFormatVersions,e);var t,i=(0,a.convertDataUriToArrayBytes)(this.uri);if(i)switch(this.keyFormat){case n.KeySystemFormats.WIDEVINE:22<=(this.pssh=i).length&&(this.keyId=i.subarray(i.length-22,i.length-6));break;case n.KeySystemFormats.PLAYREADY:var r=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]),r=(this.pssh=(0,o.mp4pssh)(r,null,i),new Uint16Array(i.buffer,i.byteOffset,i.byteLength/2)),r=String.fromCharCode.apply(null,Array.from(r)),r=r.substring(r.indexOf("<"),r.length),r=(new DOMParser).parseFromString(r,"text/xml").getElementsByTagName("KID")[0];!r||(r=r.childNodes[0]?r.childNodes[0].nodeValue:r.getAttribute("VALUE"))&&(r=(0,d.base64Decode)(r).subarray(0,16),(0,a.changeEndianness)(r),this.keyId=r);break;default:var s,r=i.subarray(0,16);16!==r.length&&((s=new Uint8Array(16)).set(r,16-r.length),r=s),this.keyId=r}return this.keyId&&16===this.keyId.byteLength||((e=h[this.uri])||(t=Object.keys(h).length%Number.MAX_SAFE_INTEGER,e=new Uint8Array(16),new DataView(e.buffer,12,4).setUint32(0,t),h[this.uri]=e),this.keyId=e),this},c);function c(e,t,i,r,s){void 0===r&&(r=[1]),void 0===s&&(s=null),this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=e,this.uri=t,this.keyFormat=i,this.keyFormatVersions=r,this.iv=s,this.encrypted=!!e&&"NONE"!==e,this.isCommonEncryption=this.encrypted&&"AES-128"!==e}},"./src/loader/load-stats.ts":(e,t,i)=>{i.r(t),i.d(t,{LoadStats:()=>r});var r=function(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}},"./src/loader/m3u8-parser.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>d});var M=i("./src/polyfills/number.ts"),r=i("./node_modules/url-toolkit/src/url-toolkit.js"),F=i("./src/loader/date-range.ts"),O=i("./src/loader/fragment.ts"),N=i("./src/loader/level-details.ts"),o=i("./src/loader/level-key.ts"),j=i("./src/utils/attr-list.ts"),z=i("./src/utils/logger.ts"),c=i("./src/utils/codecs.ts");function G(){return(G=Object.assign?Object.assign.bind():function(e){for(var t=1;t{i.r(t),i.d(t,{default:()=>s});var h=i("./src/polyfills/number.ts"),u=i("./src/events.ts"),c=i("./src/errors.ts"),p=i("./src/utils/logger.ts"),f=i("./src/loader/m3u8-parser.ts"),m=i("./src/types/loader.ts"),g=i("./src/utils/attr-list.ts");function y(e,t){e=e.url;return e=void 0!==e&&0!==e.indexOf("data:")?e:t.url}function r(e){this.hls=void 0,this.loaders=Object.create(null),this.hls=e,this.registerListeners()}(t=r.prototype).startLoad=function(e){},t.stopLoad=function(){this.destroyInternalLoaders()},t.registerListeners=function(){var e=this.hls;e.on(u.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.on(u.Events.LEVEL_LOADING,this.onLevelLoading,this),e.on(u.Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.on(u.Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},t.unregisterListeners=function(){var e=this.hls;e.off(u.Events.MANIFEST_LOADING,this.onManifestLoading,this),e.off(u.Events.LEVEL_LOADING,this.onLevelLoading,this),e.off(u.Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),e.off(u.Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)},t.createInternalLoader=function(e){var t=this.hls.config,i=t.pLoader,r=t.loader,i=new(i||r)(t);return e.loader=i,this.loaders[e.type]=i},t.getInternalLoader=function(e){return this.loaders[e.type]},t.resetInternalLoader=function(e){this.loaders[e]&&delete this.loaders[e]},t.destroyInternalLoaders=function(){for(var e in this.loaders){var t=this.loaders[e];t&&t.destroy(),this.resetInternalLoader(e)}},t.destroy=function(){this.unregisterListeners(),this.destroyInternalLoaders()},t.onManifestLoading=function(e,t){t=t.url;this.load({id:null,groupId:null,level:0,responseType:"text",type:m.PlaylistContextType.MANIFEST,url:t,deliveryDirectives:null})},t.onLevelLoading=function(e,t){var i=t.id,r=t.level,s=t.url,t=t.deliveryDirectives;this.load({id:i,groupId:null,level:r,responseType:"text",type:m.PlaylistContextType.LEVEL,url:s,deliveryDirectives:t})},t.onAudioTrackLoading=function(e,t){var i=t.id,r=t.groupId,s=t.url,t=t.deliveryDirectives;this.load({id:i,groupId:r,level:null,responseType:"text",type:m.PlaylistContextType.AUDIO_TRACK,url:s,deliveryDirectives:t})},t.onSubtitleTrackLoading=function(e,t){var i=t.id,r=t.groupId,s=t.url,t=t.deliveryDirectives;this.load({id:i,groupId:r,level:null,responseType:"text",type:m.PlaylistContextType.SUBTITLE_TRACK,url:s,deliveryDirectives:t})},t.load=function(e){var t,i,r,s,a=this.hls.config;if(o=this.getInternalLoader(e)){var n=o.context;if(n&&n.url===e.url)return void p.logger.trace("[playlist-loader]: playlist request ongoing");p.logger.log("[playlist-loader]: aborting previous loader for type: "+e.type),o.abort()}switch(e.type){case m.PlaylistContextType.MANIFEST:t=a.manifestLoadingMaxRetry,i=a.manifestLoadingTimeOut,r=a.manifestLoadingRetryDelay,s=a.manifestLoadingMaxRetryTimeout;break;case m.PlaylistContextType.LEVEL:case m.PlaylistContextType.AUDIO_TRACK:case m.PlaylistContextType.SUBTITLE_TRACK:t=0,i=a.levelLoadingTimeOut;break;default:t=a.levelLoadingMaxRetry,i=a.levelLoadingTimeOut,r=a.levelLoadingRetryDelay,s=a.levelLoadingMaxRetryTimeout}var o=this.createInternalLoader(e),n=(null!=(n=e.deliveryDirectives)&&n.part&&(e.type===m.PlaylistContextType.LEVEL&&null!==e.level?l=this.hls.levels[e.level].details:e.type===m.PlaylistContextType.AUDIO_TRACK&&null!==e.id?l=this.hls.audioTracks[e.id].details:e.type===m.PlaylistContextType.SUBTITLE_TRACK&&null!==e.id&&(l=this.hls.subtitleTracks[e.id].details),l)&&(n=l.partTarget,l=l.targetduration,n&&l&&(i=Math.min(1e3*Math.max(3*n,.8*l),i))),{timeout:i,maxRetry:t,retryDelay:r,maxRetryDelay:s,highWaterMark:0}),l={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)};o.load(e,n,l)},t.loadsuccess=function(e,t,i,r){void 0===r&&(r=null),this.resetInternalLoader(i.type);var s=e.data;0===s.indexOf("#EXTM3U")?(t.parsing.start=performance.now(),0{i.r(t),i.d(t,{MAX_SAFE_INTEGER:()=>s,isFiniteNumber:()=>r});var r=Number.isFinite||function(e){return"number"==typeof e&&isFinite(e)},s=Number.MAX_SAFE_INTEGER||9007199254740991},"./src/remux/aac-helper.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});s.getSilentFrame=function(e,t){return"mp4a.40.2"===e?1===t?new Uint8Array([0,200,0,128,35,128]):2===t?new Uint8Array([33,0,73,144,2,25,0,35,128]):3===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]):4===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]):5===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]):6===t?new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]):void 0:1===t?new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]):2===t||3===t?new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]):void 0};const r=s;function s(){}},"./src/remux/mp4-generator.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});var a=Math.pow(2,32)-1,i=(c.init=function(){for(var e in c.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]})c.types.hasOwnProperty(e)&&(c.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);var t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t=(c.HDLR_TYPES={video:t,audio:i},new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1])),i=new Uint8Array([0,0,0,0,0,0,0,0]),i=(c.STTS=c.STSC=c.STCO=i,c.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),c.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),c.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),c.STSD=new Uint8Array([0,0,0,0,0,0,0,1]),new Uint8Array([105,115,111,109])),r=new Uint8Array([97,118,99,49]),s=new Uint8Array([0,0,0,1]);c.FTYP=c.box(c.types.ftyp,i,s,i,r),c.DINF=c.box(c.types.dinf,c.box(c.types.dref,t))},c.box=function(e){for(var t=8,i=arguments.length,r=new Array(1>24&255,o[1]=t>>16&255,o[2]=t>>8&255,o[3]=255&t,o.set(e,4),a=0,t=8;a>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,85,196,0,0]))},c.mdia=function(e){return c.box(c.types.mdia,c.mdhd(e.timescale,e.duration),c.hdlr(e.type),c.minf(e))},c.mfhd=function(e){return c.box(c.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))},c.minf=function(e){return"audio"===e.type?c.box(c.types.minf,c.box(c.types.smhd,c.SMHD),c.DINF,c.stbl(e)):c.box(c.types.minf,c.box(c.types.vmhd,c.VMHD),c.DINF,c.stbl(e))},c.moof=function(e,t,i){return c.box(c.types.moof,c.mfhd(e),c.traf(i,t))},c.moov=function(e){for(var t=e.length,i=[];t--;)i[t]=c.trak(e[t]);return c.box.apply(null,[c.types.moov,c.mvhd(e[0].timescale,e[0].duration)].concat(i).concat(c.mvex(e)))},c.mvex=function(e){for(var t=e.length,i=[];t--;)i[t]=c.trex(e[t]);return c.box.apply(null,[c.types.mvex].concat(i))},c.mvhd=function(e,t){t*=e;var i=Math.floor(t/(1+a)),t=Math.floor(t%(1+a)),e=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return c.box(c.types.mvhd,e)},c.sdtp=function(e){for(var t,i=e.samples||[],r=new Uint8Array(4+i.length),s=0;s>>8&255),r.push(255&i),r=r.concat(Array.prototype.slice.call(t));for(a=0;a>>8&255),s.push(255&i),s=s.concat(Array.prototype.slice.call(t));var n=c.box(c.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|e.sps.length].concat(r).concat([e.pps.length]).concat(s))),o=e.width,l=e.height,d=e.pixelRatio[0],h=e.pixelRatio[1];return c.box(c.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,o>>8&255,255&o,l>>8&255,255&l,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),n,c.box(c.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),c.box(c.types.pasp,new Uint8Array([d>>24,d>>16&255,d>>8&255,255&d,h>>24,h>>16&255,h>>8&255,255&h])))},c.esds=function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))},c.mp4a=function(e){var t=e.samplerate;return c.box(c.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0]),c.box(c.types.esds,c.esds(e)))},c.mp3=function(e){var t=e.samplerate;return c.box(c.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0]))},c.stsd=function(e){return"audio"===e.type?"mp3"===e.segmentCodec&&"mp3"===e.codec?c.box(c.types.stsd,c.STSD,c.mp3(e)):c.box(c.types.stsd,c.STSD,c.mp4a(e)):c.box(c.types.stsd,c.STSD,c.avc1(e))},c.tkhd=function(e){var t=e.id,i=e.duration*e.timescale,r=e.width,e=e.height,s=Math.floor(i/(1+a)),i=Math.floor(i%(1+a));return c.box(c.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,e>>8&255,255&e,0,0]))},c.traf=function(e,t){var i=c.sdtp(e),r=e.id,s=Math.floor(t/(1+a)),t=Math.floor(t%(1+a));return c.box(c.types.traf,c.box(c.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),c.box(c.types.tfdt,new Uint8Array([1,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,t>>24,t>>16&255,t>>8&255,255&t])),c.trun(e,i.length+16+20+8+16+8+8),i)},c.trak=function(e){return e.duration=e.duration||4294967295,c.box(c.types.trak,c.tkhd(e),c.mdia(e))},c.trex=function(e){e=e.id;return c.box(c.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},c.trun=function(e,t){var i,r,s,a,n,o=e.samples||[],l=o.length,d=12+16*l,h=new Uint8Array(d);for(h.set(["video"===e.type?1:0,0,15,1,l>>>24&255,l>>>16&255,l>>>8&255,255&l,(t+=8+d)>>>24&255,t>>>16&255,t>>>8&255,255&t],0),i=0;i>>24&255,r>>>16&255,r>>>8&255,255&r,s>>>24&255,s>>>16&255,s>>>8&255,255&s,a.isLeading<<2|a.dependsOn,a.isDependedOn<<6|a.hasRedundancy<<4|a.paddingValue<<1|a.isNonSync,61440&a.degradPrio,15&a.degradPrio,n>>>24&255,n>>>16&255,n>>>8&255,255&n],12+16*i);return c.box(c.types.trun,h)},c.initSegment=function(e){c.types||c.init();var e=c.moov(e),t=new Uint8Array(c.FTYP.byteLength+e.byteLength);return t.set(c.FTYP),t.set(e,c.FTYP.byteLength),t},c);function c(){}i.types=void 0,i.HDLR_TYPES=void 0,i.STTS=void 0,i.STSC=void 0,i.STCO=void 0,i.STSZ=void 0,i.VMHD=void 0,i.SMHD=void 0,i.STSD=void 0,i.FTYP=void 0,i.DINF=void 0;const r=i},"./src/remux/mp4-remuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r,flushTextTrackMetadataCueSamples:()=>E,flushTextTrackUserdataCueSamples:()=>w,normalizePts:()=>ne});var u=i("./src/polyfills/number.ts"),F=i("./src/remux/aac-helper.ts"),X=i("./src/remux/mp4-generator.ts"),Z=i("./src/events.ts"),ee=i("./src/errors.ts"),te=i("./src/utils/logger.ts"),S=i("./src/types/loader.ts"),ie=i("./src/utils/timescale-conversion.ts");function re(){return(re=Object.assign?Object.assign.bind():function(e){for(var t=1;ta[0].pts)&&(y=d,T=a[0].pts-t,a[0].dts=y,a[0].pts=T,te.logger.log("Video: First PTS/DTS adjusted: "+(0,ie.toMsFromMpegTsClock)(T,!0)+"/"+(0,ie.toMsFromMpegTsClock)(y,!0)+", delta: "+(0,ie.toMsFromMpegTsClock)(t,!0)+" ms"))),y=Math.max(0,y);for(var b=0,M=0,v=0;v{i.r(t),i.d(t,{default:()=>r});var u=i("./src/polyfills/number.ts"),p=i("./src/remux/mp4-remuxer.ts"),f=i("./src/utils/mp4-tools.ts"),a=i("./src/loader/fragment.ts"),m=i("./src/utils/logger.ts");function n(e,t){e=null==e?void 0:e.codec;return e&&4{i.r(t),i.d(t,{default:()=>r});(i=s.prototype).destroy=function(){this.onHandlerDestroying(),this.onHandlerDestroyed()},i.onHandlerDestroying=function(){this.clearNextTick(),this.clearInterval()},i.onHandlerDestroyed=function(){},i.hasInterval=function(){return!!this._tickInterval},i.hasNextTick=function(){return!!this._tickTimer},i.setInterval=function(e){return!this._tickInterval&&(this._tickInterval=self.setInterval(this._boundTick,e),!0)},i.clearInterval=function(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),!(this._tickInterval=null))},i.clearNextTick=function(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),!(this._tickTimer=null))},i.tick=function(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),1{i.r(t),i.d(t,{CMCDObjectType:()=>r,CMCDStreamType:()=>a,CMCDStreamingFormat:()=>s,CMCDVersion:()=>n});var r,s,a,n=1;(i=r=r||{}).MANIFEST="m",i.AUDIO="a",i.VIDEO="v",i.MUXED="av",i.INIT="i",i.CAPTION="c",i.TIMED_TEXT="tt",i.KEY="k",i.OTHER="o",(t=s=s||{}).DASH="d",t.HLS="h",t.SMOOTH="s",t.OTHER="o",(i=a=a||{}).VOD="v",i.LIVE="l"},"./src/types/demuxer.ts":(e,t,i)=>{var r;i.r(t),i.d(t,{MetadataSchema:()=>r}),(i=r=r||{}).audioId3="org.id3",i.dateRange="com.apple.quicktime.HLS",i.emsg="https://aomedia.org/emsg/ID3"},"./src/types/level.ts":(e,t,i)=>{function r(e,t){for(var i,r=0;ra,HlsSkip:()=>s,HlsUrlParameters:()=>n,Level:()=>o,getSkipValue:()=>function(e,t){var i=e.canSkipUntil,r=e.canSkipDateRanges,e=e.endSN;return i&&(void 0!==t?t-e:0){var r,s;i.r(t),i.d(t,{PlaylistContextType:()=>r,PlaylistLevelType:()=>s}),(i=r=r||{}).MANIFEST="manifest",i.LEVEL="level",i.AUDIO_TRACK="audioTrack",i.SUBTITLE_TRACK="subtitleTrack",(t=s=s||{}).MAIN="main",t.AUDIO="audio",t.SUBTITLE="subtitle"},"./src/types/transmuxer.ts":(e,t,i)=>{i.r(t),i.d(t,{ChunkMetadata:()=>r});var r=function(e,t,i,r,s,a){void 0===r&&(r=0),void 0===s&&(s=-1),void 0===a&&(a=!1),this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=e,this.sn=t,this.id=i,this.size=r,this.part=s,this.partial=a}},"./src/utils/attr-list.ts":(e,t,i)=>{i.r(t),i.d(t,{AttrList:()=>a});var r=/^(\d+)x(\d+)$/,s=/\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g,a=((i=n.prototype).decimalInteger=function(e){e=parseInt(this[e],10);return e>Number.MAX_SAFE_INTEGER?1/0:e},i.hexadecimalInteger=function(e){if(this[e]){for(var t=(1&(t=(this[e]||"0x").slice(2)).length?"0":"")+t,i=new Uint8Array(t.length/2),r=0;rNumber.MAX_SAFE_INTEGER?1/0:e},i.decimalFloatingPoint=function(e){return parseFloat(this[e])},i.optionalFloat=function(e,t){e=this[e];return e?parseFloat(e):t},i.enumeratedString=function(e){return this[e]},i.bool=function(e){return"YES"===this[e]},i.decimalResolution=function(e){e=r.exec(this[e]);if(null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}},n.parseAttrList=function(e){var t,i={};for(s.lastIndex=0;null!==(t=s.exec(e));){var r=t[2];0===r.indexOf('"')&&r.lastIndexOf('"')===r.length-1&&(r=r.slice(1,-1)),i[t[1]]=r}return i},n);function n(e){for(var t in e="string"==typeof e?n.parseAttrList(e):e)e.hasOwnProperty(t)&&(this[t]=e[t])}},"./src/utils/binary-search.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});const r={search:function(e,t){for(var i,r,s=0,a=e.length-1;s<=a;){var n=t(r=e[i=(s+a)/2|0]);if(0{i.r(t),i.d(t,{BufferHelper:()=>a});var r=i("./src/utils/logger.ts"),s={length:0,start:function(){return 0},end:function(){return 0}},a=(n.isBuffered=function(e,t){try{if(e)for(var i=n.getBuffered(e),r=0;r=i.start(r)&&t<=i.end(r))return!0}catch(e){}return!1},n.bufferInfo=function(e,t,i){try{if(e){for(var r=n.getBuffered(e),s=[],a=0;aa&&(r[n-1].end=e[s].end):r.push(e[s])):r.push(e[s])}else r=e;for(var o,l=0,d=t,h=t,c=0;c{i.r(t),i.d(t,{CaptionScreen:()=>b,Row:()=>A,default:()=>D});function a(e){var t=e;return s.hasOwnProperty(e)&&(t=s[e]),String.fromCharCode(t)}function l(e){for(var t=[],i=0;i=e&&(t="function"==typeof t?t():t,r.logger.log(this.time+" ["+e+"] "+t))},k),g=((i=T.prototype).reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},i.setStyles=function(e){for(var t=["foreground","underline","italics","background","flash"],i=0;in&&(this.logger.log(d.DEBUG,"Too large cursor position "+this.pos),this.pos=n)},i.moveCursor=function(e){var t=this.pos+e;if(1=n?this.logger.log(d.ERROR,function(){return"Cannot insert "+e.toString(16)+" ("+i+") at position "+t.pos+". Skipping it!"}):(this.chars[this.pos].setChar(i,this.currPenState),this.moveCursor(1))},i.clearFromPos=function(e){for(var t=e;t ("+l([n,o])+")"),!(i=(i=(i=(i=this.parseCmd(n,o))?i:this.parseMidrow(n,o))||this.parsePAC(n,o))||this.parseBackgroundAttributes(n,o))&&(r=this.parseChars(n,o))&&((a=this.currentChannel)&&0{i.r(t),i.d(t,{isCodecSupportedInMp4:()=>function(e,t){return MediaSource.isTypeSupported((t||"video")+'/mp4;codecs="'+e+'"')},isCodecType:()=>function(e,t){t=r[t];return!!t&&!0===t[e.slice(0,4)]}});var r={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,av01:!0,drac:!0,dva1:!0,dvav:!0,dvh1:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0},text:{stpp:!0,wvtt:!0}}},"./src/utils/cues.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});var f=i("./src/utils/vttparser.ts"),m=i("./src/utils/webvtt-parser.ts"),g=i("./src/utils/texttrack-utils.ts"),y=/\s/;const r={newCue:function(t,e,i,r){for(var s,a,n,o,l=[],d=self.VTTCue||self.TextTrackCue,h=0;h{i.r(t),i.d(t,{adjustSlidingStart:()=>c,alignMediaPlaylistByPDT:()=>function(e,t){{var i,r,s;e.hasProgramDateTime&&t.hasProgramDateTime&&(i=e.fragments,t=t.fragments,i.length&&t.length&&(t=t[Math.round(t.length/2)-1],i=o(i,t.cc)||i[Math.round(i.length/2)-1],r=t.programDateTime,s=i.programDateTime,null!==r&&null!==s&&c((s-r)/1e3-(i.start-t.start),e)))}},alignPDT:()=>u,alignStream:()=>function(e,t,i){var r;t&&(l(e,e=t,r=i)&&(e=d(e.details,r))&&(0,s.isFiniteNumber)(e.start)&&(a.logger.log("Adjusting PTS using last level due to CC increase within current level "+r.url),c(e.start,r)),!i.alignedSliding&&t.details&&u(i,t.details),i.alignedSliding||!t.details||i.skippedSegments||(0,n.adjustSliding)(t.details,i))},findDiscontinuousReferenceFrag:()=>d,findFirstFragWithCC:()=>o,shouldAlignOnDiscontinuities:()=>l});var s=i("./src/polyfills/number.ts"),a=i("./src/utils/logger.ts"),n=i("./src/controller/level-helper.ts");function o(e,t){for(var i=null,r=0,s=e.length;ri.startCC||e&&e.cc{i.r(t),i.d(t,{default:()=>r});var s=i("./src/utils/ewma.ts");(t=a.prototype).update=function(e,t){var i=this.slow_,r=this.fast_;this.slow_.halfLife!==e&&(this.slow_=new s.default(e,i.getEstimate(),i.getTotalWeight())),this.fast_.halfLife!==t&&(this.fast_=new s.default(t,r.getEstimate(),r.getTotalWeight()))},t.sample=function(e,t){e=(e=Math.max(e,this.minDelayMs_))/1e3,t=8*t/e;this.fast_.sample(e,t),this.slow_.sample(e,t)},t.canEstimate=function(){var e=this.fast_;return e&&e.getTotalWeight()>=this.minWeight_},t.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},t.destroy=function(){};const r=a;function a(e,t,i){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultEstimate_=i,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new s.default(e),this.fast_=new s.default(t)}},"./src/utils/ewma.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});(i=s.prototype).sample=function(e,t){var i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e},i.getTotalWeight=function(){return this.totalWeight_},i.getEstimate=function(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_};const r=s;function s(e,t,i){void 0===t&&(t=0),void 0===i&&(i=0),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i}},"./src/utils/fetch-loader.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>y,fetchSupported:()=>function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(e){}return!1}});var c=i("./src/polyfills/number.ts"),r=i("./src/loader/load-stats.ts"),d=i("./src/demux/chunk-cache.ts");function s(e){var i="function"==typeof Map?new Map:void 0;return(s=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==i){if(i.has(e))return i.get(e);i.set(e,t)}function t(){return a(e,arguments,o(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),n(t,e)})(e)}function a(e,t,i){return(a=function(){if("undefined"==typeof Reflect||!Reflect.construct)return;if(Reflect.construct.sham)return;if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),1}catch(e){return}}()?Reflect.construct.bind():function(e,t,i){var r=[null],t=(r.push.apply(r,t),new(Function.bind.apply(e,r)));return i&&n(t,i.prototype),t}).apply(null,arguments)}function n(e,t){return(n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function u(){return(u=Object.assign?Object.assign.bind():function(e){for(var t=1;t=n&&o(s,a,l.flush(),r)):o(s,a,e,r),i()}).catch(function(){return Promise.reject()})}()};i=l;function l(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=void 0,this.response=void 0,this.controller=void 0,this.context=void 0,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||h,this.controller=new self.AbortController,this.stats=new r.LoadStats}function h(e,t){return new self.Request(e.url,t)}p=s(Error),t=p,(f=g).prototype=Object.create(t.prototype),n(f.prototype.constructor=f,t);var p,f,m=g;function g(e,t,i){return(e=p.call(this,e)||this).code=void 0,e.details=void 0,e.code=t,e.details=i,e}const y=i},"./src/utils/hex.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});const r={hexDump:function(e){for(var t="",i=0;i{i.r(t),i.d(t,{IMSC1_CODEC:()=>r,parseIMSC1:()=>function(e,t,i,r,s){var a=(0,o.findBox)(new Uint8Array(e),["mdat"]);if(0!==a.length){var a=a.map(function(e){return(0,l.utf8ArrayToStr)(e)}),n=(0,d.toTimescaleFromScale)(t,1,i);try{a.forEach(function(e){return r(function(e,d){var i=(new DOMParser).parseFromString(e,"text/xml").getElementsByTagName("tt")[0];if(!i)throw new Error("Invalid ttml");var r={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},h=Object.keys(r).reduce(function(e,t){return e[t]=i.getAttribute("ttp:"+t)||r[t],e},{}),c="preserve"!==i.getAttribute("xml:space"),u=b(A(i,"styling","style")),p=b(A(i,"layout","region")),e=A(i,"body","[begin]");return[].map.call(e,function(e){var t=function r(e,s){return[].slice.call(e.childNodes).reduce(function(e,t,i){return"br"===t.nodeName&&i?e+"\n":null!=(i=t.childNodes)&&i.length?r(t,s):s?e+t.textContent.trim().replace(/\s+/g," "):e+t.textContent},"")}(e,c);if(!t||!e.hasAttribute("begin"))return null;var i=S(e.getAttribute("begin"),h),r=S(e.getAttribute("dur"),h),s=S(e.getAttribute("end"),h);if(null===i)throw _(e);if(null===s){if(null===r)throw _(e);s=i+r}var a,n,o,l,r=new f.default(i-d,s-d,t),t=(r.id=(0,m.generateCueId)(r.startTime,r.endTime,r.text),a=p[e.getAttribute("region")],n=u[e.getAttribute("style")],i=u,o="http://www.w3.org/ns/ttml#styling",(s=(l=null)!=a&&a.hasAttribute("style")?a.getAttribute("style"):null)&&i.hasOwnProperty(s)&&(l=i[s]),["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce(function(e,t){var i=v(n,o,t)||v(a,o,t)||v(l,o,t);return i&&(e[t]=i),e},{})),e=t.textAlign;return e&&((i=y[e])&&(r.lineAlign=i),r.align=e),g(r,t),r}).filter(function(e){return null!==e})}(e,n))})}catch(e){s(e)}}else s(new Error("Could not parse IMSC1 mdat"))}});var o=i("./src/utils/mp4-tools.ts"),n=i("./src/utils/vttparser.ts"),f=i("./src/utils/vttcue.ts"),l=i("./src/demux/id3.ts"),d=i("./src/utils/timescale-conversion.ts"),m=i("./src/utils/webvtt-parser.ts");function g(){return(g=Object.assign?Object.assign.bind():function(e){for(var t=1;t{i.r(t),i.d(t,{changeEndianness:()=>function(e){function t(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}t(e,0,3),t(e,1,2),t(e,4,5),t(e,6,7)},convertDataUriToArrayBytes:()=>function(e){var e=e.split(":"),t=null;{var i,r;"data"===e[0]&&2===e.length&&(e=e[1].split(";"),2===(r=e[e.length-1].split(",")).length&&(i="base64"===r[0],r=r[1],t=i?(e.splice(-1,1),(0,s.base64Decode)(r)):(i=a(r).subarray(0,16),(e=new Uint8Array(16)).set(i,16-i.length),e)))}return t},strToUtf8array:()=>a});var s=i("./src/utils/numeric-encoding-utils.ts");function a(e){return Uint8Array.from(unescape(encodeURIComponent(e)),function(e){return e.charCodeAt(0)})}},"./src/utils/logger.ts":(e,t,i)=>{i.r(t),i.d(t,{enableLogs:()=>function(e,t){if(self.console&&!0===e||"object"==typeof e){!function(i){for(var e=arguments.length,t=new Array(1"):s)})}(e,"debug","log","info","warn","error");try{a.log('Debug logs enabled for "'+t+'"')}catch(e){a=r}}else a=r},logger:()=>n});function s(){}var r={trace:s,debug:s,log:s,warn:s,info:s,error:s},a=r;var n=r},"./src/utils/mediakeys-helper.ts":(e,t,i)=>{var n,r,s;i.r(t),i.d(t,{KeySystemFormats:()=>r,KeySystemIds:()=>s,KeySystems:()=>n,getKeySystemsForConfig:()=>function(e){var t=e.drmSystems,e=e.widevineLicenseUrl,i=t?[n.FAIRPLAY,n.WIDEVINE,n.PLAYREADY,n.CLEARKEY].filter(function(e){return!!t[e]}):[];return!i[n.WIDEVINE]&&e&&i.push(n.WIDEVINE),i},getSupportedMediaKeySystemConfigurations:()=>function(e,t,i,r){var s;switch(e){case n.FAIRPLAY:s=["cenc","sinf"];break;case n.WIDEVINE:case n.PLAYREADY:s=["cenc"];break;case n.CLEARKEY:s=["cenc","keyids"];break;default:throw new Error("Unknown key-system: "+e)}var a=r;return[{initDataTypes:s,persistentState:a.persistentState||"not-allowed",distinctiveIdentifier:a.distinctiveIdentifier||"not-allowed",sessionTypes:a.sessionTypes||[a.sessionType||"temporary"],audioCapabilities:t.map(function(e){return{contentType:'audio/mp4; codecs="'+e+'"',robustness:a.audioRobustness||"",encryptionScheme:a.audioEncryptionScheme||null}}),videoCapabilities:i.map(function(e){return{contentType:'video/mp4; codecs="'+e+'"',robustness:a.videoRobustness||"",encryptionScheme:a.videoEncryptionScheme||null}})}]},keySystemDomainToKeySystemFormat:()=>function(e){switch(e){case n.FAIRPLAY:return r.FAIRPLAY;case n.PLAYREADY:return r.PLAYREADY;case n.WIDEVINE:return r.WIDEVINE;case n.CLEARKEY:return r.CLEARKEY}},keySystemFormatToKeySystemDomain:()=>function(e){switch(e){case r.FAIRPLAY:return n.FAIRPLAY;case r.PLAYREADY:return n.PLAYREADY;case r.WIDEVINE:return n.WIDEVINE;case r.CLEARKEY:return n.CLEARKEY}},keySystemIdToKeySystemDomain:()=>function(e){if(e===s.WIDEVINE)return n.WIDEVINE},requestMediaKeySystemAccess:()=>a}),(i=n=n||{}).CLEARKEY="org.w3.clearkey",i.FAIRPLAY="com.apple.fps",i.PLAYREADY="com.microsoft.playready",i.WIDEVINE="com.widevine.alpha",(t=r=r||{}).CLEARKEY="org.w3.clearkey",t.FAIRPLAY="com.apple.streamingkeydelivery",t.PLAYREADY="com.microsoft.playready",t.WIDEVINE="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",(s=s||{}).WIDEVINE="edef8ba979d64acea3c827dcd51d21ed";var a="undefined"!=typeof self&&self.navigator&&self.navigator.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null},"./src/utils/mediasource-helper.ts":(e,t,i)=>{i.r(t),i.d(t,{getMediaSource:()=>function(){return self.MediaSource||self.WebKitMediaSource}})},"./src/utils/mp4-tools.ts":(e,t,i)=>{i.r(t),i.d(t,{RemuxerTrackIdConfig:()=>l,appendUint8Array:()=>function(e,t){var i=new Uint8Array(e.length+t.length);return i.set(e),i.set(t,e.length),i},bin2str:()=>c,computeRawDurationFromSamples:()=>_,discardEPB:()=>T,findBox:()=>D,getDuration:()=>function(e,t){for(var i=0,r=0,s=0,a=D(e,["moof","traf"]),n=0;nfunction(a,e){return D(e,["moof","traf"]).reduce(function(e,t){var r=D(t,["tfdt"])[0],s=r[0],t=D(t,["tfhd"]).reduce(function(e,t){t=x(t,4),t=a[t];if(t){var i=x(r,4),i=(i=1===s?(i*=Math.pow(2,32))+x(r,8):i)/(t.timescale||9e4);if(isFinite(i)&&(null===e||iu,mp4pssh:()=>function(e,t,i){if(16!==e.byteLength)throw new RangeError("Invalid system id");var r,s,a;if(t){r=1,s=new Uint8Array(16*t.length);for(var n=0;nfunction(i,e,s){D(e,["moof","traf"]).forEach(function(t){D(t,["tfhd"]).forEach(function(e){var r,e=x(e,4),e=i[e];e&&(r=e.timescale||9e4,D(t,["tfdt"]).forEach(function(e){var t=e[0],i=x(e,4);0===t?(i-=s*r,d(e,4,i=Math.max(i,0))):(i=(i=(i*=Math.pow(2,32))+x(e,8))-s*r,i=Math.max(i,0),t=Math.floor(i/(a+1)),i=Math.floor(i%(a+1)),d(e,4,t),d(e,8,i))}))})})},parseEmsg:()=>function(e){var t=e[0],i="",r="",s=0,a=0,n=0,o=0,l=0,d=0;if(0===t){for(;"\0"!==c(e.subarray(d,d+1));)i+=c(e.subarray(d,d+1)),d+=1;for(i+=c(e.subarray(d,d+1)),d+=1;"\0"!==c(e.subarray(d,d+1));)r+=c(e.subarray(d,d+1)),d+=1;r+=c(e.subarray(d,d+1)),d+=1,s=x(e,12),a=x(e,16),o=x(e,20),l=x(e,24),d=28}else if(1===t){s=x(e,d+=4);var t=x(e,d+=4),h=x(e,d+=4);for(d+=4,n=Math.pow(2,32)*t+h,Number.isSafeInteger(n)||(n=Number.MAX_SAFE_INTEGER,console.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),o=x(e,d),l=x(e,d+=4),d+=4;"\0"!==c(e.subarray(d,d+1));)i+=c(e.subarray(d,d+1)),d+=1;for(i+=c(e.subarray(d,d+1)),d+=1;"\0"!==c(e.subarray(d,d+1));)r+=c(e.subarray(d,d+1)),d+=1;r+=c(e.subarray(d,d+1)),d+=1}return{schemeIdUri:i,value:r,timeScale:s,presentationTime:n,presentationTimeDelta:a,eventDuration:o,id:l,payload:e.subarray(d,e.byteLength)}},parseInitSegment:()=>function(e){for(var i=[],t=D(e,["moov","trak"]),r=0;rfunction(e){if(!(e instanceof ArrayBuffer)||e.byteLength<32)return null;var t={version:0,systemId:"",kids:null,data:null},i=new DataView(e),r=i.getUint32(0);if(e.byteLength!==r&&44>>24,1R,parseSamples:()=>function(v,_){var S=[],E=_.samples,w=_.timescale,a=_.id,T=!1;return D(E,["moof"]).map(function(e){var b=e.byteOffset-8;D(e,["traf"]).map(function(s){var e=D(s,["tfdt"]).map(function(e){var t=e[0],i=x(e,4);return(i=1===t?(i*=Math.pow(2,32))+x(e,8):i)/w})[0];return void 0!==e&&(v=e),D(s,["tfhd"]).map(function(e){var t=x(e,4),i=16777215&x(e,0),y=0,A=0,r=8;t===a&&(0!=(1&i)&&(r+=8),0!=(2&i)&&(r+=4),0!=(8&i)&&(y=x(e,r),r+=4),0!=(16&i)&&(A=x(e,r),r+=4),0!=(32&i)&&(r+=4),"video"===_.type&&(T=function(e){if(!e)return!1;var t=e.indexOf("."),e=t<0?e:e.substring(0,t);return"hvc1"===e||"hev1"===e||"dvh1"===e||"dvhe"===e}(_.codec)),D(s,["trun"]).map(function(e){var t=e[0],i=16777215&x(e,0),r=0,s=0!=(256&i),a=0,n=0!=(512&i),o=0,l=0!=(1024&i),d=0!=(2048&i),h=0,c=x(e,4),u=8;0!=(1&i)&&(r=x(e,u),u+=4),0!=(4&i)&&(u+=4);for(var p=r+b,f=0;f>1&63)||40==e;return 6==(31&t)}(T,E[p+=4])||R(E.subarray(p,p+g),T?2:1,v+h/w,S),p+=g,m+=g+4}v+=a/w}}))})})}),S},parseSegmentIndex:()=>v,parseSinf:()=>h,patchEncyptionData:()=>function(e,t){if(!e||!t)return e;var r=t.keyId;return r&&t.isCommonEncryption&&D(e,["moov","trak"]).forEach(function(e){var e=D(e,["mdia","minf","stbl","stsd"])[0].subarray(8),t=D(e,["enca"]),i=0sinf>>tenc' box: "+n.default.hexDump(t)+" -> "+n.default.hexDump(r)),e.set(r,8))})})}),e},readSint32:()=>C,readUint16:()=>w,readUint32:()=>x,segmentValidRange:()=>function(e){var t={valid:null,remainder:null},i=D(e,["moof"]);if(!i)return t;if(i.length<2)return t.remainder=e,t;i=i[i.length-1];return t.valid=(0,r.sliceUint8)(e,0,i.byteOffset-8),t.remainder=(0,r.sliceUint8)(e,i.byteOffset-8),t},writeUint32:()=>d});var k=i("./src/loader/fragment.ts"),r=i("./src/utils/typed-array.ts"),E=i("./src/demux/id3.ts"),s=i("./src/utils/logger.ts"),n=i("./src/utils/hex.ts"),a=Math.pow(2,32)-1,o=[].push,l={video:1,audio:2,id3:3,text:4};function c(e){return String.fromCharCode.apply(null,e)}function w(e,t){e=e[t]<<8|e[t+1];return e<0?65536+e:e}function x(e,t){e=C(e,t);return e<0?4294967296+e:e}function C(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function d(e,t,i){e[t]=i>>24,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i}function D(e,t){var i=[];if(!t.length)return i;for(var r=e.byteLength,s=0;s>>31)return console.warn("SIDX has hierarchical references (not supported)"),null;d=x(e,l);l+=4,t.push({referenceSize:h,subsegmentDuration:d,info:{duration:d/s,start:a,end:a+h-1}}),a+=h,r=l+=4}return{earliestPresentationTime:0,timescale:s,version:i,referencesCount:n,references:t}}function h(e){var t=D(e,["schm"])[0];if(t){t=c(t.subarray(4,8));if("cbcs"===t||"cenc"===t)return D(e,["schi","tenc"])[0]}return s.logger.error("[eme] missing 'schm' box"),null}function _(e){var t=x(e,0),i=8;1&t&&(i+=4),4&t&&(i+=4);for(var r=0,s=x(e,4),a=0;a=s.length)&&(n+=d=s[a++],255===d););for(o=0;!(a>=s.length)&&(o+=d=s[a++],255===d););var h=s.length-a;if(!l&&4===n&&a>24&255,o[1]=a>>16&255,o[2]=a>>8&255,o[3]=255&a,o.set(e,4),n=0,a=8;n{function r(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function s(e){return btoa(String.fromCharCode.apply(String,e))}i.r(t),i.d(t,{base64Decode:()=>function(e){return Uint8Array.from(atob(e),function(e){return e.charCodeAt(0)})},base64DecodeToStr:()=>function(e){return atob(e)},base64Encode:()=>s,base64ToBase64Url:()=>r,base64UrlEncode:()=>function(e){return r(s(e))},strToBase64Encode:()=>function(e){return btoa(e)}})},"./src/utils/output-filter.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});(i=s.prototype).dispatchCue=function(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)},i.newCue=function(e,t,i){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)},i.reset=function(){this.cueRanges=[],this.startTime=null};var r=s;function s(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t}},"./src/utils/texttrack-utils.ts":(e,t,i)=>{i.r(t),i.d(t,{addCueToTrack:()=>function(e,t){var i=e.mode;if("disabled"===i&&(e.mode="hidden"),e.cues&&!e.cues.getCueById(t.id))try{if(e.addCue(t),!e.cues.getCueById(t.id))throw new Error("addCue is failed for: "+t)}catch(i){s.logger.debug("[texttrack-utils]: "+i);var r=new self.TextTrackCue(t.startTime,t.endTime,t.text);r.id=t.id,e.addCue(r)}"disabled"===i&&(e.mode=i)},clearCurrentCues:()=>function(e){var t=e.mode;if("disabled"===t&&(e.mode="hidden"),e.cues)for(var i=e.cues.length;i--;)e.removeCue(e.cues[i]);"disabled"===t&&(e.mode=t)},getCuesInRange:()=>o,removeCuesInRange:()=>function(e,t,i,r){var s=e.mode;if("disabled"===s&&(e.mode="hidden"),e.cues&&0function(e,t){var i;try{i=new Event("addtrack")}catch(e){(i=document.createEvent("Event")).initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}});var s=i("./src/utils/logger.ts");function o(e,t,i){var r=[],s=function(e,t){if(te[i].endTime)return-1;for(var r=0,s=i;r<=s;){var a=Math.floor((s+r)/2);if(te[a].startTime&&r=t&&o.endTime<=i)r.push(o);else if(o.startTime>i)return r}return r}},"./src/utils/time-ranges.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});const r={toString:function(e){for(var t="",i=e.length,r=0;r{function s(e,t,i,r){e=e*t*(i=void 0===i?1:i);return(r=void 0===r?!1:r)?Math.round(e):e}i.r(t),i.d(t,{toMpegTsClockFromTimescale:()=>function(e,t){return s(e,9e4,1/(t=void 0===t?1:t))},toMsFromMpegTsClock:()=>function(e,t){return s(e,1e3,1/9e4,t=void 0===t?!1:t)},toTimescaleFromBase:()=>s,toTimescaleFromScale:()=>function(e,t,i,r){return s(e,t,1/(i=void 0===i?1:i),r=void 0===r?!1:r)}})},"./src/utils/typed-array.ts":(e,t,i)=>{i.r(t),i.d(t,{sliceUint8:()=>function(e,t,i){return Uint8Array.prototype.slice?e.slice(t,i):new Uint8Array(Array.prototype.slice.call(e,t,i))}})},"./src/utils/vttcue.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>r});const r=function(){if("undefined"!=typeof self&&self.VTTCue)return self.VTTCue;var b=["","lr","rl"],t=["start","middle","end","left","right"];function v(e,t){if("string"!=typeof t)return!1;if(!Array.isArray(e))return!1;t=t.toLowerCase();return!!~e.indexOf(t)&&t}function _(e){return v(t,e)}function S(e){for(var t=arguments.length,i=new Array(1{i.r(t),i.d(t,{VTTParser:()=>n,fixLineBreaks:()=>p,parseTimeStamp:()=>l});var o=i("./src/utils/vttcue.ts"),r=(s.prototype.decode=function(e,t){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))},s);function s(){}function l(e){function t(e,t,i,r){return 3600*(0|e)+60*(0|t)+(0|i)+parseFloat(r||0)}e=e.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return e?59/gi,"\n")}(i=f.prototype).parse=function(e){var r=this;function t(){for(var e=0,t=p(t=r.buffer);e{i.r(t),i.d(t,{generateCueId:()=>E,parseWebVTT:()=>function(e,t,i,s,a,n,r,o){var l,d=new y.VTTParser,e=(0,A.utf8ArrayToStr)(new Uint8Array(e)).trim().replace(_,"\n").split("\n"),h=[],c=(0,b.toMpegTsClockFromTimescale)(t,i),u="00:00.000",p=0,f=0,m=!0;d.oncue=function(e){var t=s[a],i=s.ccOffset,r=(p-c)/9e4,t=(null!=t&&t.new&&(void 0!==f?i=s.ccOffset=t.start:function(e,t){var i,r=e[a],s=e[r.prevCC];if(!s||!s.new&&r.new)return e.ccOffset=e.presentationOffset=r.start,r.new=!1;for(;null!=(i=s)&&i.new;)e.ccOffset+=r.start-s.start,r.new=!1,s=e[(r=s).prevCC];e.presentationOffset=t}(s,r)),r&&(i=r-s.presentationOffset),e.endTime-e.startTime),r=(0,v.normalizePts)(9e4*(e.startTime+i-f),9e4*n)/9e4,i=(e.startTime=Math.max(r,0),e.endTime=Math.max(r+t,0),e.text.trim());e.text=decodeURIComponent(encodeURIComponent(i)),e.id||(e.id=E(e.startTime,e.endTime,i)),0>>0).toString()};function E(e,t,i){return r(e.toString())+r(t.toString())+r(i)}},"./src/utils/xhr-loader.ts":(e,t,i)=>{i.r(t),i.d(t,{default:()=>a});var o=i("./src/utils/logger.ts"),r=i("./src/loader/load-stats.ts"),s=/^age:\s*[\d.]+\s*$/m;(t=n.prototype).destroy=function(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null},t.abortInternal=function(){var e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,4!==e.readyState&&(this.stats.aborted=!0,e.abort()))},t.abort=function(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)},t.load=function(e,t,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=t,this.callbacks=i,this.retryDelay=t.retryDelay,this.loadInternal()},t.loadInternal=function(){var e=this.config,t=this.context;if(e){var i=this.loader=new self.XMLHttpRequest,r=this.stats,r=(r.loading.first=0,r.loaded=0,this.xhrSetup);try{if(r)try{r(i,t.url)}catch(e){i.open("GET",t.url,!0),r(i,t.url)}i.readyState||i.open("GET",t.url,!0);var s=this.context.headers;if(s)for(var a in s)i.setRequestHeader(a,s[a])}catch(e){return void this.callbacks.onError({code:i.status,text:e.message},t,i)}t.rangeEnd&&i.setRequestHeader("Range","bytes="+t.rangeStart+"-"+(t.rangeEnd-1)),i.onreadystatechange=this.readystatechange.bind(this),i.onprogress=this.loadprogress.bind(this),i.responseType=t.responseType,self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),e.timeout),i.send()}},t.readystatechange=function(){var e,t,i,r,s=this.context,a=this.loader,n=this.stats;s&&a&&(t=a.readyState,e=this.config,!n.aborted&&2<=t&&(self.clearTimeout(this.requestTimeout),0===n.loading.first&&(n.loading.first=Math.max(self.performance.now(),n.loading.start)),4===t?(a.onreadystatechange=null,a.onprogress=null,t=a.status,r="arraybuffer"===a.responseType,200<=t&&t<300&&(r&&a.response||null!==a.responseText)?(n.loading.end=Math.max(self.performance.now(),n.loading.first),r=r?(i=a.response).byteLength:(i=a.responseText).length,n.loaded=n.total=r,this.callbacks&&((r=this.callbacks.onProgress)&&r(n,s,i,a),this.callbacks&&(r={url:a.responseURL,data:i},this.callbacks.onSuccess(r,n,s,a)))):n.retry>=e.maxRetry||400<=t&&t<499?(o.logger.error(t+" while loading "+s.url),this.callbacks.onError({code:t,text:a.statusText},s,a)):(o.logger.warn(t+" while loading "+s.url+", retrying in "+this.retryDelay+"..."),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,e.maxRetryDelay),n.retry++)):(self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),e.timeout))))},t.loadtimeout=function(){o.logger.warn("timeout while loading "+this.context.url);var e=this.callbacks;e&&(this.abortInternal(),e.onTimeout(this.stats,this.context,this.loader))},t.loadprogress=function(e){var t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)},t.getCacheAge=function(){var e,t=null;return t=this.loader&&s.test(this.loader.getAllResponseHeaders())?(e=this.loader.getResponseHeader("age"))?parseFloat(e):null:t};const a=n;function n(e){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=void 0,this.loader=null,this.stats=void 0,this.xhrSetup=e?e.xhrSetup:null,this.stats=new r.LoadStats,this.retryDelay=0}},"./node_modules/eventemitter3/index.js":e=>{var r=Object.prototype.hasOwnProperty,p="~";function i(){}function a(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function s(e,t,i,r,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");i=new a(i,r||e,s),r=p?p+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],i]:e._events[r].push(i):(e._events[r]=i,e._eventsCount++),e}function l(e,t){0==--e._eventsCount?e._events=new i:delete e._events[t]}function t(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(p=!1)),t.prototype.eventNames=function(){var e,t,i=[];if(0===this._eventsCount)return i;for(t in e=this._events)r.call(e,t)&&i.push(p?t.slice(1):t);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},t.prototype.listeners=function(e){var e=p?p+e:e,t=this._events[e];if(!t)return[];if(t.fn)return[t.fn];for(var i=0,r=t.length,s=new Array(r);i{var t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var e=s("./src/hls.ts");return e.default})())}))&&es.__esModule&&Object.prototype.hasOwnProperty.call(es,"default")?es.default:es;class Ws extends e{constructor(e){super(),(this.player=e)._opt,this.canVideoPlay=!1,this.$videoElement=null,this.canvasRenderInterval=null,this.bandwidthEstimateInterval=null,this.fpsInterval=null,this.hlsFps=0,this.hlsPrevFrams=0,this.isInitInfo=!1,this.eventsDestroy=[],Xt()?(this.$videoElement=this.player.video.$videoElement,this.canVideoPlay=!0):I.isSupported()?(this.$videoElement=this.player.video.$videoElement,this.hls=new I({}),this._initHls(),this._bindEvents()):this.player.debug.error("HlsDecoder","init hls error ,not support "),this.player.debug.log("HlsDecoder","init")}destroy(){return new Promise((e,t)=>{this.hls&&(this.hls.destroy(),this.hls=null),this.eventsDestroy.length&&(this.eventsDestroy.forEach(e=>e()),this.eventsDestroy=[]),this.isInitInfo=!1,this._stopCanvasRender(),this._stopBandwidthEstimateInterval(),this._stopFpsInterval(),this.$videoElement=null,this.hlsFps=0,this.player.debug.log("HlsDecoder","destroy"),setTimeout(()=>{e()},0)})}checkHlsBufferedDelay(){var e=this.$videoElement;let t=0;const i=e.buffered,r=i.length?i.end(i.length-1):0;return(t=r-e.currentTime)<0&&(this.player.debug.warn("HlsDecoder","checkHlsBufferedDelay result < 0",t,r,e.currentTime),t=0),t}getFps(){return this.hlsFps}_startCanvasRender(){this._stopCanvasRender(),this.canvasRenderInterval=setInterval(()=>{this.player.video.render({$video:this.$videoElement,ts:0})},40)}_stopCanvasRender(){this.canvasRenderInterval&&(clearInterval(this.canvasRenderInterval),this.canvasRenderInterval=null)}_startBandwidthEstimateInterval(){this._stopBandwidthEstimateInterval(),this.bandwidthEstimateInterval=setInterval(()=>{let e=0;this.hls.bandwidthEstimate&&(e=this.hls.bandwidthEstimate),this.player.emit(b.kBps,(e/1024/8/10).toFixed(2))},1e3)}_stopBandwidthEstimateInterval(){this.bandwidthEstimateInterval&&(clearInterval(this.bandwidthEstimateInterval),this.bandwidthEstimateInterval=null)}_startFpsInterval(){this._stopCanvasRender(),this.fpsInterval=setInterval(()=>{var e=this.$videoElement.getVideoPlaybackQuality();this.hlsFps=e.totalVideoFrames-this.hlsPrevFrams,this.hlsPrevFrams=e.totalVideoFrames},1e3)}_stopFpsInterval(){this.fpsInterval&&(clearInterval(this.fpsInterval),this.fpsInterval=null)}_initHls(){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.$videoElement.muted=!0,xt()&&(this.$videoElement.style.position="absolute"),this.initVideoEvents()),this.hls.attachMedia(this.$videoElement)}_bindEvents(){const i=this.player,e=this.player.events["proxy"];this.hls;var t=e(this.$videoElement,Ke,e=>{this.hls&&(e=parseInt(e.timeStamp,10),i.handleRender(),i.updateStats({ts:e,dts:e,fps:!0}),i.emit(b.videoTimeUpdate,e))});this.eventsDestroy.push(t),this._startBandwidthEstimateInterval(),this._startFpsInterval(),this.hls.on(I.Events.ERROR,(e,t)=>{if(t.fatal)switch(t.type){case I.ErrorTypes.NETWORK_ERROR:this.player.debug.warn("HlsDecoder","fatal network error encountered, try to recover"),this.hls.startLoad();break;case I.ErrorTypes.MEDIA_ERROR:this.player.debug.warn("HlsDecoder","fatal media error encountered, try to recover"),this.hls.recoverMediaError()}}),this.hls.on(I.Events.MEDIA_ATTACHING,()=>{}),this.hls.on(I.Events.MEDIA_ATTACHED,()=>{}),this.hls.on(I.Events.MEDIA_DETACHING,()=>{}),this.hls.on(I.Events.MEDIA_DETACHED,()=>{}),this.hls.on(I.Events.BUFFER_RESET,()=>{}),this.hls.on(I.Events.BUFFER_CODECS,()=>{}),this.hls.on(I.Events.BUFFER_CREATED,()=>{}),this.hls.on(I.Events.BUFFER_APPENDING,(e,t)=>{this.player.debug.log("HlsDecoder","BUFFER_APPENDING",t)}),this.hls.on(I.Events.BUFFER_APPENDED,()=>{}),this.hls.on(I.Events.BUFFER_EOS,()=>{}),this.hls.on(I.Events.BUFFER_FLUSHING,()=>{}),this.hls.on(I.Events.BUFFER_FLUSHED,()=>{}),this.hls.on(I.Events.MANIFEST_LOADING,()=>{this.player.debug.log("HlsDecoder","MANIFEST_LOADING 开始加载playlist m3u8资源")}),this.hls.on(I.Events.MANIFEST_LOADED,(e,t)=>{this.player.debug.log("HlsDecoder","MANIFEST_LOADED playlist m3u8文件加载完成",t)}),this.hls.on(I.Events.MANIFEST_PARSED,()=>{this.player.debug.log("HlsDecoder","MANIFEST_PARSED playlist m3u8解析完成"),i._times.demuxStart||(i._times.demuxStart=p())}),this.hls.on(I.Events.LEVEL_LOADING,()=>{}),this.hls.on(I.Events.LEVEL_LOADED,(e,t)=>{}),this.hls.on(I.Events.FRAG_LOADING,()=>{}),this.hls.on(I.Events.FRAG_LOADED,(e,t)=>{i._times.decodeStart||(i._times.decodeStart=p())}),this.hls.on(I.Events.BUFFER_APPENDING,()=>{i._times.videoStart||(i._times.videoStart=p(),i.handlePlayToRenderTimes())}),this.hls.on(I.Events.FRAG_DECRYPTED,()=>{}),this.hls.on(I.Events.KEY_LOADING,()=>{}),this.hls.on(I.Events.KEY_LOADING,()=>{}),this.hls.on(I.Events.FPS_DROP,e=>{}),this.hls.on(I.Events.FPS_DROP_LEVEL_CAPPING,e=>{}),this.hls.on(I.Events.FRAG_PARSING_INIT_SEGMENT,(e,s)=>{this.player.debug.log("HlsDecoder","FRAG_PARSING_INIT_SEGMENT",s);const t=!!(s&&s.tracks&&s.tracks.audio),i=!!(s&&s.tracks&&s.tracks.video);if(t&&s.tracks.audio){var r=s.tracks.audio;const t=r.metadata&&r.metadata.channelCount?r.metadata.channelCount:0,i=r.codec;this.player.audio&&this.player.audio.updateAudioInfo({encType:i,channels:t,sampleRate:44100})}if(i&&s.tracks.video){let e=s.tracks.video,t=e.codec,i=e.metadata&&e.metadata.width?e.metadata.width:0,r=e.metadata&&e.metadata.height?e.metadata.height:0;this.player.video&&this.player.video.updateVideoInfo({encTypeCode:-1!==t.indexOf("avc")?7:12,width:i,height:r})}})}initVideoPlay(e){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.initVideoEvents()),this.$videoElement.muted=!0,this.$videoElement.src=e}initRenderSize(){this.isInitInfo||(this.player.video.updateVideoInfo({width:this.$videoElement.videoWidth,height:this.$videoElement.videoHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0)}initVideoEvents(){const e=this.player.events["proxy"],t=e(this.$videoElement,Ve,()=>{this.player.debug.log("HlsDecoder","video canplay"),this.$videoElement.play().then(()=>{this.player.debug.log("HlsDecoder","video play"),this._startCanvasRender(),this.initRenderSize()}).catch(e=>{this.player.debug.warn("HlsDecoder","video play error ",e)})}),i=e(this.$videoElement,We,()=>{this.player.debug.log("HlsDecoder","video waiting")}),r=e(this.$videoElement,Ke,e=>{e=parseInt(e.timeStamp,10);this.player.handleRender(),this.player.updateStats({ts:e}),this.player.emit(b.videoTimeUpdate,e),this.$videoElement.paused&&(this.player.debug.warn("HlsDecoder","video is paused and next try to replay"),this.$videoElement.play().then(()=>{this.player.debug.log("HlsDecoder","video is paused and replay success")}).catch(e=>{this.player.debug.warn("HlsDecoder","video is paused and replay error ",e)}))}),s=e(this.$videoElement,Ye,()=>{this.player.debug.log("HlsDecoder","video playback Rate change",this.$videoElement&&this.$videoElement.playbackRate)});this.eventsDestroy.push(t,i,r,s)}loadSource(i){return new Promise((e,t)=>{this.canVideoPlay?(this.initVideoPlay(i),e()):this.hls.on(I.Events.MEDIA_ATTACHED,()=>{this.hls.loadSource(i),e()})})}_handleUpdatePlaybackRate(){if(this.$videoElement){const s=this.$videoElement;var t=(this.player._opt.videoBuffer+this.player._opt.videoBufferDelay)/1e3;const a=s.buffered;a.length&&a.start(0);var i=a.length?a.end(a.length-1):0;let e=s.currentTime;var r=i-e,t=Math.max(5,3+t),t=(t{if(null!=(e=r[i]))return Array.isArray(e)?i+="[]":e=[e],e.map(e=>{var t=e;return"[object Date]"===Js.call(t)?e=e.toISOString():null!==e&&"object"==typeof e&&(e=JSON.stringify(e)),Xs(i)+"="+Xs(e)}).join("&")}).filter(Boolean).join("&");if(i){const r=t.indexOf("#");-1!==r&&(t=t.slice(0,r)),t+=(-1===t.indexOf("?")?"?":"&")+i}return t}}function ea(e,t,i,r,s,a,n,o,l,d,h){return s=null!=s?parseFloat(s):null,r=parseInt(r||"0",10),{data:e,done:t,option:{range:l,vid:d,index:o,contentLength:r=Number.isNaN(r)?0:r,age:s,startTime:a,firstByteTime:n,endTime:Date.now(),priOptions:h},response:i}}function ta(e,t){return Math.round(8*e*1e3/t/1024)}class U extends Error{retryCount=0;isTimeout=!1;loaderType=Ks;startTime=0;endTime=0;options={};constructor(e,t,i,r){super(r),this.url=e,this.request=t,this.response=i}}class ia extends e{_abortController=null;_timeoutTimer=null;_reader=null;_response=null;_aborted=!1;_index=-1;_range=null;_receivedLength=0;_running=!1;_logger=null;_vid="";_onProcessMinLen=0;_onCancel=null;_priOptions=null;TAG_NAME="FetchLoader";constructor(e){super(),this.player=e}load(e){let{url:a,vid:t,timeout:i,responseType:n,onProgress:o,index:l,onTimeout:r,onCancel:s,range:d,transformResponse:h,request:c,params:u,method:p,headers:f,body:m,mode:g,credentials:y,cache:A,redirect:b,referrer:v,referrerPolicy:_,onProcessMinLen:S,priOptions:E}=e;this._aborted=!1,this._onProcessMinLen=S,this._onCancel=s,this._abortController="undefined"!=typeof AbortController&&new AbortController,this._running=!0,this._index=l,this._range=d||[0,0],this._vid=t||a,this._priOptions=E||{};const w={method:p,headers:f,body:m,mode:g,credentials:y,cache:A,redirect:b,referrer:v,referrerPolicy:_,signal:this._abortController?.signal};let T=!1;clearTimeout(this._timeoutTimer),a=Zs(a,u);e=$s(d);e&&(f=c?c.headers:w.headers=w.headers||(Headers?new Headers:{}),Headers&&f instanceof Headers?f.append("Range",e):f.Range=e),i&&(this._timeoutTimer=setTimeout(()=>{if(T=!0,this.cancel(),r){const e=new U(a,w,null,"timeout");e.isTimeout=!0,r(e,{index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})}},i));const k=Date.now();return(x(l)||x(d))&&this.player.debug.log(this.TAG_NAME,"[fetch load start], index,",l,",range,",d),new Promise((r,s)=>{fetch(c||a,c?void 0:w).then(async t=>{if(clearTimeout(this._timeoutTimer),this._response=t,!this._aborted&&this._running){if(!(t=h?h(t,a)||t:t).ok)throw new U(a,w,t,"bad network response");var i=Date.now();let e;if("text"===n)e=await t.text(),this._running=!1;else if("json"===n)e=await t.json(),this._running=!1;else{if(o)return this.resolve=r,this.reject=s,void this._loadChunk(t,o,k,i);{e=await t.arrayBuffer(),e=new Uint8Array(e),this._running=!1;const r=Date.now()-k,a=ta(e.byteLength,r);this.emit(qs,{speed:a,len:e.byteLength,time:r,vid:this._vid,index:this._index,range:this._range,priOptions:this._priOptions})}}(x(l)||x(d))&&this.player.debug.log(this.TAG_NAME,"[fetch load end], index,",l,",range,",d),r(ea(e,!0,t,t.headers.get("Content-Length"),t.headers.get("age"),k,i,l,d,this._vid,this._priOptions))}}).catch(e=>{clearTimeout(this._timeoutTimer),this._running=!1,this._aborted&&!T||((e=e instanceof U?e:new U(a,w,null,e?.message)).startTime=k,e.endTime=Date.now(),e.isTimeout=T,e.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},s(e))})})}async cancel(){if(!this._aborted){if(this._aborted=!0,this._running=!1,this._response){try{this._reader&&await this._reader.cancel()}catch(e){}this._response=this._reader=null}if(this._abortController){try{this._abortController.abort()}catch(e){}this._abortController=null}this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})}}_loadChunk(s,a,n,o){if(!s.body||!s.body.getReader){this._running=!1;const a=new U(s.url,"",s,"onProgress of bad response.body.getReader");return a.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},void this.reject(a)}0{h=Date.now();try{d=await l.read(),c=Date.now()}catch(e){return c=Date.now(),void(this._aborted||(this._running=!1,e.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this.reject(e)))}var e=0=this._onProcessMinLen||d.done)(r=new Uint8Array(this._writeIdx+i)).set(this._cache.slice(0,this._writeIdx),0),0{i=e,r=t});return e.used=!1,e.resolve=function(){return e.used=!0,i(...arguments)},e.reject=function(){return e.used=!0,r(...arguments)},e}(),this.alive=!!t.onProgress,this._loaderType=e,this.player=i,this._loader=new(e===Ks&&window.fetch?ia:sa)(i),this._config=t,this._retryCount=0,this._retryTimer=null,this._canceled=!1,this._retryCheckFunc=t.retryCheckFunc}exec(){const{retry:r,retryDelay:s,onRetryError:a,transformError:n,...o}=this._config,l=async()=>{try{const r=await this._loader.load(o);this.promise.resolve(r)}catch(e){if(this._loader.running=!1,this.player.debug.log(this.TAG_NAME,"[task request catch err]",e),this._canceled)return;e.loaderType=this._loaderType,e.retryCount=this._retryCount;let t=e,i=(n&&(t=n(t)||t),a&&0{this._loadCompleteResolve=e,this._loadCompleteReject=t,this._startLoad()}).catch(e=>{if(clearTimeout(this._timeoutTimer),this._runing=!1,!this._aborted)throw(e=e instanceof U?e:new U(this._url,this._request)).startTime=t,e.endTime=Date.now(),e.options={index:this._index,vid:this._vid,priOptions:this._priOptions},e})}_startLoad(){let t=null;if(this._responseType===Ys&&this._range&&1],tast :",this._range,", SubRange, ",t)}else t=this._range,this.player.debug.log(this.TAG_NAME,"[xhr_loader->],tast :",this._range,", allRange, ",t);this._internalOpen(t)}_internalOpen(t){try{this._startTime=Date.now();const i=this._xhr=new XMLHttpRequest,r=(i.open(this._method||"GET",this._url,!0),i.responseType=this._responseType,this._timeout&&(i.timeout=this._timeout),i.withCredentials=this._withCredentials,i.onload=this._onLoad.bind(this),i.onreadystatechange=this._onReadyStatechange.bind(this),i.onerror=e=>{this._running=!1;const t=new U(this._url,this._request,e?.currentTarget?.response,"xhr.onerror.status:"+e?.currentTarget?.status+",statusText,"+e?.currentTarget?.statusText);t.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)},i.ontimeout=e=>{this.cancel();const t=new U(this._url,this._request,{status:408},"timeout");this._onTimeout&&(t.isTimeout=!0,this._onTimeout(t,{index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions})),t.options={index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(t)},this._headers||{}),e=$s(t);e&&(r.Range=e),r&&Object.keys(r).forEach(e=>{i.setRequestHeader(e,r[e])}),this.player.debug.log(this.TAG_NAME,"[xhr.send->] tast,",this._range,",load sub range, ",t),i.send(this._body)}catch(e){e.options={index:this._index,range:t,vid:this._vid,priOptions:this._priOptions},this._loadCompleteReject(e)}}_onReadyStatechange(e){2===e.target.readyState&&this._firstRtt<0&&(this._firstRtt=Date.now())}_onLoad(e){const t=e.target.status;if(t<200||299], tast :",this._range,", start",i,"end ",a+this._receivedLength,",dataLen,",t?t.byteLength:0,",receivedLength",this._receivedLength,",index,",this._index,", done,",s)}else s=!0,r=e.target.response;let n={ok:200<=t&&t<300,status:t,statusText:this._xhr.statusText,url:this._xhr.responseURL,headers:this._getHeaders(this._xhr),body:this._xhr.response};this._transformResponse&&(n=this._transformResponse(n,this._url)||n),this._onProgress&&this._onProgress(r,s,{index:this._index,vid:this._vid,range:[i,a+this._receivedLength],startTime:this._startTime,endTime:Date.now(),priOptions:this._priOptions},n),s?(this._runing=!1,this._loadCompleteResolve&&this._loadCompleteResolve(ea(this._onProgress?null:r,s,n,n.headers["content-length"],n.headers.age,this._startTime,this._firstRtt,this._index,this._range,this._vid,this._priOptions))):this._startLoad()}cancel(){if(!this._aborted)return this._aborted=!0,this._runing=!1,super.removeAllListeners(),this._onCancel&&this._onCancel({index:this._index,range:this._range,vid:this._vid,priOptions:this._priOptions}),this._xhr?this._xhr.abort():void 0}static isSupported(){return"undefined"!=typeof XMLHttpRequest}get receiveLen(){return this._receivedLength}get running(){return this._running}set running(e){this._running=e}_getHeaders(e){const t=e.getAllResponseHeaders().trim().split("\r\n"),i={};for(const e of t){const t=e.split(": ");i[t[0].toLowerCase()]=t.slice(1).join(": ")}return i}}class aa extends e{type=Ks;_queue=[];_alive=[];_currentTask=null;_config;constructor(e,t){super(),this.player=t,this._config=(t=e,{loaderType:Ks,retry:0,retryDelay:0,timeout:0,request:null,onTimeout:void 0,onProgress:void 0,onRetryError:void 0,transformRequest:void 0,transformResponse:void 0,transformError:void 0,responseType:"text",range:void 0,url:"",params:void 0,method:"GET",headers:{},body:void 0,mode:void 0,credentials:void 0,cache:void 0,redirect:void 0,referrer:void 0,referrerPolicy:void 0,integrity:void 0,onProcessMinLen:0,...t}),"xhr"!==this._config.loaderType&&ia.isSupported()||(this.type="xhr")}destroy(){this._queue=[],this._alive=[],this._currentTask=null}isFetch(){return this.type===Ks}static isFetchSupport(){return ia.isSupported()}load(e){let t=1{this.emit(qs,e)}),this._queue.push(i),1!==this._queue.length||this._currentTask&&this._currentTask.running||this._processTask(),i.promise}async cancel(){const e=this._queue.map(e=>e.cancel()).concat(this._alive.map(e=>e.cancel()));this._currentTask&&e.push(this._currentTask.cancel()),this._queue=[],this._alive=[],await Promise.all(e),await function(e){let t=0setTimeout(e,t))}()}_processTask(){if(this._currentTask=this._queue.shift(),this._currentTask){this._currentTask.alive&&this._alive.push(this._currentTask);const e=this._currentTask.exec().catch(e=>{});e&&"function"==typeof e.finally&&e.finally(()=>{this._currentTask?.alive&&0e&&e!==this._currentTask)),this._processTask()})}}}const na="network",oa="network_timeout",la="other";class M extends Error{constructor(e,t,i,r,s){super(s||i?.message),this.errorType=e===oa?na:e,this.originError=i,this.ext=r,this.errorMessage=this.message}static create(e,t,i,r,s){return e instanceof M?e:(e instanceof Error&&(i=e,e=""),e=e||la,new M(e,t,i,r,s))}static network(e){return new M(e?.isTimeout?oa:na,null,e instanceof Error?e:null,{url:e?.url,response:e?.response,httpCode:e?.response?.status})}}const da=/^#(EXT[^:]*)(?::(.*))?$/,ha=/([^=]+)=(?:"([^"]*)"|([^",]*))(?:,|$)/g,ca=/^(?:[a-zA-Z0-9+\-.]+:)?\/\//,ua=/^((?:[a-zA-Z0-9+\-.]+:)?\/\/[^/?#]*)?([^?#]*\/)?/;function pa(e){const t=e.match(da);if(t&&t[1])return[t[1].replace("EXT-X-",""),t[2]]}function fa(e){const t={};let i=ha.exec(e);for(;i;)t[i[1]]=i[2]||i[3],i=ha.exec(e);return t}function ma(e,t){if(!t||!e||ca.test(e))return e;t=ua.exec(t);return t?"/"===e[0]?t[1]+e:t[1]+t[2]+e:e}const ga={audio:[/^mp4a/,/^vorbis$/,/^opus$/,/^flac$/,/^[ae]c-3$/],video:[/^avc/,/^hev/,/^hvc/,/^vp0?[89]/,/^av1$/],text:[/^vtt$/,/^wvtt/,/^stpp/]};function ya(e,i){const r=ga[e];if(r&&i&&i.length)for(let t=0;t>8*(15-e)&255}}}class ka{static parse(){let e=0e.trim()).filter(Boolean);return(ka.isMediaPlaylist(e)?function(e,t){const i=new Ea;i.url=t;let r,s=new wa,a=null,n=null,o=0,l=0,d=0,h=0,c=!1;for(;(r=e[h++])&&!c;)if("#"!==r[0])s.sn=l,s.cc=d,s.url=ma(r,t),n&&(s.key=n.clone(l)),a&&(s.initSegment=a),i.segments.push(s),s=new wa,l++;else{const e=pa(r);if(e){const[h,u]=e;switch(h){case"VERSION":i.version=parseInt(u);break;case"PLAYLIST-TYPE":i.type=u?.toUpperCase();break;case"TARGETDURATION":i.targetDuration=parseFloat(u);break;case"ENDLIST":{const e=i.segments[i.segments.length-1];e&&(e.isLast=!0),i.live=!1,c=!0}break;case"MEDIA-SEQUENCE":l=i.startSN=parseInt(u);break;case"DISCONTINUITY-SEQUENCE":d=i.startCC=parseInt(u);break;case"DISCONTINUITY":d++;break;case"BYTERANGE":s.setByteRange(u,i.segments[i.segments.length-1]);break;case"EXTINF":{const[e,t]=u.split(",");s.start=o,s.duration=parseFloat(e),o+=s.duration,s.title=t}break;case"KEY":{const e=fa(u);if("NONE"===e.METHOD){n=null;break}if("AES-128"!==e.METHOD)throw new Error(`encrypt ${e.METHOD}/${e.KEYFORMAT} is not supported`);if((n=new Ta).method=e.METHOD,n.url=/^blob:/.test(e.URI)?e.URI:ma(e.URI,t),n.keyFormat=e.KEYFORMAT||"identity",n.keyFormatVersions=e.KEYFORMATVERSIONS,e.IV){let i=e.IV.slice(2);i=(1&i.length?"0":"")+i,n.iv=new Uint8Array(i.length/2);for(let e=0,t=i.length/2;e{e.id=t}),a.length&&(a.forEach((e,t)=>{e.id=t}),e.streams.forEach(t=>{t.audioGroup&&(t.audioStreams=a.filter(e=>e.group===t.audioGroup))})),n.length&&(n.forEach((e,t)=>{e.id=t}),e.streams.forEach(t=>{t.subtitleGroup&&(t.subtitleStreams=n.filter(e=>e.group===t.subtitleGroup))})),e})(i,t)}static isMediaPlaylist(e){return e.includes("#EXTINF:")||e.includes("#EXT-X-TARGETDURATION:")}}class xa{TAG_NAME="HlsManifestLoader";constructor(e){this.hls=e,this.player=e.player,this._timer=null;var{retryCount:e,retryDelay:t,loadTimeout:i,fetchOptions:r}=this.hls.config;this._loader=new aa({...r,responseType:"text",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player),this._audioLoader=new aa({...r,responseType:"text",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player),this._subtitleLoader=new aa({...r,responseType:"text",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player)}async destroy(){await this.stopPoll(),this._audioLoader&&(this._audioLoader.destroy(),this._audioLoader=null),this._subtitleLoader&&(this._subtitleLoader.destroy(),this._subtitleLoader=null),this._loader&&(this._loader.destroy(),this._loader=null)}async load(e,t,i){this.player.debug.log(this.TAG_NAME,"load()",e,t,i);const r=[this._loader.load(e)];let s,a,n,o,l,d;t&&r.push(this._audioLoader.load(t)),i&&r.push(this._subtitleLoader.load(i));try{const[e,i,o]=await Promise.all(r);if(!e)return[];s=e.data,n=t?(a=i?.data,o?.data):i?.data}catch(e){throw M.network(e)}try{if(!1===(o=ka.parse(s,e))?.live&&o.segments&&!o.segments.length)throw new Error("empty segments list");a&&(l=ka.parse(a,t)),n&&(d=ka.parse(n,i))}catch(e){throw new M("manifest","hls",e)}return o&&(o.isMaster?this.hls.emit("hls-manifest-loaded",{playlist:o}):this.hls.emit("hls-level-loaded",{playlist:o})),[o,l,d]}poll(e,t,i,r,s,a){clearTimeout(this._timer),a=a||3e3;let n=this.hls.config.pollRetryCount;const o=async()=>{clearTimeout(this._timer);try{const s=await this.load(e,t,i);if(!s[0])return;n=this.hls.config.pollRetryCount,r(s[0],s[1],s[2])}catch(e){--n<=0&&s(e)}this._timer=setTimeout(o,a)};this._timer=setTimeout(o,a)}stopPoll(){return clearTimeout(this._timer),this.cancel()}cancel(){return Promise.all([this._loader.cancel(),this._audioLoader.cancel()])}_onLoaderRetry=(e,t)=>{this.hls.emit(ot,{error:M.network(e),retryTime:t})}}class Ca{_chunkSpeeds=[];_speeds=[];addRecord(e,t){e&&t&&(this._speeds.push(8e3*e/t),this._speeds=this._speeds.slice(-3))}addChunkRecord(e,t){e&&t&&(this._chunkSpeeds.push(8e3*e/t),this._chunkSpeeds=this._chunkSpeeds.slice(-100))}getAvgSpeed(){return this._chunkSpeeds.length||this._speeds.length?this._speeds.length?this._speeds.reduce((e,t)=>e+t)/this._speeds.length:this._chunkSpeeds.reduce((e,t)=>e+t)/this._chunkSpeeds.length:0}getLatestSpeed(){return this._chunkSpeeds.length||this._speeds.length?this._speeds.length?this._speeds[this._speeds.length-1]:this._chunkSpeeds[this._chunkSpeeds.length-1]:0}reset(){this._chunkSpeeds=[],this._speeds=[]}}class Da{constructor(e){this.hls=e,this.player=e.player,this._bandwidthService=new Ca;var{retryCount:e,retryDelay:t,loadTimeout:i,fetchOptions:r}=this.hls.config;this._segmentLoader=new aa({...r,responseType:"arraybuffer",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player),this._audioSegmentLoader=new aa({...r,responseType:"arraybuffer",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player),this._keyLoader=new aa({...r,responseType:"arraybuffer",retry:e,retryDelay:t,timeout:i,onRetryError:this._onLoaderRetry},this.player)}destroy(){this.reset(),this._keyLoader&&(this._keyLoader.destroy(),this._keyLoader=null),this._audioSegmentLoader&&(this._audioSegmentLoader.destroy(),this._audioSegmentLoader=null),this._segmentLoader&&(this._segmentLoader.destroy(),this._segmentLoader=null)}speedInfo(){return{speed:this._bandwidthService.getLatestSpeed(),avgSpeed:this._bandwidthService.getAvgSpeed()}}load(e,t,i){var r=3{e&&(30{e&&(n=this._keyCache[s]=e.data,this._emitOnLoaded(e,s))})))}const d=t.key?.url;d&&(a=t.key.iv,(s=this._keyCache[d])||(this.hls.emit(lt,{url:d}),l[3]=this._keyLoader.load(d).then(e=>{e&&(s=this._keyCache[d]=e.data,this._emitOnLoaded(e,d))})));var[i]=await Promise.all(l);if(i)return e=i.data,this._emitOnLoaded(i,t.url),{data:e,map:r,key:s,mapKey:n,keyIv:a,mapKeyIv:o}}reset(){this.error=null,this._mapCache={},this._keyCache={},this._bandwidthService.reset()}async cancel(){await Promise.all([this._keyLoader.cancel(),this._segmentLoader.cancel(),this._audioSegmentLoader.cancel()])}_emitOnLoaded=(e,t)=>{var{data:e,response:i,option:r}=e,{firstByteTime:r,startTime:s,endTime:a,contentLength:n}=r||{},a=a-s;this._bandwidthService.addRecord(n||e.byteLength,a),this.hls.emit("speed",{time:a,byteLength:n,url:t}),this.hls.emit("load-complete",{url:t,elapsed:a||0}),this.hls.emit("ttfb",{url:t,responseUrl:i.url,elapsed:r-s}),this.hls.emit("load-response-headers",{headers:i.headers})};_onLoaderRetry=(e,t)=>{this.hls.emit(ot,{error:M.network(e),retryTime:t})}}class Ra{live=void 0;id=0;bitrate=0;width=0;height=0;name="";url="";audioCodec="";videoCodec="";textCodec="";startCC=0;endCC=0;startSN=0;endSN=-1;totalDuration=0;targetDuration=0;snDiff=null;segments=[];audioStreams=[];subtitleStreams=[];closedCaptions=[];currentAudioStream=null;currentSubtitleStream=null;TAG_NAME="HlsStream";get lastSegment(){return this.segments.length?this.segments[this.segments.length-1]:null}get segmentDuration(){return this.targetDuration||this.segments[0]?.duration||0}get liveEdge(){return this.endTime}get endTime(){return this.lastSegment?.end||0}get currentSubtitleEndSn(){return this.currentSubtitleStream?.endSN||0}constructor(e,t,i){this.update(e,t,i)}clearOldSegment(e,t){return this._clearSegments(e,t)}getAudioSegment(e){if(e&&this.currentAudioStream){const t=e.sn-this.snDiff;return this.currentAudioStream.segments.find(e=>e.sn===t)}}update(e,t){this.url=e.url,Array.isArray(e.segments)?(null!==this.live&&void 0!==this.live||(this.live=e.live),this._updateSegments(e,this),this.startCC=e.startCC,this.endCC=e.endCC,this.startSN=e.startSN,this.endSN=e.endSN||-1,this.totalDuration=e.totalDuration,this.targetDuration=e.targetDuration,this.live=e.live,t&&this.currentAudioStream&&Array.isArray(t.segments)&&(this._updateSegments(t,this.currentAudioStream),(null===this.snDiff||void 0===this.snDiff)&&e.segments.length&&t.segments.length&&(this.snDiff=e.segments[0].sn-t.segments[0].sn))):(this.id=e.id,this.bitrate=e.bitrate,this.width=e.width,this.height=e.height,this.name=e.name,this.audioCodec=e.audioCodec,this.videoCodec=e.videoCodec,this.textCodec=e.textCodec,this.audioStreams=e.audioStreams,this.subtitleStreams=e.subtitleStreams,!this.currentAudioStream&&this.audioStreams.length&&(this.currentAudioStream=this.audioStreams.find(e=>e.default)||this.audioStreams[0]),!this.currentSubtitleStream&&this.subtitleStreams.length&&(this.currentSubtitleStream=this.subtitleStreams.find(e=>e.default)||this.subtitleStreams[0]))}updateSubtitle(e){if(e&&this.currentSubtitleStream&&Array.isArray(e.segments)){const t=this._updateSegments(e,this.currentSubtitleStream),i=this.currentSubtitleStream.segments;return 100({sn:e.sn,url:e.url,duration:e.duration,start:e.start,end:e.end,lang:this.currentSubtitleStream.lang})):void 0}}switchSubtitle(t){const e=this.subtitleStreams.find(e=>e.lang===t),i=this.currentSubtitleStream;e&&(this.currentSubtitleStream=e,i.segments=[])}_clearSegments(i,e){let r=0;var s=this.segments;for(let e=0,t=s.length;e=i){r=e;break}return(r=r>e?e:r)&&(this.segments=this.segments.slice(r),this.currentAudioStream&&(this.currentAudioStream.segments=this.currentAudioStream.segments.slice(r))),e-r}_updateSegments(e,i){const t=i.segments;if(this.live){const r=t[t.length-1],s=r?.sn||-1;if(se.sn===s),n=a<0?e.segments:e.segments.slice(a+1);if(t.length&&n.length){let t=r.end;n.forEach(e=>{e.start=t,t=e.end});const i=r?.cc||-1;i>n[0].cc&&n.forEach(e=>e.cc+=i)}return i.endSN=e.endSN,i.segments=t.concat(n),n}}else i.segments=e.segments}}class La{streams=[];currentStream=null;dvrWindow=0;_segmentPointer=-1;TAG_NAME="HlsPlaylist";constructor(e){this.hls=e,this.player=e.player}destroy(){this.reset()}get lastSegment(){return this.currentStream?.lastSegment}get currentSegment(){return this.currentSegments?.[this._segmentPointer]}get nextSegment(){return this.currentSegments?.[this._segmentPointer+1]}get currentSegments(){return this.currentStream?.segments}get currentSubtitleEndSn(){return this.currentStream?.currentSubtitleEndSn}get liveEdge(){return this.currentStream?.liveEdge}get totalDuration(){return this.currentStream?.totalDuration||0}get seekRange(){var e=this.currentSegments;if(e&&e.length)return[e[0].start,e[e.length-1].end]}get isEmpty(){return!this.currentSegments?.length}get isLive(){return this.currentStream?.live}get hasSubtitle(){return!!this.currentStream?.currentSubtitleStream}getAudioSegment(e){return this.currentStream?.getAudioSegment(e)}moveSegmentPointer(e){null==e&&(e=this._segmentPointer+1),this._segmentPointer=_(e,-1,this.currentSegments?.length),this.player.debug.log(this.TAG_NAME,"moveSegmentPointer()",e,this._segmentPointer)}reset(){this.streams=[],this.currentStream=null,this.dvrWindow=0,this._segmentPointer=-1}getSegmentByIndex(e){return this.currentSegments?.[e]}setNextSegmentByIndex(){var e=0=(e=s[t]).start&&re.url).forEach((e,t)=>{this.streams[t]?this.streams[t].update(e):this.streams[t]=new Ra(e)}),this.currentStream=this.streams[0];else if(Array.isArray(e.segments)){const s=this.currentStream;var r;s?(s.update(e,t,i),(r=s.updateSubtitle(i))&&this.hls.emit("subtitle-segments",{list:r})):(this.reset(),this.currentStream=this.streams[0]=new Ra(e,t,i))}this.currentStream&&this.hls.isLive&&!this.dvrWindow&&(this.dvrWindow=this.currentSegments.reduce((e,t)=>e+=t.duration,0))}else this.player.debug.warn(this.TAG_NAME,"upsertPlaylist() playlist is null")}switchSubtitle(e){this.currentStream?.switchSubtitle(e)}clearOldSegment(){var e,t,i=0e+t.byteLength,0));let s=0;return t.forEach(e=>{r.set(e,s),s+=e.byteLength}),r}class Pa extends wr{_pmtId=-1;_remainingPacketData=null;_videoPesData=[];_audioPesData=[];_gopId=0;_videoPid=-1;_audioPid=-1;_codecType=7;_audioCodecType=ye;_vps=null;_sps=null;_pps=null;TAG_NAME="TsLoader";constructor(e){super(e),this.player=e,this.videoTrack=Pa.initVideoTrack(),this.audioTrack=Pa.initAudioTrack(),this._baseDts=-1,this._baseDtsInited=!1,this._basefps=25,this._baseFpsInterval=null,this._allSampleList=[],this._tempSampleTsList=[],this._hasAudio=!1,this._hasVideo=!1,this._audioNextPts=void 0,this._videoNextDts=void 0,this._audioTimestampBreak=!1,this._videoTimestampBreak=!1,this._lastAudioExceptionGapDot=0,this._lastAudioExceptionOverlapDot=0,this._lastAudioExceptionLargeGapDot=0,this._isSendAACSeqHeader=!1,this.player.debug.log(this.TAG_NAME,"init")}destroy(){super.destroy(),this._stopDecodeLoopInterval(),this.videoTrack=null,this.audioTrack=null,this._baseDts=-1,this._baseDtsInited=!1,this._basefps=50,this._hasCalcFps=!1,this._allSampleList=[],this._audioNextPts=void 0,this._videoNextDts=void 0,this._audioTimestampBreak=!1,this._videoTimestampBreak=!1,this._lastAudioExceptionGapDot=0,this._lastAudioExceptionOverlapDot=0,this._lastAudioExceptionLargeGapDot=0,this._isSendAACSeqHeader=!1,this.player.debug.log(this.TAG_NAME,"destroy")}static initVideoTrack(){return{samples:[]}}static initAudioTrack(){return{samples:[]}}static probe(e){return!!e.length&&71===e[0]&&71===e[188]&&71===e[376]}static _parsePES(i){var r=i[8];if(!(null==r||i.lengthi.length-6)){let e,t;s=i[7];return 192&s&&(e=536870912*(14&i[9])+4194304*(255&i[10])+16384*(254&i[11])+128*(255&i[12])+(254&i[13])/2,64&s?(t=536870912*(14&i[14])+4194304*(255&i[15])+16384*(254&i[16])+128*(255&i[17])+(254&i[18])/2,54e5>4){if((e=t+5+i[t+4])===t+188)continue}else e=t+4;switch(a){case 0:s&&(e+=i[e]+1),this._pmtId=(31&i[e+10])<<8|i[e+11];break;case this._pmtId:{s&&(e+=i[e]+1);const r=e+3+((15&i[e+1])<<8|i[e+2])-4;for(e+=12+((15&i[e+10])<<8|i[e+11]);e=t)return[];const s=[];for(;r{const t=s?e[0]>>>1&63:31&e[0];switch(t){case 5:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:if(!s&&5!==t||s&&5===t)break;a.isIFrame=!0,this._gopId++;break;case 6:case 39:case 40:if(!s&&6!==t||s&&6===t)break;return void(a.sei=function(t,e){var i=t.length;let r=e?2:1,s=0,a=0,n="";for(;255===t[r];)s+=255,r++;for(s+=t[r++];255===t[r];)a+=255,r++;if(a+=t[r++],5===s&&i>r+16)for(let e=0;e<16;e++)n+=t[r].toString(16),r++;return{payload:t.subarray(r),type:s,size:a,uuid:n}}(function(e){const t=e.byteLength,i=[];let r=1;for(;r=a)){const h=n,c=[],u=(60&r[n+2])>>>2,p=ft[u];if(!p)throw new Error("Invalid sampling index: "+u);var o=1+((192&r[n+2])>>>6),l=(1&r[n+2])<<2|(192&r[n+3])>>>6;let e,t,i=0;for(var d=gt(p);n+7>5,a-n=a?void 0:r.subarray(n),frames:c,samplingFrequencyIndex:u,sampleRate:p,objectType:o,channelCount:l,originCodec:"mp4a.40."+o}}}(r.data,r.originalPts);if(e){if(this.audioTrack.codec=e.codec,this.audioTrack.sampleRate=e.sampleRate,this.audioTrack.channelCount=e.channelCount,!this._isSendAACSeqHeader){const r=ut({profile:e.objectType,sampleRate:e.samplingFrequencyIndex,channel:e.channelCount});this._isSendAACSeqHeader=!0,this.player.debug.log(this.TAG_NAME,"aac seq header",`profile: ${e.objectType}, sampleRate:${e.sampleRate},sampleRateIndex: ${e.samplingFrequencyIndex}, channel: `+e.channelCount),this._doDecodeByHls(r,1,0,!1,0)}if(this._isSendAACSeqHeader){const r=[];e.frames.forEach(e=>{const t=e.pts,i=new Uint8Array(e.data.length+2);i.set([175,1],0),i.set(e.data,2);e={type:1,pts:t,dts:t,payload:i};r.push(e)}),this.audioTrack.samples=this.audioTrack.samples.concat(r)}else this.player.debug.warn(this.TAG_NAME,"aac seq header not send")}else this.player.debug.warn(this.TAG_NAME,"aac parseADTS error")}this._audioPesData=[]}}else console.warn("Cannot parse audio pes",this._audioPesData)}}_fix(){let i=0(e.dts=e.dts/90,e.pts=e.pts/90,e.cts=e.pts-e.dts,e)).sort((e,t)=>e.dts-t.dts),this._allSampleList=this._allSampleList.concat(t),g(this._hasCalcFps)&&(this._hasCalcFps=!0,this._calcDecodeFps(t))}}_calculateBaseDts(){const e=this.audioTrack,t=this.videoTrack,i=e.samples,r=t.samples;if(!i.length&&!r.length)return!1;let s=1/0,a=1/0;i.length&&(e.baseDts=s=i[0].pts),r.length&&(t.baseDts=a=r[0].dts),this._baseDts=Math.min(s,a);var n=a-s;return Number.isFinite(n)&&45e3{e.pts-=this._baseDts,e.dts=e.pts}),this._doFixAudioInternal(e,t,9e4))}_fixVideo(i){const r=i.samples;if(r.length){if(r.forEach(e=>{e.dts-=this._baseDts,e.pts-=this._baseDts}),void 0===this._videoNextDts){const i=r[0];this._videoNextDts=i.dts}const n=r.length;let t=0;const o=r[0],l=r[1],d=this._videoNextDts-o.dts;45e3{0!==t&&(e.dts+=d,e.pts+=d)})));var e=i.samples[0],s=i.samples[n-1],a=1===n?9e3:Math.floor((s.dts-e.dts)/(n-1));for(let e=0;en&&(t=a),this.player.debug.warn(this.TAG_NAME,`large video gap between frames, + time is ${l/i.timescale}, + dts is ${l}, + origin dts is ${r[e].originalDts}, + next dts is ${this._videoNextDts}, + sample Duration is ${t} , + ref Sample DurationInt is `+a)}r[e].duration=t,this._videoNextDts+=t}}}_doFixAudioInternal(e,i,t){e.sampleDuration||(e.sampleDuration=gt(e.timescale,t));var r,s,a=e.sampleDuration;if(void 0===this._audioNextPts){const e=i[0];this._audioNextPts=e.pts}for(let t=0;t({ts:e.dts||e.pts,type:e.type})),2);e&&(this._basefps=e,this._startDecodeLoopInterval(),this.player.debug.log(this.TAG_NAME,`_calcDecodeFps() video fps is ${e}, update base fps is `+this._basefps))}_startDecodeLoopInterval(){this.player.debug.log(this.TAG_NAME,"_startDecodeLoopInterval()"),this._stopDecodeLoopInterval(),this._loop();var e=Math.ceil(1e3/this._basefps);this._baseFpsInterval=setInterval(()=>{var e=(new Date).getTime(),e=(this.preLoopTimestamp||(this.preLoopTimestamp=e),e-this.preLoopTimestamp);e>2*this._basefps&&this.player.debug.warn(this.TAG_NAME,`hls loop demux diff time is ${e} and more than `+2*this._basefps),this._loop(),this.preLoopTimestamp=(new Date).getTime()},e)}_loop(){let t=null;if(this._allSampleList.length)if(2===(t=this._allSampleList.shift()).type){this._doDecodeVideo(t);let e=this._allSampleList[0];for(;e&&1===e.type;)t=this._allSampleList.shift(),this._doDecodeAudio(t),e=this._allSampleList[0]}else 1===t.type&&(this._doDecodeAudio(t),this._allSampleList.length&&2===this._allSampleList[0].type&&(t=this._allSampleList.shift(),this._doDecodeVideo(t)))}_doDecodeAudio(e){this._doDecodeByHls(e.payload,1,e.dts,!1,0)}_doDecodeVideo(e){var t=new Uint8Array(e.payload),t=(e.isHevc?gr:nr)(t,e.isIFrame),i=(this.player.updateStats({dts:e.dts}),e.pts-e.dts);this._doDecodeByHls(t,2,e.dts,e.isIFrame,i)}_stopDecodeLoopInterval(){this._baseFpsInterval&&(clearInterval(this._baseFpsInterval),this._baseFpsInterval=null)}getBuferredDuration(){let t=0;return this._allSampleList&&this._allSampleList.forEach(e=>{e.duration&&2===e.type&&(t+=e.duration)}),t/90}getSampleListLength(){return this._allSampleList.length}getSampleAudioListLength(){return this._allSampleList.filter(e=>1===e.type).length}getSampleVideoListLength(){return this._allSampleList.filter(e=>2===e.type).length}}class Ba{_initSegmentId="";TAG_NAME="HlsTransmuxer";constructor(e,t,i){this.hls=e,this.player=this.hls.player,this._demuxer=new(t?Ds:Pa)(this.hls.player),this._isMP4=t,i&&console.log("hls needRemux")}destroy(){this._demuxer&&(this._demuxer.destroy(),this._demuxer=null)}transmux(e,t,i,r,s,a){this.player.debug.log(this.TAG_NAME,`transmux videoChunk:${e&&e.byteLength}, audioChunk:${t&&t.byteLength}, discontinuity:${i}, contiguous:${r}, startTime:${s}, needInit:`+a);const n=this._demuxer;try{this._isMP4?n.demux(e,t):n.demuxAndFix(Ia(e,t),i,r,s)}catch(e){throw new M("demux","hls",e)}}}class Ua{_decryptor=new class{constructor(){var e=window.crypto||window.msCrypto;this.subtle=e&&(e.subtle||e.webkitSubtle),this.externalDecryptor=null}decrypt(e,t){if(e||t){const i=[];return e&&(i[0]=this._decryptSegment(e)),t&&(i[1]=this._decryptSegment(t)),Promise.all(i)}}async _decryptSegment(e){let t=e.data;return e.key&&(t=await this._decryptData(e.data,e.key,e.keyIv)),e.map?Ia(e.map,t):t}async _decryptData(e,t,i){if(this.externalDecryptor)return this.externalDecryptor.decrypt(e,t,i);if(!this.subtle)throw new Error("crypto is not defined");t=await this.subtle.importKey("raw",t,{name:"AES-CBC"},!1,["encrypt","decrypt"]);return new Uint8Array(await this.subtle.decrypt({name:"AES-CBC",iv:i},t,e))}};_transmuxer=null;_mse=null;_softVideo=null;_sourceCreated=!1;_needInitSegment=!0;_directAppend=!1;TAG_NAME="HlsBufferService";constructor(e){this.hls=e,this.player=e.player}async destroy(){this._softVideo=null,this._transmuxer&&(this._transmuxer.destroy(),this._transmuxer=null)}get baseDts(){return this._transmuxer?._demuxer?._baseDts}get nbSb(){return 0}async updateDuration(e){this.player.debug.log(this.TAG_NAME,"updateDuration()",e)}getBuferredDuration(){return this._transmuxer?._demuxer?.getBuferredDuration()}getBufferedSegments(){return this._transmuxer?._demuxer?.getSampleListLength()}getBufferedAudioSegments(){return this._transmuxer?._demuxer?.getSampleAudioListLength()}getBufferedVideoSegments(){return this._transmuxer?._demuxer?.getSampleVideoListLength()}createSource(e,t,i,r){this._sourceCreated||(e=e||t)&&(Pa.probe(e)?this._transmuxer||(this._transmuxer=new Ba(this.hls,!1,!this._softVideo)):console.error("createSource error: chunk is not ts"))}async appendBuffer(e,t,i,r,s,a,n){if(i?.length||r?.length)return this._needInitSegment,this._transmuxer.transmux(i,r,s,a,n,this._needInitSegment||s),!0}async clearAllBuffer(){this.player.debug.log(this.TAG_NAME,"clearAllBuffer")}decryptBuffer(e,t){return this._decryptor.decrypt(e,t)}async reset(){this._transmuxer=null,this._needInitSegment=!0,this._directAppend=!1}async endOfStream(){this._softVideo&&this._softVideo.endOfStream()}async setLiveSeekableRange(e,t){}seamlessSwitch(){this._needInitSegment=!0}}class Ma{_seiSet=new Set;constructor(e){(this.emitter=e).on("sei",e=>{e&&this._seiSet.add(e)})}throw(e){if(null!=e&&this._seiSet.size){const t=e-.2,i=e+.2,r=[];this._seiSet.forEach(e=>{e.time>=t&&e.time<=i&&r.push(e)}),r.forEach(e=>{this._seiSet.delete(e),this.emitter.emit("sei-in-time",e)})}}reset(){this._seiSet.clear()}}class Fa{encodeType="";audioCodec="";videoCodec="";domain="";fps=0;bitrate=0;width=0;height=0;samplerate=0;channelCount=0;gop=0;_bitsAccumulateSize=0;_bitsAccumulateDuration=0;constructor(e){this._timescale=e}getStats(){return{encodeType:this.encodeType,audioCodec:this.audioCodec,videoCodec:this.videoCodec,domain:this.domain,fps:this.fps,bitrate:this.bitrate,width:this.width,height:this.height,samplerate:this.samplerate,channelCount:this.channelCount,gop:this.gop}}setEncodeType(e){this.encodeType=e}setFpsFromScriptData(e){e=e.data,e=e?.onMetaData?.framerate;e&&0e+t.duration,0)/e.length,this.fps=Math.round(this._timescale/t)),e.forEach(e=>{1===e.gopId&&this.gop++,this._bitsAccumulateDuration+=e.duration/(this._timescale/1e3),this._bitsAccumulateSize+=e.units.reduce((e,t)=>e+t.length,0),1e3<=this._bitsAccumulateDuration&&(this.bitrate=8*this._bitsAccumulateSize,this._bitsAccumulateDuration=0,this._bitsAccumulateSize=0)})}}class Oa{_core=null;_samples=[];constructor(e){var t=1this._stats.updateBitrate(e.samples)),this._core.on("flv-script-data",e=>{this._stats.setFpsFromScriptData(e)}),this._core.on("metadata-parsed",e=>{"video"===e.type?this._stats.setVideoMeta(e.track):this._stats.setAudioMeta(e.track)}),this._core.on("ttfb",e=>{this._stats.setDomain(e.responseUrl)})}reset(){this._samples=[],this._stats=new Fa(this._timescale)}}class Na extends e{config=null;_manifestLoader=null;_segmentLoader=null;_playlist=null;_bufferService=null;_seiService=null;_stats=null;_prevSegSn=null;_prevSegCc=null;_tickTimer=null;_tickInterval=500;_segmentProcessing=!1;_reloadOnPlay=!1;_switchUrlOpts=null;_disconnectTimer=null;TAG_NAME="Hls256";constructor(e){var t=1{this._tick()},this._tickInterval)}_stopTick(){this._tickTimer&&clearTimeout(this._tickTimer),this._tickTimer=null}_tick(){this._startTick(),this._loadSegment()}get isLive(){return this._playlist.isLive}get streams(){return this._playlist.streams}get currentStream(){return this._playlist.currentStream}get hasSubtitle(){return this._playlist.hasSubtitle}get baseDts(){return this._bufferService?.baseDts}speedInfo(){return this._segmentLoader.speedInfo()}getStats(){return this._stats.getStats()}async loadSource(e){return this.player.debug.log(this.TAG_NAME,"loadSource() "+e),await this._reset(),await this._loadData(e),this._startTick(),!0}async _loadData(e){this.player.debug.log(this.TAG_NAME,"_loadData() "+e);try{e=e&&e.trim()}catch(e){}if(!e)throw this._emitError(new M(la,la,null,null,"m3u8 url is missing"));const t=await this._loadM3U8(e),i=this._playlist["currentStream"];if(this._urlSwitching){0===i.bitrate&&this._switchUrlOpts?.bitrate&&(i.bitrate=this._switchUrlOpts?.bitrate);const e=this._getSeamlessSwitchPoint(),t=(this.config.startTime=e,this._playlist.findSegmentIndexByTime(e)),r=this._playlist.getSegmentByIndex(t+1);if(r){const e=r.start;this.player.debug.warn(this.TAG_NAME,"clear buffer from "+e)}}t&&(this.isLive?(this.player.debug.log(this.TAG_NAME,"is live"),this._bufferService.setLiveSeekableRange(0,4294967295),this.config.targetLatency{var[e,t,i]=e;e?(this._playlist.upsertPlaylist(e,t,i),this.isLive&&this._pollM3U8(r,s,a)):this.player.debug.warn(this.TAG_NAME,"_refreshM3U8() mediaPlaylist is empty")}).catch(e=>{throw this._emitError(M.create(e))})}_pollM3U8(e,t,i){let r=this._playlist.isEmpty;this._manifestLoader.poll(e,t,i,(e,t,i)=>{this._playlist.upsertPlaylist(e,t,i),this._playlist.clearOldSegment(),e&&r&&!this._playlist.isEmpty&&this._loadSegment(),r=r&&this._playlist.isEmpty},e=>{this._emitError(M.create(e))},1e3*(this._playlist.lastSegment?.duration||0))}_loadSegment=async()=>{var e,t;{if(this.player.debug.log(this.TAG_NAME,"_loadSegment()","_segmentProcessing",this._segmentProcessing),!this._segmentProcessing)return e=this._playlist.currentSegment,t=this._playlist.nextSegment,this.player.debug.log(this.TAG_NAME,"_loadSegment()","curSeg",e,"nextSeg",t),t?this._loadSegmentDirect():void this.player.debug.log(this.TAG_NAME,"nextSeg is null and return");this.player.debug.warn("_loadSegment()","_segmentProcessing is ture and return")}};async _loadSegmentDirect(){this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()");var i=this._playlist.nextSegment;if(i){let e=!1,t=null;try{this._segmentProcessing=!0,e=await this._reqAndBufferSegment(i,this._playlist.getAudioSegment(i))}catch(i){t=i}finally{this._segmentProcessing=!1}return t?this._emitError(M.create(t)):(e?(this._urlSwitching&&(this._urlSwitching=!1,this.emit("switch-url-success",{url:this.config.url})),this._playlist.moveSegmentPointer(),this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","seg.isLast",i.isLast),i.isLast?(this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","seg.isLast"),this._end()):(this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect()","and next _loadSegment()"),this._loadSegment())):this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect() not appended"),e)}this.player.debug.log(this.TAG_NAME,"_loadSegmentDirect() !seg")}async _reqAndBufferSegment(e,t){this.player.debug.log(this.TAG_NAME,"video seg",e&&e.url,"audio seg",t&&t.url);var i=(e||t).cc,r=this._prevSegCc!==i;let s=[];try{s=await this._segmentLoader.load(e,t,r)}catch(e){throw e.fatal=!1,this._segmentLoader.error=e}if(s[0]){var a,n,o,l=await this._bufferService.decryptBuffer(...s);if(l)return a=(e||t).sn,n=(e||t).start,o=this._playlist.currentStream,this._bufferService.createSource(l[0],l[1],o?.videoCodec,o?.audioCodec),await this._bufferService.appendBuffer(e,t,l[0],l[1],r,this._prevSegSn===a-1,n),this._prevSegCc=i,this._prevSegSn=a,!0;this.player.debug.log(this.TAG_NAME,"decryptBuffer return null")}}async _clear(){this.player.debug.log(this.TAG_NAME,"_clear()"),clearTimeout(this._disconnectTimer),this._stopTick(),await Promise.all([this._segmentLoader.cancel(),this._manifestLoader.stopPoll()]),this._segmentProcessing=!1}async _reset(){var e=0e()),this.eventsDestroy=[]),this.$videoElement=null,this.player.debug.log(this.TAG_NAME,"destroy"),!0}_bindEvents(){this.hls.on("error",e=>{this.player.emitError(v.hlsError,e)}),this._startBandwidthEstimateInterval()}_startBandwidthEstimateInterval(){this._stopBandwidthEstimateInterval(),this.bandwidthEstimateInterval=setInterval(()=>{var e=this.hls.speedInfo();this.player.emit(b.kBps,(e.avgSpeed/1024).toFixed(2))},1e3)}_stopBandwidthEstimateInterval(){this.bandwidthEstimateInterval&&(clearInterval(this.bandwidthEstimateInterval),this.bandwidthEstimateInterval=null)}initVideoPlay(e){this.$videoElement.muted=!0,this.$videoElement.src=e}async loadSource(e){return this.player.debug.log(this.TAG_NAME,"loadSource() "+e),this.url=e,this.canVideoPlay?this.initVideoPlay(e):await this.hls.loadSource(e),!0}checkHlsBufferedDelay(){let e=0;return e=this.hls?this.hls.getDemuxBuferredDuration():e}getDemuxBufferedListLength(){let e=0;return e=this.hls?this.hls.getDemuxBufferedListLength():e}getDemuxAudioBufferedListLength(){let e=0;return e=this.hls?this.hls.getDemuxAudioBufferedListLength():e}getDemuxVideoBufferedListLength(){let e=0;return e=this.hls?this.hls.getDemuxVideoBufferedListLength():e}}class za extends e{constructor(e){super(),this.player=e,this.rtcPeerConnection=null,this.videoStream=null,this._initRtcPeerConnection(),this.player.debug.log("WebrtcDecoder","init")}destroy(){this.rtcPeerConnection&&(this.rtcPeerConnection.close(),this.rtcPeerConnection=null),this.videoStream=null,this.player.video.$videoElement.srcObject=null,this.player.debug.log("WebrtcDecoder","destroy")}_initRtcPeerConnection(){const t=new RTCPeerConnection,i=this.player;t.addTransceiver("video",{direction:"recvonly"}),t.addTransceiver("audio",{direction:"recvonly"}),t.onsignalingstatechange=e=>{this.player.debug.log("WebrtcDecoder","onsignalingstatechange",e)},t.oniceconnectionstatechange=e=>{this.player.debug.log("WebrtcDecoder","oniceconnectionstatechange",t.iceConnectionState)},t.onicecandidate=e=>{this.player.debug.log("WebrtcDecoder","onicecandidate",e)},t.ontrack=e=>{const t=i.video.$videoElement;"video"===e.track.kind&&(e=e.streams[0],t.srcObject=e,this.videoStream=e)},t.onconnectionstatechange=e=>{switch(i.debug.log("WebrtcDecoder","sdp connect status "+t.connectionState),t.connectionState){case"connected":break;case"disconnected":i.emit(b.webrtcDisconnect);break;case"failed":i.emit(b.webrtcFailed);break;case"closed":i.emit(b.webrtcClosed)}},this.rtcPeerConnection=t}loadSource(s){return new Promise((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then(e=>{r.setLocalDescription(e),this.player.debug.log("WebrtcDecoder","getWebRtcRemoteSdp loadSource"),e=e.sdp,fetch(s,{method:"POST",mode:"cors",cache:"no-cache",credentials:"include",redirect:"follow",referrerPolicy:"no-referrer",headers:{"Content-Type":"application/sdp"},body:e}).then(e=>{e.text().then(e=>{this.player.debug.log("WebrtcDecoder","getWebRtcRemoteSdp response"),r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e})),t()}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource response.text() error",e),i(e)})}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource getWebRtcRemoteSdp response error",e),i(e)})}).catch(e=>{this.player.debug.error("WebrtcDecoder","loadSource rtcPeerConnection.createOffer() error",e),i(e)})})}}class Ga extends e{constructor(e){super(),this.tagName="WebrtcForZLMDecoder",this.player=e,this.rtcPeerConnection=null,this.videoStream=null,this._initRtcPeerConnection(),this.player.debug.log(this.tagName,"init")}destroy(){this.rtcPeerConnection&&(this.rtcPeerConnection.close(),this.rtcPeerConnection=null),this.videoStream&&(this.videoStream.getTracks().forEach(e=>e.stop()),this.videoStream=null),this.videoStream=null,this.player.video.$videoElement.srcObject=null,this.player.debug.log(this.tagName,"destroy")}_initRtcPeerConnection(){const t=new RTCPeerConnection,i=this.player;t.addTransceiver("video",{direction:"recvonly"}),t.addTransceiver("audio",{direction:"recvonly"}),t.onsignalingstatechange=e=>{console.log("onsignalingstatechange",e)},t.oniceconnectionstatechange=e=>{console.log("oniceconnectionstatechange",t.iceConnectionState)},t.onicecandidate=e=>{console.log("onicecandidate",e)},t.ontrack=e=>{const t=i.video.$videoElement;console.log("ontrack",e),"video"===e.track.kind&&(e=e.streams[0],t.srcObject=e,this.videoStream=e)},this.rtcPeerConnection=t}loadSource(s){return new Promise((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then(e=>{r.setLocalDescription(e),this.player.debug.log(this.tagName,"getWebRtcRemoteSdp loadSource"),e=e.sdp,o({url:s,type:"POST",data:e,contentType:"text/plain;charset=utf-8",processData:!1,dataType:"json"}).then(e=>{this.player.debug.log(this.tagName,"getWebRtcRemoteSdp response");e=e.data;if(0!==e.code)return i(e.msg);r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e.sdp})),t()}).catch(e=>{this.player.debug.error(this.tagName,"loadSource getWebRtcRemoteSdp response error",e),i(e)})}).catch(e=>{this.player.debug.error(this.tagName,"loadSource rtcPeerConnection.createOffer() error",e),i(e)})})}}class Ha extends e{constructor(e,t){super(),this.player=e,this.player.$container.classList.add("jessibuca-container-playback"),this._showPrecision=null,this._startTime=null,this._playStartTime=null,this._playingTimestamp=null,this._fps=parseInt(t.fps,10)||e._opt.playbackFps,this._isUseFpsRender=!!f(t.isUseFpsRender),this._rate=1,this._audioTimestamp=0,this._videoTimestamp=0,this._currentLocalTimestamp=0,this._localOneFrameTimestamp=t.localOneFrameTimestamp||40,this._localCalculateTimeInterval=null,this._isUseLocalCalculateTime=!!f(t.isUseLocalCalculateTime),this._isPlaybackPauseClearCache=!g(t.isPlaybackPauseClearCache),this._isCacheBeforeDecodeForFpsRender=!!f(t.isCacheBeforeDecodeForFpsRender),this._startfpsTime=null,this._startFpsTimestamp=null,this._checkStatsInterval=null,this._playbackTs=0,this._renderFps=0,this._isUseLocalCalculateTime?this._startLocalCalculateTime():this._listen(),this.playbackList=[],this._totalDuration=0,this.initPlaybackList(t.playList),this.player.on(b.playbackPause,e=>{e?this.pause():this.resume()}),e.debug.log("Playback","init",{fps:this._fps,isUseFpsRender:this._isUseFpsRender,localOneFrameTimestamp:this._localOneFrameTimestamp,isUseLocalCalculateTime:this._isUseLocalCalculateTime,uiUsePlaybackPause:t.uiUsePlaybackPause,showControl:t.showControl})}destroy(){this._startTime=null,this._showPrecision=null,this._playStartTime=null,this._playingTimestamp=null,this._totalDuration=0,this._audioTimestamp=0,this._videoTimestamp=0,this._fps=null,this._isUseFpsRender=!1,this._rate=1,this.playbackList=[],this._localCalculateTimeInterval=null,this._currentLocalTimestamp=0,this._startfpsTime=null,this._startFpsTimestamp=null,this._renderFps=0,this._playbackTs=0,this._stopLocalCalculateTime(),this.clearStatsInterval(),this.player.$container&&this.player.$container.classList.remove("jessibuca-container-playback"),this.off(),this.player.debug.log("Playback","destroy")}_listen(){this.player.on(b.stats,e=>{e=e.ts,this._playStartTime||(this._playStartTime=e),e-=this._playStartTime;this.setPlayingTimestamp(e)})}pause(){this.clearStatsInterval()}resume(){this.startCheckStatsInterval()}updateStats(){var t=0{var e=this._currentLocalTimestamp,e=(this._playStartTime||(this._playStartTime=e),e-this._playStartTime);this.setPlayingTimestamp(e)},1e3)}startCheckStatsInterval(){this.clearStatsInterval(),this._checkStatsInterval=setInterval(()=>{this.updateStats()},1e3)}_stopLocalCalculateTime(){this._localCalculateTimeInterval&&(clearInterval(this._localCalculateTimeInterval),this._localCalculateTimeInterval=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}increaseLocalTimestamp(){this._isUseLocalCalculateTime&&(this._currentLocalTimestamp+=this._localOneFrameTimestamp)}initPlaybackList(e){this.playbackList=e||[];let i=0;this.playbackList.forEach((e,t)=>{10===Kt(e.start)&&(e.startTimestamp=1e3*e.start,e.startTime=Ct(e.startTimestamp)),10===Kt(e.end)&&(e.endTimestamp=1e3*e.end,e.endTime=Ct(e.endTimestamp)),e.duration=e.end-e.start,i+=e.duration}),this._totalDuration=i,this.player.debug.log("Playback",this.playbackList),0{if(e){this.player.$container.classList.add("jessibuca-zoom-control"),this._bindEvents();const e=this.player.video.$videoElement.style.transform;var i=this.player.video.$videoElement.style.left,r=this.player.video.$videoElement.style.top,i=parseFloat(i),r=parseFloat(r);i&&(this.videoPosition.left=i),r&&(this.videoPosition.top=r);let t=(this.prevVideoElementStyleTransform=e).match(/scale\([0-9., ]*\)/g);if(t&&t[0]){let e=t[0].replace("scale(","").replace(")","");this.prevVideoElementStyleScale=e.split(",")}}else this.player.$container.classList.remove("jessibuca-zoom-control"),this._unbindEvents(),this._resetVideoPosition(),this.player.$container.style.cursor="auto",this.player.video.$videoElement.style.transform=this.prevVideoElementStyleTransform,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null}),t(window,"mouseup",e=>{this.handleMouseUp(e)}),e.debug.log("zoom","init")}destroy(){this.bindEvents=[],this.isDragging=!1,this.currentZoom=1,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null,this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.off(),this.player.debug.log("zoom","destroy")}_bindEvents(){const{proxy:e}=this.player["events"],t=e(this.player.$container,"mousemove",e=>{this.handleMouseMove(e)});this.bindEvents.push(t);var i=e(this.player.$container,"mousedown",e=>{this.handleMouseDown(e)});this.bindEvents.push(i)}_unbindEvents(){this.bindEvents.forEach(e=>{e&&e()})}handleMouseMove(e){var t,i,r;e.stopPropagation(),this.isDragging&&this.player.zooming&&({posX:e,posY:t}=$t(e),i=this.tempPosition.x-e,r=this.tempPosition.y-t,this.videoPosition.left=this.videoPosition.left-i,this.videoPosition.top=this.videoPosition.top-r,this.tempPosition.x=e,this.tempPosition.y=t,this.updateVideoPosition())}handleMouseDown(e){e.stopPropagation();const t=Qt(e);if(this.player.zooming&&(t.matches("video")||t.matches("canvas"))){const{posX:t,posY:i}=$t(e);this.player.$container.style.cursor="grabbing",this.tempPosition.x=t,this.tempPosition.y=i,this.isDragging=!0,this.player.debug.log("zoom","handleMouseDown is dragging true")}}handleMouseUp(e){e.stopPropagation(),this.isDragging&&this.player.zooming&&(this.tempPosition={x:0,y:0},this.isDragging=!1,this.player.$container.style.cursor="grab",this.player.debug.log("zoom","handleMouseUp is dragging false"))}updateVideoPosition(){const e=this.player.video.$videoElement;e.style.left=this.videoPosition.left+"px",e.style.top=this.videoPosition.top+"px"}_resetVideoPosition(){this.player.resize(),this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.currentZoom=1}narrowPrecision(){this.currentZoom<=1||(--this.currentZoom,this.updateVideoElementScale())}expandPrecision(){5<=this.currentZoom||(this.currentZoom+=1,this.updateVideoElementScale())}updateVideoElementScale(){const e=this.player.video.$videoElement;let t=e.style.transform,i=1,r=1;if(this.prevVideoElementStyleScale){const e=this.prevVideoElementStyleScale[0],t=(void 0!==e&&(i=e,r=e),this.prevVideoElementStyleScale[1]);void 0!==t&&(r=t)}r=Rt(r);var s=.5*(i=Rt(i))*(this.currentZoom-1)+i,a=.5*r*(this.currentZoom-1)+r,n=-1===t.indexOf("scale(")?t+` scale(${s},${a})`:t.replace(/scale\([0-9., ]*\)/,`scale(${s},${a})`);this.player.debug.log("zoom",`updateVideoElementScale end is ${s}, ${a} style is `+n),e.style.transform=n}}class Wa extends e{constructor(e){super(),this.player=e,this.faceDetector=null,this.objectDetector=null,this.initFaceDetector(),this.initObjectDetector(),this.player.debug.log("AiLoader","init")}initFaceDetector(){if(this.player._opt.useFaceDetector&&window.JessibucaProFaceDetector){const e=new JessibucaProFaceDetector({detectWidth:this.player._opt.aiFaceDetectWidth});e.load().then(()=>{this.player.debug.log("AiLoader","init face detector success"),this.faceDetector=e})}}initObjectDetector(){if(this.player._opt.useObjectDetector&&window.JessibucaProObjectDetector){const e=new JessibucaProObjectDetector({detectWidth:this.player._opt.aiObjectDetectWidth});e.load().then(()=>{this.player.debug.log("AiLoader","init object detector success"),this.objectDetector=e,this.objectDetector.on("jessibuca-pro-object-detector-info",e=>{e&&0{this.addMenuItem(e)}),e(this.player.$container,"contextmenu",e=>{e.preventDefault(),this.show();var t=e.clientX,e=e.clientY,{height:i,width:r,left:s,top:a}=this.player.$container.getBoundingClientRect(),{height:n,width:o}=this.$contextmenus.getBoundingClientRect();let l=t-s,d=e-a;s+r{js(e,this.$contextmenus)||this.hide()}),this.player.on(b.blur,()=>{this.hide()})}_validateMenuItem(e){let t=!0;return e.content||(this.player.debug.warn(this.LOG_NAME,"content is required"),t=!1),t}addMenuItem(){let t=0 + ${t.content} + + `,a=Array.from(this.$contextmenus.children)[t.index];a?a.insertAdjacentHTML("beforebegin",s):Ns(this.$contextmenus,s);e=this.$contextmenus.querySelector(".jessibuca-contextmenu-"+r);t.click&&i(e,"click",e=>{e.preventDefault(),t.click.call(this.player,this,e),this.hide()}),this.menuList.push({uuid:r,$menuItem:e})}}}class Ya extends e{_opt={};constructor(e){let t=1false"),this._opt.forceNoOffscreen||this.debug.warn("Player","useMSE is true and forceNoOffscreen is false then forceNoOffscreen set false->true"),this._opt.useWCS=!1,this._opt.forceNoOffscreen=!0):this._opt.useWCS,!this._opt.useSIMD&&-1===this._opt.decoder.indexOf("-simd")||(this._opt.useSIMD=WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]))&&g(/iphone/i.test(navigator.userAgent)),this._opt.useSIMD||this.debug.warn("Player","useSIMD is true, but not support so set useSIMD false")),this._opt.useSIMD?-1===this._opt.decoder.indexOf("-simd")&&(this._opt.decoder=this._opt.decoder.replace("decoder-pro","decoder-pro-simd")):-1!==this._opt.decoder.indexOf("-simd")&&(this._opt.decoder=this._opt.decoder.replace("decoder-pro-simd","decoder-pro")),-1!==this._opt.decoder.indexOf("-simd")?this._opt.decoderAudio=this._opt.decoder.replace("decoder-pro-simd","decoder-pro-audio"):this._opt.decoderAudio=this._opt.decoder.replace("decoder-pro","decoder-pro-audio"),g(this._opt.hasAudio)&&(this._opt.operateBtns.audio=!1),g(this._opt.hasVideo)&&(this._opt.operateBtns.fullscreen=!1,this._opt.operateBtns.screenshot=!1,this._opt.operateBtns.record=!1,this._opt.operateBtns.ptz=!1,this._opt.operateBtns.quality=!1,this._opt.operateBtns.zoom=!1),this._opt.qualityConfig&&0===this._opt.qualityConfig.length&&this._opt.operateBtns.quality&&(this._opt.operateBtns.quality=!1,this.debug.warn("Player","_opt.qualityConfig is empty, so set operateBtns.quality false")),f(this._opt.useWebGPU)&&(this._opt.useWebGPU=function(){let e=!1;return e="gpu"in navigator?!0:e}(),g(this._opt.useWebGPU)&&this.debug.warn("Player","useWebGPU is true, but not support so set useWebGPU false")),this._opt.hasControl=this._hasControl(),this._loading=!1,this._playing=!1,this._playbackPause=!1,this._hasLoaded=!1,this._zooming=!1,this._destroyed=!1,this._checkHeartTimeout=null,this._checkLoadingTimeout=null,this._checkStatsInterval=null,this._checkVisibleHiddenTimeout=null,this._startBpsTime=null,this._isPlayingBeforePageHidden=!1,this._stats={buf:0,netBuf:0,fps:0,maxFps:0,dfps:0,abps:0,vbps:0,ts:0,mseTs:0,pTs:0,dts:0},this._allStatsData={},this._faceDetectActive=!1,this._objectDetectActive=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this._videoTimestamp=0,this._audioTimestamp=0,this._videoIframeIntervalTs=0,this._streamQuality=this._opt.defaultStreamQuality||"",this._visibility=!0,this._lastestVisibilityChangeTimestamp=null,this._tempWorkerStats=null,this._historyFpsList=[],this._tempStreamList=[],this._isPlayback()&&(this._opt.useMSE=!1,this._opt.useWCS=!1),g(this._opt.useMSE)&&g(this._opt.useWCS)&&g(this._opt.isWebrtc)&&!this.isOldHls()&&(this._opt.useWasm=!0),(this.isOldHls()||this._opt.isWebrtc)&&(this._opt.hasVideo=!0,this._opt.hasAudio=!0),this._opt.hasVideo||(this._opt.useMSE=!1,this._opt.useWCS=!1),this._opt.useWasm&&(this._opt.useOffscreen?this._opt.wasmUseVideoRender=!1:this._opt.wasmUseVideoRender&&(this._opt.wasmUseVideoRender=Dt()&&Mt()&&Ft(),this._opt.wasmUseVideoRender||this.debug.warn("Player","use wasm video render, but not support so set wasmUseVideoRender false")),this._opt.useSIMD?this.debug.log("Player","use simd wasm"):this.debug.log("Player","use wasm")),this._opt.useWasm&&(this._opt.useFaceDetector&&window.JessibucaProFaceDetector||this._opt.useObjectDetector&&window.JessibucaProObjectDetector)?(this.ai=new Wa(this),this._opt.useFaceDetector&&window.JessibucaProFaceDetector||(this._opt.operateBtns.aiFace=!1),this._opt.useObjectDetector&&window.JessibucaProObjectDetector||(this._opt.operateBtns.aiObject=!1)):(this._opt.operateBtns.aiObject=!1,this._opt.operateBtns.aiFace=!1),!this._opt.useFaceDetector||this._opt.useWasm&&window.JessibucaProFaceDetector||this.debug.warn("Player",`use face detector, useWasm is ${this._opt.useWasm} and window.JessibucaProFaceDetector is `+!!window.JessibucaProFaceDetector),!this._opt.useObjectDetector||this._opt.useWasm&&window.JessibucaProObjectDetector||this.debug.warn("Player",`use object detector, useWasm is ${this._opt.useWasm} and window.JessibucaProObjectDetector is `+!!window.JessibucaProObjectDetector),this._opt.useVideoRender&&(this._opt.useWasm&&!this._opt.useOffscreen?(this._opt.wasmUseVideoRender=Dt()&&Mt()&&Ft(),this._opt.wasmUseVideoRender||this.debug.warn("Player","use wasm video render, but not support so set wasmUseVideoRender false")):this._opt.useWCS&&!this._opt.useOffscreen&&(this._opt.wcsUseVideoRender=Mt()&&Ft(),this._opt.wcsUseVideoRender||this.debug.warn("Player","use wcs video render, but not support so set wcsUseVideoRender false"))),this._opt.useCanvasRender&&(this._opt.useMSE&&(this._opt.mseUseCanvasRender=!0),this._opt.useWasm&&(this._opt.wasmUseVideoRender=!1),this._opt.useWCS&&(this._opt.wcsUseVideoRender=!1),this.isOldHls()&&!xt()&&(this._opt.hlsUseCanvasRender=!0)),this._opt.useVideoRender=!1,this._opt.useCanvasRender=!1,this._opt.useWasm?this._opt.wasmUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useWCS?this._opt.wcsUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useMSE?this._opt.mseUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this.isOldHls()?this._opt.hlsUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this._opt.isWebrtc&&(this._opt.useVideoRender=!0),i=this,Object.defineProperty(i,"rect",{get:()=>{const e=i.$container.getBoundingClientRect();return e.width=Math.max(e.width,i.$container.clientWidth),e.height=Math.max(e.height,i.$container.clientHeight),e}}),["bottom","height","left","right","top","width"].forEach(e=>{Object.defineProperty(i,e,{get:()=>i.rect[e]})}),this.events=new hi(this),this._opt.hasVideo&&(this.video=new Ri(this),this.recorder=new Sr(this)),this.isOldHls()?(this.hlsDecoder=new Ws(this),this.loaded=!0):this._opt.isWebrtc?(this._opt.isWebrtcForZLM?this.webrtc=new Ga(this):this.webrtc=new za(this),this.loaded=!0):(this.isUseHls265()&&(this.hlsDecoder=new ja(this)),Zt(this._opt)?this.loaded=!0:this.decoderWorker=new Er(this)),this._opt.hasAudio&&(this.audio=new Yi(this)),this.stream=null,this.demux=null,this._lastVolume=null,this._isInZoom=!1,this._playingStartTimestamp=null,this._opt.useWCS&&(this.webcodecsDecoder=new Is(this),this._opt.hasAudio||(this.loaded=!0)),this._opt.useMSE&&(this.mseDecoder=new Gs(this),this._opt.hasAudio||(this.loaded=!0)),this.control=new zs(this),0{Qt(e)===r.$container&&(r.emit(de.fullscreen,r.fullscreen),r.fullscreen&&!r._opt.useMSE||r.resize())};ct.on("change",a),r.events.destroys.push(()=>{ct.off("change",a)})}catch(r){}if(r.on(b.decoderWorkerInit,()=>{r.debug.log("player","listen decoderWorkerInit and set loaded true"),r.loaded=!0}),r.on(b.play,()=>{r.loading=!1}),r.on(b.fullscreen,e=>{if(e)try{ct.request(r.$container).then(()=>{}).catch(e=>{r.debug.error("player","fullscreen request error",e),m()&&r._opt.useWebFullScreen&&(r.webFullscreen=!0)})}catch(e){m()&&r._opt.useWebFullScreen&&(r.webFullscreen=!0)}else try{ct.exit().then(()=>{r.webFullscreen&&(r.webFullscreen=!1)}).catch(e=>{r.debug.error("player","fullscreen exit error",e),r.webFullscreen&&(r.webFullscreen=!1)})}catch(e){r.webFullscreen&&(r.webFullscreen=!1)}}),m()&&r.on(b.webFullscreen,e=>{e?r.$container.classList.add("jessibuca-fullscreen-web"):r.$container.classList.remove("jessibuca-fullscreen-web"),r.emit(de.fullscreen,r.fullscreen)}),r.on(b.resize,()=>{r.video&&r.video.resize()}),r._opt.debug){const n=[b.timeUpdate];Object.keys(b).forEach(t=>{r.on(b[t],e=>{n.includes(t)||r.debug.log("player events",b[t],e)})}),Object.keys(v).forEach(t=>{r.on(v[t],e=>{r.debug.warn("player event error",v[t],e)})})}{var s=this;const{_opt:o,debug:l,events:{proxy:d}}=s;if(o.supportDblclickFullscreen&&d(s.$container,"dblclick",e=>{e=Qt(e).nodeName.toLowerCase();"canvas"!==e&&"video"!==e||(s.fullscreen=!s.fullscreen)}),d(document,"visibilitychange",()=>{s.visibility="visible"===document.visibilityState,l.log("visibilitychange",document.visibilityState),o.hiddenAutoPause&&(l.log("visibilitychange","hiddenAutoPause is true ",document.visibilityState,s._isPlayingBeforePageHidden),"visible"===document.visibilityState?s._isPlayingBeforePageHidden&&s.play():(s._isPlayingBeforePageHidden=s.playing,s.playing&&s.pause()))}),d(document,["click","contextmenu"],e=>{js(e,s.$container)?(s.isInput="INPUT"===e.target.tagName,s.isFocus=!0,s.emit(b.focus)):(s.isInput=!1,s.isFocus=!1,s.emit(b.blur))}),o.autoResize){const o=It(()=>{s.resize()},500);d(window,["resize","orientationchange"],()=>{o()}),screen&&screen.orientation&&screen.orientation.onchange&&d(screen.orientation,"change",()=>{o()})}}this.singleWatermark=new xi(this),this._opt.watermarkConfig&&this.updateWatermark(this._opt.watermarkConfig),this._opt.useWCS&&this.debug.log("Player","use WCS"),this._opt.useMSE&&this.debug.log("Player","use MSE"),this._opt.useOffscreen&&this.debug.log("Player","use offscreen"),this._opt.isHls&&(this._opt.supportHls265?this.debug.log("Player","use hls 265"):this.debug.log("Player","use hls")),this._opt.isWebrtc&&this.debug.log("Player","use webrtc"),this._opt.isFmp4&&this.debug.log("Player","use fmp4"),this._opt.isMpeg4&&this.debug.log("Player","use mpeg4"),this._isPlayback()&&this.debug.log("Player","use playback"),this._opt.hasVideo&&(0===this.width&&this.debug.warn("Player","container width is 0, please check the container width"),0===this.height&&this.debug.warn("Player","container height is 0, please check the container height")),this.debug.log("Player options",JSON.stringify(this._opt))}async destroy(){this._destroyed=!0,this.emit("destroy"),this.off(),this.events&&(this.events.destroy(),this.events=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.clearVisibilityHiddenTimeout(),this.decoderWorker&&(await this.decoderWorker.destroy(),this.decoderWorker=null),await this._destroy()}async _destroy(){this._loading=!1,this._playing=!1,this._playbackPause=!1,this._hasLoaded=!1,this._lastVolume=null,this._zooming=!1,this._faceDetectActive=!1,this._objectDetectActive=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this.singleWatermark&&(this.singleWatermark.destroy(),this.singleWatermark=null),this.stream&&(this.stream.destroy(),this.stream=null),this.hlsDecoder&&(await this.hlsDecoder.destroy(),this.hlsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.video&&(this.video.destroy(),this.video=null),this.audio&&(this.audio.destroy(),this.audio=null),this.recorder&&(this.recorder.destroy(),this.recorder=null),this.control&&(this.control.destroy(),this.control=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.demux&&(this.demux.destroy(),this.demux=null),this.playback&&(this.playback.destroy(),this.playback=null),this.zoom&&(this.zoom.destroy(),this.zoom=null),this.ai&&(this.ai.destroy(),this.ai=null),this.keepScreenOn&&(this.releaseWakeLock(),this.keepScreenOn.destroy(),this.keepScreenOn=null),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._streamQuality="",this._visibility=!0,this._isInZoom=!1,this._playingStartTimestamp=null,this._lastestVisibilityChangeTimestamp=null,this._videoIframeIntervalTs=null,this._tempWorkerStats=null,this._tempStreamList=[],this.debug.log("play","destroy end"),this._opt=oi(),this.$container=null}set fullscreen(e){m()&&this._opt.useWebFullScreen?(this.emit(b.webFullscreen,e),setTimeout(()=>{this.updateOption({rotate:e?270:0}),this.resize()},10)):this.emit(b.fullscreen,e)}get fullscreen(){return ct.isFullscreen||this.webFullscreen}set webFullscreen(e){this.emit(b.webFullscreen,e)}get webFullscreen(){return this.$container.classList.contains("jessibuca-fullscreen-web")}set loaded(e){this._hasLoaded=e}get loaded(){return this._hasLoaded||this.isOldHls()||this._opt.isWebrtc||this._opt.useMSE&&!this._opt.hasAudio||this._opt.useWCS&&!this._opt.hasAudio}set playing(e){e&&(this.loading=!1),this.playing!==e&&(this._playing=e,this.emit(b.playing,e),this.emit(b.volumechange,this.volume),e?this.emit(b.play):this.emit(b.pause))}get playing(){return this._playing}get volume(){return this.audio&&this.audio.volume||0}set volume(e){e!==this.volume&&(this.audio?(this.audio.setVolume(e),this._lastVolume=this.volume):this.debug.warn("Player","set volume error, audio is null"))}get lastVolume(){return this._lastVolume}set loading(e){this.loading!==e&&(this._loading=e,this.emit(b.loading,this._loading))}get loading(){return this._loading}set zooming(e){this.zooming!==e&&(this.zoom||(this.zoom=new Va(this)),this._zooming=e,this.emit(b.zooming,this.zooming))}get zooming(){return this._zooming}set recording(e){e?this.playing&&!this.recording&&(this.recorder&&this.recorder.startRecord(),this._opt.useWasm&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!0})):this.recording&&(this._opt.useWasm&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!1}),this.recorder&&this.recorder.stopRecordAndSave().then(()=>{}).catch(e=>{}))}get recording(){return!!this.recorder&&this.recorder.isRecording}set audioTimestamp(e){null!==e&&(this._audioTimestamp=e)}get audioTimestamp(){return this._audioTimestamp}set videoTimestamp(e){null!==e&&(this._videoTimestamp=e,this._opt.useWCS||this._opt.useMSE||this.audioTimestamp&&this.videoTimestamp&&this.audio&&this.audio.emit(b.videoSyncAudio,{audioTimestamp:this.audioTimestamp,videoTimestamp:this.videoTimestamp,diff:this.audioTimestamp-this.videoTimestamp}))}set streamQuality(e){this.streamQuality!==e&&(this._streamQuality=e,this.emit(b.streamQualityChange,e))}get streamQuality(){return this._streamQuality}get videoTimestamp(){return this._videoTimestamp}get isDebug(){return f(this._opt.debug)}get scaleType(){var e=this._opt,t=e.isResize,e=e.isFullResize;let i=0;return g(e)&&g(t)?i=0:g(e)&&f(t)?i=1:f(e)&&f(t)&&(i=2),i}set visibility(e){this._visibility!==e&&(this._visibility=e,this.emit(b.visibilityChange,e),this._lastestVisibilityChangeTimestamp=p(),e?this.clearVisibilityHiddenTimeout():this.startVisibilityHiddenTimeout())}get visibility(){return this._visibility}set playbackPause(e){this._playbackPause!==e&&(this._playbackPause=e,this.emit(b.playbackPause,e),this.emit(b.playbackPauseOrResume,e))}get playbackPause(){return this._playbackPause}set videoIframeIntervalTs(e){this._videoIframeIntervalTs=e}get videoIframeIntervalTs(){return this._videoIframeIntervalTs}set faceDetectActive(e){this._faceDetectActive!==e&&(this._faceDetectActive=e,this.emit(b.faceDetectActive,e))}get faceDetectActive(){return this._faceDetectActive}set objectDetectActive(e){this._objectDetectActive!==e&&(this._objectDetectActive=e,this.emit(b.objectDetectActive,e))}get objectDetectActive(){return this._objectDetectActive}get isUseWorkerDemuxAndDecode(){return this.stream&&this.stream.getStreamType()===O}isDestroyed(){return this._destroyed}updateOption(e){this._opt=Object.assign({},this._opt,e)}init(){return new Promise((e,t)=>{this.video||this._opt.hasVideo&&(this.video=new Ri(this)),this.audio||this._opt.hasAudio&&(this.audio=new Yi(this)),this.stream||(this.stream=new er(this)),this.isOldHls()?(this.hlsDecoder||(this.hlsDecoder=new Ws(this),this.loaded=!0),e()):this._opt.isWebrtc?(this.webrtc||(this._opt.isWebrtcForZLM?this.webrtc=new Ga(this):this.webrtc=new za(this),this.loaded=!0),e()):(this.demux||this._opt.hasVideo&&!this.isUseWorkerDemuxAndDecode&&(this.demux=new Ls(this)),this._opt.useWCS&&!this.webcodecsDecoder&&(this.webcodecsDecoder=new Is(this)),this._opt.useMSE&&!this.mseDecoder&&(this.mseDecoder=new Gs(this)),this.isUseHls265()&&!this.hlsDecoder&&(this.hlsDecoder=new ja(this)),this.decoderWorker?this.loaded?e():this.once(b.decoderWorkerInit,()=>{this.loaded=!0,e()}):Zt(this._opt)?e():(this.decoderWorker=new Er(this),this.once(b.decoderWorkerInit,()=>{this.loaded=!0,e()})))})}play(e,r){return new Promise((t,i)=>{if(!e&&!this._opt.url)return i("url is empty");this.loading=!0,this.playing=!1,this._times.playInitStart=p(),e=e||this._opt.url,this._opt.url=e,this.clearCheckHeartTimeout(),this.init().then(()=>{this._times.playStart=p(),this._opt.isNotMute&&this.mute(!1),this.webcodecsDecoder&&this.webcodecsDecoder.once(v.webcodecsH265NotSupport,()=>{this.emitError(v.webcodecsH265NotSupport)}),this.mseDecoder&&(this.mseDecoder.once(v.mediaSourceH265NotSupport,()=>{this.emitError(v.mediaSourceH265NotSupport)}),this.mseDecoder.once(v.mediaSourceFull,()=>{this.emitError(v.mediaSourceFull)}),this.mseDecoder.once(v.mediaSourceAppendBufferError,()=>{this.emitError(v.mediaSourceAppendBufferError)}),this.mseDecoder.once(v.mediaSourceBufferListLarge,()=>{this.emitError(v.mediaSourceBufferListLarge)}),this.mseDecoder.once(v.mediaSourceAppendBufferEndTimeout,()=>{this.emitError(v.mediaSourceAppendBufferEndTimeout)}),this.mseDecoder.once(v.mediaSourceDecoderConfigurationError,()=>{this.emitError(v.mediaSourceDecoderConfigurationError)}),this.mseDecoder.once(v.mediaSourceTsIsMaxDiff,()=>{this.emitError(v.mediaSourceTsIsMaxDiff)})),this.enableWakeLock(),this.checkLoadingTimeout(),this.stream?(this.stream.once(v.fetchError,e=>{this.emitError(v.fetchError,e)}),this.stream.once(v.websocketError,e=>{this.emitError(v.websocketError,e)}),this.stream.once(b.streamEnd,()=>{this.emit(b.streamEnd)}),this.stream.once(v.hlsError,e=>{this.emitError(v.hlsError,e)}),this.stream.once(v.webrtcError,e=>{this.emitError(v.webrtcError,e)}),this.stream.once(b.streamSuccess,()=>{t(),this._times.streamResponse=p(),this.video&&this.video.play(),this.checkStatsInterval(),this.isPlayback()&&this.playback&&this.playback.startCheckStatsInterval();var e=Number("1")||1;setTimeout(()=>{this.destroy(),console.error("jessibuca pro 体验结束,请刷新页面再次体验"),alert("jessibuca pro 体验结束,请刷新页面再次体验,如需要购买商业授权,可以联系微信:bosswancheng"),window.location.reload()},60*e*60*1e3)}),this.stream.fetchStream(e,r)):this.debug.warn("player","play() this.stream is null")}).catch(e=>{i(e)})})}close(){return new Promise((e,t)=>{this._close().then(()=>{this.video&&this.video.clearView(),e()}).catch(e=>{t(e)})})}resumeAudioAfterPause(){this.lastVolume&&(this.volume=this.lastVolume)}_close(){return new Promise((e,t)=>{const i=()=>{this.stream&&(this.stream.destroy(),this.stream=null),this.demux&&(this.demux.destroy(),this.demux=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.hlsDecoder&&(this.hlsDecoder.destroy(),this.hlsDecoder=null),this.webrtc&&(this.webrtc.destroy(),this.webrtc=null),this.audio&&(this.audio.destroy(),this.audio=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.isPlayback()&&this.playback&&this.playback.clearStatsInterval(),this.loading=!1,this.recording=!1,this.zooming=!1,this.playing=!1,this.video&&(this.video.resetInit(),this.video.pause(!0)),this.releaseWakeLock(),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""}};this.decoderWorker?this.decoderWorker.destroy().then(()=>{this.decoderWorker=null,i(),setTimeout(()=>{e()},0)}).catch(e=>{this.debug&&this.debug.error("player","close() decoderWorker.destroy() error",e),t()}):(i(),setTimeout(()=>{e()},0))})}pause(){let i=0{i?this.close().then(()=>{e()}).catch(e=>{t(e)}):this._close().then(()=>{e()}).catch(e=>{t(e)})})}isAudioMute(){let e=!0;return e=this.audio?this.audio.isMute:e}isAudioNotMute(){return!this.isAudioMute()}mute(e){this.audio&&this.audio.mute(e)}resize(){this.video&&this.video.resize()}startRecord(e,t){this.recording||(this.recorder.setFileName(e,t),this.recording=!0)}stopRecordAndSave(e,r){return new Promise((t,i)=>{this.recorder||i("recorder is null"),this.recording?(this._opt.useWasm&&this.decoderWorker.updateWorkConfig({key:"isRecording",value:!0}),this.recorder.stopRecordAndSave(e,r).then(e=>{t(e)}).catch(e=>{i(e)})):i("recorder is not recording")})}_hasControl(){let e=!1,t=!1;return Object.keys(this._opt.operateBtns).forEach(e=>{this._opt.operateBtns[e]&&-1===(""+e).indexOf("Fn")&&(t=!0)}),(this._opt.showBandwidth||t)&&(e=!0),e=this._isPlayback()&&this._opt.playbackConfig.showControl?!0:e}_isPlayback(){return this._opt.playType===A}useWasmDecode(){return g(this._opt.useMSE)&&g(this._opt.useWCS)}canVideoTrackWritter(){var e=this._opt;return!this.isOldHls()&&g(e.isWebrtc)&&g(e.useMSE)&&(e.useWCS&&g(e.useOffscreen)&&e.wcsUseVideoRender||this.useWasmDecode())}checkHeart(){this.clearCheckHeartTimeout(),this.checkHeartTimeout()}checkHeartTimeout(){this._checkHeartTimeout=setTimeout(()=>{g(this.playbackPause)&&this.playing?this.isDestroyed()?this.debug&&this.debug.warn("player","checkHeartTimeout but player is destroyed"):0!==this._stats.fps?this.debug&&this.debug.warn("player","checkHeartTimeout but fps is "+this._stats.fps):g(this.visibility)&&0!==this._stats.vbps?this.debug&&this.debug.warn("player","checkHeartTimeout but page is not visibility and vbps is "+this._stats.vbps):(this.debug.warn("player",`checkHeartTimeout and + pause and emit delayTimeout event and + current vbps is ${this._stats.vbps} and + current fps is ${this._stats.fps} and + current visibility is ${this.visibility} and`),this.emit(b.timeout,b.delayTimeout),this.emit(b.delayTimeout)):this.debug.warn("player",`playbackPause is ${this.playbackPause}, playing is `+this.playing)},1e3*this._opt.heartTimeout)}checkHeartTimeout$2(){var e;g(this.playbackPause)&&this.playing?this.isDestroyed()?this.debug&&this.debug.warn("player","checkHeartTimeout$2 but player is destroyed"):g(this.isHistoryFpsListAllZero())?this.debug&&this.debug.warn("player","checkHeartTimeout$2 but fps is not all zero"):0!==this._stats.fps?this.debug&&this.debug.warn("player","checkHeartTimeout$2 but fps is "+this._stats.fps):g(this.visibility)&&0!==this._stats.vbps?this.debug&&this.debug.warn("player","checkHeartTimeout$2 but page is not visibility and vbps is "+this._stats.vbps):(e=this._historyFpsList.join(","),this.debug.warn("player",`checkHeartTimeout$2 and + pause and emit delayTimeout event and + current vbps is ${this._stats.vbps} and + current fps is ${this._stats.fps} and + history FpsList is ${e} and + current visibility is ${this.visibility} and`),this.emit(b.timeout,b.delayTimeout),this.emit(b.delayTimeout)):this.debug.log("player",`checkHeartTimeout$2 playbackPause is ${this.playbackPause}, playing is `+this.playing)}checkStatsInterval(){this._checkStatsInterval=setInterval(()=>{this.updateStats()},1e3)}clearCheckHeartTimeout(){this._checkHeartTimeout&&(clearTimeout(this._checkHeartTimeout),this._checkHeartTimeout=null)}checkLoadingTimeout(){this._checkLoadingTimeout=setTimeout(()=>{this.playing?this.debug.warn("player",`checkLoadingTimeout but loading is ${this.loading} and playing is `+this.playing):this.isDestroyed()?this.debug&&this.debug.warn("player","checkLoadingTimeout but player is destroyed"):(this.debug.warn("player","checkLoadingTimeout and pause and emit loadingTimeout event"),this.emit(b.timeout,b.loadingTimeout),this.emit(b.loadingTimeout))},1e3*this._opt.loadingTimeout)}clearCheckLoadingTimeout(){this._checkLoadingTimeout&&(this.debug.log("player","clearCheckLoadingTimeout"),clearTimeout(this._checkLoadingTimeout),this._checkLoadingTimeout=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}handleRender(){this.isDestroyed()?this.debug&&this.debug.warn("player","handleRender but player is destroyed"):(this.loading&&(this.clearCheckLoadingTimeout(),this.emit(b.start),this.loading=!1),this.playing||(this.playing=!0))}updateStats(){var g=0this._stats.maxFps&&(this._stats.maxFps=this._stats.fps),this._allStatsData=Object.assign(this._stats,{audioBuffer:u,audioBufferDelayTs:p,audioTs:this.audioTimestamp,playbackVideoBuffer:f,playbackVideoWaitingBuffer:0,playbackAudioWaitingBuffer:0,playbackCacheDataDuration:m,demuxBuffer:o,pushLatestDelay:c,audioDemuxBuffer:l,flvBuffer:n,mseDelay:e,mseDecodeDiffTimes:t,mseDecodePlaybackRate:i,wcsDecodeDiffTimes:t,hlsDelay:e,hlsDemuxLength:r,hlsDemuxAudioLength:s,hlsDemuxVideoLength:a,hlsDecodePlaybackRate:i,delayTs:g,totalDelayTs:A,isDropping:d,isStreamTsMoreThanLocal:h}),this.emit(b.stats,this._allStatsData),1048576{this.emit(b.visibilityHiddenTimeout)},1e3*this._opt.pageVisibilityHiddenTimeout))}clearVisibilityHiddenTimeout(){this._checkVisibleHiddenTimeout&&(clearTimeout(this._checkVisibleHiddenTimeout),this._checkVisibleHiddenTimeout=null)}faceDetect(e){this.faceDetectActive=e}objectDetect(e){this.objectDetectActive=e}downloadNakedFlowFile(){this.demux&&this.demux.downloadNakedFlowFile&&this.demux.downloadNakedFlowFile()}downloadFmp4File(){this.demux&&this.demux.downloadFmp4File&&this.demux.downloadFmp4File()}downloadMpeg4File(){var e=new Blob([this._tempStreamList]);try{const t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".mpeg4",t.click()}catch(e){console.error("downloadMpeg4File",e)}}hasCacheOnGopBuffer(){var e=this.videoIframeIntervalTs,t=this._allStatsData.demuxBuffer,i=this._allStatsData.maxFps;let r=e&&t&&i?e<1e3/i*t:!1;return r}addContentToCanvas(){this.video&&this.video.addContentToCanvas(0this._opt.heartTimeout&&this._historyFpsList.shift(),this._historyFpsList.push(e),this.isHistoryFpsListAllZero()&&this.checkHeartTimeout$2()}isHistoryFpsListAllZero(){let t=!0;if(t=this._historyFpsList.lengthe,this.ratioWeight=1):(this.fromSampleRate{let t,i,r,s,a,n,o,l,d,h=e.length,c=this.channels;if(h%c!=0)throw new Error("Buffer was of incorrect sample length.");if(h<=0)return[];for(t=this.outputBufferSize,i=this.ratioWeight,r=this.lastWeight,s=0,a=0,n=0,o=0,l=this.outputBuffer;r<1;r+=i)for(a=r%1,s=1-a,this.lastWeight=r%1,d=0;d{let t,i,r,s,a,n,o,l,d,h,c,u=e.length,p=this.channels;if(u%p!=0)throw new Error("Buffer was of incorrect sample length.");if(u<=0)return[];for(t=this.outputBufferSize,i=[],r=this.ratioWeight,s=0,n=0,l=!this.tailExists,this.tailExists=!1,d=this.outputBuffer,h=0,c=0,a=0;a=o)){for(a=0;a{e.stop()}),this.userMediaStream=null),this.mediaStreamSource&&(this.mediaStreamSource.disconnect(),this.mediaStreamSource=null),this.recorder&&(this.recorder.disconnect(),this.recorder.onaudioprocess=null),this.biquadFilter&&(this.biquadFilter.disconnect(),this.biquadFilter=null),this.gainNode&&(this.gainNode.disconnect(),this.gainNode=null),this.workletRecorder&&(this.workletRecorder.disconnect(),this.workletRecorder=null),this.socket&&(this.socketStatus===ue&&this._sendClose(),this.socket.close(),this.socket=null),this._stopHeartInterval(),this._stopCheckGetUserMediaTimeout(),this.audioContext=null,this.gainNode=null,this.recorder=null,this.audioBufferList=[],this.sequenceId=0,this.wsUrl=null,this.tempTimestamp=null,this.tempRtpBufferList=[],this.startTimestamp=0,this.log("talk","destroy")}addRtpToBuffer(e){const t=e.length+this.tempRtpBufferList.length,i=new Uint8Array(t);i.set(this.tempRtpBufferList,0),i.set(e,this.tempRtpBufferList.length),this.tempRtpBufferList=i}downloadRtpFile(){var e=new Blob([this.tempRtpBufferList]);try{const t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.download=Date.now()+".rtp",t.click()}catch(e){console.error("downloadRtpFile",e)}}calcAudioBufferLength(){var e=this._opt["sampleRate"];return 8*e*.02/8}get socketStatusOpen(){return this.socketStatus===ue}log(){for(var e=arguments.length,t=new Array(e),i=0;i{const i=this.events.proxy;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer",this.emit(b.talkStreamStart),i(this.socket,"open",()=>{this.socketStatus=ue,this.log(this.tag,"websocket open -> do talk"),this.emit(b.talkStreamOpen),e(),this._doTalk()}),i(this.socket,"message",e=>{this.log(this.tag,"websocket message",e.data)}),i(this.socket,"close",e=>{this.socketStatus="close",this.log(this.tag,"websocket close"),this.emit(b.talkStreamClose),t(e)}),i(this.socket,"error",e=>{this.socketStatus="error",this.error(this.tag,"websocket error",e),this.emit(b.talkStreamError,e),t(e)})})}_sendClose(){}_initTalk(){this._initMethods(),this._opt.engine===et?this._initWorklet():"script"===this._opt.engine&&this._initScriptProcessor(),this.log(this.tag,"audioContext samplerate",this.audioContext.sampleRate)}_initMethods(){this.audioContext=new(window.AudioContext||window.webkitAudioContext)({sampleRate:48e3}),this.gainNode=this.audioContext.createGain(),this.gainNode.gain.value=1,this.biquadFilter=this.audioContext.createBiquadFilter(),this.biquadFilter.type="lowpass",this.biquadFilter.frequency.value=3e3,this.resampler=new qa({fromSampleRate:this.audioContext.sampleRate,toSampleRate:this._opt.sampleRate,channels:this._opt.numberChannels,inputBufferSize:this.bufferSize})}_initScriptProcessor(){const e=this.audioContext.createScriptProcessor||this.audioContext.createJavaScriptNode;this.recorder=e.apply(this.audioContext,[this.bufferSize,this._opt.numberChannels,this._opt.numberChannels]),this.recorder.onaudioprocess=e=>this._onaudioprocess(e)}_initWorklet(){this.audioContext.audioWorklet.addModule(ei(function(){class e extends AudioWorkletProcessor{constructor(e){super(),this._cursor=0,this._bufferSize=e.processorOptions.bufferSize,this._buffer=new Float32Array(this._bufferSize)}process(t,e,i){if(!t.length||!t[0].length)return!0;for(let e=0;e{const e=new AudioWorkletNode(this.audioContext,"talk-processor",{processorOptions:{bufferSize:this.bufferSize}});e.connect(this.gainNode),e.port.onmessage=e=>{"data"===e.data.eventType&&this._encodeAudioData(e.data.buffer)},this.workletRecorder=e})}_onaudioprocess(e){e=e.inputBuffer.getChannelData(0);this._encodeAudioData(new Float32Array(e))}_encodeAudioData(e){if(0===e[0]&&0===e[1])this.log(this.tag,"empty audio data");else{const r=this.resampler.resample(e);let t=r;if(16===this._opt.sampleBitsWidth?t=function(e){let t=e.length,i=new Int16Array(t);for(;t--;){var r=Math.max(-1,Math.min(1,e[t]));i[t]=r<0?32768*r:32767*r}return i}(r):8===this._opt.sampleBitsWidth&&(t=function(e){let t=e.length,i=new Int8Array(t);for(;t--;){var r=Math.max(-1,Math.min(1,e[t]));i[t]=parseInt(255/(65535/(32768+(r<0?32768*r:32767*r))),10)}return i}(r)),null!==t.buffer){let e=null;this._opt.encType===Ge?e=function(e){const i=[];return Array.prototype.slice.call(e).forEach((e,t)=>{i[t]=function(e){let t,i,r;return 0<=e?t=213:(t=85,(e=-e-1)<0&&(e=32767)),8<=(i=Qa(e,Ja,8))?127^t:(r=i<<4,(r|=i<2?e>>4&15:e>>i+3&15)^t)}(e)}),i}(t):this._opt.encType===He&&(e=function(e){const i=[];return Array.prototype.slice.call(e).forEach((e,t)=>{i[t]=function(e){let t=0;t=e<0?(e=132-e,127):(e+=132,255);var i=Qa(e,Ja,8);return 8<=i?127^t:(i<<4|e>>i+3&15)^t}(e)}),i}(t));const r=Uint8Array.from(e);for(let e=0;e>8,t[1]=255&n>>0,t[2]=128,t[3]=128+i,t[4]=r/256,t[5]=r%256,t[6]=s/65536/256,t[7]=s/65536%256,t[8]=s%65536/256,t[9]=s%65536%256,t[10]=a/65536/256,t[11]=a/65536%256,t[12]=a%65536/256,t[13]=a%65536%256;let o=t.concat([...e]),l=new Uint8Array(o.length);for(let e=0;e{this.log(this.tag,"getUserMedia success"),this.userMediaStream=e,this.mediaStreamSource=this.audioContext.createMediaStreamSource(e),this.mediaStreamSource.connect(this.biquadFilter),this.recorder?(this.biquadFilter.connect(this.recorder),this.recorder.connect(this.gainNode)):this.workletRecorder&&(this.biquadFilter.connect(this.workletRecorder),this.workletRecorder.connect(this.gainNode)),this.gainNode.connect(this.audioContext.destination),this.emit(b.talkGetUserMediaSuccess),null===e.oninactive&&(e.oninactive=e=>{this._handleStreamInactive(e)})}).catch(e=>{this.error(this.tag,"getUserMedia error",e.toString()),this.emit(b.talkGetUserMediaFail,e.toString())}).finally(()=>{this.log(this.tag,"getUserMedia finally"),this._stopCheckGetUserMediaTimeout()})}_getUserMedia2(){this.log(this.tag,"getUserMedia"),navigator.mediaDevices?navigator.mediaDevices.getUserMedia({audio:!0}).then(e=>{this.log(this.tag,"getUserMedia2 success")}):navigator.getUserMedia({audio:!0},this.log(this.tag,"getUserMedia2 success"),this.log(this.tag,"getUserMedia2 fail"))}async _getUserMedia3(){this.log(this.tag,"getUserMedia3");try{var e=await navigator.mediaDevices.getUserMedia({audio:{latency:!0,noiseSuppression:!0,autoGainControl:!0,echoCancellation:!0,sampleRate:48e3,channelCount:1},video:!1});console.log("getUserMedia() got stream:",e),this.log(this.tag,"getUserMedia3 success")}catch(e){this.log(this.tag,"getUserMedia3 fail")}}_handleStreamInactive(e){this.userMediaStream&&(this.error(this.tag,"stream oninactive"),this.emit(b.talkStreamInactive))}_startCheckGetUserMediaTimeout(){this._stopCheckGetUserMediaTimeout(),this.checkGetUserMediaTimeout=setTimeout(()=>{this.log(this.tag,"check getUserMedia timeout"),this.emit(b.talkGetUserMediaTimeout)},this._opt.getUserMediaTimeout)}_stopCheckGetUserMediaTimeout(){this.checkGetUserMediaTimeout&&(this.log(this.tag,"stop checkGetUserMediaTimeout"),clearTimeout(this.checkGetUserMediaTimeout),this.checkGetUserMediaTimeout=null)}_startHeartInterval(){this.heartInterval=setInterval(()=>{this.log(this.tag,"heart interval");var e=[35,36,0,0,0,0,0,0],e=new Uint8Array(e);this.socket.send(e.buffer)},15e3)}_stopHeartInterval(){this.heartInterval&&(this.log(this.tag,"stop heart interval"),clearInterval(this.heartInterval),this.heartInterval=null)}startTalk(i){return new Promise((e,t)=>function(){let e=!1;var t=window.navigator;return e=t?(e=!(!t.mediaDevices||!t.mediaDevices.getUserMedia))||!!(t.getUserMedia||t.webkitGetUserMedia||t.mozGetUserMedia||t.msGetUserMedia):e}()?(this.wsUrl=i,this._opt.testMicrophone?(this._doTalk(),e()):(this._createWebSocket().catch(e=>{t(e)}),this.once(b.talkGetUserMediaFail,()=>{t("getUserMedia fail")}),void this.once(b.talkGetUserMediaSuccess,()=>{e()}))):t("not support getUserMedia"))}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(e=_(e,0,1),this.gainNode.gain.value=e)}getOption(){return this._opt}get volume(){return this.gainNode?parseFloat(100*this.gainNode.gain.value).toFixed(0):null}}class Xa{constructor(e){this.player=e,this.globalSetting=null;e=Lt();this.defaultSettings={watermark_id:"JessibucaPro_"+e,watermark_prefix:"JessibucaPro_mask_"+e,watermark_txt:"JessibucaPro 测试水印",watermark_x:0,watermark_y:0,watermark_rows:0,watermark_cols:0,watermark_x_space:0,watermark_y_space:0,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:"18px",watermark_alpha:.15,watermark_width:150,watermark_height:100,watermark_angle:15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null},this.player.debug.log("Watermark","int")}destroy(){this._removeMark(),this.globalSetting=null,this.defaultSettings={watermark_id:"",watermark_prefix:"",watermark_txt:"JessibucaPro 测试水印",watermark_x:0,watermark_y:0,watermark_rows:0,watermark_cols:0,watermark_x_space:0,watermark_y_space:0,watermark_font:"微软雅黑",watermark_color:"black",watermark_fontsize:"18px",watermark_alpha:.15,watermark_width:150,watermark_height:100,watermark_angle:15,watermark_parent_width:0,watermark_parent_height:0,watermark_parent_node:null},this.player.debug.log("Watermark","destroy")}remove(){this._removeMark()}load(e){this.globalSetting=e,this._loadMark(e)}resize(){this.globalSetting&&this._loadMark(this.globalSetting)}_loadMark(){let e=this.defaultSettings;if(1===arguments.length&&"object"==typeof arguments[0]){var t,i=arguments[0]||{};for(t in i)i[t]&&e[t]&&i[t]===e[t]||!i[t]&&0!==i[t]||(e[t]=i[t])}var r=document.getElementById(e.watermark_id),s=(r&&r.parentNode&&r.parentNode.removeChild(r),"string"==typeof e.watermark_parent_node?document.getElementById(e.watermark_parent_node):e.watermark_parent_node),r=s||document.body,a=r.getBoundingClientRect(),n=Math.max(r.scrollWidth,r.clientWidth,a.width),o=Math.max(r.scrollHeight,r.clientHeight,a.height),a=arguments[0]||{},a=((a.watermark_parent_width||a.watermark_parent_height)&&r&&(e.watermark_x=e.watermark_x+0,e.watermark_y=e.watermark_y+0),document.getElementById(e.watermark_id)),l=null;a?a.shadowRoot&&(l=a.shadowRoot):((a=document.createElement("div")).id=e.watermark_id,a.setAttribute("style","pointer-events: none !important; display: block !important"),l="function"==typeof a.attachShadow?a.attachShadow({mode:"open"}):a,(h=r.children)[c=Math.floor(Math.random()*(h.length-1))]?r.insertBefore(a,h[c]):r.appendChild(a)),e.watermark_cols=parseInt((n-e.watermark_x)/(e.watermark_width+e.watermark_x_space));var d,h=parseInt((n-e.watermark_x-e.watermark_width*e.watermark_cols)/e.watermark_cols);e.watermark_x_space=h&&e.watermark_x_space,e.watermark_rows=parseInt((o-e.watermark_y)/(e.watermark_height+e.watermark_y_space));var c=parseInt((o-e.watermark_y-e.watermark_height*e.watermark_rows)/e.watermark_rows);e.watermark_y_space=c&&e.watermark_y_space;for(var u=s?(d=e.watermark_x+e.watermark_width*e.watermark_cols+e.watermark_x_space*(e.watermark_cols-1),e.watermark_y+e.watermark_height*e.watermark_rows+e.watermark_y_space*(e.watermark_rows-1)):(d=0+e.watermark_x+e.watermark_width*e.watermark_cols+e.watermark_x_space*(e.watermark_cols-1),0+e.watermark_y+e.watermark_height*e.watermark_rows+e.watermark_y_space*(e.watermark_rows-1)),p=0;p{if(void 0===t[e])throw new Error(`JbPro option "${e}" can not be undefined`)});var e,i=ni();let r=Object.assign({},i,t),s=(r.url="",r.isMulti&&(r.debugUuid="xxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})),this.debug=new dt(this),t.container);if(!(s="string"==typeof t.container?document.querySelector(t.container):s))throw this.debug.error("JbPro","JbPro need container option and now container is",t.container),new Error("JbPro need container option");if("CANVAS"===s.nodeName||"VIDEO"===s.nodeName)throw this.debug.error("JbPro",`JbPro container type can not be ${s.nodeName} type`),new Error(`JbPro container type can not be ${s.nodeName} type`);if(r.videoBuffer>=r.heartTimeout)throw this.debug.error("JbPro",`JbPro videoBuffer ${r.videoBuffer}s must be less than heartTimeout ${r.heartTimeout}s`),new Error(`JbPro videoBuffer ${r.videoBuffer}s must be less than heartTimeout ${r.heartTimeout}s`);if(this._checkHasCreated(s))throw this.debug.error("JbPro","JbPro container has been created and can not be created again",s),new Error("JbPro container has been created and can not be created again",s);if(s.classList.add("jessibuca-container"),i=s,X,e=Lt(),i&&(i.dataset?i.dataset.jbprov=e:i.setAttribute("data-jbprov",e)),g(r.isLive)){const t=document.createElement("video");return t.muted=!0,t.setAttribute("controlsList","nodownload"),t.disablePictureInPicture="disablePictureInPicture",t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.height="100%",t.style.width="100%",s.appendChild(t),this.$videoElement=t,this.$container=s,void(this._opt=r)}delete r.container,x(r.videoBuffer)&&(r.videoBuffer=1e3*Number(r.videoBuffer)),x(r.videoBufferDelay)&&(r.videoBufferDelay=1e3*Number(r.videoBufferDelay)),x(r.networkDelay)&&(r.networkDelay=1e3*Number(r.networkDelay)),x(r.timeout)&&(Ot(r.loadingTimeout)&&(r.loadingTimeout=r.timeout),Ot(r.heartTimeout)&&(r.heartTimeout=r.timeout)),this._opt=r,this._destroyed=!1,this.$container=s,this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.events=new hi(this),this.watermark=new Xa(this),this._initPlayer(s,r),this._initWatermark(),this.debug.log("JbPro",'init success and version is "6-8-2023"'),console.log('JbPro version is "6-8-2023"')}destroy(){return new Promise((e,t)=>{this.debug.log("JbPro","destroy()"),this._destroyed=!0,this.off(),this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.srcObject&&(this.$videoElement.srcObject=null,this.$videoElement.removeAttribute("srcObject")),this.$videoElement.src&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$container.removeChild(this.$videoElement),this.$videoElement=null),this.player?this.player.destroy().then(()=>{this.player=null,this._destroy(),setTimeout(()=>{e()},0)}).catch(()=>{t()}):(this._destroy(),setTimeout(()=>{e()},0))})}_destroy(){var e;this.events&&(this.events.destroy(),this.events=null),this.talk&&(this.talk.destroy(),this.talk=null),this.watermark&&(this.watermark.destroy(),this.watermark=null),this.$container&&(this.$container.classList.remove("jessibuca-container"),e=this.$container,X,e&&(e.dataset?delete e.dataset.jbprov:e.removeAttribute("data-jbprov")),this.$container=null),this.debug&&this.debug.log("JbPro","destroy end"),this._resetOpt(),this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0}_resetOpt(){this._opt=ni()}_initPlayer(e,t){this.player=new Ya(e,t),this.debug.log("JbPro","_initPlayer",this.player.getOption()),this._bindEvents()}_initTalk(){let e=0{const i=()=>{this._opt.url="",this._opt.playOptions={},this._opt=Object.assign(this._opt,r),this._initPlayer(this.$container,this._opt)};this.player?this.player.destroy().then(()=>{this.player=null,i(),e()}):(i(),e())})}_bindEvents(){Object.keys(de).forEach(t=>{this.player.on(de[t],e=>{this.emit(t,e)})}),this.player.once(b.beforeDestroy,()=>{this.emit(b.close),this.destroy().then(()=>{}).catch(e=>{})}),this.player.on(b.resize,()=>{this.watermark&&this.watermark.resize(),this.player.singleWatermark&&this.player.singleWatermark.resize()}),this.player.on(b.fullscreen,()=>{this.watermark&&this.watermark.resize(),this.player.singleWatermark&&this.player.singleWatermark.resize()}),this.player.on(b.videoInfo,()=>{this.player.singleWatermark&&this.player.singleWatermark.resize()})}_bindTalkEvents(){Object.keys(he).forEach(t=>{this.player.on(he[t],e=>{this.emit(t,e)})})}_initWatermark(){var e;this._opt.fullscreenWatermarkConfig.text=decodeURIComponent("JessibucaPro%20%E4%BD%93%E9%AA%8C"),this._opt.fullscreenWatermarkConfig.color="white",Yt(this._opt.fullscreenWatermarkConfig)&&((e=zt(this.$container,this._opt.fullscreenWatermarkConfig)).watermark_txt?this.watermark.load(e):this.debug.warn("JbPro","fullscreenWatermarkConfig text is empty"))}_checkHasCreated(e){return!!e&&(e=e,X,!!(e?e.dataset?e.dataset.jbprov:e.getAttribute("data-jbprov"):""))}isDestroyed(){return this._destroyed}getOption(){return this.player?this.player.getOption():{}}setDebug(e){this.debug.log("JbPro","setDebug() "+e),this.player?this.player.updateOption({debug:!!e}):this.debug.warn("JbPro","player is not init")}getIsDebug(){let e=!1;return e=this.player?this.player._opt.debug:e}mute(){this.debug.log("JbPro","mute()"),this.player&&this.player.mute(!0)}cancelMute(){this.debug.log("JbPro","cancelMute()"),this.player&&this.player.mute(!1)}setVolume(e){this.debug.log("JbPro","setVolume() "+e),this.player&&(this.player.volume=e)}getVolume(){let e=null;return this.player&&(e=this.player.volume,e=parseFloat(e).toFixed(2)),e}audioResume(){this.debug.log("JbPro","audioResume()"),this.player&&this.player.audio?this.player.audio.audioEnabled(!0):this.debug.warn("JbPro","audioResume error")}setTimeout(e){this.debug.log("JbPro","setTimeout() "+e),e=Number(e),isNaN(e)?this.debug.warn("JbPro",`setTimeout error: ${e} is not a number`):this.player&&this.player.updateOption({timeout:e,loadingTimeout:e,heartTimeout:e})}setScaleMode(e){this.debug.log("JbPro","setScaleMode() "+e),this.player?this.player.setScaleMode(e):this.debug.warn("JbPro","setScaleMode() player is null")}pause(){let e=0{if(this.debug.log("JbPro","pause() "+e),this.isDestroyed())return i("JbPro is destroyed");this.player?this.player.pause(e).then(e=>{t(e)}).catch(e=>{i(e)}):i("player is null")})}close(){return new Promise((e,t)=>{this.debug.log("JbPro","close()"),this._opt.url="",this._loadingTimeoutReplayTimes=0,this._heartTimeoutReplayTimes=0,this.player?this.player.close().then(()=>{e()}).catch(e=>{t(e)}):t("player is null")})}clearView(){this.debug.log("JbPro","clearView()"),this.player&&this.player.video?this.getRenderType()===Y?this.player.video.clearView():this.debug.warn("JbPro","clearView","render type is video, not support clearView, please use canvas render type"):this.debug.warn("JbPro","clearView","player is null")}play(){let a=0{if(this.debug.log("JbPro","play() "+a),!a&&!this._opt.url)return this.emit(b.error,v.playError),void r("url is null and this._opt.url is null");if(a=a&&(""+a).trim(),g(this._opt.isLive))return this.$videoElement.controls="controls",this.$videoElement.muted=!1,this.$videoElement.src=a,this.$videoElement.play(),void i(this.$videoElement);if(this._opt.isCrypto){var e,t=n.cryptoKey||this._opt.playOptions.cryptoKey,s=n.cryptoIV||this._opt.playOptions.cryptoIV;if(!t||!s)return e=a||this._opt.url,void this._cryptoPlay(e).then(e=>{var{cryptoIV:e,cryptoKey:t}=e;this._opt.playOptions.cryptoKey=t,this._opt.playOptions.cryptoIV=e,n.cryptoIV=e,n.cryptoKey=t,this._playBefore(a,n).then(()=>{i()}).catch(e=>{r(e)})}).catch(e=>{r(e)});this._opt.playOptions.cryptoKey=t,this._opt.playOptions.cryptoIV=s,n.cryptoIV=s,n.cryptoKey=t}this._playBefore(a,n).then(()=>{i()}).catch(e=>{r(e)})})}_playBefore(i,r){return new Promise((e,t)=>{this.player?i?this._opt.url?i===this._opt.url?this.player.playing?(this.debug.log("JbPro","_playBefore","playing and resolve()"),e()):(this.debug.log("JbPro","_playBefore","pause -> play"),this.player.play(this._opt.url,this._opt.playOptions).then(()=>{e(),this.player.resumeAudioAfterPause()}).catch(e=>{this.debug.error("JbPro","_playBefore this.player.play error",e),this.emit(b.crashLog,this.getCrashLog("this.player.play 1",e)),this.player.pause().then(()=>{t(e)})})):this.player.pause().then(()=>{this._play(i,r).then(()=>{e()}).catch(e=>{this.debug.error("JbPro","_play error",e),this.emit(b.crashLog,this.getCrashLog("this.player.play 2",e)),t(e)})}).catch(e=>{this.debug.error("JbPro","this.player.pause error",e),t(e)}):this._play(i,r).then(()=>{e()}).catch(e=>{this.debug.error("JbPro","_play error",e),this.emit(b.crashLog,this.getCrashLog("this.player.play 3",e)),t(e)}):this.player.play(this._opt.url,this._opt.playOptions).then(()=>{e(),this.player.resumeAudioAfterPause()}).catch(e=>{this.debug.error("JbPro","this.player.play error",e),this.emit(b.crashLog,this.getCrashLog("this.player.play 4",e)),this.player.pause().then(()=>{t(e)})}):i?this._play(i,r).then(()=>{e()}).catch(e=>{this.debug.error("JbPro","_play error",e),this.emit(b.crashLog,this.getCrashLog("this.player.play 5",e)),t(e)}):this._play(this._opt.url,this._opt.playOptions).then(()=>{e()}).catch(e=>{this.debug.error("JbPro","_play error",e),this.emit(b.crashLog,this.getCrashLog("this.player.play 6",e)),t(e)})})}_cryptoPlay(n){return new Promise((r,s)=>{var e,t=function(){const e=(n||document.location.toString()).split("//"),t=e[1].indexOf("/");let i=e[1].substring(t);return i=-1!=i.indexOf("?")?i.split("?")[0]:i}();let i=this._opt.cryptoKeyUrl,a="";if(i)a=i;else{const r=function(e){const t=/(msie|trident)/i.test(navigator.userAgent),i=document.createElement("a");let r=e;return t&&(i.setAttribute("href",r),r=i.href),i.setAttribute("href",r),{origin:i.origin,href:i.href,protocol:i.protocol?i.protocol.replace(/:$/,""):"",host:i.host,search:i.search?i.search.replace(/^\?/,""):"",hash:i.hash?i.hash.replace(/^#/,""):"",hostname:i.hostname,port:i.port,pathname:"/"===i.pathname.charAt(0)?i.pathname:"/"+i.pathname}}(n);i=r.origin+"/crypto/",a=i+"?stream="+t}e=a,new Promise((t,i)=>{o.get(e).then(e=>{t(e)}).catch(e=>{i(e)})}).then(e=>{if(e){const t=e.split("."),i=si(t[0]),a=si(t[1]);a&&i?r({cryptoIV:a,cryptoKey:i}):s("get cryptoIV or cryptoKey error")}else s(`cryptoKeyUrl: getM7SCryptoStreamKey ${a} res is null`)}).catch(e=>{s(e)})})}playback(s){let a=1{if(this.debug.log("JbPro","playback() "+s),g(this._opt.isLive))return t("this._opt.isLive is false, can not playback");const i=oi(),r=Object.assign({},i.playbackConfig,this._opt.playbackConfig,a);r.isUseFpsRender||r.isCacheBeforeDecodeForFpsRender&&(r.isCacheBeforeDecodeForFpsRender=!1,this.debug.warn("JbPro","playbackConfig.isUseFpsRender is false, isCacheBeforeDecodeForFpsRender can not be ture, isCacheBeforeDecodeForFpsRender is set to false")),0===r.rateConfig.length&&r.showRateBtn&&(r.showRateBtn=!1,this.debug.warn("JbPro","playbackConfig.rateConfig.length is 0, showRateBtn can not be ture, showRateBtn is set to false")),this._resetPlayer({videoBuffer:0,playbackConfig:r,playType:A,openWebglAlignment:!0,useMSE:!1,useWCS:!1,useSIMD:!0}).then(()=>{this.play(s).then(()=>{e()}).catch(e=>{t(e)})}).catch(e=>{t(e)})})}playbackPause(){let i=0{if(!this.player)return t("player is null");f(i)?this.pause().then(()=>{e()}).catch(e=>{t(e)}):(this.player.playbackPause=!0,e())})}playbackResume(){return this.debug.log("JbPro","playbackResume()"),this._opt.playType===n?Promise.reject("playType is player, can not call playbackResume method"):new Promise((e,t)=>{if(!this.player)return t();this.player.playbackPause=!1,e()})}forward(i){return this.debug.log("JbPro","forward() "+i),g(this._opt.isLive)||this._opt.playType===n?Promise.reject("forward() method only just for playback type"):h(Number(i))?new Promise((e,t)=>{this.player&&this.player.playing?(i=_(Number(i),.1,32),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"playbackRate",value:i}),this.player.playback.setRate(i),this.player.video&&this.player.video.setRate(i),this.player.audio&&this.player.audio.setRate(i),e()):t()}):Promise.reject(`forward() params "rate": ${i} must be number type`)}playbackForward(e){return this.forward(e)}normal(){return this.forward(1)}playbackNormal(){return this.normal()}updatePlaybackForwardMaxRateDecodeIFrame(e){this.debug.log("JbPro","updatePlaybackForwardMaxRateDecodeIFrame() "+e),e=Number(e),e=_(e=parseInt(e,10),1,8),this._opt.playbackForwardMaxRateDecodeIFrame=e,this.player?(this.player.updateOption({playbackForwardMaxRateDecodeIFrame:e}),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"playbackForwardMaxRateDecodeIFrame",value:e})):this.debug.warn("JbPro","updatePlaybackForwardMaxRateDecodeIFrame() player is null")}setPlaybackStartTime(e){this.debug.log("JbPro","setPlaybackStartTime() "+e);var t=Kt(e);this.player?this.player.isPlayback()?t<10&&0!==e?this.debug.warn("JbPro",`timestamp: ${e} is not valid`):this.player.playing&&(10===t&&(e*=1e3),this.player.playback.setStartTime(e),this.playbackClearCacheBuffer()):this.debug.warn("JbPro","playType is not playback"):this.debug.warn("JbPro","player is null")}playbackClearCacheBuffer(){this.debug.log("JbPro","playbackClearCacheBuffer()"),this.player?this.player.isPlayback()?(this.player.video&&this.player.video.clear(),this.player.audio&&this.player.audio.clear(),this.player.decoderWorker.clearWorkBuffer(!0)):this.debug.warn("JbPro","playType is not playback"):this.debug.warn("JbPro","player is null")}getPlaybackCurrentRate(){return this.player&&this.player.isPlayback()?this.player.playback.rate:1}updatePlaybackLocalOneFrameTimestamp(e){this.debug.log("JbPro","updatePlaybackLocalOneFrameTimestamp() "+e),this.player?this.player.isPlayback()?this.player.playback.updateLocalOneFrameTimestamp(e):this.debug.warn("JbPro","playType is not playback"):this.debug.warn("JbPro","player is null")}setStreamQuality(e){this.debug.log("JbPro","setStreamQuality() "+e),this.player?this.player._opt.operateBtns.quality?(this.player._opt.qualityConfig||[]).includes(e)?this.player.streamQuality=e:this.debug.warn("JbPro",`quality: ${e} is not in qualityList`):this.debug.warn("JbPro","player._opt.operateBtns.quality is false"):this.debug.warn("JbPro","player is null")}_play(){let u=0{if(!this.player)return t("player is null");let i=!1;this._opt.url&&this._opt.url!==u&&(i=!0),this._opt.url=u,this._opt.playOptions=p;var r=0===u.indexOf("http"),s=0===u.indexOf("webrtc"),a=0===u.indexOf("wt"),n=!s&&-1!==u.indexOf(".m3u8"),o=!s&&-1!==u.indexOf(".flv"),l=!s&&-1!==u.indexOf(".fmp4")||!s&&-1!==u.indexOf(".mp4"),d=!s&&-1!==u.indexOf(".mpeg4"),h=!s&&-1!==u.indexOf(".h264")||!s&&-1!==u.indexOf(".h265");if(o&&!this._opt.isFlv&&(this._opt.isFlv=!0,this._opt.isFmp4=!1,this._opt.isMpeg4=!1,this._opt.isNakedFlow=!1),l&&!this._opt.isFmp4&&(this._opt.isFmp4=!0,this._opt.isFlv=!1,this._opt.isMpeg4=!1,this._opt.isNakedFlow=!1),d&&!this._opt.isMpeg4&&(this._opt.isMpeg4=!0,this._opt.isFlv=!1,this._opt.isFmp4=!1,this._opt.isNakedFlow=!1),h&&!this._opt.isNakedFlow&&(this._opt.isNakedFlow=!0,this._opt.isFlv=!1,this._opt.isFmp4=!1,this._opt.isMpeg4=!1),l=r?n?3:2:a?5:s?4:1,h=this._opt.isNakedFlow?H:this._opt.isFmp4?V:this._opt.isMpeg4?W:r&&!n||o||this._opt.isFlv?z:n?"hls":s?"webrtc":a?G:"m7s",!l||!h)return t(`play protocol is ${l}, demuxType is `+h);const c=()=>{this.player.once(v.webglAlignmentError,e=>{this.emit(b.crashLog,this.getCrashLog(v.webglAlignmentError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.webglAlignmentErrorReplay){this.debug.log("JbPro","webglAlignmentError");const e=this._opt.url;this._resetPlayer({openWebglAlignment:!0}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","webglAlignmentError and play success")}).catch(e=>{this.debug.error("JbPro","webglAlignmentError and play error",e)})}).catch(e=>{this.debug.error("JbPro","webglAlignmentError and _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,v.webglAlignmentError),this.debug.log("JbPro","webglAlignmentError and webglAlignmentErrorReplay is false")}).catch(e=>{this.debug.error("JbPro","webglAlignmentError and pause error",e)})}),this.player.once(v.webglContextLostError,e=>{this.emit(b.crashLog,this.getCrashLog(v.webglContextLostError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.webglContextLostErrorReplay){this.debug.log("JbPro","webglContextLostError");const t=this._opt.url,i={};var e;this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","webglContextLostError and play success")}).catch(e=>{this.debug.error("JbPro","webglContextLostError and play error",e)})}).catch(e=>{this.debug.error("JbPro","webglContextLostError and _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,v.webglContextLostError),this.debug.log("JbPro","webglContextLostError and webglContextLostErrorReplay is false")}).catch(e=>{this.debug.error("JbPro","webglAlignmentError and pause error",e)})}),this.player.once(v.mediaSourceH265NotSupport,e=>{this.emit(b.crashLog,this.getCrashLog(v.mediaSourceH265NotSupport,e)),this.pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("JbPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.debug.error("JbPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","mediaSourceH265NotSupport auto wasm [mse-> wasm] _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,v.mediaSourceH265NotSupport),this.debug.log("JbPro","mediaSourceH265NotSupport and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","mediaSourceH265NotSupport and pause error",e)})}),this.player.once(v.mediaSourceFull,e=>{this.emit(b.crashLog,this.getCrashLog(v.mediaSourceFull,e)),this.pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){this.debug.log("JbPro","mediaSourceFull and auto wasm [mse-> wasm] reset player and play");const i=this._opt.url;let e={};var t;this.player._opt.autoWasm&&(e={useMSE:!1,useWCS:!1}),this.player._opt.replayUseLastFrameShow&&(t=this.screenshot("","png",.92,"base64"),e.loadingBackground=t),this._resetPlayer(e).then(()=>{this.play(i).then(()=>{this.debug.log("JbPro","mediaSourceFull and reset player and play success")}).catch(e=>{this.debug.error("JbPro","mediaSourceFull and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","mediaSourceFull and _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,v.mediaSourceFull),this.debug.log("JbPro","mediaSourceFull and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","mediaSourceFull and pause error",e)})}),this.player.once(v.mediaSourceAppendBufferError,e=>{this.emit(b.crashLog,this.getCrashLog(v.mediaSourceAppendBufferError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){this.debug.log("JbPro","mediaSourceAppendBufferError and auto wasm [mse-> wasm] reset player and play");const i=this._opt.url;let e={};var t;this.player._opt.autoWasm&&(e={useMSE:!1,useWCS:!1}),this.player._opt.replayUseLastFrameShow&&(t=this.screenshot("","png",.92,"base64"),e.loadingBackground=t),this._resetPlayer(e).then(()=>{this.play(i).then(()=>{this.debug.log("JbPro","mediaSourceAppendBufferError and reset player and play success")}).catch(e=>{this.debug.error("JbPro","mediaSourceAppendBufferError and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","mediaSourceAppendBufferError and _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,v.mediaSourceAppendBufferError),this.debug.log("JbPro","mediaSourceAppendBufferError and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","mediaSourceAppendBufferError and pause error",e)})}),this.player.once(v.mediaSourceBufferListLarge,e=>{this.emit(b.crashLog,this.getCrashLog(v.mediaSourceBufferListLarge,e)),this.pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){this.debug.log("JbPro","media source buffer list large and auto wasm [mse-> wasm] reset player and play");const i=this._opt.url;let e={};var t;this.player._opt.autoWasm&&(e={useMSE:!1,useWCS:!1}),this.player._opt.replayUseLastFrameShow&&(t=this.screenshot("","png",.92,"base64"),e.loadingBackground=t),this._resetPlayer(e).then(()=>{this.play(i).then(()=>{this.debug.log("JbPro","media source buffer list large and reset player and play success")}).catch(e=>{this.debug.error("JbPro","media source buffer list large and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","media source buffer list large and _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,v.mediaSourceBufferListLarge),this.debug.log("JbPro","media source buffer list large and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","media source buffer list large and pause error",e)})}),this.player.once(v.mediaSourceAppendBufferEndTimeout,e=>{this.emit(b.crashLog,this.getCrashLog(v.mediaSourceAppendBufferEndTimeout,e)),this.pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){this.debug.log("JbPro","media source append buffer end timeout and auto wasm [mse-> wasm] reset player and play");const i=this._opt.url;let e={};var t;this.player._opt.autoWasm&&(e={useMSE:!1,useWCS:!1}),this.player._opt.replayUseLastFrameShow&&(t=this.screenshot("","png",.92,"base64"),e.loadingBackground=t),this._resetPlayer(e).then(()=>{this.play(i).then(()=>{this.debug.log("JbPro","media source append buffer end timeout and reset player and play success")}).catch(e=>{this.debug.error("JbPro","media source append buffer end timeout and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","media source append buffer end timeout and _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,v.mediaSourceAppendBufferEndTimeout),this.debug.log("JbPro","media source append buffer end timeout and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","media source append buffer end timeout and pause error",e)})}),this.player.once(v.mseSourceBufferError,e=>{this.emit(b.crashLog,this.getCrashLog(v.mseSourceBufferError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.mseDecodeErrorReplay){this.debug.log("JbPro","mseSourceBufferError auto wasm [mse-> wasm] reset player and play");const i=this._opt.url;let e={};var t;this.player._opt.autoWasm&&(e={useMSE:!1,useWCS:!1}),this.player._opt.replayUseLastFrameShow&&(t=this.screenshot("","png",.92,"base64"),e.loadingBackground=t),this._resetPlayer(e).then(()=>{this.play(i).then(()=>{this.debug.log("JbPro","mseSourceBufferError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.debug.error("JbPro","mseSourceBufferError auto wasm [mse-> wasm] reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","mseSourceBufferError auto wasm [mse-> wasm] _resetPlayer and play error",e)})}else this.emit(b.playFailedAndPaused,v.mseSourceBufferError),this.debug.log("JbPro","mseSourceBufferError and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","mseSourceBufferError and pause error:",e)})}),this.player.once(v.mseAddSourceBufferError,e=>{this.emit(b.crashLog,this.getCrashLog(v.mseAddSourceBufferError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("JbPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.debug.error("JbPro","mseAddSourceBufferError auto wasm [mse-> wasm] reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","mseAddSourceBufferError auto wasm [mse-> wasm] _resetPlayer and play error",e)})}else this.emit(b.playFailedAndPaused,v.mseAddSourceBufferError),this.debug.log("JbPro","mseAddSourceBufferError and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","mseAddSourceBufferError and pause error",e)})}),this.player.once(v.mediaSourceDecoderConfigurationError,e=>{this.emit(b.crashLog,this.getCrashLog(v.mediaSourceDecoderConfigurationError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("JbPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.debug.error("JbPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","mediaSourceDecoderConfigurationError auto wasm [mse-> wasm] _resetPlayer and play error",e)})}else this.debug.log("JbPro","mediaSourceDecoderConfigurationError and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","mediaSourceDecoderConfigurationError and pause error",e)})}),this.player.once(v.mediaSourceTsIsMaxDiff,e=>{this.emit(b.crashLog,this.getCrashLog(v.mediaSourceTsIsMaxDiff,e)),this.pause().then(()=>{if(this.player&&this.player._opt.mediaSourceTsIsMaxDiffReplay){this.debug.log("JbPro","mediaSourceTsIsMaxDiff reset player and play");const e=this._opt.url,t={};t.loadingBackground=this.screenshot("","png",.92,"base64"),this._resetPlayer(t).then(()=>{this.play(e).then(()=>{}).catch(e=>{this.debug.error("JbPro","mediaSourceTsIsMaxDiff replay error",e)})}).catch(e=>{this.debug.error("JbPro","mediaSourceTsIsMaxDiff _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,v.mediaSourceTsIsMaxDiff),this.debug.log("JbPro","mediaSourceTsIsMaxDiff and replay is false")}).catch(e=>{this.debug.error("JbPro","mediaSourceTsIsMaxDiff and pause error",e)})}),this.player.once(v.mseWidthOrHeightChange,e=>{this.emit(b.crashLog,this.getCrashLog(v.mseWidthOrHeightChange,e)),this.debug.log("JbPro","mseWidthOrHeightChange and reset player and play");const t=this._opt.url,i=this.screenshot("","png",.92,"base64");this._resetPlayer({loadingBackground:i}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","mseWidthOrHeightChange and reset player and play success")}).catch(e=>{this.debug.error("JbPro","mseWidthOrHeightChange and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","mseWidthOrHeightChange and _resetPlayer error",e)})}),this.player.once(v.mediaSourceUseCanvasRenderPlayFailed,e=>{this.emit(b.crashLog,this.getCrashLog(v.mediaSourceUseCanvasRenderPlayFailed,e)),this.debug.log("JbPro","mediaSourceUseCanvasRenderPlayFailed and reset player"),this.pause().then(()=>{this._resetPlayer().then(()=>{this.debug.log("JbPro","mediaSourceUseCanvasRenderPlayFailed and reset player success")}).catch(e=>{this.debug.error("JbPro","mediaSourceUseCanvasRenderPlayFailed and reset player error",e)})}).catch(e=>{this.debug.error("JbPro","mediaSourceUseCanvasRenderPlayFailed and pause",e)})}),this.player.once(v.webcodecsH265NotSupport,e=>{this.emit(b.crashLog,this.getCrashLog(v.webcodecsH265NotSupport,e)),this.pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("JbPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play success")}).catch(e=>{this.debug.error("JbPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","webcodecsH265NotSupport auto wasm [wcs-> wasm] _resetPlayer and play error",e)})}else this.emit(b.playFailedAndPaused,v.webcodecsH265NotSupport),this.debug.log("JbPro","webcodecsH265NotSupport and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","webcodecsH265NotSupport and pause error",e)})}),this.player.once(v.webcodecsUnsupportedConfigurationError,e=>{this.emit(b.crashLog,this.getCrashLog(v.webcodecsUnsupportedConfigurationError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.autoWasm){this.debug.log("Jessibuca","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play");const e=this._opt.url;this._resetPlayer({useMSE:!1,useWCS:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("Jessibuca","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play success")}).catch(e=>{this.debug.error("Jessibuca","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] reset player and play error",e)})}).catch(e=>{this.debug.error("Jessibuca","webcodecsUnsupportedConfigurationError auto wasm [wcs-> wasm] _resetPlayer and play error",e)})}else this.emit(b.playFailedAndPaused,v.webcodecsUnsupportedConfigurationError),this.debug.log("Jessibuca","webcodecsUnsupportedConfigurationError and autoWasm is false")}).catch(e=>{this.debug.error("Jessibuca","webcodecsUnsupportedConfigurationError and pause error",e)})}),this.player.once(v.webcodecsDecodeError,e=>{this.emit(b.crashLog,this.getCrashLog(v.webcodecsDecodeError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.wcsDecodeErrorReplay){this.debug.log("JbPro","webcodecs decode error reset player and play");const i=this._opt.url;let e={};var t;this.player._opt.autoWasm&&(e={useMSE:!1,useWCS:!1}),this.player._opt.replayUseLastFrameShow&&(t=this.screenshot("","png",.92,"base64"),e.loadingBackground=t),this._resetPlayer(e).then(()=>{this.play(i).then(()=>{this.debug.log("JbPro","webcodecs decode error reset player and play success")}).catch(e=>{this.debug.error("JbPro","webcodecs decode error reset player and play error",e)})}).catch(()=>{this.debug.error("JbPro","webcodecs decode error _resetPlayer error")})}else this.emit(b.playFailedAndPaused,v.webcodecsDecodeError),this.debug.log("JbPro","webcodecs decode error and autoWasm is false")}).catch(e=>{this.debug.error("JbPro","webcodecs decode error and pause error",e)})}),this.player.once(v.wcsWidthOrHeightChange,e=>{this.emit(b.crashLog,this.getCrashLog(v.wcsWidthOrHeightChange,e)),this.debug.log("JbPro","wcsWidthOrHeightChange and reset player and play");const t=this._opt.url,i=this.screenshot("","png",.92,"base64");this._resetPlayer({loadingBackground:i}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wcsWidthOrHeightChange and reset player and play success")}).catch(e=>{this.debug.error("JbPro","wcsWidthOrHeightChange and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","wcsWidthOrHeightChange and _resetPlayer error",e)})}),this.player.once(v.wasmDecodeError,e=>{this.emit(b.crashLog,this.getCrashLog(v.wasmDecodeError,e)),this.pause().then(()=>{if(this.player&&this.player._opt.wasmDecodeErrorReplay){this.debug.log("JbPro","wasm decode error and reset player and play");const t=this._opt.url,i={};var e;this.player._opt.replayUseLastFrameShow&&(e=this.screenshot("","png",.92,"base64"),i.loadingBackground=e),this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wasm decode error and reset player and play success")}).catch(e=>{this.debug.error("JbPro","wasm decode error and reset player and play error",e)})}).catch(()=>{this.debug.error("JbPro","wasm decode error and _resetPlayer error")})}else this.emit(b.playFailedAndPaused,v.wasmDecodeError),this.debug.log("JbPro","wasm decode error and wasmDecodeErrorReplay is false")}).catch(e=>{this.debug.error("JbPro","wasm decode error and pause error",e)})}),this.player.once(v.wasmDecodeVideoNoResponseError,e=>{this.emit(b.crashLog,this.getCrashLog(v.wasmDecodeVideoNoResponseError,e)),this.pause().then(()=>{this.debug.log("JbPro","wasm decode video no response error and reset player and play");const e=this._opt.url,t={};if(this.player&&this.player._opt.replayUseLastFrameShow){const e=this.screenshot("","png",.92,"base64");t.loadingBackground=e}this._resetPlayer(t).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","wasm decode video no response error and reset player and play success")}).catch(e=>{this.debug.error("JbPro","wasm decode video no response error and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","wasm decode video no response error and _resetPlayer error",e)})}).catch(e=>{this.debug.error("JbPro","wasm decode video no response error and pause error",e)})}),this.player.once(v.wasmWidthOrHeightChange,e=>{this.emit(b.crashLog,this.getCrashLog(v.wasmWidthOrHeightChange,e)),this.debug.log("JbPro","wasmWidthOrHeightChange and reset player and play");const t=this._opt.url,i=this.screenshot("","png",.92,"base64");this._resetPlayer({loadingBackground:i}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wasmWidthOrHeightChange and reset player and play success")}).catch(e=>{this.debug.error("JbPro","wasmWidthOrHeightChange and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","wasmWidthOrHeightChange and _resetPlayer error",e)})}),this.player.once(v.wasmUseVideoRenderError,e=>{this.emit(b.crashLog,this.getCrashLog(v.wasmUseVideoRenderError,e)),this.debug.log("JbPro","wasmUseVideoRenderError and reset player and play");const t=this._opt.url;this._resetPlayer({useVideoRender:!1}).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wasmUseVideoRenderError and reset player and play success")}).catch(e=>{this.debug.error("JbPro","wasmUseVideoRenderError and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","wasmUseVideoRenderError and _resetPlayer error",e)})}),this.player.once(v.simdH264DecodeVideoWidthIsTooLarge,e=>{this.emit(b.crashLog,this.getCrashLog(v.simdH264DecodeVideoWidthIsTooLarge,e)),this.pause().then(()=>{this.debug.log("JbPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play");const e=this._opt.url;this._resetPlayer({useSIMD:!1}).then(()=>{this.play(e).then(()=>{this.debug.log("JbPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play success")}).catch(e=>{this.debug.error("JbPro","simdH264DecodeVideoWidthIsTooLarge and reset player and play error",e)})}).catch(e=>{this.debug.error("JbPro","simdH264DecodeVideoWidthIsTooLarge and _resetPlayer error",e)})}).catch(e=>{this.debug.error("JbPro","simdH264DecodeVideoWidthIsTooLarge and pause error",e)})}),this.player.once(b.networkDelayTimeout,e=>{if(this.player._opt.networkDelayTimeoutReplay){this.emit(b.crashLog,this.getCrashLog(b.networkDelayTimeout,e)),this.debug.log("JbPro","network delay time out and reset player and play");const t=this._opt.url,i={};if(this.player&&this.player._opt.replayUseLastFrameShow){const e=this.screenshot("","png",.92,"base64");i.loadingBackground=e}this._resetPlayer(i).then(()=>{this.play(t).then(()=>{this.debug.log("JbPro","wasm decode error and reset player and play success")}).catch(e=>{this.debug.error("JbPro","wasm decode error and reset player and play error",e)})}).catch(()=>{this.debug.error("JbPro","wasm decode error and _resetPlayer error")})}}),this.player.once(v.fetchError,e=>{this.emit(b.crashLog,this.getCrashLog(v.fetchError,e)),this.debug.log("JbPro","fetch error and reset player"),this.pause().then(()=>{this._resetPlayer().then(()=>{this.emit(b.playFailedAndPaused,v.fetchError)}).catch(()=>{this.emit(b.playFailedAndPaused,v.fetchError)})}).catch(e=>{this.debug.error("JbPro","fetch error and pause",e)})}),this.player.once(b.streamEnd,e=>{this.emit(b.crashLog,this.getCrashLog(b.streamEnd,e)),this.debug.log("JbPro","streamEnd reset player"),this.pause().then(()=>{this._resetPlayer().then(()=>{this.emit(b.playFailedAndPaused,b.streamEnd)}).catch(()=>{this.emit(b.playFailedAndPaused,b.streamEnd)})}).catch(e=>{this.debug.error("JbPro","streamEnd pause",e)})}),this.player.once(v.websocketError,e=>{this.emit(b.crashLog,this.getCrashLog(v.websocketError,e)),this.debug.log("JbPro","websocketError and reset player"),this.pause().then(()=>{this._resetPlayer().then(()=>{this.emit(b.playFailedAndPaused,v.websocketError)}).catch(()=>{this.emit(b.playFailedAndPaused,v.websocketError)})}).catch(e=>{this.debug.error("JbPro","websocketError and pause",e)})}),this.player.once(v.webrtcError,e=>{this.emit(b.crashLog,this.getCrashLog(v.webrtcError,e)),this.debug.log("JbPro","webrtcError and reset player"),this.pause().then(()=>{this._resetPlayer().then(()=>{this.emit(b.playFailedAndPaused,v.webrtcError)}).catch(()=>{this.emit(b.playFailedAndPaused,v.webrtcError)})}).catch(e=>{this.debug.error("JbPro","webrtcError and pause",e)})}),this.player.once(v.hlsError,e=>{this.emit(b.crashLog,this.getCrashLog(v.hlsError,e)),this.debug.log("JbPro","hlsError and reset player"),this.pause().then(()=>{this._resetPlayer().then(()=>{this.emit(b.playFailedAndPaused,v.hlsError)}).catch(()=>{this.emit(b.playFailedAndPaused,v.hlsError)})}).catch(e=>{this.debug.error("JbPro","hlsError and pause",e)})}),this.player.on(b.delayTimeout,e=>{this.emit(b.crashLog,this.getCrashLog(b.delayTimeout,e)),this.isDestroyed()?this.debug.log("JbPro","delay timeout but player is destroyed"):this.pause().then(()=>{if(this.player&&this.player._opt.heartTimeoutReplay&&(this._heartTimeoutReplayTimes{this.play(e).then(()=>{}).catch(e=>{this.debug.error("JbPro","delay timeout replay error",e)})}).catch(e=>{this.debug.error("JbPro","delay timeout _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,b.delayTimeout),this.player&&this.player.emit(b.delayTimeoutRetryEnd),this.debug.warn("JbPro",`delayTimeoutRetryEnd and + opt.heartTimeout is ${this.player&&this.player._opt.heartTimeout} and + opt.heartTimeoutReplay is ${this.player&&this.player._opt.heartTimeoutReplay} and + opt.heartTimeoutReplayTimes is ${this.player&&this.player._opt.heartTimeoutReplayTimes},and + local._heartTimeoutReplayTimes is `+this._heartTimeoutReplayTimes)}).catch(e=>{this.debug.error("JbPro","delay timeout and pause error",e)})}),this.player.on(b.loadingTimeout,e=>{this.emit(b.crashLog,this.getCrashLog(b.loadingTimeout,e)),this.isDestroyed()?this.debug.log("JbPro","loading timeout but player is destroyed"):this.pause().then(()=>{if(this.player&&this.player._opt.loadingTimeoutReplay&&(this._loadingTimeoutReplayTimes{this.play(e).then(()=>{}).catch(e=>{this.debug.error("JbPro","loading timeout replay error",e)})}).catch(e=>{this.debug.error("JbPro","loading timeout _resetPlayer error",e)})}else this.emit(b.playFailedAndPaused,b.loadingTimeout),this.player&&this.player.emit(b.loadingTimeoutRetryEnd),this.debug.log("JbPro",`loadingTimeoutRetryEnd and + opt.loadingTimeout is ${this.player&&this.player._opt.loadingTimeout} and + opt.loadingTimeoutReplay is ${this.player&&this.player._opt.loadingTimeoutReplay} and + local._loadingTimeoutReplayTimes time is ${this._loadingTimeoutReplayTimes} and + opt.loadingTimeoutReplayTimes is `+(this.player&&this.player._opt.loadingTimeoutReplayTimes))}).catch(e=>{this.debug.error("JbPro","loading timeout and pause error",e)})}),this._hasLoaded()?this.player.play(u,p).then(()=>{e()}).catch(e=>{this.debug.error("JbPro","_hasLoaded() and play error",e),this.emit(b.crashLog,this.getCrashLog("_hasLoaded() and play error",e)),this.player.pause().then(()=>{t(e)}).catch(e=>{this.debug.error("JbPro","_hasLoaded() and play error and next pause error",e)})}):this.player.once(b.decoderWorkerInit,()=>{this.player.play(u,p).then(()=>{e()}).catch(e=>{this.debug.error("JbPro","decoderWorkerInit and play error",e),this.emit(b.crashLog,this.getCrashLog("decoderWorkerInit and play error",e)),this.player&&this.player.pause().then(()=>{t(e)}).catch(e=>{this.debug.error("JbPro","decoderWorkerInit and play error and next pause error",e)})})})};n&&g(this._opt.supportHls265)||s||i||d?(this.debug.log("JbPro","need reset player"),this._resetPlayer({protocol:l,demuxType:h,isHls:n,isWebrtc:s,url:u}).then(()=>{c()}).catch(e=>{t("reset player error")})):(this.player.updateOption({protocol:l,demuxType:h,isHls:n,isFlv:this._opt.isFlv,isFmp4:this._opt.isFmp4,isMpeg4:this._opt.isMpeg4,isNakedFlow:this._opt.isNakedFlow,cryptoKey:p.cryptoKey||"",cryptoIV:p.cryptoIV||""}),p.cryptoKey&&p.cryptoIV&&(this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"cryptoKey",value:p.cryptoKey}),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"cryptoIV",value:p.cryptoIV})),c())})}resize(){this.debug.log("JbPro","resize()"),this.player&&this.player.resize()}setBufferTime(e){this.debug.log("JbPro","setBufferTime() "+e),e=Number(e),this.player?(10{this.debug.log("JbPro","screenshotWatermark()",e),this.player&&this.player.video?this.player.video.screenshotWatermark(e).then(e=>{t(e)}).catch(e=>{i(e)}):(this.debug.warn("JbPro","screenshotWatermark() player is not ready"),i("player is not ready"))})}startRecord(i,r){return new Promise((e,t)=>{if(this.debug.log("JbPro",`startRecord() ${i} `+r),!this.player)return this.debug.warn("JbPro","startRecord() player is not ready"),t("player is not ready");this.player.playing?(this.player.startRecord(i,r),e()):(this.debug.warn("JbPro","startRecord() player is not playing"),t("not playing"))})}stopRecordAndSave(e,r){return new Promise((t,i)=>{this.debug.log("JbPro",`stopRecordAndSave() ${e} `+r),this.player&&this.player.recording?this.player.stopRecordAndSave(e,r).then(e=>{t(e)}).catch(e=>{i(e)}):i("not recording")})}isPlaying(){let e=!1;return this.player&&(this._opt.playType===n?e=this.player.playing:this._opt.playType===A&&(e=g(this.player.playbackPause)&&this.player.playing)),e}isLoading(){return!!this.player&&this.player.loading}isPause(){let e=!1;return this._opt.playType===n?e=!this.isPlaying()&&!this.isLoading():this._opt.playType===A&&this.player&&(e=this.player.playbackPause),e}isPaused(){return this.isPause()}isPlaybackPause(){let e=!1;return e=this._opt.playType===A&&this.player?this.player.playbackPause:e}isMute(){let e=!0;return e=this.player?this.player.isAudioMute():e}isRecording(){return this.player&&this.player.recorder&&this.player.recorder.recording||!1}clearBufferDelay(){this.debug.log("JbPro","clearBufferDelay()"),this.player?this.player.clearBufferDelay():this.debug.warn("JbPro","clearBufferDelay() player is not init")}setNetworkDelayTime(e){this.debug.log("JbPro","setNetworkDelayTime() "+e),e=Number(e),this.player?(e<1&&this.debug.warn("JbPro",`setNetworkDelayTime() network delay is ${e} second, is too small`),e=_(e,1,100),this.player.updateOption({networkDelay:1e3*e}),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"networkDelay",value:1e3*e})):this.debug.warn("JbPro","setNetworkDelayTime() player is not init")}getDecodeType(){let e="";return e=this.player?this.player.getDecodeType():e}getRenderType(){let e="";return e=this.player?this.player.getRenderType():e}getAudioEngineType(){let e="";return e=this.player?this.player.getAudioEngineType():e}getPlayingTimestamp(){let e=0;return e=this.player?this.player.getPlayingTimestamp():e}getStatus(){let e="destroy";return e=this.player?this.player.loading?"loading":this.player.playing?"playing":"paused":e}getPlayType(){return this.player?this.player._opt.playType:n}togglePerformancePanel(e){this.debug.log("JbPro","togglePerformancePanel() "+e);var t=this.player._opt.showPerformance;let i=!t;(i=Nt(e)?e:i)!==t?this.player?this.player.togglePerformancePanel(i):this.debug.warn("JbPro","togglePerformancePanel() failed, this.player is not init"):this.debug.warn("JbPro",`togglePerformancePanel() failed, showPerformance is prev: ${t} === now: `+i)}openZoom(){this.debug.log("JbPro","openZoom()"),this.player?this.player.zooming=!0:this.debug.warn("JbPro","openZoom() failed, this.player is not init")}closeZoom(){this.debug.log("JbPro","closeZoom()"),this.player?this.player.zooming=!1:this.debug.warn("JbPro","closeZoom() failed, this.player is not init")}isZoomOpen(){let e=!1;return e=this.player?this.player.zooming:e}expandZoom(){this.debug.log("JbPro","expandZoom()"),this.player&&this.player.zoom&&this.player.zooming?this.player.zoom.expandPrecision():this.debug.warn("JbPro","expandZoom() failed, zoom is not open or not init")}narrowZoom(){this.debug.log("JbPro","narrowZoom()"),this.player&&this.player.zoom&&this.player.zooming?this.player.zoom.narrowPrecision():this.debug.warn("JbPro","narrowZoom failed, zoom is not open or not init")}getCurrentZoomIndex(){let e=1;return e=this.player&&this.player.zoom?this.player.zoom.currentZoom:e}startTalk(i){let r=1{this.debug.log("JbPro","startTalk()",i,r),this._initTalk(r),this.talk.startTalk(i).then(()=>{e(),this.talk.once(b.talkStreamClose,()=>{this.debug.warn("JbPro","talk stream close"),this.stopTalk().catch(e=>{})}),this.talk.once(b.talkStreamError,e=>{this.debug.warn("JbPro","talk stream error",e),this.stopTalk().catch(e=>{})}),this.talk.once(b.talkStreamInactive,()=>{this.debug.warn("JbPro","talk stream inactive"),this.stopTalk().catch(e=>{})})}).catch(e=>{t(e)})})}stopTalk(){return new Promise((e,t)=>{if(this.debug.log("JbPro","stopTalk()"),!this.talk)return t("stopTalk() talk is not init");this.talk.destroy(),e()})}getTalkVolume(){return new Promise((e,t)=>{if(!this.talk)return t("getTalkVolume() talk is not init");e(this.talk.volume)})}setTalkVolume(i){return new Promise((e,t)=>{if(this.debug.log("JbPro","setTalkVolume()",i),!this.talk)return t("setTalkVolume() talk is not init");this.talk.setVolume(i/100),e()})}setNakedFlowFps(i){return new Promise((e,t)=>{if(this.debug.log("JbPro","setNakedFlowFps()",i),!this.player)return t("setNakedFlowFps() player is not init");if(Ot(i))return t("setNakedFlowFps() fps is empty");t=_(Number(i),1,100);this.player.updateOption({nakedFlowFps:t})})}getCrashLog(t){var i=1{this.player?(this.player.downloadNakedFlowFile(),e()):t("player is not init")})}downloadTempFmp4File(){return new Promise((e,t)=>{this.player?(this.player.downloadFmp4File(),e()):t("player is not init")})}downloadTempMpeg4File(){return new Promise((e,t)=>{this.player?(this.player.downloadMpeg4File(),e()):t("player is not init")})}downloadTempRtpFile(){return new Promise((e,t)=>{this.talk?(this.talk.downloadRtpFile(),e()):t("talk is not init")})}}return Za.ERROR=v,Za.EVENTS=de,window.JessibucaPro=Za,window.WebPlayerPro=Za}); diff --git a/ui/jessibuca-pro-preview.js b/ui/jessibuca-pro-preview.js deleted file mode 100644 index fd3110e..0000000 --- a/ui/jessibuca-pro-preview.js +++ /dev/null @@ -1,103 +0,0 @@ -!function(e){"function"==typeof define&&define.amd?define(e):e()}(function(){"use strict";const s="player",m="playbackTF",M="flv",U="webTransport",j="canvas",N={url:"",playbackConfig:{},playType:s,playbackForwardMaxRateDecodeIFrame:4,playOptions:{},isLive:!0},_={playType:s,container:"",videoBuffer:1e3,videoBufferDelay:1e3,networkDelay:5e3,isResize:!0,isFullResize:!1,isFlv:!1,isHls:!1,isWebrtc:!1,debug:!1,hotKey:!1,loadingTimeout:10,heartTimeout:10,timeout:10,loadingTimeoutReplay:!0,heartTimeoutReplay:!0,loadingTimeoutReplayTimes:3,heartTimeoutReplayTimes:3,supportDblclickFullscreen:!1,showBandwidth:!1,keepScreenOn:!1,isNotMute:!1,hasAudio:!0,hasVideo:!0,operateBtns:{fullscreen:!1,screenshot:!1,play:!1,audio:!1,record:!1,ptz:!1,quality:!1,zoom:!1,close:!1,fullscreenFn:null,fullscreenExitFn:null,screenshotFn:null,playFn:null,pauseFn:null,recordFn:null,recordStopFn:null},watermarkConfig:{},controlAutoHide:!1,hasControl:!1,loadingText:"",background:"",decoder:"decoder-pro.js",url:"",rotate:0,mirrorRotate:"none",playbackConfig:{playList:[],fps:""},qualityConfig:[],forceNoOffscreen:!0,hiddenAutoPause:!1,protocol:2,demuxType:M,useWasm:!1,useWCS:!1,useSIMD:!1,wcsUseVideoRender:!0,wasmUseVideoRender:!1,mseUseCanvasRender:!1,hlsUseCanvasRender:!1,useMSE:!1,useOffscreen:!1,autoWasm:!0,wasmDecodeErrorReplay:!0,openWebglAlignment:!1,wasmDecodeAudioSyncVideo:!0,playbackDelayTime:1e3,playbackFps:25,showPlaybackControl:!1,playbackForwardMaxRateDecodeIFrame:4,playbackCurrentTimeMove:!0,useVideoRender:!0,useCanvasRender:!1,networkDelayTimeoutReplay:!0},V="init",H="initVideo",K="initAudio",W="audioCode",G="videoCode",z="workerEnd",q="decode",v={fullscreen:"fullscreen$2",webFullscreen:"webFullscreen",decoderWorkerInit:"decoderWorkerInit",play:"play",playing:"playing",pause:"pause",mute:"mute",load:"load",loading:"loading",zooming:"zooming",videoInfo:"videoInfo",timeUpdate:"timeUpdate",audioInfo:"audioInfo",log:"log",error:"error",kBps:"kBps",timeout:"timeout",delayTimeout:"delayTimeout",loadingTimeout:"loadingTimeout",stats:"stats",performance:"performance",record:"record",recording:"recording",recordingTimestamp:"recordingTimestamp",recordStart:"recordStart",recordEnd:"recordEnd",recordCreateError:"recordCreateError",buffer:"buffer",videoFrame:"videoFrame",start:"start",metadata:"metadata",resize:"resize",streamEnd:"streamEnd",streamRate:"streamRate",streamAbps:"streamAbps",streamVbps:"streamVbps",streamSuccess:"streamSuccess",streamMessage:"streamMessage",streamError:"streamError",volumechange:"volumechange",destroy:"destroy",beforeDestroy:"beforeDestroy",mseSourceOpen:"mseSourceOpen",mseSourceClose:"mseSourceClose",mseSourceended:"mseSourceended",mseSourceBufferError:"mseSourceBufferError",mseSourceBufferBusy:"mseSourceBufferBusy",mseSourceBufferFull:"mseSourceBufferFull",videoWaiting:"videoWaiting",videoTimeUpdate:"videoTimeUpdate",videoSyncAudio:"videoSyncAudio",playToRenderTimes:"playToRenderTimes",playbackTime:"playbackTime",playbackTimestamp:"playbackTimestamp",playbackPrecision:"playbackPrecision",playbackJustTime:"playbackJustTime",playbackStats:"playbackStats",playbackSeek:"playbackSeek",talkSuccess:"talkSuccess",talkGetUserMediaFail:"talkGetUserMediaFail",ptz:"ptz",streamQualityChange:"streamQualityChange",visibilityChange:"visibilityChange",netBuf:"netBuf",close:"close",networkDelayTimeout:"networkDelayTimeout"},u={load:v.load,timeUpdate:v.timeUpdate,videoInfo:v.videoInfo,audioInfo:v.audioInfo,error:v.error,kBps:v.kBps,log:v.log,start:v.start,timeout:v.timeout,loadingTimeout:v.loadingTimeout,delayTimeout:v.delayTimeout,fullscreen:"fullscreen",play:v.play,pause:v.pause,mute:v.mute,stats:v.stats,performance:v.performance,recordingTimestamp:v.recordingTimestamp,recordStart:v.recordStart,recordEnd:v.recordEnd,playToRenderTimes:v.playToRenderTimes,playbackSeek:v.playbackSeek,playbackStats:v.playbackStats,playbackTimestamp:v.playbackTimestamp,ptz:v.ptz,streamQualityChange:v.streamQualityChange},d={playError:"playIsNotPauseOrUrlIsNull",fetchError:"fetchError",websocketError:"websocketError",webcodecsH265NotSupport:"webcodecsH265NotSupport",webcodecsDecodeError:"webcodecsDecodeError",mediaSourceH265NotSupport:"mediaSourceH265NotSupport",mediaSourceFull:v.mseSourceBufferFull,mseSourceBufferError:v.mseSourceBufferError,mediaSourceAppendBufferError:"mediaSourceAppendBufferError",mediaSourceBufferListLarge:"mediaSourceBufferListLarge",mediaSourceAppendBufferEndTimeout:"mediaSourceAppendBufferEndTimeout",wasmDecodeError:"wasmDecodeError",hlsError:"hlsError",webrtcError:"webrtcError",webglAlignmentError:"webglAlignmentError",webcodecsWidthOrHeightChange:"webcodecsWidthOrHeightChange"},Q="notConnect",o={download:"download",base64:"base64",blob:"blob"},J={7:"H264(AVC)",12:"H265(HEVC)"},X={10:"AAC",7:"ALAW",8:"MULAW"},Y="webm",Z="webcodecs",t="webgl",$="offscreen",ee='video/mp4; codecs="avc1.64002A"',te='video/mp4; codecs="hev1.1.6.L123.b0"',h="oneHour",ie="halfHour",f="fiveMin",A={oneHour:"one-hour",halfHour:"half-hour",tenMin:"ten-min",fiveMin:"five-min"},i=["oneHour","halfHour","tenMin","fiveMin"],re=["up","right","down","left"],l={png:"image/png",jpeg:"image/jpeg",webp:"image/webp"},se="canplay",ne="waiting",ae="timeupdate";var F="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function oe(e,t){return e(t={exports:{}},t.exports),t.exports}var p=oe(function(e){var a,t,o,i,r;a="undefined"!=typeof window&&void 0!==window.document?window.document:{},t=e.exports,o=function(){for(var e,t=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=0,r=t.length,s={};i{b(t,e,i[e])}),t.style[i]=e)}function ue(e,t,i){i=!(2{var t;S(e)&&(r+=e,1e3<=(t=(e=de())-s)&&(i(r/t*1e3),s=e,r=0))}}function E(){return/iphone|ipod|android.*mobile|windows.*phone|blackberry.*mobile/i.test(window.navigator.userAgent.toLowerCase())}function fe(){const e=window.navigator.userAgent;return!e.match(/Chrome/gi)&&e.match(/Safari/gi)}function Ae(e,t){if(0===arguments.length)return null;var t=t||"{y}-{m}-{d} {h}:{i}:{s}",e="object"==typeof e?e:(e=+(e=10===(""+e).length?1e3*parseInt(e):e),new Date(e)),r={y:e.getFullYear(),m:e.getMonth()+1,d:e.getDate(),h:e.getHours(),i:e.getMinutes(),s:e.getSeconds(),a:e.getDay()};return t.replace(/{(y|m|d|h|i|s|a)+}/g,(e,t)=>{var i=r[t];return"a"===t?["一","二","三","四","五","六","日"][i-1]:(i=0this.proxy(t,e,i,r));t.addEventListener(e,i,r);var s=()=>t.removeEventListener(e,i,r);return this.destroys.push(s),s}}destroy(){this.master.debug&&this.master.debug.log("Events","destroy"),this.destroys.forEach(e=>e())}}class n{on(e,t,i){const r=this.e||(this.e={});return(r[e]||(r[e]=[])).push({fn:t,ctx:i}),this}once(r,s,n){const a=this;function o(){a.off(r,o);for(var e=arguments.length,t=new Array(e),i=0;i{delete t[e]}),void delete this.e;const r=t[e],s=[];if(r&&i)for(let e=0,t=r.length;e{(a=(a="string"==typeof a?{filename:a}:a)||{}).width=this.videoInfo.width,a.height=this.videoInfo.height,a.filename=a.filename||g(),a.format=a.format?l[a.format]:l.png,a.quality=Number(a.quality)||.92,a.type=a.type||o.download;const n=this.$videoElement.toDataURL(a.format,a.quality);var e,c;e=n,c=a,new Promise((t,i)=>{let r=me(c);if(!r.image.src&&!r.text.content)return t(e);let s=document.createElement("canvas"),n=(s.width=c.width,s.height=c.height,s.getContext("2d")),a=0,o=0;S(r.left)?a=r.left:S(r.right)&&(a=s.width-r.right),S(r.top)?o=r.top:S(r.bottom)&&(o=s.height-r.bottom);const l=new Image;l.src=e,l.onload=()=>{if(n.drawImage(l,0,0),r.image&&r.image.src){const e=new Image;e.src=r.image.src,e.setAttribute("crossOrigin","Anonymous"),e.onload=()=>{a-=r.image.width,n.drawImage(e,a,o,r.image.width,r.image.height),t(s.toDataURL(c.format,c.quality))},e.onerror=e=>{i()}}else r.text&&r.text.content&&(n.font=r.text.fontSize+"px 宋体",n.fillStyle=r.text.color,n.textAlign="right",n.fillText(r.text.content,a,o),t(s.toDataURL(c.format,c.quality)))},l.onerror=e=>{i(e)}}).then(e=>{e=ce(e);if(a.type===o.base64)s(n);else if(a.type===o.blob)s(e);else if(a.type===o.download){s();{var t=a.filename;const i=document.createElement("a"),r=(i.download=t,URL.createObjectURL(e));return i.href=r,i.click(),void setTimeout(()=>{URL.revokeObjectURL(r)},(t=window.navigator.userAgent.toLowerCase())&&/iphone|ipad|ipod|ios/.test(t)?1e3:0)}}}).catch(e=>{t(e)})})}render(){}clearView(){}play(){}pause(){}resize(){this.player.debug.log("canvasVideo","resize");const e=this.player._opt;let t=this.player.width,i=this.player.height;if(e.hasControl&&!e.controlAutoHide){const e=this.controlHeight;E()&&this.player.fullscreen?t-=e:i-=e}let r=this.$videoElement.width,s=this.$videoElement.height;var n=e.rotate,a=(t-r)/2,o=(i-s)/2,l=(270!==n&&90!==n||(r=this.$videoElement.height,s=this.$videoElement.width),t/r),c=i/s;let u=c{var e;0{this.context2D.drawImage(e,0,0,this.$videoElement.width,this.$videoElement.height)})}catch(e){}else this.context2D.drawImage(e.videoFrame,0,0,this.$videoElement.width,this.$videoElement.height);break;case"mse":case"hls":this.context2D.drawImage(e.$video,0,0,this.$videoElement.width,this.$videoElement.height)}}clearView(){switch(this.renderType){case $:!function(e,t){const i=document.createElement("canvas");return i.width=e,i.height=t,window.createImageBitmap(i,0,0,e,t)}(this.$videoElement.width,this.$videoElement.height).then(e=>{this.bitmaprenderer.transferFromImageBitmap(e)});break;case t:this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT);break;case Z:case"mse":case"hls":this.context2D.clearRect(0,0,this.$videoElement.width,this.$videoElement.height)}}}class a extends ke{constructor(t){super(),this.player=t;const e=document.createElement("video"),i=(e.muted=!0,e.style.position="absolute",e.style.top=0,e.style.left=0,this._videoCanPlay=!1,t.$container.appendChild(e),this.$videoElement=e,t.canVideoTrackWritter()&&(this.trackGenerator=new MediaStreamTrackGenerator({kind:"video"}),e.srcObject=new MediaStream([this.trackGenerator]),this.vwriter=this.trackGenerator.writable.getWriter()),this.resize(),this.player.events)["proxy"];i(this.$videoElement,"canplay",()=>{this.player.debug.log("Video","canplay"),this._videoCanPlay=!0}),i(this.$videoElement,"waiting",()=>{this._videoCanPlay=!1,this.player.debug.log("Video","waiting")}),i(this.$videoElement,"timeupdate",e=>{e=parseInt(e.timeStamp,10);this.player.emit(v.timeUpdate,e),t._opt.isWebrtc&&t.handleRender()}),i(this.$videoElement,"error",()=>{this.player.debug.log("Video","Error "+this.$videoElement.error.code+"; details: "+this.$videoElement.error.message)}),this.player.debug.log("Video","init")}destroy(){super.destroy(),this.$videoElement&&(this.$videoElement.pause(),this.$videoElement.currentTime=0,this.$videoElement.src="",this.player.$container.removeChild(this.$videoElement),this.$videoElement=null),this.trackGenerator&&(this.trackGenerator=null),this.vwriter&&(this.vwriter=null),this._videoCanPlay=!1,this.off(),this.player.debug.log("Video","destroy")}play(){this._play()}_play(){this.$videoElement&&this.$videoElement.play().then(()=>{this.player.debug.log("Video","_play play")}).catch(e=>{this.player.debug.error("Video","_play play",e)})}pause(e){e?this.$videoElement&&this.$videoElement.pause():setTimeout(()=>{this.$videoElement&&this.$videoElement.pause()},100)}clearView(){}screenshot(e,t,i,r){e=e||g(),r=r||o.download;let s=.92;!{png:"image/png",jpeg:"image/jpeg",webp:"image/webp"}[t]&&o[t]&&(r=t,t="png",i=void 0),"string"==typeof i&&(r=i,i=void 0),void 0!==i&&(s=Number(i));i=this.$videoElement;let n=document.createElement("canvas");n.width=i.videoWidth,n.height=i.videoHeight,n.getContext("2d").drawImage(i,0,0,n.width,n.height);i=n.toDataURL(o[t]||o.png,s),t=ce(i);return r===o.base64?i:r===o.blob?t:void(r===o.download&&Ie(t,e))}screenshotWatermark(e){return new Promise((e,t)=>{})}initCanvasViewSize(){this.resize()}render(e){var t;this.vwriter&&(this.player.videoTimestamp=e.ts||0,this.player.updateStats({fps:!0,ts:e.ts||0}),e.videoFrame?this.vwriter.write(e.videoFrame):e.output&&(t=e.output,e={format:"I420",codedWidth:this.videoInfo.width,codedHeight:this.videoInfo.height,timestamp:e.ts},t=new VideoFrame(t,e),this.vwriter.write(t)))}resize(){let e=this.player.width,t=this.player.height;const i=this.player._opt,r=i.rotate;if(i.hasControl&&!i.controlAutoHide){const r=i.playType===m?48:38;E()&&this.player.fullscreen?e-=r:t-=r}this.$videoElement.width=e,this.$videoElement.height=t,270!==r&&90!==r||(this.$videoElement.width=t,this.$videoElement.height=e);let s=(e-this.$videoElement.width)/2,n=(t-this.$videoElement.height)/2,a="contain",o=(i.isResize||(a="fill"),i.isFullResize&&(a="none"),"");"none"===i.mirrorRotate&&r&&(o+=" rotate("+r+"deg)"),"level"===i.mirrorRotate?o+=" rotateY(180deg)":"vertical"===i.mirrorRotate&&(o+=" rotateX(180deg)"),this.$videoElement.style.objectFit=a,this.$videoElement.style.transform=o,this.$videoElement.style.left=s+"px",this.$videoElement.style.top=n+"px"}getType(){return"video"}}class Oe extends Be{constructor(e){super(e),this.controlHeight=48,this.bufferList=[],this.playing=!1,this.playInterval=null,this.fps=1,this.preFps=1,this.playbackRate=1,this._firstTimestamp=null,this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,this.player.debug.log("CanvasPlaybackLoader","init")}destroy(){this._stopSync(),this._firstTimestamp=null,this.playing=!1,this.playbackRate=1,this.fps=1,this.preFps=1,this.bufferList=[],this._renderFps=0,this._startfpsTime=null,this._startFpsTimestamp=null,super.destroy(),this.player.debug.log("CanvasPlaybackLoader","destroy")}_initCanvasRender(){this.renderType=t,this._initContextGl()}_sync(){this._stopSync(),this._doPlay(),this.playInterval=setInterval(()=>{this._doPlay()},this.fragDuration)}_doPlay(){var e;0this.preFps*this.playbackRate*2&&(this.player.debug.warn("CanvasPlaybackLoader","buffer size is "+this.bufferSize),this.bufferList.shift()),this.bufferList.push(e),this.bufferList.length),t=e/(this.fps*this.playbackRate);t<=1?this.setFps(this.preFps):(this.setFps(this.fps+Math.floor(t*this.playbackRate)),this.player.debug.warn("CanvasPlaybackLoader","rate is",t,"fps is",this.fps,"bufferListLength is",e))}initVideo(){this._sync(),this.playing=!0}initVideoDelay(){var e=this.player._opt.playbackDelayTime;0{this.initVideo()},e):this.initVideo()}clearView(){this.contextGl.clear(this.contextGl.COLOR_BUFFER_BIT)}clear(){this.bufferList=[]}resume(){this._sync(),this.playing=!0}pause(){this._stopSync(),this.playing=!1}}class Fe{constructor(e){return new(Fe.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.useMSE?e.mseUseCanvasRender?xe:a:e.isHls?e.useCanvasRender?xe:a:e.isWebrtc?a:e.useWCS?!e.useOffscreen&&e.wcsUseVideoRender?a:xe:e.playType===m?Oe:e.wasmUseVideoRender&&!e.useOffscreen?a:xe}}class Pe extends n{constructor(e){super(),this.bufferList=[],this.player=e,this.scriptNode=null,this.hasInitScriptNode=!1,this.audioContextChannel=null,this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.gainNode=this.audioContext.createGain();const t=this.audioContext.createBufferSource();t.buffer=this.audioContext.createBuffer(1,1,22050),t.connect(this.audioContext.destination),t.noteOn?t.noteOn(0):t.start(0),this.audioBufferSourceNode=t,this.mediaStreamAudioDestinationNode=this.audioContext.createMediaStreamDestination(),this.audioEnabled(!0),this.gainNode.gain.value=0,this.playing=!1,this.audioSyncVideoOption={diff:null},this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1,this.hasAudio=!1,this.on(v.videoSyncAudio,e=>{this.audioSyncVideoOption=e})}resetInit(){this.audioInfo={encType:"",channels:"",sampleRate:""},this.init=!1}destroy(){this.closeAudio(),this.resetInit(),this.audioContext.close(),this.audioContext=null,this.gainNode=null,this.hasAudio=!1,this.playing=!1,this.scriptNode&&(this.scriptNode.onaudioprocess=le,this.scriptNode=null),this.audioBufferSourceNode=null,this.mediaStreamAudioDestinationNode=null,this.hasInitScriptNode=!1,this.audioSyncVideoOption={diff:null},this.off()}updateAudioInfo(e){e.encTypeCode&&(this.audioInfo.encType=X[e.encTypeCode]),e.channels&&(this.audioInfo.channels=e.channels),e.sampleRate&&(this.audioInfo.sampleRate=e.sampleRate),this.audioInfo.sampleRate&&this.audioInfo.channels&&this.audioInfo.encType&&!this.init&&(this.player.emit(v.audioInfo,this.audioInfo),this.init=!0)}get isPlaying(){return this.playing}get isMute(){return 0===this.gainNode.gain.value||this.isStateSuspended()}get volume(){return this.isStateSuspended()?0:this.gainNode.gain.value}get bufferSize(){return this.bufferList.length}initScriptNode(){}mute(e){e?(this.isMute||this.player.emit(v.mute,e),this.setVolume(0),this.audioEnabled(!1),this.clear()):(this.isMute&&this.player.emit(v.mute,e),this.setVolume(.5),this.audioEnabled(!0))}setVolume(e){e=parseFloat(e).toFixed(2),isNaN(e)||(this.audioEnabled(!0),e=y(e,0,1),this.gainNode.gain.value=e,this.gainNode.gain.setValueAtTime(e,this.audioContext.currentTime),this.player.emit(v.volumechange,this.player.volume))}closeAudio(){this.hasInitScriptNode&&(this.scriptNode&&this.scriptNode.disconnect(this.gainNode),this.gainNode&&this.gainNode.disconnect(this.audioContext.destination),this.gainNode&&this.gainNode.disconnect(this.mediaStreamAudioDestinationNode)),this.clear()}audioEnabled(e){e?"suspended"===this.audioContext.state&&this.audioContext.resume():"running"===this.audioContext.state&&this.audioContext.suspend()}isStateRunning(){return"running"===this.audioContext.state}isStateSuspended(){return"suspended"===this.audioContext.state}clear(){this.bufferList=[]}play(e,t){}pause(){this.audioSyncVideoOption={diff:null},this.playing=!1,this.clear()}resume(){this.playing=!0}setRate(e){}}class Me extends Pe{constructor(e){super(e),this.player.debug.log("AudioContext","init")}destroy(){super.destroy(),this.player.debug.log("AudioContext","destroy")}initScriptNode(){if(this.playing=!0,!this.hasInitScriptNode){const s=this.audioInfo.channels,e=this.audioContext.createScriptProcessor(1024,0,s);e.onaudioprocess=e=>{const t=e.outputBuffer;if(this.bufferList.length&&this.playing){const e=this.player._opt;if(e.useWasm&&e.wasmDecodeAudioSyncVideo&&e.hasVideo){if(1e3a){for(let e=0;ethis._frameCount)||(e=this.frameCount),this._frameCount-=e,this._position+=e}receiveSamples(e){var t=1=e-1)break e;var o=i+2*n;r[s+2*a]=(1-this.slopeCount)*t[o]+this.slopeCount*t[o+2],r[s+2*a+1]=(1-this.slopeCount)*t[o+1]+this.slopeCount*t[o+3],a+=1,this.slopeCount+=this._rate}return this.prevSampleL=t[i+2*e-2],this.prevSampleR=t[i+2*e-1],a}}function Ve(){}class He extends class{constructor(e){this._pipe=e}get pipe(){return this._pipe}get inputBuffer(){return this._pipe.inputBuffer}get outputBuffer(){return this._pipe.outputBuffer}fillInputBuffer(){throw new Error("fillInputBuffer() not overridden")}fillOutputBuffer(){let e=0this._position)throw new RangeError("New position may not be greater than current position");var t=this.outputBufferPosition-(this._position-e);if(t<0)throw new RangeError("New position falls outside of history buffer");this.outputBufferPosition=t,this._position=e}get sourcePosition(){return this._sourcePosition}set sourcePosition(e){this.clear(),this._sourcePosition=e}onEnd(){this.callback()}fillInputBuffer(){var e=0t&&(t=i,e=r);return e}seekBestOverlapPositionStereoQuick(){let t,i,r,s,n,a=0;for(this.preCalculateCorrelationReferenceStereo(),i=Number.MIN_VALUE,t=0,s=0,n=0;a<4;a+=1){let e=0;for(;Ke[a][e]&&!((n=s+Ke[a][e])>=this.seekLength);)(r=this.calculateCrossCorrelationStereo(2*n,this.refMidBuffer))>i&&(i=r,t=n),e+=1;s=t}return t}preCalculateCorrelationReferenceStereo(){let e,t,i=0;for(;i=this.sampleReq;){e=this.seekBestOverlapPosition(),this._outputBuffer.ensureAdditionalCapacity(this.overlapLength),this.overlap(Math.floor(e)),this._outputBuffer.put(this.overlapLength),0<(t=this.seekWindowLength-2*this.overlapLength)&&this._outputBuffer.putBuffer(this._inputBuffer,e+this.overlapLength,t);var t=this._inputBuffer.startIndex+2*(e+this.seekWindowLength-this.overlapLength);this.midBuffer.set(this._inputBuffer.vector.subarray(t,t+2*this.overlapLength)),this.skipFract+=this.nominalSkip,e=Math.floor(this.skipFract),this.skipFract-=e,this._inputBuffer.receive(e)}}}function Ge(e,t){return 1e-10<(t{const i=t.outputBuffer;if(this.bufferList.length&&this.playing&&!(1e3{this.initScriptNode(e)},t):this.initScriptNode(e)}setRate(e){e!==this.playbackRate&&this.rateProcessor&&(this.player.debug.log("AudioPlaybackContext","setRate",e),this.playbackRate=e,this.rateProcessor.setRate(e))}play(e,t){this.isMute||(null===this.firstTimestamp&&(this.firstTimestamp=t),this.hasAudio=!0,this.bufferList.push({buffer:e,ts:t-this.firstTimestamp}))}_provide(e){return(1===this.playbackRate?this.processor:this.rateProcessor).provide(e)}}class Je{constructor(e){return new(Je.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){return e.playType===m?Qe:e.isHls||e.isWebrtc?Ue:Me}}class Xe extends n{constructor(t){super(),this.player=t,this.playing=!1,this.abortController=new AbortController,this.streamRate=he(e=>{t.emit(v.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("FetchStream","init")}destroy(){this.abort(),this.off(),this.streamRate=null,this.stopStreamRateInterval(),this.player.debug.log("FetchStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}fetchStream(e){var t=1{this.emit(v.streamSuccess),this.startStreamRateInterval(),e.body.pipeTo(new WritableStream({write:e=>(this.streamRate&&this.streamRate(e.byteLength),i.dispatch(e)),close:()=>{i.close()},abort:e=>{i.close(),this.abort(),-1===e.toString().indexOf("The user aborted a request")&&(this.emit(d.fetchError,e),this.player.emit(v.error,d.fetchError))}}))}).catch(e=>{this.abort(),this.emit(d.fetchError,e),this.player.emit(v.error,d.fetchError)})}abort(){this.abortController&&(this.abortController.abort(),this.abortController=null)}}class Ye extends n{constructor(t){super(),this.player=t,this.socket=null,this.socketStatus=Q,this.wsUrl=null,this.socketDestroyFnList=[],this.streamRate=he(e=>{t.emit(v.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("WebsocketStream","init")}destroy(){this._closeWebSocket(),this.stopStreamRateInterval(),this.wsUrl=null,this.off(),this.player.debug.log("WebsocketStream","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebSocket(){const e=this.player,{debug:t,events:{proxy:i},demux:r}=e;this.socket=new WebSocket(this.wsUrl),this.socket.binaryType="arraybuffer";var s=i(this.socket,"open",()=>{this.emit(v.streamSuccess),this.startStreamRateInterval(),t.log("WebsocketStream","socket open"),this.socketStatus="open"}),n=i(this.socket,"message",e=>{this.streamRate&&this.streamRate(e.data.byteLength),this._handleMessage(e.data)}),a=i(this.socket,"close",()=>{t.log("WebsocketStream","socket close"),this.emit(v.streamEnd),this.socketStatus="close"}),o=i(this.socket,"error",e=>{t.log("WebsocketStream","socket error"),this.emit(d.websocketError,e),this.player.emit(v.error,d.websocketError),this.socketStatus="error",r.close(),t.log("WebsocketStream","socket error:",e)});this.socketDestroyFnList.push(s,n,a,o)}_closeWebSocket(){this.socketDestroyFnList.forEach(e=>e()),this.socket&&(this.socket.close(),this.socket=null),this.socketStatus=Q,this.streamRate=null}_handleMessage(e){const t=this.player["demux"];t?t.dispatch(e):this.player.debug.warn("WebsocketStream","websocket handle message demux is null")}fetchStream(e,t){this.player._times.streamStart=g(),this.wsUrl=e,this._createWebSocket()}resetFetchStream(){this._closeWebSocket(),this._createWebSocket()}}class Ze extends n{constructor(e){super(),(this.player=e).debug.log("HlsStream","init")}destroy(){this.off(),this.player.debug.log("HlsStream","destroy")}fetchStream(e){const t=this.player["hlsDecoder"];this.player._times.streamStart=g(),t.loadSource(e).then(()=>{this.player.debug.log("HlsStream","loadSource success"),this.emit(v.streamSuccess)}).catch(e=>{this.emit(d.hlsError,e),this.emit(v.error,d.hlsError)})}}class $e extends n{constructor(e){super(),this.player=e,this.webrctUrl=null,e.debug.log("WebrtcStream","init")}destroy(){this.webrctUrl=null,this.off(),this.player.debug.log("WebrtcStream","destroy")}fetchStream(e){const t=this.player["webrtc"];this.player._times.streamStart=g(),this.webrctUrl=e.replace("webrtc:",window.location.protocol),t.loadSource(this.webrctUrl).then(()=>{this.player.debug.log("WebrtcStream","loadSource success"),this.emit(v.streamSuccess)}).catch(e=>{this.emit(d.webrtcError,e),this.emit(v.error,d.webrtcError)})}}class et extends n{constructor(t){super(),this.player=t,this.transport=null,this.wtUrl=null,this.streamRate=he(e=>{t.emit(v.kBps,(e/1024).toFixed(2))}),this.streamRateInterval=null,t.debug.log("WebTransportLoader","init")}destroy(){this.abort(),this.off(),this.player.debug.log("WebTransportLoader","destroy")}startStreamRateInterval(){this.stopStreamRateInterval(),this.streamRateInterval=setInterval(()=>{this.streamRate&&this.streamRate(0)},1e3)}stopStreamRateInterval(){this.streamRateInterval&&(clearInterval(this.streamRateInterval),this.streamRateInterval=null)}_createWebTransport(){const e=this.player,{events:{},demux:t}=e;try{this.transport=new WebTransport(this.wtUrl),this.transport.ready.then(()=>{this.emit(v.streamSuccess),this.startStreamRateInterval(),this.transport.createBidirectionalStream().then(e=>{e.readable.pipeTo(new WritableStream(t.input))})}).catch(e=>{this.player.debug.warn("WebTransportLoader","_createWebTransport-ready",e)})}catch(e){this.player.debug.warn("WebTransportLoader","_createWebTransport",e)}}fetchStream(e){this.player._times.streamStart=g(),this.wtUrl=e.replace(/^wt/,"https"),this._createWebTransport()}abort(){if(this.transport)try{this.transport.close(),this.transport=null}catch(e){this.transport=null}}}class tt extends n{constructor(e){super(),this.player=e,this.workUrl=null,e.debug.log("WorkerStream","init")}destroy(){this.workUrl=null,this.player.debug.log("WorkerStream","destroy")}fetchStream(e){this.workUrl=e,this.player._times.streamStart=g(),this.player.decoderWorker.workerFetchStream(e)}}class it{constructor(e){return new(it.getLoaderFactory(e._opt))(e)}static getLoaderFactory(e){var{protocol:e,useWasm:t,playType:i}=e;return 2===e?i===s&&t?tt:Xe:1===e?i===s&&t?tt:Ye:3===e?Ze:4===e?$e:5===e?et:void 0}}var rt=oe(function(e){function T(i,s){if(!i)throw"First parameter is required.";s=new A(i,s=s||{type:"video"});var n=this;function t(e){e&&(s.initCallback=function(){e(),e=s.initCallback=null});var t=new p(i,s);(u=new t(i,s)).record(),c("recording"),s.disableLogs||console.log("Initialized recorderType:",u.constructor.name,"for output-type:",s.type)}function a(r){if(r=r||function(){},u){if("paused"===n.state)return n.resumeRecording(),void setTimeout(function(){a(r)},1);"recording"===n.state||s.disableLogs||console.warn('Recording state should be: "recording", however current state is: ',n.state),s.disableLogs||console.log("Stopped recording "+s.type+" stream."),"gif"!==s.type?u.stop(e):(u.stop(),e()),c("stopped")}else d();function e(e){if(u){Object.keys(u).forEach(function(e){"function"!=typeof u[e]&&(n[e]=u[e])});var t,i=u.blob;if(!i){if(!e)throw"Recording failed.";u.blob=i=e}if(i&&!s.disableLogs&&console.log(i.type,"->",v(i.size)),r){try{t=w.createObjectURL(i)}catch(e){}"function"==typeof r.call?r.call(n,t):r(t)}s.autoWriteToDisk&&l(function(e){var t={};t[s.type+"Blob"]=e,L.Store(t)})}else"function"==typeof r.call?r.call(n,""):r("")}}function o(e){postMessage((new FileReaderSync).readAsDataURL(e))}function l(t,e){if(!t)throw"Pass a callback function over getDataURL.";var i,r=(e||u||{}).blob;if(!r)return s.disableLogs||console.warn("Blob encoder did not finish its job yet."),void setTimeout(function(){l(t,e)},1e3);"undefined"==typeof Worker||navigator.mozGetUserMedia?((i=new FileReader).readAsDataURL(r),i.onload=function(e){t(e.target.result)}):((i=function(e){try{var t=w.createObjectURL(new Blob([e.toString(),"this.onmessage = function (eee) {"+e.name+"(eee.data);}"],{type:"application/javascript"})),i=new Worker(t);return w.revokeObjectURL(t),i}catch(e){}}(o)).onmessage=function(e){t(e.data)},i.postMessage(r))}function r(e){e=e||0,"paused"!==n.state?"stopped"!==n.state&&(e>=n.recordingDuration?a(n.onRecordingStopped):(e+=1e3,setTimeout(function(){r(e)},1e3))):setTimeout(function(){r(e)},1e3)}function c(e){n&&(n.state=e,"function"==typeof n.onStateChanged.call?n.onStateChanged.call(n,e):n.onStateChanged(e))}var u,e='It seems that recorder is destroyed or "startRecording" is not invoked for '+s.type+" recorder.";function d(){!0!==s.disableLogs&&console.warn(e)}var h,f={startRecording:function(e){return s.disableLogs||console.log("RecordRTC version: ",n.version),(s=e?new A(i,e):s).disableLogs||console.log("started recording "+s.type+" stream."),u?(u.clearRecordedData(),u.record(),c("recording"),n.recordingDuration&&r()):t(function(){n.recordingDuration&&r()}),n},stopRecording:a,pauseRecording:function(){u?"recording"===n.state?(c("paused"),u.pause(),s.disableLogs||console.log("Paused recording.")):s.disableLogs||console.warn("Unable to pause the recording. Recording state: ",n.state):d()},resumeRecording:function(){u?"paused"===n.state?(c("recording"),u.resume(),s.disableLogs||console.log("Resumed recording.")):s.disableLogs||console.warn("Unable to resume the recording. Recording state: ",n.state):d()},initRecorder:t,setRecordingDuration:function(e,t){if(void 0===e)throw"recordingDuration is required.";if("number"!=typeof e)throw"recordingDuration must be a number.";return n.recordingDuration=e,n.onRecordingStopped=t||function(){},{onRecordingStopped:function(e){n.onRecordingStopped=e}}},clearRecordedData:function(){u?(u.clearRecordedData(),s.disableLogs||console.log("Cleared old recorded data.")):d()},getBlob:function(){if(u)return u.blob;d()},getDataURL:l,toURL:function(){if(u)return w.createObjectURL(u.blob);d()},getInternalRecorder:function(){return u},save:function(e){u?y(u.blob,e):d()},getFromDisk:function(e){u?T.getFromDisk(s.type,e):d()},setAdvertisementArray:function(e){s.advertisement=[];for(var t=e.length,i=0;i>=8;return new Uint8Array(t.reverse())}(e[i].id)),t.push(a(n)),t.push(r)}return new Blob(t,{type:"video/webm"})}function o(e){for(var t=0,i={};t 127 not supported";return[128|e.trackNum,e.timecode>>8,255&e.timecode,t].map(function(e){return String.fromCharCode(e)}).join("")+e.frame}({discardable:0,frame:e.data.slice(4),invisible:0,keyframe:1,lacing:0,trackNum:1,timecode:Math.round(i)});return i+=e.duration,{data:t,id:163}}))}(n,0,a)};r[1].data.push(l),n+=o}return c(r)}(e.map(function(e){var t=function(e){for(var t=e.RIFF[0].WEBP[0],i=t.indexOf("*"),r=0,s=[];r<4;r++)s[r]=t.charCodeAt(i+3+r);return{width:16383&(s[1]<<8|s[0]),height:16383&(s[3]<<8|s[2]),data:t,riff:e}}(o(atob(e.image.slice(23))));return t.duration=e.duration,t}));postMessage(e)}T.Whammy=R;var L={init:function(){var i,e,t,r=this;function s(e){e.createObjectStore(r.dataStoreName)}function n(){var e=i.transaction([r.dataStoreName],"readwrite");function t(t){e.objectStore(r.dataStoreName).get(t).onsuccess=function(e){r.callback&&r.callback(e.target.result,t)}}r.videoBlob&&e.objectStore(r.dataStoreName).put(r.videoBlob,"videoBlob"),r.gifBlob&&e.objectStore(r.dataStoreName).put(r.gifBlob,"gifBlob"),r.audioBlob&&e.objectStore(r.dataStoreName).put(r.audioBlob,"audioBlob"),t("audioBlob"),t("videoBlob"),t("gifBlob")}"undefined"!=typeof indexedDB&&void 0!==indexedDB.open?(e=this.dbName||location.href.replace(/\/|:|#|%|\.|\[|\]/g,""),(t=indexedDB.open(e,1)).onerror=r.onError,t.onsuccess=function(){(i=t.result).onerror=r.onError,i.setVersion&&1!==i.version?i.setVersion(1).onsuccess=function(){s(i),n()}:n()},t.onupgradeneeded=function(e){s(e.target.result)}):console.error("IndexedDB API are not available in this browser.")},Fetch:function(e){return this.callback=e,this.init(),this},Store:function(e){return this.audioBlob=e.audioBlob,this.videoBlob=e.videoBlob,this.gifBlob=e.gifBlob,this.init(),this},onError:function(e){console.error(JSON.stringify(e,null,"\t"))},dataStoreName:"recordRTC",dbName:null};function I(e,i){"undefined"==typeof GIFEncoder&&((t=document.createElement("script")).src="https://www.webrtc-experiment.com/gif-recorder.js",(document.body||document.documentElement).appendChild(t)),i=i||{};var t,r,s=e instanceof CanvasRenderingContext2D||e instanceof HTMLCanvasElement,n=(this.record=function(){"undefined"!=typeof GIFEncoder&&l?(s||(i.width||(i.width=r.offsetWidth||320),i.height||(i.height=r.offsetHeight||240),i.video||(i.video={width:i.width,height:i.height}),i.canvas||(i.canvas={width:i.width,height:i.height}),a.width=i.canvas.width||320,a.height=i.canvas.height||240,r.width=i.video.width||320,r.height=i.video.height||240),(u=new GIFEncoder).setRepeat(0),u.setDelay(i.frameRate||200),u.setQuality(i.quality||10),u.start(),"function"==typeof i.onGifRecordingStarted&&i.onGifRecordingStarted(),d=f(function e(t){if(!0!==h.clearedRecordedData){if(n)return setTimeout(function(){e(t)},100);d=f(e),t-c<90||(!s&&r.paused&&r.play(),s||o.drawImage(r,0,0,a.width,a.height),i.onGifPreview&&i.onGifPreview(a.toDataURL("image/png")),u.addFrame(o),c=t)}}),i.initCallback&&i.initCallback()):setTimeout(h.record,1e3)},!(this.stop=function(e){e=e||function(){},d&&g(d),this.blob=new Blob([new Uint8Array(u.stream().bin)],{type:"image/gif"}),e(this.blob),u.stream().bin=[]})),a=(this.pause=function(){n=!0},this.resume=function(){n=!1},this.clearRecordedData=function(){h.clearedRecordedData=!0,u&&(u.stream().bin=[])},this.name="GifRecorder",this.toString=function(){return this.name},document.createElement("canvas")),o=a.getContext("2d"),l=(s&&(e instanceof CanvasRenderingContext2D?a=(o=e).canvas:e instanceof HTMLCanvasElement&&(o=e.getContext("2d"),a=e)),!0);s||((r=document.createElement("video")).muted=!0,r.autoplay=!0,r.playsInline=!0,l=!1,r.onloadedmetadata=function(){l=!0},S(e,r),r.play());var c,u,d=null,h=this}function B(r,s){s=s||"multi-streams-mixer";var n=[],a=!1,o=document.createElement("canvas"),l=o.getContext("2d"),c=(o.style.opacity=0,o.style.position="absolute",o.style.zIndex=-1,o.style.top="-1000em",o.style.left="-1000em",o.className=s,(document.body||document.documentElement).appendChild(o),this.disableLogs=!1,this.frameInterval=10,this.width=360,this.height=240,this.useGainNode=!0,this),e=window.AudioContext;void 0===e&&("undefined"!=typeof webkitAudioContext&&(e=webkitAudioContext),"undefined"!=typeof mozAudioContext&&(e=mozAudioContext));window.URL,"undefined"!=typeof navigator&&void 0===navigator.getUserMedia&&(void 0!==navigator.webkitGetUserMedia&&(navigator.getUserMedia=navigator.webkitGetUserMedia),void 0!==navigator.mozGetUserMedia&&(navigator.getUserMedia=navigator.mozGetUserMedia));var u=window.MediaStream,d=(void 0!==(u=void 0===u&&"undefined"!=typeof webkitMediaStream?webkitMediaStream:u)&&void 0===u.prototype.stop&&(u.prototype.stop=function(){this.getTracks().forEach(function(e){e.stop()})}),{});function h(){var e,t,i;a||(e=n.length,t=!1,i=[],n.forEach(function(e){e.stream||(e.stream={}),e.stream.fullcanvas?t=e:i.push(e)}),t?(o.width=t.stream.width,o.height=t.stream.height):i.length?(o.width=1{t.log("Recorder","record timestamp :"+e)},disableLogs:!this.player._opt.debug};try{const t=this.player.video.$videoElement.captureStream(25);if(this.player.audio&&this.player.audio.mediaStreamAudioDestinationNode&&this.player.audio.mediaStreamAudioDestinationNode.stream&&!this.player.audio.isStateSuspended()&&this.player.audio.hasAudio&&this.player._opt.hasAudio){const e=this.player.audio.mediaStreamAudioDestinationNode.stream;var i;0{this.recordingTimestamp+=1,this.player.emit(v.recordingTimestamp,this.recordingTimestamp)},1e3))}stopRecordAndSave(){this.recorder&&this.isRecording&&this.recorder.stopRecording(()=>{this.player.debug.log("Recorder","stop recording"),this.player.emit(v.recordEnd);var e=(this.fileName||g())+"."+(this.fileType||Y);Ie(this.recorder.getBlob(),e),this._reset(),this.player.emit(v.recording,!1)})}_reset(){this.isRecording=!1,this.recordingTimestamp=0,this.recorder&&(this.recorder.destroy(),this.recorder=null),this.fileName=null,this.recordingInterval&&clearInterval(this.recordingInterval),this.recordingInterval=null}}class nt{constructor(e){return new(nt.getLoaderFactory())(e)}static getLoaderFactory(){return st}}class at{constructor(e){this.player=e,this.decoderWorker=new Worker(e._opt.decoder),this._initDecoderWorker(),e.debug.log("decoderWorker","init"),e.on(v.visibilityChange,()=>{this.updateWorkConfig({key:"visibility",value:e.visibility})})}destroy(){this.decoderWorker.postMessage({cmd:"close"}),this.decoderWorker.terminate(),this.decoderWorker=null,this.player.debug.log("decoderWorker","destroy")}_initDecoderWorker(){const{debug:i,events:{}}=this.player;this.decoderWorker.onmessage=e=>{const t=e.data;switch(t.cmd){case V:i.log("decoderWorker","onmessage:",V),this.player.loaded||this.player.emit(v.load),this.player.emit(v.decoderWorkerInit),this._initWork();break;case G:i.log("decoderWorker","onmessage:",G,t.code),this.player._times.decodeStart||(this.player._times.decodeStart=g()),this.player.video.updateVideoInfo({encTypeCode:t.code});break;case W:i.log("decoderWorker","onmessage:",W,t.code),this.player.audio&&this.player.audio.updateAudioInfo({encTypeCode:t.code});break;case H:if(i.log("decoderWorker","onmessage:",H,`width:${t.w},height:`+t.h),this.player.video.updateVideoInfo({width:t.w,height:t.h}),!this.player._opt.openWebglAlignment&&t.w/2%4!=0&&this.player.getRenderType()===j)return void this.player.emit(d.webglAlignmentError);this.player.video.initCanvasViewSize(),this.player._opt.playType===m&&(this.player.video.initFps(),this.player.video.initVideoDelay());break;case K:i.log("decoderWorker","onmessage:",K,`channels:${t.channels},sampleRate:`+t.sampleRate),this.player.audio&&(this.player.audio.updateAudioInfo(t),this.player._opt.playType===s?this.player.audio.initScriptNode(t):this.player._opt.playType===m&&this.player.audio.initScriptNodeDelay(t));break;case"render":this.player._opt.playType===s?(this.player.handleRender(),this.player.emit(v.timeUpdate,t.ts),this.player.updateStats({dfps:!0,buf:t.delay}),this.player.video.render(t),this.player._times.videoStart||(this.player._times.videoStart=g(),this.player.handlePlayToRenderTimes())):this.player._opt.playType===m&&this.player.video.pushData(t);break;case"playAudio":(this.player.playing&&this.player.audio||!this.player.video)&&(this.player._opt.hasVideo||this.player.handleRender(),this.player._opt.playType!==s&&this.player._opt.playType!==m||this.player.audio.play(t.buffer,t.ts));break;case"workerFetch":t.type===v.streamSuccess?this.player.stream.emit(v.streamSuccess):t.type===v.streamRate?this.player.emit(v.kBps,(t.value/1024).toFixed(2)):t.type===v.streamEnd?this.player.stream.emit(v.streamEnd):t.type===d.websocketError?(this.player.stream.emit(d.websocketError,t.value),this.player.emit(v.error,d.websocketError)):t.type===d.fetchError?(this.player.stream.emit(d.fetchError,t.value),this.player.emit(v.error,d.fetchError)):t.type===v.streamAbps?this.player.updateStats({abps:t.value}):t.type===v.streamVbps?(this.player._times.demuxStart||(this.player._times.demuxStart=g()),this.player.updateStats({vbps:t.value})):t.type===v.netBuf?this.player.updateStats({netBuf:t.value}):t.type===v.networkDelayTimeout&&this.player.emit(v.networkDelayTimeout,t.value);break;case"wasmError":t.message&&-1!==t.message.indexOf("Invalid NAL unit size")&&(this.player.emit(v.error,d.wasmDecodeError),this.player.emit(d.wasmDecodeError));break;case z:i.log("decoderWorker","onmessage:",z),this.player.destroy(),console.error("jessibuca pro 体验结束,请刷新页面再次体验"),alert("jessibuca pro 体验结束,请刷新页面再次体验,如需要购买商业授权,可以联系微信:bosswancheng"),window.location.reload();break;default:this.player[t.cmd]&&this.player[t.cmd](t)}}}_initWork(){var e={debug:this.player._opt.debug,useOffscreen:this.player._opt.useOffscreen,useWCS:this.player._opt.useWCS,videoBuffer:this.player._opt.videoBuffer,videoBufferDelay:this.player._opt.videoBufferDelay,openWebglAlignment:this.player._opt.openWebglAlignment,playType:this.player._opt.playType,hasAudio:this.player._opt.hasAudio,hasVideo:this.player._opt.hasVideo,playbackRate:1,playbackForwardMaxRateDecodeIFrame:this.player._opt.playbackForwardMaxRateDecodeIFrame,sampleRate:this.player.audio&&this.player.audio.audioContext.sampleRate||0,networkDelay:this.player._opt.networkDelay,visibility:this.player.visibility};this.decoderWorker.postMessage({cmd:"init",opt:JSON.stringify(e)})}decodeVideo(e,t,i){this.player._opt.playType===s?this._decodeVideo(e,t,i):this.player._opt.playType===m&&(this.player.video.rate>=this.player._opt.playbackForwardMaxRateDecodeIFrame?i&&(this.player.debug.log("decoderWorker",`current rate is ${this.player.video.rate},only decode i frame`),this._decodeVideoNoDelay(e,t,i)):1===this.player.video.rate?this._decodeVideo(e,t,i):this._decodeVideoNoDelay(e,t,i))}_decodeVideo(e,t,i){t={type:2,ts:Math.max(t,0),isIFrame:i};this.decoderWorker.postMessage({cmd:q,buffer:e,options:t},[e.buffer])}_decodeVideoNoDelay(e,t,i){this.decoderWorker.postMessage({cmd:"videoDecode",buffer:e,ts:Math.max(t,0),isIFrame:i},[e.buffer])}decodeAudio(e,t){this.player._opt.playType===s?this.player._opt.useWCS||this.player._opt.useMSE?this._decodeAudioNoDelay(e,t):this._decodeAudio(e,t):this.player._opt.playType===m&&(1===this.player.video.rate?this._decodeAudio(e,t):this._decodeAudioNoDelay(e,t))}_decodeAudio(e,t){t={type:1,ts:Math.max(t,0)};this.decoderWorker.postMessage({cmd:q,buffer:e,options:t},[e.buffer])}_decodeAudioNoDelay(e,t){this.decoderWorker.postMessage({cmd:"audioDecode",buffer:e,ts:Math.max(t,0)},[e.buffer])}updateWorkConfig(e){this.decoderWorker&&this.decoderWorker.postMessage({cmd:"updateConfig",key:e.key,value:e.value})}workerFetchStream(e){var t=this.player["_opt"],t={protocol:t.protocol,isFlv:t.isFlv};this.decoderWorker.postMessage({cmd:"fetchStream",url:e,opt:JSON.stringify(t)})}clearWorkBuffer(){this.decoderWorker.postMessage({cmd:"clearBuffer",needClear:0{this._loop()},10)}_loop(){let e;var t=this.player._opt.videoBuffer,i=this.player._opt.videoBufferDelay;if(this.bufferList.length)if(this.dropping){for(1===(e=this.bufferList.shift()).type&&0===e.payload[1]&&this._doDecoderDecode(e);!e.isIFrame&&this.bufferList.length;)1===(e=this.bufferList.shift()).type&&0===e.payload[1]&&this._doDecoderDecode(e);e.isIFrame&&this.bufferList.length<10&&(this.player.debug.warn("common dumex","_loop data isIFrame is true and delay is "+this.delay),this.dropping=!1,this._doDecoderDecode(e))}else e=this.bufferList[0],-1===this.getDelay(e.ts)?(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay>i+t?(this.resetDelay(),this.dropping=!0):this.delay>t?(this.bufferList.shift(),this._doDecoderDecode(e)):this.delay<0&&this.player.debug.error("common dumex",`delay is ${this.delay} bufferList is `+this.bufferList)}_doDecode(e,t,i,r,s){const n=this.player;let a={ts:i,cts:s,type:t,isIFrame:!1};2===t&&this.calcNetworkDelay(i),n._opt.useWCS&&!n._opt.useOffscreen||n._opt.useMSE?(2===t&&(a.isIFrame=r),this.pushBuffer(e,a)):2===t?n.decoderWorker&&n.decoderWorker.decodeVideo(e,i,r):1===t&&n._opt.hasAudio&&n.decoderWorker&&n.decoderWorker.decodeAudio(e,i)}_doDecoderDecode(e){const t=this.player,{webcodecsDecoder:i,mseDecoder:r}=t;1===e.type?t._opt.hasAudio&&t.decoderWorker&&t.decoderWorker.decodeAudio(e.payload,e.ts):2===e.type&&(t._opt.useWCS&&!t._opt.useOffscreen?i.decodeVideo(e.payload,e.ts,e.isIFrame):t._opt.useMSE&&r.decodeVideo(e.payload,e.ts,e.isIFrame,e.cts))}pushBuffer(e,t){var i=this.player._opt.videoBuffer,r=this.player._opt.videoBufferDelay;this.getDelay(t.ts)>r+i&&this.dropBuffer(),this.player._opt.useMSE&&1e3*this.player.mseDecoder.checkSourceBufferDelay()>r+i&&this.player.mseDecoder.dropSourceBuffer(!0),1===t.type?this.bufferList.push({ts:t.ts,payload:e,type:1}):2===t.type&&this.bufferList.push({ts:t.ts,cts:t.cts,payload:e,type:2,isIFrame:t.isIFrame}),60this.player._opt.networkDelay&&this.player._opt.playType===s&&(this.player.debug.warn("CommonDemux",`demuxFlv now dts:${e},start dts is ${this.bufferStartDts}, vs start is ${t},local diff is ${i} ,delay is `+r),this.player.emit(v.networkDelayTimeout,r)),this.player.updateStats({netBuf:r}))}resetNetworkDelayTimeoutLock(){this.networkDelayTimeoutLock=!1}close(){}reset(){}}const lt=[[Uint8Array,Int8Array],[Uint16Array,Int16Array],[Uint32Array,Int32Array,Float32Array],[Float64Array]],ct=Symbol(32),ut=Symbol(16),dt=Symbol(8),ht=new Map;lt.forEach((e,t)=>e.forEach(e=>ht.set(e,t)));class ft{constructor(e){this.g=e,this.consumed=0,e&&(this.need=e.next().value)}fillFromReader(i){return e=this,l=function*(){var{done:e,value:t}=yield i.read();return e?void this.close():(this.write(t),this.fillFromReader(i))},new(o=(o=a=void 0)||Promise)(function(i,t){function r(e){try{n(l.next(e))}catch(e){t(e)}}function s(e){try{n(l.throw(e))}catch(e){t(e)}}function n(e){var t;e.done?i(e.value):((t=e.value)instanceof o?t:new o(function(e){e(t)})).then(r,s)}n((l=l.apply(e,a||[])).next())});var e,a,o,l}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(e,t){return t&&this.consume(),this.need=e,this.flush()}read(i){return new Promise((t,e)=>{if(this.resolve)return e("last read not complete yet");this.resolve=e=>{delete this.resolve,delete this.need,t(e)},this.demand(i,!0)})}readU32(){return this.read(ct)}readU16(){return this.read(ut)}readU8(){return this.read(dt)}close(){this.g&&this.g.return()}flush(){if(this.buffer&&this.need){let e=null;const r=this.buffer.subarray(this.consumed);let t=0;var i=e=>r.length<(t=e);if("number"==typeof this.need){if(i(this.need))return;e=r.subarray(0,t)}else if(this.need instanceof ArrayBuffer){if(i(this.need.byteLength))return;new Uint8Array(this.need).set(r.subarray(0,t)),e=this.need}else if(this.need===ct){if(i(4))return;e=r[0]<<24|r[1]<<16|r[2]<<8|r[3]}else if(this.need===ut){if(i(2))return;e=r[0]<<8|r[1]}else if(this.need===dt){if(i(1))return;e=r[0]}else if(ht.has(this.need.constructor)){if(i(this.need.length<>24&255,e>>16&255,e>>8&255,255&e]),this.flush()}writeU16(e){this.malloc(2).set([e>>8&255,255&e]),this.flush()}writeU8(e){this.malloc(1)[0]=e,this.flush()}malloc(e){if(this.buffer){var t=this.buffer.length,i=t+e;if(i<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,i);else{const e=new Uint8Array(i);e.set(this.buffer),this.buffer=e}return this.buffer.subarray(t,i)}return this.buffer=new Uint8Array(e),this.buffer}}ft.U32=ct,ft.U16=ut,ft.U8=dt;class At extends ot{constructor(e){super(e),this.input=new ft(this.demux()),e.debug.log("FlvDemux","init")}destroy(){super.destroy(),this.input=null,this.player.debug.log("FlvDemux","destroy")}dispatch(e){this.input.write(e)}*demux(){yield 9;const t=new ArrayBuffer(4),i=new Uint8Array(t),r=new Uint32Array(t),s=this.player;for(;;){if(!this.input)return;i[3]=0;const t=yield 15,l=t[4];i[0]=t[7],i[1]=t[6],i[2]=t[5];var n=r[0];i[0]=t[10],i[1]=t[9],i[2]=t[8];let e=r[0];16777215===e&&(i[3]=t[11],e=r[0]);var a,o=(yield n).slice();if(!s)return;switch(l){case 8:s._opt.hasAudio&&(s.updateStats({abps:o.byteLength}),0>4==1;0>4==1,t.updateStats({vbps:n.byteLength}),0>>32-e,this._current_word<<=e,this._current_word_bits_left-=e,t;var t=this._current_word_bits_left?this._current_word:0,e=(t>>>=32-this._current_word_bits_left,e-this._current_word_bits_left),e=(this._fillCurrentWord(),Math.min(e,this._current_word_bits_left)),i=this._current_word>>>32-e;return this._current_word<<=e,this._current_word_bits_left-=e,t<>>e))return this._current_word<<=e,this._current_word_bits_left-=e,e;return this._fillCurrentWord(),e+this._skipLeadingZero()}readUEG(){var e=this._skipLeadingZero();return this.readBits(e+1)-1}readSEG(){var e=this.readUEG();return 1&e?e+1>>>1:-1*(e>>>1)}}class D{static _ebsp2rbsp(e){let t=e,i=t.byteLength,r=new Uint8Array(i),s=0;for(let e=0;e=this.buflen)return this.iserro=!0,0;this.iserro=!1,i=8>8-this.bufoff-i&255>>8-i),this.bufoff+=i,e-=i,8==this.bufoff&&(this.bufpos++,this.bufoff=0)}return t}look(e){var t=this.bufpos,i=this.bufoff,e=this.read(e);return this.bufpos=t,this.bufoff=i,e}read_golomb(){let e;for(e=0;0===this.read(1)&&!this.iserro;e++);return(1<(e[t]=` - - ${St[t]?`${St[t]}`:""} -`,e),{});function L(e,t){let i=!1;return e.forEach(e=>{i||e.startTimestamp<=t&&e.endTimestamp>t&&(i=!0)}),i}function Tt(e,t,i){let r=0 - ${n.title} - - `),s[h]);c&&(i+=` -
${c.title}
- `),h+=1}t&&n.$playbackTimeListOne.insertAdjacentHTML("beforeend",t),i&&n.$playbackTimeListSecond.insertAdjacentHTML("beforeend",i),(d+=1){const{proxy:s}=n["events"],o=document.createElement("object");o.setAttribute("aria-hidden","true"),o.setAttribute("tabindex",-1),o.type="text/html",o.data="about:blank",b(o,{display:"block",position:"absolute",top:"0",left:"0",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:"-1"});let l=n.width,e=n.height;s(o,"load",()=>{s(o.contentDocument.defaultView,"resize",()=>{n.width===l&&n.height===e||(l=n.width,e=n.height,n.emit(v.resize),i())})}),n.$container.appendChild(o),n.on(v.destroy,()=>{n.$container.removeChild(o)}),n.on(v.volumechange,()=>{var e,t,i;0===(e=n.volume)?(b(a.$volumeOn,"display","none"),b(a.$volumeOff,"display","flex"),b(a.$volumeHandle,"top","48px")):a.$volumeHandle&&a.$volumePanel&&(t=ue(a.$volumePanel,"height")||60,i=ue(a.$volumeHandle,"height"),b(a.$volumeHandle,"top",t-(t-i)*e-i+"px"),b(a.$volumeOn,"display","flex"),b(a.$volumeOff,"display","none")),a.$volumePanelText&&(a.$volumePanelText.innerHTML=parseInt(100*e))}),n.on(v.loading,e=>{b(a.$loading,"display",e?"flex":"none"),b(a.$poster,"display","none"),e&&b(a.$playBig,"display","none")});const t=e=>{e=!0===e||!1===e?e:n.fullscreen;b(a.$fullscreenExit,"display",e?"flex":"none"),b(a.$fullscreen,"display",e?"none":"flex")},i=i=>{E()&&a.$controls&&setTimeout(()=>{if(n.fullscreen){console.log(n.width,n.height);const i=n._opt.playType===m?48:38;var e=n.height/2-n.width+i/2,t=n.height/2-i/2;a.$controls.style.transform=`translateX(${-e}px) translateY(-${t}px) rotate(-90deg)`}else a.$controls.style.transform="translateX(0) translateY(0) rotate(0)";i&&i()},10)};try{p.on("change",t),n.events.destroys.push(()=>{p.off("change",t)})}catch(n){}n.on(v.webFullscreen,e=>{t(e),i(()=>{r()})}),n.on(v.recording,()=>{b(a.$record,"display",n.recording?"none":"flex"),b(a.$recordStop,"display",n.recording?"flex":"none"),b(a.$recording,"display",n.recording?"flex":"none")}),n.on(v.recordingTimestamp,e=>{var t,i;a.$recordingTime&&(a.$recordingTime.innerHTML=(-1<(e=e)&&(t=e%60,i=(i=Math.floor(e/3600))<10?"0"+i+":":i+":",(e=Math.floor(e/60)%60)<10&&(i+="0"),i+=e+":",(t=Math.round(t))<10&&(i+="0"),i+=t.toFixed(0)),i))}),n.on(v.zooming,()=>{b(a.$zoom,"display",n.zooming?"none":"flex"),b(a.$zoomStop,"display",n.zooming?"flex":"none"),b(a.$zoomControls,"display",n.zooming?"flex":"none")}),n.on(v.playing,e=>{b(a.$play,"display",e?"none":"flex"),b(a.$playBig,"display",e?"none":"block"),b(a.$pause,"display",e?"flex":"none"),b(a.$screenshot,"display",e?"flex":"none"),b(a.$record,"display",e?"flex":"none"),b(a.$fullscreen,"display",e?"flex":"none"),b(a.$qualityMenu,"display",e?"flex":"none"),b(a.$volume,"display",e?"flex":"none"),b(a.$ptz,"display",e?"flex":"none"),b(a.$zoom,"display",e?"flex":"none"),e||a.$speed&&(a.$speed.innerHTML="0 kb/s"),r()}),n.on(v.kBps,e=>{if(n._opt.showBandwidth){const n=function(e){if(null==e||""===e||0===parseFloat(e)||"NaN"===e)return"0 kb/s";var t=["kb/s","MB/S","GB/S","TB/S","PB/S","EB/S","ZB/S","YB/S"],e=parseFloat(e),i=Math.floor(Math.log(e)/Math.log(1024));let r=e/Math.pow(1024,i);return(r=r.toFixed(2))+(t[i]||t[0])}(e);a.$speed&&(a.$speed.innerHTML=n),r()}});const r=()=>{if(n._opt.playType===m){let e=a.controlsInnerRect.width-a.controlsLeftRect.width-a.controlsRightRect.width-a.controlsPlaybackBtnsRect.width;E()&&n.webFullscreen&&(e=a.controlsInnerRect.height-a.controlsLeftRect.height-a.controlsRightRect.height-a.controlsPlaybackBtnsRect.height),a.$playbackTimeInner.style.width=e+"px"}};if(n._opt.playType===m){const s=()=>{if(n._opt.playType===m){let e=0;var t=n.playback&&n.playback.playingTimestamp;if(t){const i=new Date(t),r=i.getHours(),m=i.getMinutes(),s=i.getSeconds();n.playback.is60Min?e=60*r+m:n.playback.is30Min?e=2*(60*r+m)+parseInt(s/30,10):n.playback.is10Min?e=6*(60*r+m)+parseInt(s/10,10):n.playback.is5Min?e=12*(60*r+m)+parseInt(s/5,10):n.playback.is1Min&&(e=60*(60*r+m)+parseInt(s,10)),a.$playbackCurrentTime.style.left=e+"px"}}},o=e=>{a.$playbackNarrow.classList.remove("disabled"),a.$playbackExpand.classList.remove("disabled"),e===h&&a.$playbackNarrow.classList.add("disabled"),e===f&&a.$playbackExpand.classList.add("disabled")},l=()=>{var e=a.$playbackCurrentTime.style.left;let t=parseInt(e,10);e=a.controlsPlaybackTimeInner.width;t=0{a.$playbackCurrentTimeText&&(a.$playbackCurrentTimeText.innerText=Ae(e,"{h}:{i}:{s}")),s()}),n.on(v.playbackPrecision,(i,r)=>{a.$playbackTimeScroll.classList.remove(A.oneHour,A.halfHour,A.fiveMin,A.tenMin),a.$playbackTimeScroll.classList.add(A[i]),a.rafId&&(window.cancelAnimationFrame(a.rafId),a.rafId=null),a.changePercisitionInterval&&(clearTimeout(a.changePercisitionInterval),a.changePercisitionInterval=null),a.$playbackTimeListOne.innerHTML="",a.$playbackTimeListSecond.innerHTML="",a.changePercisitionInterval=setTimeout(()=>{switch(a.$playbackTimeListOne.innerHTML="",a.$playbackTimeListSecond.innerHTML="",i){case h:wt(r,a);break;case ie:t=a,Tt(function(e){let s=0{r()}),r()}if(n._opt.operateBtns.quality&&0{a.$qualityText.innerText=i,a.$qualityMenuItems.forEach(e=>{var t=e.dataset.quality;e.classList.remove("jessibuca-quality-menu-item-active"),t===i&&e.classList.add("jessibuca-quality-menu-item-active")})});{const c=n._opt.qualityConfig||[];let t="";c.forEach(e=>{t+=` -
${e}
- `}),t&&(a.$qualityMenuList.insertAdjacentHTML("beforeend",t),Object.defineProperty(a,"$qualityMenuItems",{value:n.$container.querySelectorAll(".jessibuca-quality-menu-item")}),setTimeout(()=>{var e=c[0];n.streamQuality=e},0))}}};Se('@keyframes rotation{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(1turn)}}@keyframes magentaPulse{0%{background-color:#630030;-webkit-box-shadow:0 0 9px #333}50%{background-color:#a9014b;-webkit-box-shadow:0 0 18px #a9014b}to{background-color:#630030;-webkit-box-shadow:0 0 9px #333}}.jessibuca-container .jessibuca-icon{cursor:pointer;width:16px;height:16px;display:inline-block}.jessibuca-container .jessibuca-ptz-controls{position:absolute;width:156px;height:156px;visibility:hidden;opacity:0;border-radius:78px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%;transition:visibility .3s,opacity .3s;right:43px;bottom:135px}.jessibuca-container .jessibuca-ptz-controls.jessibuca-ptz-controls-show{visibility:visible;opacity:1}.jessibuca-container .jessibuca-ptz-bg-active{visibility:hidden;opacity:0;width:156px;height:156px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-ptz-bg-active.jessibuca-ptz-bg-active-up{transform:rotate(-90deg)}.jessibuca-container .jessibuca-ptz-bg-active.jessibuca-ptz-bg-active-left{transform:rotate(180deg)}.jessibuca-container .jessibuca-ptz-bg-active.jessibuca-ptz-bg-active-down{transform:rotate(90deg)}.jessibuca-container .jessibuca-ptz-bg-active.jessibuca-ptz-bg-active-show{visibility:visible;opacity:1}.jessibuca-container .jessibuca-ptz-control{position:absolute;left:53px;top:53px;width:50px;height:50px;background:#fff;border-radius:50%;transition:left .3s,top .3s}.jessibuca-container .jessibuca-ptz-control.jessibuca-ptz-control-left{left:33px}.jessibuca-container .jessibuca-ptz-control.jessibuca-ptz-control-up{top:33px}.jessibuca-container .jessibuca-ptz-control.jessibuca-ptz-control-right{left:73px}.jessibuca-container .jessibuca-ptz-control.jessibuca-ptz-control-down{top:73px}.jessibuca-container .jessibuca-ptz-arrow{cursor:pointer;position:absolute;width:0;height:0}.jessibuca-container .jessibuca-ptz-arrow-up{left:71px;top:15px;border:7px solid transparent;border-bottom:10px solid #fff}.jessibuca-container .jessibuca-ptz-arrow-right{top:71px;right:15px;border:7px solid transparent;border-left:10px solid #fff}.jessibuca-container .jessibuca-ptz-arrow-down{left:71px;bottom:15px;border:7px solid transparent;border-top:10px solid #fff}.jessibuca-container .jessibuca-ptz-arrow-left{left:15px;top:71px;border:7px solid transparent;border-right:10px solid #fff}.jessibuca-container .jessibuca-poster{position:absolute;z-index:10;left:0;top:0;right:0;bottom:0;height:100%;width:100%;background-position:50%;background-repeat:no-repeat;background-size:contain;pointer-events:none}.jessibuca-container .jessibuca-play-big{position:absolute;display:none;height:100%;width:100%;background:rgba(0,0,0,.4)}.jessibuca-container .jessibuca-play-big:after{cursor:pointer;content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:block;width:48px;height:48px;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACgklEQVRoQ+3ZPYsTQRjA8eeZZCFlWttAwCIkZOaZJt8hlvkeHrlccuAFT6wEG0FQOeQQLCIWih6chQgKgkkKIyqKCVYip54IWmiQkTmyYhFvd3Zn3yDb7szu/7cv7GaDkPEFM94PK0DSZ9DzDAyHw7uI2HRDlVJX5/N5r9FoHCYdr/fvCRiNRmpJ6AEidoUQ15NG+AH8BgD2n9AHANAmohdJQfwAfgGA4xF4bjabnW21Whob62ILoKNfAsAGEd2PU2ATcNSNiDf0/cE5/xAHxDpgEf0NADaJ6HLUiKgAbvcjpdSGlPJZVJCoAUfdSqkLxWLxTLlc/mkbEgtgET1TSnWklLdtIuIEuN23crlcp16vv7cBSQKgu38AwBYRXQyLSArg3hsjRDxNRE+CQhIF/BN9qVAobFYqle+mkLQAdLd+8K0T0U0TRJoAbvc9fVkJId75gaQRoLv1C2STiPTb7rFLWgE6+g0RncwyYEJEtawCvjDGmpzzp5kD6NfxfD7frtVqB17xen2a7oG3ALBm+oMoFQBEPD+dTvtBfpImDXjIGFvjnD/3c7ksG5MU4HDxWeZa0HB3XhKAXcdxOn5vUi9gnIDXSqm2lHLPK8pkfVyAbSLqm4T5HRs1YB8RO0KIid8g03FRAT4rpbpSyh3TINPxUQB2GGM9zvkn05gg420CJovLZT9ISNA5tgB9ItoOGhFmnh/AcZ/X9xhj65zzV2Eiwsz1A1j2B8dHAOgS0W6YnduY6wkYj8d3lFKn/j66Ea84jtOrVqtfbQSE3YYnYDAY5Eql0hYAnNDv6kKIx2F3anO+J8DmzqLY1goQxVE12ebqDJgcrSjGrs5AFEfVZJt/AF0m+jHzUTtnAAAAAElFTkSuQmCC");background-repeat:no-repeat;background-position:50%}.jessibuca-container .jessibuca-play-big:hover:after{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACEElEQVRoQ+2ZXStEQRjH/3/yIXwDdz7J+i7kvdisXCk3SiFJW27kglBcSFFKbqwQSa4krykuKB09Naf2Yndn5jgzc06d53Znd36/mWfeniVyHsw5PwqB0DOonYEoijYBlOpAFwCMkHwLDS/9mwhEDUCfAAyTXA4tYSLwC6CtCegegH6S56FETAR+AHRoACcBTJAUWa+RloBAXwAYIrnt0yBNgZi7qtbHgw8RFwLC/QFglOScawlXAjH3gUqrE1cirgVi7mkAYyS/0xbxJSDcdwAGSa6nKeFTIOZeUyL3aYiEEBDuLwDjJGf+KxFKIOY+BdBL8iipSGiBmHtWbbuftiJZERBuOfgGSK7aSGRJIObeUml1ayKSRQHhlgtkiaTcdltGVgUE+ppkV54FaiS78yrwqlLoOI8Cch2XV548W7WRpTVwA6DP9kGUFYEpAOUkT9LQAvtq1M+0udKkQSgBqSlJWWYxKXj8vRACK+o6bbRIdYI+Ba7U7rKjg7L53JdAhWTZBsy0rWuBXZUuNVMg23auBF7UIl2yBbJt70JAoKV6/WwLk6R9mgKSJlJ1kLTxFmkJyCla8UZd15GJQKvyumyJ8gy8DAEvfZoINPqD41EtUjmUgoaJwAaAnjrKebVI34OSq85NBNqlCAWgE0CV5GEWwI3vQlmCbcSinYFCwPEIFDPgeIC1P1/MgHaIHDf4Aydx2TF7wnKeAAAAAElFTkSuQmCC")}.jessibuca-container .jessibuca-recording{display:none;position:absolute;left:50%;top:0;padding:0 3px;transform:translateX(-50%);justify-content:space-around;align-items:center;width:95px;height:20px;background:#000;opacity:1;border-radius:0 0 8px 8px;z-index:1}.jessibuca-container .jessibuca-recording .jessibuca-recording-red-point{width:8px;height:8px;background:#ff1f1f;border-radius:50%;animation:magentaPulse 1s linear infinite}.jessibuca-container .jessibuca-recording .jessibuca-recording-time{font-size:14px;font-weight:500;color:#ddd}.jessibuca-container .jessibuca-recording .jessibuca-icon-recordStop{width:16px;height:16px;cursor:pointer}.jessibuca-container .jessibuca-zoom-controls{display:none;position:absolute;left:50%;top:0;padding:0 3px;transform:translateX(-50%);justify-content:space-around;align-items:center;width:150px;height:30px;background:#000;opacity:1;border-radius:0 0 8px 8px;z-index:1}.jessibuca-container .jessibuca-zoom-controls .jessibuca-zoom-narrow{width:16px;height:16px;cursor:pointer}.jessibuca-container .jessibuca-zoom-controls .jessibuca-zoom-tips{font-size:14px;font-weight:500;color:#ddd}.jessibuca-container .jessibuca-zoom-controls .jessibuca-zoom-expand,.jessibuca-container .jessibuca-zoom-controls .jessibuca-zoom-stop2{width:16px;height:16px;cursor:pointer}.jessibuca-container .jessibuca-loading{display:none;flex-direction:column;justify-content:center;align-items:center;position:absolute;z-index:20;left:0;top:0;right:0;bottom:0;width:100%;height:100%;pointer-events:none}.jessibuca-container .jessibuca-loading-text{line-height:20px;font-size:13px;color:#fff;margin-top:10px}.jessibuca-container .jessibuca-controls{background-color:#161616;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-end;position:absolute;z-index:40;left:0;right:0;bottom:0;height:38px;width:100%;padding-left:13px;padding-right:13px;font-size:14px;color:#fff;opacity:0;visibility:hidden;transition:all .2s ease-in-out;-webkit-user-select:none;user-select:none;transition:width .5s ease-in}.jessibuca-container .jessibuca-controls .jessibuca-controls-item{position:relative;display:flex;justify-content:center;padding:0 8px}.jessibuca-container .jessibuca-controls .jessibuca-controls-item:hover .icon-title-tips{visibility:visible;opacity:1}.jessibuca-container .jessibuca-controls .jessibuca-fullscreen,.jessibuca-container .jessibuca-controls .jessibuca-fullscreen-exit,.jessibuca-container .jessibuca-controls .jessibuca-icon-audio,.jessibuca-container .jessibuca-controls .jessibuca-microphone-close,.jessibuca-container .jessibuca-controls .jessibuca-pause,.jessibuca-container .jessibuca-controls .jessibuca-play,.jessibuca-container .jessibuca-controls .jessibuca-ptz,.jessibuca-container .jessibuca-controls .jessibuca-ptz-active,.jessibuca-container .jessibuca-controls .jessibuca-quality-menu,.jessibuca-container .jessibuca-controls .jessibuca-record,.jessibuca-container .jessibuca-controls .jessibuca-record-stop,.jessibuca-container .jessibuca-controls .jessibuca-screenshot,.jessibuca-container .jessibuca-controls .jessibuca-volume,.jessibuca-container .jessibuca-controls .jessibuca-zoom,.jessibuca-container .jessibuca-controls .jessibuca-zoom-stop{display:none}.jessibuca-container .jessibuca-controls .jessibuca-icon-audio,.jessibuca-container .jessibuca-controls .jessibuca-icon-mute{z-index:1}.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom{display:flex;justify-content:space-between;height:100%}.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-left,.jessibuca-container .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-right{display:flex;align-items:center}.jessibuca-container.jessibuca-controls-show .jessibuca-controls{opacity:1;visibility:visible}.jessibuca-container.jessibuca-controls-show-auto-hide .jessibuca-controls{opacity:.8;visibility:visible;display:none}.jessibuca-container.jessibuca-hide-cursor *{cursor:none!important}.jessibuca-container .jessibuca-icon-loading{width:50px;height:50px;background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%;animation:rotation 1s linear infinite}.jessibuca-container .jessibuca-icon-screenshot{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAE5UlEQVRoQ+1YW2sdVRT+1s7JxbsoVkEUrIIX0ouz15zYNA+N1RdtQfCltlUfvLbqL/BCwZ8grbHtizQqPojgBSr0JkiMmT2nxgapqBURtPVCq7HxJCeZJVPmxDlzZubMmXOSEsnAvOy917fXt9e39tp7E5b4R0vcfywTuNgRbBgBx3HuJqLVzPzmYjprjHkcwAlmLqXNm4XAISLaSESPaq2HF4OE67rbRGRYRA7btn1fbgLGmKsA/Azg0gBkGzO/vZAkHMd5hIiqc5wHcCMz/5k0Z2oExsfHV1QqldPAf8lORNu11m8tBAljzFYAYWxRSl1vWdZvuQj4RsYYF4AVBlgIOVVlE55HRIxt23ZuCfmGjuOsJ6LPoiAistW27XfaEYmIbOYhPc9bXywWR1oiEJDYQkR1zrYjEjGyqfqbKd8a7kJVtLgQ+30i8pht2wfyRKIdmJkJBPkQTbILfudJ7CTZNBvVpggEcgpvc/ML38zESbLJsxBNE/A9biX0rdjGyTQXgbxyapdsarb0PMlXtWnGoXbKpm0Essqp3bJpK4E0OXmed3+hUBDP8w5FI91M0rdcyLLILElOCbaZilSWeXMncRx4klTCY1spfG3dhZJWx3GcDUR0EEB3ZMw0ET2gtT6SZWWzjmlrBIJCl0hAKfWgZVmHszqXZVxbCSxpCS2JJA6umIhe8ZKKVLPbaBJ+S9toqVRa53nedgAbAKwIwH4FcAzAa0R0l4i8F7PPz189k6RFRA+LyNcAXojDV0oNW5b1eW4Cxpg9AHZkSaaa6hhzb065uDSCH2LmRB8Sk9gY4293g43Qo/1pV80m8yQMfZSZ781cB1zXHRKRZ2IMpgD8A+DamL4ZItqitX4/jbQx5iEA7wLoihn3V/ACckWMJN/QWj9b1x5tGBsbW6uUOh5pPy0iL3Z2dn6ilJqanp5ep5TaJSLhF4NppdRNaU8gPmapVLrO87yfIoXuWyJ6uVKp+HmFjo6OQSJ6FcBtYT+UUmstyxqvkWuUgDFmP4AnQu2/e563qlgs+u9DNZ8xZhRAX7VRRPbath0XuXk7Y8xeAE+FgL6fnJzsHRwcLIfBR0ZGLunq6poAsDLUvp+Zw7b1r9PGmJMAbg8Z7WDmoThZuK67WkS+DD18fcPMdzSQUBR/EzN/nIC/SUQ+DPXV4dclsTHmHAD/SfHCNzc3t7Kvr++HJKeMMacA3BL0nyuXyzcPDAxMxo0fHR29slAo/Ajg6qD/fE9Pzw29vb1/x42fmJi4vFwu+5G/LOg/y8zXNJLQ2dAES5JANMQ7mfn1jBI6ycx3NiMhItqstf4oAX+ziHwQ6qvDj5NQNIn/ALCKmX+JSeIvABRD7fuY+ekGBPYBeDI05tTMzExvf3+/vz2Hk91/ET8RSeI6/DoCpVJpjed5fmKGvzMAXpqdnT3oed5Ud3d3v4jsAqBr9Ei0Rmv9VRqBBPzvROQVETnq2xJRdRu9tRF+bCVOKWT+Kvl/TSIFk6SW/LAjKfjV5K8rZABi8dOOEv7FI7Z8x6zwEWbemLbyMfJr5qiSiJ96oclymBOR3bZtP9+M89WxxpjdAHY2sN3DzM8ljWl4I3Nd9x7/OE1ENcdpETnmH3e11n41zv0l4J8RkU+J6AAz+xtF4teQQG7PFslwmcAiLfSyhC72Qv9/I/Avns2OT7QJskoAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-screenshot:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAED0lEQVRoQ+2ZycsdRRTFf2ejqHFAMQqiYBTUoElUHLNx3GgCgpuYRF2o0UT9CxwQ/BMkMSbZSKLiQgQHUDCJgjiAxiEiESdEcJbEedgcKaj3UV+/6q7u/jovPPkK3qbr1ql76p5bt6qemPKmKfefeQKHOoLFCNg+H1gi6fFJOmv7VmCvpD1N87Yh8ApwNXCzpB2TIGF7DRDm2inpmt4EbB8LfAMcGUHWSHryYJKwfRMwmuMP4BRJv9TN2RgB2wuB72BWsq+V9MTBIGF7NZBiGzhJ0o+9CIRBtt8FLqgADC6nRDbpVO9Iuqi3hCKB5cDrGZDVkp4aIhIV2aSQyyW9MScCkcQqIOfsnCORkc3I31b5VtyFRmg1IQ7dt0ja3icSQ2C2JhAjUU2ykd+dE7tBNp2i2olAJJFuc+nCt564QTadF6IzgUhiVGiqyinKaQjZpJP2ItBXTkPJZhACXeU0pGwGI9BWTkPLZlACBTldG4o5EA6E1dY66edcyNrs8Q36zg1vVaTazNs7iXPgDVJJzYs7VRvHRzaDEohyugJ4CTi84sg/wHWSdnVxsGQ7aQLXS9pZcqpL/6AEplpCU5HE8YpJ9YrXUKQ6baN1+HPaRm1fBqwFQnKGK2ZoPwCvAo8Ai4FnMpPMHMwapHUj8DFwbw3+Dklv9iZgexOwvktSRduxU2VDlErwmyXV+lCbxLbDdndlCT3TX3vV7JgnKfRuSVflfMkSsL0ZuDMz4E/gL+CETN+/wCpJzzaRtn0D8DRwWMbu1/gCcnSm7zFJd1W/jxGwvQx4r2IYnlbuA14GAomQFw8B6YtBKFSnNj2BxEJ3IvB1pdB9CjwQ8yqYhcg/DJxZ8WOZpA/SbzkC24DbEqOfgPMkBRKzmu23gEuSj1sk5SI3Y2J7C3BHMuZz4FxJf6fgto8APgIWJd+3SUrHjr9O294HnJUMWi8pSGqs2V4CvJ88fH0i6eyChKr4KyS9WIO/Ang+6RvDz0XgABCeFEdtkaQv65yy/QVweuwPY0+T9FuNQ8cAXwHHxf7wdHiypN9r7BfEl8GjYv9+SceXJLQ/mSDYTh2Baog3SHq0pYT2STqno4RWSnqhBn8l8FzSN4bfJol/jkn8bXUS228DFyfft0paVyCwFbg9sQkSDEkctueZZju8iO+tJPEYfo7A0piYKd73wP3xnB+20cvjNnphxdmlkj4sEMjhfwY8COyOY0fb6Bkl/K6FLKxS+M1KpDhJY8mvrG5doRwlf66QZfGbjhLh4pEt35kV3iUp/IvTunU8qtTil/7gaHOY2yjpntaez9b5RmBDYewmSXfX2RRvZLYvbThOh+NuqMa9Ww1+yLnXgO2SwkZR24oEens2oYHzBCa00PMSOtQL/f+NwH+Hg8hAnbrYgQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-play{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACgklEQVRoQ+3ZPYsTQRjA8eeZZCFlWttAwCIkZOaZJt8hlvkeHrlccuAFT6wEG0FQOeQQLCIWih6chQgKgkkKIyqKCVYip54IWmiQkTmyYhFvd3Zn3yDb7szu/7cv7GaDkPEFM94PK0DSZ9DzDAyHw7uI2HRDlVJX5/N5r9FoHCYdr/fvCRiNRmpJ6AEidoUQ15NG+AH8BgD2n9AHANAmohdJQfwAfgGA4xF4bjabnW21Whob62ILoKNfAsAGEd2PU2ATcNSNiDf0/cE5/xAHxDpgEf0NADaJ6HLUiKgAbvcjpdSGlPJZVJCoAUfdSqkLxWLxTLlc/mkbEgtgET1TSnWklLdtIuIEuN23crlcp16vv7cBSQKgu38AwBYRXQyLSArg3hsjRDxNRE+CQhIF/BN9qVAobFYqle+mkLQAdLd+8K0T0U0TRJoAbvc9fVkJId75gaQRoLv1C2STiPTb7rFLWgE6+g0RncwyYEJEtawCvjDGmpzzp5kD6NfxfD7frtVqB17xen2a7oG3ALBm+oMoFQBEPD+dTvtBfpImDXjIGFvjnD/3c7ksG5MU4HDxWeZa0HB3XhKAXcdxOn5vUi9gnIDXSqm2lHLPK8pkfVyAbSLqm4T5HRs1YB8RO0KIid8g03FRAT4rpbpSyh3TINPxUQB2GGM9zvkn05gg420CJovLZT9ISNA5tgB9ItoOGhFmnh/AcZ/X9xhj65zzV2Eiwsz1A1j2B8dHAOgS0W6YnduY6wkYj8d3lFKn/j66Ea84jtOrVqtfbQSE3YYnYDAY5Eql0hYAnNDv6kKIx2F3anO+J8DmzqLY1goQxVE12ebqDJgcrSjGrs5AFEfVZJt/AF0m+jHzUTtnAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-play:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACEElEQVRoQ+2ZXStEQRjH/3/yIXwDdz7J+i7kvdisXCk3SiFJW27kglBcSFFKbqwQSa4krykuKB09Naf2Yndn5jgzc06d53Znd36/mWfeniVyHsw5PwqB0DOonYEoijYBlOpAFwCMkHwLDS/9mwhEDUCfAAyTXA4tYSLwC6CtCegegH6S56FETAR+AHRoACcBTJAUWa+RloBAXwAYIrnt0yBNgZi7qtbHgw8RFwLC/QFglOScawlXAjH3gUqrE1cirgVi7mkAYyS/0xbxJSDcdwAGSa6nKeFTIOZeUyL3aYiEEBDuLwDjJGf+KxFKIOY+BdBL8iipSGiBmHtWbbuftiJZERBuOfgGSK7aSGRJIObeUml1ayKSRQHhlgtkiaTcdltGVgUE+ppkV54FaiS78yrwqlLoOI8Cch2XV548W7WRpTVwA6DP9kGUFYEpAOUkT9LQAvtq1M+0udKkQSgBqSlJWWYxKXj8vRACK+o6bbRIdYI+Ba7U7rKjg7L53JdAhWTZBsy0rWuBXZUuNVMg23auBF7UIl2yBbJt70JAoKV6/WwLk6R9mgKSJlJ1kLTxFmkJyCla8UZd15GJQKvyumyJ8gy8DAEvfZoINPqD41EtUjmUgoaJwAaAnjrKebVI34OSq85NBNqlCAWgE0CV5GEWwI3vQlmCbcSinYFCwPEIFDPgeIC1P1/MgHaIHDf4Aydx2TF7wnKeAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-pause{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABA0lEQVRoQ+1YwQqCUBAcfWXXsLr2AXWTPXno8yVB8AP6Aa3oHI+kCDqYaawJljSe133uzO44bx0M/HEG/v1gAd9mkAyQgY4I/F8LJUlyrQFtD2AtIkcNoFEU+Z7n7QD4DfFHEVlocrVmgAUAIAOl3mILPcDgEFcUhyrUKMGUUcroc3NQRimj9XJBGaWMvvPydKN0o6/9QTdKN6rZANxj6EbpRulGuZnjYqs8BbyR8Ub2Izeys+u6yyAIDpo/ehzHM2NMDsA0xFsRmWhyfTIDWSXxCEBmrd2EYXjSHJqm6bQoii2AOYBL5Z0xgFxEVppcrQvQJO0zhgX0iXbdWWSADHRE4AZQ731AhEUeNwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-pause:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAA7klEQVRoQ+2YSwrCQBBEX6HiVvxsPYDewfN7By/gD9ciQkvERQwJdBSiYs0mEDo96aruombEjy/9+P/jAj7NoBkwA28i8H8tFBFRA9oeWEo6ZgCNiDGwAYpn3TpKmmVytWbABQBmoNRbbqEHGB7iiuJYhRol2DJqGX1uDsuoZdRmLuNZSzGWUcuoZdRHSp/IylNgK2ErYSthK3FHwLcSvpXIjoLt9Jfa6TMwl3TIMBkRE2AH9BriL5KGmVyvWIltJXEfKN6tJJ0ym0bECFgDU+Ba+WZQFCdpkcnVuoBM0i5jXECXaNftZQbMwJsI3AAPN3dAQflHegAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-record{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC+UlEQVRoQ+1ZS2sTURT+zlDJYE3XSq219QHVuEjnJDT+Bff9Abqw2voAEfGxqygUqWhVFHGl/yMLu9BwByxk5SNI66ML6U7axjhHbmhgWiftncxoOiV3FcI53z3f/e65594zhIQPSnj86BBot4IdBToKRFyBnbeFlFIScVEiuYvIWC6Xe2YK8pcC7SYA4CMzH4mDQBXAqilQBDsLQLfPf9FxnF4i8kwwmypARI+Wl5dvmIBEsUmlUkNE9NaHsVCpVAZGR0d/m+A2JSAid3K53E0TkCg2pVKpz7KseR/GfKVSGYxMAMA0M1+JEpyJb6lUOm5ZVnkrAsVisaunp+esiByr1Wp3R0ZGvmifzZK4XQQWHMc52MgBpdQuAOcAXABwuB400ZTjONdaIjA7O5u2bVsnWU1EujzP+5nP5xdMVjvIJkCBD8x8VCm1G8AYgAkAAxt8Z5j5YmgCSqlTAJ4D2OcD/AXgATNfbYVEAIFPIvKKiE4D6GuCea8xX6gtpJT6DmBvECgRFRzHeROWRAABE4iWCbwHEFhkPM/L5vP5dyaz+23+KwHXdR3P854S0YG1ILSCuthNMfNM2OC1/RYENLY+ygcBnPfht6ZAA6BYLNr6dyqVokKhsGpaNQ2TWJstreXaE2aed133sojcj41AKyvdzCdAgSXLsk4MDw9/a/i4rntbRPxFNZoC/5jAV2be759DKTUJ4FZSFFi0bbs/k8noy2R9dAjEuWU2YgXkQOK3kD6BMsysi2Z9JC2Jdcw/ALzwPO+xvmcl7Rj177JVEbkO4BARjSflFDJJuW1dBxJPoCIiL4noDIB1BS0pW6j+oJmbm+uuVqvjRKQfLr0bZHnIzJf0f6HeAybahrUJqAPruhLlcnnPysqKfpXp11n/Gv62zoHAroS+AafT6QkiGrIsazKbzX7eVIHEt1US39gCkOzWYthkjNE+tuZujDGZQ8XRXn8N4KT5lLFZ6uaYPt+nwyDuvC80YdhvB9uOAu1WoaNAR4GIK/AHvdr+QAexB7EAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-record:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACfUlEQVRoQ+2ZSYsUQRCFvycK4nJXXEbHBdwO4kn/gv9CD467ICIutxEFkREdFUU86T/xojcPntyQcT2INw+uISFVkD1Wd2dWlU7nUHlqisiX+fJFZGREi8yHMt8/HYG5VrBToFOg4QnMPxcyM2t4KE2nT0i6EwvylwIjQOCFpE1tEPgGfI0FamC3AFgazP8IrJL0KwZzkAI3gLMxIA1ttgCPA4w3wHpJP2NwBxG4KOlcDEgTGzNbA8wEGP57vA0CU5JONtlczFwz2wY8HUbAzBYCB4CtwCVJb33OIAXmioC70LoyBsxsEXAQOApsLIhelnS6FgEzW+5BBvwA/FS+SPJFa40KBZ5L2mxmS4AJ4IjHxCzwaUnHkgmY2V7gLrAyAPwOXJN0qg6DCgIvgQfAPsDjo2pcKddLciEz+wCs6AO6W9KjVBIVBGIgahN4BvRLMjslPYlZPbT53wR2AbeBtcUmXEFPdh5U06mbd/shBBzbr/Jx4FCAX0+BEsDMFocEYrNmFcE+BD4XsXZL0oyZnQCutkagzkn3m1NBwDe/Q9L74MAuFEqUn5op8I8JvJO0elacTALnc1HAH3Njkvwx+WeYWUegTa/pwaqIgexdyIN4uyRPmqULZRXEvulPwD3gpr+zcrtGQxfzRHYG2AAczuUWiom3kc4D2RN4BdwH9gM9CS0XFyoLGu9UuN974eIFVDiuSzruH5LqgRhtU20q8kBPV8LMlhVVmVdnYwX+SMdAZVeieAF7eeltmElJr4cpkH1bJfvGVvatxdR4bMu+teZuWxtKxWncXn8I7EldtQV7vz79fp9KwZp//9CksB8F206BuVahU6BToOEJ/Ab7+KdABdTt8AAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-recordStop{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAGDElEQVRoQ82ZaahVVRTHf//moKKggQawcmg0olGl0awvRoMVBRGFlQ1YQZIZqRVKmJmFgVk59EFQykYjgmajbJ7n2WiAbKKCBq0Vfznndd723Lvvve/5bMH9cvfaa63/2WuvaYteoIjYHDgEOAAYDOwIbA/4f9PvwHfAt8DbwGvAS5L8f49Ine6OCO89CTgFOBrYqU1Z3wBPAUskPdDm3i72jgBExCXAWGBQp4qTfR8CMyXd0a68tgBExEjgBmCfdhW1yP8eMFHS/S3y0xKAiNgQmA2MaUHwB8DnwNfAbwX/FsDOwG7Ani3I8ElcLOnvHG8WQET0Ax4C9msi7BHgbuAFSXaHhhQRewBDgZOBE5qwvuV1SSuayWsKICIcVZ4Atq4R8mdxKnMkfZT7UnXrEeE7dD7gO7VpDc/PwAhJrzaS3xBAROzrUFcJhVUZjhrjJX3cieHpnogYUNytUTXy/gAOlvROna5aABHhGG5f3qZmk33ztt4wvAbIBcCcBicxSNLKdK0RgNeB/RPmVcBxkp5eF8aXMiPiKODRGpd6XZJduhutBSAipgNX1Bg/tJkv9iao4u4tBzZJ5N4oaXz1v24AImIvwLE4peGSnDX7jCLC2f3JGoV7S3q//D8F8DJwULJpgiQnrz6niLgSmJYofkXSwWsBiIgRwGPNmPscARARDqGp7zu0Orz/l4kjYhlweGLk4Ebhq8oXEc6wGwH/tAhyA2C1JGfsphQRTqBvJkzLJB3ZBaBIKGkGXSqpWab013FWvacooXO21K07256WS4QRsRQ4PhHgsPrxmjsQEZOB6xKGIZJebGZVRDwOHNOJ5ZU9j0s6NqPnUJcpCc9kSVNKAA5ZQyoMn0gamDMsIj4rCrQca7P1zyT1zwmIiE+AKt9yScNUFGuuZaoxd7okR4Ccfzq997S0fleSy5acrjQ//QUMNADXH/cmu0dKcoWZE+r2MKs8I+YdSW5Dc7rcizycMI0ygKuA6ysLjiT9JX3RgtC+BLArYJet5q4JBuBG5aKKsV/ZryWt/p8BcJj2R3VjVNJsA1gEnFH5821JzZqXLtaI6LMTsNIafYsM4L6iOyoNe1FSNSI1PIj1AMCh1CG1pPsNYEkxGin/fFVSWg/VglgPAF4BDqwYs8QAFgDnVP78SJIzbJbWAwBXC9VRzgIDcLVXjfm/AP0kuR/NhbY+uwMR4e7QDf6WFaOmGYBHJbcnlh7USvPSlycQEXYdu1CVxhiARxzPJwsXSarrTbux9TEAh3qH/CqtKSU2Az5NZpsPSTqxBRdy49/SfWki60NJ2WFXTUXqwdmAsphbCJxZUeIGfltJvg8NKSIMfPcc0Mx6tpiLiK2AH4qeoxS3UNJZJYC6emicpJkZAOOAGT0EcLmkmzvQM8oz1BLAxsX8vjqBWynJ86FcJDoLGO4OC8jOMgthnrX696Qkn35Oh+dB21aYfgJ2kLSqqzCKiGuAaxNJkyRNzSlYl+sNmq2pkiZZbxWAJ8g/Aj6NksI+3kplui5AFL2271m1AvVJb1fmqXSsMhGYkhjznqSeNi0d4YsIz3/SCNXNK+omcy5ZPVKv0r2STu3Iig431dRolrRCkvuCLqoD4BlM3Th7nqTzOrSnrW0RcSdQp+tASX4gbAzAK8Ub2KwarQ8Cp0vy20CvU5FUFwN1SfRSSbemSpu9D9wCXFZjpacDoyU925sIIuIw4K5k8lCqmCWpzpbmb2QRMRc4t4GhfiOYJunLngCJiF2Aq4ELG8iZL6mRDflHvohwpnXGrSM/VM8DFkt6rh0gxRd3K3s24BBeRzMkpaP+bnzZR77iTvgLuOR29mxEDnmer7rk9dPT98CvBbNreGdSD8s8WT4i81rpjD5G0vzcR2kJQAHCs5ubgKZjwERhednrHvAa2eaPMFaSm6UstQyglBQRDm92qWwJnNXencGnZpdp67W+bQAVIKOLCz6sTUNTdjdTcyW5N2+bOgZQAeLHQLuV5/UeM6ZZPDXKfa1nqs/4QUXSG21bXdnQYwBV5RHhy2rXcmh0E+5GxOTGyCWwp34fSCovd09sX7P3X2uzPXCoLsVMAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-recordStop:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreen{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreen:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreenExit{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADd0lEQVRoQ+2Zz2sdVRTHv+fJBDW6anDVXen6wZszYxYBiYgtFGst3VSDunKjpS0GpUlqfjVpsVVs6aaL0or4YxMVFCJZ2ZLdPUP+gq5bQnTxtNAkfTnlhnnlkmQy9yV9780rudt77tzv5/y4v4bQ4Y06XD/2ANodwec/AiJygJnvtdvTWfPnRkBEJAiCN8rl8kMfiPn5+Ve7u7v3rays0Orq6lJfX99/PuN2auMDoAD+BvA2M6/mTWSMOUtE48D6AjHGzN/kjdlNvy+AnWOOmQ/lTSYiEwDOWzsimgrDcCRvzG76GwGw8/zJzO9sN6GInAMwbW1UdSSKoqndCMwb6wNwGsB39Q+p6h/M/C4R2dTa1AoHYBWKyCkA1+pqiWi2Wq0e7e/vf7yRoJAAKcQggMtuJKIoOtoxACnE0/xOi/SXMAxPuhCFjUBdpIjYVWXSEf0TM3/g9BeriDMKdSPEz8z8vrU1xgwT0YXCrEJZy1iSJKOqOub0/8jMA0mSfKKqNwoPkHp7ioiGHIhRIvpHVa93BEBa2JcAfOlALAHo6RgAKzRJkk9V1S6xL7kpV4idOM31taxaIKJHqmpPnMMA9hcOQES2PDJkAT1XAAC+ZebPfWB3auNzmLObVsNRUNUXVHUujuM7OxXnMy4XwOcj29mIyOuq+lapVGrYCelKpkEQ3CyXy4tbzdN0AGPMxr2iYZ+sra3FcRybtgCIiK2BKw2rdgaUSqWoUqlIkQAepFDdAF7cBq5ERI9rtdr1OI7tmE2t6SmUEYFHAEaexYW/1QC2EF+ru5GIvg7D0D2GNJxprQY4o6qv1I/b6SpzOYqiLxpWng5oOQAzXxWRWwA+dkRfYOb1p5hGW6sBJpn5KytSRG4D+KguWFXHoyhy7xdeLC0F2ChSRL4H8OFuINoKYIUbY34gogHH3eeZef1K6tPaDpCm068A3nMEDzHzxY4BUNWSiPxORO6z5aDPPlGICNQ9bYyZIaLjjudzIQoFkKbTbwCO+UI0HcB9J/LdeY0xs0R02IGYYObRrWqiFQCfEZEtSHsfmGZm+4qxbbM/hQD8BeBNa0hEM2EYnmgLgP3lFARBT1dXly4vL//b29tbzQNIU+llAHeJaLFSqRzJes5vegR8xGbZLCwsHKzVav8z8/0sm0ID+MDvAfh4qZk2exFopnd9vv0ELrXBQO7fD10AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-fullscreenExit:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAC/ElEQVRoQ+2Zy49NQRCHvx+ReK6IlZ34E7CUiCAR4xEbTLCyQRATYswwb2IQZDYWgojHZpCQECts+ResiQwLj0RClNSkb9Lu3HtPz7mZc8+V6eXt6tP1VVV3VdcVbT7U5vozC9BqD/7/HjCzlZLet9rS9fbP9ICZvQPWSfqRAmFmS4ClMHm+JiR9S1mXVyYFwIBXwEZJv7I2MrPjQH8A6JN0OWtNM/OpAL7HS0mbsjYzswGgN8gNS+rJWtPM/HQAfJ9nkrY22tDMTgMjQaZH0nAzCmatTQE4ClyNPvQU2CbJQ2vKKB2Aa2hmR4DrkbbPgQ5Jv6sJSgkQILqA0dgTkjraBiBAxPHtPz2UtDuGKK0HKkqamd8qg5HS9yXtjebLdYjrHNRqiAeS9gQvnQGGSnML1bvGzOwc0BfN35PUaWYHgRulBwjW9ju+O4JwqM/AWFsABIgLwKkIYgJY1jYAAeJQuGIXVIVcKTKxh8WfBin9J+AVpx/eFWUEqFkyNACKp0rhgWYArkg6kQibSyylmPOklQdibijBX+fSLHFRJkDid+qKmdlaYENOI0zeEcBNSZ9qbVIEQHWuyGOTNZLetgrAz8ClPFpHa1ZL8rf5lFGEB2oBfAxQi4D5DeDmAP7mGJPka0oD4LnDr9imH/xFe8AP4vLIjBclxWXItCOtaIBjwOKo3HaFRyWdnLbmYUHhAJKumdkt4ECk9JCkSitmWixFAwxKOjt5uZvdBvZH2vZLit8XSSBFA/yjpJndAfY1A9FSgOCJu0BnBNErqfIkzfRCywECxCNgR6Rtt6TzmdqHBmyKXG4ZM4sTWc04NzNPWE+AuG3ZlZInSuGBinXMbBzYGVkrE6JUACGcHgPbUyGKAIj7REmZ18y897o5ghiQ5E/bltRChwE/kF7Xj0jyLkbDYWbzgBfA+iA4LmlXqwD8LydvszjAF0lfswBCKC0E3gBeP22p186f8RBKUbaejJmtAr5L+lBPptQAKfCzAClWmkmZWQ/MpHVTvv0X9iFAQGQyevIAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-audio{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACrUlEQVRoQ+2ZPYgTURCAZzbBXJnCeL2Cnb87b9MEtPBUrrMQFAtrtT5/ClGs9LBWWz0RtbBUFCF4oJDsbO68wsLA2YqQSmLlvpEHu7IuMdlLcus+yUKKhJfZ+ebnvZl5CJY/aLn+MAP41x7M1QPMfFtr/crzvHfTAs8FoNPp1LTWzwHgqIg0lFLvrQHwfX8BER8DwC6jNCIecF13wwoA3/dvIuKNpLJa60Oe560XGoCZd4rICiKeTCtaeABmPg4AJmRqg6xcaABmvg4At4aFRyEBhoVM4UMoCplHADCfJTEL5YEsIVNID5iQAYCHALCYxeq5b6PMfF5EBAAEESthGK7W6/XPRpFWq7W3VCqtZg2ZcT3g+/6i4zjzIlLSWn/yPO/DIGMNLCWY2Sj/+xGRK0qpZfNDEASnROTFVi0fr8+aA8z8Ld6KEfGt67oLYwMAwEUium8EREn7OgeAjwCwPyo/nrque3YSgAtE9GDaAM1mc65arc4Zuf1+P2w0Gt9jJZl5DQAORt+fENG5wgEw8zUAMB/zbBBRwyqAIAjuiMjlSOlNItpjFUCqWl0josMzgChR/9hGAWBbknjmAdPhDdqa0gfZzAMJKyVP4v8hhJYRcSni+0JEu63ahZj5anyQici6UuqIVQDdbrfS6/UqRulyufyTiH5sF8AlIro37VpoWEHIzGZ2tM+sEZFnSqkzk9RCS0R01wjIsZz+mug53hDRia0AnI4bGgDYISItz/M2jYC8Gpp2u30MEWuO4zha665Sqp0ZYFStX/iWchRAItFGzoHSsrJ2ZFl1mHg6bfVYJeGJv85CC++BpIJZ5kSFC6G0ha0e7mYJqcJ7IOkRay84UhD2XjHFIFZf8iW9YcYoYRi+tO6aNeupOs66iU/icV46zf/MAKZpzXFk/QL+JG1PUPhRiQAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-audio:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAACSElEQVRoQ+2Zu4sUQRCHf5+C+gf4yBXMfMYHGvjCzEBQDIzV+HwEohipGKupD0QNDE8UEwUFTe68wEDhTMVUMFJ+0tArzbjs9u3Ojt0wBR0M9MzUV1XdXVWNKhcq1189wP/2YKcesH1d0nPgdVvgnQDY3iTpqaT9kuaAt9UA2D4o6aGkzVHpXcByFQC2r0q60lB2D7BUNIDtjZIeSDoyRNGyAWwfiiET4n6YlAtg+7Kka2PCozyAMSHT5CkLIIbMfUlbMhdmOQCZIVOeB2LI3JN0NNPq6bTZe8D2aUmOY72kN8DnoIXt7eF5FSEzkQdsB+OEsFwr6RPwbpixhqYStoPyqVwAbkaAY5KeTWD5wStZHrD9XdJgK34FhBP9H8kFOAvciQBhn3/RAcBHSTvjfx4DJ6cBOAPcbRvA9gZJYQT5DfwYKGl7UdLu+PwIOFUiwCVJYQRZBuZqA7gh6XxUegXYVhtAmq0uAnt7gLhQm9vorBZx74Hcc6D3QLKH/z2JGyVnlYs4pCfzEe4rsLW2XehicpAtAftqAwiZbhhBfgE/ZwVwDrjddi40KiG0HXpHO+KcJ8CJaXKheeBWBOgqnf6W1BwvgcOrATieFDTrJL0HViJAVwXNgVgPrJH0BfiQDTDKtREiNK7KLSnHASQLLacP1PxcVkWWq8PU3emq2yqJJ0b1Qsv2QKpdZp+orBBqmrfq5m5mSJXtgUZI1XnB0YCo94opCal6L/ka3ghtlIXqrllzT9VJ5k19Ek/y0zbf6QHatOYk3/oDujC8QMWgjf4AAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-mute{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKYklEQVRoQ+1Z+3NV1Rld397nXJIbIGBARTQgohGNQZJLEtFSMmpfan10aJ1OZzqd/jOd/g3t9AetD2KLCiigNFUgj/tIQoh1SqBRwVqNYgp53XvP2V9nped0Lpebl/LQmZ4ZZpjkZJ+99voe61tb8C1/5Fu+f/wfwPVm8DIG+vv7H1bVWufcp9baUefcWCqVKi5lo11dXV5NTc06EblPRNoAtABYqapD1tq9zrmelpaWaRHRpaxb6d3LAGSz2d+IyAbn3FljTG+xWEy3t7efW+yHuru7q621t3med7+qPgigGcCdAPIAuowxzyUSiaONjY2Fxa4533uVABwEsA3ARQDHAez1fb9769atn823kKrKyZMnVxUKhdtFJKWq3wWQAnAzgBoAH6vqQWvtH8nAUlmd69uXAcjlci+q6sMA1gL4BMB+Vd2fSCR6K4HYs2eP3bRp0zJjDN/f7Jzjphk2PPkN0YcDACOqekhVO5PJZPZqMvBLAI8BeATAagBnARwRkT97ntdXDmJ4eHj59PT0emPMVufcA9y8iNwBoA6AjQCEAE5dEwDpdPo2EXlQRJ4G8B0A6yImDqjqvnImstnsOlVtFZHvA9gJ4C4AfhnlLAJnABxW1T3V1dWZq8aAqppMJrM+AvE4gB8CuKGUCd/3jzU1NX3JuB8cHNwchuGjBKyq7QCWV4jXawcg/ng6nb7ZWrtTVX8C4CEAtxCEiLzBZAzD8ERNTc1YoVBY6ZxjtXkyYoDvxaETL3ftAfDLvb29t1prufnHohBZQxCqmmVJVNVjQRB8VF1dXeece0hVfxAlcD1wSZe/dgCy2Wy97/sz1topAIWpqambRKTDGPOsqu4AUAvgPICMiBxU1SMzMzMfJJPJG1SVYB+P6n8pE6xCpxebA8PDw4mJiYkqHqLnedPzldxKZfRXqvqliJwtFosjXEBVG0Xkp9wcgMYoLr4EMAjgDRE5PD09PVpTU1MXhiHrP6sY8+G2kjIaJ/HLCyXxiRMnbiwWi7cqk0zkbCqV+nzRfSCbzXay6ojISQDHVq5c+Y+JiYl1zrmnnHNPiwjre5yoFwAwnN6MQfi+v8bzvF0EoaqsYgw7wyokIm86515aCEAul9vinNtujHFBEKTb2tpOLQXApwA+EJHjzrnX8/l8jicbBAE3z4S+P+qs8ZrjERMHABxiOFVVVd2oqruMMT9WVTY2gjgXFYCXAfTNFxa5XI7sMRT57Nu+fXt6KQAosNj2uwB0iki3tXZ1GIbPAOA/hlCybMF/A8gxnBjnQRB86Ps+QbAZMrG3RlqIDfGlCxcu9OzatcsNDg5S4NWqqm+tpbgbb2pqmh4YGHjIOfczfoPvt7S0HF0qgDEROaKqPK1jUeKyzj8jIk1lDJQzsb8ExHrn3E4RmZUmqsqceWV0dLS3oaGhKp/P3yMid3N9Y8xnVKuFQoHgm0WEADwRefGrAPhYRP5CBoIg6BaRWmstw4EMUOhValYEEjNxwDl3yPf9j4MguMkYs9M5x80yPA9fvHhxqKamZo21ltKd+ULBNyoiB/L5fMbzvDuMMVQCy5xzf2ptbe1eKgPUP7MACoVCj+d5q4wxTwCIc2DFPMqUOdEP4HWWWM/zzhWLRXb2LSISOOeGkskkf7YhyitulKLvfRF5XkQOOeduFpEnVLVaRF5taWnpXSqAD6NG1VksFnuXCIDfIog0O7Yx5kgYhp8ZYyipYa39Ynx8fKa2trbBOccDeRbA7QCGVfX3IkLgdSLCUsxcey2VSvVdawD8XtwnWJ2YR2dqa2svnjt3jsrUiwAwJH8OYBMBAPgdN/xNAVCaE2855w4mk8m/UYVGM8RG6iwRoXznxDYLwDm3T0TWiAibZlJEXrseIVTKeJwTrzKcEonEaYIYGhpanc/nycCvRaRRVf8uIn+IBiiG0DcGAMF8QW3IzYVheKitrW2UP0yn048YY34BoDV655UwDF83xqyKc4A5cb0ZiNn4XFXfBfCC53lHtm3bNp7NZjm5dQCgHE+q6lFjzEHn3IqIgerrmcSVCgfdjTe5Kd/3M9PT0zO+76+PbBdK8DOq2kPpEZXRqq+aAx+xjLIPhGHYW9LIWPYoC+brA/O0CLhosnuHGkdV+4wxDC+OpRxlLyQSidGZmZnN1tonnXMJ+kjNzc0EVfGpZKtQC/2LjYzzK0VdJCWeiqrGffN04rm+w3mAQ00imtZo0bxFJpxzRycnJ8fr6uqqwzBU3/enpqamUiKyW0SoYjtTqRTL8JIA0E75K4A9xpjjFFwAqIXIAAGUi7n5Tp2/m4yaG4f9G6OXeUizboeI9J4+ffrT3bt3kyFkMpkHjDEssRKG4StLlRKcxCglqAD3MoRokVhr2fJ3A6CYK3cdFgLAuYGHwpLqAWDcU/9QwB02xuwLw/Dd1tZWgmJ1utcY8wgNBpbelpaWoaUwMCAiH3Hudc4dcc4Ne55H04oDCk+ldKBZaOPx78kAxdowLUsRIQBWn1nLRkTeJtu+7x+n28GJrFAo3Gmttc65kVQqRfCLC6FMJvPbSDWeofCanJz854oVK2hwcd79UVTyKL4Yz4t9ZiJfiALxqIgkVPVRAN8r8Z32s+aLSF8ikaCqTUxOTi6bmpqa7Ojo4N8vDkB/fz/dNYbRuLX2cw4YuVyuyhhzZxiG7SLCmZdT2UYArNOLeWjkciamOfaqqn5ijGmKGOXAE7sdbxtj9pY6gP8di+d2sS+rQl1dXVVr1651Y2NjrqOjg9UDXKSnp2d1IpHgpptVdbuI0DKnilwVzbzzAZm1VTgTR0NSfxAEN/i+z1mA1S2eCRgqByImepubm8cWOp1F39Awod57771ksVjkgH+3qpIpzrtbANy0QGLPAqC85ogYy2P6Tr7vP6iqnDViB5DNjjlBWdHb1tbGPjHns2gA8QpUkhs3blxrjOHGyQJ1zD2RhcIGV2nNS4ytVCrVIyKzJTM2zyIvlt4qq9MsE5W82HIkSwYQh1Qul1sJoF5EtkbOA9mgLGbFKl/3EgATExN9peHZ19e3ng5gpH8uYWIuVzwG8pUAxH+czWbpJqwPw/DeyMjaDoD/Z7MqrVIEMOvMOef2VLofKGMidsU5Qx+iig2CoGf58uXjjY2NE6UsfC0AXIgh1dDQQEeOecEEZ25QL3HKihveggCYY319fbdUYIJ9gobYc6p6prW1lU32f8/XBhCvxAGF10uqui262GNusGpRhvDhnM24fkFE0nMZW2TC8zzmAjs/c4ylukdVOa29H88SVySEyhMqm81yBKSpu4VMiMgOVaX0YCOcva4yxjw/3x0ZmcjlcrxnI5Ps+mtUdYTgwzD8sLwqXTEGSqtUfX09PR/aKIxldvAGOt0A3nHOvRwEwfEdO3ZMz1UbR0ZGlp0/f/4WEam31vL+4by19hQ7dPnNzhUHEG9qYGBgVRAEd0UNj2YYWThjjHmrUChk2tvbKfDmfHjX7Pt+te/7nAnYUKcqhd1VA8Dkrq+vXxcxQdnAewbOAb1BEAwtBCAq16azs3N2j5TalSTFVQMw3+leyd996wH8BxA4v3x6wGifAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-mute:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-ptz{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-ptz:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-ptzActive{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-ptzActive:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-zoom{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-zoom:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABH1JREFUaEPVmVuIVlUUx/8/IowoArtSEUWRQpCEUBEE1UM9mEFQEUbahSwLMi2MCMwyoiwzDMy0EDKQkq6YUD3UQw8+pEF0UR8KpSi70QWhoFjxn/YZvjlzvjNnn/NN87ngMMPMXnv//nudvfba+6BDwCJiOvBLFSrDzh8RKyTdIOke4J0y76EgYKakTZIulLQUWNMrYugFGDYiDpP0sqTrJa0HFhUixgmIiFOBb4bx1YqIJyQtk/SRXytg/xgBEWFl6yRdCnw4VSIi4kxJfs6SNCM9Z0s6o4fpYWBFWcBuSXuBqyYb3pFOkAWsfxrWoEeWxg9JX0naJ+lYSbOKSR4VkFb7Q5LmAtsmQ0BEXCtpcQI/qTTGT5K+TqCG3Z+ADb0POBgRcyW9LWlk9u3fK8B5djdwUW/HETFN0nF9Hs9G8T+nuS/qhEfE5ZKW9EAa2I8BK/N80V9EWPB2SX8D549ZxBHxgqRbJX0g6Y8EVcD5Zz/7XdL3kg5IumMiAV2iGhEbJN1WXp8jEYgIQ5zYM4CB/Lfv0uPf/fyQYP3/A8DPXaByfCPC62ANsHTcPhAR50ryLueFdTHgNDVUFhHHAz/23YkjwjvdG5L8rl0BvDfZCtKivlPS0ZK2FQszZ9xyGr1M0luSjpJ0DfBaTmc5bRP8qyWfGcDenH6qduIiVb0JXN2TBU6RNA1wiutkfeDd5wlVr0ndYJW1UFU5ERGfSTpH0iuSFgB/tVFRA/8I4H0oyxoXcykLFJ0/ADyeNdJ/2c4bWfm1cTePAQ/m9uf2bQXsAmbnDFgDvwq4P6evcWm0iXMpAr+5JgH+aejbb+afBu5t0ke/Nm0j4P5mAnsmGrxm5tcCros6WRcBcwDXJn2tBn4dcFcn8uTcRcBiYG0/iBr4jcBC+0XEaT6UdBHSRUDfV6AGfhNwSypdHnXpLuk5wLtxK+siYDswpzxqDfxmYH4qWTan01bhvgR4po2CLgL2AL4xGLUa+C3AvIhwqWL4k0uws4BP/28BTqFOpU6pdZvUVuC6iLgy3SwcUwJdCSxvA2+fLhGw/2xgV83Mu83nkp6XtFrS4SXQ1cB9beEHIWB9OhL6uiPXOi3eYrCuEciFLtq/BCxIkbvRkXSNBPi8nGVTIaBYE1XlRfZ91FQIKNZE1SY4mPNAVQxLxVxWmBs2blVST0UEqvRsAG5vKHRMs2EQMLIm0l6SXRsNgwCzb5V0RJvaKEeAL7GmtwlzC5/GtVGOgB2SLmgB08ZlHrCliWOOAH8h8beqybblwMqmg+QI8HV29rVHU5DUbhnwZI5PYwEpS7wuafSyK2egBm3vBp5t0K5dGk0C/BXl3fSBInesuvYLgY1tOsyKQBLhCDgSg7L5gA85rSxbQBLR754nB+KgpJsB7wGtrZWAAYj4NsG/35o8ObYW0CNilaTTM0A+keR3/uMMn75NOwlIIgzv9HrTBEC/SnrKR0vgz0HAu4/OAgqQiLCASySdJ8mfrArzB/Odkl4EvhwUeNHPwAT0gkWEbx4sZMcgZ7tK/L/0u8tAh/gBxwAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-zoomStop{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABC5JREFUaEPVmVvIZ1MYh59fSskFF8bxhhxKo+FGcyGFG7mZDBmZ0Mw4XDhlUmqSGOZiChFTyiFEhpliNBNRmAunuJBxmowy5VgiZ0W8eqe1p2X7773ftff6fKza7f/3rXe97+/Z67yW+J8nzYd+M3sP2CFp+dT4kwDM7GbgI0mPR4WY2d3A1cAqSQ9Fy3XZjQYws2OAXcnxGknrh8SY2VnAs8BmScuG7CP5owHcuZktBh4ATgDulXRFX1Az+w74EVgi6e3c1sz2AQ4BDk1P8zt/r5W0PS83CSBB7A/cD1wAbANWSPqmDWJmLwJnAM8AOzOxLrB5HKJJvwKftZ4XqgMkiMOBtcClwFfAIklft76wZX97LbTFfZ7/b9ZHmFW74Rows4OBY7PH+4A/RwMHtJwvlbSlBXBJam5bJC2NtO+IzUwAM/MO1ohr3ke0HP4OvAt8mDrzx8Bj3pwkXT4ruJmdB2ya006chsabWm1xRxLrbxe6S5K/9yYzWwfcAJwq6ZWur1cb4h81YGaHAWf7RONfV9K3kao0M7d7S9KZQ/YZxGpJdw3Z9+WH+8DA8Hg+8IR3YkkPRgSZ2ZFuJ2l3xL7LphbAy8BRPh9I+qlUkJldBVwPvArcKumDqI9aACuA3e0xOiJiRp/bLun0SNk9NRg1nAu7GeI9zMOSVkbjFQGkduvV/CnwnCSfvEalDvHua5mkzVGnpQC++myG2J99UpP0ZTRYY1dLfHETmhF4uaSNJQA1xdcAuEVSPun1stQWXwNgkySfAwbTXIivAeDbwhOH1M+V+BoAvwELJP3QBTEk3swWAPtK8uV0cZoyCjXBFkt6c1bkgPh8VNs4ZpNfA8B3YI+0AQrFN8UXliwjajQh97Fe0pocYKT4rZKWlLahGjXwtx1Wj/hrJN3Tke97i3Ml+RK+KNUA2CnpeI/aI96zm2VHe974Iol/o0h5Mq4B4K58C7owW2ZEtXwPnCPpJTPbs2UtHY1qAUQF53a+p3bx28zMN0PNhFg0Gs0nQNMnNgBX5mSSwrrChoE2XloLXX2iaDSaT4Au4H9tP1D6xSP2ReJrTWQRYRGbveLNbD9JfjY6mP5LTSjvE78At0nytVJvKgVYBYTOfYYCR/Ijo1EpwCLgnUjwCjavSTplyE8RQBpK/dj8oCHHE/O9/V8o6akhP2MAnk5np0O+x+b72sjF+2nfYBoDcBLgzg8c9F5u8D5wUfv6qc9NMUBqRtcCd5br6y3hR/IXS/qkxO8ogATxZFqFlsTrst2a7tZCR/m5k9EACeI+4LKJBI8CKyX9McbPJIAEcTtw3ZjgwAZJfuk9Ok0GSBD56UJUzDpJN0aNu+yqACSI09KOzN99yW/q7/Bd2FTxXr4aQCPGzHzPe3J6/GrWk98Jvw48H72CisJVB8gDm9lxwJ/tG82ouIjdX/SjzEC2QOtuAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-zoomStop:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABXBJREFUaEPVmVtsFFUYx//fLIUYTexuC1svJGjnFAkN+kJ4MCboi/GFcIklEjQFi7ozlHhJTIgxgPJA4jXAzgbBeI0gJIqBQDRReAA1+kAsaktnFRIWJIGdLRQktJ35zPSi2+3uzjk7g+i87Z7/+b7/71znzCH8zx+6Ef4Tlv0zmLscs2VZ2PyhABLpE+uZqLdgtHwiayRu9W4mUCfAKx2j5T3ZepV0NQNMTWd1l9j2AzNhbSElNgWZiVvZRwh8AMAexxBtQXqZ8poB/OAN207OY3doB4BWAjJ5QxjVkiYsuw+Mfk/Dgr6UODZOu5tjjf2nk7h6rcmF10QaJQnUxERJMDcxkGQXG/o6xeHieqEA/EDJD8/dPHjl8nYwP0aE/QPuUHv/6ln5UpAGy/6agYeY8IXG6Bk25nETEZK+OYCSAMeK6l0FkGMgB0IOjBy7+CpyAD9h45ae271YbAOADoDODQzxnMtrxPliiIRlc9Hvft/cmDEQ5djzzvi/WeOcO+TlyjVCud6V7oFkJjttYGhIaJomPCJBDJ0BnQjNAG4tDu65tKivU987DiBtPwnCDgb2FgyxSGZ8y2jKAiQydhuxpzNrvjkdIybvKAk4yITjmodu1uA3b5YYH4Nou5PSnyqXPGHZjwLYfV0nsb80grR1JWOxC8BxAnV5QHYSwz5v6tlik/F070YieolZe6BgNh+p1HpRQ0zogcZtp25zvcGFAHW5dVO6L3VMd2S6MmHZvu5HxxAPB+mLIJ5zDPF2kL5aufQcqLo8prNLQbwLjA7HFO/KGKrPdM/wdX2pWadk9JU0kQDELfsQAXfF+FrrebP1sqqhhnR2NRO/CPBRaPSq84z4VTZGJAAN6d5216NTpWu0jInSOcfA4YIhHpSp62siAZBNVqors2AARO87KX2FbEwlAH/cajzpKIDTIBx0UsLfvGp6ypofidTmGGKPbFAlgJKkV7RYnbjw9Iw/ZJON6aIyrzyEJoxX5mUFs2WnCkCU5kMDAHjFMUTxpleVJWrz4QEYux1TLJXpgethPjwAqMsx9HuDAK6X+fAAhAEMYqqzRlyqBBFk/pbN9tQpdd7kfGrmmaCGKFceZhUajkcUm5dP3f1DueBB5seVM++s5ZAfHgBee96Y+YHUJlW0zpeF0zBb5TUi/BDye4CxKW+KtcUASi0/WpGAfXlDLFAdRqF7oPSEVck8gdbkDX1LuXL/MAS4SwrGPf65Q+kJDQBGj2OKWX7WKi0PsDfy2jH+sOT/cxbAEscQ3ys5/6fn5KtVGxpgb3YZc0HBLxLR4nxK/6Yhc2L4yKq6GoXvgSCLlcsHmbTFhVTz/oSV3QXwyIaouBrdMICxORG37K0EmMWcjiGkfUkLA8e4ak9UmBOqq9GNA6gM/K+dB1TbXEavZD6SjUzGlaTmb/N3vnn6ptzz0/1vo4HPf2cIjZsT9CfYfc0xZ64PIlADyNgrwZD67hOUWKZcZjVSAohbv88huD/JJI9A861jiPuD4igBDC+llu1/Nm8MChyunK4S0/K82fxZUBxlgLiV/ZzAC4MChyg/qzEtv2Dqh2RiKAPUp3vv04j84PUyCRQ1v3iExydcP1UJogwwOoyeBfCWorkAOR1x6yY9cXHVjJMqcWsCGHmtsD8FIaqbxn2Dk6+1X+polfqUXwxYM8AoxDsgrFJpsVItAx8VGo+tQFubW0ucUACjEK+D8EItyZmxtWCKzlrqjtUJDTACMeFaSsITbXQM/WUJYVVJJAB+hvot9nyKYR0B86tmZD5AmvaGfwoLa96vHxnAmJlExl4HprkAzwUwbfh/Hr4T/g6ML2WvoGThIgcoTty49bcWIvZKbzRlzcno/gK3l1tPCk17NAAAAABJRU5ErkJggg==") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-close{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAA2FJREFUaEPtmdtqE1EUhvdKOq0gDSiCQkEoCAW1DcyBhgpCQJAKKYI4eQJv2oeofQi98gXaWpAKiiBEBEvSOdBpoyAIguKFIAoBwWQOW1aZKZuQSeawJ00hczfJPnz/+tearNkBcsYvOOP8ZCzgtB0cOzB2IGUEBqaQpmmPcY98Pr8liuKnlPtFmm6a5nVK6RoAfHddt64oyruwiX0FmKa5TCl9hZMB4CMhRM1aBMITQrYopTdwX0rpM1mWH6UWMAwR3fA+9FNJktYSCcBJhmFsEUIeBgtk5UQIfBMAqv1cH1gDwxARAm95nldVFOVzv8KJJCBLESHwJiGkKknSl0FVH1lAFiJC4DXHcaqLi4tfB8Ef12WUQewYXjURAl+nlFZlWf4WlSu2AB5O9IKnlH7odDrVpaWlH1HhEzkQLJ7UiZDIv5+cnFTn5+d/xoFPJSCJEyHwNUqpKsvyr7jwqQXEEREC/1YQBHVhYeFPEnguAqKICIF/Y9u2WiqVWknhuQnoJ8KHO+lt8B77K4x8sVj8mwaeq4A+IhD4uDHzr5etVkstl8v/0sJzF9BLBAtJKX2BHa0syzYP+EwE9BGxs7u7q25sbHi84DMRsL6+nltZWcEO9kEX6OgL0HVdwJcRALjfK8ojnUK1Wu1coVDAyFcY+G1CSK7LjdErYsuyzruui4/Keyy8JEkqplSlUtlhXRmpx2i9Xi8IgoCRv9sNH9xjagHATpc7p/9Ddnh4eMG2bYS/EwYffI4pNj09jU6wLp1eK6Hr+iUAQPjyIPjge0w1x3HQCdat4Tdz+/v7V/L5/CYh5HZU+GCcn3IognVteO30wcHBjOd5m5TSW3Hhg/F+6qGIE/eG8kKj6/pVAMDIl5LCM4WNKYgiWBeze6W0LGvWdV2MvJIWPph/dHR0ud1uY2GzbvJ/qTcM4xohBCMv8oIP1tnb25uZmpp63uUqv2MVy7LmHMdB+CJveCadMDVRBOtu+oMt/5QY4W9mBR+s22g0ZicmJlAE63K6o0XDMJ4QQlazhg/W91MVRbBuJz/c1XV9FQBQBF7b2Nvw7OV7raVp2lwul0MRx66nOl5vNpsX2+32MgD8FkXxddbwwfrc/uAYFnCafRIdLabZkPfcsQDeEY273tiBuBHjPf7MO/Af3d0KT6EhkZgAAAAASUVORK5CYII=") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-close:hover{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAApxJREFUaEPtmV2nVVEUht8REREnUUREREVEREREioh0+gXd1J/oT9RVf6BziogSUSIOEVEREeVcRIqIiN68jM1w7Lm+5pz7g7Wu9tdc83nmO9beY81tWPLDlpwfo8C8ExwTGBPIXIHWEiJ5y+dYM7MPmfN1Gk7yCICbAL4C2DCzF6mBjQIkLwB47IPfA1itLeHwawCO+rx3zex6CQGdo6rEFHjNecfMlMbUo0sJaTWuhtFVJBLw7wBca0q9VUDgJKtKJODfOvzHpgunk0BNiQT8G4f/1HbVdxaoIZGAf+3wn9vg9X4vgZISCfgNh//SBX6QQAmJBPwrh9/sCj9YIEciAf/Sf2O+9YHPEhgikYB/7vDf+8JnC/SRSMA/c/ifQ+CLCHSRSMA/dfhfQ+GLCTRJOFzsbfSS+iv1Vb9z4IsKNEjorUljpsePHP5PLnxxgYRE5Hzo8H9LwFcRaJB44PD/SsFXESC5DYBq/soW0MUXILnd4S8nVnlxS4jkDoe/FODXASiRmMbiXcQkdzr8xQhvZqteUiqfmMrifI2S3OXw57fCT557aUkipjP/HzKSKw5/LgUfJFRikogpza+VILnH4c+2wQcJlZokYlqzb+ZI7gNwD8CZrvBBQiUniZja7Nppkvsd/nRf+CCh0pNETK/+DQ3JAw5/aih8kFAJSiKmWO+WkuRBhz+ZCx8k9rpETLP8TT3JQw5/ohR8kFBJ3gcQUy23rULysMMfLw0fJFSakojp5m9s+Z2Uvm2O1YIPEipRScSU87YWSd4GcKM2fJBQqUoipj18c5ek4CWhY129Tcleftq5vGQlMUk9a3t9NwD9R/DDzJ7Uhg9JlPmDY1bAOfP03hvNmazG2FGgxqr2OeeYQJ/VqvHZpU/gPw7jX0B+RCgyAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-narrow{background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABNlJREFUaEPtmWmolVUUhp+XaJ5LpKQif0RkQpNE4B8bKKJBtEGlogFEi8AGG6gQ+lEWJZUQhkQWlA0alvWjsoIgApGgICusKKzIBiMaqag3lnzKOefu79v7fOdE90ILLpd7v7Xevd49rLX22mKMi8a4//xP4L9ewb5WwPYc4DZg0hAcfwhYJOnbQbCKCNg+AHgYmDHIYAnb74H5kla1xc0SsD0FWAsc3HaQArslkhYW6I1QaSRg+1Tg1ULgL4FPgfj9J7APcAhwFLB7AcZKSRcV6HWp1BKwfTzwdgbwG+Ax4Hlgg6Q/evVtx8pNBWYB52fwVki6oh8SSQK29wK+APatAXN1mJdK+rl0QNuTgduBmQ02CyUtKcWsI7AOOK0G5D1gjqT43UpszwWWNxhPlrSxBHwEAdvnAatrjN8ETpEUe3wgsT0NeB2SyXSjpFitrKQIfAUclLD8EDha0t9Z1EIF26cDL9eoz5L0TA4qRSD2d0omSvosB9jvd9uLqnPRa7pJ0pE5vFICt0hanANr+932JuCIhP1USW814ZYQ2CppXFvnSuxsn1uF4l71ByVdPSiBOyXdWuLIIDq2P68SXydMdhuVrMCxkt4dxLkSW9sR+69L6B4mKcglJUdgi6RkDWQ7ttVZwH5V6ZBb6Z2BTyS9kFK0PR14LvHtTEkvtSXwmqQRCa0qM6JG2r9kdnt0wpmzJf3V+X/bUTO9n8CbKykq4VYr8LikS3otba8HTmzh/HaTeZK6MnG1opsThd8Nku5tSyBZXNn+DjhwAAIjoovtqLuCQFSxnXKzpLvbElgl6cLECsTsRT3TVqZJeqNnC00AIlHGWemUBZKWtiWwXtJJCQK7ASuAiN+7ArnyIoJFZPivgTskxXWyS6qL04aEo7MlPd2WwC/AeEm/pgBsjwf26IeApN9rsC4HHkl8myKp9l6SC6OB1xjG2u6hxArELPdu1x/jKls3gYFRQiB5DobleODY3hOIwBBbs1PWSYqKtVZKCITxBElRZv8r0lCRXpk6L51OlBJYKyky5dDFdmTyONy79IBHohsn6YdhrEBgXCzpiWEzsB23spMTuMslzcuNl1qBR4FLawyz9XluwM7vtu8DrknYRLcu7sXR9WiUFIG9ga2JhBJAEe8jKr2SA859tx3lwfU1esskXZXDiO91XYloezzbAHCjpHtKBujVsX0osKyqZOsgYgKjXmryYZttU2PrfmBBg5ORNSOrRlMrK1XSmw9ECzFWuURmSlrTpJhrLT5VddSaMKJbETV+3F0/qCJKlA1RYhwee7k6pOc0NMqa8BtJlDR3o+a5rGS6Kp3InkEgirIoM4YhtSSyBGJ02zcBdw3DkwEwkiSKCFQkoip9YMCLTKf/0VONd4Eo4kplhqSua2cxge0j2I4ccS1wTOmoPXo/AZEQF0vabDsKuNpyOTHGdEnxXrFN+ibQQeQMIA5mZNHck1MUahG1IqKskRR/75Dq6WplHxMySVIEjPYEehyIrtrE6ieuhjsBvwFbgI+A6O/EzNeK7dnAk4UkVku6YGgECgfNqtmOR5AI3Tn5WNK2VmTrLZQboe33wjPxjqTjRiWBcKqAxI5XnFG3Ah1BIvZ46n2gq9k2aglUKxEPjdEvPaGqkF+U1JVQRzWBknM05gn8A3BFtUAnWz1iAAAAAElFTkSuQmCC") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-narrow:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-expand{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-icon-expand:hover{background:url("data:image/png;base64,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") no-repeat 50%;background-size:100% 100%}.jessibuca-container .jessibuca-quality-icon-text{font-size:14px;width:30px;height:20px;line-height:20px;cursor:pointer}.jessibuca-container .jessibuca-speed{font-size:14px;color:#fff}.jessibuca-container .jessibuca-quality-menu-list{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%);transition:visibility .3s,opacity .3s;background-color:rgba(0,0,0,.5);border-radius:4px;overflow:hidden}.jessibuca-container .jessibuca-quality-menu-list.jessibuca-quality-menu-shown{visibility:visible;opacity:1}.jessibuca-container .icon-title-tips{pointer-events:none;position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%);transition:visibility .3s ease 0s,opacity .3s ease 0s;background-color:rgba(0,0,0,.5);border-radius:4px}.jessibuca-container .icon-title{display:inline-block;padding:5px 10px;font-size:12px;white-space:nowrap;color:#fff}.jessibuca-container .jessibuca-quality-menu{padding:8px 0}.jessibuca-container .jessibuca-quality-menu-item{box-sizing:border-box;display:block;height:25px;line-height:25px;margin:0;padding:0 10px;cursor:pointer;font-size:14px;text-align:center;width:50px;color:hsla(0,0%,100%,.5);transition:color .3s,background-color .3s}.jessibuca-container .jessibuca-quality-menu-item:hover{background-color:hsla(0,0%,100%,.2)}.jessibuca-container .jessibuca-quality-menu-item:focus{outline:none}.jessibuca-container .jessibuca-quality-menu-item.jessibuca-quality-menu-item-active{color:#2298fc}.jessibuca-container .jessibuca-volume-panel-wrap{position:absolute;left:50%;bottom:100%;visibility:hidden;opacity:0;transform:translateX(-50%) translateY(22%);transition:visibility .3s,opacity .3s;background-color:rgba(0,0,0,.5);border-radius:4px;height:120px;width:50px;overflow:hidden}.jessibuca-container .jessibuca-volume-panel-wrap.jessibuca-volume-panel-wrap-show{visibility:visible;opacity:1}.jessibuca-container .jessibuca-volume-panel{cursor:pointer;position:absolute;top:21px;height:60px;width:50px;overflow:hidden}.jessibuca-container .jessibuca-volume-panel-text{position:absolute;left:0;top:0;width:50px;height:20px;line-height:20px;text-align:center;color:#fff;font-size:12px}.jessibuca-container .jessibuca-volume-panel-handle{position:absolute;top:48px;left:50%;width:12px;height:12px;border-radius:12px;margin-left:-6px;background:#fff}.jessibuca-container .jessibuca-volume-panel-handle:before{bottom:-54px;background:#fff}.jessibuca-container .jessibuca-volume-panel-handle:after{bottom:6px;background:hsla(0,0%,100%,.2)}.jessibuca-container .jessibuca-volume-panel-handle:after,.jessibuca-container .jessibuca-volume-panel-handle:before{content:"";position:absolute;display:block;left:50%;width:3px;margin-left:-1px;height:60px}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-controls{width:100vh}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-play-big:after{transform:translate(-50%,-50%) rotate(270deg)}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-loading{flex-direction:row}.jessibuca-container.jessibuca-fullscreen-web .jessibuca-loading-text{transform:rotate(270deg)}.jessibuca-container-playback .jessibuca-controls{height:48px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center{flex:1;display:flex;box-sizing:border-box;justify-content:space-between;font-size:12px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time{box-sizing:border-box;flex:1;position:relative;height:100%}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-inner{width:300px;height:100%;overflow-y:hidden;overflow-x:auto}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-current-time{position:absolute;left:0;top:0;height:15px;width:1px;background-color:red;text-align:center;z-index:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-current-time-text{position:absolute;box-sizing:border-box;padding:0 5px;width:60px;left:-25px;top:15px;border:1px solid red;height:15px;line-height:15px;cursor:move;background-color:#fff;color:#000;-webkit-user-select:none;user-select:none}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll{position:relative;width:1440px;margin:0 auto}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.one-hour{width:1440px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.half-hour{width:2880px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.ten-min{width:8640px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.five-min{width:17280px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-scroll.one-min{width:86400px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-time-list{position:relative;background-color:#ccc;height:48px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-day{height:100%;overflow:hidden}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-one-wrap{height:8px;z-index:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-wrap{height:25px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-controls-playback-btns{display:flex;align-items:center}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-one,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-one{float:left;width:1px;height:8px;margin:0;cursor:default;position:relative;z-index:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-one.active,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-one.active{background-color:orange;cursor:pointer}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-one.start,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-one.start{background-color:#999}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-one:hover .jessibuca-playback-time-title-tips,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-second-one:hover .jessibuca-playback-time-title-tips{visibility:visible;opacity:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-title-tips{pointer-events:none;position:absolute;left:0;top:100%;visibility:hidden;opacity:0;transform:translateX(13%);transition:visibility .3s ease 0s,opacity .3s ease 0s;background-color:#000;border-radius:4px;z-index:1}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-title-tips.jessibuca-playback-time-title-tips-left{transform:translateX(-100%)}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-title-tips .jessibuca-playback-time-title{display:inline-block;padding:2px 5px;font-size:12px;white-space:nowrap;color:#fff}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute{float:left;position:relative;width:60px;box-sizing:border-box;border-top:1px solid #999;-webkit-user-select:none;user-select:none;text-align:left;height:25px;line-height:25px}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour:first-child,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute:first-child{border-left:0}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour:first-child .jessibuca-playback-time-hour-text,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute:first-child .jessibuca-playback-time-hour-text{left:0}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour:after,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute:after{content:"";position:absolute;left:0;top:-8px;width:1px;height:14px;background-color:#999}.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-hour-text,.jessibuca-container-playback .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-center .jessibuca-playback-time-minute-text{position:absolute;left:-13px}.jessibuca-container-playback .jessibuca-playback-expand.disabled .jessibuca-icon-expand,.jessibuca-container-playback .jessibuca-playback-narrow.disabled .jessibuca-icon-narrow{cursor:no-drop}.jessibuca-container-playback.jessibuca-fullscreen-web .jessibuca-controls .jessibuca-controls-bottom .jessibuca-controls-playback-time-inner{overflow-y:auto}.jessibuca-zoom-control{cursor:grab}');class Rt{constructor(e){var t,i,r,s,n,a;this.player=e,r=this,(i=e)._opt.hasControl&&i._opt.controlAutoHide?i.$container.classList.add("jessibuca-controls-show-auto-hide"):i.$container.classList.add("jessibuca-controls-show"),s=i._opt,n=s.operateBtns,a=` -
-
-
-
-
-
-
-
-
-
-
-
00:00:00
-
-
-
-
-
-
${C.narrow}
-
${C.expand}
-
-
- `,i.$container.insertAdjacentHTML("beforeend",` - ${s.background?`
`:""} -
- ${C.loading} - ${s.loadingText?`
${s.loadingText}
`:""} -
- ${s.hasControl&&n.play?'
':""} - ${s.hasControl&&n.ptz?'\n
\n
\n
\n
\n
\n
\n
\n
\n ':""} - ${s.hasControl&&n.zoom?` -
-
${C.narrow}
-
电子放大
-
${C.expand}
-
${C.zoomStop}
-
- `:""} - - ${s.hasControl&&n.record?` -
-
-
00:00:01
-
${C.recordStop}
-
- `:""} - ${s.hasControl?` -
-
-
- ${s.showBandwidth?'
':""} -
- ${s.playType===m&&s.showPlaybackControl?a:""} - -
- ${n.close?`
${C.close}
`:""} - ${n.quality?'\n
\n
\n
\n
\n ':""} - ${n.audio?` -
- ${C.audio} - ${C.mute} -
-
-
-
-
-
-
- `:""} - ${n.play?`
${C.play}
${C.pause}
`:""} - ${n.screenshot?`
${C.screenshot}
`:""} - ${n.record?`
${C.record}
${C.recordStop}
`:""} - ${n.ptz?`
${C.ptz}
${C.ptzActive}
`:""} - ${n.zoom?`
${C.zoom}
${C.zoomStop}
`:""} - ${n.fullscreen?`
${C.fullscreen}
${C.fullscreenExit}
`:""} -
-
-
- `:""} - - `),Object.defineProperty(r,"$poster",{value:i.$container.querySelector(".jessibuca-poster")}),Object.defineProperty(r,"$loading",{value:i.$container.querySelector(".jessibuca-loading")}),Object.defineProperty(r,"$play",{value:i.$container.querySelector(".jessibuca-play")}),Object.defineProperty(r,"$playBig",{value:i.$container.querySelector(".jessibuca-play-big")}),Object.defineProperty(r,"$recording",{value:i.$container.querySelector(".jessibuca-recording")}),Object.defineProperty(r,"$recordingTime",{value:i.$container.querySelector(".jessibuca-recording-time")}),Object.defineProperty(r,"$recordingStop",{value:i.$container.querySelector(".jessibuca-recording-stop")}),Object.defineProperty(r,"$pause",{value:i.$container.querySelector(".jessibuca-pause")}),Object.defineProperty(r,"$controls",{value:i.$container.querySelector(".jessibuca-controls")}),Object.defineProperty(r,"$controlsInner",{value:i.$container.querySelector(".jessibuca-controls-bottom")}),Object.defineProperty(r,"$controlsLeft",{value:i.$container.querySelector(".jessibuca-controls-left")}),Object.defineProperty(r,"$controlsRight",{value:i.$container.querySelector(".jessibuca-controls-right")}),Object.defineProperty(r,"$fullscreen",{value:i.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(r,"$volume",{value:i.$container.querySelector(".jessibuca-volume")}),Object.defineProperty(r,"$volumePanelWrap",{value:i.$container.querySelector(".jessibuca-volume-panel-wrap")}),Object.defineProperty(r,"$volumePanelText",{value:i.$container.querySelector(".jessibuca-volume-panel-text")}),Object.defineProperty(r,"$volumePanel",{value:i.$container.querySelector(".jessibuca-volume-panel")}),Object.defineProperty(r,"$volumeHandle",{value:i.$container.querySelector(".jessibuca-volume-panel-handle")}),Object.defineProperty(r,"$volumeOn",{value:i.$container.querySelector(".jessibuca-icon-audio")}),Object.defineProperty(r,"$volumeOff",{value:i.$container.querySelector(".jessibuca-icon-mute")}),Object.defineProperty(r,"$fullscreen",{value:i.$container.querySelector(".jessibuca-fullscreen")}),Object.defineProperty(r,"$fullscreenExit",{value:i.$container.querySelector(".jessibuca-fullscreen-exit")}),Object.defineProperty(r,"$record",{value:i.$container.querySelector(".jessibuca-record")}),Object.defineProperty(r,"$recordStop",{value:i.$container.querySelector(".jessibuca-record-stop")}),Object.defineProperty(r,"$screenshot",{value:i.$container.querySelector(".jessibuca-screenshot")}),Object.defineProperty(r,"$speed",{value:i.$container.querySelector(".jessibuca-speed")}),Object.defineProperty(r,"$playbackTime",{value:i.$container.querySelector(".jessibuca-controls-playback-time")}),Object.defineProperty(r,"$playbackTimeInner",{value:i.$container.querySelector(".jessibuca-controls-playback-time-inner")}),Object.defineProperty(r,"$playbackTimeScroll",{value:i.$container.querySelector(".jessibuca-controls-playback-time-scroll")}),Object.defineProperty(r,"$playbackTimeList",{value:i.$container.querySelector(".jessibuca-controls-playback-time-list")}),Object.defineProperty(r,"$playbackTimeListOne",{value:i.$container.querySelector(".jessibuca-playback-time-one-wrap")}),Object.defineProperty(r,"$playbackTimeListSecond",{value:i.$container.querySelector(".jessibuca-playback-time-second-wrap")}),Object.defineProperty(r,"$playbackCurrentTime",{value:i.$container.querySelector(".jessibuca-controls-playback-current-time")}),Object.defineProperty(r,"$playbackCurrentTimeText",{value:i.$container.querySelector(".jessibuca-controls-playback-current-time-text")}),Object.defineProperty(r,"$controlsPlaybackBtns",{value:i.$container.querySelector(".jessibuca-controls-playback-btns")}),Object.defineProperty(r,"$playbackNarrow",{value:i.$container.querySelector(".jessibuca-playback-narrow")}),Object.defineProperty(r,"$playbackExpand",{value:i.$container.querySelector(".jessibuca-playback-expand")}),Object.defineProperty(r,"$ptz",{value:i.$container.querySelector(".jessibuca-ptz")}),Object.defineProperty(r,"$ptzActive",{value:i.$container.querySelector(".jessibuca-ptz-active")}),Object.defineProperty(r,"$ptzControl",{value:i.$container.querySelector(".jessibuca-ptz-controls")}),Object.defineProperty(r,"$ptzBgActive",{value:i.$container.querySelector(".jessibuca-ptz-bg-active")}),Object.defineProperty(r,"$ptzControlCircular",{value:i.$container.querySelector(".jessibuca-ptz-control")}),Object.defineProperty(r,"$ptzArrows",{value:i.$container.querySelectorAll(".jessibuca-ptz-arrow")}),Object.defineProperty(r,"$qualityText",{value:i.$container.querySelector(".jessibuca-quality-icon-text")}),Object.defineProperty(r,"$qualityMenu",{value:i.$container.querySelector(".jessibuca-quality-menu")}),Object.defineProperty(r,"$qualityMenuList",{value:i.$container.querySelector(".jessibuca-quality-menu-list")}),Object.defineProperty(r,"$zoom",{value:i.$container.querySelector(".jessibuca-zoom")}),Object.defineProperty(r,"$zoomStop",{value:i.$container.querySelector(".jessibuca-zoom-stop")}),Object.defineProperty(r,"$zoomNarrow",{value:i.$container.querySelector(".jessibuca-zoom-narrow")}),Object.defineProperty(r,"$zoomExpand",{value:i.$container.querySelector(".jessibuca-zoom-expand")}),Object.defineProperty(r,"$zoomStop2",{value:i.$container.querySelector(".jessibuca-zoom-stop2")}),Object.defineProperty(r,"$close",{value:i.$container.querySelector(".jessibuca-close")}),Object.defineProperty(r,"$zoomControls",{value:i.$container.querySelector(".jessibuca-zoom-controls")}),t=this,Object.defineProperty(t,"controlsRect",{get:()=>t.$controls.getBoundingClientRect()}),Object.defineProperty(t,"controlsInnerRect",{get:()=>t.$controlsInner.getBoundingClientRect()}),Object.defineProperty(t,"controlsLeftRect",{get:()=>t.$controlsLeft.getBoundingClientRect()}),Object.defineProperty(t,"controlsRightRect",{get:()=>t.$controlsRight.getBoundingClientRect()}),Object.defineProperty(t,"controlsPlaybackTimeInner",{get:()=>t.$playbackTimeInner&&t.$playbackTimeInner.getBoundingClientRect()||{}}),Object.defineProperty(t,"controlsPlaybackBtnsRect",{get:()=>t.$controlsPlaybackBtns&&t.$controlsPlaybackBtns.getBoundingClientRect()||{width:0}}),kt(e,this);{var o=e,l=this;const f=o["events"]["proxy"],A=o._opt.operateBtns;function c(e){var{bottom:t,height:i}=l.$volumePanel.getBoundingClientRect(),r=l.$volumeHandle.getBoundingClientRect()["height"];return y(t-e.y-r/2,0,i-r/2)/(i-r)}f(window,["click","contextmenu"],e=>{-1{setTimeout(()=>{o.resize()},300)}),f(l.$controls,"click",e=>{e.stopPropagation()}),A.play&&(f(l.$pause,"click",e=>{w(A.pauseFn)?A.pauseFn():o.pause()}),f(l.$play,"click",e=>{w(A.playFn)?A.playFn():(o.play(),o.resumeAudioAfterPause())})),f(l.$playBig,"click",e=>{w(A.playFn)?A.playFn():(o.play(),o.resumeAudioAfterPause())}),A.screenshot&&f(l.$screenshot,"click",e=>{e.stopPropagation(),w(A.screenshotFn)?A.screenshotFn():o.video.screenshot()}),A.audio&&(f(l.$volume,"mouseover",()=>{l.$volumePanelWrap.classList.add("jessibuca-volume-panel-wrap-show")}),f(l.$volume,"mouseout",()=>{l.$volumePanelWrap.classList.remove("jessibuca-volume-panel-wrap-show")}),f(l.$volumeOn,"click",e=>{e.stopPropagation(),b(l.$volumeOn,"display","none"),b(l.$volumeOff,"display","block");e=o.volume;o.volume=0,o._lastVolume=e}),f(l.$volumeOff,"click",e=>{e.stopPropagation(),b(l.$volumeOn,"display","block"),b(l.$volumeOff,"display","none"),o.volume=o.lastVolume||.5}),f(l.$volumePanel,"click",e=>{e.stopPropagation(),o.volume=c(e)}),f(l.$volumeHandle,"mousedown",()=>{l.isVolumeDroging=!0}),f(l.$volumeHandle,"mousemove",e=>{l.isVolumeDroging&&(o.volume=c(e))})),f(document,"mouseup",()=>{l.isVolumeDroging&&(l.isVolumeDroging=!1)}),A.record&&(f(l.$record,"click",e=>{e.stopPropagation(),w(A.recordFn)?A.recordFn():o.recording=!0}),f(l.$recordStop,"click",e=>{e.stopPropagation(),w(A.recordStopFn)?A.recordStopFn():o.recording=!1}),f(l.$recordingStop,"click",e=>{e.stopPropagation(),w(A.recordStopFn)?A.recordStopFn():o.recording=!1})),A.fullscreen&&(f(l.$fullscreen,"click",e=>{e.stopPropagation(),w(A.fullscreenFn)?A.fullscreenFn():o.fullscreen=!0}),f(l.$fullscreenExit,"click",e=>{e.stopPropagation(),w(A.fullscreenExitFn)?A.fullscreenExitFn():o.fullscreen=!1})),A.ptz&&(f(l.$ptz,"click",e=>{e.stopPropagation(),b(l.$ptzActive,"display","flex"),b(l.$ptz,"display","none"),l.$ptzControl.classList.add("jessibuca-ptz-controls-show")}),f(l.$ptzActive,"click",e=>{e.stopPropagation(),b(l.$ptz,"display","flex"),b(l.$ptzActive,"display","none"),l.$ptzControl.classList.remove("jessibuca-ptz-controls-show")}),l.$ptzArrows.forEach(e=>{f(e,"click",e=>{e.stopPropagation();e=e.currentTarget.dataset.arrow;l.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-show"),l.$ptzBgActive.classList.add("jessibuca-ptz-bg-active-"+e),l.$ptzControlCircular.classList.add("jessibuca-ptz-control-"+e),o.emit(v.ptz,e),setTimeout(()=>{l.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-show"),re.forEach(e=>{l.$ptzBgActive.classList.remove("jessibuca-ptz-bg-active-"+e),l.$ptzControlCircular.classList.remove("jessibuca-ptz-control-"+e)}),o.emit(v.ptz,"stop")},300)})})),o._opt.hasControl&&o._opt.controlAutoHide&&(f(o.$container,"mouseover",()=>{o.fullscreen||b(l.$controls,"display","block")}),f(o.$container,"mouseout",()=>{b(l.$controls,"display","none")})),o._opt.playType===m&&(f(l.$playbackNarrow,"click",e=>{e.stopPropagation(),o.playback&&o.playback.narrowPrecision()}),f(l.$playbackExpand,"click",e=>{e.stopPropagation(),o.playback&&o.playback.expandPrecision()}),f(l.$playbackTimeList,"click",e=>{const t=T(e);t.matches("div.jessibuca-playback-time-minute-one")&&o.playback&&o.playback.seek(t.dataset)})),A.quality&&(f(l.$qualityMenu,"mouseover",()=>{l.$qualityMenuList.classList.add("jessibuca-quality-menu-shown")}),f(l.$qualityMenu,"mouseout",()=>{l.$qualityMenuList.classList.remove("jessibuca-quality-menu-shown")}),f(l.$qualityMenuList,"click",e=>{const t=T(e);if(t.matches("div.jessibuca-quality-menu-item")){const e=t.dataset;o.streamQuality=e.quality}})),A.zoom&&(f(l.$zoom,"click",e=>{e.stopPropagation(),o.zooming=!0}),f(l.$zoomExpand,"click",e=>{e.stopPropagation(),o.zoom&&o.zoom.expandPrecision()}),f(l.$zoomNarrow,"click",e=>{e.stopPropagation(),o.zoom&&o.zoom.narrowPrecision()}),f(l.$zoomStop,"click",e=>{e.stopPropagation(),o.zooming=!1}),f(l.$zoomStop2,"click",e=>{e.stopPropagation(),o.zooming=!1})),A.close&&f(l.$close,"click",e=>{e.stopPropagation(),o.doDestroy()})}if(e._opt.hotKey){var u=e,d=this;const p=u["events"]["proxy"],g={};function h(e,t){g[e]?g[e].push(t):g[e]=[t]}h(27,()=>{u.fullscreen&&(u.fullscreen=!1)}),h(38,()=>{u.volume+=.05}),h(40,()=>{u.volume-=.05}),p(window,"keydown",e=>{if(d.isFocus){const d=document.activeElement.tagName.toUpperCase(),t=document.activeElement.getAttribute("contenteditable");if("INPUT"!==d&&"TEXTAREA"!==d&&""!==t&&"true"!==t){const d=g[e.keyCode];d&&(e.preventDefault(),d.forEach(e=>e()))}}})}this.player.debug.log("Control","init")}destroy(){this.$poster&&this.player.$container.removeChild(this.$poster),this.$loading&&this.player.$container.removeChild(this.$loading),this.$controls&&this.player.$container.removeChild(this.$controls),this.$playBig&&this.player.$container.removeChild(this.$playBig),this.$recording&&this.player.$container.removeChild(this.$recording),this.$ptzControl&&this.player.$container.removeChild(this.$ptzControl),this.$zoomControls&&this.player.$container.removeChild(this.$zoomControls),this.player.$container.classList.remove("jessibuca-controls-show-auto-hide"),this.player.$container.classList.remove("jessibuca-controls-show"),this.player.debug.log("control","destroy")}autoSize(){const e=this.player,t=(e.$container.style.padding="0 0",e.width),i=e.height,r=t/i,s=e.video.$videoElement.width/e.video.$videoElement.height;if(r>s){const r=(t-i*s)/2;e.$container.style.padding=`0 ${r}px`}else{const r=(i-t/s)/2;e.$container.style.padding=r+"px 0"}}}Se(".jessibuca-container{position:relative;width:100%;height:100%;overflow:hidden}.jessibuca-container.jessibuca-fullscreen-web{position:fixed;z-index:9999;left:0;top:0;right:0;bottom:0;width:100vw!important;height:100vh!important;background:#000}");class I{static init(){for(var e in I.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},I.types)I.types.hasOwnProperty(e)&&(I.types[e]=[e.charCodeAt(0),e.charCodeAt(1),e.charCodeAt(2),e.charCodeAt(3)]);let t=I.constants={};t.FTYP=new Uint8Array([105,115,111,109,0,0,0,1,105,115,111,109,97,118,99,49]),t.STSD_PREFIX=new Uint8Array([0,0,0,0,0,0,0,1]),t.STTS=new Uint8Array([0,0,0,0,0,0,0,0]),t.STSC=t.STCO=t.STTS,t.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),t.HDLR_VIDEO=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),t.HDLR_AUDIO=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]),t.DREF=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),t.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),t.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0])}static box(e){let t=8,i=null,r=Array.prototype.slice.call(arguments,1),s=r.length;for(let e=0;e>>24&255,i[1]=t>>>16&255,i[2]=t>>>8&255,i[3]=255&t,i.set(e,4);let n=8;for(let e=0;e>>24&255,e>>>16&255,e>>>8&255,255&e,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]))}static trak(e){return I.box(I.types.trak,I.tkhd(e),I.mdia(e))}static tkhd(e){var t=e.id,i=e.duration,r=e.presentWidth,e=e.presentHeight;return I.box(I.types.tkhd,new Uint8Array([0,0,0,7,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>>8&255,255&r,0,0,e>>>8&255,255&e,0,0]))}static mdia(e){return I.box(I.types.mdia,I.mdhd(e),I.hdlr(e),I.minf(e))}static mdhd(e){var t=e.timescale,e=e.duration;return I.box(I.types.mdhd,new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t,e>>>24&255,e>>>16&255,e>>>8&255,255&e,85,196,0,0]))}static hdlr(e){e="audio"===e.type?I.constants.HDLR_AUDIO:I.constants.HDLR_VIDEO;return I.box(I.types.hdlr,e)}static minf(e){var t="audio"===e.type?I.box(I.types.smhd,I.constants.SMHD):I.box(I.types.vmhd,I.constants.VMHD);return I.box(I.types.minf,t,I.dinf(),I.stbl(e))}static dinf(){return I.box(I.types.dinf,I.box(I.types.dref,I.constants.DREF))}static stbl(e){return I.box(I.types.stbl,I.stsd(e),I.box(I.types.stts,I.constants.STTS),I.box(I.types.stsc,I.constants.STSC),I.box(I.types.stsz,I.constants.STSZ),I.box(I.types.stco,I.constants.STCO))}static stsd(e){return"audio"===e.type?I.box(I.types.stsd,I.constants.STSD_PREFIX,I.mp4a(e)):"avc"===e.videoType?I.box(I.types.stsd,I.constants.STSD_PREFIX,I.avc1(e)):I.box(I.types.stsd,I.constants.STSD_PREFIX,I.hvc1(e))}static mp4a(e){var t=e.channelCount,i=e.audioSampleRate,t=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t,0,16,0,0,0,0,i>>>8&255,255&i,0,0]);return I.box(I.types.mp4a,t,I.esds(e))}static esds(e){var e=e.config||[],t=e.length,t=new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e).concat([6,1,2]));return I.box(I.types.esds,t)}static avc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return I.box(I.types.avc1,i,I.box(I.types.avcC,t))}static hvc1(e){var t=e.avcc,i=e.codecWidth,e=e.codecHeight,i=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,i>>>8&255,255&i,e>>>8&255,255&e,0,72,0,0,0,72,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,255,255]);return I.box(I.types.hvc1,i,I.box(I.types.hvcC,t))}static mvex(e){return I.box(I.types.mvex,I.trex(e))}static trex(e){e=e.id,e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]);return I.box(I.types.trex,e)}static moof(e,t){return I.box(I.types.moof,I.mfhd(e.sequenceNumber),I.traf(e,t))}static mfhd(e){e=new Uint8Array([0,0,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e]);return I.box(I.types.mfhd,e)}static traf(e,t){var i=e.id,i=I.box(I.types.tfhd,new Uint8Array([0,0,0,0,i>>>24&255,i>>>16&255,i>>>8&255,255&i])),t=I.box(I.types.tfdt,new Uint8Array([0,0,0,0,t>>>24&255,t>>>16&255,t>>>8&255,255&t])),r=I.sdtp(e),e=I.trun(e,r.byteLength+16+16+8+16+8+8);return I.box(I.types.traf,i,t,e,r)}static sdtp(e){let t=new Uint8Array(5),i=e.flags;return t[4]=i.isLeading<<6|i.dependsOn<<4|i.isDependedOn<<2|i.hasRedundancy,I.box(I.types.sdtp,t)}static trun(e,t){let i=new Uint8Array(28);t+=36,i.set([0,0,15,1,0,0,0,1,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0);var t=e.duration,r=e.size,s=e.flags,e=e.cts;return i.set([t>>>24&255,t>>>16&255,t>>>8&255,255&t,r>>>24&255,r>>>16&255,r>>>8&255,255&r,s.isLeading<<2|s.dependsOn,s.isDependedOn<<6|s.hasRedundancy<<4|s.isNonSync,0,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e],12),I.box(I.types.trun,i)}static mdat(e){return I.box(I.types.mdat,e)}}function Ct(e){let s={width:0,height:0,profile:0,level:0};e=e.slice(5);do{let t={};if(e.length<23)break;if(t.configurationVersion=e[0],1!=t.configurationVersion)break;t.general_profile_space=e[1]>>6&3,t.general_tier_flag=e[1]>>5&1,t.general_profile_idc=31&e[1],t.general_profile_compatibility_flags=e[2]<<24|e[3]<<16|e[4]<<8|e[5],t.general_constraint_indicator_flags=e[6]<<24|e[7]<<16|e[8]<<8|e[9],t.general_constraint_indicator_flags=t.general_constraint_indicator_flags<<16|e[10]<<8|e[11],t.general_level_idc=e[12],t.min_spatial_segmentation_idc=(15&e[13])<<8|e[14],t.parallelismType=3&e[15],t.chromaFormat=3&e[16],t.bitDepthLumaMinus8=7&e[17],t.bitDepthChromaMinus8=7&e[18],t.avgFrameRate=e[19]<<8|e[20],t.constantFrameRate=e[21]>>6&3,t.numTemporalLayers=e[21]>>3&7,t.temporalIdNested=e[21]>>2&1,t.lengthSizeMinusOne=3&e[21];let i=e[22],r=e.slice(23);for(let e=0;e{this.mediaSourceOpen=!0,this.player&&this.player.emit(v.mseSourceOpen)}),t(this.mediaSource,"sourceclose",()=>{this.player&&this.player.emit(v.mseSourceClose)}),t(this.mediaSource,"sourceended",()=>{this.player&&this.player.emit(v.mseSourceended)}),e.debug.log("MediaSource","init")}destroy(){this.stop(),this.mediaSource=null,this.mediaSourceOpen=!1,this.sourceBuffer=null,this.hasInit=!1,this.isInitInfo=!1,this.sequenceNumber=0,this.cacheTrack={},this.timeInit=!1,this.mediaSourceAppendBufferFull=!1,this.mediaSourceAppendBufferError=!1,this.isDecodeFirstIIframe=!1,this.prevTimestamp=null,this.prevDts=null,this.$videoElement&&(this.player._opt.mseUseCanvasRender&&(this.$videoElement.src="",this.$videoElement.removeAttribute("src")),this.$videoElement=null),this.mediaSourceObjectURL&&(window.URL.revokeObjectURL(this.mediaSourceObjectURL),this.mediaSourceObjectURL=null),this.off(),this.player.debug.log("MediaSource","destroy")}get state(){return this.mediaSource&&this.mediaSource.readyState}get isStateOpen(){return"open"===this.state}get isStateClosed(){return"closed"===this.state}get isStateEnded(){return"ended"===this.state}get duration(){return this.mediaSource&&this.mediaSource.duration}set duration(e){this.mediaSource.duration=e}initVideoEvents(){const e=this.player.events["proxy"];e(this.$videoElement,se,()=>{this.player.debug.log("MediaSource","video canplay"),this.$videoElement.play().then(()=>{this.player.debug.log("MediaSource","video play")}).catch(e=>{this.player.debug.warn("MediaSource","video play error ",e)})}),e(this.$videoElement,ne,()=>{this.player.debug.log("MediaSource","video waiting")}),e(this.$videoElement,ae,e=>{e=parseInt(e.timeStamp,10);this.player.emit(v.videoTimeUpdate,e)})}decodeVideo(t,i,r,s){const e=this.player;if(e)if(this.hasInit){if(r&&0===t[1]){const i=15&t[0];let e={};7==i?e=bt(t):12==i&&(e=Ct(t));const s=this.player.video.videoInfo;e.codecWidth===s.width&&e.codecHeight===s.height||(this.player.debug.warn("MediaSource",`width or height is update, width ${s.width}-> ${e.codecWidth}, height ${s.height}-> `+e.codecHeight),this.isInitInfo=!1,this.player.video.init=!1)}if(!this.isDecodeFirstIIframe&&r&&(this.isDecodeFirstIIframe=!0),this.isDecodeFirstIIframe){null===this.firstRenderTime&&(this.firstRenderTime=i),il)n.debug.warn("MediaSource","dropping time is ",s-this.cacheTrack.dts),this.dropping=!1,this.cacheTrack={};else if(this.cacheTrack&&s>=this.cacheTrack.dts){let e=8+this.cacheTrack.size,t=new Uint8Array(e),i=(t[0]=e>>>24&255,t[1]=e>>>16&255,t[2]=e>>>8&255,t[3]=255&e,t.set(I.types.mdat,4),t.set(this.cacheTrack.data,8),this.cacheTrack.duration=s-this.cacheTrack.dts,I.moof(this.cacheTrack,this.cacheTrack.dts)),r=new Uint8Array(i.byteLength+t.byteLength);r.set(i,0),r.set(t,i.byteLength),this.appendBuffer(r.buffer),n.handleRender(),n.updateStats({fps:!0,ts:s,buf:n.demux&&n.demux.delay||0}),n._times.videoStart||(n._times.videoStart=g(),n.handlePlayToRenderTimes())}else n.debug.log("MediaSource",`timeInit set false , cacheTrack = {} now dts is ${s}, cacheTrack dts is `+(this.cacheTrack&&this.cacheTrack.dts)),this.timeInit=!1,this.cacheTrack={};this.cacheTrack||(this.cacheTrack={}),this.cacheTrack.id=1,this.cacheTrack.sequenceNumber=++this.sequenceNumber,this.cacheTrack.size=r,this.cacheTrack.dts=s,this.cacheTrack.cts=i,this.cacheTrack.isKeyframe=t,this.cacheTrack.data=e,this.cacheTrack.flags={isLeading:0,dependsOn:t?2:1,isDependedOn:t?1:0,hasRedundancy:0,isNonSync:t?0:1},this.timeInit||1!==o.buffered.length||(n.debug.log("MediaSource","timeInit set true"),this.timeInit=!0,o.currentTime=o.buffered.end(0)),!this.isInitInfo&&0{this.player.emit(v.mseSourceBufferError,e)}),i(this.sourceBuffer,"updateend",()=>{})}if(this.mediaSourceAppendBufferFull)t.error("MediaSource","this.mediaSourceAppendBufferFull is true");else if(this.mediaSourceAppendBufferError)t.error("MediaSource","this.mediaSourceAppendBufferError is true");else if(!1===this.sourceBuffer.updating&&this.isStateOpen)try{this.sourceBuffer.appendBuffer(e)}catch(e){t.warn("MediaSource","this.sourceBuffer.appendBuffer()",e.code,e),22===e.code?(this.stop(),this.mediaSourceAppendBufferFull=!0,this.emit(d.mediaSourceFull)):11===e.code?(this.stop(),this.mediaSourceAppendBufferError=!0,this.emit(d.mediaSourceAppendBufferError)):(t.error("MediaSource","appendBuffer error",e),this.player.emit(v.mseSourceBufferError,e))}else this.isStateClosed?this.player.emit(d.mseSourceBufferError,"mediaSource is not attached to video or mediaSource is closed"):this.isStateEnded?this.player.emit(d.mseSourceBufferError,"mediaSource is end"):!0===this.sourceBuffer.updating&&this.player.emit(v.mseSourceBufferBusy)}stop(){this.abortSourceBuffer(),this.removeSourceBuffer(),this.endOfStream()}dropSourceBuffer(e){const t=this.$videoElement;this.dropping=e,0"undefined"!=typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,It=()=>"wakeLock"in navigator;class Bt{constructor(e){if(this.player=e,this.enabled=!1,It()){this._wakeLock=null;const e=()=>{null!==this._wakeLock&&"visible"===document.visibilityState&&this.enable()};document.addEventListener("visibilitychange",e),document.addEventListener("fullscreenchange",e)}else Lt()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm","data:video/webm;base64,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"),this._addSourceToVideo(this.noSleepVideo,"mp4","data:video/mp4;base64,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"),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{.5{this._wakeLock=e,this.enabled=!0,t.log("wakeLock","Wake Lock active."),this._wakeLock.addEventListener("release",()=>{t.log("wakeLock","Wake Lock released.")})}).catch(e=>{throw this.enabled=!1,t.error("wakeLock",e.name+", "+e.message),e}):Lt()?(this.disable(),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(e=>(this.enabled=!0,e)).catch(e=>{throw this.enabled=!1,e})}disable(){const e=this.player.debug;It()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):Lt()?this.noSleepTimer&&(e.warn("wakeLock","NoSleep now disabled for older iOS devices."),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}}var B=(e=oe(function(e,t){"undefined"!=typeof window&&(e.exports=function(){return i={"./node_modules/eventemitter3/index.js":function(e,t,i){var r=Object.prototype.hasOwnProperty,f="~";function s(){}function n(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function a(e,t,i,r,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");i=new n(i,r||e,s),r=f?f+t:t;return e._events[r]?e._events[r].fn?e._events[r]=[e._events[r],i]:e._events[r].push(i):(e._events[r]=i,e._eventsCount++),e}function l(e,t){0==--e._eventsCount?e._events=new s:delete e._events[t]}function o(){this._events=new s,this._eventsCount=0}Object.create&&(s.prototype=Object.create(null),(new s).__proto__||(f=!1)),o.prototype.eventNames=function(){var e,t,i=[];if(0===this._eventsCount)return i;for(t in e=this._events)r.call(e,t)&&i.push(f?t.slice(1):t);return Object.getOwnPropertySymbols?i.concat(Object.getOwnPropertySymbols(e)):i},o.prototype.listeners=function(e){var e=f?f+e:e,t=this._events[e];if(!t)return[];if(t.fn)return[t.fn];for(var i=0,r=t.length,s=new Array(r);in||t.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),i.currentTime=n+.05)),this.getNextFragment(r,s));a?"identity"!==(null==(e=a.decryptdata)?void 0:e.keyFormat)||null!=(t=a.decryptdata)&&t.key?this.loadFragment(a,s,r):this.loadKey(a,s):this.bufferFlushed=!0}}}}},E.getMaxBufferLength=function(){var e=b.prototype.getMaxBufferLength.call(this),t=this.getFwdBufferInfo(this.videoBuffer||this.media,u.PlaylistLevelType.MAIN);return null===t?e:Math.max(e,t.len)},E.onMediaDetaching=function(){this.videoBuffer=null,b.prototype.onMediaDetaching.call(this)},E.onAudioTracksUpdated=function(e,t){t=t.audioTracks;this.resetTransmuxer(),this.levels=t.map(function(e){return new r.Level(e)})},E.onAudioTrackSwitching=function(e,t){var i=!!t.url,t=(this.trackId=t.id,this.fragCurrent);null!=t&&t.loader&&t.loader.abort(),this.fragCurrent=null,this.clearWaitingFragment(),i?this.setInterval(100):this.resetTransmuxer(),i?(this.audioSwitch=!0,this.state=h.State.IDLE):this.state=h.State.STOPPED,this.tick()},E.onManifestLoading=function(){this.mainDetails=null,this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=!1},E.onLevelLoaded=function(e,t){this.mainDetails=t.details},E.onAudioTrackLoaded=function(e,t){var i=this.levels,r=t.details,t=t.id;if(i){this.log("Track "+t+" loaded ["+r.startSN+","+r.endSN+"],duration:"+r.totalduration);var i=i[t],s=0;if(r.live||null!=(n=i.details)&&n.live){var n=this.mainDetails;if(r.fragments[0]||(r.deltaUpdateFailed=!0),r.deltaUpdateFailed||!n)return;s=!i.details&&r.hasProgramDateTime&&n.hasProgramDateTime?(Object(l.alignMediaPlaylistByPDT)(r,n),r.fragments[0].start):this.alignPlaylists(r,i.details)}i.details=r,this.levelLastLoaded=t,this.startFragRequested||!this.mainDetails&&r.live||this.setStartPosition(i.details,s),this.state!==h.State.WAITING_TRACK||this.waitForCdnTuneIn(r)||(this.state=h.State.IDLE),this.tick()}else this.warn("Audio tracks were reset while loading level "+t)},E._handleFragmentLoadProgress=function(e){var t,i,r,s,n=e.frag,a=e.part,e=e.payload,o=this.config,l=this.trackId,c=this.levels;c?(c=c[l],console.assert(c,"Audio track is defined on fragment load progress"),t=c.details,console.assert(t,"Audio track details are defined on fragment load progress"),o=o.defaultAudioCodec||c.audioCodec||"mp4a.40.2",c=(c=this.transmuxer)||(this.transmuxer=new p.default(this.hls,u.PlaylistLevelType.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this))),i=this.initPTS[n.cc],r=null==(r=n.initSegment)?void 0:r.data,void 0!==i?(s=a?a.index:-1,s=new g.ChunkMetadata(n.level,n.sn,n.stats.chunkCount,e.byteLength,s,-1!==s),c.push(e,r,o,"",n,a,t.totalduration,!1,s,i)):(m.logger.log("Unknown video PTS for cc "+n.cc+", waiting for video PTS before demuxing audio frag "+n.sn+" of ["+t.startSN+" ,"+t.endSN+"],track "+l),(this.waitingData=this.waitingData||{frag:n,part:a,cache:new d.default,complete:!1}).cache.push(new Uint8Array(e)),this.waitingVideoCC=this.videoTrackCC,this.state=h.State.WAITING_INIT_PTS)):this.warn("Audio tracks were reset while fragment load was in progress. Fragment "+n.sn+" of level "+n.level+" will not be buffered")},E._handleFragmentLoadComplete=function(e){this.waitingData?this.waitingData.complete=!0:b.prototype._handleFragmentLoadComplete.call(this,e)},E.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},E.onBufferCreated=function(e,t){var i=t.tracks.audio;i&&(this.mediaBuffer=i.buffer),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer)},E.onFragBuffered=function(e,t){var i=t.frag,t=t.part;i.type===u.PlaylistLevelType.AUDIO&&(this.fragContextChanged(i)?this.warn("Fragment "+i.sn+(t?" p: "+t.index:"")+" of level "+i.level+" finished buffering, but was aborted. state: "+this.state+", audioSwitch: "+this.audioSwitch):("initSegment"!==i.sn&&(this.fragPrevious=i,this.audioSwitch&&(this.audioSwitch=!1,this.hls.trigger(f.Events.AUDIO_TRACK_SWITCHED,{id:this.trackId}))),this.fragBufferedComplete(i,t)))},E.onError=function(e,t){switch(t.details){case c.ErrorDetails.FRAG_LOAD_ERROR:case c.ErrorDetails.FRAG_LOAD_TIMEOUT:case c.ErrorDetails.KEY_LOAD_ERROR:case c.ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(u.PlaylistLevelType.AUDIO,t);break;case c.ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case c.ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:this.state!==h.State.ERROR&&this.state!==h.State.STOPPED&&(this.state=t.fatal?h.State.ERROR:h.State.IDLE,this.warn(t.details+" while loading frag, switching to "+this.state+" state"));break;case c.ErrorDetails.BUFFER_FULL_ERROR:var i,r;"audio"!==t.parent||this.state!==h.State.PARSING&&this.state!==h.State.PARSED||(i=!0,(i=(r=this.getFwdBufferInfo(this.mediaBuffer,u.PlaylistLevelType.AUDIO))&&.5=o.length?this.warn("Invalid id passed to audio-track controller"):(this.clearTimer(),t=o[this.trackId],this.log("Now switching to audio-track index "+e),i=(o=o[e]).id,r=void 0===(r=o.groupId)?"":r,s=o.name,n=o.type,a=o.url,this.trackId=e,this.trackName=s,this.selectDefaultTrack=!1,this.hls.trigger(l.Events.AUDIO_TRACK_SWITCHING,{id:i,groupId:r,name:s,type:n,url:a}),o.details&&!o.details.live||(e=this.switchParams(o.url,null==t?void 0:t.details),this.loadPlaylist(e)))},s.selectInitialTrack=function(){var e=this.tracksInGroup,e=(console.assert(e.length,"Initial audio track should be selected when tracks are known"),this.trackName),e=this.findTrackId(e)||this.findTrackId();-1!==e?this.setAudioTrack(e):(this.warn("No track found for running audio group-ID: "+this.groupId),this.hls.trigger(l.Events.ERROR,{type:r.ErrorTypes.MEDIA_ERROR,details:r.ErrorDetails.AUDIO_TRACK_LOAD_ERROR,fatal:!0}))},s.findTrackId=function(e){for(var t=this.tracksInGroup,i=0;it.partTarget&&(s+=1)),Object(o.isFiniteNumber)(n))return new l.HlsUrlParameters(n,Object(o.isFiniteNumber)(s)?s:void 0,l.HlsSkip.No)}}},t.loadPlaylist=function(e){},t.shouldLoadTrack=function(e){return this.canLoad&&e&&!!e.url&&(!e.details||e.details.live)},t.playlistLoaded=function(e,t,i){var r=this,s=t.details,n=t.stats,a=n.loading.end?Math.max(0,self.performance.now()-n.loading.end):0;if(s.advancedDateTime=Date.now()-a,s.live||null!=i&&i.live){if(s.reloaded(i),i&&this.log("live playlist "+e+" "+(s.advanced?"REFRESHED "+s.lastPartSn+"-"+s.lastPartIndex:"MISSED")),i&&0i.tuneInGoal?(this.warn("CDN Tune-in goal increased from: "+i.tuneInGoal+" to: "+d+" with playlist age: "+s.age),d=0):(a+=h=Math.floor(d/s.targetduration),void 0!==l&&(l+=Math.round(d%s.targetduration/s.partTarget)),this.log("CDN Tune-in age: "+s.ageHeader+"s last advanced "+u.toFixed(2)+"s goal: "+d+" skip sn "+h+" to part "+l)),s.tuneInGoal=d),o=this.getDeliveryDirectives(s,t.deliveryDirectives,a,l),c||!f)return void this.loadPlaylist(o)}else o=this.getDeliveryDirectives(s,t.deliveryDirectives,a,l);i=Object(A.computeReloadInterval)(s,n);void 0!==a&&s.canBlockReload&&(i-=s.partTarget||1),this.log("reload live playlist "+e+" in "+Math.round(i)+" ms"),this.timer=self.setTimeout(function(){return r.loadPlaylist(o)},i)}}else this.clearTimer()},t.getDeliveryDirectives=function(e,t,i,r){var s=Object(l.getSkipValue)(e,i);return null!=t&&t.skip&&e.deltaUpdateFailed&&(i=t.msn,r=t.part,s=l.HlsSkip.No),new l.HlsUrlParameters(i,r,s)},t.retryLoadingOrFail=function(e){var t,i=this,r=this.hls.config,s=this.retryCount=t.endSN&&!e.nextStart){e=t.partList;if(null!=e&&e.length)return t=e[e.length-1],a.BufferHelper.isBuffered(this.media,t.start+t.duration/2);e=r.getState(i);return e===d.FragmentState.PARTIAL||e===d.FragmentState.OK}return!1},t.onMediaAttached=function(e,t){t=this.media=this.mediaBuffer=t.media,this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),t.addEventListener("seeking",this.onvseeking),t.addEventListener("ended",this.onvended),t=this.config;this.levels&&t.autoStartLoad&&this.state===E.STOPPED&&this.startLoad(t.startPosition)},t.onMediaDetaching=function(){var e=this.media;null!=e&&e.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),e&&(e.removeEventListener("seeking",this.onvseeking),e.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()},t.onMediaSeeking=function(){var e=this.config,t=this.fragCurrent,i=this.media,r=this.mediaBuffer,s=this.state,n=i?i.currentTime:0,r=a.BufferHelper.bufferInfo(r||i,n,e.maxBufferHole);this.log("media seeking to "+(Object(l.isFiniteNumber)(n)?n.toFixed(3):n)+", state: "+s),s===E.ENDED?this.resetLoadingState():t&&!r.len&&(s=e.maxFragLookUpTolerance,e=t.start-s,s=n>t.start+t.duration+s,(ne.end&&t.fragmentHint&&(e=t.fragmentHint);var a,o=this.getNextPart(n,e,i);if(-1i&&this.flushMainBuffer(r,e.start)):this.flushMainBuffer(0,e.start))},t.getFwdBufferInfo=function(e,t){var i=this.config,r=this.getLoadPosition();if(!Object(l.isFiniteNumber)(r))return null;var s=a.BufferHelper.bufferInfo(e,r,i.maxBufferHole);if(0===s.len&&void 0!==s.nextStart){t=this.fragmentTracker.getBufferedFrag(r,t);if(t&&s.nextStart=e&&(t.maxMaxBufferLength/=2,this.warn("Reduce max buffer length to "+t.maxMaxBufferLength+"s"),!0)},t.getNextFragment=function(e,t){var i=t.fragments,r=i.length;if(!r)return null;var s,n=this.config,a=i[0].start;if(t.live){var o=n.initialLiveManifestSize;if(re.start&&e.loaded},t.getInitialLiveFragment=function(e,t){var i,r=this.fragPrevious,s=null;return r?(e.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+r.programDateTime),s=Object(f.findFragmentByPDT)(t,r.endProgramDateTime,this.config.maxFragLookUpTolerance)),s||((i=r.sn+1)>=e.startSN&&i<=e.endSN&&(i=t[i-e.startSN],r.cc===i.cc&&this.log("Live playlist, switching playlist, load frag with next SN: "+(s=i).sn)),s||(s=Object(f.findFragWithCC)(t,r.cc))&&this.log("Live playlist, switching playlist, load frag with same CC: "+s.sn))):null!==(i=this.hls.liveSyncPosition)&&(s=this.getFragmentAtPosition(i,this.bitrateTest?e.fragmentEnd:e.edge,e)),s},t.getFragmentAtPosition=function(e,t,i){var r,s=this.config,n=this.fragPrevious,a=i.fragments,o=i.endSN,l=i.fragmentHint,c=s.maxFragLookUpTolerance,s=!!(s.lowLatencyMode&&i.partList&&l);if(s&&l&&!this.bitrateTest&&(a=a.concat(l),o=l.sn),r=e=s-n.maxFragLookUpTolerance&&i<=r,null!==t&&a.duration>t&&(i"+e.startSN+" prev-sn: "+(s?s.sn:"na")+" fragments: "+r),a):n},t.waitForCdnTuneIn=function(e){return e.live&&e.canBlockReload&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)},t.setStartPosition=function(e,t){var i,r=this.startPosition;-1!==(r=r"+e))}}]),T);function T(e,t,i){var r;return(r=b.call(this)||this).hls=void 0,r.fragPrevious=null,r.fragCurrent=null,r.fragmentTracker=void 0,r.transmuxer=null,r._state=E.STOPPED,r.media=void 0,r.mediaBuffer=void 0,r.config=void 0,r.bitrateTest=!1,r.lastCurrentTime=0,r.nextLoadPosition=0,r.startPosition=0,r.loadedmetadata=!1,r.fragLoadError=0,r.retryDate=0,r.levels=null,r.fragmentLoader=void 0,r.levelLastLoaded=null,r.startFragRequested=!1,r.decrypter=void 0,r.initPTS=[],r.onvseeking=null,r.onvended=null,r.logPrefix="",r.log=void 0,r.warn=void 0,r.logPrefix=i,r.log=s.logger.log.bind(s.logger,i+":"),r.warn=s.logger.warn.bind(s.logger,i+":"),r.hls=e,r.fragmentLoader=new A.default(e.config),r.fragmentTracker=t,r.config=e.config,r.decrypter=new p.default(e,e.config),e.on(h.Events.KEY_LOADED,r.onKeyLoaded,function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r)),r}},"./src/controller/buffer-controller.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return n});var l=i("./src/polyfills/number.ts"),p=i("./src/events.ts"),g=i("./src/utils/logger.ts"),m=i("./src/errors.ts"),v=i("./src/utils/buffer-helper.ts"),t=i("./src/utils/mediasource-helper.ts"),a=i("./src/loader/fragment.ts"),r=i("./src/controller/buffer-operation-queue.ts"),s=Object(t.getMediaSource)(),c=/([ha]vc.)(?:\.[^.,]+)+/,n=((i=o.prototype).hasSourceTypes=function(){return 0i.config.appendErrorMaxRetry&&(g.logger.error("[buffer-controller]: Failed "+i.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),t.fatal=!0)),i.trigger(p.Events.ERROR,t)}},o)},i.onBufferFlushing=function(e,i){function t(t){return{execute:r.removeExecutor.bind(r,t,i.startOffset,i.endOffset),onStart:function(){},onComplete:function(){r.hls.trigger(p.Events.BUFFER_FLUSHED,{type:t})},onError:function(e){g.logger.warn("[buffer-controller]: Failed to remove from "+t+" SourceBuffer",e)}}}var r=this,s=this.operationQueue;i.type?s.append(t(i.type),i.type):this.getSourceBufferTypes().forEach(function(e){s.append(t(e),e)})},i.onFragParsed=function(e,t){var i=this,r=t.frag,s=t.part,t=[],n=(s||r).elementaryStreams;n[a.ElementaryStreamTypes.AUDIOVIDEO]?t.push("audiovideo"):(n[a.ElementaryStreamTypes.AUDIO]&&t.push("audio"),n[a.ElementaryStreamTypes.VIDEO]&&t.push("video")),0===t.length&&g.logger.warn("Fragments must have at least one ElementaryStreamType set. type: "+r.type+" level: "+r.level+" sn: "+r.sn),this.blockBuffers(function(){var e=self.performance.now(),e=(r.stats.buffering.end=e,s&&(s.stats.buffering.end=e),(s||r).stats);i.hls.trigger(p.Events.FRAG_BUFFERED,{frag:r,part:s,stats:e,id:r.type})},t)},i.onFragChanged=function(e,t){this.flushBackBuffer()},i.onBufferEos=function(e,r){var s=this;this.getSourceBufferTypes().reduce(function(e,t){var i=s.sourceBuffer[t];return r.type&&r.type!==t||i&&!i.ended&&(i.ended=!0,g.logger.log("[buffer-controller]: "+t+" sourceBuffer now EOS")),e&&!(i&&!i.ended)},!0)&&this.blockBuffers(function(){var e=s.mediaSource;e&&"open"===e.readyState&&e.endOfStream()})},i.onLevelUpdated=function(e,t){t=t.details;t.fragments.length&&(this.details=t,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())},i.flushBackBuffer=function(){var e,t,i,r,s=this.hls,n=this.details,a=this.media,o=this.sourceBuffer;a&&null!==n&&(e=this.getSourceBufferTypes()).length&&(i=n.live&&null!==s.config.liveBackBufferLength?s.config.liveBackBufferLength:s.config.backBufferLength,!Object(l.isFiniteNumber)(i)||i<0||(a=a.currentTime,t=n.levelTargetDuration,i=Math.max(i,t),r=Math.floor(a/t)*t-i,e.forEach(function(e){var t=o[e];t&&0<(t=v.BufferHelper.getBuffered(t)).length&&r>t.start(0)&&(s.trigger(p.Events.BACK_BUFFER_REACHED,{bufferEnd:r}),n.live&&s.trigger(p.Events.LIVE_BACK_BUFFER_REACHED,{bufferEnd:r}),s.trigger(p.Events.BUFFER_FLUSHING,{startOffset:0,endOffset:r,type:e}))})))},i.updateMediaElementDuration=function(){var e,t,i,r,s,n;this.details&&this.media&&this.mediaSource&&"open"===this.mediaSource.readyState&&(e=this.details,t=this.hls,s=this.media,i=this.mediaSource,r=e.fragments[0].start+e.totalduration,s=s.duration,n=Object(l.isFiniteNumber)(i.duration)?i.duration:0,e.live&&t.config.liveDurationInfinity?(g.logger.log("[buffer-controller]: Media Source duration is set to Infinity"),i.duration=1/0,this.updateSeekableRange(e)):(nthis.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=t.autoLevelCapping))},i.getMaxLevel=function(i){var r=this,e=this.hls.levels;if(!e.length)return-1;e=e.filter(function(e,t){return a.isLevelAllowed(t,r.restrictedLevels)&&t<=i});return this.clientRect=null,a.getMaxLevelByMediaSize(e,this.mediaWidth,this.mediaHeight)},i.startCapping=function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,this.hls.firstLevel=this.getMaxLevel(this.firstLevel),self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())},i.stopCapping=function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)},i.getDimensions=function(){if(this.clientRect)return this.clientRect;var e,t=this.media,i={width:0,height:0};return t&&(e=t.getBoundingClientRect(),i.width=e.width,i.height=e.height,i.width||i.height||(i.width=e.right-e.left||t.width||0,i.height=e.bottom-e.top||t.height||0)),this.clientRect=i},a.isLevelAllowed=function(e,t){return-1===(t=void 0===t?[]:t).indexOf(e)},a.getMaxLevelByMediaSize=function(e,t,i){if(!e||!e.length)return-1;for(var r,s=e.length-1,n=0;n=t||a.height>=i)&&(!(r=e[n+1])||a.width!==r.width||a.height!==r.height)){s=n;break}}return s},i=[{key:"contentScaleFactor",get:function(){var e=1;try{e=self.devicePixelRatio}catch(e){}return e}}],s((n=a).prototype,[{key:"mediaWidth",get:function(){return this.getDimensions().width*a.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*a.contentScaleFactor}}]),s(n,i);var n=a;function a(e){this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.hls=void 0,this.streamController=void 0,this.clientRect=void 0,this.hls=e,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}t.default=n},"./src/controller/cmcd-controller.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return h});var r=i("./src/events.ts"),a=i("./src/types/cmcd.ts"),s=i("./src/utils/buffer-helper.ts"),o=i("./src/utils/logger.ts");function n(e,t){for(var i=0;i=e.length?{done:!0}:{done:!1,value:e[i++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,r=new Array(t);it&&(t=s.bitrate)}return 0n.config.fpsDroppedMonitoringThreshold*s&&(a=n.currentLevel,c.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+a),0=a)&&(n.trigger(l.Events.FPS_DROP_LEVEL_CAPPING,{level:--a,droppedLevel:n.currentLevel}),n.autoLevelCapping=a,this.streamController.nextLevelSwitch()))),this.lastTime=o,this.lastDroppedFrames=i,this.lastDecodedFrames=t)},i.checkFPSInterval=function(){var e,t=this.media;t&&(this.isVideoPlaybackQualityAvailable?(e=t.getVideoPlaybackQuality(),this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)):this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount))},t.default=r},"./src/controller/fragment-finders.ts":function(e,t,i){i.r(t),i.d(t,"findFragmentByPDT",function(){return r}),i.d(t,"findFragmentByPTS",function(){return s}),i.d(t,"fragmentWithinToleranceTest",function(){return o}),i.d(t,"pdtWithinToleranceTest",function(){return l}),i.d(t,"findFragWithCC",function(){return c});var n=i("./src/polyfills/number.ts"),a=i("./src/utils/binary-search.ts");function r(e,t,i){if(null===t||!Array.isArray(e)||!e.length||!Object(n.isFiniteNumber)(t))return null;if(t<(e[0].programDateTime||0))return null;if(t>=(e[e.length-1].endProgramDateTime||0))return null;i=i||0;for(var r=0;re&&i.start?-1:0}function l(e,t,i){t=1e3*Math.min(t,i.duration+(i.deltaPTS||0));return(i.endProgramDateTime||0)-t>e}function c(e,t){return a.default.search(e,function(e){return e.cct?-1:0})}},"./src/controller/fragment-tracker.ts":function(e,t,i){i.r(t),i.d(t,"FragmentState",function(){return r}),i.d(t,"FragmentTracker",function(){return n});var r,s=i("./src/events.ts"),o=i("./src/types/loader.ts"),n=((t=r=r||{}).NOT_LOADED="NOT_LOADED",t.BACKTRACKED="BACKTRACKED",t.APPENDING="APPENDING",t.PARTIAL="PARTIAL",t.OK="OK",(i=a.prototype)._registerListeners=function(){var e=this.hls;e.on(s.Events.BUFFER_APPENDED,this.onBufferAppended,this),e.on(s.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.on(s.Events.FRAG_LOADED,this.onFragLoaded,this)},i._unregisterListeners=function(){var e=this.hls;e.off(s.Events.BUFFER_APPENDED,this.onBufferAppended,this),e.off(s.Events.FRAG_BUFFERED,this.onFragBuffered,this),e.off(s.Events.FRAG_LOADED,this.onFragLoaded,this)},i.destroy=function(){this._unregisterListeners(),this.fragments=this.timeRanges=null},i.getAppendedFrag=function(e,t){if(t===o.PlaylistLevelType.MAIN){var i=this.activeFragment,r=this.activeParts;if(!i)return null;if(r)for(var s=r.length;s--;){var n=r[s],a=n?n.end:i.appendedPTS;if(n.start<=e&&void 0!==a&&e<=a)return 9t&&s.removeFragment(e))})},i.removeFragment=function(e){var t=c(e);e.stats.loaded=0,e.clearElementaryStreamInfo(),delete this.fragments[t]},i.removeAllFragments=function(){this.fragments=Object.create(null),this.activeFragment=null,this.activeParts=null},a);function a(e){this.activeFragment=null,this.activeParts=null,this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hls=e,this._registerListeners()}function l(e){var t;return e.buffered&&(null!=(t=e.range.video)&&t.partial||null!=(t=e.range.audio)&&t.partial)}function c(e){return e.type+"_"+e.level+"_"+e.urlId+"_"+e.sn}},"./src/controller/gap-controller.ts":function(e,t,i){i.r(t),i.d(t,"STALL_MINIMUM_DURATION_MS",function(){return f}),i.d(t,"MAX_START_GAP_JUMP",function(){return A}),i.d(t,"SKIP_BUFFER_HOLE_STEP_SECONDS",function(){return p}),i.d(t,"SKIP_BUFFER_RANGE_START",function(){return g}),i.d(t,"default",function(){return r});var c=i("./src/utils/buffer-helper.ts"),u=i("./src/errors.ts"),d=i("./src/events.ts"),h=i("./src/utils/logger.ts"),f=250,A=2,p=.1,g=.05,r=((t=s.prototype).destroy=function(){this.hls=this.fragmentTracker=this.media=null},t.poll=function(e){var t=this.config,i=this.media,r=this.stalled,s=i.currentTime,n=i.seeking,a=this.seeking&&!n,o=!this.seeking&&n;if(this.seeking=n,s===e){if((o||a)&&(this.stalled=null),!i.paused&&!i.ended&&0!==i.playbackRate&&c.BufferHelper.getBuffered(i).length){e=c.BufferHelper.bufferInfo(i,s,0),o=0A,l=!a||Ai.maxBufferHole&&t>1e3*i.highBufferWatchdogPeriod&&(h.logger.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())},t._reportStall=function(e){var t=this.hls,i=this.media;this.stallReported||(this.stallReported=!0,h.logger.warn("Playback stalling at @"+i.currentTime+" due to low buffer (buffer="+e+")"),t.trigger(d.Events.ERROR,{type:u.ErrorTypes.MEDIA_ERROR,details:u.ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1,buffer:e}))},t._trySkipBufferHole=function(e){for(var t=this.config,i=this.hls,r=this.media,s=r.currentTime,n=0,a=c.BufferHelper.getBuffered(r),o=0;o=n&&sthis.hls.config.fragLoadingMaxRetry&&(r=t.frag.level)):r=t.frag.level);break;case p.ErrorDetails.LEVEL_LOAD_ERROR:case p.ErrorDetails.LEVEL_LOAD_TIMEOUT:i&&(i.deliveryDirectives&&(a=!1),r=i.level),n=!0;break;case p.ErrorDetails.REMUX_ALLOC_ERROR:r=t.level,n=!0}void 0!==r&&this.recoverLevel(t,r,n,a)}}},t.recoverLevel=function(e,t,i,r){var s=e.details,n=this._levels[t];if(n.loadError++,i){if(!this.retryLoadingOrFail(e))return void(this.currentLevelIndex=-1);e.levelRetry=!0}r&&(1<(i=n.url.length)&&n.loadError=t.length){var i=e<0;if(this.hls.trigger(A.Events.ERROR,{type:p.ErrorTypes.OTHER_ERROR,details:p.ErrorDetails.LEVEL_SWITCH_ERROR,level:e,fatal:i,reason:"invalid level idx"}),i)return;e=Math.min(e,t.length-1)}this.clearTimer();var i=this.currentLevelIndex,r=t[i],t=t[e],i=(this.log("switching to level "+e+" from "+i),s({},t,{level:this.currentLevelIndex=e,maxBitrate:t.maxBitrate,uri:t.uri,urlId:t.urlId})),e=(delete i._urlId,this.hls.trigger(A.Events.LEVEL_SWITCHING,i),t.details);e&&!e.live||(i=this.switchParams(t.uri,null==r?void 0:r.details),this.loadPlaylist(i))}}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(e){this.manualLevelIndex=e,void 0===this._startLevel&&(this._startLevel=e),-1!==e&&(this.level=e)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(e){this._firstLevel=e}},{key:"startLevel",get:function(){var e;return void 0===this._startLevel?void 0!==(e=this.hls.config.startLevel)?e:this._firstLevel:this._startLevel},set:function(e){this._startLevel=e}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(e){this.level=e,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=e)}}]),c);function c(e){return(e=l.call(this,e,"[level-controller]")||this)._levels=[],e._firstLevel=-1,e._startLevel=void 0,e.currentLevelIndex=-1,e.manualLevelIndex=-1,e.onParsedComplete=void 0,e._registerListeners(),e}},"./src/controller/level-helper.ts":function(e,t,i){i.r(t),i.d(t,"addGroupId",function(){return r}),i.d(t,"assignTrackIdsByGroup",function(){return s}),i.d(t,"updatePTS",function(){return n}),i.d(t,"updateFragPTSDTS",function(){return g}),i.d(t,"mergeDetails",function(){return a}),i.d(t,"mapPartIntersection",function(){return m}),i.d(t,"mapFragmentIntersection",function(){return v}),i.d(t,"adjustSliding",function(){return y}),i.d(t,"addSliding",function(){return o}),i.d(t,"computeReloadInterval",function(){return l}),i.d(t,"getFragmentWithSN",function(){return c}),i.d(t,"getPartWith",function(){return u});var f=i("./src/polyfills/number.ts"),A=i("./src/utils/logger.ts");function r(e,t,i){switch(t){case"audio":e.audioGroupIds||(e.audioGroupIds=[]),e.audioGroupIds.push(i);break;case"text":e.textGroupIds||(e.textGroupIds=[]),e.textGroupIds.push(i)}}function s(e){var i={};e.forEach(function(e){var t=e.groupId||"";e.id=i[t]=i[t]||0,i[t]++})}function n(e,t,i){p(e[t],e[i])}function p(e,t){var i,r=t.startPTS;Object(f.isFiniteNumber)(r)?(i=0,(r=t.sn>e.sn?(i=r-e.start,e):(i=e.start-r,t)).duration!==i&&(r.duration=i)):t.sn>e.sn?e.cc===t.cc&&e.minEndPTS?t.start=e.start+(e.minEndPTS-e.start):t.start=e.start+e.duration:t.start=Math.max(e.start-t.duration,0)}function g(e,t,i,r,s,n){r-i<=0&&(A.logger.warn("Fragment should have a positive duration",t),r=i+t.duration,n=s+t.duration);var a=i,o=r,l=t.startPTS,c=t.endPTS,u=(Object(f.isFiniteNumber)(l)&&(u=Math.abs(l-i),Object(f.isFiniteNumber)(t.deltaPTS)?t.deltaPTS=Math.max(u,t.deltaPTS):t.deltaPTS=u,a=Math.max(i,l),i=Math.min(i,l),s=Math.min(s,t.startDTS),o=Math.min(r,c),r=Math.max(r,c),n=Math.max(n,t.endDTS)),t.duration=r-i,i-t.start);t.appendedPTS=r,t.start=t.startPTS=i,t.maxStartPTS=a,t.startDTS=s,t.endPTS=r,t.minEndPTS=o,t.endDTS=n;var d,l=t.sn;if(!e||le.endSN)return 0;var c=l-e.startSN,h=e.fragments;for(h[c]=t,d=c;0=e.length||o(t,e[i].start)}function o(e,t){if(t){for(var i=e.fragments,r=e.skippedSegments;r=this.getMaxBufferLength(t.maxBitrate))){if(this._streamEnded(i,s))return e={},this.altAudio&&(e.type="video"),this.hls.trigger(g.Events.BUFFER_EOS,e),void(this.state=p.State.ENDED);n=i.end,t=this.getNextFragment(n,s);!this.couldBacktrack||this.fragPrevious||!t||"initSegment"===t.sn||1<(e=t.sn-s.startSN)&&(t=s.fragments[e-1],this.fragmentTracker.removeFragment(t)),t&&this.fragmentTracker.getState(t)===a.FragmentState.OK&&this.nextLoadPosition>n&&(i=this.audioOnly&&!this.altAudio?m.ElementaryStreamTypes.AUDIO:m.ElementaryStreamTypes.VIDEO,this.afterBufferFlushed(r,i,d.PlaylistLevelType.MAIN),t=this.getNextFragment(this.nextLoadPosition,s)),t&&("identity"!==(null==(e=(t=!t.initSegment||t.initSegment.data||this.bitrateTest?t:t.initSegment).decryptdata)?void 0:e.keyFormat)||null!=(r=t.decryptdata)&&r.key?this.loadFragment(t,s,n):this.loadKey(t,s))}}}},i.loadFragment=function(e,t,i){var r=this.fragmentTracker.getState(e);if(this.fragCurrent=e,r===a.FragmentState.BACKTRACKED){var s=this.fragmentTracker.getBacktrackData(e);if(s)return this._handleFragmentLoadProgress(s),void this._handleFragmentLoadComplete(s);r=a.FragmentState.NOT_LOADED}r===a.FragmentState.NOT_LOADED||r===a.FragmentState.PARTIAL?"initSegment"===e.sn?this._loadInitSegment(e):this.bitrateTest?(e.bitrateTest=!0,this.log("Fragment "+e.sn+" of level "+e.level+" is being downloaded to test bitrate and will not be buffered"),this._loadBitrateTestFrag(e)):(this.startFragRequested=!0,v.prototype.loadFragment.call(this,e,t,i)):r===a.FragmentState.APPENDING?this.reduceMaxBufferLength(e.duration)&&this.fragmentTracker.removeFragment(e):0===(null==(s=this.media)?void 0:s.buffered.length)&&this.fragmentTracker.removeAllFragments()},i.getAppendedFrag=function(e){e=this.fragmentTracker.getAppendedFrag(e,d.PlaylistLevelType.MAIN);return e&&"fragment"in e?e.fragment:e},i.getBufferedFrag=function(e){return this.fragmentTracker.getBufferedFrag(e,d.PlaylistLevelType.MAIN)},i.followingBufferedFrag=function(e){return e?this.getBufferedFrag(e.end+.5):null},i.immediateLevelSwitch=function(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},i.nextLevelSwitch=function(){var e,t=this.levels,i=this.media;null!=i&&i.readyState&&((e=this.getAppendedFrag(i.currentTime))&&1=r[a].start&&n<=r[a].end){s=r[a];break}t=i.start+i.duration;s?s.end=t:r.push(s={start:n,end:t}),this.fragmentTracker.fragBuffered(i)}}},i.onBufferFlushing=function(e,t){var i,r,s,n=t.startOffset,a=t.endOffset;0===n&&a!==Number.POSITIVE_INFINITY&&(i=this.currentTrackId,(r=this.levels).length&&r[i]&&r[i].details&&((s=a-r[i].details.targetduration)<=0||(t.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach(function(e){for(var t=0;t=s.length||t!==r)&&n){if(this.mediaBuffer=this.mediaBufferTimeRanges,i.live||null!=(s=n.details)&&s.live){r=this.mainDetails;if(i.deltaUpdateFailed||!r)return;s=r.fragments[0];n.details?0===this.alignPlaylists(i,n.details)&&s&&Object(o.addSliding)(i,s.start):i.hasProgramDateTime&&r.hasProgramDateTime?Object(a.alignMediaPlaylistByPDT)(i,r):s&&Object(o.addSliding)(i,s.start)}n.details=i,this.levelLastLoaded=t,this.tick(),!i.live||this.fragCurrent||!this.media||this.state!==d.State.IDLE||Object(c.findFragmentByPTS)(null,i.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),n.details=void 0)}}},i._handleFragmentLoadComplete=function(e){var i,r=e.frag,e=e.payload,t=r.decryptdata,s=this.hls;!this.fragContextChanged(r)&&e&&0this.getMaxBufferLength()+n||(console.assert(e,"Subtitle track details are defined on idle subtitle stream controller tick"),n=(s=e.fragments).length,o=e.edge,a=this.fragPrevious,i=o.length||(this.clearTimer(),i=o[e],this.log("Switching to subtitle track "+e),this.trackId=e,i?(o=i.id,r=i.groupId,s=i.name,n=i.type,a=i.url,this.hls.trigger(l.Events.SUBTITLE_TRACK_SWITCH,{id:o,groupId:void 0===r?"":r,name:s,type:n,url:a}),o=this.switchParams(i.url,null==t?void 0:t.details),this.loadPlaylist(o)):this.hls.trigger(l.Events.SUBTITLE_TRACK_SWITCH,{id:e}))):this.queuedDefaultTrack=e},s.onTextTracksChanged=function(){if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),this.media&&this.hls.config.renderTextTracksNatively){for(var e=-1,t=d(this.media.textTracks),i=0;i>>8^255&p^99,d[t[p]=h]),m=d[g],v=d[m],y=257*d[p]^16843008*p;r[h]=y<<24|y>>>8,s[h]=y<<16|y>>>16,n[h]=y<<8|y>>>24,a[h]=y,o[p]=(y=16843009*v^65537*m^257*g^16843008*h)<<24|y>>>8,l[p]=y<<16|y>>>16,c[p]=y<<8|y>>>24,u[p]=y,h?(h=g^d[d[d[v^g]]],f^=d[d[f]]):h=f=1}},t.expandKey=function(e){for(var t=this.uint8ArrayToUint32Array_(e),i=!0,r=0;r>>6),u=(60&t[i+2])>>>2;if(!(l.length-1>>6,d.logger.log("manifest codec:"+r+", ADTS type:"+c+", samplingIndex:"+u),t=/firefox/i.test(a)?6<=u?(c=5,n=new Array(4),u-3):(c=2,n=new Array(2),u):-1!==a.indexOf("android")?(c=2,n=new Array(2),u):(c=5,n=new Array(4),r&&(-1!==r.indexOf("mp4a.40.29")||-1!==r.indexOf("mp4a.40.5"))||!r&&6<=u?u-3:((r&&-1!==r.indexOf("mp4a.40.2")&&(6<=u&&1==s||/vivaldi/i.test(a))||!r&&1==s)&&(c=2,n=new Array(2)),u)),n[0]=c<<3,n[0]|=(14&u)>>1,n[1]|=(1&u)<<7,n[1]|=s<<3,5===c&&(n[1]|=(14&t)>>1,n[2]=(1&t)<<7,n[2]|=8,n[3]=0),{config:n,samplerate:l[u],channelCount:s,codec:"mp4a.40."+c,manifestCodec:o};e.trigger(f.Events.ERROR,{type:h.ErrorTypes.MEDIA_ERROR,details:h.ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+u})}function r(e,t){return 255===e[t]&&240==(246&e[t+1])}function a(e,t){return 1&e[t+1]?7:9}function o(e,t){return(3&e[t+3])<<11|e[t+4]<<3|(224&e[t+5])>>>5}function s(e,t){return t+5=e.length)return!1;var r=o(e,t);if(r<=i)return!1;i=t+r;return i===e.length||l(e,i)}return!1}function A(e,t,i,r,s){e.samplerate||(t=n(t,i,r,s))&&(e.config=t.config,e.samplerate=t.samplerate,e.channelCount=t.channelCount,e.codec=t.codec,e.manifestCodec=t.manifestCodec,d.logger.log("parsed codec:"+e.codec+", rate:"+t.samplerate+", channels:"+t.channelCount))}function p(e){return 9216e4/e}function g(e,t,i,r,s){var n=a(e,t),e=o(e,t);if(0<(e-=n))return{headerLength:n,frameLength:e,stamp:i+r*s}}function m(e,t,i,r,s){var n,a,o,r=g(t,i,r,s,p(e.samplerate));if(r)return s=r.frameLength,a=r.headerLength,r=r.stamp,s=a+s,(o=Math.max(0,i+s-t.length))?(n=new Uint8Array(s-a)).set(t.subarray(i+a,t.length),0):n=t.subarray(i+a,i+s),t={unit:n,pts:r},o||e.samples.push(t),{sample:t,length:s,missing:o}}},"./src/demux/base-audio-demuxer.ts":function(e,t,i){i.r(t),i.d(t,"initPTSFn",function(){return p});var r=i("./src/polyfills/number.ts"),d=i("./src/demux/id3.ts"),h=i("./src/demux/dummy-demuxed-track.ts"),f=i("./src/utils/mp4-tools.ts"),A=i("./src/utils/typed-array.ts");(i=s.prototype).resetInitSegment=function(e,t,i){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}},i.resetTimeStamp=function(){},i.resetContiguity=function(){},i.canParse=function(e,t){return!1},i.appendFrame=function(e,t,i){},i.demux=function(e,t){this.cachedData&&(e=Object(f.appendUint8Array)(this.cachedData,e),this.cachedData=null);var i,r,s,n=d.getID3Data(e,0),a=n?n.length:0,o=this._audioTrack,l=this._id3Track,c=n?d.getTimeStamp(n):void 0,u=e.length;for(0!==this.frameIndex&&null!==this.initPTS||(this.initPTS=p(c,t)),n&&0e||(e=(e-=this.bitsAvailable)-((t=e>>3)>>3),this.bytesAvailable-=t,this.loadWord()),this.word<<=e,this.bitsAvailable-=e},i.readBits=function(e){var t=Math.min(this.bitsAvailable,e),i=this.word>>>32-t;return 32>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()},i.skipUEG=function(){this.skipBits(1+this.skipLZ())},i.skipEG=function(){this.skipBits(1+this.skipLZ())},i.readUEG=function(){var e=this.skipLZ();return this.readBits(e+1)-1},i.readEG=function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)},i.readBoolean=function(){return 1===this.readBits(1)},i.readUByte=function(){return this.readBits(8)},i.readUShort=function(){return this.readBits(16)},i.readUInt=function(){return this.readBits(32)},i.skipScalingList=function(e){for(var t=8,i=8,r=0;r>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:l+=String.fromCharCode(s);break;case 12:case 13:n=e[c++],l+=String.fromCharCode((31&s)<<6|63&n);break;case 14:n=e[c++],a=e[c++],l+=String.fromCharCode((15&s)<<12|(63&n)<<6|(63&a)<<0)}}return l},y={decodeTextFrame:p}},"./src/demux/mp3demuxer.ts":function(e,t,i){i.r(t);var r=i("./src/demux/base-audio-demuxer.ts"),s=i("./src/demux/id3.ts"),n=i("./src/utils/logger.ts"),a=i("./src/demux/mpegaudio.ts");function o(e,t){return(o=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}l=r.default,i=l,(r=c).prototype=Object.create(i.prototype),o(r.prototype.constructor=r,i),(r=c.prototype).resetInitSegment=function(e,t,i){l.prototype.resetInitSegment.call(this,e,t,i),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,isAAC:!1,samples:[],manifestCodec:e,duration:i,inputTimeScale:9e4,dropped:0}},c.probe=function(e){if(!e)return!1;for(var t=(s.getID3Data(e,0)||[]).length,i=e.length;tt.length)){var n=a(t,i);if(n&&i+n.frameLength<=t.length)return r=r+s*(9e4*n.samplesPerFrame/n.sampleRate),s={unit:t.subarray(i,i+n.frameLength),pts:r,dts:r},e.config=[],e.channelCount=n.channelCount,e.samplerate=n.sampleRate,e.samples.push(s),{sample:s,length:n.frameLength,missing:0}}}function a(e,t){var i,r,s,n,a,o=e[t+1]>>3&3,l=e[t+1]>>1&3,c=e[t+2]>>4&15,u=e[t+2]>>2&3;if(1!=o&&0!=c&&15!=c&&3!=u)return a=e[t+2]>>1&1,i=e[t+3]>>6,c=1e3*h[14*(3==o?3-l:3==l?3:4)+c-1],u=f[3*(3==o?0:2==o?1:2)+u],r=3==i?1:2,n=8*(o=A[o][l])*(s=p[l]),o=Math.floor(o*c/u+a)*s,null===d&&(a=(navigator.userAgent||"").match(/Chrome\/(\d+)/i),d=a?parseInt(a[1]):0),d&&d<=87&&2==l&&224e3<=c&&0==i&&(e[t+3]=128|e[t+3]),{sampleRate:u,channelCount:r,frameLength:o,samplesPerFrame:n}}function s(e,t){return 255===e[t]&&224==(224&e[t+1])&&0!=(6&e[t+1])}function n(e,t){return t+1=e.length)return void i();if(!(e[t].unit.length<32)){var r=this.decrypter.isSync();if(this.decryptAacSample(e,t,i,r),!r)return}}},i.getAvcEncryptedData=function(e){for(var t=16*Math.floor((e.length-48)/160)+16,i=new Int8Array(t),r=0,s=32;s=e.length)return void r();for(var s=e[t].units;!(i>=s.length);i++){var n=s[i];if(!(n.data.length<=48||1!==n.type&&5!==n.type)){var a=this.decrypter.isSync();if(this.decryptAvcSample(e,t,i,r,n,a),!a)return}}}},t.default=s},"./src/demux/transmuxer-interface.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r});var l=i("./node_modules/webworkify-webpack/index.js"),c=i("./src/events.ts"),S=i("./src/demux/transmuxer.ts"),T=i("./src/utils/logger.ts"),u=i("./src/errors.ts"),t=i("./src/utils/mediasource-helper.ts"),d=i("./node_modules/eventemitter3/index.js"),h=Object(t.getMediaSource)()||{isTypeSupported:function(){return!1}},r=((i=s.prototype).destroy=function(){var e=this.worker,e=(e?(e.removeEventListener("message",this.onwmsg),e.terminate(),this.worker=null):(e=this.transmuxer)&&(e.destroy(),this.transmuxer=null),this.observer);e&&e.removeAllListeners(),this.observer=null},i.push=function(e,t,i,r,s,n,a,o,l,c){var u=this,d=(l.transmuxing.start=self.performance.now(),this.transmuxer),h=this.worker,f=(n||s).start,A=s.decryptdata,p=this.frag,g=!(p&&s.cc===p.cc),m=!(p&&l.level===p.level),v=p?l.sn-p.sn:-1,y=this.part?l.part-this.part.index:1,b=!m&&(1==v||0==v&&1==y),E=self.performance.now(),E=((m||v||0===s.stats.parsing.start)&&(s.stats.parsing.start=E),!n||!y&&b||(n.stats.parsing.start=E),!(p&&(null==(v=s.initSegment)?void 0:v.url)===(null==(y=p.initSegment)?void 0:y.url))),v=new S.TransmuxState(g,b,o,m,f,E);b&&!g&&!E||(T.logger.log("[transmuxer-interface, "+s.type+"]: Starting new transmux session for sn: "+l.sn+" p: "+l.part+" level: "+l.level+" id: "+l.id+"\n discontinuity: "+g+"\n trackSwitch: "+m+"\n contiguous: "+b+"\n accurateTimeOffset: "+o+"\n timeOffset: "+f+"\n initSegmentChange: "+E),p=new S.TransmuxConfig(i,r,t,a,c),this.configureTransmuxer(p)),this.frag=s,this.part=n,h?h.postMessage({cmd:"demux",data:e,decryptdata:A,chunkMeta:l,state:v},e instanceof ArrayBuffer?[e]:[]):d&&(y=d.push(e,A,l,v),Object(S.isPromise)(y)?y.then(function(e){u.handleTransmuxComplete(e)}):this.handleTransmuxComplete(y))},i.flush=function(t){var i=this,e=(t.transmuxing.start=self.performance.now(),this.transmuxer),r=this.worker;r?r.postMessage({cmd:"flush",chunkMeta:t}):e&&(r=e.flush(t),Object(S.isPromise)(r)?r.then(function(e){i.handleFlushResult(e,t)}):this.handleFlushResult(r,t))},i.handleFlushResult=function(e,t){var i=this;e.forEach(function(e){i.handleTransmuxComplete(e)}),this.onFlush(t)},i.onWorkerMessage=function(e){var t=e.data,i=this.hls;switch(t.event){case"init":self.URL.revokeObjectURL(this.worker.objectURL);break;case"transmuxComplete":this.handleTransmuxComplete(t.data);break;case"flush":this.onFlush(t.data);break;default:t.data=t.data||{},t.data.frag=this.frag,t.data.id=this.id,i.trigger(t.event,t.data)}},i.configureTransmuxer=function(e){var t=this.worker,i=this.transmuxer;t?t.postMessage({cmd:"configure",config:e}):i&&i.configure(e)},i.handleTransmuxComplete=function(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)},s);function s(i,e,t,r){function s(e,t){(t=t||{}).frag=a.frag,t.id=a.id,i.trigger(e,t)}var n,a=this,t=(this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.worker=void 0,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.hls=i,this.id=e,this.onTransmuxComplete=t,this.onFlush=r,i.config),r=(this.observer=new d.EventEmitter,this.observer.on(c.Events.FRAG_DECRYPTED,s),this.observer.on(c.Events.ERROR,s),{mp4:h.isTypeSupported("video/mp4"),mpeg:h.isTypeSupported("audio/mpeg"),mp3:h.isTypeSupported('audio/mp4; codecs="mp3"')}),o=navigator.vendor;if(t.enableWorker&&"undefined"!=typeof Worker){T.logger.log("demuxing in webworker");try{n=this.worker=l("./src/demux/transmuxer-worker.ts"),this.onwmsg=this.onWorkerMessage.bind(this),n.addEventListener("message",this.onwmsg),n.onerror=function(e){i.trigger(c.Events.ERROR,{type:u.ErrorTypes.OTHER_ERROR,details:u.ErrorDetails.INTERNAL_EXCEPTION,fatal:!0,event:"demuxerWorker",error:new Error(e.message+" ("+e.filename+":"+e.lineno+")")})},n.postMessage({cmd:"init",typeSupported:r,vendor:o,id:e,config:JSON.stringify(t)})}catch(i){T.logger.warn("Error in worker:",i),T.logger.error("Error while initializing DemuxerWorker, fallback to inline"),n&&self.URL.revokeObjectURL(n.objectURL),this.transmuxer=new S.default(this.observer,r,t,o,e),this.worker=null}}else this.transmuxer=new S.default(this.observer,r,t,o,e)}},"./src/demux/transmuxer-worker.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return s});var o=i("./src/demux/transmuxer.ts"),r=i("./src/events.ts"),l=i("./src/utils/logger.ts"),c=i("./node_modules/eventemitter3/index.js");function s(s){function n(e,t){s.postMessage({event:e,data:t})}var a=new c.EventEmitter;a.on(r.Events.FRAG_DECRYPTED,n),a.on(r.Events.ERROR,n),s.addEventListener("message",function(e){var t=e.data;switch(t.cmd){case"init":var i=JSON.parse(t.config);s.transmuxer=new o.default(a,t.typeSupported,i,t.vendor,t.id),Object(l.enableLogs)(i.debug),n("init",null);break;case"configure":s.transmuxer.configure(t.config);break;case"demux":i=s.transmuxer.push(t.data,t.decryptdata,t.chunkMeta,t.state);Object(o.isPromise)(i)?i.then(function(e){u(s,e)}):u(s,i);break;case"flush":var r=t.chunkMeta,i=s.transmuxer.flush(r);Object(o.isPromise)(i)?i.then(function(e){d(s,e,r)}):d(s,i,r)}})}function u(e,t){var i,r,s;((i=t.remuxResult).audio||i.video||i.text||i.id3||i.initSegment)&&(i=[],r=(s=t.remuxResult).audio,s=s.video,r&&n(i,r),s&&n(i,s),e.postMessage({event:"transmuxComplete",data:t},i))}function n(e,t){t.data1&&e.push(t.data1.buffer),t.data2&&e.push(t.data2.buffer)}function d(t,e,i){e.forEach(function(e){u(t,e)}),t.postMessage({event:"flush",data:i})}},"./src/demux/transmuxer.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return d}),i.d(t,"isPromise",function(){return f}),i.d(t,"TransmuxConfig",function(){return A}),i.d(t,"TransmuxState",function(){return p});var v,l=i("./src/events.ts"),c=i("./src/errors.ts"),r=i("./src/crypt/decrypter.ts"),t=i("./src/demux/aacdemuxer.ts"),m=i("./src/demux/mp4demuxer.ts"),s=i("./src/demux/tsdemuxer.ts"),n=i("./src/demux/mp3demuxer.ts"),a=i("./src/remux/mp4-remuxer.ts"),y=i("./src/remux/passthrough-remuxer.ts"),o=i("./src/demux/chunk-cache.ts"),b=i("./src/utils/mp4-tools.ts"),E=i("./src/utils/logger.ts");try{v=self.performance.now.bind(self.performance)}catch(e){E.logger.debug("Unable to use Performance API on this environment"),v=self.Date.now}var S=[{demux:s.default,remux:a.default},{demux:m.default,remux:y.default},{demux:t.default,remux:a.default},{demux:n.default,remux:a.default}],u=1024,d=(S.forEach(function(e){e=e.demux;u=Math.max(u,e.minProbeByteLength)}),(i=h.prototype).configure=function(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()},i.push=function(e,t,i,r){var s=this,n=i.transmuxing,e=(n.executeStart=v(),new Uint8Array(e)),a=this.cache,o=this.config,l=this.currentTransmuxState,c=this.transmuxConfig,t=(r&&(this.currentTransmuxState=r),u=null,u=0>4){if((w=E+5+e[E+4])===E+188)continue}else w=E+4;switch(T){case l:S&&(c&&(s=P(c))&&this.parseAVCPES(s,!1),c={data:[],size:0}),c&&(c.data.push(e.subarray(w,E+188)),c.size+=E+188-w);break;case u:S&&(h&&(s=P(h))&&(a.isAAC?this.parseAACPES(s):this.parseMPEGPES(s)),h={data:[],size:0}),h&&(h.data.push(e.subarray(w,E+188)),h.size+=E+188-w);break;case d:S&&(f&&(s=P(f))&&this.parseID3PES(s),f={data:[],size:0}),f&&(f.data.push(e.subarray(w,E+188)),f.size+=E+188-w);break;case 0:S&&(w+=e[w]+1),g=this._pmtId=(31&(k=e)[(y=w)+10])<<8|k[y+11];break;case g:S&&(w+=e[w]+1);var k=function(e,t,i,r){var s={audio:-1,avc:-1,id3:-1,isAAC:!0},n=t+3+((15&e[t+1])<<8|e[t+2])-4;for(t+=12+((15&e[t+10])<<8|e[t+11]);te.size-6)return null;var l=t[7],c=(192&l&&(r=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,64&l?54e5=e[i-1].pts)e.push(t);else for(var r=i-1;0<=r;r--)if(t.ptst)return r;return 0}},{key:"maxAutoLevel",get:function(){var e=this.levels,t=this.autoLevelCapping;return-1===t&&e&&e.length?e.length-1:t}},{key:"nextAutoLevel",get:function(){return Math.min(Math.max(this.abrController.nextAutoLevel,this.minAutoLevel),this.maxAutoLevel)},set:function(e){this.abrController.nextAutoLevel=Math.max(this.minAutoLevel,e)}},{key:"audioTracks",get:function(){var e=this.audioTrackController;return e?e.audioTracks:[]}},{key:"audioTrack",get:function(){var e=this.audioTrackController;return e?e.audioTrack:-1},set:function(e){var t=this.audioTrackController;t&&(t.audioTrack=e)}},{key:"subtitleTracks",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var e=this.subtitleTrackController;return e?e.subtitleTrack:-1},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleTrack=e)}},{key:"media",get:function(){return this._media}},{key:"subtitleDisplay",get:function(){var e=this.subtitleTrackController;return!!e&&e.subtitleDisplay},set:function(e){var t=this.subtitleTrackController;t&&(t.subtitleDisplay=e)}},{key:"lowLatencyMode",get:function(){return this.config.lowLatencyMode},set:function(e){this.config.lowLatencyMode=e}},{key:"liveSyncPosition",get:function(){return this.latencyController.liveSyncPosition}},{key:"latency",get:function(){return this.latencyController.latency}},{key:"maxLatency",get:function(){return this.latencyController.maxLatency}},{key:"targetLatency",get:function(){return this.latencyController.targetLatency}},{key:"drift",get:function(){return this.latencyController.drift}},{key:"forceStartLoad",get:function(){return this.streamController.forceStartLoad}}]),o(i,t);var l=E;function E(e){void 0===e&&(e={}),this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new b.EventEmitter,this._autoLevelCapping=void 0,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null;var t=this.config=Object(y.mergeConfig)(E.DefaultConfig,e),e=(this.userConfig=e,Object(v.enableLogs)(t.debug),this._autoLevelCapping=-1,t.progressive&&Object(y.enableStreamingMode)(t),t.abrController),i=t.bufferController,r=t.capLevelController,s=t.fpsController,e=this.abrController=new e(this),i=this.bufferController=new i(this),r=this.capLevelController=new r(this),s=new s(this),n=new d.default(this),a=new h.default(this),o=new f.default(this),l=this.levelController=new p.default(this),c=new g.FragmentTracker(this),u=this.streamController=new m.default(this,c),l=(r.setStreamController(u),s.setStreamController(u),[l,u]),u=(this.networkControllers=l,[n,a,e,i,r,s,o,c]);this.audioTrackController=this.createController(t.audioTrackController,null,l),this.createController(t.audioStreamController,c,l),this.subtitleTrackController=this.createController(t.subtitleTrackController,null,l),this.createController(t.subtitleStreamController,c,l),this.createController(t.timelineController,null,u),this.emeController=this.createController(t.emeController,null,u),this.cmcdController=this.createController(t.cmcdController,null,u),this.latencyController=this.createController(A.default,null,u),this.coreComponents=u}l.defaultConfig=void 0},"./src/is-supported.ts":function(e,t,i){i.r(t),i.d(t,"isSupported",function(){return n}),i.d(t,"changeTypeSupported",function(){return a});var r=i("./src/utils/mediasource-helper.ts");function s(){return self.SourceBuffer||self.WebKitSourceBuffer}function n(){var e=Object(r.getMediaSource)();if(!e)return!1;var t=s(),e=e&&"function"==typeof e.isTypeSupported&&e.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"'),t=!t||t.prototype&&"function"==typeof t.prototype.appendBuffer&&"function"==typeof t.prototype.remove;return!!e&&!!t}function a(){var e=s();return"function"==typeof(null==e||null==(e=e.prototype)?void 0:e.changeType)}},"./src/loader/fragment-loader.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return l}),i.d(t,"LoadError",function(){return p});var r=i("./src/polyfills/number.ts"),h=i("./src/errors.ts");function s(e){var i="function"==typeof Map?new Map:void 0;return(s=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==i){if(i.has(e))return i.get(e);i.set(e,t)}function t(){return n(e,arguments,o(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),a(t,e)})(e)}function n(e,t,i){return(n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return;if(Reflect.construct.sham)return;if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),1}catch(e){return}}()?Reflect.construct:function(e,t,i){var r=[null],t=(r.push.apply(r,t),new(Function.bind.apply(e,r)));return i&&a(t,i.prototype),t}).apply(null,arguments)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}var f=Math.pow(2,17),l=((t=c.prototype).destroy=function(){this.loader&&(this.loader.destroy(),this.loader=null)},t.abort=function(){this.loader&&this.loader.abort()},t.load=function(a,o){var l=this,e=a.url;if(!e)return Promise.reject(new p({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:a,networkDetails:null},"Fragment does not have a "+(e?"part list":"url")));this.abort();var i=this.config,c=i.fLoader,u=i.loader;return new Promise(function(s,r){l.loader&&l.loader.destroy();var n=l.loader=a.loader=new(c||u)(i),e=A(a),t={timeout:i.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:i.fragLoadingMaxRetryTimeout,highWaterMark:f};a.stats=n.stats,n.load(e,t,{onSuccess:function(e,t,i,r){l.resetLoader(a,n),s({frag:a,part:null,payload:e.data,networkDetails:r})},onError:function(e,t,i){l.resetLoader(a,n),r(new p({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:a,response:e,networkDetails:i}))},onAbort:function(e,t,i){l.resetLoader(a,n),r(new p({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:a,networkDetails:i}))},onTimeout:function(e,t,i){l.resetLoader(a,n),r(new p({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:a,networkDetails:i}))},onProgress:function(e,t,i,r){o&&o({frag:a,part:null,payload:i,networkDetails:r})}})})},t.loadPart=function(a,o,l){var c=this,i=(this.abort(),this.config),u=i.fLoader,d=i.loader;return new Promise(function(s,r){c.loader&&c.loader.destroy();var n=c.loader=a.loader=new(u||d)(i),e=A(a,o),t={timeout:i.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:i.fragLoadingMaxRetryTimeout,highWaterMark:f};o.stats=n.stats,n.load(e,t,{onSuccess:function(e,t,i,r){c.resetLoader(a,n),c.updateStatsFromPart(a,o);e={frag:a,part:o,payload:e.data,networkDetails:r};l(e),s(e)},onError:function(e,t,i){c.resetLoader(a,n),r(new p({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:a,part:o,response:e,networkDetails:i}))},onAbort:function(e,t,i){a.stats.aborted=o.stats.aborted,c.resetLoader(a,n),r(new p({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:a,part:o,networkDetails:i}))},onTimeout:function(e,t,i){c.resetLoader(a,n),r(new p({type:h.ErrorTypes.NETWORK_ERROR,details:h.ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:a,part:o,networkDetails:i}))}})})},t.updateStatsFromPart=function(e,t){var i=e.stats,r=t.stats,s=r.total,e=(i.loaded+=r.loaded,s?(s=((e=Math.round(e.duration/t.duration))-(t=Math.min(Math.round(i.loaded/s),e)))*Math.round(i.loaded/t),i.total=i.loaded+s):i.total=Math.max(i.loaded,i.total),i.loading),t=r.loading;e.start?e.first+=t.first-t.start:(e.start=t.start,e.first=t.first),e.end=t.end},t.resetLoader=function(e,t){e.loader=null,this.loader===t&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),t.destroy()},c);function c(e){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=e}function A(e,t){var i=(t=void 0===t?null:t)||e,e={frag:e,part:t,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},t=i.byteRangeStartOffset,i=i.byteRangeEndOffset;return Object(r.isFiniteNumber)(t)&&Object(r.isFiniteNumber)(i)&&(e.rangeStart=t,e.rangeEnd=i),e}u=s(Error),i=u,(t=d).prototype=Object.create(i.prototype),a(t.prototype.constructor=t,i);var u,p=d;function d(e){for(var t,i=arguments.length,r=new Array(1>8*(15-i)&255;return t},i.setDecryptDataFromLevelKey=function(e,t){var i=e;return"AES-128"===(null==e?void 0:e.method)&&e.uri&&!e.iv&&((i=o.LevelKey.fromURI(e.uri)).method=e.method,i.iv=this.createInitializationVector(t),i.keyFormat="identity"),i},i.setElementaryStreamInfo=function(e,t,i,r,s,n){void 0===n&&(n=!1);var a=this.elementaryStreams,o=a[e];o?(o.startPTS=Math.min(o.startPTS,t),o.endPTS=Math.max(o.endPTS,i),o.startDTS=Math.min(o.startDTS,r),o.endDTS=Math.max(o.endDTS,s)):a[e]={startPTS:t,endPTS:i,startDTS:r,endDTS:s,partial:n}},i.clearElementaryStreamInfo=function(){var e=this.elementaryStreams;e[r.AUDIO]=null,e[r.VIDEO]=null,e[r.AUDIOVIDEO]=null},h(y,[{key:"decryptdata",get:function(){return this.levelkey||this._decryptdata?(!this._decryptdata&&this.levelkey&&("number"!=typeof(e=this.sn)&&(this.levelkey&&"AES-128"===this.levelkey.method&&!this.levelkey.iv&&a.logger.warn('missing IV for initialization segment with method="'+this.levelkey.method+'" - compliance issue'),e=0),this._decryptdata=this.setDecryptDataFromLevelKey(this.levelkey,e)),this._decryptdata):null;var e}},{key:"end",get:function(){return this.start+this.duration}},{key:"endProgramDateTime",get:function(){if(null===this.programDateTime)return null;if(!Object(s.isFiniteNumber)(this.programDateTime))return null;var e=Object(s.isFiniteNumber)(this.duration)?this.duration:0;return this.programDateTime+1e3*e}},{key:"encrypted",get:function(){var e;return!(null==(e=this.decryptdata)||!e.keyFormat||!this.decryptdata.uri)}}]),y),m=(c(v,f=p),h(v,[{key:"start",get:function(){return this.fragment.start+this.fragOffset}},{key:"end",get:function(){return this.start+this.duration}},{key:"loaded",get:function(){var e=this.elementaryStreams;return!!(e.audio||e.video||e.audiovideo)}}]),v);function v(e,t,i,r,s){(i=f.call(this,i)||this).fragOffset=0,i.duration=0,i.gap=!1,i.independent=!1,i.relurl=void 0,i.fragment=void 0,i.index=void 0,i.stats=new l.LoadStats,i.duration=e.decimalFloatingPoint("DURATION"),i.gap=e.bool("GAP"),i.independent=e.bool("INDEPENDENT"),i.relurl=e.enumeratedString("URI"),i.fragment=t,i.index=r;t=e.enumeratedString("BYTERANGE");return t&&i.setByteRange(t,s),s&&(i.fragOffset=s.fragOffset+s.duration),i}function y(e,t){return(t=A.call(this,t)||this)._decryptdata=null,t.rawProgramDateTime=null,t.programDateTime=null,t.tagList=[],t.duration=0,t.sn=0,t.levelkey=void 0,t.type=void 0,t.loader=null,t.level=-1,t.cc=0,t.startPTS=void 0,t.endPTS=void 0,t.appendedPTS=void 0,t.startDTS=void 0,t.endDTS=void 0,t.start=0,t.deltaPTS=void 0,t.maxStartPTS=void 0,t.minEndPTS=void 0,t.stats=new l.LoadStats,t.urlId=0,t.data=void 0,t.bitrateTest=!1,t.title=null,t.initSegment=null,t.type=e,t}function b(e){var t;this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams=((t={})[r.AUDIO]=null,t[r.VIDEO]=null,t[r.AUDIOVIDEO]=null,t),this.baseurl=e}},"./src/loader/key-loader.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return s});var a=i("./src/events.ts"),r=i("./src/errors.ts"),o=i("./src/utils/logger.ts"),s=((t=n.prototype)._registerListeners=function(){this.hls.on(a.Events.KEY_LOADING,this.onKeyLoading,this)},t._unregisterListeners=function(){this.hls.off(a.Events.KEY_LOADING,this.onKeyLoading)},t.destroy=function(){for(var e in this._unregisterListeners(),this.loaders){e=this.loaders[e];e&&e.destroy()}this.loaders={}},t.onKeyLoading=function(e,t){var i,r,t=t.frag,s=t.type,n=this.loaders[s];t.decryptdata?(i=t.decryptdata.uri)!==this.decrypturl||null===this.decryptkey?(r=this.hls.config,n&&(o.logger.warn("abort previous key loader for type:"+s),n.abort()),i?(n=r.loader,s=t.loader=this.loaders[s]=new n(r),this.decrypturl=i,this.decryptkey=null,n={url:i,frag:t,responseType:"arraybuffer"},i={timeout:r.fragLoadingTimeOut,maxRetry:0,retryDelay:r.fragLoadingRetryDelay,maxRetryDelay:r.fragLoadingMaxRetryTimeout,highWaterMark:0},r={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},s.load(n,i,r)):o.logger.warn("key uri is falsy")):this.decryptkey&&(t.decryptdata.key=this.decryptkey,this.hls.trigger(a.Events.KEY_LOADED,{frag:t})):o.logger.warn("Missing decryption data on fragment in onKeyLoading")},t.loadsuccess=function(e,t,i){i=i.frag;i.decryptdata?(this.decryptkey=i.decryptdata.key=new Uint8Array(e.data),i.loader=null,delete this.loaders[i.type],this.hls.trigger(a.Events.KEY_LOADED,{frag:i})):o.logger.error("after key load, decryptdata unset")},t.loaderror=function(e,t){var t=t.frag,i=t.loader;i&&i.abort(),delete this.loaders[t.type],this.hls.trigger(a.Events.ERROR,{type:r.ErrorTypes.NETWORK_ERROR,details:r.ErrorDetails.KEY_LOAD_ERROR,fatal:!1,frag:t,response:e})},t.loadtimeout=function(e,t){var t=t.frag,i=t.loader;i&&i.abort(),delete this.loaders[t.type],this.hls.trigger(a.Events.ERROR,{type:r.ErrorTypes.NETWORK_ERROR,details:r.ErrorDetails.KEY_LOAD_TIMEOUT,fatal:!1,frag:t})},n);function n(e){this.hls=void 0,this.loaders={},this.decryptkey=null,this.decrypturl=null,this.hls=e,this._registerListeners()}},"./src/loader/level-details.ts":function(e,t,i){i.r(t),i.d(t,"LevelDetails",function(){return n});var r=i("./src/polyfills/number.ts");function s(e,t){for(var i=0;ie.endSN||0>24&255,o[1]=t>>16&255,o[2]=t>>8&255,o[3]=255&t,o.set(e,4),n=0,t=8;n>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,85,196,0,0]))},d.mdia=function(e){return d.box(d.types.mdia,d.mdhd(e.timescale,e.duration),d.hdlr(e.type),d.minf(e))},d.mfhd=function(e){return d.box(d.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))},d.minf=function(e){return"audio"===e.type?d.box(d.types.minf,d.box(d.types.smhd,d.SMHD),d.DINF,d.stbl(e)):d.box(d.types.minf,d.box(d.types.vmhd,d.VMHD),d.DINF,d.stbl(e))},d.moof=function(e,t,i){return d.box(d.types.moof,d.mfhd(e),d.traf(i,t))},d.moov=function(e){for(var t=e.length,i=[];t--;)i[t]=d.trak(e[t]);return d.box.apply(null,[d.types.moov,d.mvhd(e[0].timescale,e[0].duration)].concat(i).concat(d.mvex(e)))},d.mvex=function(e){for(var t=e.length,i=[];t--;)i[t]=d.trex(e[t]);return d.box.apply(null,[d.types.mvex].concat(i))},d.mvhd=function(e,t){t*=e;var i=Math.floor(t/(1+n)),t=Math.floor(t%(1+n)),e=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,i>>24,i>>16&255,i>>8&255,255&i,t>>24,t>>16&255,t>>8&255,255&t,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return d.box(d.types.mvhd,e)},d.sdtp=function(e){for(var t,i=e.samples||[],r=new Uint8Array(4+i.length),s=0;s>>8&255),r.push(255&i),r=r.concat(Array.prototype.slice.call(t));for(n=0;n>>8&255),s.push(255&i),s=s.concat(Array.prototype.slice.call(t));var a=d.box(d.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|e.sps.length].concat(r).concat([e.pps.length]).concat(s))),o=e.width,l=e.height,c=e.pixelRatio[0],u=e.pixelRatio[1];return d.box(d.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,o>>8&255,255&o,l>>8&255,255&l,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),a,d.box(d.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),d.box(d.types.pasp,new Uint8Array([c>>24,c>>16&255,c>>8&255,255&c,u>>24,u>>16&255,u>>8&255,255&u])))},d.esds=function(e){var t=e.config.length;return new Uint8Array([0,0,0,0,3,23+t,0,1,0,4,15+t,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([t]).concat(e.config).concat([6,1,2]))},d.mp4a=function(e){var t=e.samplerate;return d.box(d.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0]),d.box(d.types.esds,d.esds(e)))},d.mp3=function(e){var t=e.samplerate;return d.box(d.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,t>>8&255,255&t,0,0]))},d.stsd=function(e){return"audio"===e.type?e.isAAC||"mp3"!==e.codec?d.box(d.types.stsd,d.STSD,d.mp4a(e)):d.box(d.types.stsd,d.STSD,d.mp3(e)):d.box(d.types.stsd,d.STSD,d.avc1(e))},d.tkhd=function(e){var t=e.id,i=e.duration*e.timescale,r=e.width,e=e.height,s=Math.floor(i/(1+n)),i=Math.floor(i%(1+n));return d.box(d.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,e>>8&255,255&e,0,0]))},d.traf=function(e,t){var i=d.sdtp(e),r=e.id,s=Math.floor(t/(1+n)),t=Math.floor(t%(1+n));return d.box(d.types.traf,d.box(d.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),d.box(d.types.tfdt,new Uint8Array([1,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,t>>24,t>>16&255,t>>8&255,255&t])),d.trun(e,i.length+16+20+8+16+8+8),i)},d.trak=function(e){return e.duration=e.duration||4294967295,d.box(d.types.trak,d.tkhd(e),d.mdia(e))},d.trex=function(e){e=e.id;return d.box(d.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},d.trun=function(e,t){var i,r,s,n,a,o=e.samples||[],l=o.length,e=12+16*l,c=new Uint8Array(e);for(c.set([0,0,15,1,l>>>24&255,l>>>16&255,l>>>8&255,255&l,(t+=8+e)>>>24&255,t>>>16&255,t>>>8&255,255&t],0),i=0;i>>24&255,r>>>16&255,r>>>8&255,255&r,s>>>24&255,s>>>16&255,s>>>8&255,255&s,n.isLeading<<2|n.dependsOn,n.isDependedOn<<6|n.hasRedundancy<<4|n.paddingValue<<1|n.isNonSync,61440&n.degradPrio,15&n.degradPrio,a>>>24&255,a>>>16&255,a>>>8&255,255&a],12+16*i);return d.box(d.types.trun,c)},d.initSegment=function(e){d.types||d.init();var e=d.moov(e),t=new Uint8Array(d.FTYP.byteLength+e.byteLength);return t.set(d.FTYP),t.set(e,d.FTYP.byteLength),t},d);function d(){}i.types=void 0,i.HDLR_TYPES=void 0,i.STTS=void 0,i.STSC=void 0,i.STCO=void 0,i.STSZ=void 0,i.VMHD=void 0,i.SMHD=void 0,i.STSD=void 0,i.FTYP=void 0,i.DINF=void 0,t.default=i},"./src/remux/mp4-remuxer.ts":function(e,t,i){i.r(t),i.d(t,"default",function(){return r}),i.d(t,"normalizePts",function(){return Z});var h=i("./src/polyfills/number.ts"),U=i("./src/remux/aac-helper.ts"),W=i("./src/remux/mp4-generator.ts"),G=i("./src/events.ts"),z=i("./src/errors.ts"),q=i("./src/utils/logger.ts"),S=i("./src/types/loader.ts"),Q=i("./src/utils/timescale-conversion.ts");function J(){return(J=Object.assign||function(e){for(var t=1;tm.pts&&(A=Math.max(Math.min(A,m.pts-m.dts),-18e3)),m.dtsNumber.MAX_SAFE_INTEGER?1/0:e},i.hexadecimalInteger=function(e){if(this[e]){for(var t=(1&(t=(this[e]||"0x").slice(2)).length?"0":"")+t,i=new Uint8Array(t.length/2),r=0;rNumber.MAX_SAFE_INTEGER?1/0:e},i.decimalFloatingPoint=function(e){return parseFloat(this[e])},i.optionalFloat=function(e,t){e=this[e];return e?parseFloat(e):t},i.enumeratedString=function(e){return this[e]},i.bool=function(e){return"YES"===this[e]},i.decimalResolution=function(e){e=r.exec(this[e]);if(null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}},a.parseAttrList=function(e){var t,i={};for(s.lastIndex=0;null!==(t=s.exec(e));){var r=t[2];0===r.indexOf('"')&&r.lastIndexOf('"')===r.length-1&&(r=r.slice(1,-1)),i[t[1]]=r}return i},a);function a(e){for(var t in e="string"==typeof e?a.parseAttrList(e):e)e.hasOwnProperty(t)&&(this[t]=e[t])}},"./src/utils/binary-search.ts":function(e,t,i){i.r(t),t.default={search:function(e,t){for(var i,r,s=0,n=e.length-1;s<=n;){var a=t(r=e[i=(s+n)/2|0]);if(0=i.start(r)&&t<=i.end(r))return!0}catch(e){}return!1},a.bufferInfo=function(e,t,i){try{if(e){for(var r=a.getBuffered(e),s=[],n=0;nn&&(r[a-1].end=e[s].end):r.push(e[s])):r.push(e[s])}else r=e;for(var o,l=0,c=t,u=t,d=0;d=e&&r.logger.log(this.time+" ["+e+"] "+t)},C),g=((i=R.prototype).reset=function(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1},i.setStyles=function(e){for(var t=["foreground","underline","italics","background","flash"],i=0;ia&&(this.logger.log(c.DEBUG,"Too large cursor position "+this.pos),this.pos=a)},i.moveCursor=function(e){var t=this.pos+e;if(1=a?this.logger.log(c.ERROR,"Cannot insert "+e.toString(16)+" ("+t+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))},i.clearFromPos=function(e){for(var t=e;t ("+l([a,o])+")"),!(i=(i=(i=(i=this.parseCmd(a,o))?i:this.parseMidrow(a,o))||this.parsePAC(a,o))||this.parseBackgroundAttributes(a,o))&&(r=this.parseChars(a,o))&&((n=this.currentChannel)&&0i.startCC||e&&e.cc=this.minWeight_},i.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},i.destroy=function(){},t.default=r},"./src/utils/ewma.ts":function(e,t,i){function r(e,t,i){void 0===t&&(t=0),void 0===i&&(i=0),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=e,this.alpha_=e?Math.exp(Math.log(.5)/e):0,this.estimate_=t,this.totalWeight_=i}i.r(t),(i=r.prototype).sample=function(e,t){var i=Math.pow(this.alpha_,e);this.estimate_=t*(1-i)+i*this.estimate_,this.totalWeight_+=e},i.getTotalWeight=function(){return this.totalWeight_},i.getEstimate=function(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_},t.default=r},"./src/utils/fetch-loader.ts":function(e,t,i){i.r(t),i.d(t,"fetchSupported",function(){return l});var d=i("./src/polyfills/number.ts"),r=i("./src/loader/load-stats.ts"),c=i("./src/demux/chunk-cache.ts");function s(e){var i="function"==typeof Map?new Map:void 0;return(s=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==i){if(i.has(e))return i.get(e);i.set(e,t)}function t(){return n(e,arguments,o(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),a(t,e)})(e)}function n(e,t,i){return(n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return;if(Reflect.construct.sham)return;if("function"==typeof Proxy)return 1;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),1}catch(e){return}}()?Reflect.construct:function(e,t,i){var r=[null],t=(r.push.apply(r,t),new(Function.bind.apply(e,r)));return i&&a(t,i.prototype),t}).apply(null,arguments)}function a(e,t){return(a=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function o(e){return(o=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(){return(h=Object.assign||function(e){for(var t=1;t=a&&o(s,n,l.flush(),r)):o(s,n,e,r),i()}).catch(function(){return Promise.reject()})}()};i=u;function u(e){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=void 0,this.response=void 0,this.controller=void 0,this.context=void 0,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=e.fetchSetup||f,this.controller=new self.AbortController,this.stats=new r.LoadStats}function f(e,t){return new self.Request(e.url,t)}A=s(Error),g=A,(p=v).prototype=Object.create(g.prototype),a(p.prototype.constructor=p,g);var A,p,g,m=v;function v(e,t,i){return(e=A.call(this,e)||this).code=void 0,e.details=void 0,e.code=t,e.details=i,e}t.default=i},"./src/utils/imsc1-ttml-parser.ts":function(e,t,i){i.r(t),i.d(t,"IMSC1_CODEC",function(){return r}),i.d(t,"parseIMSC1",function(){return s});var a=i("./src/utils/mp4-tools.ts"),o=i("./src/utils/vttparser.ts"),f=i("./src/utils/vttcue.ts"),l=i("./src/demux/id3.ts"),c=i("./src/utils/timescale-conversion.ts"),A=i("./src/utils/webvtt-parser.ts");function p(){return(p=Object.assign||function(e){for(var t=1;t"):s)})}(e,"debug","log","info","warn","error");try{n.log()}catch(e){n=r}}else n=r}var o=r},"./src/utils/mediakeys-helper.ts":function(e,t,i){i.r(t),i.d(t,"KeySystems",function(){return r}),i.d(t,"requestMediaKeySystemAccess",function(){return s}),(i=r=r||{}).WIDEVINE="com.widevine.alpha",i.PLAYREADY="com.microsoft.playready";var r,s="undefined"!=typeof self&&self.navigator&&self.navigator.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null},"./src/utils/mediasource-helper.ts":function(e,t,i){function r(){return self.MediaSource||self.WebKitMediaSource}i.r(t),i.d(t,"getMediaSource",function(){return r})},"./src/utils/mp4-tools.ts":function(e,t,i){i.r(t),i.d(t,"bin2str",function(){return u}),i.d(t,"readUint16",function(){return h}),i.d(t,"readUint32",function(){return m}),i.d(t,"writeUint32",function(){return a}),i.d(t,"findBox",function(){return v}),i.d(t,"parseSegmentIndex",function(){return y}),i.d(t,"parseInitSegment",function(){return s}),i.d(t,"getStartDTS",function(){return o}),i.d(t,"getDuration",function(){return l}),i.d(t,"computeRawDurationFromSamples",function(){return b}),i.d(t,"offsetStartDTS",function(){return d}),i.d(t,"segmentValidRange",function(){return f}),i.d(t,"appendUint8Array",function(){return A});var r=i("./src/utils/typed-array.ts"),g=i("./src/loader/fragment.ts"),n=Math.pow(2,32)-1,c=[].push;function u(e){return String.fromCharCode.apply(null,e)}function h(e,t){"data"in e&&(t+=e.start,e=e.data);e=e[t]<<8|e[t+1];return e<0?65536+e:e}function m(e,t){"data"in e&&(t+=e.start,e=e.data);e=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];return e<0?4294967296+e:e}function a(e,t,i){"data"in e&&(t+=e.start,e=e.data),e[t]=i>>24,e[t+1]=i>>16&255,e[t+2]=i>>8&255,e[t+3]=255&i}function v(e,t){var i,r,s=[];if(!t.length)return s;for(var n=("data"in e?(i=e.data,r=e.start,e.end):(r=0,(i=e).byteLength)),a=r;a>>31)return console.warn("SIDX has hierarchical references (not supported)"),null;u=m(r,c);c+=4,i.push({referenceSize:d,subsegmentDuration:u,info:{duration:u/n,start:a,end:a+d-1}}),a+=d,s=c+=4}return{earliestPresentationTime:0,timescale:n,version:e,referencesCount:o,references:i,moovEndOffset:t}}function s(e){for(var i=[],t=v(e,["moov","trak"]),r=0;re)&&(this.startTime=e),this.endTime=t,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)},i.reset=function(){this.cueRanges=[],this.startTime=null};var r=s;function s(e,t){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=e,this.trackName=t}},"./src/utils/texttrack-utils.ts":function(e,t,i){i.r(t),i.d(t,"sendAddTrackEvent",function(){return r}),i.d(t,"addCueToTrack",function(){return n}),i.d(t,"clearCurrentCues",function(){return a}),i.d(t,"removeCuesInRange",function(){return o}),i.d(t,"getCuesInRange",function(){return l});var s=i("./src/utils/logger.ts");function r(e,t){var i;try{i=new Event("addtrack")}catch(e){(i=document.createEvent("Event")).initEvent("addtrack",!1,!1)}i.track=e,t.dispatchEvent(i)}function n(e,t){var i=e.mode;if("disabled"===i&&(e.mode="hidden"),e.cues&&!e.cues.getCueById(t.id))try{if(e.addCue(t),!e.cues.getCueById(t.id))throw new Error("addCue is failed for: "+t)}catch(i){s.logger.debug("[texttrack-utils]: "+i);var r=new self.TextTrackCue(t.startTime,t.endTime,t.text);r.id=t.id,e.addCue(r)}"disabled"===i&&(e.mode=i)}function a(e){var t=e.mode;if("disabled"===t&&(e.mode="hidden"),e.cues)for(var i=e.cues.length;i--;)e.removeCue(e.cues[i]);"disabled"===t&&(e.mode=t)}function o(e,t,i){var r=e.mode;if("disabled"===r&&(e.mode="hidden"),e.cues&&0e[i].endTime)return-1;for(var r=0,s=i;r<=s;){var n=Math.floor((s+r)/2);if(te[n].startTime&&r=t&&o.endTime<=i)r.push(o);else if(o.startTime>i)return r}return r}},"./src/utils/time-ranges.ts":function(e,t,i){i.r(t),t.default={toString:function(e){for(var t="",i=e.length,r=0;r/gi,"\n")}(i=A.prototype).parse=function(e){var r=this;function t(){for(var e=0,t=f(t=r.buffer);e>>0).toString()};function w(e,t,i){return r(e.toString())+r(t.toString())+r(i)}function s(e,t,i,s,n,a,r,o){var l,c=new v.VTTParser,e=Object(y.utf8ArrayToStr)(new Uint8Array(e)).trim().replace(S,"\n").split("\n"),u=[],d=Object(b.toMpegTsClockFromTimescale)(t,i),h="00:00.000",f=0,A=0,p=!0,g=!1;c.oncue=function(e){var t=s[n],i=s.ccOffset,r=(f-d)/9e4,i=(null!=t&&t.new&&(void 0!==A?i=s.ccOffset=t.start:function(e,t){var i,r=e[n],s=e[r.prevCC];if(!s||!s.new&&r.new)return e.ccOffset=e.presentationOffset=r.start,r.new=!1;for(;null!=(i=s)&&i.new;)e.ccOffset+=r.start-s.start,r.new=!1,s=e[(r=s).prevCC];e.presentationOffset=t}(s,r)),r&&(i=r-s.presentationOffset),g&&(t=e.endTime-e.startTime,r=Object(E.normalizePts)(9e4*(e.startTime+i-A),9e4*a)/9e4,e.startTime=r,e.endTime=r+t),e.text.trim());e.text=decodeURIComponent(encodeURIComponent(i)),e.id||(e.id=w(e.startTime,e.endTime,i)),0=e.maxRetry||400<=t&&t<499?(o.logger.error(t+" while loading "+s.url),this.callbacks.onError({code:t,text:n.statusText},s,n)):(o.logger.warn(t+" while loading "+s.url+", retrying in "+this.retryDelay+"..."),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,e.maxRetryDelay),a.retry++)):(self.clearTimeout(this.requestTimeout),this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),e.timeout))))},i.loadtimeout=function(){o.logger.warn("timeout while loading "+this.context.url);var e=this.callbacks;e&&(this.abortInternal(),e.onTimeout(this.stats,this.context,this.loader))},i.loadprogress=function(e){var t=this.stats;t.loaded=e.loaded,e.lengthComputable&&(t.total=e.total)},i.getCacheAge=function(){var e,t=null;return t=this.loader&&s.test(this.loader.getAllResponseHeaders())?(e=this.loader.getResponseHeader("age"))?parseFloat(e):null:t},t.default=n}},r={},s.m=i,s.c=r,s.d=function(e,t,i){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(s.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)s.d(i,r,function(e){return t[e]}.bind(null,r));return i},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="/dist/",s(s.s="./src/hls.ts").default;function s(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return i[e].call(t.exports,t,t.exports,s),t.l=!0,t.exports}var i,r}())}))&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;class xt extends n{constructor(e){super(),(this.player=e)._opt,this.canVideoPlay=!1,this.$videoElement=null,this.canvasRenderInterval=null,this.isInitInfo=!1,B.isSupported()?(this.$videoElement=this.player.video.$videoElement,this.hls=new B({}),this._initHls(),this._bindEvents()):function(){let e=document.createElement("video"),t=e.canPlayType("application/vnd.apple.mpegurl");return e=null,t}()?(this.$videoElement=this.player.video.$videoElement,this.canVideoPlay=!0):this.player.debug.error("HlsDecoder","init hls error ,not support "),this.player.debug.log("HlsDecoder","init")}destroy(){this.hls&&(this.hls.destroy(),this.hls=null),this.isInitInfo=!1,this._stopCanvasRender(),this.$videoElement=null,this.player.debug.log("HlsDecoder","destroy")}_startCanvasRender(){this._stopCanvasRender(),this.canvasRenderInterval=setInterval(()=>{this.player.video.render({$video:this.$videoElement,ts:0})},1e3/60)}_stopCanvasRender(){this.canvasRenderInterval&&(clearInterval(this.canvasRenderInterval),this.canvasRenderInterval=null)}_initHls(){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.$videoElement.muted=!0,fe()&&(this.$videoElement.style.position="absolute"),this.initVideoEvents()),this.hls.attachMedia(this.$videoElement)}_bindEvents(){const t=this.player,e=this.player.events["proxy"],i=this.hls,r=this.$videoElement;e(r,ae,e=>{this.hls&&(e=parseInt(e.timeStamp,10),t.handleRender(),t.updateStats({ts:e}),t.emit(v.kBps,(i.bandwidthEstimate/8/1024).toFixed(2)),t.emit(v.videoTimeUpdate,e))}),e(r,se,()=>{}),this.hls.on(B.Events.ERROR,(e,t)=>{if(t.fatal)switch(t.type){case B.ErrorTypes.NETWORK_ERROR:this.player.debug.error("HlsDecoder","fatal network error encountered, try to recover"),this.hls.startLoad();break;case B.ErrorTypes.MEDIA_ERROR:this.player.debug.error("HlsDecoder","fatal media error encountered, try to recover"),this.hls.recoverMediaError()}}),this.hls.on(B.Events.MEDIA_ATTACHING,()=>{}),this.hls.on(B.Events.MEDIA_ATTACHED,()=>{}),this.hls.on(B.Events.MEDIA_DETACHING,()=>{}),this.hls.on(B.Events.MEDIA_DETACHED,()=>{}),this.hls.on(B.Events.BUFFER_RESET,()=>{}),this.hls.on(B.Events.BUFFER_CODECS,()=>{}),this.hls.on(B.Events.BUFFER_CREATED,()=>{}),this.hls.on(B.Events.BUFFER_APPENDING,()=>{}),this.hls.on(B.Events.BUFFER_APPENDED,()=>{}),this.hls.on(B.Events.BUFFER_EOS,()=>{}),this.hls.on(B.Events.BUFFER_FLUSHING,()=>{}),this.hls.on(B.Events.BUFFER_FLUSHED,()=>{}),this.hls.on(B.Events.MANIFEST_LOADING,()=>{this.player.debug.log("HlsDecoder","MANIFEST_LOADING 开始加载playlist m3u8资源")}),this.hls.on(B.Events.MANIFEST_LOADED,(e,t)=>{this.player.debug.log("HlsDecoder","MANIFEST_LOADED playlist m3u8文件加载完成",t)}),this.hls.on(B.Events.MANIFEST_PARSED,()=>{this.player.debug.log("HlsDecoder","MANIFEST_PARSED playlist m3u8解析完成"),t._times.demuxStart||(t._times.demuxStart=g())}),this.hls.on(B.Events.LEVEL_LOADING,()=>{}),this.hls.on(B.Events.LEVEL_LOADED,(e,t)=>{}),this.hls.on(B.Events.FRAG_LOADING,()=>{}),this.hls.on(B.Events.FRAG_LOADED,()=>{t._times.decodeStart||(t._times.decodeStart=g())}),this.hls.on(B.Events.BUFFER_APPENDING,()=>{t._times.videoStart||(t._times.videoStart=g(),t.handlePlayToRenderTimes())}),this.hls.on(B.Events.FRAG_LOADED,()=>{}),this.hls.on(B.Events.FRAG_DECRYPTED,()=>{}),this.hls.on(B.Events.KEY_LOADING,()=>{}),this.hls.on(B.Events.KEY_LOADING,()=>{}),this.hls.on(B.Events.FPS_DROP,e=>{}),this.hls.on(B.Events.FPS_DROP_LEVEL_CAPPING,e=>{})}initVideoPlay(e){this.player._opt.useCanvasRender&&(this.$videoElement=document.createElement("video"),this.initVideoEvents()),this.$videoElement.muted=!0,this.$videoElement.src=e}initRenderSize(){this.isInitInfo||(this.player.video.updateVideoInfo({width:this.$videoElement.videoWidth,height:this.$videoElement.videoHeight}),this.player.video.initCanvasViewSize(),this.isInitInfo=!0)}initVideoEvents(){const e=this.player.events["proxy"];e(this.$videoElement,se,()=>{this.player.debug.log("HlsDecoder","video canplay"),this.$videoElement.play().then(()=>{this.player.debug.log("HlsDecoder","video play"),this._startCanvasRender(),this.initRenderSize()}).catch(e=>{this.player.debug.warn("HlsDecoder","video play error ",e)})}),e(this.$videoElement,ne,()=>{this.player.debug.log("HlsDecoder","video waiting")}),e(this.$videoElement,ae,e=>{e=parseInt(e.timeStamp,10);this.player.handleRender(),this.player.updateStats({ts:e}),this.player.emit(v.videoTimeUpdate,e)})}loadSource(i){return new Promise((e,t)=>{this.canVideoPlay?(this.initVideoPlay(i),e()):this.hls.on(B.Events.MEDIA_ATTACHED,()=>{this.hls.loadSource(i),e()})})}}class Ot extends n{constructor(e){super(),this.player=e,this.rtcPeerConnection=null,this.videoStream=null,this._initRtcPeerConnection(),this.player.debug.log("WebrtcDecoder","init")}destroy(){this.rtcPeerConnection&&(this.rtcPeerConnection.close(),this.rtcPeerConnection=null),this.videoStream=null,this.player.video.$videoElement.srcObject=null,this.player.debug.log("WebrtcDecoder","destroy")}_initRtcPeerConnection(){const t=new RTCPeerConnection,i=this.player;t.addTransceiver("video",{direction:"recvonly"}),t.addTransceiver("audio",{direction:"recvonly"}),t.onsignalingstatechange=e=>{console.log("onsignalingstatechange",e)},t.oniceconnectionstatechange=e=>{console.log("oniceconnectionstatechange",t.iceConnectionState)},t.onicecandidate=e=>{console.log("onicecandidate",e)},t.ontrack=e=>{const t=i.video.$videoElement;console.log("ontrack",e),"video"===e.track.kind&&(e=e.streams[0],t.srcObject=e,this.videoStream=e)},t.onconnectionstatechange=e=>{i.debug.log("webrtcLoader","sdp connect status "+t.connectionState),t.connectionState},this.rtcPeerConnection=t}loadSource(s){return new Promise((t,i)=>{const r=this.rtcPeerConnection;r.createOffer().then(e=>{r.setLocalDescription(e),this.player.debug.log("webrtcLoader","getWebRtcRemoteSdp loadSource"),e=e.sdp,fetch(s,{method:"POST",mode:"cors",cache:"no-cache",credentials:"include",redirect:"follow",referrerPolicy:"no-referrer",headers:{"Content-Type":"application/sdp"},body:e}).then(e=>{e.text().then(e=>{this.player.debug.log("webrtcLoader","getWebRtcRemoteSdp response"),r.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:e})),t()}).catch(e=>{this.player.debug.error("webrtcLoader","loadSource response.text() error",e),console.error(e),i()})}).catch(e=>{this.player.debug.error("webrtcLoader","loadSource getWebRtcRemoteSdp response error",e),i(e)})}).catch(e=>{this.player.debug.error("webrtcLoader","loadSource rtcPeerConnection.createOffer() error",e),i(e)})})}}class Ft extends n{constructor(e,t){super(),this.player=e,this._showPrecision=null,this._startTime=null,this._playStartTime=null,this._playingTimestamp=null,this._fps=parseInt(t.fps,10)||e._opt.playbackFps,this._rate=1,this._audioTimestamp=0,this._videoTimestamp=0,this._listen(),this.playbackList=[],this._totalDuration=0,this.initPlaybackList(t.playList),e.debug.log("Playback","init")}_listen(){this.player.on(v.stats,e=>{e=e.ts,this._playStartTime||(this._playStartTime=e),e-=this._playStartTime;this.setPlayingTimestamp(e)})}destroy(){this._startTime=null,this._showPrecision=null,this._playStartTime=null,this._playingTimestamp=null,this._totalDuration=0,this._audioTimestamp=0,this._videoTimestamp=0,this._fps=null,this._rate=1,this.playbackList=[],this.off(),this.player.debug.log("Playback","destroy")}initPlaybackList(e){this.playbackList=e||[];let i=0;this.playbackList.forEach((e,t)=>{10===be(e.start)&&(e.startTimestamp=1e3*e.start,e.startTime=Ae(e.startTimestamp)),10===be(e.end)&&(e.endTimestamp=1e3*e.end,e.endTime=Ae(e.endTimestamp)),e.duration=e.end-e.start,i+=e.duration}),this._totalDuration=i,this.player.debug.log("Playback",this.playbackList),0{if(e){this.player.$container.classList.add("jessibuca-zoom-control"),this._bindEvents();const e=this.player.video.$videoElement.style.transform;let t=(this.prevVideoElementStyleTransform=e).match(/scale\([0-9., ]*\)/g);if(t&&t[0]){let e=t[0].replace("scale(","").replace(")","");this.prevVideoElementStyleScale=e.split(",")}}else this.player.$container.classList.remove("jessibuca-zoom-control"),this._unbindEvents(),this._resetVideoPosition(),this.player.$container.style.cursor="auto",this.player.video.$videoElement.style.transform=this.prevVideoElementStyleTransform,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null}),t(window,"mouseup",e=>{this.handleMouseUp(e)}),e.debug.log("zoom","init")}destroy(){this.bindEvents=[],this.isDragging=!1,this.currentZoom=1,this.prevVideoElementStyleTransform=null,this.prevVideoElementStyleScale=null,this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.off(),this.player.debug.log("zoom","destroy")}_bindEvents(){const{proxy:e}=this.player["events"],t=e(this.player.$container,"mousemove",e=>{this.handleMouseMove(e)});this.bindEvents.push(t);var i=e(this.player.$container,"mousedown",e=>{this.handleMouseDown(e)});this.bindEvents.push(i)}_unbindEvents(){this.bindEvents.forEach(e=>{e&&e()})}handleMouseMove(e){var t,i,r;e.stopPropagation(),this.isDragging&&({posX:e,posY:t}=Ee(e),i=this.tempPosition.x-e,r=this.tempPosition.y-t,this.videoPosition.left=this.videoPosition.left-i,this.videoPosition.top=this.videoPosition.top-r,this.tempPosition.x=e,this.tempPosition.y=t,this.updateVideoPosition())}handleMouseDown(e){e.stopPropagation();const t=T(e);if(t.matches("video")||t.matches("canvas")){const{posX:t,posY:i}=Ee(e);this.player.$container.style.cursor="grabbing",this.tempPosition.x=t,this.tempPosition.y=i,this.isDragging=!0,this.player.debug.log("zoom","handleMouseDown is dragging true")}}handleMouseUp(e){e.stopPropagation(),this.isDragging&&(this.tempPosition={x:0,y:0},this.isDragging=!1,this.player.$container.style.cursor="grab",this.player.debug.log("zoom","handleMouseUp is dragging false"))}updateVideoPosition(){const e=this.player.video.$videoElement;e.style.left=this.videoPosition.left+"px",e.style.top=this.videoPosition.top+"px"}_resetVideoPosition(){const e=this.player.video.$videoElement;e.style.left="0px",e.style.top="0px",this.tempPosition={x:0,y:0},this.videoPosition={left:0,top:0},this.currentZoom=1}narrowPrecision(){0!==this.currentZoom&&(--this.currentZoom,this.updateVideoElementScale())}expandPrecision(){5!==this.currentZoom&&(this.currentZoom+=1,this.updateVideoElementScale())}updateVideoElementScale(){const e=this.player.video.$videoElement;let t=e.style.transform,i=1,r=1;if(this.prevVideoElementStyleScale){const e=this.prevVideoElementStyleScale[0],t=(void 0!==e&&(i=e,r=e),this.prevVideoElementStyleScale[1]);void 0!==t&&(r=t)}var s=.5*i*this.currentZoom+i,n=.5*r*this.currentZoom+r,a=-1===t.indexOf("scale(")?t+` scale(${s},${n})`:t.replace(/scale\([0-9., ]*\)/,`scale(${s},${n})`);this.player.debug.log("zoom",`updateVideoElementScale end is ${s}, ${n} style is `+a),e.style.transform=a}}class Mt extends n{constructor(e,t){super(),this.$container=e,this._opt=Object.assign({},_,t),this.debug=new Te(this),this._opt.forceNoOffscreen||("undefined"==typeof OffscreenCanvas?(this._opt.forceNoOffscreen=!0,this._opt.useOffscreen=!1):this._opt.useOffscreen=!0),(this._opt.isHls||this._opt.isWebrtc)&&(this._opt.useWCS=!1,this._opt.useMSE=!1),this._opt.isHls||this._opt.isWebrtc||(this._opt.useWCS&&(this._opt.useWCS="VideoEncoder"in window,this._opt.useWCS&&(this._opt.useOffscreen?this._opt.wcsUseVideoRender=!1:this._opt.wcsUseVideoRender&&(this._opt.wcsUseVideoRender=ge()))),this._opt.useMSE&&(this._opt.useMSE=window.MediaSource&&window.MediaSource.isTypeSupported(ee))),this._opt.useMSE?(this._opt.useWCS&&this.debug.log("Player","useWCS set true->false"),this._opt.forceNoOffscreen||this.debug.log("Player","forceNoOffscreen set false->true"),this._opt.useWCS=!1,this._opt.forceNoOffscreen=!0):this._opt.useWCS,this._opt.useSIMD&&(this._opt.useSIMD=WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11])),this._opt.useSIMD&&-1===this._opt.decoder.indexOf("-simd")&&(this._opt.decoder=this._opt.decoder.replace("decoder-pro","decoder-pro-simd"))),this._opt.hasAudio||(this._opt.operateBtns.audio=!1),this._opt.hasVideo||(this._opt.operateBtns.fullscreen=!1,this._opt.operateBtns.screenshot=!1,this._opt.operateBtns.record=!1,this._opt.operateBtns.ptz=!1,this._opt.operateBtns.quality=!1,this._opt.operateBtns.zoom=!1),this._opt.hasControl=this._hasControl(),this._loading=!1,this._playing=!1,this._hasLoaded=!1,this._zooming=!1,this._checkHeartTimeout=null,this._checkLoadingTimeout=null,this._checkStatsInterval=null,this._startBpsTime=null,this._isPlayingBeforePageHidden=!1,this._stats={buf:0,netBuf:0,fps:0,dfps:0,abps:0,vbps:0,ts:0,pTs:0},this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this._videoTimestamp=0,this._audioTimestamp=0,this._streamQuality="",this._visibility=!0,this._lastestVisibilityChangeTimestamp=null,this._isPlayback()&&(this._opt.useMSE=!1,this._opt.useWCS=!1),!1!==this._opt.useMSE||!1!==this._opt.useWCS||this._opt.isWebrtc||this._opt.isHls||(this._opt.useWasm=!0),(this._opt.isHls||this._opt.isWebrtc)&&(this._opt.hasVideo=!0,this._opt.hasAudio=!0),this._opt.hasVideo||(this._opt.useMSE=!1,this._opt.useWCS=!1),this._opt.useWasm&&(this._opt.useOffscreen?this._opt.wasmUseVideoRender=!1:this._opt.wasmUseVideoRender&&(this._opt.wasmUseVideoRender=pe()),this._opt.useSIMD?this.debug.log("Player","use simd wasm"):this.debug.log("Player","use wasm")),this._opt.useVideoRender?this._opt.useWasm&&!this._opt.useOffscreen?this._opt.wasmUseVideoRender=pe():this._opt.useWCS&&!this._opt.useOffscreen&&(this._opt.wcsUseVideoRender=ge()):this._opt.useCanvasRender&&(this._opt.useMSE&&(this._opt.mseUseCanvasRender=!0),this._opt.isHls&&!fe()&&(this._opt.hlsUseCanvasRender=!0)),this._opt.useVideoRender=!1,this._opt.useCanvasRender=!1,this._opt.useWasm?this._opt.wasmUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useWCS?this._opt.wcsUseVideoRender?this._opt.useVideoRender=!0:this._opt.useCanvasRender=!0:this._opt.useMSE?this._opt.mseUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this._opt.isHls?this._opt.hlsUseCanvasRender?this._opt.useCanvasRender=!0:this._opt.useVideoRender=!0:this._opt.isWebrtc&&(this._opt.useVideoRender=!0),i=this,Object.defineProperty(i,"rect",{get:()=>{const e=i.$container.getBoundingClientRect();return e.width=Math.max(e.width,i.$container.clientWidth),e.height=Math.max(e.height,i.$container.clientHeight),e}}),["bottom","height","left","right","top","width"].forEach(e=>{Object.defineProperty(i,e,{get:()=>i.rect[e]})}),this.events=new we(this),this._opt.hasVideo&&(this.video=new Fe(this),this.recorder=new nt(this)),this._opt.isHls?(this.hlsDecoder=new xt(this),this.loaded=!0):this._opt.isWebrtc?(this.webrtc=new Ot(this),this.loaded=!0):this._onlyMseOrWcsVideo()?this.loaded=!0:this.decoderWorker=new at(this),this._opt.hasAudio&&(this.audio=new Je(this)),this.stream=null,this.demux=null,this._lastVolume=null,this._isInZoom=!1,this._playingStartTimestamp=null,this._opt.useWCS&&(this.webcodecsDecoder=new Et(this),this.loaded=!0),this._opt.useMSE&&(this.mseDecoder=new Dt(this),this.loaded=!0),this.control=new Rt(this),this._isPlayback()&&(this.playback=new Ft(this,this._opt.playbackConfig),this.$container.classList.add("jessibuca-container-playback")),this._opt.operateBtns.zoom&&(this.zoom=new Pt(this)),E()&&(this.keepScreenOn=new Bt(this));var i,r=this;try{const n=e=>{T(e)===r.$container&&(r.emit(u.fullscreen,r.fullscreen),r.fullscreen&&!r._opt.useMSE||r.resize())};p.on("change",n),r.events.destroys.push(()=>{p.off("change",n)})}catch(r){}if(r.on(v.decoderWorkerInit,()=>{r.debug.log("player","has loaded"),r.loaded=!0}),r.on(v.play,()=>{r.loading=!1}),r.on(v.fullscreen,e=>{if(e)try{p.request(r.$container).then(()=>{}).catch(e=>{r.webFullscreen=!0})}catch(e){r.webFullscreen=!0}else try{p.exit().then(()=>{}).catch(()=>{r.webFullscreen=!1})}catch(e){r.webFullscreen=!1}}),r.on(v.webFullscreen,e=>{e?r.$container.classList.add("jessibuca-fullscreen-web"):r.$container.classList.remove("jessibuca-fullscreen-web"),r.emit(u.fullscreen,r.fullscreen)}),r.on(v.resize,()=>{r.video.resize()}),r._opt.debug){const a=[v.timeUpdate];Object.keys(v).forEach(t=>{r.on(v[t],e=>{a.includes(t)||r.debug.log("player events",v[t],e)})}),Object.keys(d).forEach(t=>{r.on(d[t],e=>{r.debug.log("player event error",d[t],e)})})}{var s=this;const{_opt:o,debug:l,events:{proxy:c}}=s;o.supportDblclickFullscreen&&c(s.$container,"dblclick",e=>{e=T(e).nodeName.toLowerCase();"canvas"!==e&&"video"!==e||(s.fullscreen=!s.fullscreen)}),c(document,"visibilitychange",()=>{s.visibility="visible"===document.visibilityState,l.log("visibilitychange",document.visibilityState),o.hiddenAutoPause&&(l.log("visibilitychange","hiddenAutoPause is true ",document.visibilityState,s._isPlayingBeforePageHidden),"visible"===document.visibilityState?s._isPlayingBeforePageHidden&&s.play():(s._isPlayingBeforePageHidden=s.playing,s.playing&&s.pause()))}),c(window,"fullscreenchange",()=>{null!==s.keepScreenOn&&"visible"===document.visibilityState&&s.enableWakeLock()})}if(!(e=this._opt.watermarkConfig)||0!==Object.keys(e).length){const e=Object.assign(this._opt.watermarkConfig,{container:this.$container});this._removeWatermarkFn=function(){var i=me(e);const r=i.container;if(r){let e=null;const a=document.createElement("div");a.setAttribute("style","pointer-events: none !important; display: block !important"),e="function"==typeof a.attachShadow?a.attachShadow({mode:"open"}):a.shadowRoot||a;var s=r.children,n=Math.floor(Math.random()*(s.length-1));s[n]?r.insertBefore(a,s[n]):r.appendChild(a);const o=document.createElement("div");let t=null;return i.image&&i.image.src?((t=document.createElement("img")).style.height="100%",t.style.width="100%",t.style.objectFit="contain",t.src=i.image.src):i.text&&i.text.content&&(t=document.createTextNode(i.text.content)),t?(o.appendChild(t),o.style.visibility="",o.style.position="absolute",o.style.display="block",o.style["-ms-user-select"]="none",S(i.left)&&(o.style.left=i.left+"px"),S(i.right)&&(o.style.right=i.right+"px"),S(i.top)&&(o.style.top=i.top+"px"),S(i.bottom)&&(o.style.bottom=i.bottom+"px"),o.style.overflow="hidden",o.style.zIndex="9999999",i.image&&i.image.src?(o.style.width=i.image.width+"px",o.style.height=i.image.height+"px"):i.text&&i.text.content&&(o.style.fontSize=i.text.fontSize+"px",o.style.color=i.text.color),e.appendChild(o),()=>{r.removeChild(a)}):void 0}}()}this._opt.useWCS&&this.debug.log("Player","use WCS"),this._opt.useMSE&&this.debug.log("Player","use MSE"),this._opt.useOffscreen&&this.debug.log("Player","use offscreen"),this._opt.isHls&&this.debug.log("Player","use hls"),this._opt.isWebrtc&&this.debug.log("Player","use webrtc"),this._isPlayback()&&this.debug.log("Player","use playback"),this.debug.log("Player options",this._opt)}destroy(){this._loading=!1,this._playing=!1,this._hasLoaded=!1,this._lastVolume=null,this._zooming=!1,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},this.decoderWorker&&(this.decoderWorker.destroy(),this.decoderWorker=null),this.video&&(this.video.destroy(),this.video=null),this.audio&&(this.audio.destroy(),this.audio=null),this.stream&&(this.stream.destroy(),this.stream=null),this.recorder&&(this.recorder.destroy(),this.recorder=null),this.control&&(this.control.destroy(),this.control=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.demux&&(this.demux.destroy(),this.demux=null),this.hlsDecoder&&(this.hlsDecoder.destroy(),this.hlsDecoder=null),this.events&&(this.events.destroy(),this.events=null),this.playback&&(this.playback.destroy(),this.playback=null),this.zoom&&(this.zoom.destroy(),this.zoom=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.releaseWakeLock(),this.keepScreenOn=null,this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._streamQuality="",this._visibility=!0,this._isInZoom=!1,this._playingStartTimestamp=null,this._lastestVisibilityChangeTimestamp=null,this._removeWatermarkFn&&(this._removeWatermarkFn(),this._removeWatermarkFn=null),this.emit("destroy"),this.off(),this.debug.log("play","destroy end")}set fullscreen(e){E()?(this.emit(v.webFullscreen,e),setTimeout(()=>{this.updateOption({rotate:e?270:0}),this.resize()},10)):this.emit(v.fullscreen,e)}get fullscreen(){return p.isFullscreen||this.webFullscreen}set webFullscreen(e){this.emit(v.webFullscreen,e)}get webFullscreen(){return this.$container.classList.contains("jessibuca-fullscreen-web")}set loaded(e){this._hasLoaded=e}get loaded(){return this._hasLoaded||this._opt.isHls||this._opt.isWebrtc||this._opt.useMSE||this._opt.useWCS}set playing(e){e&&(this.loading=!1),this.playing!==e&&(this._playing=e,this.emit(v.playing,e),this.emit(v.volumechange,this.volume),e?this.emit(v.play):this.emit(v.pause))}get playing(){return this._playing}get volume(){return this.audio&&this.audio.volume||0}set volume(e){e!==this.volume&&(this.audio&&this.audio.setVolume(e),this._lastVolume=e)}get lastVolume(){return this._lastVolume}set loading(e){this.loading!==e&&(this._loading=e,this.emit(v.loading,this._loading))}get loading(){return this._loading}set zooming(e){this.zooming!==e&&(this._zooming=e,this.emit(v.zooming,this.zooming))}get zooming(){return this._zooming}set recording(e){e?this.playing&&this.recorder&&this.recorder.startRecord():this.recorder&&this.recorder.stopRecordAndSave()}get recording(){return!!this.recorder&&this.recorder.recording}set audioTimestamp(e){null!==e&&(this._audioTimestamp=e)}get audioTimestamp(){return this._audioTimestamp}set videoTimestamp(e){null!==e&&(this._videoTimestamp=e,this._opt.useWCS||this._opt.useMSE||this.audioTimestamp&&this.videoTimestamp&&this.audio&&this.audio.emit(v.videoSyncAudio,{audioTimestamp:this.audioTimestamp,videoTimestamp:this.videoTimestamp,diff:this.audioTimestamp-this.videoTimestamp}))}set streamQuality(e){this.streamQuality!==e&&(this._streamQuality=e,this.emit(v.streamQualityChange,e))}get streamQuality(){return this._streamQuality}get videoTimestamp(){return this._videoTimestamp}get isDebug(){return!0===this._opt.debug}set visibility(e){this._visibility!==e&&(this._visibility=e,this.emit(v.visibilityChange,e),this._lastestVisibilityChangeTimestamp=g())}get visibility(){return this._visibility}updateOption(e){this._opt=Object.assign({},this._opt,e)}init(){return new Promise((e,t)=>{this.video||this._opt.hasVideo&&(this.video=new Fe(this)),this.audio||this._opt.hasAudio&&(this.audio=new Je(this)),this.stream||(this.stream=new it(this)),this._opt.isHls?(this.hlsDecoder||(this.hlsDecoder=new xt(this),this.loaded=!0),e()):this._opt.isWebrtc?(this.webrtc||(this.webrtc=new Ot(this),this.loaded=!0),e()):(this.demux||(this.demux=new mt(this)),this._opt.useWCS&&!this.webcodecsDecoder&&(this.webcodecsDecoder=new Et(this)),this._opt.useMSE&&!this.mseDecoder&&(this.mseDecoder=new Dt(this)),this.decoderWorker||this._onlyMseOrWcsVideo()?e():(this.decoderWorker=new at(this),this.once(v.decoderWorkerInit,()=>{e()})))})}play(i,r){return new Promise((e,t)=>{if(!i&&!this._opt.url)return t();this.loading=!0,this.playing=!1,this._times.playInitStart=g(),i=i||this._opt.url,this._opt.url=i,this.clearCheckHeartTimeout(),this.init().then(()=>{this._times.playStart=g(),this._opt.isNotMute&&this.mute(!1),this.webcodecsDecoder&&this.webcodecsDecoder.once(d.webcodecsH265NotSupport,()=>{this.emit(d.webcodecsH265NotSupport),this._opt.autoWasm||this.emit(v.error,d.webcodecsH265NotSupport)}),this.mseDecoder&&(this.mseDecoder.once(d.mediaSourceH265NotSupport,()=>{this.emit(d.mediaSourceH265NotSupport),this._opt.autoWasm||this.emit(v.error,d.mediaSourceH265NotSupport)}),this.mseDecoder.once(d.mediaSourceFull,()=>{this.emit(d.mediaSourceFull)}),this.mseDecoder.once(d.mediaSourceAppendBufferError,()=>{this.emit(d.mediaSourceAppendBufferError)}),this.mseDecoder.once(d.mediaSourceBufferListLarge,()=>{this.emit(d.mediaSourceBufferListLarge)}),this.mseDecoder.once(d.mediaSourceAppendBufferEndTimeout,()=>{this.emit(d.mediaSourceAppendBufferEndTimeout)})),this.enableWakeLock(),this.checkLoadingTimeout(),this.stream.once(d.fetchError,e=>{t(e)}),this.stream.once(d.websocketError,e=>{t(e)}),this.stream.once(v.streamEnd,()=>{t()}),this.stream.once(d.hlsError,e=>{t(e)}),this.stream.once(v.streamSuccess,()=>{e(),this._times.streamResponse=g(),this.video&&this.video.play(),this.checkStatsInterval(),setTimeout(()=>{this.destroy(),console.error("jessibuca pro 体验结束,请刷新页面再次体验"),alert("jessibuca pro 体验结束,请刷新页面再次体验,如需要购买商业授权,可以联系微信:bosswancheng"),window.location.reload()},36e5)}),this.stream.fetchStream(i,r)}).catch(e=>{t(e)})})}close(){return new Promise((e,t)=>{this._close().then(()=>{this.video&&this.video.clearView(),e()})})}resumeAudioAfterPause(){this.lastVolume&&(this.volume=this.lastVolume)}_close(){return new Promise((e,t)=>{this.stream&&(this.stream.destroy(),this.stream=null),this.demux&&(this.demux.destroy(),this.demux=null),this.decoderWorker&&(this.decoderWorker.destroy(),this.decoderWorker=null),this.webcodecsDecoder&&(this.webcodecsDecoder.destroy(),this.webcodecsDecoder=null),this.mseDecoder&&(this.mseDecoder.destroy(),this.mseDecoder=null),this.hlsDecoder&&(this.hlsDecoder.destroy(),this.hlsDecoder=null),this.webrtc&&(this.webrtc.destroy(),this.webrtc=null),this.audio&&(this.audio.destroy(),this.audio=null),this.clearCheckHeartTimeout(),this.clearCheckLoadingTimeout(),this.clearStatsInterval(),this.playing=!1,this.loading=!1,this.recording=!1,this.video&&(this.video.resetInit(),this.video.pause(!0)),this.releaseWakeLock(),this.resetStats(),this._audioTimestamp=0,this._videoTimestamp=0,this._times={playInitStart:"",playStart:"",streamStart:"",streamResponse:"",demuxStart:"",decodeStart:"",videoStart:"",playTimestamp:"",streamTimestamp:"",streamResponseTimestamp:"",demuxTimestamp:"",decodeTimestamp:"",videoTimestamp:"",allTimestamp:""},setTimeout(()=>{e()},0)})}pause(){return 0{this._opt.operateBtns[e]&&(t=!0)}),(this._opt.showBandwidth||this._opt.text||t)&&(e=!0),e=this._isPlayback()&&this._opt.showPlaybackControl?!0:e}_isPlayback(){return this._opt.playType===m}_onlyMseOrWcsVideo(){return!1===this._opt.hasAudio&&(this._opt.useMSE||this._opt.useWCS&&!this._opt.useOffscreen)}useWasmDecode(){return!1===this._opt.useMSE&&!1===this._opt.useWCS}canVideoTrackWritter(){var e=this._opt;return!e.isHls&&!e.isWebrtc&&(e.useWCS&&!e.useOffscreen&&e.wcsUseVideoRender||this.useWasmDecode())}checkHeart(){this.clearCheckHeartTimeout(),this.checkHeartTimeout()}checkHeartTimeout(){this._checkHeartTimeout=setTimeout(()=>{this.visibility&&this.pause(!1).then(()=>{this.emit(v.timeout,v.delayTimeout),this.emit(v.delayTimeout)})},1e3*this._opt.heartTimeout)}checkStatsInterval(){this._checkStatsInterval=setInterval(()=>{this.updateStats()},1e3)}clearCheckHeartTimeout(){this._checkHeartTimeout&&(clearTimeout(this._checkHeartTimeout),this._checkHeartTimeout=null)}checkLoadingTimeout(){this._checkLoadingTimeout=setTimeout(()=>{this.pause(!1).then(()=>{this.emit(v.timeout,v.loadingTimeout),this.emit(v.loadingTimeout)})},1e3*this._opt.loadingTimeout)}clearCheckLoadingTimeout(){this._checkLoadingTimeout&&(clearTimeout(this._checkLoadingTimeout),this._checkLoadingTimeout=null)}clearStatsInterval(){this._checkStatsInterval&&(clearInterval(this._checkStatsInterval),this._checkStatsInterval=null)}handleRender(){this.loading&&(this.emit(v.start),this.loading=!1,this.clearCheckLoadingTimeout()),this.playing||(this.playing=!0),this.checkHeart()}updateStats(s){s=s||{},this._startBpsTime||(this._startBpsTime=g()),r(s.ts)&&(this._stats.ts=s.ts,null===this._playingStartTimestamp&&0{this.player.on(u[t],e=>{this.emit(t,e)})}),this.player.once(v.beforeDestroy,()=>{this.emit(v.close),this.destroy()})}getOption(){return this.player?this.player.getOption():{}}setDebug(e){this.player&&this.player.updateOption({debug:!!e})}mute(){this.player&&this.player.mute(!0)}cancelMute(){this.player&&this.player.mute(!1)}setVolume(e){this.player&&(this.player.volume=e)}audioResume(){this.player&&this.player.audio&&this.player.audio.audioEnabled(!0)}setTimeout(e){e=Number(e),this.player&&this.player.updateOption({timeout:e,loadingTimeout:e,heartTimeout:e})}setScaleMode(e){let t={isFullResize:!1,isResize:!1};switch(e=Number(e)){case 0:t.isFullResize=!1,t.isResize=!1;break;case 1:t.isFullResize=!1,t.isResize=!0;break;case 2:t.isFullResize=!0,t.isResize=!0}this.player&&(this.player.updateOption(t),this.resize())}pause(){return this.player&&this.player.pause()}close(){return this._resetOpt(),this.player&&this.player.close()}clearView(){this.player&&this.player.video&&this.player.video.clearView()}play(i){let r=1{if(!i&&!this._opt.url)return this.emit(v.error,d.playError),void t();if(!1===this._opt.isLive)return this.$videoElement.controls="controls",this.$videoElement.muted=!1,this.$videoElement.src=i,this.$videoElement.play(),void e(this.$videoElement);if(!this.player)return i?this._play(i):this._play(this._opt.url);if(i){if(!this._opt.url)return this._play(i,r);i===this._opt.url?this.player.playing?e():(this.clearView(),this.player.play(this._opt.url,this._opt.playOptions).then(()=>{e(),this.player.resumeAudioAfterPause()}).catch(e=>{this.player.debug.error("Jessibuca","this.player.play error",e),this.player.pause().then(()=>{t()})})):this.player.pause().then(()=>(this.clearView(),this._play(i,r))).catch(e=>{this.player.debug.error("Jessibuca","this.player.pause error",e),t()})}else this.player.play(this._opt.url,this._opt.playOptions).then(()=>{e(),this.player.resumeAudioAfterPause()}).catch(e=>{this.player.debug.error("Jessibuca","this.player.play error",e),this.player.pause().then(()=>{t()})})})}playback(e){var t=1{this.player.playing?(i=y(Number(i),.1,8),this.player.playback.setRate(i),this.player.video&&this.player.video.setRate(i),this.player.audio&&this.player.audio.setRate(i),this.player.decoderWorker.clearWorkBuffer(!0),this.player.decoderWorker&&this.player.decoderWorker.updateWorkConfig({key:"playbackRate",value:i}),e()):t()})}normal(){return this.forward(1)}updatePlaybackForwardMaxRateDecodeIFrame(e){e=y(Number(e),1,8),this.player?this.player.updateOption({playbackForwardMaxRateDecodeIFrame:e}):this._opt.playbackForwardMaxRateDecodeIFrame=e}setStreamQuality(e){this.player&&this.player._opt.operateBtns.quality&&(this.player._opt.qualityConfig||[]).includes(e)&&(this.player.streamQuality=e)}setPlaybackStartTime(e){var t=be(e);!this.player||t<10||this.player.playing&&(10===t&&(e*=1e3),this.player.video&&this.player.video.clear(),this.player.audio&&this.player.audio.clear(),this.player.playback.setStartTime(e),this.player.decoderWorker.clearWorkBuffer(!0))}_play(l){let c=1{var i=0===(this._opt.url=l).indexOf("http"),r=0===l.indexOf("webrtc"),s=0===l.indexOf("wt"),n=!r&&-1!==l.indexOf(".m3u8"),a=!r&&-1!==l.indexOf(".flv"),o=i?n?3:2:s?5:r?4:1,i=i&&!n||a||this._opt.isFlv?M:n?"hls":r?"webrtc":s?U:"m7s";if(a&&!this._opt.isFlv&&(this._opt.isFlv=!0),!o||!i)return t(`play protocol is ${o}, demuxType is `+i);n||r?this._resetPlayer({protocol:o,demuxType:i,isHls:n,isWebrtc:r}):this.player.updateOption({protocol:o,demuxType:i,isFlv:this._opt.isFlv}),this.player.once(d.webglAlignmentError,()=>{this.pause().then(()=>{this.player.debug.log("Jessibuca","webglAlignmentError"),this._resetPlayer({openWebglAlignment:!0}),this.play(l).then(()=>{this.player.debug.log("Jessibuca","webglAlignmentError and play success")}).catch(e=>{this.player.debug.error("Jessibuca","webglAlignmentError and play error",e)})})}),this.player.once(d.mediaSourceH265NotSupport,()=>{this.pause().then(()=>{this.player._opt.autoWasm&&(this.player.debug.log("Jessibuca","auto wasm [mse-> wasm] reset player and play"),this._resetPlayer({useMSE:!1}),this.play(l).then(()=>{this.player.debug.log("Jessibuca","auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","auto wasm [mse-> wasm] reset player and play error",e)}))})}),this.player.once(d.mediaSourceFull,()=>{this.pause().then(()=>{this.player.debug.log("Jessibuca","media source full"),this._resetPlayer(),this.play(l).then(()=>{this.player.debug.log("Jessibuca","media source full and reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","media source full and reset player and play error",e)})})}),this.player.once(d.mediaSourceAppendBufferError,()=>{this.pause().then(()=>{this.player.debug.log("Jessibuca","media source append buffer error"),this._resetPlayer(),this.play(l).then(()=>{this.player.debug.log("Jessibuca","media source append buffer error and reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","media source append buffer error and reset player and play error",e)})})}),this.player.once(d.mediaSourceBufferListLarge,()=>{this.pause().then(()=>{this.player.debug.log("Jessibuca","media source buffer list large"),this._resetPlayer(),this.play(l).then(()=>{this.player.debug.log("Jessibuca","media source buffer list large and reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","media source buffer list large and reset player and play error",e)})})}),this.player.once(d.mediaSourceAppendBufferEndTimeout,()=>{this.pause().then(()=>{this.player.debug.log("Jessibuca","media source append buffer end timeout"),this._resetPlayer(),this.play(l).then(()=>{this.player.debug.log("Jessibuca","media source append buffer end timeout and reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","media source append buffer end timeout and reset player and play error",e)})})}),this.player.once(d.mseSourceBufferError,()=>{this.pause().then(()=>{this.player._opt.autoWasm&&(this.player.debug.log("Jessibuca","mseSourceBufferError auto wasm [mse-> wasm] reset player and play"),this._resetPlayer({useMSE:!1}),this.play(l).then(()=>{this.player.debug.log("Jessibuca","mseSourceBufferError auto wasm [mse-> wasm] reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","mseSourceBufferError auto wasm [mse-> wasm] reset player and play error",e)}))})}),this.player.once(d.webcodecsH265NotSupport,()=>{this.pause().then(()=>{this.player._opt.autoWasm&&(this.player.debug.log("Jessibuca","auto wasm [wcs-> wasm] reset player and play"),this._resetPlayer({useWCS:!1}),this.play(l).then(()=>{this.player.debug.log("Jessibuca","auto wasm [wcs-> wasm] reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","auto wasm [wcs-> wasm] reset player and play error",e)}))})}),this.player.once(d.webcodecsWidthOrHeightChange,()=>{this.pause().then(()=>{this.player.debug.log("Jessibuca","webcodecs Width Or Height Change reset player and play"),this._resetPlayer({useWCS:!0}),this.play(l).then(()=>{this.player.debug.log("Jessibuca","webcodecs Width Or Height Change reset player and play success")}).catch(e=>{this.player.debug.warn("Jessibuca","webcodecs Width Or Height Change reset player and play error",e)})})}),this.player.once(d.webcodecsDecodeError,()=>{this.pause().then(()=>{this.player._opt.autoWasm&&(this.player.debug.log("Jessibuca","webcodecs decode error reset player and play"),this._resetPlayer({useWCS:!1}),this.play(l).then(()=>{this.player.debug.log("Jessibuca","webcodecs decode error reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","webcodecs decode error reset player and play error",e)}))})}),this.player.once(d.wasmDecodeError,()=>{this.player._opt.wasmDecodeErrorReplay&&this.pause().then(()=>{this.player.debug.log("Jessibuca","wasm decode error and reset player and play"),this.play(l,c).then(()=>{this.player.debug.log("Jessibuca","wasm decode error and reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","wasm decode error and reset player and play error",e)})})}),this.player.once(v.networkDelayTimeout,()=>{this.player._opt.networkDelayTimeoutReplay&&this.pause().then(()=>{this.player.debug.log("Jessibuca","network delay time out and reset player and play"),this.play(l,c).then(()=>{this.player.debug.log("Jessibuca","wasm decode error and reset player and play success")}).catch(e=>{this.player.debug.error("Jessibuca","wasm decode error and reset player and play error",e)})})}),this.player.on(v.delayTimeout,()=>{this.player._opt.heartTimeoutReplay&&(this._heartTimeoutReplayTimes{this._heartTimeoutReplayTimes=0}).catch(e=>{this.player.debug.error("Jessibuca","delay timeout replay error",e)}))}),this.player.on(v.loadingTimeout,()=>{this.player._opt.loadingTimeoutReplay&&(this._loadingTimeoutReplayTimes{this._loadingTimeoutReplayTimes=0}).catch(e=>{this.player.debug.error("Jessibuca","loading timeout replay error",e)}))}),this.hasLoaded()?this.player.play(l,c).then(()=>{e()}).catch(e=>{this.player.debug.error("Jessibuca","hasLoaded and play error",e),this.player.pause().then(()=>{t()})}):this.player.once(v.decoderWorkerInit,()=>{this.player.play(l,c).then(()=>{e()}).catch(e=>{this.player.debug.error("Jessibuca","decoderWorkerInit and play error",e),this.player.pause().then(()=>{t()})})})})}resize(){this.player&&this.player.resize()}setBufferTime(e){e=Number(e),this.player&&(10{if(!this.player)return t();this.player.playing?(this.player.startRecord(i,r),e()):t()})}stopRecordAndSave(){this.player&&this.player.recording&&this.player.stopRecordAndSave()}isPlaying(){return!!this.player&&this.player.playing}isMute(){return!this.player||!this.player.audio||this.player.audio.isMute}isRecording(){return this.player&&this.player.recorder&&this.player.recorder.recording||!1}clearBufferDelay(){this.player&&this.player.clearBufferDelay()}getDecodeType(){let e="";var t;return this.player&&((t=this.player.getOption()).useMSE&&(e+="mse "),t.useWCS&&(e+="wcs "),t.useWasm&&(e+="wasm "),t.useSIMD&&(e+="simd "),t.useOffscreen&&(e+="offscreen ")),e}getRenderType(){let e="";return e=this.player?this.player.getRenderType():e}getPlayingTimestamp(){let e=0;return e=this.player?this.player.getPlayingTimestamp():e}getStatus(){let e="destroy";return e=this.player?this.player.loading?"loading":this.player.playing?"playing":"pause":e}getPlayType(){return this.player?this.player._opt.playType:s}}window.JessibucaPro=Ut;var jt="http:"===window.location.protocol?"ws:":"wss:";let x=window.location.port;""!==x&&(x=":"+x);const Nt=window.location.hostname,_t=window.location.pathname.replace("/preview/",""),Vt=function(){var e=window.location.search,t={};if(-1!=e.indexOf("?"))for(var i=e.substr(1).split("&"),r=0;r{t+=` - - `});var jt=` -
-
- - -
- `;document.body.insertAdjacentHTML("beforeend",jt)}document.querySelector("#changeType").addEventListener("click",()=>{var e=document.querySelector("#typeSelect");e.value&&e.value!==O&&(window.location.href=Kt+"/preview/"+_t+"?type="+e.value)},!1),(jt=Qt[O])&&(window.document.title=jt+" Demo"),function e(){const t=document.querySelector(".jessibuca-pro-wrap"),i=new Ut({container:t,showBandwidth:!0,debug:"true"===Vt.debug,useVideoRender:!0,operateBtns:{fullscreen:!0,play:!0,audio:!0,close:!0},videoBuffer:.1,isNotMute:!0,watermarkConfig:{text:{content:"jessibuca-pro"},right:10,top:30}});P&&i.play(P).then(()=>{console.log("play success")}).catch(e=>{console.error("play error",e)}),i.on("close",()=>{setTimeout(()=>{e()},10)})}()}}); diff --git a/ui/vconsole.js b/ui/vconsole.js new file mode 100644 index 0000000..ae96b85 --- /dev/null +++ b/ui/vconsole.js @@ -0,0 +1,10 @@ +/*! + * vConsole v3.11.1 (https://github.com/Tencent/vConsole) + * + * Tencent is pleased to support the open source community by making vConsole available. + * Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved. + * Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at + * http://opensource.org/licenses/MIT + * 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(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("VConsole",[],n):"object"==typeof exports?exports.VConsole=n():t.VConsole=n()}(this||self,(function(){return function(){var __webpack_modules__={8406:function(t,n,e){"use strict";function o(t,n){for(var e=0;e=0?n:null}(t);return[null==n?"":";path="+n,null==e?"":";domain="+e,null==o?"":";expires="+o.toUTCString(),void 0===r||!1===r?"":";secure",null===i?"":";SameSite="+i].join("")};n.formatCookie=function(t,n,o){return[encodeURIComponent(t),"=",encodeURIComponent(n),e(o)].join("")}},6025:function(t,n,e){"use strict";var o=e(8406);Object.defineProperty(n,"eR",{enumerable:!0,get:function(){return o.CookieStorage}});var r=e(9390);var i=e(4370)},4370:function(t,n){"use strict";function e(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var e=[],o=!0,r=!1,i=void 0;try{for(var c,a=t[Symbol.iterator]();!(o=(c=a.next()).done)&&(e.push(c.value),!n||e.length!==n);o=!0);}catch(t){r=!0,i=t}finally{try{o||null==a.return||a.return()}finally{if(r)throw i}}return e}(t,n)||function(t,n){if(!t)return;if("string"==typeof t)return o(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return o(t,n)}(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Array(n);es;)if((a=l[s++])!=a)return!0}else for(;u>s;s++)if((t||s in l)&&l[s]===e)return t||s||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},4805:function(t,n,e){var o=e(2938),r=e(5044),i=e(1324),c=e(97),a=e(4822),l=[].push,u=function(t){var n=1==t,e=2==t,u=3==t,s=4==t,f=6==t,d=7==t,v=5==t||f;return function(p,h,_,g){for(var m,b,y=i(p),E=r(y),w=o(h,_,3),O=c(E.length),L=0,C=g||a,T=n?C(p,O):e||d?C(p,0):void 0;O>L;L++)if((v||L in E)&&(b=w(m=E[L],L,y),t))if(n)T[L]=b;else if(b)switch(t){case 3:return!0;case 5:return m;case 6:return L;case 2:l.call(T,m)}else switch(t){case 4:return!1;case 7:l.call(T,m)}return f?-1:u||s?s:T}};t.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},9269:function(t,n,e){var o=e(6544),r=e(3649),i=e(4061),c=r("species");t.exports=function(t){return i>=51||!o((function(){var n=[];return(n.constructor={})[c]=function(){return{foo:1}},1!==n[t](Boolean).foo}))}},4822:function(t,n,e){var o=e(794),r=e(4521),i=e(3649)("species");t.exports=function(t,n){var e;return r(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!r(e.prototype)?o(e)&&null===(e=e[i])&&(e=void 0):e=void 0),new(void 0===e?Array:e)(0===n?0:n)}},9624:function(t){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},3058:function(t,n,e){var o=e(8191),r=e(9624),i=e(3649)("toStringTag"),c="Arguments"==r(function(){return arguments}());t.exports=o?r:function(t){var n,e,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),i))?e:c?r(n):"Object"==(o=r(n))&&"function"==typeof n.callee?"Arguments":o}},3478:function(t,n,e){var o=e(4402),r=e(929),i=e(6683),c=e(4615);t.exports=function(t,n){for(var e=r(n),a=c.f,l=i.f,u=0;u=74)&&(o=c.match(/Chrome\/(\d+)/))&&(r=o[1]),t.exports=r&&+r},5690:function(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},7263:function(t,n,e){var o=e(7583),r=e(6683).f,i=e(57),c=e(1270),a=e(460),l=e(3478),u=e(4451);t.exports=function(t,n){var e,s,f,d,v,p=t.target,h=t.global,_=t.stat;if(e=h?o:_?o[p]||a(p,{}):(o[p]||{}).prototype)for(s in n){if(d=n[s],f=t.noTargetGet?(v=r(e,s))&&v.value:e[s],!u(h?s:p+(_?".":"#")+s,t.forced)&&void 0!==f){if(typeof d==typeof f)continue;l(d,f)}(t.sham||f&&f.sham)&&i(d,"sham",!0),c(e,s,d,t)}}},6544:function(t){t.exports=function(t){try{return!!t()}catch(t){return!0}}},2938:function(t,n,e){var o=e(6163);t.exports=function(t,n,e){if(o(t),void 0===n)return t;switch(e){case 0:return function(){return t.call(n)};case 1:return function(e){return t.call(n,e)};case 2:return function(e,o){return t.call(n,e,o)};case 3:return function(e,o,r){return t.call(n,e,o,r)}}return function(){return t.apply(n,arguments)}}},5897:function(t,n,e){var o=e(1287),r=e(7583),i=function(t){return"function"==typeof t?t:void 0};t.exports=function(t,n){return arguments.length<2?i(o[t])||i(r[t]):o[t]&&o[t][n]||r[t]&&r[t][n]}},7583:function(t,n,e){var o=function(t){return t&&t.Math==Math&&t};t.exports=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof e.g&&e.g)||function(){return this}()||Function("return this")()},4402:function(t,n,e){var o=e(1324),r={}.hasOwnProperty;t.exports=Object.hasOwn||function(t,n){return r.call(o(t),n)}},4639:function(t){t.exports={}},482:function(t,n,e){var o=e(5897);t.exports=o("document","documentElement")},275:function(t,n,e){var o=e(8494),r=e(6544),i=e(6668);t.exports=!o&&!r((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},5044:function(t,n,e){var o=e(6544),r=e(9624),i="".split;t.exports=o((function(){return!Object("z").propertyIsEnumerable(0)}))?function(t){return"String"==r(t)?i.call(t,""):Object(t)}:Object},9734:function(t,n,e){var o=e(1314),r=Function.toString;"function"!=typeof o.inspectSource&&(o.inspectSource=function(t){return r.call(t)}),t.exports=o.inspectSource},2743:function(t,n,e){var o,r,i,c=e(9491),a=e(7583),l=e(794),u=e(57),s=e(4402),f=e(1314),d=e(9137),v=e(4639),p="Object already initialized",h=a.WeakMap;if(c||f.state){var _=f.state||(f.state=new h),g=_.get,m=_.has,b=_.set;o=function(t,n){if(m.call(_,t))throw new TypeError(p);return n.facade=t,b.call(_,t,n),n},r=function(t){return g.call(_,t)||{}},i=function(t){return m.call(_,t)}}else{var y=d("state");v[y]=!0,o=function(t,n){if(s(t,y))throw new TypeError(p);return n.facade=t,u(t,y,n),n},r=function(t){return s(t,y)?t[y]:{}},i=function(t){return s(t,y)}}t.exports={set:o,get:r,has:i,enforce:function(t){return i(t)?r(t):o(t,{})},getterFor:function(t){return function(n){var e;if(!l(n)||(e=r(n)).type!==t)throw TypeError("Incompatible receiver, "+t+" required");return e}}}},4521:function(t,n,e){var o=e(9624);t.exports=Array.isArray||function(t){return"Array"==o(t)}},4451:function(t,n,e){var o=e(6544),r=/#|\.prototype\./,i=function(t,n){var e=a[c(t)];return e==u||e!=l&&("function"==typeof n?o(n):!!n)},c=i.normalize=function(t){return String(t).replace(r,".").toLowerCase()},a=i.data={},l=i.NATIVE="N",u=i.POLYFILL="P";t.exports=i},794:function(t){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},6268:function(t){t.exports=!1},8640:function(t,n,e){var o=e(4061),r=e(6544);t.exports=!!Object.getOwnPropertySymbols&&!r((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&o&&o<41}))},9491:function(t,n,e){var o=e(7583),r=e(9734),i=o.WeakMap;t.exports="function"==typeof i&&/native code/.test(r(i))},3590:function(t,n,e){var o,r=e(2569),i=e(8728),c=e(5690),a=e(4639),l=e(482),u=e(6668),s=e(9137),f=s("IE_PROTO"),d=function(){},v=function(t){return"