trtc-sdk-v5 5.9.0-wasm.13 → 5.9.0-wasm.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/trtc.esm.js CHANGED
@@ -1,14 +1,14 @@
1
- var Vg=Object.create;var bn=Object.defineProperty,Fg=Object.defineProperties,Oh=Object.getOwnPropertyDescriptor,Bg=Object.getOwnPropertyDescriptors,$g=Object.getOwnPropertyNames,Mh=Object.getOwnPropertySymbols,Ph=Object.getPrototypeOf,xh=Object.prototype.hasOwnProperty,Hg=Object.prototype.propertyIsEnumerable,Wg=Reflect.get;var Rn=Math.pow,Pl=(i,t,e)=>t in i?bn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,J=(i,t)=>{for(var e in t||(t={}))xh.call(t,e)&&Pl(i,e,t[e]);if(Mh)for(var e of Mh(t))Hg.call(t,e)&&Pl(i,e,t[e]);return i},pe=(i,t)=>Fg(i,Bg(t));var vn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Kr=(i,t)=>{for(var e in t)bn(i,e,{get:t[e],enumerable:!0})},Gg=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $g(t))!xh.call(i,o)&&o!==e&&bn(i,o,{get:()=>t[o],enumerable:!(r=Oh(t,o))||r.enumerable});return i};var Ci=(i,t,e)=>(e=i!=null?Vg(Ph(i)):{},Gg(t||!i||!i.__esModule?bn(e,"default",{value:i,enumerable:!0}):e,i));var G=(i,t,e,r)=>{for(var o=r>1?void 0:r?Oh(t,e):t,s=i.length-1,a;s>=0;s--)(a=i[s])&&(o=(r?a(t,e,o):a(o))||o);return r&&o&&bn(t,e,o),o};var l=(i,t,e)=>Pl(i,typeof t!="symbol"?t+"":t,e);var Lt=(i,t,e)=>Wg(Ph(i),e,t);var A=(i,t,e)=>new Promise((r,o)=>{var s=h=>{try{d(e.next(h))}catch(m){o(m)}},a=h=>{try{d(e.throw(h))}catch(m){o(m)}},d=h=>h.done?r(h.value):Promise.resolve(h.value).then(s,a);d((e=e.apply(i,t)).next())});var ki=vn((Hy,mm)=>{"use strict";var JE=Object.prototype.hasOwnProperty,Ut="~";function ra(){}Object.create&&(ra.prototype=Object.create(null),new ra().__proto__||(Ut=!1));function zE(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function lf(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new zE(e,r||i,o),a=Ut?Ut+t:t;return i._events[a]?i._events[a].fn?i._events[a]=[i._events[a],s]:i._events[a].push(s):(i._events[a]=s,i._eventsCount++),i}function md(i,t){--i._eventsCount===0?i._events=new ra:delete i._events[t]}function Rt(){this._events=new ra,this._eventsCount=0}Rt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)JE.call(e,r)&&t.push(Ut?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Rt.prototype.listeners=function(t){var e=Ut?Ut+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,a=new Array(s);o<s;o++)a[o]=r[o].fn;return a};Rt.prototype.listenerCount=function(t){var e=Ut?Ut+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Rt.prototype.emit=function(t,e,r,o,s,a){var d=Ut?Ut+t:t;if(!this._events[d])return!1;var h=this._events[d],m=arguments.length,T,I;if(h.fn){switch(h.once&&this.removeListener(t,h.fn,void 0,!0),m){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,e),!0;case 3:return h.fn.call(h.context,e,r),!0;case 4:return h.fn.call(h.context,e,r,o),!0;case 5:return h.fn.call(h.context,e,r,o,s),!0;case 6:return h.fn.call(h.context,e,r,o,s,a),!0}for(I=1,T=new Array(m-1);I<m;I++)T[I-1]=arguments[I];h.fn.apply(h.context,T)}else{var v=h.length,N;for(I=0;I<v;I++)switch(h[I].once&&this.removeListener(t,h[I].fn,void 0,!0),m){case 1:h[I].fn.call(h[I].context);break;case 2:h[I].fn.call(h[I].context,e);break;case 3:h[I].fn.call(h[I].context,e,r);break;case 4:h[I].fn.call(h[I].context,e,r,o);break;default:if(!T)for(N=1,T=new Array(m-1);N<m;N++)T[N-1]=arguments[N];h[I].fn.apply(h[I].context,T)}}return!0};Rt.prototype.on=function(t,e,r){return lf(this,t,e,r,!1)};Rt.prototype.once=function(t,e,r){return lf(this,t,e,r,!0)};Rt.prototype.removeListener=function(t,e,r,o){var s=Ut?Ut+t:t;if(!this._events[s])return this;if(!e)return md(this,s),this;var a=this._events[s];if(a.fn)a.fn===e&&(!o||a.once)&&(!r||a.context===r)&&md(this,s);else{for(var d=0,h=[],m=a.length;d<m;d++)(a[d].fn!==e||o&&!a[d].once||r&&a[d].context!==r)&&h.push(a[d]);h.length?this._events[s]=h.length===1?h[0]:h:md(this,s)}return this};Rt.prototype.removeAllListeners=function(t){var e;return t?(e=Ut?Ut+t:t,this._events[e]&&md(this,e)):(this._events=new ra,this._eventsCount=0),this};Rt.prototype.off=Rt.prototype.removeListener;Rt.prototype.addListener=Rt.prototype.on;Rt.prefixed=Ut;Rt.EventEmitter=Rt;typeof mm!="undefined"&&(mm.exports=Rt)});var Cm=vn((IA,bf)=>{"use strict";var Af=bf.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(Af).forEach(function(i){var t=Af[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Cf=vn(ui=>{"use strict";var Ds=function(i){return String(Number(i))===i?Number(i):i},rT=function(i,t,e,r){if(r&&!e)t[r]=Ds(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=Ds(i[o+1]))},iT=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;rT(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},Rf=Cm(),oT=RegExp.prototype.test.bind(/^([a-z])=(.*)/);ui.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(oT).forEach(function(o){var s=o[0],a=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var d=0;d<(Rf[s]||[]).length;d+=1){var h=Rf[s][d];if(h.reg.test(a))return iT(h,r,a)}}),t.media=e,t};var vf=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=Ds(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};ui.parseParams=function(i){return i.split(/;\s?/).reduce(vf,{})};ui.parseFmtpConfig=ui.parseParams;ui.parsePayloads=function(i){return i.toString().split(" ").map(Number)};ui.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(Ds),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};ui.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(vf,{})})};ui.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=Ds(e):(r=Ds(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var Nf=vn((yA,Df)=>{"use strict";var Dm=Cm(),sT=/%[sdv%]/g,nT=function(i){var t=1,e=arguments,r=e.length;return i.replace(sT,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},ca=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var a=t.names[s];t.name?o.push(e[t.name][a]):o.push(e[t.names[s]])}else o.push(e[t.name]);return nT.apply(null,o)},aT=["v","o","s","i","u","e","p","c","b","t","r","z","a"],cT=["i","c","b","a"];Df.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||aT,r=t.innerOrder||cT,o=[];return e.forEach(function(s){Dm[s].forEach(function(a){a.name in i&&i[a.name]!=null?o.push(ca(s,a,i)):a.push in i&&i[a.push]!=null&&i[a.push].forEach(function(d){o.push(ca(s,a,d))})})}),i.media.forEach(function(s){o.push(ca("m",Dm.m[0],s)),r.forEach(function(a){Dm[a].forEach(function(d){d.name in s&&s[d.name]!=null?o.push(ca(a,d,s)):d.push in s&&s[d.push]!=null&&s[d.push].forEach(function(h){o.push(ca(a,d,h))})})})}),o.join(`\r
1
+ var Fg=Object.create;var bn=Object.defineProperty,Bg=Object.defineProperties,Ph=Object.getOwnPropertyDescriptor,$g=Object.getOwnPropertyDescriptors,Hg=Object.getOwnPropertyNames,Oh=Object.getOwnPropertySymbols,xh=Object.getPrototypeOf,kh=Object.prototype.hasOwnProperty,Wg=Object.prototype.propertyIsEnumerable,Gg=Reflect.get;var Rn=Math.pow,Pl=(i,t,e)=>t in i?bn(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,J=(i,t)=>{for(var e in t||(t={}))kh.call(t,e)&&Pl(i,e,t[e]);if(Oh)for(var e of Oh(t))Wg.call(t,e)&&Pl(i,e,t[e]);return i},pe=(i,t)=>Bg(i,$g(t));var vn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Kr=(i,t)=>{for(var e in t)bn(i,e,{get:t[e],enumerable:!0})},jg=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Hg(t))!kh.call(i,o)&&o!==e&&bn(i,o,{get:()=>t[o],enumerable:!(r=Ph(t,o))||r.enumerable});return i};var Di=(i,t,e)=>(e=i!=null?Fg(xh(i)):{},jg(t||!i||!i.__esModule?bn(e,"default",{value:i,enumerable:!0}):e,i));var G=(i,t,e,r)=>{for(var o=r>1?void 0:r?Ph(t,e):t,s=i.length-1,a;s>=0;s--)(a=i[s])&&(o=(r?a(t,e,o):a(o))||o);return r&&o&&bn(t,e,o),o};var l=(i,t,e)=>Pl(i,typeof t!="symbol"?t+"":t,e);var Lt=(i,t,e)=>Gg(xh(i),e,t);var A=(i,t,e)=>new Promise((r,o)=>{var s=h=>{try{d(e.next(h))}catch(m){o(m)}},a=h=>{try{d(e.throw(h))}catch(m){o(m)}},d=h=>h.done?r(h.value):Promise.resolve(h.value).then(s,a);d((e=e.apply(i,t)).next())});var Li=vn((Wy,mm)=>{"use strict";var zE=Object.prototype.hasOwnProperty,Ut="~";function ra(){}Object.create&&(ra.prototype=Object.create(null),new ra().__proto__||(Ut=!1));function XE(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function mf(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new XE(e,r||i,o),a=Ut?Ut+t:t;return i._events[a]?i._events[a].fn?i._events[a]=[i._events[a],s]:i._events[a].push(s):(i._events[a]=s,i._eventsCount++),i}function md(i,t){--i._eventsCount===0?i._events=new ra:delete i._events[t]}function Rt(){this._events=new ra,this._eventsCount=0}Rt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)zE.call(e,r)&&t.push(Ut?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Rt.prototype.listeners=function(t){var e=Ut?Ut+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,a=new Array(s);o<s;o++)a[o]=r[o].fn;return a};Rt.prototype.listenerCount=function(t){var e=Ut?Ut+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Rt.prototype.emit=function(t,e,r,o,s,a){var d=Ut?Ut+t:t;if(!this._events[d])return!1;var h=this._events[d],m=arguments.length,T,I;if(h.fn){switch(h.once&&this.removeListener(t,h.fn,void 0,!0),m){case 1:return h.fn.call(h.context),!0;case 2:return h.fn.call(h.context,e),!0;case 3:return h.fn.call(h.context,e,r),!0;case 4:return h.fn.call(h.context,e,r,o),!0;case 5:return h.fn.call(h.context,e,r,o,s),!0;case 6:return h.fn.call(h.context,e,r,o,s,a),!0}for(I=1,T=new Array(m-1);I<m;I++)T[I-1]=arguments[I];h.fn.apply(h.context,T)}else{var v=h.length,N;for(I=0;I<v;I++)switch(h[I].once&&this.removeListener(t,h[I].fn,void 0,!0),m){case 1:h[I].fn.call(h[I].context);break;case 2:h[I].fn.call(h[I].context,e);break;case 3:h[I].fn.call(h[I].context,e,r);break;case 4:h[I].fn.call(h[I].context,e,r,o);break;default:if(!T)for(N=1,T=new Array(m-1);N<m;N++)T[N-1]=arguments[N];h[I].fn.apply(h[I].context,T)}}return!0};Rt.prototype.on=function(t,e,r){return mf(this,t,e,r,!1)};Rt.prototype.once=function(t,e,r){return mf(this,t,e,r,!0)};Rt.prototype.removeListener=function(t,e,r,o){var s=Ut?Ut+t:t;if(!this._events[s])return this;if(!e)return md(this,s),this;var a=this._events[s];if(a.fn)a.fn===e&&(!o||a.once)&&(!r||a.context===r)&&md(this,s);else{for(var d=0,h=[],m=a.length;d<m;d++)(a[d].fn!==e||o&&!a[d].once||r&&a[d].context!==r)&&h.push(a[d]);h.length?this._events[s]=h.length===1?h[0]:h:md(this,s)}return this};Rt.prototype.removeAllListeners=function(t){var e;return t?(e=Ut?Ut+t:t,this._events[e]&&md(this,e)):(this._events=new ra,this._eventsCount=0),this};Rt.prototype.off=Rt.prototype.removeListener;Rt.prototype.addListener=Rt.prototype.on;Rt.prefixed=Ut;Rt.EventEmitter=Rt;typeof mm!="undefined"&&(mm.exports=Rt)});var Cm=vn((SA,Rf)=>{"use strict";var bf=Rf.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(i){return i.encoding?"rtpmap:%d %s/%s/%s":i.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(i){return i.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(i){return i.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(i){return"extmap:%d"+(i.direction?"/%s":"%v")+(i["encrypt-uri"]?" %s":"%v")+" %s"+(i.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(i){return i.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(i){var t="candidate:%s %d %s %d %s %d typ %s";return t+=i.raddr!=null?" raddr %s rport %d":"%v%v",t+=i.tcptype!=null?" tcptype %s":"%v",i.generation!=null&&(t+=" generation %d"),t+=i["network-id"]!=null?" network-id %d":"%v",t+=i["network-cost"]!=null?" network-cost %d":"%v",t}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(i){var t="ssrc:%d";return i.attribute!=null&&(t+=" %s",i.value!=null&&(t+=":%s")),t}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(i){return i.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(i){return i.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(i){return"imageattr:%s %s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(i){return"simulcast:%s %s"+(i.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(i){return"ts-refclk:%s"+(i.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(i){var t="mediaclk:";return t+=i.id!=null?"id=%s %s":"%v%s",t+=i.mediaClockValue!=null?"=%s":"",t+=i.rateNumerator!=null?" rate=%s":"",t+=i.rateDenominator!=null?"/%s":"",t}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(bf).forEach(function(i){var t=bf[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Df=vn(ui=>{"use strict";var Ns=function(i){return String(Number(i))===i?Number(i):i},iT=function(i,t,e,r){if(r&&!e)t[r]=Ns(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=Ns(i[o+1]))},oT=function(i,t,e){var r=i.name&&i.names;i.push&&!t[i.push]?t[i.push]=[]:r&&!t[i.name]&&(t[i.name]={});var o=i.push?{}:r?t[i.name]:t;iT(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},vf=Cm(),sT=RegExp.prototype.test.bind(/^([a-z])=(.*)/);ui.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(sT).forEach(function(o){var s=o[0],a=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var d=0;d<(vf[s]||[]).length;d+=1){var h=vf[s][d];if(h.reg.test(a))return oT(h,r,a)}}),t.media=e,t};var Cf=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=Ns(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};ui.parseParams=function(i){return i.split(/;\s?/).reduce(Cf,{})};ui.parseFmtpConfig=ui.parseParams;ui.parsePayloads=function(i){return i.toString().split(" ").map(Number)};ui.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(Ns),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};ui.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(Cf,{})})};ui.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=Ns(e):(r=Ns(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var wf=vn((AA,Nf)=>{"use strict";var Dm=Cm(),nT=/%[sdv%]/g,aT=function(i){var t=1,e=arguments,r=e.length;return i.replace(nT,function(o){if(t>=r)return o;var s=e[t];switch(t+=1,o){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},ca=function(i,t,e){var r=t.format instanceof Function?t.format(t.push?e:e[t.name]):t.format,o=[i+"="+r];if(t.names)for(var s=0;s<t.names.length;s+=1){var a=t.names[s];t.name?o.push(e[t.name][a]):o.push(e[t.names[s]])}else o.push(e[t.name]);return aT.apply(null,o)},cT=["v","o","s","i","u","e","p","c","b","t","r","z","a"],dT=["i","c","b","a"];Nf.exports=function(i,t){t=t||{},i.version==null&&(i.version=0),i.name==null&&(i.name=" "),i.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var e=t.outerOrder||cT,r=t.innerOrder||dT,o=[];return e.forEach(function(s){Dm[s].forEach(function(a){a.name in i&&i[a.name]!=null?o.push(ca(s,a,i)):a.push in i&&i[a.push]!=null&&i[a.push].forEach(function(d){o.push(ca(s,a,d))})})}),i.media.forEach(function(s){o.push(ca("m",Dm.m[0],s)),r.forEach(function(a){Dm[a].forEach(function(d){d.name in s&&s[d.name]!=null?o.push(ca(a,d,s)):d.push in s&&s[d.push]!=null&&s[d.push].forEach(function(h){o.push(ca(a,d,h))})})})}),o.join(`\r
2
2
  `)+`\r
3
- `}});var wf=vn(li=>{"use strict";var So=Cf(),dT=Nf();li.write=dT;li.parse=So.parse;li.parseParams=So.parseParams;li.parseFmtpConfig=So.parseFmtpConfig;li.parsePayloads=So.parsePayloads;li.parseRemoteCandidates=So.parseRemoteCandidates;li.parseImageAttributes=So.parseImageAttributes;li.parseSimulcastStreamList=So.parseSimulcastStreamList});var kh=(x=>(x[x.INVALID_PARAMETER=4096]="INVALID_PARAMETER",x[x.INVALID_OPERATION=4097]="INVALID_OPERATION",x[x.NOT_SUPPORTED=4098]="NOT_SUPPORTED",x[x.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",x[x.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",x[x.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",x[x.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",x[x.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",x[x.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",x[x.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",x[x.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",x[x.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",x[x.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",x[x.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",x[x.CLIENT_BANNED=16448]="CLIENT_BANNED",x[x.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",x[x.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",x[x.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",x[x.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",x[x.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",x[x.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",x[x.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",x[x.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",x[x.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",x[x.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",x[x.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",x[x.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",x[x.API_CALL_ABORTED=16461]="API_CALL_ABORTED",x[x.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",x[x.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",x[x.UNKNOWN=65535]="UNKNOWN",x))(kh||{}),Y=kh;var jg=function(i){for(let t in Y)if(Y[t]===i)return t;return"UNKNOWN"},xl=class extends Error{constructor({name:e="RtcError",message:r,code:o=Y.UNKNOWN,extraCode:s=0,constraint:a}){let d=`<${jg(o)} 0x${o.toString(16)}>`,h=`${r}${a?` constraint: ${a}`:""}${r!=null&&r.includes(d)?"":` ${d}`}`;super(h);l(this,"code");l(this,"extraCode");l(this,"message");l(this,"originMessage");l(this,"name");l(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=h,this.constraint=a,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},ue=xl;var Sy=new Date().getTime(),qg=0;var Cn=function(){return new Date().getTime()+qg},Mc=function(){let i=new Date;return i.setTime(Cn()),i.toLocaleString()};var Pr={};Kr(Pr,{bytes2ms:()=>jh,convertObjectNumberToInt:()=>Fn,copyProperties:()=>Gh,deepClone:()=>lo,deepMerge:()=>Or,delay:()=>Bn,fibonacci:()=>mo,formatedTime:()=>Gc,getConstructorName:()=>Un,getContainerFromElement:()=>Kh,getEnv:()=>$h,getInternalVersion:()=>Yh,getLoggerUrl:()=>ii,getMuteStateFromFlag:()=>Vn,getNetworkType:()=>kn,getNumNetworkType:()=>$c,getReconnectionTimeout:()=>Jh,getStringByteLength:()=>ef,getTurnServer:()=>Zh,getUint32Version:()=>Jc,getValueType:()=>ut,getViewListFromView:()=>ls,glog:()=>Ln,ipv4ToUint32:()=>us,isArray:()=>it,isAudioWorkletSupported:()=>Qh,isBoolean:()=>nt,isConstructor:()=>ds,isEmpty:()=>Wc,isFunction:()=>Fe,isLangChinese:()=>hr,isMediaStreamTrack:()=>zh,isNumber:()=>$e,isObject:()=>rr,isOverseaSdkAppId:()=>xn,isPlainObject:()=>Bt,isPortrait:()=>qc,isPromise:()=>Ni,isRemoteTrack:()=>Xh,isString:()=>Se,isUndefined:()=>L,loadImage:()=>ms,ms2bytes:()=>qh,ms2samples:()=>zl,performanceNow:()=>ge,promiseAny:()=>Hc,samples2ms:()=>Jl,setNetworkType:()=>Wh,stringify:()=>ir,stringifyIncludeValue:()=>jc,throttlePromise:()=>zc});var ql={};Kr(ql,{AUDIO_MUTE_BIT:()=>Uc,AUDIO_STAT_BIT:()=>ns,AUX_STAT_BIT:()=>wn,AUX_STREAM_MSID:()=>oE,BACKEND_ENV:()=>Lc,BASE_DOC_URL:()=>Nr,BASE_HOST:()=>Lh,CAPABILITIES_KEYS:()=>Bc,CLASS_NAME:()=>DE,CLOUD_CONSOLE_URL:()=>Qg,CROSS_ROOM_BIT:()=>rE,DATA_FREEZE_TIMING:()=>Fc,DEFAULT_ASSETS_URL:()=>Oc,DOC_URL:()=>Yg,DTLS_STATE_UNKNOWN:()=>hE,ENV_NAME:()=>ei,EXCHANGE_SDP_TIMEOUT:()=>IE,INTERVAL:()=>uo,IS_WORKER:()=>os,IS_WORKLET:()=>Dn,KIBANA_EVENT:()=>ti,LOCAL_STREAM_PUBLISH_STATE:()=>Vh,LOGGER_CMD_TYPE:()=>Di,LOGGER_DOMAIN:()=>Ul,LOGGER_DOMAIN_OVERSEA:()=>Vl,LOG_LEVEL:()=>pr,LOG_LEVEL_NAME:()=>wE,MAIN_STREAM_MSID:()=>iE,MAX_RTT:()=>On,MICROPHONE_COMMUNICATIONS:()=>NE,MICROPHONE_DEFAULT:()=>co,MUTE_ALL_BIT:()=>tE,NAME:()=>D,NETWORK_TYPE:()=>ao,NOT_SUPPORTED_H264:()=>yE,PAUSED_RETRY_COUNT:()=>Wl,PEERCONNECTION_CONNECTING_TIMEOUT:()=>vE,PEER_CONNECTION_STATE:()=>fE,PEER_LEAVE_REASON:()=>Fh,RAF:()=>jl,RECOVER_CAPTURE_INTERVAL:()=>as,REMOTE_STREAM_TYPE_AUX:()=>nE,REMOTE_STREAM_TYPE_MAIN:()=>sE,RENDER_FREEZE_TIMING:()=>AE,RIC:()=>Gl,SCHEDULE_DOMAIN:()=>ri,SCHEDULE_TIMEOUT:()=>CE,SDP_SEMANTICS_PLAN_B:()=>SE,SDP_SEMANTICS_UNIFIED_PLAN:()=>Hl,SECOND_HOST:()=>zg,SIGNAL_PING_PONG_INTERVAL:()=>Kg,SIGNAL_PING_TIMEOUT:()=>Zg,SIGNAL_RECONNECTION_COUNT:()=>gE,SMALL_STAT_BIT:()=>Bl,SPEAKER_DEFAULT:()=>Mn,STORAGE_EXPIRES_TIME:()=>Pc,STREAM_TYPE_BIG:()=>bE,STREAM_TYPE_SMALL:()=>RE,SUBSCRIBE_SMALL_RETRY_COUNT:()=>ME,SYNC_USER_LIST_INTERVAL:()=>EE,Scene:()=>Mr,THIRD_HOST:()=>Xg,TIMEOUT:()=>cs,TRANSPORT_DIRECTION:()=>eE,TRTC_ERROR_ASSISTANCE:()=>Fl,TRTC_QUALITY_BAD:()=>lE,TRTC_QUALITY_DISCONNECTED:()=>pE,TRTC_QUALITY_EXCELLENT:()=>cE,TRTC_QUALITY_GOOD:()=>dE,TRTC_QUALITY_POOR:()=>uE,TRTC_QUALITY_UNKNOWN:()=>aE,TRTC_QUALITY_VERY_BAD:()=>mE,UPDATE_OFFER_TIMEOUT:()=>TE,VIDEO_MUTE_BIT:()=>Vc,VIDEO_STAT_BIT:()=>ss,audioProfileMap:()=>xc,getRetryCount:()=>_E,getScriptDir:()=>Jg,innerVersion:()=>kl,loggerProxy:()=>Nn,screenProfileMap:()=>kc,setLoggerProxy:()=>no,setRetryCount:()=>$l,setVersion:()=>Ll,version:()=>Ke,videoProfileMap:()=>wr});var kl="4.15.00.1600",Ke="5.0.0";function Ll(i){Ke=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));kl=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var os=typeof importScripts!="undefined",Dn=typeof registerProcessor!="undefined",Jg=()=>{let i=os?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Nn="",no=i=>Nn=i,Lh="web.sdk.qcloud.com",zg="web.sdk.tencent.cn",Xg="web.sdk.cloud.tencent.cn",Qg="https://console.cloud.tencent.com/trtc",Nr=`https://${Lh}/trtc/webrtc/v5/doc`,Oc="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/",Yg=`${Nr}/zh-cn/`,Ul="https://yun.tim.qq.com",Vl="https://apisgp.my-imcloud.com",Fl="trtc_error_assistance",Di={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ei={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},pr=(a=>(a[a.TRACE=0]="TRACE",a[a.DEBUG=1]="DEBUG",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.NONE=5]="NONE",a))(pr||{}),Zg=18e3,Kg=2e3,ao={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Pc=7*24*3600*1e3,xc={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},wr={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},kc={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},D={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture"},eE={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Lc={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Mr=(e=>(e.LIVE="live",e.RTC="rtc",e))(Mr||{}),ss=1,Bl=2,wn=4,ns=8,Uc=64,Vc=16,tE=112,rE=128,iE="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",oE="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",sE=D.MAIN,nE=D.AUXILIARY,aE=0,cE=1,dE=2,uE=3,lE=4,mE=5,pE=6,hE="unknown",fE={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Uh=1/0;function $l(i){Uh=i}function _E(){return Uh}var gE=30,ti={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry"},EE=1e4,TE=1e4,IE=1e4,Hl="unified-plan",SE="plan-b",yE=1028,Vh=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Vh||{}),Fc=500,AE=1e3,bE=D.BIG,RE=D.SMALL,vE=10*1e3,ri={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},CE=2e3,DE={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Wl=5,co="default",Mn=co,NE="communications",wE=Object.keys(pr),Fh=["normal leave","timeout leave","kick","role change"],ME=10,as=2e3,Gl="ric",jl="raf",uo="interval",cs="timeout",Bc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],On=10*1e3;var $h=function(){return new URLSearchParams(location.search).get("trtc_env")||""},xn=i=>Number(i)<14e8,ii=function(i,t){let e;Nn?e=Nn:e=xn(i)?Vl:Ul;let r=Math.floor(Math.random()*Rn(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Pn="unknown";function kn(){if(Pn!=="unknown")return Pn;let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r&&(Pn=Hh(r,o)),Pn}function Hh(i,t){if(ao[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Wh(i){Pn=Hh(i)}function $c(){return ao[kn()]}function Gh(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function jh(i,t=48e3){return Jl(i/4,t)}function Jl(i,t=48e3){return i*1e3/t}function qh(i,t=48e3){return zl(i,t)*4}function zl(i,t=48e3){return i*t/1e3}var Ln=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},hr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Bt=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function mo(i,t=1,e=1){return i<=1?e:mo(i-1,e,t+e)}function Jh(i){return i>8?30*1e3:mo(i)*1e3}function ut(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Fe=i=>typeof i=="function",L=i=>typeof i=="undefined",Se=i=>typeof i=="string",$e=i=>typeof i=="number",nt=i=>typeof i=="boolean",rr=i=>ut(i)==="object",it=i=>ut(i)==="array",zh=i=>ut(i)==="MediaStreamTrack".toLowerCase(),Xh=i=>i.isRemote,Ni=i=>ut(i)==="promise",ds=i=>Fe(i)&&i.prototype.constructor===i,Un=i=>ds(i)?i.prototype.constructor.name:"",Qh=typeof AudioWorkletNode!="undefined";function Hc(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function ge(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Bh=i=>+i<10?`0${i}`:i,Yh=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Bh(e[1])+Bh(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},OE=Object.prototype.hasOwnProperty,{toString:vy}=Object.prototype;function Wc(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Bt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(OE.call(i,t))return!1;return!0}}return!1}function Vn(i,t){return{userId:t,hasAudio:!!(i&ns),hasVideo:!!(i&ss),hasAuxiliary:!!(i&wn),hasSmall:!!(i&Bl),audioMuted:!!(i&Uc),videoMuted:!!(i&Vc),audioAvailable:!!(i&ns)&&!(i&Uc),videoAvailable:!!(i&ss)&&!(i&Vc)}}function Zh(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!L(i.username)&&!L(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",L(i.credentialType)||(t.credentialType=i.credentialType)),t}function us(i,t=!0){if(!Se(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var Or=function(i,t,e,r){if(!(rr(i)&&rr(t)))return 0;let o=0,s=Object.keys(t),a;for(let d=0,h=s.length;d<h;d++)if(a=s[d],!(L(t[a])||e&&e.includes(a)))if(rr(i[a])&&rr(t[a]))o+=Or(i[a],t[a],e,r);else{if(r&&r.includes(t[a]))continue;i[a]!==t[a]&&(i[a]=lo(t[a]),o+=1)}return o};function lo(i){if(it(i)){let t=[];return i.forEach((e,r)=>{t[r]=lo(e)}),t}if(rr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=lo(i[e])}),t}return i}var ls=i=>{let t=[];if(it(i))t=[...i];else if(Se(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},Kh=i=>Se(i)?document.getElementById(i):i,PE=i=>{let t=h=>h<10?`0${h}`:`${h}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),a=t(i.getMinutes()),d=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${a}:${d}`},Gc=()=>PE(new Date);function ir(i,{keysToInclude:t,keysToExclude:e}){try{if(it(i))return`[${i.map(a=>ir(a,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Bt(i)||!it(t)&&!it(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(a=>{(s.size===0&&o.has(a)||o.size===0&&!s.has(a))&&(r[a]=Bt(i[a])||it(i[a])?JSON.parse(ir(i[a],{keysToExclude:e,keysToInclude:t})):i[a])}),JSON.stringify(r)}catch(r){return"{}"}}function jc(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),ir(i,{keysToInclude:e})}function ef(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var qc=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},ms=i=>A(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Se(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new ue({code:Y.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Jc=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Fn=i=>(Object.keys(i).forEach(t=>{$e(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Bt(i[t])||it(i[t]))&&Fn(i[t])}),i);function Bn(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function zc(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function oi({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,a)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(h=>h.text()).then(h=>{try{s({data:JSON.parse(h)})}catch(m){s({data:h})}},a);let d=new XMLHttpRequest;d.onreadystatechange=()=>{if(d.readyState===4)if(d.status>=200&&d.status<300)try{let h=JSON.parse(d.response);s({data:h})}catch(h){s({data:d.response})}else a({status:d.status,statusText:d.statusText||"request failed!"})},d.timeout=r||5e3,d.open(e,i,!0),d.send(t)})}function Xl(i){return A(this,null,function*(){let t=ge(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),d=yield(yield(yield new Response(o)).blob()).arrayBuffer();return U.debug(`compressJSON ${e.length} -> ${d.byteLength} ${ge()-t}ms`),d}catch(r){return e}})}var xE=Object.prototype.hasOwnProperty;var wi=i=>typeof i=="function",tf=i=>typeof i=="undefined";var rf=i=>typeof i=="boolean";var Ql=i=>i.isRemote;var kE=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function of(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(kE(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(xE.call(i,t))return!1;return!0}}return!1}var LE=0,UE=1,sf=2;function VE({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:a}){return function(...d){let{retries:h=5,timeout:m=1e3}=t,T=0,I=-1,v=LE,N=(j,H)=>A(this,null,function*(){let z=a||this;try{let Te=yield i.apply(z,d);T>0&&s&&s.call(this,T),T=0,j(Te)}catch(Te){let Pe=()=>{clearTimeout(I),T=0,v=sf,H(Te)},Xe=()=>{v!==sf&&T<(wi(h)?h():h)?(T++,v=UE,wi(r)&&r.call(this,T,Pe),I=window.setTimeout(()=>{I=-1,N(j,H)},wi(m)?m(T):m)):(Pe(),wi(o)&&o.call(this,Te))};wi(e)?e.call(this,{error:Te,retry:Xe,reject:H,retryFuncArgs:d,retriedCount:T}):Xe()}});return new Promise(N)}}var Mi=VE;var ps=class{constructor(t){l(this,"userId");l(this,"remoteUserId");l(this,"id");l(this,"sdkAppId");l(this,"type");l(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=rf(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}createChild(t){return Object.setPrototypeOf(t,this)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId;e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${this.id}${r?`|${r}`:""}]`),U.log(t,e,tf(this.userId)||of(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var bs={};Kr(bs,{ANDROID_VERSION:()=>Kl,CHROME_MAJOR_VERSION:()=>si,CHROME_VERSION:()=>ld,EDGE_VERSION:()=>Qc,EDG_MAJOR_VERSION:()=>tm,EDG_VERSION:()=>Yc,FIREFOX_MAJOR_VERSION:()=>em,FIREFOX_VERSION:()=>Xc,HUAWEI_VERSION:()=>ad,IE_VERSION:()=>WE,IOS_MAIN_VERSION:()=>Yt,IOS_VERSION:()=>xi,IPADQQB_VERSION:()=>sd,IS_ANDROID:()=>pt,IS_ANDROID_WEBVIEW:()=>am,IS_ANY_SAFARI:()=>Oi,IS_CHROME:()=>ys,IS_CHROME_OS:()=>rm,IS_CHROMIUM_BASE:()=>fo,IS_EDG:()=>_s,IS_EDGE:()=>fs,IS_ELECTRON:()=>jE,IS_FIREFOX:()=>_r,IS_HEADLESS_CHROME:()=>nm,IS_HONOR:()=>sm,IS_HUAWEI:()=>om,IS_HUAWEIBROWSER:()=>Qn,IS_IE:()=>df,IS_IE8:()=>HE,IS_IOS:()=>bt,IS_IOS_13_OR_14:()=>dm,IS_IOS_15_1:()=>cm,IS_IPAD:()=>$n,IS_IPADQQB:()=>Jn,IS_IPAD_PRO:()=>Zl,IS_IPHONE:()=>po,IS_IPOD:()=>cf,IS_LINUX:()=>zn,IS_LOCAL:()=>Tr,IS_MAC:()=>Er,IS_MACQQB:()=>qn,IS_MIBROWSER:()=>Xn,IS_MQQB:()=>Ts,IS_NATIVE_ANDROID:()=>$E,IS_OLD_ANDROID:()=>BE,IS_OPPOBROWSER:()=>Is,IS_SAFARI:()=>$t,IS_SAFARI_15_1:()=>qE,IS_SAMSUNGBROWSER:()=>Yn,IS_SOGOU:()=>Wn,IS_SOGOUM:()=>Hn,IS_TBS:()=>gr,IS_UCBROWSER:()=>im,IS_VIVOBROWSER:()=>Ss,IS_WECHAT:()=>gs,IS_WIN:()=>ho,IS_WQQB:()=>jn,IS_WX:()=>GE,IS_X5MQQB:()=>Es,IS_XWEB:()=>Gn,MACQQB_VERSION:()=>od,MI_VERSION:()=>nd,MQQB_VERSION:()=>hs,OPPO_VERSION:()=>dd,SAFARI_VERSION:()=>Pi,SAMSUNG_VERSION:()=>cd,SOGOUM_VERSION:()=>Zc,SOGOU_VERSION:()=>Kc,TBS_VERSION:()=>ed,UA_DATA_STRING:()=>fr,USER_AGENT:()=>Qt,VIVO_VERSION:()=>ud,WECHAT_VERSION:()=>rd,WQQB_VERSION:()=>id,XWEB_VERSION:()=>td,browserInfo:()=>xr,getBrowserInfo:()=>uf,getChromeMajorVersion:()=>Zn,getDeviceModel:()=>ea,getOSName:()=>As,getOSNumber:()=>ta,getOSString:()=>_o,getOSType:()=>lm,getTerminalType:()=>um,getUserAgentData:()=>Kn,isLocalStorageEnabled:()=>ni});var Qt=typeof navigator=="undefined"?"":navigator.userAgent,Ee=i=>new RegExp(i,"i").test(Qt),mt=i=>{if(Ee(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=Qt.match(t);if(e&&e[1])return e[1]}return""},Yl=i=>{if(Ee(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=Qt.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},nf=/AppleWebKit\/([\d.]+)/i.exec(Qt),FE=nf?parseFloat(nf[1]):NaN,$n=Ee("iPad"),Zl=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Ee("Macintosh"),po=Ee("iPhone")&&!$n,cf=Ee("iPod"),bt=po||$n||cf||Zl,pt=Ee("Android"),Kl=function(){if(pt){let i=Qt.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),BE=pt&&Ee("webkit")&&Kl<2.3,$E=pt&&Kl<5&&FE<537,_r=Ee("Firefox"),Xc=mt("Firefox"),em=Yl("Firefox"),fs=Ee("Edge"),Qc=mt("Edge"),_s=Ee("Edg"),Yc=mt("Edg"),tm=Yl("Edg"),Hn=Ee("SogouMobileBrowser"),Zc=mt("SogouMobileBrowser"),Wn=Ee("MetaSr\\s"),Kc=mt("MetaSr\\s"),gr=Ee("TBS"),ed=mt("TBS"),Gn=Ee("XWEB"),td=mt("XWEB"),HE=Ee("MSIE\\s8\\.0"),df=Ee("MSIE\\/\\d+"),WE=function(){if(df){let i=/MSIE\s(\d+)\.\d/.exec(Qt),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(Qt)&&/rv:11.0/.test(Qt)&&(t=11),t}return NaN}(),gs=Ee("(micromessenger|webbrowser)"),rd=mt("MicroMessenger"),Es=!gr&&Ee("MQQBrowser")&&Ee("COVC"),Ts=!gr&&Ee("MQQBrowser")&&!Ee("COVC"),hs=Ts||Es?mt("MQQBrowser"):"",jn=!gr&&Ee(" QQBrowser"),id=mt(" QQBrowser"),qn=!gr&&Ee("QQBrowserLite"),od=mt("QQBrowserLite"),Jn=!gr&&Ee("MQBHD"),sd=mt("MQBHD"),ho=Ee("Windows"),Er=!bt&&Ee("MAC OS X"),zn=!pt&&Ee("Linux"),rm=Ee("CrOS"),GE=Ee("MicroMessenger"),im=Ee("UCBrowser"),jE=Ee("Electron"),Xn=Ee("MiuiBrowser"),nd=mt("MiuiBrowser"),Qn=Ee("HuaweiBrowser"),om=Ee("Huawei")||Ee("HUAWEI"),sm=Ee("Honor")||Ee("HONOR"),ad=mt("HuaweiBrowser"),Yn=Ee("SamsungBrowser"),cd=mt("SamsungBrowser"),Is=Ee("HeyTapBrowser"),dd=mt("HeyTapBrowser"),Ss=Ee("VivoBrowser"),ud=mt("VivoBrowser"),Zn=()=>Yl("Chrome"),fo=Ee("Chrome"),ys=!fs&&!Wn&&!Hn&&!gr&&!Gn&&!_s&&!jn&&!Xn&&!Qn&&!Yn&&!Is&&!Ss&&fo,nm=Ee("HeadlessChrome"),si=Zn(),ld=mt("Chrome"),$t=!fo&&!Ts&&!Es&&!qn&&!Jn&&Ee("Safari"),Oi=$t||bt,Pi=mt("Version"),am=/Android.*(wv|.0.0.0)/.test(Qt),xi=(()=>{if(Zl)return Pi;if(bt){let i=Qt.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),Yt=Number(xi.split(".")[0]),qE=Pi==="15.1",cm=xi==="15.1",dm=(()=>{let i=Number(xi.split(".")[0]);return i===14||i===13})(),Tr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",ni=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),xr=uf();function uf(){let i=new Map([[_r,["Firefox",Xc]],[_s,["Edg",Yc]],[ys,["Chrome",ld]],[$t,["Safari",Pi]],[gr,["TBS",ed]],[Gn,["XWEB",td]],[gs&&po,["WeChat",rd]],[jn,["QQ(Win)",id]],[Ts,["QQ(Mobile)",hs]],[Es,["QQ(Mobile X5)",hs]],[qn,["QQ(Mac)",od]],[Jn,["QQ(iPad)",sd]],[Xn,["MI",nd]],[Qn,["HW",ad]],[Yn,["Samsung",cd]],[Is,["OPPO",dd]],[Ss,["VIVO",ud]],[fs,["EDGE",Qc]],[Hn,["SogouMobile",Zc]],[Wn,["Sogou",Kc]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Be=null,fr="";function Kn(){return A(this,null,function*(){if(Be)return Be;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Be=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Be&&!fr&&(fr=`UAData: ${Be.platform}/${Be.platformVersion}`,Be.architecture&&Be.bitness&&(fr+=` ${Be.architecture}/${Be.bitness}`),Be.mobile&&(fr+=" mobile"),Be.model&&(fr+=` model: ${Be.model}`),Be.fullVersionList&&(fr+=` ${Be.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Be}catch(i){return null}})}function ea(){return(Be==null?void 0:Be.model)||""}var af=new Map([[pt,"Android"],[bt,"iOS"],[ho,"Windows"],[Er,"MacOS"],[zn,"Linux"],[rm,"ChromeOS"]]),As=function(){return af.get(!0)?af.get(!0):Be?Be.platform:"unknown"};function ta(){return ho?1:pt?2:Er?3:bt?4:zn?5:rm?6:0}var _o=()=>{let i=As();return i+=`/${xr.name}/${$t?xr.version:xr.version.split(".")[0]}`,Be!=null&&Be.platformVersion&&(i+=`/${Be.platformVersion}`),Be!=null&&Be.architecture&&(i+=`/${Be.architecture}`),i};function um(){return pt?4:po?2:$n?3:Er?12:ho?5:zn?13:1}function lm(){return pt?"Android":po?"iPhone":$n?"iPad":Er?"Mac":ho?"Windows":zn?"Linux":"unknown"}var mf=Ci(ki(),1),XE=new mf.default,F=XE;var go=(se=>(se.ROOM_DESTROY="1",se.JOIN_START="21",se.JOIN_SCHEDULE_SUCCESS="22",se.JOIN_SIGNAL_CONNECTION_START="23",se.JOIN_SIGNAL_CONNECTION_END="24",se.JOIN_SEND_CMD="25",se.JOIN_RECEIVED_CMD_RES="26",se.JOIN_SUCCESS="27",se.JOIN_FAILED="28",se.LEAVE_START="51",se.LEAVE_SEND_CMD="52",se.LEAVE_SUCCESS="53",se.PUBLISH_START="61",se.SEND_FIRST_VIDEO_FRAME="62",se.PUBLISH_FAILED="63",se.SUBSCRIBE_START="81",se.SUBSCRIBE_SUCCESS="82",se.SUBSCRIBE_FAILED="84",se.UNSUBSCRIBE_SUCCESS="83",se.LOCAL_TRACK_CAPTURE_START="101",se.LOCAL_TRACK_CAPTURE_SUCCESS="102",se.LOCAL_TRACK_CAPTURE_FAILED="103",se.LOCAL_TRACK_PUBLISHED="104",se.LOCAL_TRACK_UNPUBLISHED="105",se.LOCAL_TRACK_REPLACED="106",se.SWITCH_DEVICE_SUCCESS="107",se.TRACK_MUTED="108",se.TRACK_UNMUTED="109",se.REMOTE_TRACK_SUBSCRIBED="110",se.REMOTE_TRACK_UNSUBSCRIBED="111",se.LOCAL_TRACK_RECAPTURE="112",se.PLAY_TRACK_START="151",se.PLAYER_STATE_CHANGED="152",se.VIDEO_LOADED_DATA="153",se.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",se.SIGNAL_CONNECTION_STATE_CHANGED="201",se.PEER_CONNECTION_STATE_CHANGED="202",se.SINGLE_CONNECTION_STAT="203",se.SPC_RECONNECTED="204",se.HEARTBEAT_REPORT="251",se.RECEIVED_PUBLISHED_USER_LIST="252",se.REMOTE_PUBLISH_STATE_CHANGED="253",se.AUDIO_LEVEL_INTERVAL="260",se.NETWORK_QUALITY="261",se.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",se.QUALITY_LIMITATION_CHANGED="263",se.LOG="264",se))(go||{});var P=go;var QE="%cTRTC%c%s",YE="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",ZE="display: inline",pd=class pd{constructor(){l(this,"_isEnableUploadLog",!0);l(this,"_localJoinedUser",new Map);l(this,"_queue",[]);l(this,"_timeoutId",-1);l(this,"_logLevel",1);l(this,"_logLevelToUpload",2);!os&&!Dn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){F.on(P.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&pr[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),F.on(P.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),F.once(P.JOIN_FAILED,()=>{this.startUpload()}),F.on(P.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(Se(r.userId)&&$e(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return A(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:a,sdkAppId:d,logs:h}=o[s];yield this.uploadLogWithRetry(JSON.stringify({timestamp:Mc(),sdkAppId:String(d),userId:a,version:Ke,log:h.map(m=>m.log).join(`
4
- `)}),d),h.forEach(m=>m.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e){return Mi({retryFunction:()=>oi({url:ii(e,Di.LOG),body:t,timeout:5e3,priority:"low"}),settings:{retries:3,timeout:2e3},onError:({retry:r})=>{r()}})()}getPrefix(t){let e=new Date;e.setTime(Cn());let r=String(e.getMilliseconds());return"padStart"in String.prototype&&(r=r.toString().padStart(3,"0")),`[${e.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${r}] <${pr[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){L(pr[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(Se(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}log(t,e,r=!0,o,s){var h;e.unshift(this.getPrefix(t));let a={log:e.reduce((m,T)=>`${m} ${this.logChunkToString(T)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};if(F.emit(P.LOG,{log:a}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(a),t<this._logLevel)return;let d=((h=pr[t])==null?void 0:h.toLowerCase())||"info";pd.PRINT_LOG_TAG?console[d](QE,YE,ZE,...e):console[d](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){return new ps(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;pr[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};l(pd,"PRINT_LOG_TAG",!(bt||pt||nm));var pm=pd,U=new pm;var KE=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},ia=KE;var hm=class{constructor(){l(this,"_prefix","TRTC");l(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!ni())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(ni())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){U.warn(t)}}getItem(t){if(!ni())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){U.warn(e)}}setItem(t,e){if(ni())try{let r={expiresIn:Date.now()+Pc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){U.warn(r)}}deleteItem(t){if(!ni())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return U.warn(e),!1}}clear(){if(ni())try{localStorage.clear()}catch(t){U.warn(t)}}},Rs=new hm;var Li={};Kr(Li,{HTTPS_API:()=>_T,IS_GET_CAPABILITIES_SUPPORTED:()=>Lm,IS_GET_SETTINGS_SUPPORTED:()=>Ns,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>RT,IS_INSERTABLE_STREAM_SUPPORTED:()=>ma,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>NT,IS_RTC_RTP_SENDER_SUPPORTED:()=>la,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>Bf,IS_SEI_SUPPORTED:()=>pa,IS_SPC_SUPPORTED:()=>ST,basis:()=>CT,capabilityCheck:()=>Vm,checkSystemRequirementsInternal:()=>Rd,decodeSupportStatus:()=>Pf,encodeSupportStatus:()=>Pm,getBrowserInfo:()=>Ad,getDisplayResolution:()=>xf,isAddTransceiverSupported:()=>Ff,isBrowserSupported:()=>xm,isGetReceiversSupported:()=>TT,isGetSendersSupported:()=>Vf,isGetTransceiversSupported:()=>IT,isGetUserMediaSupported:()=>kf,isMediaDevicesSupported:()=>bd,isMediaSessionSupported:()=>Hf,isMediaStreamTrackProcessorSupported:()=>km,isReplaceTrackSupported:()=>AT,isRequestVideoFrameCallbackSupported:()=>Ao,isSIMDSupported:()=>vT,isScreenCaptureApiAvailable:()=>da,isSelectedCandidatePair:()=>gT,isSetParametersSupported:()=>bT,isSmallStreamAPISupported:()=>Uf,isSmallStreamSupported:()=>ua,isStopTransceiverSupported:()=>yT,isTRTCSupported:()=>hT,isUnifiedPlanDefault:()=>ET,isUsedInHttpProtocol:()=>mi,isWebAudioSupported:()=>Lf,isWebCodecSupported:()=>$f,isWebCodecsSupported:()=>Of,isWebRTCSupported:()=>Um,isWebTransportSupported:()=>Wf});var vm={};Kr(vm,{AUDIO_LEVEL_SCALE:()=>di,AudioCodecPipelineType:()=>Td,AudioDecoderDowngradeState:()=>gm,AudioPlayerMode:()=>Sm,AudioType:()=>Tm,BASIC_TYPE:()=>Io,BannedReason:()=>ym,CONNECTION_CLOSED_REASON:()=>hf,ClientEvent:()=>fm,CodecType:()=>Sf,ConnectionEvent:()=>pf,ConnectionState:()=>fd,DECODE_FAILED_ERROR_CODE:()=>Rm,FacingMode:()=>gd,LeaveReason:()=>Am,LocalTrackEvent:()=>hd,MULTI_VIDEO_DATA_TYPE:()=>ci,MediaType:()=>It,MediaTypeLabel:()=>eT,MonitorEventId:()=>sa,MutedFlag:()=>_f,NetworkQualityValue:()=>Tf,PlayerState:()=>vs,ReceiveMode:()=>If,RemoteStreamType:()=>kr,RemoteTrackEvent:()=>Cs,RoomEvent:()=>Eo,SceneNumber:()=>_m,StreamEvent:()=>ff,StreamType:()=>Ef,SubscribeMediaType:()=>oa,TRACK_ACTION:()=>gf,TRACK_KIND:()=>Em,TrackEvent:()=>ai,UserRole:()=>Ht,UserRoleNumber:()=>To,VideoCodec:()=>bm,VideoCodecPipelineType:()=>na,VideoContentHint:()=>aa,VideoDecoderDowngradeState:()=>_d,VideoPlayerMode:()=>Ed,VideoType:()=>Im});var pf=(H=>(H.TRACK_ADDED="track-added",H.TRACK_UPDATED="track-updated",H.TRACK_SUBSCRIBED="track-subscribed",H.STREAM_ADDED="stream-added",H.STREAM_REMOVED="stream-removed",H.STREAM_UPDATED="stream-updated",H.STREAM_PUBLISHED="stream-published",H.STREAM_SUBSCRIBED="stream-subscribed",H.STREAM_UNSUBSCRIBED="stream-unsubscribed",H.STATE_CHANGED="state-changed",H.ERROR="error",H.CONNECTION_STATE_CHANGED="connection-state-changed",H.FIREWALL_RESTRICTION="firewall-restriction",H.SEI_MESSAGE="sei-message",H.CLOSED="closed",H))(pf||{}),hf=(a=>(a.REMOTE_LEAVE="remote user exitRoom",a.REMOTE_UNPUBLISH="remote user unpublished",a.LOCAL_LEAVE="you exitRoom",a.LOCAL_UNPUBLISH="you unpublished",a.LOCAL_UNSUBSCRIBE="you unsubscribed",a.SWITCH_ROLE="you switch role to audience",a))(hf||{}),fm=(z=>(z.STREAM_ADDED="stream-added",z.STREAM_REMOVED="stream-removed",z.STREAM_UPDATED="stream-updated",z.STREAM_SUBSCRIBED="stream-subscribed",z.CONNECTION_STATE_CHANGED="connection-state-changed",z.PEER_JOIN="peer-join",z.PEER_LEAVE="peer-leave",z.MUTE_AUDIO="mute-audio",z.MUTE_VIDEO="mute-video",z.UNMUTE_AUDIO="unmute-audio",z.UNMUTE_VIDEO="unmute-video",z.CLIENT_BANNED="client-banned",z.NETWORK_QUALITY="network-quality",z.AUDIO_VOLUME="audio-volume",z.SEI_MESSAGE="sei-message",z.ERROR="error",z))(fm||{}),ff=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(ff||{}),hd=(a=>(a.DEVICE_AUTO_RECOVERED="1",a.DEVICE_RECOVER_FAILED="5",a.DEVICE_CHANGED="2",a.ERROR="3",a.PUBLISH_STATE_CHANGED="4",a.ENCODE_FAILED="6",a))(hd||{}),vs=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(vs||{}),Eo=(Pe=>(Pe.PEER_JOIN="peer-join",Pe.PEER_LEAVE="peer-leave",Pe.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",Pe.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",Pe.BANNED="banned",Pe.NETWORK_QUALITY="network-quality",Pe.AUDIO_VOLUME="audio-volume",Pe.SEI_MESSAGE="sei-message",Pe.ERROR="error",Pe.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",Pe.REMOTE_PUBLISHED="remote-published",Pe.REMOTE_UNPUBLISHED="remote-unpublished",Pe.FIREWALL_RESTRICTION="firewall-restriction",Pe.HEARTBEAT_REPORT="heartbeat-report",Pe.CUSTOM_MESSAGE="custom-message",Pe.LAYER_DATA="layerData",Pe.FIRST_VIDEO_FRAME="first-video-frame",Pe.DUMP="dump",Pe))(Eo||{}),ai=(d=>(d.PLAYER_STATE_CHANGED="player-state-changed",d.MUTE="mute",d.UNMUTE="unmute",d.ERROR="error",d.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",d.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",d.FIRST_VIDEO_FRAME="first-video-frame",d))(ai||{}),Cs=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(Cs||{}),_f=(d=>(d[d.VIDEO=1]="VIDEO",d[d.SMALL=2]="SMALL",d[d.AUX=4]="AUX",d[d.AUDIO=8]="AUDIO",d[d.VIDEO_MUTE=16]="VIDEO_MUTE",d[d.AUX_MUTE=32]="AUX_MUTE",d[d.AUDIO_MUTE=64]="AUDIO_MUTE",d))(_f||{}),_m=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(_m||{}),To=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(To||{}),Ht=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Ht||{}),fd=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(fd||{}),gm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(gm||{}),_d=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(_d||{}),Em=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Em||{}),gf=(e=>(e.ADD="add",e.REMOVE="remove",e))(gf||{}),It=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(It||{}),eT={1:"audio",2:"auxVideo",4:"video"},Tm=(t=>(t[t.opus=111]="opus",t))(Tm||{}),Im=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(Im||{}),Ef=(e=>(e.Big="big",e.Small="small",e))(Ef||{}),kr=(e=>(e.Main="main",e.Aux="auxiliary",e))(kr||{}),ci=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(ci||{}),sa=(q=>(q[q.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",q[q.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",q[q.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",q[q.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",q[q.MUTE_AUDIO=32772]="MUTE_AUDIO",q[q.MUTE_VIDEO=32773]="MUTE_VIDEO",q[q.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",q[q.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",q[q.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",q[q.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",q[q.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",q[q.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",q[q.SWITCH_CAMERA=32780]="SWITCH_CAMERA",q[q.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",q[q.REPLACE_VIDEO=32782]="REPLACE_VIDEO",q[q.REPLACE_AUDIO=32783]="REPLACE_AUDIO",q[q.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",q[q.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",q[q.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",q[q.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",q[q.JOIN=32788]="JOIN",q[q.LEAVE=32789]="LEAVE",q[q.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",q[q.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",q[q.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",q[q.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",q[q.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",q[q.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",q[q.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",q[q.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",q[q.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",q[q.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",q[q.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",q[q.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",q[q.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",q[q.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",q[q.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",q[q.PUBLISH_AUX=32805]="PUBLISH_AUX",q[q.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",q[q.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",q[q.VIDEO_ENCODER=4004]="VIDEO_ENCODER",q[q.VIDEO_DECODER=4005]="VIDEO_DECODER",q))(sa||{}),Tf=(d=>(d[d.UNKNOWN=0]="UNKNOWN",d[d.EXCELLENT=1]="EXCELLENT",d[d.GOOD=2]="GOOD",d[d.POOR=3]="POOR",d[d.BAD=4]="BAD",d[d.VERY_BAD=5]="VERY_BAD",d[d.DISCONNECTED=6]="DISCONNECTED",d))(Tf||{}),If=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(If||{}),gd=(e=>(e.user="user",e.environment="environment",e))(gd||{}),Ed=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))(Ed||{}),Sm=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(Sm||{}),ym=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(ym||{}),Am=(m=>(m[m.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",m[m.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",m[m.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",m[m.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",m[m.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",m[m.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",m[m.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",m[m.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",m[m.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",m))(Am||{}),di=1e8,oa=class{constructor(){l(this,"mediaType",0)}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},Io=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Io||{}),bm=(r=>(r.H264="h264",r.H265="h265",r.VP8="vp8",r))(bm||{}),na=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(na||{}),Td=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Td||{}),Sf=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(Sf||{}),Rm=(I=>(I[I.SUCCESS=0]="SUCCESS",I[I.FAILED=1]="FAILED",I[I.WEBCODEC_INIT=2]="WEBCODEC_INIT",I[I.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",I[I.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",I[I.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",I[I.WASM_INIT=6]="WASM_INIT",I[I.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",I[I.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",I[I.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",I[I.TEST=10]="TEST",I))(Rm||{}),aa=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(aa||{});var ot={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},Wt={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ut(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ut(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var yf=(i,t)=>t?`${Nr}/${i}/${t}`:`${Nr}/${i}/index.html`;var tT=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem(Fl);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function st(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",a="",d="";Fe(Wt[t])?s=Wt[t](e):Se(Wt[t])&&(s=Wt[t]);let{TRTC_ERROR_INFO:h,TRTC_ERROR_LINK:m}=tT();r?d=`${r.className}.html#${r.fnName}`:m&&m[t]&&(Fe(m[t])?d=m[t](e):Se(m[t])&&(d=m[t]));let T=s;return hr()&&(h&&h[t]&&(Fe(h[t])?a=h[t](e):Se(h[t])&&(a=h[t])),a&&(o?T=`${a}
5
- \u8BF7\u67E5\u770B\u6587\u6863: ${yf("zh-cn",d)}
3
+ `}});var Mf=vn(li=>{"use strict";var Ao=Df(),uT=wf();li.write=uT;li.parse=Ao.parse;li.parseParams=Ao.parseParams;li.parseFmtpConfig=Ao.parseFmtpConfig;li.parsePayloads=Ao.parsePayloads;li.parseRemoteCandidates=Ao.parseRemoteCandidates;li.parseImageAttributes=Ao.parseImageAttributes;li.parseSimulcastStreamList=Ao.parseSimulcastStreamList});var Lh=(x=>(x[x.INVALID_PARAMETER=4096]="INVALID_PARAMETER",x[x.INVALID_OPERATION=4097]="INVALID_OPERATION",x[x.NOT_SUPPORTED=4098]="NOT_SUPPORTED",x[x.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",x[x.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",x[x.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",x[x.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",x[x.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",x[x.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",x[x.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",x[x.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",x[x.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",x[x.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",x[x.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",x[x.CLIENT_BANNED=16448]="CLIENT_BANNED",x[x.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",x[x.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",x[x.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",x[x.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",x[x.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",x[x.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",x[x.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",x[x.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",x[x.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",x[x.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",x[x.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",x[x.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",x[x.API_CALL_ABORTED=16461]="API_CALL_ABORTED",x[x.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",x[x.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",x[x.UNKNOWN=65535]="UNKNOWN",x))(Lh||{}),Y=Lh;var qg=function(i){for(let t in Y)if(Y[t]===i)return t;return"UNKNOWN"},xl=class extends Error{constructor({name:e="RtcError",message:r,code:o=Y.UNKNOWN,extraCode:s=0,constraint:a}){let d=`<${qg(o)} 0x${o.toString(16)}>`,h=`${r}${a?` constraint: ${a}`:""}${r!=null&&r.includes(d)?"":` ${d}`}`;super(h);l(this,"code");l(this,"extraCode");l(this,"message");l(this,"originMessage");l(this,"name");l(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=h,this.constraint=a,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},ue=xl;var yy=new Date().getTime(),Jg=0;var Cn=function(){return new Date().getTime()+Jg},Mc=function(){let i=new Date;return i.setTime(Cn()),i.toLocaleString()};var Pr={};Kr(Pr,{bytes2ms:()=>qh,convertObjectNumberToInt:()=>Fn,copyProperties:()=>jh,deepClone:()=>po,deepMerge:()=>Or,delay:()=>Bn,fibonacci:()=>ho,formatedTime:()=>Gc,getConstructorName:()=>Un,getContainerFromElement:()=>ef,getEnv:()=>Hh,getInternalVersion:()=>Zh,getLoggerUrl:()=>ii,getMuteStateFromFlag:()=>Vn,getNetworkType:()=>kn,getNumNetworkType:()=>$c,getReconnectionTimeout:()=>zh,getStringByteLength:()=>tf,getTurnServer:()=>Kh,getUint32Version:()=>Jc,getValueType:()=>ut,getViewListFromView:()=>ms,glog:()=>Ln,ipv4ToUint32:()=>ls,isArray:()=>it,isAudioWorkletSupported:()=>Yh,isBoolean:()=>nt,isConstructor:()=>us,isEmpty:()=>Wc,isFunction:()=>Fe,isLangChinese:()=>hr,isMediaStreamTrack:()=>Xh,isNumber:()=>$e,isObject:()=>rr,isOverseaSdkAppId:()=>xn,isPlainObject:()=>Bt,isPortrait:()=>qc,isPromise:()=>wi,isRemoteTrack:()=>Qh,isString:()=>Ae,isUndefined:()=>L,loadImage:()=>ps,ms2bytes:()=>Jh,ms2samples:()=>zl,performanceNow:()=>ge,promiseAny:()=>Hc,samples2ms:()=>Jl,setNetworkType:()=>Gh,stringify:()=>ir,stringifyIncludeValue:()=>jc,throttlePromise:()=>zc});var ql={};Kr(ql,{AUDIO_MUTE_BIT:()=>Uc,AUDIO_STAT_BIT:()=>as,AUX_STAT_BIT:()=>wn,AUX_STREAM_MSID:()=>sE,BACKEND_ENV:()=>Lc,BASE_DOC_URL:()=>Nr,BASE_HOST:()=>Uh,CAPABILITIES_KEYS:()=>Bc,CLASS_NAME:()=>NE,CLOUD_CONSOLE_URL:()=>Yg,CROSS_ROOM_BIT:()=>iE,DATA_FREEZE_TIMING:()=>Fc,DEFAULT_ASSETS_URL:()=>Oc,DOC_URL:()=>Zg,DTLS_STATE_UNKNOWN:()=>fE,ENV_NAME:()=>ei,EXCHANGE_SDP_TIMEOUT:()=>SE,INTERVAL:()=>mo,IS_WORKER:()=>ss,IS_WORKLET:()=>Dn,KIBANA_EVENT:()=>ti,LOCAL_STREAM_PUBLISH_STATE:()=>Fh,LOGGER_CMD_TYPE:()=>Ni,LOGGER_DOMAIN:()=>Ul,LOGGER_DOMAIN_OVERSEA:()=>Vl,LOG_LEVEL:()=>pr,LOG_LEVEL_NAME:()=>ME,MAIN_STREAM_MSID:()=>oE,MAX_RTT:()=>On,MICROPHONE_COMMUNICATIONS:()=>wE,MICROPHONE_DEFAULT:()=>lo,MUTE_ALL_BIT:()=>rE,NAME:()=>D,NETWORK_TYPE:()=>uo,NOT_SUPPORTED_H264:()=>AE,PAUSED_RETRY_COUNT:()=>Wl,PEERCONNECTION_CONNECTING_TIMEOUT:()=>CE,PEER_CONNECTION_STATE:()=>_E,PEER_LEAVE_REASON:()=>Bh,RAF:()=>jl,RECOVER_CAPTURE_INTERVAL:()=>cs,REMOTE_STREAM_TYPE_AUX:()=>aE,REMOTE_STREAM_TYPE_MAIN:()=>nE,RENDER_FREEZE_TIMING:()=>bE,RIC:()=>Gl,SCHEDULE_DOMAIN:()=>ri,SCHEDULE_TIMEOUT:()=>DE,SDP_SEMANTICS_PLAN_B:()=>yE,SDP_SEMANTICS_UNIFIED_PLAN:()=>Hl,SECOND_HOST:()=>Xg,SIGNAL_PING_PONG_INTERVAL:()=>eE,SIGNAL_PING_TIMEOUT:()=>Kg,SIGNAL_RECONNECTION_COUNT:()=>EE,SMALL_STAT_BIT:()=>Bl,SPEAKER_DEFAULT:()=>Mn,STORAGE_EXPIRES_TIME:()=>Pc,STREAM_TYPE_BIG:()=>RE,STREAM_TYPE_SMALL:()=>vE,SUBSCRIBE_SMALL_RETRY_COUNT:()=>OE,SYNC_USER_LIST_INTERVAL:()=>TE,Scene:()=>Mr,THIRD_HOST:()=>Qg,TIMEOUT:()=>ds,TRANSPORT_DIRECTION:()=>tE,TRTC_ERROR_ASSISTANCE:()=>Fl,TRTC_QUALITY_BAD:()=>mE,TRTC_QUALITY_DISCONNECTED:()=>hE,TRTC_QUALITY_EXCELLENT:()=>dE,TRTC_QUALITY_GOOD:()=>uE,TRTC_QUALITY_POOR:()=>lE,TRTC_QUALITY_UNKNOWN:()=>cE,TRTC_QUALITY_VERY_BAD:()=>pE,UPDATE_OFFER_TIMEOUT:()=>IE,VIDEO_MUTE_BIT:()=>Vc,VIDEO_STAT_BIT:()=>ns,audioProfileMap:()=>xc,getRetryCount:()=>gE,getScriptDir:()=>zg,innerVersion:()=>kl,loggerProxy:()=>Nn,screenProfileMap:()=>kc,setLoggerProxy:()=>co,setRetryCount:()=>$l,setVersion:()=>Ll,version:()=>Ke,videoProfileMap:()=>wr});var kl="4.15.00.1600",Ke="5.0.0";function Ll(i){Ke=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));kl=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var ss=typeof importScripts!="undefined",Dn=typeof registerProcessor!="undefined",zg=()=>{let i=ss?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},Nn="",co=i=>Nn=i,Uh="web.sdk.qcloud.com",Xg="web.sdk.tencent.cn",Qg="web.sdk.cloud.tencent.cn",Yg="https://console.cloud.tencent.com/trtc",Nr=`https://${Uh}/trtc/webrtc/v5/doc`,Oc="https://web.sdk.qcloud.com/trtc/webrtc/v5/assets/",Zg=`${Nr}/zh-cn/`,Ul="https://yun.tim.qq.com",Vl="https://apisgp.my-imcloud.com",Fl="trtc_error_assistance",Ni={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ei={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},pr=(a=>(a[a.TRACE=0]="TRACE",a[a.DEBUG=1]="DEBUG",a[a.INFO=2]="INFO",a[a.WARN=3]="WARN",a[a.ERROR=4]="ERROR",a[a.NONE=5]="NONE",a))(pr||{}),Kg=18e3,eE=2e3,uo={unknown:0,wifi:1,"3g":2,"2g":3,"4g":4,wired:5,"5g":6},Pc=7*24*3600*1e3,xc={standard:{sampleRate:48e3,channelCount:1,bitrate:40},"standard-stereo":{sampleRate:48e3,channelCount:2,bitrate:64},high:{sampleRate:48e3,channelCount:1,bitrate:128},"high-stereo":{sampleRate:48e3,channelCount:2,bitrate:192}},wr={"120p":{width:160,height:120,frameRate:15,bitrate:200},"120p_2":{width:160,height:120,frameRate:15,bitrate:100},"180p":{width:320,height:180,frameRate:15,bitrate:350},"180p_2":{width:320,height:180,frameRate:15,bitrate:150},"240p":{width:320,height:240,frameRate:15,bitrate:400},"240p_2":{width:320,height:240,frameRate:15,bitrate:200},"360p":{width:640,height:360,frameRate:15,bitrate:800},"360p_2":{width:640,height:360,frameRate:15,bitrate:400},"480p":{width:640,height:480,frameRate:15,bitrate:900},"480p_2":{width:640,height:480,frameRate:15,bitrate:500},"720p":{width:1280,height:720,frameRate:15,bitrate:1500},"1080p":{width:1920,height:1080,frameRate:15,bitrate:2e3},"1440p":{width:2560,height:1440,frameRate:30,bitrate:4860},"4K":{width:3840,height:2160,frameRate:30,bitrate:9e3}},kc={"480p":{width:640,height:480,frameRate:5,bitrate:900},"480p_2":{width:640,height:480,frameRate:30,bitrate:1e3},"720p":{width:1280,height:720,frameRate:5,bitrate:1200},"720p_2":{width:1280,height:720,frameRate:30,bitrate:3e3},"1080p":{width:1920,height:1080,frameRate:5,bitrate:1600},"1080p_2":{width:1920,height:1080,frameRate:30,bitrate:4e3}},D={CANVAS:"canvas",AUDIO:"audio",VIDEO:"video",SCREEN:"screen",SMALL:"small",BIG:"big",AUXILIARY:"auxiliary",SMALL_VIDEO:"smallVideo",FACING_MODE_USER:"user",FACING_MODE_ENVIRONMENT:"environment",MUTE:"mute",UNMUTE:"unmute",ENDED:"ended",PLAYING:"playing",PAUSE:"pause",ERROR:"error",LOADEDDATA:"loadeddata",LOADEDMETADATA:"loadedmetadata",AUDIO_INPUT:"audioinput",VIDEO_INPUT:"videoinput",DETAIL:"detail",TEXT:"text",MAIN:"main",BACKUP:"backup",BANNED:"banned",KICK:"kick",USER_TIME_OUT:"user_time_out",ROOM_DISBAND:"room_disband",SEI_MESSAGE:"sei-message",ADD:"add",REMOVE:"remove",REPLACE:"replace",TRACK:"track",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",TRANSCEIVER_DIRECTION_SENDONLY:"sendonly",TRANSCEIVER_DIRECTION_RECVONLY:"recvonly",ENTER_PICTURE_IN_PICTURE:"enterpictureinpicture",LEAVE_PICTURE_IN_PICTURE:"leavepictureinpicture"},tE={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Lc={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Mr=(e=>(e.LIVE="live",e.RTC="rtc",e))(Mr||{}),ns=1,Bl=2,wn=4,as=8,Uc=64,Vc=16,rE=112,iE=128,oE="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",sE="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",nE=D.MAIN,aE=D.AUXILIARY,cE=0,dE=1,uE=2,lE=3,mE=4,pE=5,hE=6,fE="unknown",_E={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Vh=1/0;function $l(i){Vh=i}function gE(){return Vh}var EE=30,ti={JOIN:"join",DELTA_JOIN:"delta-join",REJOIN:"rejoin",LEAVE:"leave",DELTA_LEAVE:"delta-leave",PUBLISH:"publish",DELTA_PUBLISH:"delta-publish",UNPUBLISH:"unpublish",SUBSCRIBE:"subscribe",UNSUBSCRIBE:"unsubscribe",UPLINK_CONNECTION:"uplink-connection",UPLINK_RECONNECTION:"uplink-reconnection",DOWNLINK_CONNECTION:"downlink-connection",DOWNLINK_RECONNECTION:"downlink-reconnection",ON_TRACK:"ontrack",ICE_CONNECTION_STATE:"iceConnectionState",LOCAL_STREAM_INITIALIZE:"stream-initialize",SIGNAL_CONNECTION:"websocketConnectionState",SIGNAL_RECONNECTION:"websocketReconnectionState",UPDATE_STREAM:"update-stream",RECOVER_LOCAL_AUDIO_TRACK:"recover-local-audio-track",RECOVER_LOCAL_VIDEO_TRACK:"recover-local-video-track",RECOVER_SUBSCRIPTION:"recover-subscription",START_MIX_TRANSCODE:"start-mix-transcode",STOP_MIX_TRANSCODE:"stop-mix-transcode",PLAYER_ERROR:"player-error",SCHEDULE:"schedule",LOAD_WORKLET:"load-worklet",VIDEO_FROZEN_COUNT:"videoFrozenCount",GET_USER_MEDIA_RETRY:"getUserMedia-retry"},TE=1e4,IE=1e4,SE=1e4,Hl="unified-plan",yE="plan-b",AE=1028,Fh=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Fh||{}),Fc=500,bE=1e3,RE=D.BIG,vE=D.SMALL,CE=10*1e3,ri={MAIN:"schedule.cloud-rtc.com",BACKUP:"schedule.cloud-rtc.net",MAIN_OVERSEA:"schedule.rtc-web.com",BACKUP_OVERSEA:"schedule.rtc-web.io",MAIN_OVERSEA_BACKUP:"intl-schedule.cloud-rtc.com"},DE=2e3,NE={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Wl=5,lo="default",Mn=lo,wE="communications",ME=Object.keys(pr),Bh=["normal leave","timeout leave","kick","role change"],OE=10,cs=2e3,Gl="ric",jl="raf",mo="interval",ds="timeout",Bc=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],On=10*1e3;var Hh=function(){return new URLSearchParams(location.search).get("trtc_env")||""},xn=i=>Number(i)<14e8,ii=function(i,t){let e;Nn?e=Nn:e=xn(i)?Vl:Ul;let r=Math.floor(Math.random()*Rn(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Pn="unknown";function kn(){if(Pn!=="unknown")return Pn;let{userAgent:i,connection:t}=navigator,e=(i.match(/NetType\/\S+/)||[])[0]||"";e=e.toLowerCase().replace("nettype/",""),e==="3gnet"&&(e="3g");let r=t&&t.type&&t.type.toLowerCase(),o=t&&t.effectiveType&&t.effectiveType.toLowerCase();return o==="slow-2"&&(o="2g"),r&&(Pn=Wh(r,o)),Pn}function Wh(i,t){if(uo[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Gh(i){Pn=Wh(i)}function $c(){return uo[kn()]}function jh(i,t){for(let e of Reflect.ownKeys(t))if(e!=="constructor"&&e!=="prototype"&&e!=="name"){let r=Object.getOwnPropertyDescriptor(t,e)||"";Object.defineProperty(i,e,r)}return i}function qh(i,t=48e3){return Jl(i/4,t)}function Jl(i,t=48e3){return i*1e3/t}function Jh(i,t=48e3){return zl(i,t)*4}function zl(i,t=48e3){return i*t/1e3}var Ln=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},hr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Bt=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function ho(i,t=1,e=1){return i<=1?e:ho(i-1,e,t+e)}function zh(i){return i>8?30*1e3:ho(i)*1e3}function ut(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Fe=i=>typeof i=="function",L=i=>typeof i=="undefined",Ae=i=>typeof i=="string",$e=i=>typeof i=="number",nt=i=>typeof i=="boolean",rr=i=>ut(i)==="object",it=i=>ut(i)==="array",Xh=i=>ut(i)==="MediaStreamTrack".toLowerCase(),Qh=i=>i.isRemote,wi=i=>ut(i)==="promise",us=i=>Fe(i)&&i.prototype.constructor===i,Un=i=>us(i)?i.prototype.constructor.name:"",Yh=typeof AudioWorkletNode!="undefined";function Hc(i){return new Promise((t,e)=>{let r=[];i.forEach(o=>{o.then(t).catch(s=>{r.push(s),r.length===i.length&&e(r)})})})}function ge(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var $h=i=>+i<10?`0${i}`:i,Zh=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=$h(e[1])+$h(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},PE=Object.prototype.hasOwnProperty,{toString:Cy}=Object.prototype;function Wc(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Bt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(PE.call(i,t))return!1;return!0}}return!1}function Vn(i,t){return{userId:t,hasAudio:!!(i&as),hasVideo:!!(i&ns),hasAuxiliary:!!(i&wn),hasSmall:!!(i&Bl),audioMuted:!!(i&Uc),videoMuted:!!(i&Vc),audioAvailable:!!(i&as)&&!(i&Uc),videoAvailable:!!(i&ns)&&!(i&Vc)}}function Kh(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!L(i.username)&&!L(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",L(i.credentialType)||(t.credentialType=i.credentialType)),t}function ls(i,t=!0){if(!Ae(i))return 0;let e=i.split(".");return t?(Number(e[0])<<24|Number(e[1])<<16|Number(e[2])<<8|Number(e[3]))>>>0:(Number(e[3])<<24|Number(e[2])<<16|Number(e[1])<<8|Number(e[0]))>>>0}var Or=function(i,t,e,r){if(!(rr(i)&&rr(t)))return 0;let o=0,s=Object.keys(t),a;for(let d=0,h=s.length;d<h;d++)if(a=s[d],!(L(t[a])||e&&e.includes(a)))if(rr(i[a])&&rr(t[a]))o+=Or(i[a],t[a],e,r);else{if(r&&r.includes(t[a]))continue;i[a]!==t[a]&&(i[a]=po(t[a]),o+=1)}return o};function po(i){if(it(i)){let t=[];return i.forEach((e,r)=>{t[r]=po(e)}),t}if(rr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=po(i[e])}),t}return i}var ms=i=>{let t=[];if(it(i))t=[...i];else if(Ae(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},ef=i=>Ae(i)?document.getElementById(i):i,xE=i=>{let t=h=>h<10?`0${h}`:`${h}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),a=t(i.getMinutes()),d=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${a}:${d}`},Gc=()=>xE(new Date);function ir(i,{keysToInclude:t,keysToExclude:e}){try{if(it(i))return`[${i.map(a=>ir(a,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Bt(i)||!it(t)&&!it(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(a=>{(s.size===0&&o.has(a)||o.size===0&&!s.has(a))&&(r[a]=Bt(i[a])||it(i[a])?JSON.parse(ir(i[a],{keysToExclude:e,keysToInclude:t})):i[a])}),JSON.stringify(r)}catch(r){return"{}"}}function jc(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),ir(i,{keysToInclude:e})}function tf(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var qc=()=>{var i,t,e,r;return(i=window.screen)!=null&&i.orientation?!!((r=(e=(t=window.screen)==null?void 0:t.orientation)==null?void 0:e.type)!=null&&r.includes("portrait")):window.orientation===0||window.orientation===180},ps=i=>A(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Ae(i))r=new Image,r.crossOrigin="anonymous",r.src=i;else if(r=i,r.complete){t(r);return}r.onload=()=>t(r),r.onerror=()=>{e(new ue({code:Y.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Jc=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Fn=i=>(Object.keys(i).forEach(t=>{$e(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Bt(i[t])||it(i[t]))&&Fn(i[t])}),i);function Bn(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function zc(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function oi({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,a)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(h=>h.text()).then(h=>{try{s({data:JSON.parse(h)})}catch(m){s({data:h})}},a);let d=new XMLHttpRequest;d.onreadystatechange=()=>{if(d.readyState===4)if(d.status>=200&&d.status<300)try{let h=JSON.parse(d.response);s({data:h})}catch(h){s({data:d.response})}else a({status:d.status,statusText:d.statusText||"request failed!"})},d.timeout=r||5e3,d.open(e,i,!0),d.send(t)})}function Xl(i){return A(this,null,function*(){let t=ge(),e=JSON.stringify(i);try{if(!CompressionStream||e.length<=2800)return e;let o=new Blob([e],{type:"application/json"}).stream().pipeThrough(new CompressionStream("gzip")),d=yield(yield(yield new Response(o)).blob()).arrayBuffer();return U.debug(`compressJSON ${e.length} -> ${d.byteLength} ${ge()-t}ms`),d}catch(r){return e}})}var kE=Object.prototype.hasOwnProperty;var Mi=i=>typeof i=="function",rf=i=>typeof i=="undefined";var of=i=>typeof i=="boolean";var Ql=i=>i.isRemote;var LE=function(i){if(!i||typeof i!="object"||Object.prototype.toString.call(i)!="[object Object]")return!1;let t=Object.getPrototypeOf(i);if(t===null)return!0;let e=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Function.prototype.toString.call(e)===Function.prototype.toString.call(Object)};function sf(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(LE(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(kE.call(i,t))return!1;return!0}}return!1}var UE=0,VE=1,nf=2;function FE({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:a}){return function(...d){let{retries:h=5,timeout:m=1e3}=t,T=0,I=-1,v=UE,N=(j,H)=>A(this,null,function*(){let z=a||this;try{let Te=yield i.apply(z,d);T>0&&s&&s.call(this,T),T=0,j(Te)}catch(Te){let xe=()=>{clearTimeout(I),T=0,v=nf,H(Te)},Xe=()=>{v!==nf&&T<(Mi(h)?h():h)?(T++,v=VE,Mi(r)&&r.call(this,T,xe),I=window.setTimeout(()=>{I=-1,N(j,H)},Mi(m)?m(T):m)):(xe(),Mi(o)&&o.call(this,Te))};Mi(e)?e.call(this,{error:Te,retry:Xe,reject:H,retryFuncArgs:d,retriedCount:T}):Xe()}});return new Promise(N)}}var Oi=FE;var hs=class{constructor(t){l(this,"userId");l(this,"remoteUserId");l(this,"id");l(this,"sdkAppId");l(this,"type");l(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=of(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}createChild(t){return Object.setPrototypeOf(t,this)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId;e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${this.id}${r?`|${r}`:""}]`),U.log(t,e,rf(this.userId)||sf(this.userId),this.userId,this.sdkAppId)}info(...t){this.log(2,t)}debug(...t){this.log(1,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}};var Rs={};Kr(Rs,{ANDROID_VERSION:()=>Kl,CHROME_MAJOR_VERSION:()=>si,CHROME_VERSION:()=>ld,EDGE_VERSION:()=>Qc,EDG_MAJOR_VERSION:()=>tm,EDG_VERSION:()=>Yc,FIREFOX_MAJOR_VERSION:()=>em,FIREFOX_VERSION:()=>Xc,HUAWEI_VERSION:()=>ad,IE_VERSION:()=>GE,IOS_MAIN_VERSION:()=>Yt,IOS_VERSION:()=>ki,IPADQQB_VERSION:()=>sd,IS_ANDROID:()=>pt,IS_ANDROID_WEBVIEW:()=>am,IS_ANY_SAFARI:()=>Pi,IS_CHROME:()=>As,IS_CHROME_OS:()=>rm,IS_CHROMIUM_BASE:()=>go,IS_EDG:()=>gs,IS_EDGE:()=>_s,IS_ELECTRON:()=>qE,IS_FIREFOX:()=>_r,IS_HEADLESS_CHROME:()=>nm,IS_HONOR:()=>sm,IS_HUAWEI:()=>om,IS_HUAWEIBROWSER:()=>Qn,IS_IE:()=>uf,IS_IE8:()=>WE,IS_IOS:()=>bt,IS_IOS_13_OR_14:()=>dm,IS_IOS_15_1:()=>cm,IS_IPAD:()=>$n,IS_IPADQQB:()=>Jn,IS_IPAD_PRO:()=>Zl,IS_IPHONE:()=>fo,IS_IPOD:()=>df,IS_LINUX:()=>zn,IS_LOCAL:()=>Tr,IS_MAC:()=>Er,IS_MACQQB:()=>qn,IS_MIBROWSER:()=>Xn,IS_MQQB:()=>Is,IS_NATIVE_ANDROID:()=>HE,IS_OLD_ANDROID:()=>$E,IS_OPPOBROWSER:()=>Ss,IS_SAFARI:()=>$t,IS_SAFARI_15_1:()=>JE,IS_SAMSUNGBROWSER:()=>Yn,IS_SOGOU:()=>Wn,IS_SOGOUM:()=>Hn,IS_TBS:()=>gr,IS_UCBROWSER:()=>im,IS_VIVOBROWSER:()=>ys,IS_WECHAT:()=>Es,IS_WIN:()=>_o,IS_WQQB:()=>jn,IS_WX:()=>jE,IS_X5MQQB:()=>Ts,IS_XWEB:()=>Gn,MACQQB_VERSION:()=>od,MI_VERSION:()=>nd,MQQB_VERSION:()=>fs,OPPO_VERSION:()=>dd,SAFARI_VERSION:()=>xi,SAMSUNG_VERSION:()=>cd,SOGOUM_VERSION:()=>Zc,SOGOU_VERSION:()=>Kc,TBS_VERSION:()=>ed,UA_DATA_STRING:()=>fr,USER_AGENT:()=>Qt,VIVO_VERSION:()=>ud,WECHAT_VERSION:()=>rd,WQQB_VERSION:()=>id,XWEB_VERSION:()=>td,browserInfo:()=>xr,getBrowserInfo:()=>lf,getChromeMajorVersion:()=>Zn,getDeviceModel:()=>ea,getOSName:()=>bs,getOSNumber:()=>ta,getOSString:()=>Eo,getOSType:()=>lm,getTerminalType:()=>um,getUserAgentData:()=>Kn,isLocalStorageEnabled:()=>ni});var Qt=typeof navigator=="undefined"?"":navigator.userAgent,Ee=i=>new RegExp(i,"i").test(Qt),mt=i=>{if(Ee(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=Qt.match(t);if(e&&e[1])return e[1]}return""},Yl=i=>{if(Ee(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=Qt.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},af=/AppleWebKit\/([\d.]+)/i.exec(Qt),BE=af?parseFloat(af[1]):NaN,$n=Ee("iPad"),Zl=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Ee("Macintosh"),fo=Ee("iPhone")&&!$n,df=Ee("iPod"),bt=fo||$n||df||Zl,pt=Ee("Android"),Kl=function(){if(pt){let i=Qt.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(i){let t=i[1]&&parseFloat(i[1]),e=i[2]&&parseFloat(i[2]);if(t&&e)return parseFloat(`${i[1]}.${i[2]}`);if(t)return t}}return NaN}(),$E=pt&&Ee("webkit")&&Kl<2.3,HE=pt&&Kl<5&&BE<537,_r=Ee("Firefox"),Xc=mt("Firefox"),em=Yl("Firefox"),_s=Ee("Edge"),Qc=mt("Edge"),gs=Ee("Edg"),Yc=mt("Edg"),tm=Yl("Edg"),Hn=Ee("SogouMobileBrowser"),Zc=mt("SogouMobileBrowser"),Wn=Ee("MetaSr\\s"),Kc=mt("MetaSr\\s"),gr=Ee("TBS"),ed=mt("TBS"),Gn=Ee("XWEB"),td=mt("XWEB"),WE=Ee("MSIE\\s8\\.0"),uf=Ee("MSIE\\/\\d+"),GE=function(){if(uf){let i=/MSIE\s(\d+)\.\d/.exec(Qt),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(Qt)&&/rv:11.0/.test(Qt)&&(t=11),t}return NaN}(),Es=Ee("(micromessenger|webbrowser)"),rd=mt("MicroMessenger"),Ts=!gr&&Ee("MQQBrowser")&&Ee("COVC"),Is=!gr&&Ee("MQQBrowser")&&!Ee("COVC"),fs=Is||Ts?mt("MQQBrowser"):"",jn=!gr&&Ee(" QQBrowser"),id=mt(" QQBrowser"),qn=!gr&&Ee("QQBrowserLite"),od=mt("QQBrowserLite"),Jn=!gr&&Ee("MQBHD"),sd=mt("MQBHD"),_o=Ee("Windows"),Er=!bt&&Ee("MAC OS X"),zn=!pt&&Ee("Linux"),rm=Ee("CrOS"),jE=Ee("MicroMessenger"),im=Ee("UCBrowser"),qE=Ee("Electron"),Xn=Ee("MiuiBrowser"),nd=mt("MiuiBrowser"),Qn=Ee("HuaweiBrowser"),om=Ee("Huawei")||Ee("HUAWEI"),sm=Ee("Honor")||Ee("HONOR"),ad=mt("HuaweiBrowser"),Yn=Ee("SamsungBrowser"),cd=mt("SamsungBrowser"),Ss=Ee("HeyTapBrowser"),dd=mt("HeyTapBrowser"),ys=Ee("VivoBrowser"),ud=mt("VivoBrowser"),Zn=()=>Yl("Chrome"),go=Ee("Chrome"),As=!_s&&!Wn&&!Hn&&!gr&&!Gn&&!gs&&!jn&&!Xn&&!Qn&&!Yn&&!Ss&&!ys&&go,nm=Ee("HeadlessChrome"),si=Zn(),ld=mt("Chrome"),$t=!go&&!Is&&!Ts&&!qn&&!Jn&&Ee("Safari"),Pi=$t||bt,xi=mt("Version"),am=/Android.*(wv|.0.0.0)/.test(Qt),ki=(()=>{if(Zl)return xi;if(bt){let i=Qt.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),Yt=Number(ki.split(".")[0]),JE=xi==="15.1",cm=ki==="15.1",dm=(()=>{let i=Number(ki.split(".")[0]);return i===14||i===13})(),Tr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",ni=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),xr=lf();function lf(){let i=new Map([[_r,["Firefox",Xc]],[gs,["Edg",Yc]],[As,["Chrome",ld]],[$t,["Safari",xi]],[gr,["TBS",ed]],[Gn,["XWEB",td]],[Es&&fo,["WeChat",rd]],[jn,["QQ(Win)",id]],[Is,["QQ(Mobile)",fs]],[Ts,["QQ(Mobile X5)",fs]],[qn,["QQ(Mac)",od]],[Jn,["QQ(iPad)",sd]],[Xn,["MI",nd]],[Qn,["HW",ad]],[Yn,["Samsung",cd]],[Ss,["OPPO",dd]],[ys,["VIVO",ud]],[_s,["EDGE",Qc]],[Hn,["SogouMobile",Zc]],[Wn,["Sogou",Kc]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Be=null,fr="";function Kn(){return A(this,null,function*(){if(Be)return Be;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Be=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Be&&!fr&&(fr=`UAData: ${Be.platform}/${Be.platformVersion}`,Be.architecture&&Be.bitness&&(fr+=` ${Be.architecture}/${Be.bitness}`),Be.mobile&&(fr+=" mobile"),Be.model&&(fr+=` model: ${Be.model}`),Be.fullVersionList&&(fr+=` ${Be.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Be}catch(i){return null}})}function ea(){return(Be==null?void 0:Be.model)||""}var cf=new Map([[pt,"Android"],[bt,"iOS"],[_o,"Windows"],[Er,"MacOS"],[zn,"Linux"],[rm,"ChromeOS"]]),bs=function(){return cf.get(!0)?cf.get(!0):Be?Be.platform:"unknown"};function ta(){return _o?1:pt?2:Er?3:bt?4:zn?5:rm?6:0}var Eo=()=>{let i=bs();return i+=`/${xr.name}/${$t?xr.version:xr.version.split(".")[0]}`,Be!=null&&Be.platformVersion&&(i+=`/${Be.platformVersion}`),Be!=null&&Be.architecture&&(i+=`/${Be.architecture}`),i};function um(){return pt?4:fo?2:$n?3:Er?12:_o?5:zn?13:1}function lm(){return pt?"Android":fo?"iPhone":$n?"iPad":Er?"Mac":_o?"Windows":zn?"Linux":"unknown"}var pf=Di(Li(),1),QE=new pf.default,F=QE;var To=(se=>(se.ROOM_DESTROY="1",se.JOIN_START="21",se.JOIN_SCHEDULE_SUCCESS="22",se.JOIN_SIGNAL_CONNECTION_START="23",se.JOIN_SIGNAL_CONNECTION_END="24",se.JOIN_SEND_CMD="25",se.JOIN_RECEIVED_CMD_RES="26",se.JOIN_SUCCESS="27",se.JOIN_FAILED="28",se.LEAVE_START="51",se.LEAVE_SEND_CMD="52",se.LEAVE_SUCCESS="53",se.PUBLISH_START="61",se.SEND_FIRST_VIDEO_FRAME="62",se.PUBLISH_FAILED="63",se.SUBSCRIBE_START="81",se.SUBSCRIBE_SUCCESS="82",se.SUBSCRIBE_FAILED="84",se.UNSUBSCRIBE_SUCCESS="83",se.LOCAL_TRACK_CAPTURE_START="101",se.LOCAL_TRACK_CAPTURE_SUCCESS="102",se.LOCAL_TRACK_CAPTURE_FAILED="103",se.LOCAL_TRACK_PUBLISHED="104",se.LOCAL_TRACK_UNPUBLISHED="105",se.LOCAL_TRACK_REPLACED="106",se.SWITCH_DEVICE_SUCCESS="107",se.TRACK_MUTED="108",se.TRACK_UNMUTED="109",se.REMOTE_TRACK_SUBSCRIBED="110",se.REMOTE_TRACK_UNSUBSCRIBED="111",se.LOCAL_TRACK_RECAPTURE="112",se.PLAY_TRACK_START="151",se.PLAYER_STATE_CHANGED="152",se.VIDEO_LOADED_DATA="153",se.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",se.SIGNAL_CONNECTION_STATE_CHANGED="201",se.PEER_CONNECTION_STATE_CHANGED="202",se.SINGLE_CONNECTION_STAT="203",se.SPC_RECONNECTED="204",se.HEARTBEAT_REPORT="251",se.RECEIVED_PUBLISHED_USER_LIST="252",se.REMOTE_PUBLISH_STATE_CHANGED="253",se.AUDIO_LEVEL_INTERVAL="260",se.NETWORK_QUALITY="261",se.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",se.QUALITY_LIMITATION_CHANGED="263",se.LOG="264",se))(To||{});var P=To;var YE="%cTRTC%c%s",ZE="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",KE="display: inline",pd=class pd{constructor(){l(this,"_isEnableUploadLog",!0);l(this,"_localJoinedUser",new Map);l(this,"_queue",[]);l(this,"_timeoutId",-1);l(this,"_logLevel",1);l(this,"_logLevelToUpload",2);!ss&&!Dn&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){F.on(P.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&pr[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),F.on(P.JOIN_SUCCESS,({room:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),F.once(P.JOIN_FAILED,()=>{this.startUpload()}),F.on(P.LEAVE_SUCCESS,({room:t})=>{this.deleteJoinedUser(t.userId)})}startUpload(){this._timeoutId===-1&&this.uploadInterval()}addJoinedUser(t){this._localJoinedUser.set(t.userId,t),this.startUpload()}deleteJoinedUser(t){this._localJoinedUser.delete(t)}uploadInterval(){this.upload().catch(()=>{}),this._timeoutId=window.setTimeout(()=>this.uploadInterval(),5e3)}getLogsToUpload(){let t={map:new Map,splicedQueue:[]};if(this._queue[0].forAllJoinedClients&&this._localJoinedUser.size===0)return t;let e=0;for(;e<this._queue.length&&e!==50;e++){let r=this._queue[e];if(r.forAllJoinedClients)this._localJoinedUser.forEach(({userId:o,sdkAppId:s})=>{t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})});else if(Ae(r.userId)&&$e(r.sdkAppId)){let{userId:o,sdkAppId:s}=r;t.map.has(o)?t.map.get(o).logs.push(r):t.map.set(o,{userId:o,sdkAppId:s,logs:[r]})}}return t.map.size>0&&(t.splicedQueue=this._queue.splice(0,e)),t}upload(){return A(this,null,function*(){if(this._queue.length===0||!this._isEnableUploadLog)return;let{map:t,splicedQueue:e}=this.getLogsToUpload();if(t.size===0)return;try{let o=[...t.values()];for(let s=0;s<o.length;s++){let{userId:a,sdkAppId:d,logs:h}=o[s];yield this.uploadLogWithRetry(JSON.stringify({timestamp:Mc(),sdkAppId:String(d),userId:a,version:Ke,log:h.map(m=>m.log).join(`
4
+ `)}),d),h.forEach(m=>m.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e){return Oi({retryFunction:()=>oi({url:ii(e,Ni.LOG),body:t,timeout:5e3,priority:"low"}),settings:{retries:3,timeout:2e3},onError:({retry:r})=>{r()}})()}getPrefix(t){let e=new Date;e.setTime(Cn());let r=String(e.getMilliseconds());return"padStart"in String.prototype&&(r=r.toString().padStart(3,"0")),`[${e.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${r}] <${pr[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){L(pr[t])||(this._logLevel!==t&&this.info("setLogLevel",t),this._logLevel=t)}enableUploadLog(){this._isEnableUploadLog=!0}disableUploadLog(){this.warn("disableUploadLog"),this._isEnableUploadLog=!1}logChunkToString(t){if(Ae(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}log(t,e,r=!0,o,s){var h;e.unshift(this.getPrefix(t));let a={log:e.reduce((m,T)=>`${m} ${this.logChunkToString(T)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};if(F.emit(P.LOG,{log:a}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(a),t<this._logLevel)return;let d=((h=pr[t])==null?void 0:h.toLowerCase())||"info";pd.PRINT_LOG_TAG?console[d](YE,ZE,KE,...e):console[d](...e)}debug(...t){this.log(1,t)}info(...t){this.log(2,t)}warn(...t){this.log(3,t)}error(...t){this.log(4,t)}createLogger(t){return new hs(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;pr[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};l(pd,"PRINT_LOG_TAG",!(bt||pt||nm));var pm=pd,U=new pm;var eT=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let t=Math.random()*16|0;return(i=="x"?t:t&3|8).toString(16)})},ia=eT;var hm=class{constructor(){l(this,"_prefix","TRTC");l(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!ni())return;setInterval(this.doFlush.bind(this),2e4),Object.keys(localStorage).filter(r=>{if(r.startsWith(this._prefix))try{let o=localStorage.getItem(r);if(!o)return!1;let s=JSON.parse(o);if(s&&s.expiresIn<Date.now())return!0}catch(o){return!1}return!1}).forEach(r=>localStorage.removeItem(r))}doFlush(){if(ni())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){U.warn(t)}}getItem(t){if(!ni())return null;try{let e=localStorage.getItem(this.getRealKey(t));if(!e)return null;let r=JSON.parse(e);return r&&r.expiresIn>=Date.now()?r.value:null}catch(e){U.warn(e)}}setItem(t,e){if(ni())try{let r={expiresIn:Date.now()+Pc,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){U.warn(r)}}deleteItem(t){if(!ni())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return U.warn(e),!1}}clear(){if(ni())try{localStorage.clear()}catch(t){U.warn(t)}}},vs=new hm;var Ui={};Kr(Ui,{HTTPS_API:()=>gT,IS_GET_CAPABILITIES_SUPPORTED:()=>Lm,IS_GET_SETTINGS_SUPPORTED:()=>ws,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>vT,IS_INSERTABLE_STREAM_SUPPORTED:()=>ma,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>wT,IS_RTC_RTP_SENDER_SUPPORTED:()=>la,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>$f,IS_SEI_SUPPORTED:()=>pa,IS_SPC_SUPPORTED:()=>yT,basis:()=>DT,capabilityCheck:()=>Vm,checkSystemRequirementsInternal:()=>Rd,decodeSupportStatus:()=>xf,encodeSupportStatus:()=>Pm,getBrowserInfo:()=>Ad,getDisplayResolution:()=>kf,isAddTransceiverSupported:()=>Bf,isBrowserSupported:()=>xm,isGetReceiversSupported:()=>IT,isGetSendersSupported:()=>Ff,isGetTransceiversSupported:()=>ST,isGetUserMediaSupported:()=>Lf,isMediaDevicesSupported:()=>bd,isMediaSessionSupported:()=>Wf,isMediaStreamTrackProcessorSupported:()=>km,isReplaceTrackSupported:()=>bT,isRequestVideoFrameCallbackSupported:()=>Ro,isSIMDSupported:()=>CT,isScreenCaptureApiAvailable:()=>da,isSelectedCandidatePair:()=>ET,isSetParametersSupported:()=>RT,isSmallStreamAPISupported:()=>Vf,isSmallStreamSupported:()=>ua,isStopTransceiverSupported:()=>AT,isTRTCSupported:()=>fT,isUnifiedPlanDefault:()=>TT,isUsedInHttpProtocol:()=>mi,isWebAudioSupported:()=>Uf,isWebCodecSupported:()=>Hf,isWebCodecsSupported:()=>Pf,isWebRTCSupported:()=>Um,isWebTransportSupported:()=>Gf});var vm={};Kr(vm,{AUDIO_LEVEL_SCALE:()=>di,AudioCodecPipelineType:()=>Td,AudioDecoderDowngradeState:()=>gm,AudioPlayerMode:()=>Sm,AudioType:()=>Tm,BASIC_TYPE:()=>yo,BannedReason:()=>ym,CONNECTION_CLOSED_REASON:()=>ff,ClientEvent:()=>fm,CodecType:()=>yf,ConnectionEvent:()=>hf,ConnectionState:()=>fd,DECODE_FAILED_ERROR_CODE:()=>Rm,FacingMode:()=>gd,LeaveReason:()=>Am,LocalTrackEvent:()=>hd,MULTI_VIDEO_DATA_TYPE:()=>ci,MediaType:()=>It,MediaTypeLabel:()=>tT,MonitorEventId:()=>sa,MutedFlag:()=>gf,NetworkQualityValue:()=>If,PlayerState:()=>Cs,ReceiveMode:()=>Sf,RemoteStreamType:()=>kr,RemoteTrackEvent:()=>Ds,RoomEvent:()=>Io,SceneNumber:()=>_m,StreamEvent:()=>_f,StreamType:()=>Tf,SubscribeMediaType:()=>oa,TRACK_ACTION:()=>Ef,TRACK_KIND:()=>Em,TrackEvent:()=>ai,UserRole:()=>Ht,UserRoleNumber:()=>So,VideoCodec:()=>bm,VideoCodecPipelineType:()=>na,VideoContentHint:()=>aa,VideoDecoderDowngradeState:()=>_d,VideoPlayerMode:()=>Ed,VideoType:()=>Im});var hf=(H=>(H.TRACK_ADDED="track-added",H.TRACK_UPDATED="track-updated",H.TRACK_SUBSCRIBED="track-subscribed",H.STREAM_ADDED="stream-added",H.STREAM_REMOVED="stream-removed",H.STREAM_UPDATED="stream-updated",H.STREAM_PUBLISHED="stream-published",H.STREAM_SUBSCRIBED="stream-subscribed",H.STREAM_UNSUBSCRIBED="stream-unsubscribed",H.STATE_CHANGED="state-changed",H.ERROR="error",H.CONNECTION_STATE_CHANGED="connection-state-changed",H.FIREWALL_RESTRICTION="firewall-restriction",H.SEI_MESSAGE="sei-message",H.CLOSED="closed",H))(hf||{}),ff=(a=>(a.REMOTE_LEAVE="remote user exitRoom",a.REMOTE_UNPUBLISH="remote user unpublished",a.LOCAL_LEAVE="you exitRoom",a.LOCAL_UNPUBLISH="you unpublished",a.LOCAL_UNSUBSCRIBE="you unsubscribed",a.SWITCH_ROLE="you switch role to audience",a))(ff||{}),fm=(z=>(z.STREAM_ADDED="stream-added",z.STREAM_REMOVED="stream-removed",z.STREAM_UPDATED="stream-updated",z.STREAM_SUBSCRIBED="stream-subscribed",z.CONNECTION_STATE_CHANGED="connection-state-changed",z.PEER_JOIN="peer-join",z.PEER_LEAVE="peer-leave",z.MUTE_AUDIO="mute-audio",z.MUTE_VIDEO="mute-video",z.UNMUTE_AUDIO="unmute-audio",z.UNMUTE_VIDEO="unmute-video",z.CLIENT_BANNED="client-banned",z.NETWORK_QUALITY="network-quality",z.AUDIO_VOLUME="audio-volume",z.SEI_MESSAGE="sei-message",z.ERROR="error",z))(fm||{}),_f=(s=>(s.PLAYER_STATE_CHANGED="player-state-changed",s.SCREEN_SHARING_STOPPED="screen-sharing-stopped",s.CONNECTION_STATE_CHANGED="connection-state-changed",s.DEVICE_AUTO_RECOVERED="device-auto-recovered",s.ERROR="error",s))(_f||{}),hd=(a=>(a.DEVICE_AUTO_RECOVERED="1",a.DEVICE_RECOVER_FAILED="5",a.DEVICE_CHANGED="2",a.ERROR="3",a.PUBLISH_STATE_CHANGED="4",a.ENCODE_FAILED="6",a))(hd||{}),Cs=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(Cs||{}),Io=(xe=>(xe.PEER_JOIN="peer-join",xe.PEER_LEAVE="peer-leave",xe.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",xe.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",xe.BANNED="banned",xe.NETWORK_QUALITY="network-quality",xe.AUDIO_VOLUME="audio-volume",xe.SEI_MESSAGE="sei-message",xe.ERROR="error",xe.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",xe.REMOTE_PUBLISHED="remote-published",xe.REMOTE_UNPUBLISHED="remote-unpublished",xe.FIREWALL_RESTRICTION="firewall-restriction",xe.HEARTBEAT_REPORT="heartbeat-report",xe.CUSTOM_MESSAGE="custom-message",xe.LAYER_DATA="layerData",xe.FIRST_VIDEO_FRAME="first-video-frame",xe.DUMP="dump",xe))(Io||{}),ai=(d=>(d.PLAYER_STATE_CHANGED="player-state-changed",d.MUTE="mute",d.UNMUTE="unmute",d.ERROR="error",d.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",d.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",d.FIRST_VIDEO_FRAME="first-video-frame",d))(ai||{}),Ds=(e=>(e.DECODE_FAILED="decode-failed",e.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",e))(Ds||{}),gf=(d=>(d[d.VIDEO=1]="VIDEO",d[d.SMALL=2]="SMALL",d[d.AUX=4]="AUX",d[d.AUDIO=8]="AUDIO",d[d.VIDEO_MUTE=16]="VIDEO_MUTE",d[d.AUX_MUTE=32]="AUX_MUTE",d[d.AUDIO_MUTE=64]="AUDIO_MUTE",d))(gf||{}),_m=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(_m||{}),So=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(So||{}),Ht=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Ht||{}),fd=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(fd||{}),gm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(gm||{}),_d=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(_d||{}),Em=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Em||{}),Ef=(e=>(e.ADD="add",e.REMOVE="remove",e))(Ef||{}),It=(s=>(s[s.NULL=0]="NULL",s[s.AUDIO=1]="AUDIO",s[s.AUX_VIDEO=2]="AUX_VIDEO",s[s.BIG_VIDEO=4]="BIG_VIDEO",s[s.SMALL_VIDEO=8]="SMALL_VIDEO",s))(It||{}),tT={1:"audio",2:"auxVideo",4:"video"},Tm=(t=>(t[t.opus=111]="opus",t))(Tm||{}),Im=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(Im||{}),Tf=(e=>(e.Big="big",e.Small="small",e))(Tf||{}),kr=(e=>(e.Main="main",e.Aux="auxiliary",e))(kr||{}),ci=(s=>(s[s.MULTI_DATA_AUDIO=1]="MULTI_DATA_AUDIO",s[s.MULTI_DATA_BIG_IMG=2]="MULTI_DATA_BIG_IMG",s[s.MULTI_DATA_SMALL_IMG=3]="MULTI_DATA_SMALL_IMG",s[s.MULTI_DATA_AUX_IMG=7]="MULTI_DATA_AUX_IMG",s[s.MULTI_DATA_TYPE_BUTT=12]="MULTI_DATA_TYPE_BUTT",s))(ci||{}),sa=(q=>(q[q.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",q[q.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",q[q.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",q[q.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",q[q.MUTE_AUDIO=32772]="MUTE_AUDIO",q[q.MUTE_VIDEO=32773]="MUTE_VIDEO",q[q.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",q[q.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",q[q.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",q[q.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",q[q.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",q[q.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",q[q.SWITCH_CAMERA=32780]="SWITCH_CAMERA",q[q.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",q[q.REPLACE_VIDEO=32782]="REPLACE_VIDEO",q[q.REPLACE_AUDIO=32783]="REPLACE_AUDIO",q[q.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",q[q.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",q[q.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",q[q.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",q[q.JOIN=32788]="JOIN",q[q.LEAVE=32789]="LEAVE",q[q.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",q[q.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",q[q.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",q[q.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",q[q.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",q[q.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",q[q.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",q[q.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",q[q.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",q[q.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",q[q.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",q[q.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",q[q.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",q[q.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",q[q.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",q[q.PUBLISH_AUX=32805]="PUBLISH_AUX",q[q.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",q[q.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",q[q.VIDEO_ENCODER=4004]="VIDEO_ENCODER",q[q.VIDEO_DECODER=4005]="VIDEO_DECODER",q))(sa||{}),If=(d=>(d[d.UNKNOWN=0]="UNKNOWN",d[d.EXCELLENT=1]="EXCELLENT",d[d.GOOD=2]="GOOD",d[d.POOR=3]="POOR",d[d.BAD=4]="BAD",d[d.VERY_BAD=5]="VERY_BAD",d[d.DISCONNECTED=6]="DISCONNECTED",d))(If||{}),Sf=(o=>(o[o.MANUAL=0]="MANUAL",o[o.AUTO_AUDIO=1]="AUTO_AUDIO",o[o.AUTO_VIDEO=2]="AUTO_VIDEO",o[o.AUTO_ALL=3]="AUTO_ALL",o))(Sf||{}),gd=(e=>(e.user="user",e.environment="environment",e))(gd||{}),Ed=(r=>(r[r.ELEMENT=0]="ELEMENT",r[r.CANVAS_FROM_ELEMENT=1]="CANVAS_FROM_ELEMENT",r[r.CANVAS_WITHOUT_ELEMENT=2]="CANVAS_WITHOUT_ELEMENT",r))(Ed||{}),Sm=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(Sm||{}),ym=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(ym||{}),Am=(m=>(m[m.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",m[m.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",m[m.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",m[m.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",m[m.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",m[m.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",m[m.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",m[m.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",m[m.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",m))(Am||{}),di=1e8,oa=class{constructor(){l(this,"mediaType",0)}set audio(t){t?this.mediaType|=1:this.mediaType&=-2}get audio(){return!!(this.mediaType&1)}set video(t){t?this.mediaType|=4:this.mediaType&=-5}get video(){return!!(this.mediaType&4)}set auxiliary(t){t?this.mediaType|=2:this.mediaType&=-3}get auxiliary(){return!!(this.mediaType&2)}set smallVideo(t){t?this.mediaType|=8:this.mediaType&=-9}get smallVideo(){return!!(this.mediaType&8)}},yo=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(yo||{}),bm=(r=>(r.H264="h264",r.H265="h265",r.VP8="vp8",r))(bm||{}),na=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.DUMP=1]="DUMP",o[o.SEI=2]="SEI",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(na||{}),Td=(o=>(o[o.ENCRYPT_AND_DECRYPT=0]="ENCRYPT_AND_DECRYPT",o[o.NTP_TO_AUDIO_FRAME=1]="NTP_TO_AUDIO_FRAME",o[o.DUMP=2]="DUMP",o[o.ENCODE_AND_DECODE=3]="ENCODE_AND_DECODE",o))(Td||{}),yf=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(yf||{}),Rm=(I=>(I[I.SUCCESS=0]="SUCCESS",I[I.FAILED=1]="FAILED",I[I.WEBCODEC_INIT=2]="WEBCODEC_INIT",I[I.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",I[I.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",I[I.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",I[I.WASM_INIT=6]="WASM_INIT",I[I.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",I[I.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",I[I.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",I[I.TEST=10]="TEST",I))(Rm||{}),aa=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(aa||{});var ot={AVOID_REPEATED_CALL:"AVOID_REPEATED_CALL",INVALID_PARAMETER_REQUIRED:"INVALID_PARAMETER_REQUIRED",INVALID_PARAMETER_TYPE:"INVALID_PARAMETER_TYPE",INVALID_PARAMETER_EMPTY:"INVALID_PARAMETER_EMPTY",INVALID_PARAMETER_INSTANCE:"INVALID_PARAMETER_INSTANCE",INVALID_PARAMETER_RANGE:"INVALID_PARAMETER_RANGE",INVALID_PARAMETER_MIN:"INVALID_PARAMETER_MIN",INVALID_PARAMETER_MAX:"INVALID_PARAMETER_MAX",INVALID_PARAMETER_STREAMTYPE:"INVALID_PARAMETER_STREAMTYPE",API_CALL_TIMEOUT:"API_CALL_TIMEOUT",SIGNAL_CHANNEL_RECONNECTION_FAILED:"SIGNAL_CHANNEL_RECONNECTION_FAILED",SIGNAL_CHANNEL_SETUP_FAILED:"SIGNAL_CHANNEL_SETUP_FAILED",ERROR_MESSAGE:"ERROR_MESSAGE",EXCHANGE_SDP_TIMEOUT:"EXCHANGE_SDP_TIMEOUT",DOWNLINK_RECONNECTION_FAILED:"DOWNLINK_RECONNECTION_FAILED",EXCHANGE_SDP_FAILED:"EXCHANGE_SDP_FAILED",UPDATE_OFFER_TIMEOUT:"UPDATE_OFFER_TIMEOUT",UPLINK_RECONNECTION_FAILED:"UPLINK_RECONNECTION_FAILED",INVALID_RECORDID:"INVALID_RECORDID",INVALID_PURE_AUDIO:"INVALID_PURE_AUDIO",INVALID_STREAMID:"INVALID_STREAMID",INVALID_USER_DEFINE_RECORDID:"INVALID_USER_DEFINE_RECORDID",INVALID_USER_DEFINE_PUSH_ARGS:"INVALID_USER_DEFINE_PUSH_ARGS",INVALID_PROXY:"INVALID_PROXY",INVALID_JOIN:"INVALID_JOIN",INVALID_ROOMID_STRING:"INVALID_ROOMID_STRING",INVALID_ROOMID_INTEGER:"INVALID_ROOMID_INTEGER",INVALID_SIGNAL_CHANNEL:"INVALID_SIGNAL_CHANNEL",JOIN_ROOM_TIMEOUT:"JOIN_ROOM_TIMEOUT",JOIN_ROOM_FAILED:"JOIN_ROOM_FAILED",REJOIN_ROOM_FAILED:"REJOIN_ROOM_FAILED",INVALID_DESTROY:"INVALID_DESTROY",INVALID_PUBLISH:"INVALID_PUBLISH",INVALID_UNPUBLISH:"INVALID_UNPUBLISH",INVALID_AUDIENCE:"INVALID_AUDIENCE",INVALID_INITIALIZE:"INVALID_INITIALIZE",INVALID_DUPLICATE_PUBLISHING:"INVALID_DUPLICATE_PUBLISHING",INVALID_SUBSCRIBE_UNDEFINED:"INVALID_SUBSCRIBE_UNDEFINED",INVALID_SUBSCRIBE_LOCAL:"INVALID_SUBSCRIBE_LOCAL",INVALID_REMOTE_STREAM:"INVALID_REMOTE_STREAM",SUBSCRIBE_FAILED:"SUBSCRIBE_FAILED",INVALID_ROLE:"INVALID_ROLE",INVALID_PARAMETER_SWITCH_ROLE:"INVALID_PARAMETER_SWITCH_ROLE",INVALID_OPERATION_SWITCH_ROLE:"INVALID_OPERATION_SWITCH_ROLE",SWITCH_ROLE_TIMEOUT:"SWITCH_ROLE_TIMEOUT",SWITCH_ROLE_FAILED:"SWITCH_ROLE_FAILED",CLIENT_BANNED:"CLIENT_BANNED",INVALID_OPERATION_START_PUBLISH_CDN:"INVALID_OPERATION_START_PUBLISH_CDN",INVALID_OPERATION_STOP_PUBLISH_CDN:"INVALID_OPERATION_STOP_PUBLISH_CDN",INVALID_STREAM_ID:"INVALID_STREAM_ID",START_PUBLISH_CDN_FAILED:"START_PUBLISH_CDN_FAILED",STOP_PUBLISH_CDN_FAILED:"STOP_PUBLISH_CDN_FAILED",START_MIX_TRANSCODE:"START_MIX_TRANSCODE",STOP_MIX_TRANSCODE:"STOP_MIX_TRANSCODE",INVALID_AUDIO_VOLUME:"INVALID_AUDIO_VOLUME",ENABLE_SMALL_STREAM_PUBLISHED:"ENABLE_SMALL_STREAM_PUBLISHED",DISABLE_SMALL_STREAM_PUBLISHED:"DISABLE_SMALL_STREAM_PUBLISHED",NOT_SUPPORTED_SMALL_STREAM:"NOT_SUPPORTED_SMALL_STREAM",INVALID_SMALL_STREAM_PROFILE:"INVALID_SMALL_STREAM_PROFILE",INVALID_PARAMETER_REMOTE_STREAM:"INVALID_PARAMETER_REMOTE_STREAM",INVALID_OPERATION_CHANGE_SMALL:"INVALID_OPERATION_CHANGE_SMALL",REMOTE_NOT_PUBLISH_SMALL_STREAM:"REMOTE_NOT_PUBLISH_SMALL_STREAM",INVALID_SWITCH_DEVICE:"INVALID_SWITCH_DEVICE",INVALID_SWITCH_DEVICE_PUBLISHING:"INVALID_SWITCH_DEVICE_PUBLISHING",INVALID_REPLACE_TRACK:"INVALID_REPLACE_TRACK",INVALID_INITIALIZE_LOCAL_STREAM:"INVALID_INITIALIZE_LOCAL_STREAM",INVALID_ADD_TRACK_REPETITIVE:"INVALID_ADD_TRACK_REPETITIVE",INVALID_ADD_TRACK_REMOVING:"INVALID_ADD_TRACK_REMOVING",INVALID_ADD_TRACK_PUBLISHING:"INVALID_ADD_TRACK_PUBLISHING",INVALID_STREAM_INITIALIZED:"INVALID_STREAM_INITIALIZED",INVALID_ADD_TRACK_NUMBER:"INVALID_ADD_TRACK_NUMBER",INVALID_REMOVE_AUDIO_TRACK:"INVALID_REMOVE_AUDIO_TRACK",INVALID_REMOVE_AUDIO_ADDING:"INVALID_REMOVE_AUDIO_ADDING",INVALID_REMOVE_AUDIO_ON:"INVALID_REMOVE_AUDIO_ON",INVALID_REMOVE_TRACK_PUBLISHING:"INVALID_REMOVE_TRACK_PUBLISHING",INVALID_REMOVE_TRACK_NOT_TRACK:"INVALID_REMOVE_TRACK_NOT_TRACK",INVALID_REMOVE_TRACK_NUMBER:"INVALID_REMOVE_TRACK_NUMBER",INVALID_REPLACE_TRACK_NO_TRACK:"INVALID_REPLACE_TRACK_NO_TRACK",REPEAT_JOIN:"REPEAT_JOIN",CLIENT_DESTROYED:"CLIENT_DESTROYED",NOT_BUG_PACKAGE:"NOT_BUG_PACKAGE",START_MIX_TRANSCODE_FAILED:"START_MIX_TRANSCODE_FAILED",STOP_MIX_TRANSCODE_FAILED:"STOP_MIX_TRANSCODE_FAILED",MIX_TRANSCODE_NOT_STARTED:"MIX_TRANSCODE_NOT_STARTED",CANNOT_LESS_THAN_ZERO:"CANNOT_LESS_THAN_ZERO",MIX_PARAMS_VIDEO_FRAMERATE:"MIX_PARAMS_VIDEO_FRAMERATE",MIX_PARAMS_VIDEO_GOP:"MIX_PARAMS_VIDEO_GOP",MIX_PARAMS_AUDIO_BITRATE:"MIX_PARAMS_AUDIO_BITRATE",MIX_PARAMS_USER_Z_ORDER:"MIX_PARAMS_USER_Z_ORDER",MIX_PARAMS_NOT_SELF:"MIX_PARAMS_NOT_SELF",MIX_PARAMS_USER_STREAM:"MIX_PARAMS_USER_STREAM",INVALID_PLAY:"INVALID_PLAY",INVALID_ELEMENT_ID:"INVALID_ELEMENT_ID",INVALID_ELEMENT_ID_TYPE:"INVALID_ELEMENT_ID_TYPE",PLAY_FAILED:"PLAY_FAILED",INVALID_USERID:"INVALID_USERID",INVALID_CREATE_STREAM_SOURCE:"INVALID_CREATE_STREAM_SOURCE",INVALID_CREATE_STREAM_SCREEN:"INVALID_CREATE_STREAM_SCREEN",INVALID_CREATE_STREAM_AUDIO:"INVALID_CREATE_STREAM_AUDIO",INVALID_CREATE_STREAM_SCREEN_AUDIO:"INVALID_CREATE_STREAM_SCREEN_AUDIO",NOT_SUPPORTED_HTTP:"NOT_SUPPORTED_HTTP",NOT_SUPPORTED_WEBRTC:"NOT_SUPPORTED_WEBRTC",NOT_SUPPORTED_PROFILE:"NOT_SUPPORTED_PROFILE",NOT_SUPPORTED_MEDIA:"NOT_SUPPORTED_MEDIA",NOT_SUPPORTED_H264ENCODE:"NOT_SUPPORTED_H264ENCODE",NOT_SUPPORTED_H264DECODE:"NOT_SUPPORTED_H264DECODE",NOT_SUPPORTED_TRACK:"NOT_SUPPORTED_TRACK",NOT_SUPPORTED_SWITCH_DEVICE:"NOT_SUPPORTED_SWITCH_DEVICE",NOT_SUPPORTED_CAPTURE:"NOT_SUPPORTED_CAPTURE",NOT_SUPPORTED_AUX:"NOT_SUPPORTED_AUX",MICROPHONE_NOT_FOUND:"MICROPHONE_NOT_FOUND",CAMERA_NOT_FOUND:"CAMERA_NOT_FOUND",SIGNAL_RESPONSE_FAILED:"SIGNAL_RESPONSE_FAILED",CATCH_HANDLER_ERROR:"CATCH_HANDLER_ERROR",API_NOT_EXIST:"API_NOT_EXIST",CONNECTION_CLOSED:"CONNECTION_CLOSED",SUBSCRIBE_ALL_FALSE:"SUBSCRIBE_ALL_FALSE",SEI_NOT_SUPPORT:"SEI_NOT_SUPPORT",SEI_DISABLED:"SEI_DISABLED",SEI_BEFORE_PUBLISH:"SEI_BEFORE_PUBLISH",SEI_NOT_VIDEO:"SEI_NOT_VIDEO",CALL_FREQUENCY_LIMIT:"CALL_FREQUENCY_LIMIT",CONNECTION_ABORTED:"CONNECTION_ABORTED",API_CALL_ABORTED:"API_CALL_ABORTED",DUPLICATE_AUX:"DUPLICATE_AUX"},Wt={AVOID_REPEATED_CALL(i){return`previous ${i.name}() is ongoing, please avoid repeated calls.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ut(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ut(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_MIN({key:i,rule:t,fnName:e,value:r}){return`the min value of ${i||t.name} is ${t.min}, received: ${r}.`},INVALID_PARAMETER_MAX({key:i,rule:t,fnName:e,value:r}){return`the max value of ${i||t.name} is ${t.max}, received: ${r}.`},API_CALL_TIMEOUT(i){return`${i.commandDesc||i.command} timeout observed.`},SIGNAL_CHANNEL_RECONNECTION_FAILED:"signal channel reconnection failed, please check your network.",SIGNAL_CHANNEL_SETUP_FAILED(i){return`SignalChannel setup failure: (errorCode: ${i.errorCode}, errorMsg: ${i.errorMsg} }).`},ERROR_MESSAGE(i){let t=`${i.type} failed`;return i.message&&(t=`${t}: ${i.message}.`),t},EXCHANGE_SDP_TIMEOUT:"exchange sdp timeout.",DOWNLINK_RECONNECTION_FAILED:"downlink reconnection failed, please check your network and re-join room.",EXCHANGE_SDP_FAILED(i){return`exchange sdp failed ${i.errMsg}.`},UPDATE_OFFER_TIMEOUT:"update offer timeout observed.",UPLINK_RECONNECTION_FAILED:"uplink reconnection failed, please check your network and publish again.",INVALID_RECORDID:"recordId must be an integer number.",INVALID_PURE_AUDIO:"pureAudioPushMode must be 1 or 2.",INVALID_STREAMID:"streamId must be a sting literal within 64 bytes, and not be empty.",INVALID_USER_DEFINE_RECORDID:"userDefineRecordId must be a sting literal contains (a-zA-Z),(0-9), underline and hyphen, within 64 bytes, and not be empty.",INVALID_USER_DEFINE_PUSH_ARGS:"userDefinePushArgs must be a sting literal within 256 bytes, and not be empty.",INVALID_PROXY:'proxy server url must start with "wss://".',INVALID_JOIN:"duplicate join() called.",INVALID_ROOMID_STRING(i){return`'${i}' must be validate string when useStringRoomId is true.`},INVALID_ROOMID_INTEGER(i){return`'${i}' must be an integer between [1, 4294967294] when useStringRoomId is false.`},INVALID_SIGNAL_CHANNEL:"SignalChannel is not ready yet.",JOIN_ROOM_TIMEOUT:"join room timeout.",JOIN_ROOM_FAILED({error:i,code:t}){return`Failed to join room - ${i} code: ${t}`},REJOIN_ROOM_FAILED(i){return`reJoin room: ${i.roomId} failed, please check your network.`},INVALID_DESTROY:"please call leave() before destroy().",INVALID_PUBLISH:"please call join() before publish().",INVALID_UNPUBLISH:"stream has not been published yet.",INVALID_AUDIENCE:'no permission to publish() under live/audience, please call switchRole("anchor") firstly before publish().',INVALID_INITIALIZE:"cannot publish stream because stream is not initialized, is switching device, or has been closed.",INVALID_DUPLICATE_PUBLISHING(i){return`duplicate ${i} stream publishing, please unpublish your prev ${i} stream and then re-publish.`},INVALID_SUBSCRIBE_UNDEFINED:"stream is undefined or null.",INVALID_SUBSCRIBE_LOCAL:"stream cannot be LocalStream.",INVALID_REMOTE_STREAM:"remoteStream does not exist because it has been unpublished by remote peer.",SUBSCRIBE_FAILED({message:i,userId:t,streamType:e}){return`failed to subscribe ${t} ${e} stream, reason: ${i}.`},INVALID_ROLE:"switchRole can only be called in live mode.",INVALID_PARAMETER_SWITCH_ROLE:"role could only be set to a value as anchor or audience.",INVALID_OPERATION_SWITCH_ROLE:"please call join() before switchRole().",SWITCH_ROLE_TIMEOUT:"switchRole timeout.",SWITCH_ROLE_FAILED(i){return`switchRole failed, errCode: ${i.code} errMsg: ${i.message}.`},CLIENT_BANNED(i){return`client was banned because of ${i.message}.`},INVALID_OPERATION_START_PUBLISH_CDN:"please call startPublishCDNStream() after join room and publish the local stream.",INVALID_OPERATION_STOP_PUBLISH_CDN:"please call startPublishCDNStream() before stopPublishCDNStream().",START_PUBLISH_CDN_FAILED(i){return`startPublishCDNStream failed, errMsg: ${i.message}.`},STOP_PUBLISH_CDN_FAILED(i){return`stopPublishCDNStream failed, errMsg: ${i.message}.`},INVALID_STREAM_ID(i){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},START_MIX_TRANSCODE:"please call startMixTranscode() after join().",STOP_MIX_TRANSCODE:"please call stopMixTranscode() after startMixTranscode().",INVALID_AUDIO_VOLUME:"interval must be a number.",ENABLE_SMALL_STREAM_PUBLISHED:"Cannot enable small stream after localStream published.",DISABLE_SMALL_STREAM_PUBLISHED:"Cannot disable small stream after localStream published.",NOT_SUPPORTED_SMALL_STREAM:"your browser does not support opening small stream.",INVALID_SMALL_STREAM_PROFILE:"small stream profile is invalid.",INVALID_PARAMETER_REMOTE_STREAM:"remoteStream is invalid.",INVALID_OPERATION_CHANGE_SMALL:"cannot switch to the small stream without subscribing to the video of remoteStream.",REMOTE_NOT_PUBLISH_SMALL_STREAM:"remote peer does not publish small stream.",INVALID_SWITCH_DEVICE:"cannot switch device on current stream.",INVALID_SWITCH_DEVICE_PUBLISHING:"cannot switch device when publishing localStream.",INVALID_REPLACE_TRACK:"cannot replace track when publishing localStream.",INVALID_INITIALIZE_LOCAL_STREAM:"local stream has not initialized yet.",INVALID_ADD_TRACK_REPETITIVE:"previous addTrack is ongoing, please avoid repetitive execution.",INVALID_ADD_TRACK_REMOVING:"cannot add track when a track is removing.",INVALID_ADD_TRACK_PUBLISHING:"cannot add track when publishing localStream.",INVALID_STREAM_INITIALIZED:"your local stream haven't been initialized yet.",INVALID_ADD_TRACK_NUMBER:"a Stream has at most one audio track and one video track.",INVALID_REMOVE_AUDIO_TRACK:"remove audio track is not supported on your browser.",INVALID_REMOVE_AUDIO_ADDING:"cannot remove track when a track is adding.",INVALID_REMOVE_AUDIO_ON:"previous removeTrack is ongoing, please avoid repetitive execution.",INVALID_REMOVE_TRACK_PUBLISHING:"cannot remove track when publishing localStream.",INVALID_REMOVE_TRACK_NOT_TRACK:"localStream has not this track.",INVALID_REMOVE_TRACK_NUMBER:"remove the only video track is not supported, please use replaceTrack or muteVideo.",INVALID_REPLACE_TRACK_NO_TRACK(i){return`cannot replace ${i.kind} track because stream has not ${i.kind} track`},NOT_BUG_PACKAGE:"You need to buy packages, refer to tencent console.",START_MIX_TRANSCODE_FAILED(i){return`startMixTranscode failed, errMsg: ${i.message}.`},STOP_MIX_TRANSCODE_FAILED(i){return`stopMixTranscode failed, errMsg: ${i.message}.`},MIX_TRANSCODE_NOT_STARTED:"mixTranscode has not been started.",CANNOT_LESS_THAN_ZERO({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},MIX_PARAMS_VIDEO_FRAMERATE:"'config.videoFramerate' should be an integer between 0 and 30, excluding 0.",MIX_PARAMS_VIDEO_GOP:"'config.videoGOP' should be an integer between 1 and 8.",MIX_PARAMS_AUDIO_BITRATE:"'config.audioBitrate' should be an integer between 32 and 192.",MIX_PARAMS_USER_Z_ORDER(i){return`'${i}' is required and must be between 1 and 15.`},MIX_PARAMS_NOT_SELF:"'config.mixUsers' must contain self.",MIX_PARAMS_USER_STREAM:"'config.videoWidth' and 'config.videoHeight' of output stream should be contain all mix stream.",INVALID_PLAY:"duplicate play() call observed, please stop() firstly.",INVALID_ELEMENT_ID:({key:i,fnName:t})=>`'${i}' is not found in the document object when calling ${t}().`,INVALID_ELEMENT_ID_TYPE:({key:i,fnName:t,type:e})=>`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`,PLAY_FAILED:i=>`${i.media} play failed, browser exception: ${i.error.toString()}`,INVALID_USERID:"userId cannot be all spaces.",INVALID_CREATE_STREAM_SOURCE:"LocalStream must be created by createStream() with either audio/video or audioSource/videoSource, but can not be mixed with audio/video and audioSource/videoSource.",INVALID_CREATE_STREAM_SCREEN:"screen/video cannot be both true.",INVALID_CREATE_STREAM_AUDIO:"audio/screenAudio cannot be both true.",INVALID_CREATE_STREAM_SCREEN_AUDIO:"when screen is true, screenAudio can be configured.",NOT_SUPPORTED_HTTP:"http protocol does not support the ability to capture microphone, camera and screen. please use https to deploy your page.",NOT_SUPPORTED_WEBRTC:"your browser or environment does not support full WebRTC capabilities.",NOT_SUPPORTED_PROFILE:"your browser does not support setVideoProfile.",NOT_SUPPORTED_MEDIA:"your browser or environment does not support navigator.mediaDevices.",NOT_SUPPORTED_H264ENCODE:"your device does not support H.264 encoding.",NOT_SUPPORTED_H264DECODE:"your device does not support H.264 decoding.",NOT_SUPPORTED_TRACK(i){return`${i}Track is not supported on your browser.`},NOT_SUPPORTED_SWITCH_DEVICE:"switchDevice is not supported on your browser.",NOT_SUPPORTED_CAPTURE:"Your browser or environment does not support screen sharing, please check whether the browser version.",MICROPHONE_NOT_FOUND:"no microphone detected, please check your microphone.",CAMERA_NOT_FOUND:"no camera detected, please check your camera.",SIGNAL_RESPONSE_FAILED(i){return`${i.signalResponse} failed, response code is ${i.code} , errMsg: ${i.message}.`},CATCH_HANDLER_ERROR({name:i,event:t}){return`an error was caught in ${i}.on('${t}', handler), please check your code in 'handler'.`},API_NOT_EXIST({name:i}){return`experimental api ${i} does not exist.`},REPEAT_JOIN:i=>"please avoid repeated join.",CONNECTION_CLOSED:"remoteStream has been unsubscribed or unpublished by remote user.",SUBSCRIBE_ALL_FALSE:"cannot subscribe when both audio & video are false, use client.unsubscribe() instead",CLIENT_DESTROYED({funName:i}){return`failed to call ${i}() because client was destroyed.`},SEI_NOT_SUPPORT:i=>`not support to sendSEIMessage${i===!1?" without using h264 codec":""}`,SEI_DISABLED:"SEI is disabled",SEI_BEFORE_PUBLISH:"please call sendSEIMessage() after publish() success",SEI_NOT_VIDEO:"cannot send sei when localStream has not video.",CALL_FREQUENCY_LIMIT:({isSize:i,name:t,timesInSecond:e,maxSizeInSecond:r})=>`api ${t} call ${i?"size":"times"} is over ${i?`${r} bytes`:e} in a second.`,CONNECTION_ABORTED(i){return`connection aborted due to: ${i}`},API_CALL_ABORTED(i){let t;return i.message.includes("REMOTE_STREAM_NOT_EXIST")?t=`Subscribe ${i.userId} ${i.streamType} stream aborted, reason: remote user ${i.userId} unpublished stream.`:t=`API aborted, reason: ${i.message}`,t},DUPLICATE_AUX:"only one auxiliary stream can be published in a room.",NOT_SUPPORTED_AUX:"publish auxiliary stream is not supported on your browser.",INVALID_PARAMETER_STREAMTYPE:i=>`'streamType' is required when 'userId' is not '*', calling ${i}()`};var Af=(i,t)=>t?`${Nr}/${i}/${t}`:`${Nr}/${i}/index.html`;var rT=()=>{if(window.TRTC_ERROR_INFO&&window.TRTC_ERROR_LINK)return{TRTC_ERROR_INFO:window.TRTC_ERROR_INFO,TRTC_ERROR_LINK:window.TRTC_ERROR_LINK};let i=localStorage==null?void 0:localStorage.getItem(Fl);if(i){i=JSON.parse(i);let t=document.createElement("script");t.type="text/javascript",t.text=i.message,document.body.appendChild(t);let e=window.TRTC_ERROR_INFO,r=window.TRTC_ERROR_LINK;return document.body.removeChild(t),{TRTC_ERROR_INFO:e,TRTC_ERROR_LINK:r}}return{}};function st(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",a="",d="";Fe(Wt[t])?s=Wt[t](e):Ae(Wt[t])&&(s=Wt[t]);let{TRTC_ERROR_INFO:h,TRTC_ERROR_LINK:m}=rT();r?d=`${r.className}.html#${r.fnName}`:m&&m[t]&&(Fe(m[t])?d=m[t](e):Ae(m[t])&&(d=m[t]));let T=s;return hr()&&(h&&h[t]&&(Fe(h[t])?a=h[t](e):Ae(h[t])&&(a=h[t])),a&&(o?T=`${a}
5
+ \u8BF7\u67E5\u770B\u6587\u6863: ${Af("zh-cn",d)}
6
6
 
7
7
  `:T=`${a}
8
8
 
9
9
  `,T+=s)),o&&(T+=`
10
- Refer to: ${yf("en",d)}
11
- `),T}var Om=Ci(wf(),1);var uT=1,lT=0,Id=class{constructor(t=!0){l(this,"countMap",new Map);l(this,"distributionMap",new Map);l(this,"version");l(this,"log",U.createLogger({id:"kv"}));t&&(F.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===D.AUDIO?501700:511700,cost:r})}),F.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===D.AUDIO?501700:511700,error:r})}))}getReportData(){let t={msg_sdk_basic_info:{uint32_sdk_version:Jc(this.version||Ke),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([e,r])=>({uint32_key:e,uint32_count:r})),stats_distribution:[...this.distributionMap.entries()].map(([e,r])=>({uint32_key:e,distribution_items:[...r.entries()].map(([o,s])=>({uint32_item_key:o,uint32_item_value:s}))}))};return this.countMap.clear(),this.distributionMap.clear(),t}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1}){var d;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let s=((d=this.distributionMap)==null?void 0:d.get(t))||new Map,a=0;if($e(r))a=Math.floor(e/r);else for(let h=r.length-1;h>0;h--)if(e>r[h]){a=h;break}s.set(a,(s.get(a)||0)+1),this.distributionMap.set(t,s)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:uT,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=Y.UNKNOWN;e&&($e(e)?r=e:(!L(e.extraCode)||!L(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:lT,useUV:!1}),this.addEnum({key:t,value:r,useUV:!1})}},Sd=(fe=>(fe[fe.enterRoom=500700]="enterRoom",fe[fe.exitRoom=500701]="exitRoom",fe[fe.switchRole=500702]="switchRole",fe[fe.destroy=500703]="destroy",fe[fe.startLocalAudio=500704]="startLocalAudio",fe[fe.updateLocalAudio=500705]="updateLocalAudio",fe[fe.stopLocalAudio=500706]="stopLocalAudio",fe[fe.startLocalVideo=500707]="startLocalVideo",fe[fe.updateLocalVideo=500708]="updateLocalVideo",fe[fe.stopLocalVideo=500709]="stopLocalVideo",fe[fe.startScreenShare=500710]="startScreenShare",fe[fe.updateScreenShare=500711]="updateScreenShare",fe[fe.stopScreenShare=500712]="stopScreenShare",fe[fe.startRemoteVideo=500713]="startRemoteVideo",fe[fe.updateRemoteVideo=500714]="updateRemoteVideo",fe[fe.stopRemoteVideo=500715]="stopRemoteVideo",fe[fe.muteRemoteAudio=500716]="muteRemoteAudio",fe[fe.setRemoteAudioVolume=500717]="setRemoteAudioVolume",fe[fe.use=500718]="use",fe[fe.sendSEIMessage=5e5]="sendSEIMessage",fe[fe.sendCustomMessage=500001]="sendCustomMessage",fe))(Sd||{}),Nm=(m=>(m[m.AudioMixer=550700]="AudioMixer",m[m.AIDenoiser=551700]="AIDenoiser",m[m.VirtualBackground=570700]="VirtualBackground",m[m.Beauty=571700]="Beauty",m[m.Watermark=572700]="Watermark",m[m.BasicBeauty=574700]="BasicBeauty",m[m.CDNStreaming=590700]="CDNStreaming",m[m.DeviceDetector=591700]="DeviceDetector",m[m.Debug=592700]="Debug",m))(Nm||{}),wm=(m=>(m[m.AudioMixer=550701]="AudioMixer",m[m.AIDenoiser=551701]="AIDenoiser",m[m.VirtualBackground=570701]="VirtualBackground",m[m.Beauty=571701]="Beauty",m[m.Watermark=572701]="Watermark",m[m.BasicBeauty=574701]="BasicBeauty",m[m.CDNStreaming=590701]="CDNStreaming",m[m.DeviceDetector=591701]="DeviceDetector",m[m.Debug=592701]="Debug",m))(wm||{}),Mm=(m=>(m[m.AudioMixer=550702]="AudioMixer",m[m.AIDenoiser=551702]="AIDenoiser",m[m.VirtualBackground=570702]="VirtualBackground",m[m.Beauty=571702]="Beauty",m[m.Watermark=572702]="Watermark",m[m.BasicBeauty=574702]="BasicBeauty",m[m.CDNStreaming=590702]="CDNStreaming",m[m.DeviceDetector=591702]="DeviceDetector",m[m.Debug=592702]="Debug",m))(Mm||{});var mT=new Id(!0),yo=new Id(!1);var X=mT;var we={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1}},pT=new Map([[_r,["Firefox",Xc]],[_s,["Edg",Yc]],[ys,["Chrome",ld]],[$t,["Safari",Pi]],[gr,["TBS",ed]],[Gn,["XWEB",td]],[gs&&po,["WeChat",rd]],[jn,["QQ(Win)",id]],[Ts,["QQ(Mobile)",hs]],[Es,["QQ(Mobile X5)",hs]],[qn,["QQ(Mac)",od]],[Jn,["QQ(iPad)",sd]],[Xn,["MI",nd]],[Qn,["HW",ad]],[Yn,["Samsung",cd]],[Is,["OPPO",dd]],[Ss,["VIVO",ud]],[fs,["EDGE",Qc]],[Hn,["SogouMobile",Zc]],[Wn,["Sogou",Kc]]]);function Ad(){let i=pT.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var xm=function(){return!(im||fs||_s&&tm<80||_r&&em<56)},Of=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder","MediaStreamTrackGenerator"].every(t=>t in window)},bd=function(){if(!navigator.mediaDevices)return mi()||U.error(Wt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Mf=!1;function mi(){return location.protocol==="http:"&&!Tr?(Mf||U.error(st({key:ot.NOT_SUPPORTED_HTTP})),Mf=!0,!0):!1}var km=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},Pm=function(){return A(this,null,function*(){if(we.detail.isH264EncodeSupported&&we.detail.isVp8EncodeSupported)return{isH264EncodeSupported:we.detail.isH264EncodeSupported,isVp8EncodeSupported:we.detail.isVp8EncodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection,o=document.createElement(D.CANVAS);o.getContext("2d");let s=o.captureStream(0);return r.addTrack(s.getVideoTracks()[0],s),i=yield r.createOffer(),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),we.detail.isH264EncodeSupported=t,we.detail.isVp8EncodeSupported=e,{isH264EncodeSupported:we.detail.isH264EncodeSupported,isVp8EncodeSupported:we.detail.isVp8EncodeSupported}}catch(r){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1}}})},Pf=function(){return A(this,null,function*(){if(we.detail.isH264DecodeSupported&&we.detail.isVp8DecodeSupported)return{isH264DecodeSupported:we.detail.isH264DecodeSupported,isVp8DecodeSupported:we.detail.isVp8DecodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection;return i=yield r.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e}}catch(r){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1}}})},Rd=zc(()=>A(void 0,null,function*(){if(we.result&&we.detail.isH264EncodeSupported&&we.detail.isVp8EncodeSupported&&we.detail.isH264DecodeSupported&&we.detail.isVp8DecodeSupported)return we;let i=Date.now(),t=xm(),e=Um(),r=Of(),o=bd(),{isH264EncodeSupported:s,isVp8EncodeSupported:a}=yield Pm(),{isH264DecodeSupported:d,isVp8DecodeSupported:h}=yield Pf();if(!s||!a){let m=yield Pm();U.warn(`detect encode again h264:${s} vp8:${a} result: ${JSON.stringify(m)}`),s=m.isH264EncodeSupported,a=m.isVp8EncodeSupported}if(s&&d&&(Is||Ss||am)&&!gr&&Zn()<79){let{encode:m,decode:T}=yield fT();s=m,d=T}return we.result=t&&e&&o&&(s||a)&&(d||h),we.detail.isBrowserSupported=t,we.detail.isWebRTCSupported=e,we.detail.isWebCodecsSupported=r,we.detail.isMediaDevicesSupported=o,we.detail.isScreenShareSupported=da(),we.detail.isSmallStreamSupported=ua(),we.detail.isH264EncodeSupported=s,we.detail.isVp8EncodeSupported=a,we.detail.isH264DecodeSupported=d,we.detail.isVp8DecodeSupported=h,we.result||U.error(`${navigator.userAgent} ${jc(we.detail,!1)}`),DT(),X.addNumber({key:523800,value:Date.now()-i}),we})),hT=function(){return we.result},da=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},yd=null;function fT(){return A(this,null,function*(){return yd||(yd=new Promise(i=>A(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{U.warn("detectH264Supported start");let r=document.createElement("canvas"),o=r.getContext("2d");r.width=320,r.height=240;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*320),Math.floor(Math.random()*240))},66),a=-1,d=-1;e=()=>{clearInterval(a),clearInterval(s),clearTimeout(d),m.close(),T.close(),h.getTracks().forEach(H=>H.stop())},d=setTimeout(()=>{e(),i(t)},2*1e3);let h=r.captureStream(),m=new RTCPeerConnection({}),T=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",H=>T.addIceCandidate(H.candidate)),T.addEventListener("icecandidate",H=>m.addIceCandidate(H.candidate)),m.addTrack(h.getVideoTracks()[0],h);let I=yield m.createOffer();yield m.setLocalDescription(I),yield T.setRemoteDescription(I);let v=yield T.createAnswer(),N=Om.default.parse(v.sdp),j=N.media[0].rtp.findIndex(H=>H.codec==="H264");N.media[0].rtp=[N.media[0].rtp[j]],N.media[0].fmtp=N.media[0].fmtp.filter(H=>H.payload===N.media[0].rtp[0].payload),N.media[0].rtcpFb&&(N.media[0].rtcpFb=N.media[0].rtcpFb.filter(H=>H.payload===N.media[0].rtp[0].payload)),v.sdp=Om.default.write(N),yield T.setLocalDescription(v),yield m.setRemoteDescription(v),a=setInterval(()=>A(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let H=yield m.getSenders()[0].getStats(),z=yield T.getReceivers()[0].getStats();t.encode||H.forEach(Te=>{Te.type==="outbound-rtp"&&Te.mediaType===D.VIDEO&&Te.bytesSent>0&&(t.encode=!0)}),t.decode||z.forEach(Te=>{Te.type==="inbound-rtp"&&Te.mediaType===D.VIDEO&&Te.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),U.warn(r),i(t)}})).then(i=>((!i.encode||!i.decode)&&U.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${fr}`),i)),yd)})}var _T=(i,t,e)=>{location.protocol==="http:"&&!Tr&&(i[t]=()=>{throw new ue({code:Y.INVALID_OPERATION,message:Wt.NOT_SUPPORTED_HTTP})})},gT=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(nt(i.selected)&&!i.selected):!1};function xf(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function kf(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function Lf(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function Uf(){return"captureStream"in HTMLCanvasElement.prototype}function ua(){return gs||bt||si&&si<63?!1:!!(xm()&&Uf())}var ET=function(){if(L(window.RTCRtpTransceiver)||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Hl}),i.addTransceiver(D.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function TT(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function Vf(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function IT(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Ff(){return Yt===11?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var ST=!(!Ff()||fo&&si<86);function yT(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var la="RTCRtpSender"in window;function AT(){return la&&"replaceTrack"in window.RTCRtpSender.prototype}function bT(){return la&&"setParameters"in window.RTCRtpSender.prototype&&Vf()}var RT="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,Ns=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Lm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,ma=la&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Zn()>=86,Bf="RTCRtpScriptTransform"in window,pa=la&&(ma||Bf),Um=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function $f(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return L(window.AudioDecoder)||(i.AudioDecoder=!0),L(window.AudioEncoder)||(i.AudioEncoder=!0),L(window.VideoDecoder)||(i.VideoDecoder=!0),L(window.VideoEncoder)||(i.VideoEncoder=!0),L(window.ImageDecoder)||(i.ImageDecoder=!0),i}function Hf(){return"mediaSession"in navigator&&!L(navigator.mediaSession.setActionHandler)}function Wf(){return!L(window.WebTransport)}function vT(){return typeof WebAssembly=="undefined"?!1: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]))}function CT(){let i={browser:`${xr.name}/${xr.version}`,os:As(),displayResolution:xf(),isScreenShareSupported:da(),isWebRTCSupported:Um(),isGetUserMediaSupported:kf(),isWebAudioSupported:Lf(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:$f(),isMediaSessionSupported:Hf(),isWebTransportSupported:Wf()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var Gf="checkResult";function DT(){Rs.setItem(Gf,{ua:navigator.userAgent,checkResult:we})}function Vm(){mi();let i=Rs.getItem(Gf);i&&i.ua===navigator.userAgent&&(we=i.checkResult),Rd()}function Ao(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var NT="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;var qf=Ci(ki(),1);var jf=Symbol("instance"),GA=Symbol("abortCtrl"),vd=Symbol("cacheResult"),ha=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,_a.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},ws=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function wT(i){return typeof i=="object"&&i&&"then"in i}var fa=new Map;function ye(i,t,e={}){return(r,o,s)=>{let a=e.action||o;if(!e.context){let h=fa.get(r)||[];fa.has(r)||fa.set(r,h),h.push({from:i,to:t,action:a})}let d=s.value;s.value=function(...h){let m=this;if(e.context&&(m=re.get(typeof e.context=="function"?e.context.call(this,...h):e.context)),m.state===t)return e.sync?m[vd]:Promise.resolve(m[vd]);m.state instanceof ha&&m.state.action==e.abortAction&&m.state.abort(m);let T=null;Array.isArray(i)?i.length==0?m.state instanceof ha&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(T=new ws(m._state,`${m.name} ${a} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(T=new ws(m._state,`${m.name} ${a} to ${t} failed: current state ${m._state} not from ${i}`));let I=z=>{if(e.fail&&e.fail.call(this,z),e.sync){if(e.ignoreError)return z;throw z}else return e.ignoreError?Promise.resolve(z):Promise.reject(z)};if(T)return I(T);let v=m.state,N=new ha(v,t,a);_a.call(m,N);let j=z=>{var Te;return m[vd]=z,N.aborted||(_a.call(m,t),(Te=e.success)===null||Te===void 0||Te.call(this,m[vd])),z},H=z=>(_a.call(m,v,z),I(z));try{let z=d.apply(this,h);return wT(z)?z.then(j).catch(H):e.sync?j(z):Promise.resolve(j(z))}catch(z){return H(new ws(m._state,`${m.name} ${a} from ${i} to ${t} failed: ${z}`,z instanceof Error?z:new Error(String(z))))}}}}function Jf(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...a){if(!i.includes(this.state.toString()))throw new ws(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,a)}}}var MT=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function _a(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(re.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var re=class i extends qf.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[jf];o?this.name=o.name+"-"+o.count++:r[jf]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=fa.get(t)||[],r=new Set,o=[],s=[],a=new Set,d=Object.getPrototypeOf(t);fa.has(d)&&(d.stateDiagram.forEach(m=>r.add(m)),d.allStates.forEach(m=>a.add(m))),e.forEach(({from:m,to:T,action:I})=>{typeof m=="string"?o.push({from:m,to:T,action:I}):m.length?m.forEach(v=>{o.push({from:v,to:T,action:I})}):s.push({to:T,action:I})}),o.forEach(({from:m,to:T,action:I})=>{a.add(m),a.add(T),a.add(I+"ing"),r.add(`${m} --> ${I}ing : ${I}`),r.add(`${I}ing --> ${T} : ${I} \u{1F7E2}`),r.add(`${I}ing --> ${m} : ${I} \u{1F534}`)}),s.forEach(({to:m,action:T})=>{r.add(`${T}ing --> ${m} : ${T} \u{1F7E2}`),a.forEach(I=>{I!==m&&r.add(`${I} --> ${T}ing : ${T}`)})});let h=[...r];return Object.defineProperties(t,{stateDiagram:{value:h},allStates:{value:a}}),h}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){MT(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){_a.call(this,t)}};re.STATECHANGED="stateChanged";re.UPDATEAFSM="updateAFSM";re.INIT="[*]";re.ON="on";re.OFF="off";re.instances=new Map;re.instances2=new WeakMap;var Fm=typeof window!="undefined",zf=Fm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},OT=Fm&&window.cancelIdleCallback||function(i){clearTimeout(i)},PT=Fm&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),ga=class{static generateTaskID(){return this.currentTaskID++}static run(t=cs,e,r){t===uo?r=J({delay:2e3,count:0,backgroundTask:!0},r):t===Gl?r=J({delay:1e4,count:0},r):t===jl?r=J({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=J({delay:2e3,count:0,backgroundTask:!0},r),rr(e)&&(r=J(J({},r),e)),Fe(t)&&(e=t,t=cs);let o=J({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r);return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,this.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){t.delay=(1e3/t.fps).toFixed(2);let e=new Worker(URL.createObjectURL(new Blob([`
10
+ Refer to: ${Af("en",d)}
11
+ `),T}var Om=Di(Mf(),1);var lT=1,mT=0,Id=class{constructor(t=!0){l(this,"countMap",new Map);l(this,"distributionMap",new Map);l(this,"version");l(this,"log",U.createLogger({id:"kv"}));t&&(F.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===D.AUDIO?501700:511700,cost:r})}),F.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===D.AUDIO?501700:511700,error:r})}))}getReportData(){let t={msg_sdk_basic_info:{uint32_sdk_version:Jc(this.version||Ke),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([e,r])=>({uint32_key:e,uint32_count:r})),stats_distribution:[...this.distributionMap.entries()].map(([e,r])=>({uint32_key:e,distribution_items:[...r.entries()].map(([o,s])=>({uint32_item_key:o,uint32_item_value:s}))}))};return this.countMap.clear(),this.distributionMap.clear(),t}clear(){this.countMap.clear(),this.distributionMap.clear()}isEnumKey(t){let e=+String(t).slice(-3);return e>=700&&e<799}isErrorCodeKey(t){let e=+String(t).slice(-3);return e>=600&&e<699}isCountKey(t){let e=+String(t).slice(-3);return e>=0&&e<599}isNumberKey(t){let e=+String(t).slice(-3);return e>=800&&e<899}addCount({key:t,useUV:e=!1}){if(!this.isCountKey(t)){this.log.debug(`${t} is not count key, last 3 number should be 0~599`);return}e&&this.countMap.has(t)||this.countMap.set(t,(this.countMap.get(t)||0)+1)}addEnum({key:t,value:e,useUV:r=!0}){var s;if(!this.isEnumKey(t))return this.log.debug(`${t} is not enum key, last 3 number should be 700~799`);if(r&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let o=((s=this.distributionMap)==null?void 0:s.get(t))||new Map;o.set(e,(o.get(e)||0)+1),this.distributionMap.set(t,o)}addNumber({key:t,value:e,split:r=100,useUV:o=!1}){var d;if(!this.isNumberKey(t))return this.log.debug(`${t} is not number key, last 3 number should be 800~899`);if(o&&this.countMap.has(t))return;this.countMap.set(t,(this.countMap.get(t)||0)+1);let s=((d=this.distributionMap)==null?void 0:d.get(t))||new Map,a=0;if($e(r))a=Math.floor(e/r);else for(let h=r.length-1;h>0;h--)if(e>r[h]){a=h;break}s.set(a,(s.get(a)||0)+1),this.distributionMap.set(t,s)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:lT,useUV:!1}),e)){let s=+String(t).slice(-3);s<800&&s>=700?this.addNumber({key:r||t+100,value:e,split:o}):r||this.log.debug(`time stat ignored, ${t}`)}}addFailedEvent({key:t,error:e}){if(!t)return;let r=Y.UNKNOWN;e&&($e(e)?r=e:(!L(e.extraCode)||!L(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:mT,useUV:!1}),this.addEnum({key:t,value:r,useUV:!1})}},Sd=(fe=>(fe[fe.enterRoom=500700]="enterRoom",fe[fe.exitRoom=500701]="exitRoom",fe[fe.switchRole=500702]="switchRole",fe[fe.destroy=500703]="destroy",fe[fe.startLocalAudio=500704]="startLocalAudio",fe[fe.updateLocalAudio=500705]="updateLocalAudio",fe[fe.stopLocalAudio=500706]="stopLocalAudio",fe[fe.startLocalVideo=500707]="startLocalVideo",fe[fe.updateLocalVideo=500708]="updateLocalVideo",fe[fe.stopLocalVideo=500709]="stopLocalVideo",fe[fe.startScreenShare=500710]="startScreenShare",fe[fe.updateScreenShare=500711]="updateScreenShare",fe[fe.stopScreenShare=500712]="stopScreenShare",fe[fe.startRemoteVideo=500713]="startRemoteVideo",fe[fe.updateRemoteVideo=500714]="updateRemoteVideo",fe[fe.stopRemoteVideo=500715]="stopRemoteVideo",fe[fe.muteRemoteAudio=500716]="muteRemoteAudio",fe[fe.setRemoteAudioVolume=500717]="setRemoteAudioVolume",fe[fe.use=500718]="use",fe[fe.sendSEIMessage=5e5]="sendSEIMessage",fe[fe.sendCustomMessage=500001]="sendCustomMessage",fe))(Sd||{}),Nm=(m=>(m[m.AudioMixer=550700]="AudioMixer",m[m.AIDenoiser=551700]="AIDenoiser",m[m.VirtualBackground=570700]="VirtualBackground",m[m.Beauty=571700]="Beauty",m[m.Watermark=572700]="Watermark",m[m.BasicBeauty=574700]="BasicBeauty",m[m.CDNStreaming=590700]="CDNStreaming",m[m.DeviceDetector=591700]="DeviceDetector",m[m.Debug=592700]="Debug",m))(Nm||{}),wm=(m=>(m[m.AudioMixer=550701]="AudioMixer",m[m.AIDenoiser=551701]="AIDenoiser",m[m.VirtualBackground=570701]="VirtualBackground",m[m.Beauty=571701]="Beauty",m[m.Watermark=572701]="Watermark",m[m.BasicBeauty=574701]="BasicBeauty",m[m.CDNStreaming=590701]="CDNStreaming",m[m.DeviceDetector=591701]="DeviceDetector",m[m.Debug=592701]="Debug",m))(wm||{}),Mm=(m=>(m[m.AudioMixer=550702]="AudioMixer",m[m.AIDenoiser=551702]="AIDenoiser",m[m.VirtualBackground=570702]="VirtualBackground",m[m.Beauty=571702]="Beauty",m[m.Watermark=572702]="Watermark",m[m.BasicBeauty=574702]="BasicBeauty",m[m.CDNStreaming=590702]="CDNStreaming",m[m.DeviceDetector=591702]="DeviceDetector",m[m.Debug=592702]="Debug",m))(Mm||{});var pT=new Id(!0),bo=new Id(!1);var X=pT;var we={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1}},hT=new Map([[_r,["Firefox",Xc]],[gs,["Edg",Yc]],[As,["Chrome",ld]],[$t,["Safari",xi]],[gr,["TBS",ed]],[Gn,["XWEB",td]],[Es&&fo,["WeChat",rd]],[jn,["QQ(Win)",id]],[Is,["QQ(Mobile)",fs]],[Ts,["QQ(Mobile X5)",fs]],[qn,["QQ(Mac)",od]],[Jn,["QQ(iPad)",sd]],[Xn,["MI",nd]],[Qn,["HW",ad]],[Yn,["Samsung",cd]],[Ss,["OPPO",dd]],[ys,["VIVO",ud]],[_s,["EDGE",Qc]],[Hn,["SogouMobile",Zc]],[Wn,["Sogou",Kc]]]);function Ad(){let i=hT.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var xm=function(){return!(im||_s||gs&&tm<80||_r&&em<56)},Pf=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder","MediaStreamTrackGenerator"].every(t=>t in window)},bd=function(){if(!navigator.mediaDevices)return mi()||U.error(Wt.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},Of=!1;function mi(){return location.protocol==="http:"&&!Tr?(Of||U.error(st({key:ot.NOT_SUPPORTED_HTTP})),Of=!0,!0):!1}var km=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},Pm=function(){return A(this,null,function*(){if(we.detail.isH264EncodeSupported&&we.detail.isVp8EncodeSupported)return{isH264EncodeSupported:we.detail.isH264EncodeSupported,isVp8EncodeSupported:we.detail.isVp8EncodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection,o=document.createElement(D.CANVAS);o.getContext("2d");let s=o.captureStream(0);return r.addTrack(s.getVideoTracks()[0],s),i=yield r.createOffer(),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),we.detail.isH264EncodeSupported=t,we.detail.isVp8EncodeSupported=e,{isH264EncodeSupported:we.detail.isH264EncodeSupported,isVp8EncodeSupported:we.detail.isVp8EncodeSupported}}catch(r){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1}}})},xf=function(){return A(this,null,function*(){if(we.detail.isH264DecodeSupported&&we.detail.isVp8DecodeSupported)return{isH264DecodeSupported:we.detail.isH264DecodeSupported,isVp8DecodeSupported:we.detail.isVp8DecodeSupported};let i,t=!1,e=!1;try{let r=new RTCPeerConnection;return i=yield r.createOffer({offerToReceiveAudio:!0,offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0),r.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e}}catch(r){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1}}})},Rd=zc(()=>A(void 0,null,function*(){if(we.result&&we.detail.isH264EncodeSupported&&we.detail.isVp8EncodeSupported&&we.detail.isH264DecodeSupported&&we.detail.isVp8DecodeSupported)return we;let i=Date.now(),t=xm(),e=Um(),r=Pf(),o=bd(),{isH264EncodeSupported:s,isVp8EncodeSupported:a}=yield Pm(),{isH264DecodeSupported:d,isVp8DecodeSupported:h}=yield xf();if(!s||!a){let m=yield Pm();U.warn(`detect encode again h264:${s} vp8:${a} result: ${JSON.stringify(m)}`),s=m.isH264EncodeSupported,a=m.isVp8EncodeSupported}if(s&&d&&(Ss||ys||am)&&!gr&&Zn()<79){let{encode:m,decode:T}=yield _T();s=m,d=T}return we.result=t&&e&&o&&(s||a)&&(d||h),we.detail.isBrowserSupported=t,we.detail.isWebRTCSupported=e,we.detail.isWebCodecsSupported=r,we.detail.isMediaDevicesSupported=o,we.detail.isScreenShareSupported=da(),we.detail.isSmallStreamSupported=ua(),we.detail.isH264EncodeSupported=s,we.detail.isVp8EncodeSupported=a,we.detail.isH264DecodeSupported=d,we.detail.isVp8DecodeSupported=h,we.result||U.error(`${navigator.userAgent} ${jc(we.detail,!1)}`),NT(),X.addNumber({key:523800,value:Date.now()-i}),we})),fT=function(){return we.result},da=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},yd=null;function _T(){return A(this,null,function*(){return yd||(yd=new Promise(i=>A(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{U.warn("detectH264Supported start");let r=document.createElement("canvas"),o=r.getContext("2d");r.width=320,r.height=240;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*320),Math.floor(Math.random()*240))},66),a=-1,d=-1;e=()=>{clearInterval(a),clearInterval(s),clearTimeout(d),m.close(),T.close(),h.getTracks().forEach(H=>H.stop())},d=setTimeout(()=>{e(),i(t)},2*1e3);let h=r.captureStream(),m=new RTCPeerConnection({}),T=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});m.addEventListener("icecandidate",H=>T.addIceCandidate(H.candidate)),T.addEventListener("icecandidate",H=>m.addIceCandidate(H.candidate)),m.addTrack(h.getVideoTracks()[0],h);let I=yield m.createOffer();yield m.setLocalDescription(I),yield T.setRemoteDescription(I);let v=yield T.createAnswer(),N=Om.default.parse(v.sdp),j=N.media[0].rtp.findIndex(H=>H.codec==="H264");N.media[0].rtp=[N.media[0].rtp[j]],N.media[0].fmtp=N.media[0].fmtp.filter(H=>H.payload===N.media[0].rtp[0].payload),N.media[0].rtcpFb&&(N.media[0].rtcpFb=N.media[0].rtcpFb.filter(H=>H.payload===N.media[0].rtp[0].payload)),v.sdp=Om.default.write(N),yield T.setLocalDescription(v),yield m.setRemoteDescription(v),a=setInterval(()=>A(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let H=yield m.getSenders()[0].getStats(),z=yield T.getReceivers()[0].getStats();t.encode||H.forEach(Te=>{Te.type==="outbound-rtp"&&Te.mediaType===D.VIDEO&&Te.bytesSent>0&&(t.encode=!0)}),t.decode||z.forEach(Te=>{Te.type==="inbound-rtp"&&Te.mediaType===D.VIDEO&&Te.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),U.warn(r),i(t)}})).then(i=>((!i.encode||!i.decode)&&U.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${fr}`),i)),yd)})}var gT=(i,t,e)=>{location.protocol==="http:"&&!Tr&&(i[t]=()=>{throw new ue({code:Y.INVALID_OPERATION,message:Wt.NOT_SUPPORTED_HTTP})})},ET=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(nt(i.selected)&&!i.selected):!1};function kf(){let i="";if(screen.width){let t=screen.width?screen.width*window.devicePixelRatio:"",e=screen.height?screen.height*window.devicePixelRatio:"";i+=`${t} * ${e}`}return i}function Lf(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function Uf(){let i={isSupported:!1},t=["AudioContext","webkitAudioContext","mozAudioContext","msAudioContext"];for(let e=0;e<t.length;e++)if(t[e]in window){i.isSupported=!0;break}return i.isSupported}function Vf(){return"captureStream"in HTMLCanvasElement.prototype}function ua(){return Es||bt||si&&si<63?!1:!!(xm()&&Vf())}var TT=function(){if(L(window.RTCRtpTransceiver)||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Hl}),i.addTransceiver(D.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function IT(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function Ff(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function ST(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Bf(){return Yt===11?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var yT=!(!Bf()||go&&si<86);function AT(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var la="RTCRtpSender"in window;function bT(){return la&&"replaceTrack"in window.RTCRtpSender.prototype}function RT(){return la&&"setParameters"in window.RTCRtpSender.prototype&&Ff()}var vT="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,ws=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Lm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,ma=la&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Zn()>=86,$f="RTCRtpScriptTransform"in window,pa=la&&(ma||$f),Um=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Hf(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return L(window.AudioDecoder)||(i.AudioDecoder=!0),L(window.AudioEncoder)||(i.AudioEncoder=!0),L(window.VideoDecoder)||(i.VideoDecoder=!0),L(window.VideoEncoder)||(i.VideoEncoder=!0),L(window.ImageDecoder)||(i.ImageDecoder=!0),i}function Wf(){return"mediaSession"in navigator&&!L(navigator.mediaSession.setActionHandler)}function Gf(){return!L(window.WebTransport)}function CT(){return typeof WebAssembly=="undefined"?!1: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]))}function DT(){let i={browser:`${xr.name}/${xr.version}`,os:bs(),displayResolution:kf(),isScreenShareSupported:da(),isWebRTCSupported:Um(),isGetUserMediaSupported:Lf(),isWebAudioSupported:Uf(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Hf(),isMediaSessionSupported:Wf(),isWebTransportSupported:Gf()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var jf="checkResult";function NT(){vs.setItem(jf,{ua:navigator.userAgent,checkResult:we})}function Vm(){mi();let i=vs.getItem(jf);i&&i.ua===navigator.userAgent&&(we=i.checkResult),Rd()}function Ro(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var wT="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;var Jf=Di(Li(),1);var qf=Symbol("instance"),jA=Symbol("abortCtrl"),vd=Symbol("cacheResult"),ha=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,_a.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Ms=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function MT(i){return typeof i=="object"&&i&&"then"in i}var fa=new Map;function be(i,t,e={}){return(r,o,s)=>{let a=e.action||o;if(!e.context){let h=fa.get(r)||[];fa.has(r)||fa.set(r,h),h.push({from:i,to:t,action:a})}let d=s.value;s.value=function(...h){let m=this;if(e.context&&(m=Z.get(typeof e.context=="function"?e.context.call(this,...h):e.context)),m.state===t)return e.sync?m[vd]:Promise.resolve(m[vd]);m.state instanceof ha&&m.state.action==e.abortAction&&m.state.abort(m);let T=null;Array.isArray(i)?i.length==0?m.state instanceof ha&&m.state.abort(m):(typeof m.state!="string"||!i.includes(m.state))&&(T=new Ms(m._state,`${m.name} ${a} to ${t} failed: current state ${m._state} not from ${i.join("|")}`)):i!==m.state&&(T=new Ms(m._state,`${m.name} ${a} to ${t} failed: current state ${m._state} not from ${i}`));let I=z=>{if(e.fail&&e.fail.call(this,z),e.sync){if(e.ignoreError)return z;throw z}else return e.ignoreError?Promise.resolve(z):Promise.reject(z)};if(T)return I(T);let v=m.state,N=new ha(v,t,a);_a.call(m,N);let j=z=>{var Te;return m[vd]=z,N.aborted||(_a.call(m,t),(Te=e.success)===null||Te===void 0||Te.call(this,m[vd])),z},H=z=>(_a.call(m,v,z),I(z));try{let z=d.apply(this,h);return MT(z)?z.then(j).catch(H):e.sync?j(z):Promise.resolve(j(z))}catch(z){return H(new Ms(m._state,`${m.name} ${a} from ${i} to ${t} failed: ${z}`,z instanceof Error?z:new Error(String(z))))}}}}function zf(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...a){if(!i.includes(this.state.toString()))throw new Ms(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,a)}}}var OT=typeof window!="undefined"&&window.__AFSM__?(e,r)=>{window.dispatchEvent(new CustomEvent(e,{detail:r}))}:typeof importScripts!="undefined"?(e,r)=>{postMessage({type:e,payload:r})}:()=>{};function _a(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Z.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Z=class i extends Jf.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=i.INIT,t||(t=Date.now().toString(36)),r?Object.setPrototypeOf(this,r):r=Object.getPrototypeOf(this),e||(this.groupName=this.constructor.name);let o=r[qf];o?this.name=o.name+"-"+o.count++:r[qf]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=fa.get(t)||[],r=new Set,o=[],s=[],a=new Set,d=Object.getPrototypeOf(t);fa.has(d)&&(d.stateDiagram.forEach(m=>r.add(m)),d.allStates.forEach(m=>a.add(m))),e.forEach(({from:m,to:T,action:I})=>{typeof m=="string"?o.push({from:m,to:T,action:I}):m.length?m.forEach(v=>{o.push({from:v,to:T,action:I})}):s.push({to:T,action:I})}),o.forEach(({from:m,to:T,action:I})=>{a.add(m),a.add(T),a.add(I+"ing"),r.add(`${m} --> ${I}ing : ${I}`),r.add(`${I}ing --> ${T} : ${I} \u{1F7E2}`),r.add(`${I}ing --> ${m} : ${I} \u{1F534}`)}),s.forEach(({to:m,action:T})=>{r.add(`${T}ing --> ${m} : ${T} \u{1F7E2}`),a.forEach(I=>{I!==m&&r.add(`${I} --> ${T}ing : ${T}`)})});let h=[...r];return Object.defineProperties(t,{stateDiagram:{value:h},allStates:{value:a}}),h}static get(t){let e;return typeof t=="string"?(e=i.instances.get(t),e||i.instances.set(t,e=new i(t,void 0,Object.create(i.prototype)))):(e=i.instances2.get(t),e||i.instances2.set(t,e=new i(t.constructor.name,void 0,Object.create(i.prototype)))),e}static getState(t){var e;return(e=i.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){OT(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){_a.call(this,t)}};Z.STATECHANGED="stateChanged";Z.UPDATEAFSM="updateAFSM";Z.INIT="[*]";Z.ON="on";Z.OFF="off";Z.instances=new Map;Z.instances2=new WeakMap;var Fm=typeof window!="undefined",Xf=Fm&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},PT=Fm&&window.cancelIdleCallback||function(i){clearTimeout(i)},xT=Fm&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),ga=class{static generateTaskID(){return this.currentTaskID++}static run(t=ds,e,r){t===mo?r=J({delay:2e3,count:0,backgroundTask:!0},r):t===Gl?r=J({delay:1e4,count:0},r):t===jl?r=J({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=J({delay:2e3,count:0,backgroundTask:!0},r),rr(e)&&(r=J(J({},r),e)),Fe(t)&&(e=t,t=ds);let o=J({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r);return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,this.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){t.delay=(1e3/t.fps).toFixed(2);let e=new Worker(URL.createObjectURL(new Blob([`
12
12
  let timerID = null;
13
13
  self.onmessage = function (e) {
14
14
  if (e.data === 'start') {
@@ -19,14 +19,14 @@ Refer to: ${yf("en",d)}
19
19
  clearInterval(timerID);
20
20
  }
21
21
  };
22
- `],{type:"application/javascript"})));e.onmessage=r=>{r.data==="tick"&&(t.callback(),t.loopCount+=1,this.isBreakLoop(t)&&e.postMessage("stop"))},t.worker=e,e.postMessage("start")}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!this.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=ge(),r,o=()=>{if(r=ge()-e,r>=t.delay&&(e=ge()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!this.isBreakLoop(t))return t.ricID=zf(o,{timeout:t.delay})};return t.ricID=zf(o,{timeout:t.delay})}static raf(t){t.delay=(1e3/t.fps).toFixed(2);let e=ge(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=ge()-e,e=ge(),t.callback(),t.loopCount+=1,this.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=ge()-e,r>=t.delay&&(e=ge()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!this.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let a=ge()-e;a>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-a)}};document.addEventListener("visibilitychange",s),t.onVisibilitychange=s,document.hidden&&s()}return t.taskID}static hasTask(t){return this.taskMap.has(t)}static clearTask(t){if(!this.taskMap.has(t))return!0;let{intervalID:e,timeoutID:r,rafID:o,ricID:s,onVisibilitychange:a,worker:d}=this.taskMap.get(t);return d&&d.terminate(),e&&clearInterval(e),r&&clearTimeout(r),o&&PT(o),s&&OT(s),a&&document.removeEventListener("visibilitychange",a),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.taskMap.has(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};l(ga,"taskMap",new Map),l(ga,"currentTaskID",1);var ft=ga;var ZA={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:D.SEI_MESSAGE,ERROR:"error"};var et={LOADED_DATA:D.LOADEDDATA,LOADED_META_DATA:D.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"};var Lr={};Kr(Lr,{create:()=>vt,remove:()=>at});var Ea=new WeakMap;function vt(i,t){Ea.has(i)||Ea.set(i,[]);let e=Ea.get(i),o={add:(s,a)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,a)),t.addEventListener(s,a)):(e.push(t.off.bind(t,s,a)),t.on(s,a)),o)};return o}function at(i){let t=Ea.get(i);t&&(t.forEach(e=>e()),Ea.delete(i))}var Bm=class{constructor(){l(this,"_roomIdMap",new Map);l(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:Ke,env:ei.QCLOUD,browserVersion:xr.name+xr.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){Tr||!U.isAbleToUpload||this._configs.env===ei.QCLOUD&&this.uploadEventToKibana(pe(J({},t),{result:"success"}))}logFailedEvent(t){if(Tr||!U.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,a={roomId:this._roomIdMap.get(s||this._configs.userId),userId:s,eventType:e,result:"failed",code:r||(o==null?void 0:o.extraCode)||(o==null?void 0:o.code)||Y.UNKNOWN};this._configs.env===ei.QCLOUD&&this.uploadEventToKibana(pe(J({},a),{error:o}))}uploadEventToKibana(t){let e=`stat-${t.eventType}-${t.result}`;(t.eventType==="delta-join"||t.eventType==="delta-leave"||t.eventType==="delta-publish")&&(e=`${t.eventType}:${t.delta}`),this.uploadEvent({log:e,userId:t.userId}),t.result==="failed"&&(e=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:e,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:e,error:r}){let o={timestamp:Mc(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:Ke,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
23
- ${r.stack}`)),this.sendRequest(ii(this._configs.sdkAppId,Di.LOG),o)}sendRequest(t,e){setTimeout(()=>oi({url:t,body:JSON.stringify(e),priority:"low"}).catch(()=>{}),2e3)}},Ve=new Bm;var bo=new WeakMap;function Ui({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,a){let d=Mi({retryFunction:a.value,settings:i,onError({error:h,retry:m,reject:T,retryFuncArgs:I}){var v;t?t.call(this,h,()=>{var N;(N=bo.get(o))!=null&&N.has(s)?m():T(h)},T,I):(v=bo.get(o))!=null&&v.has(s)?m():T(h)},onRetrying(h,m){var T;wi(e)&&e.call(this,h,m),(T=bo.get(o))!=null&&T.has(s)&&(bo.get(o).get(s).stopRetry=m)},onRetryFailed:r});return a.value=function(...h){let m=bo.get(o);return m?m.set(s,{args:h}):bo.set(o,new Map([[s,{args:h}]])),d.apply(this,h).finally(()=>{var T;return(T=bo.get(o))==null?void 0:T.delete(s)})},a}}var Ur=class extends re{constructor(e,r){super(e.id,`${r}-player`);this.kind=r;l(this,"id");l(this,"element",null);l(this,"track");l(this,"url");l(this,"attr");l(this,"mode");l(this,"muted");l(this,"_log");l(this,"_pausedRetryCount");l(this,"_isElementPlayingFired",!1);l(this,"_interval");l(this,"_delayDestroyTimeoutId",0);l(this,"_playSuccessResolve");l(this,"_isReplayByRecreateMediaStreamCalled",!1);l(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Wl,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&(((e=this.element)==null?void 0:e.paused)===!1||this.track&&this.track.readyState==="live"&&!this.track.muted)}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return A(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=st({key:ot.PLAY_FAILED,data:{media:this.kind,error:e}});if(this.track&&!this.track.muted&&this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new ue({code:Y.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!Oi?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(D.ENDED),this._interval>0&&ft.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():cm?this.replay():this.play().catch(()=>{})}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return vt(this.element,this.element).add(D.PLAYING,e).add(D.ENDED,e).add(D.PAUSE,e).add(D.ERROR,e).add(D.LOADEDDATA,e).add(D.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);Lr==null||Lr.create(e,e).add(D.ENDED,r).add(D.MUTE,r).add(D.UNMUTE,r),e.readyState===D.ENDED&&this.handleTrackEvent({type:D.ENDED}),e.muted&&this.handleTrackEvent({type:D.MUTE})}}bindAutoPlayEvent(){F.on(P.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&at(e)}unbindEvents(){this.element&&at(this.element),this.unbindTrackEvents(),F.off(P.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case D.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(D.PLAYING),this._interval&&(ft.clearTask(this._interval),this._interval=-1);break;case D.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(D.ENDED);break;case D.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(D.PAUSE),bt&&(this._interval=ft.run(cs,()=>{this.element&&this._state==="PAUSED"&&this.resume()},{delay:3e3}));break;case D.ERROR:if(this.element&&this.element.error){this.handlePaused(D.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),Ve.uploadEvent({log:`stat-${this.kind}-${ti.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),sm||om?this.emit(et.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case D.LOADEDDATA:this.kind===D.VIDEO&&this.emit(et.LOADED_DATA);break;case D.LOADEDMETADATA:this.kind===D.VIDEO&&this.emit(et.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),Ve.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),X.addSuccessEvent({key:this.kind===D.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),Ve.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),X.addFailedEvent({key:this.kind===D.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(et.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{Bn(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,a,d;this._log.warn(`element onerror ${(a=(s=this.element)==null?void 0:s.error)==null?void 0:a.code} fired after recreated mediaStream`),o((d=this.element)==null?void 0:d.error)}),Bn(5e3).then(()=>{var s,a;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((a=this.element)==null?void 0:a.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){switch(e.type){case D.ENDED:this.handleStopped(D.ENDED);break;case D.MUTE:this.handlePaused(D.MUTE);break;case D.UNMUTE:this._isElementPlayingFired?this.handlePlaying(D.UNMUTE):this.mode>0&&this.handlePlaying(this.mode.toString());break}}handlePlaying(e){var r;(r=this._playSuccessResolve)==null||r.call(this,e),this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};G([Ui({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Ur.prototype,"doReplayByRecreateMediaStream",1),G([ye([],"PLAYING",{sync:!0})],Ur.prototype,"handlePlaying",1),G([ye("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],Ur.prototype,"handlePaused",1),G([ye([],"STOPPED",{sync:!0})],Ur.prototype,"handleStopped",1);var pi="trtc_autoplay",$m=`${pi}_mask`,Ms=`${pi}_wrapper`,Xf=`${pi}_header`,Hm=`${pi}_content`,Cd=`${pi}_action_wrapper`,Wm=`${pi}_question`,Gm=`${pi}_collapse`,Dd=`${pi}_action_confirm`,Qf=`${pi}_detail`,Yf="#2473E8",qm="dialog",xT=`${qm}-show`,kT=`${qm}-1`,LT=`${qm}-2`,Zf=!1,Jm=()=>!!document.querySelector(`.${Ms}`),e_=`${Nr}/${hr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,Kf=`<br><a href='${e_}' target='_blank'>${hr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,UT=`${hr()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${Kf}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${Kf}`}`,jm=class{constructor(){l(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");l(this,"_dialogNode",null);l(this,"_bodyPosition","");l(this,"_showDetail",!1);l(this,"_isCollapseClicked",!1);l(this,"_isQuestionClicked",!1);if(hr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!Zf){let t=document.createElement("style");t.innerHTML=`.${$m}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${$m} div:not(.${Cd}){display:block !important;}.${Ms}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${Ms} a{color:${Yf};}.${Xf}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Hm}{margin:8px 0;}.${Cd}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Gm}{margin-right:auto;cursor:pointer}.${Wm}{height:100%;line-height:16px;cursor:pointer;}.${Dd}{margin-left:8px;color:#fff;background:${Yf};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Dd}:hover{opacity:0.9;}.${Gm},.${Dd},.${Hm},.${Wm}{font-size:14px;}@media screen and (max-width:750px){.${Ms}{width:80vw;}}`,document.head.appendChild(t),Zf=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${$m}"><div class='${Ms}'><div class='${Xf}'>${location.host}</div><div class='${Hm}'>${this.content}</div><div class='${Qf}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${UT}</div><div class='${Cd}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Dd,e.innerText=hr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Wm,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
22
+ `],{type:"application/javascript"})));e.onmessage=r=>{r.data==="tick"&&(t.callback(),t.loopCount+=1,this.isBreakLoop(t)&&e.postMessage("stop"))},t.worker=e,e.postMessage("start")}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!this.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=ge(),r,o=()=>{if(r=ge()-e,r>=t.delay&&(e=ge()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!this.isBreakLoop(t))return t.ricID=Xf(o,{timeout:t.delay})};return t.ricID=Xf(o,{timeout:t.delay})}static raf(t){t.delay=(1e3/t.fps).toFixed(2);let e=ge(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=ge()-e,e=ge(),t.callback(),t.loopCount+=1,this.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=ge()-e,r>=t.delay&&(e=ge()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!this.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let a=ge()-e;a>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-a)}};document.addEventListener("visibilitychange",s),t.onVisibilitychange=s,document.hidden&&s()}return t.taskID}static hasTask(t){return this.taskMap.has(t)}static clearTask(t){if(!this.taskMap.has(t))return!0;let{intervalID:e,timeoutID:r,rafID:o,ricID:s,onVisibilitychange:a,worker:d}=this.taskMap.get(t);return d&&d.terminate(),e&&clearInterval(e),r&&clearTimeout(r),o&&xT(o),s&&PT(s),a&&document.removeEventListener("visibilitychange",a),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.taskMap.has(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};l(ga,"taskMap",new Map),l(ga,"currentTaskID",1);var ft=ga;var KA={STREAM_ADDED:"stream-added",STREAM_REMOVED:"stream-removed",STREAM_UPDATED:"stream-updated",STREAM_SUBSCRIBED:"stream-subscribed",CONNECTION_STATE_CHANGED:"connection-state-changed",PEER_JOIN:"peer-join",PEER_LEAVE:"peer-leave",MUTE_AUDIO:"mute-audio",MUTE_VIDEO:"mute-video",UNMUTE_AUDIO:"unmute-audio",UNMUTE_VIDEO:"unmute-video",CLIENT_BANNED:"client-banned",NETWORK_QUALITY:"network-quality",AUDIO_VOLUME:"audio-volume",SEI_MESSAGE:D.SEI_MESSAGE,ERROR:"error"};var et={LOADED_DATA:D.LOADEDDATA,LOADED_META_DATA:D.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error"};var Lr={};Kr(Lr,{create:()=>vt,remove:()=>at});var Ea=new WeakMap;function vt(i,t){Ea.has(i)||Ea.set(i,[]);let e=Ea.get(i),o={add:(s,a)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,a)),t.addEventListener(s,a)):(e.push(t.off.bind(t,s,a)),t.on(s,a)),o)};return o}function at(i){let t=Ea.get(i);t&&(t.forEach(e=>e()),Ea.delete(i))}var Bm=class{constructor(){l(this,"_roomIdMap",new Map);l(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:Ke,env:ei.QCLOUD,browserVersion:xr.name+xr.version,ua:navigator.userAgent})}setConfig({sdkAppId:t,env:e,userId:r,roomId:o}){t!==this._configs.sdkAppId&&(this._configs.sdkAppId=String(t)),this._configs.env=e,this._configs.userId=r,this._roomIdMap.set(r,String(o))}logSuccessEvent(t){Tr||!U.isAbleToUpload||this._configs.env===ei.QCLOUD&&this.uploadEventToKibana(pe(J({},t),{result:"success"}))}logFailedEvent(t){if(Tr||!U.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,a={roomId:this._roomIdMap.get(s||this._configs.userId),userId:s,eventType:e,result:"failed",code:r||(o==null?void 0:o.extraCode)||(o==null?void 0:o.code)||Y.UNKNOWN};this._configs.env===ei.QCLOUD&&this.uploadEventToKibana(pe(J({},a),{error:o}))}uploadEventToKibana(t){let e=`stat-${t.eventType}-${t.result}`;(t.eventType==="delta-join"||t.eventType==="delta-leave"||t.eventType==="delta-publish")&&(e=`${t.eventType}:${t.delta}`),this.uploadEvent({log:e,userId:t.userId}),t.result==="failed"&&(e=`stat-${t.eventType}-${t.result}-${t.code}`,this.uploadEvent({log:e,userId:t.userId,error:t.error}))}uploadEvent({log:t,userId:e,error:r}){let o={timestamp:Mc(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:Ke,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
23
+ ${r.stack}`)),this.sendRequest(ii(this._configs.sdkAppId,Ni.LOG),o)}sendRequest(t,e){setTimeout(()=>oi({url:t,body:JSON.stringify(e),priority:"low"}).catch(()=>{}),2e3)}},Ve=new Bm;var vo=new WeakMap;function Vi({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,a){let d=Oi({retryFunction:a.value,settings:i,onError({error:h,retry:m,reject:T,retryFuncArgs:I}){var v;t?t.call(this,h,()=>{var N;(N=vo.get(o))!=null&&N.has(s)?m():T(h)},T,I):(v=vo.get(o))!=null&&v.has(s)?m():T(h)},onRetrying(h,m){var T;Mi(e)&&e.call(this,h,m),(T=vo.get(o))!=null&&T.has(s)&&(vo.get(o).get(s).stopRetry=m)},onRetryFailed:r});return a.value=function(...h){let m=vo.get(o);return m?m.set(s,{args:h}):vo.set(o,new Map([[s,{args:h}]])),d.apply(this,h).finally(()=>{var T;return(T=vo.get(o))==null?void 0:T.delete(s)})},a}}var Ur=class extends Z{constructor(e,r){super(e.id,`${r}-player`);this.kind=r;l(this,"id");l(this,"element",null);l(this,"track");l(this,"url");l(this,"attr");l(this,"mode");l(this,"muted");l(this,"_log");l(this,"_pausedRetryCount");l(this,"_isElementPlayingFired",!1);l(this,"_interval");l(this,"_delayDestroyTimeoutId",0);l(this,"_playSuccessResolve");l(this,"_isReplayByRecreateMediaStreamCalled",!1);l(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Wl,this._state="STOPPED",this.bindTrackEvents(),this._log.info(`create ${r}-player ${this.id}`)}get isPlaying(){var e;return this._state==="PLAYING"&&(((e=this.element)==null?void 0:e.paused)===!1||this.track&&this.track.readyState==="live"&&!this.track.muted)}get isStopped(){return this._state==="STOPPED"}setAttr(e){this.attr=e}setUrl(e){this.track&&(this.unbindTrackEvents(),this.element&&(this.element.srcObject=null),this.track=null),e!==this.url&&(this.url=e,e!==null&&this.element&&(this.element.crossOrigin="anonymous",this.element.src=e))}play(){return A(this,null,function*(){if(!this.isPlaying)try{this._delayDestroyTimeoutId&&(clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0,this.bindTrackEvents(),this.bindElementEvents()),this.bindAutoPlayEvent(),yield new Promise((e,r)=>{this._playSuccessResolve=e,this.element.play().then(e,r)})}catch(e){let r=st({key:ot.PLAY_FAILED,data:{media:this.kind,error:e}});if(this.track&&!this.track.muted&&this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new ue({code:Y.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!Pi?this._delayDestroyTimeoutId||(this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(D.ENDED),this._interval>0&&ft.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this.isPlaying&&((e=this.element)==null||e.pause())}resume(){return this._log.info("resume"),this.isPlaying?Promise.resolve():cm?this.replay():this.play().catch(()=>{})}setMuted(e){this.element&&(this.element.muted=e),this.muted=e}replay(){return this.stop(),this.play().catch(()=>{})}bindElementEvents(){if(this.element){let e=this.handleElementEvent.bind(this);return vt(this.element,this.element).add(D.PLAYING,e).add(D.ENDED,e).add(D.PAUSE,e).add(D.ERROR,e).add(D.LOADEDDATA,e).add(D.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);Lr==null||Lr.create(e,e).add(D.ENDED,r).add(D.MUTE,r).add(D.UNMUTE,r),e.readyState===D.ENDED&&this.handleTrackEvent({type:D.ENDED}),e.muted&&this.handleTrackEvent({type:D.MUTE})}}bindAutoPlayEvent(){F.on(P.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&at(e)}unbindEvents(){this.element&&at(this.element),this.unbindTrackEvents(),F.off(P.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case D.PLAYING:this.isInAutoPlayFailedState=!1,this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(D.PLAYING),this._interval&&(ft.clearTask(this._interval),this._interval=-1);break;case D.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(D.ENDED);break;case D.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(D.PAUSE),bt&&(this._interval=ft.run(ds,()=>{this.element&&this._state==="PAUSED"&&this.resume()},{delay:3e3}));break;case D.ERROR:if(this.element&&this.element.error){this.handlePaused(D.ERROR);let{code:o,message:s}=this.element.error;this._log.error(`${this.kind} ${this._log.isLocal?"local":"remote"} MediaError code: ${o} message: ${s} userAgent: ${navigator.userAgent}`),Ve.uploadEvent({log:`stat-${this.kind}-${ti.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),sm||om?this.emit(et.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case D.LOADEDDATA:this.kind===D.VIDEO&&this.emit(et.LOADED_DATA);break;case D.LOADEDMETADATA:this.kind===D.VIDEO&&this.emit(et.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),Ve.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),X.addSuccessEvent({key:this.kind===D.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),Ve.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),X.addFailedEvent({key:this.kind===D.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(et.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{Bn(e).then(()=>{this.element&&(this.element.srcObject=null,this.element.srcObject=new MediaStream([this.track]),this._log.warn("recreated mediaStream"),this.element.onerror=()=>{var s,a,d;this._log.warn(`element onerror ${(a=(s=this.element)==null?void 0:s.error)==null?void 0:a.code} fired after recreated mediaStream`),o((d=this.element)==null?void 0:d.error)}),Bn(5e3).then(()=>{var s,a;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((a=this.element)==null?void 0:a.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){switch(e.type){case D.ENDED:this.handleStopped(D.ENDED);break;case D.MUTE:this.handlePaused(D.MUTE);break;case D.UNMUTE:this._isElementPlayingFired?this.handlePlaying(D.UNMUTE):this.mode>0&&this.handlePlaying(this.mode.toString());break}}handlePlaying(e){var r;(r=this._playSuccessResolve)==null||r.call(this,e),this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}handlePaused(e){this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}handleStopped(e){this.emit(et.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}getElement(){return this.element}};G([Vi({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Ur.prototype,"doReplayByRecreateMediaStream",1),G([be([],"PLAYING",{sync:!0})],Ur.prototype,"handlePlaying",1),G([be("PLAYING","PAUSED",{ignoreError:!0,sync:!0})],Ur.prototype,"handlePaused",1),G([be([],"STOPPED",{sync:!0})],Ur.prototype,"handleStopped",1);var pi="trtc_autoplay",$m=`${pi}_mask`,Os=`${pi}_wrapper`,Qf=`${pi}_header`,Hm=`${pi}_content`,Cd=`${pi}_action_wrapper`,Wm=`${pi}_question`,Gm=`${pi}_collapse`,Dd=`${pi}_action_confirm`,Yf=`${pi}_detail`,Zf="#2473E8",qm="dialog",kT=`${qm}-show`,LT=`${qm}-1`,UT=`${qm}-2`,Kf=!1,Jm=()=>!!document.querySelector(`.${Os}`),t_=`${Nr}/${hr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,e_=`<br><a href='${t_}' target='_blank'>${hr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,VT=`${hr()?`\u6D4F\u89C8\u5668\u81EA\u52A8\u64AD\u653E\u7B56\u7565\uFF1A\u5728\u7528\u6237\u4E0E\u9875\u9762\u4EA7\u751F\u4EA4\u4E92\uFF08\u70B9\u51FB\u3001\u89E6\u6478\uFF09\u4E4B\u524D\uFF0C\u6D4F\u89C8\u5668\u7981\u6B62\u64AD\u653E\u6709\u58F0\u5A92\u4F53\u3002\u8BE5\u5F39\u7A97\u7528\u4E8E\u5E2E\u52A9\u7528\u6237\u6062\u590D\u97F3\u89C6\u9891\u64AD\u653E\u3002${e_}`:`Autoplay Policy: Before user interacts with the web page (clicking, touching), page will not be allowed to play media with sound. This Dialog is used to help users resume playback. ${e_}`}`,jm=class{constructor(){l(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");l(this,"_dialogNode",null);l(this,"_bodyPosition","");l(this,"_showDetail",!1);l(this,"_isCollapseClicked",!1);l(this,"_isQuestionClicked",!1);if(hr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!Kf){let t=document.createElement("style");t.innerHTML=`.${$m}{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:rgba(0,0,0,0.5);z-index:1500;}.${$m} div:not(.${Cd}){display:block !important;}.${Os}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${Os} a{color:${Zf};}.${Qf}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Hm}{margin:8px 0;}.${Cd}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Gm}{margin-right:auto;cursor:pointer}.${Wm}{height:100%;line-height:16px;cursor:pointer;}.${Dd}{margin-left:8px;color:#fff;background:${Zf};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Dd}:hover{opacity:0.9;}.${Gm},.${Dd},.${Hm},.${Wm}{font-size:14px;}@media screen and (max-width:750px){.${Os}{width:80vw;}}`,document.head.appendChild(t),Kf=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${$m}"><div class='${Os}'><div class='${Qf}'>${location.host}</div><div class='${Hm}'>${this.content}</div><div class='${Yf}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${VT}</div><div class='${Cd}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Dd,e.innerText=hr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Wm,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
24
24
  <svg class="icon" width="18" height="18" p-id="2030" t="1639646523624" version="1.1" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
25
25
  <path d="m464 784.35c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z" p-id="2031"/>
26
26
  <path d="m512 960c-247.04 0-448-200.96-448-448s200.96-448 448-448 448 200.96 448 448-200.96 448-448 448zm0-831.71c-211.58 0-383.71 172.13-383.71 383.71 0 211.55 172.13 383.71 383.71 383.71 211.55 0 383.71-172.16 383.71-383.71 0-211.58-172.16-383.71-383.71-383.71z" p-id="2032"/>
27
27
  <path d="m512 673.7c-17.665 0-32.001-14.336-32.001-31.999v-54.112c0-52.353 40-92.352 75.328-127.65 25.887-25.92 52.672-52.672 52.672-74.017 0-53.343-43.072-96.735-95.999-96.735-53.823 0-95.999 41.536-95.999 94.559 0 17.665-14.336 31.999-32.001 31.999s-32.001-14.336-32.001-31.999c0-87.424 71.775-158.56 160-158.56s160 72.095 160 160.74c0 47.904-36.32 84.192-71.424 119.3-27.84 27.776-56.576 56.512-56.576 82.336v54.112c0 17.665-14.336 32.032-32.001 32.032z" p-id="2033"/>
28
28
  </svg>
29
- `,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=Gm,o.innerText=`${hr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,a=s.querySelector(`.${Cd}`);return a.appendChild(o),a.appendChild(r),a.appendChild(e),s}addDiaLog(){Jm()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${Ms}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",U.info("show autoplay dialog"),Ve.uploadEvent({log:xT}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){U.warn("confirm clicked, try resume stream"),F.emit(P.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${Qf}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||Ve.uploadEvent({log:kT}),this._isCollapseClicked=!0}onQuestionClick(){window.open(e_,"_blank"),this._isQuestionClicked||Ve.uploadEvent({log:LT}),this._isQuestionClicked=!0}},t_=jm;var Zt=class extends Ur{constructor(e){super(e,D.VIDEO);l(this,"stat",{});l(this,"_calculateTimeout",-1);l(this,"viewMirror",!1);l(this,"objectFit");l(this,"container");l(this,"canvas");l(this,"canvasTrack");this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,L(e.viewMirror)||(this.viewMirror=e.viewMirror),L(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}initializeElement(){var r;let e=document.createElement(D.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};background-color: black;`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,(this.track||this.canvasTrack)&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(D.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(D.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var r;super.handleTrackEvent(e),e.type===D.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0)}handleElementEvent(e){var o;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===D.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn(`${this.kind} player has been remove, element ID: ${(o=this.container)==null?void 0:o.id}`),this._pausedRetryCount>0&&!Jm()&&(this._log.info(`${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let s=this.element.style.transform;r===D.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=s.replace("scaleX(-1)",""):r===D.LEAVE_PICTURE_IN_PICTURE&&!s.includes("scaleX")&&(this.element.style.transform=`${s} scaleX(-1)`)}}setCanvas(e,r=1){var o,s,a,d;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(a=this.container)==null||a.appendChild(e)):this.element&&((d=this.container)==null||d.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}stop(e=0){var r;super.stop(e),(r=this.canvas)==null||r.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(et.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(Ao()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,a)=>{this.stat.width=a.width,this.stat.height=a.height,r&&(this.stat.fps=Math.round((a.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=a,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var d;return(d=this.element)==null?void 0:d.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function Ro(i,t){return A(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),U.info("worklet addModule success")}catch(e){throw U.info(`worklet addModule catch error. ${e.message}`),e}})}var Ta;typeof AudioContext!="undefined"?Ta=AudioContext:typeof webkitAudioContext!="undefined"?Ta=webkitAudioContext:typeof mozAudioContext!="undefined"&&(Ta=mozAudioContext);var Vr,r_=-1;o_();function o_(){try{if(Vr)return;Vr=new Ta({sampleRate:48e3}),Vr.onstatechange=()=>{U.info(`context state: ${Vr.state}${Vr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),Os()},clearTimeout(r_)}catch(i){U.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof Ta}`),r_=setTimeout(o_,1e3)}}var Os=()=>{Vr.state==="suspended"?(i_(),document.addEventListener("click",Os)):Vr.state==="interrupted"?i_():(document.removeEventListener("visibilitychange",Os),document.removeEventListener("click",Os))},zm=0,Xm=-1;function i_(){return new Promise((i,t)=>{Date.now()-zm<1e3?(clearTimeout(Xm),Xm=setTimeout(()=>{zm=Date.now(),Vr.resume().then(i,t)},1e3)):(clearTimeout(Xm),zm=Date.now(),Vr.resume().then(i,t))}).catch(i=>{U.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",Os)})}document.addEventListener("click",Os);var lt=i=>Vr;var or=class{constructor(){l(this,"node");l(this,"pre",new Set);l(this,"next",new Set);l(this,"context");l(this,"connectedNodes",new Set);l(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.node&&(this.node.channelCount=t),this.next.forEach(e=>e.channelCount=t)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}setNode(t){var e;if(!this.node)try{(e=this.context)==null||e.addMixWeight(),this.node=t,this.node.channelCountMode="explicit",this.node.channelCount=this._channelCount,this.preNodeReconnect(),this.reconnect(),X.addSuccessEvent({key:502701})}catch(r){U.error(r),X.addFailedEvent({key:502701,error:r})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),X.addSuccessEvent({key:502702})}catch(e){U.error(e),X.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>t._connect(e.node)||e.connectNext(t))}_connect(t){return!this.node||!t?!1:(this.node.connect(t),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(...t){return t.forEach(e=>{this.next.add(e),e.pre.add(this)}),this}},Nd=class extends or{constructor(e=256){super();this.fftSize=e;l(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,a=`M${o},${s}`;for(let d=0;d<e.length;d++)s=e[d]/128*100/2,a+=`L${o},${s}`,o+=r;return a}},Ia=class{constructor(){l(this,"source",new or);l(this,"gain",new or);l(this,"destination",new or)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.source.node.context.createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.deleteNode(),this.source.setNode(Qm(t))}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},Ps=class extends Ia{constructor(e){super();this.context=e;l(this,"denoiser",new or);this.source.pipeTo(this.denoiser.pipeTo(this.gain.pipeTo(this.destination)))}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.denoiser.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.denoiser.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.denoiser.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},wd=class{constructor(){l(this,"audioContext",lt("audio-mixer"));l(this,"destination",this.audioContext.createMediaStreamDestination());l(this,"inputs",new Set);l(this,"mixWeight",0)}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},s_=new WeakMap;function Qm(i){let t=s_.get(i);if(t)return t;let e=lt();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return s_.set(i,t),t}var Kt=class Kt{constructor(t){l(this,"_volume",0);l(this,"_log");l(this,"_scriptProcessorNode",null);l(this,"_audioWorkletNode",null);l(this,"_interval",200);l(this,"ready",this.preload());let{log:e}=t;this._log=e,F.on(P.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Kt.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Kt.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,e){t=t[0],e=e[0];if(t||e){if(this.isStop)return!1;var s=e&&e[0]?e[0].length:0,i=this.cache.length,h=(s<i?(e[0].set(this.cache.slice(0,s)),this.cache=this.cache.slice(s)):this.unmute&&e[0].set(t[0]),(s<i?e:t)[0]);if(h){let e=0;for(let t=0;t<h.length;++t)e=Math.max(Math.abs(h[t]),e);this.volume=e,this.tick-=h.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,cacheLen:i,outputLen:s}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Kt.workletReady=Ro(Kt.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Kt.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Kt.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Kt.lastMessageTime=Date.now(),this._volume=e.data.volume||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),Ve.logFailedEvent({userId:this._log.userId,eventType:ti.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=lt("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Kt.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,F.off(P.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};l(Kt,"lastMessageTime",0),l(Kt,"audioContext",lt("volume-meter")),l(Kt,"workletReady");var Ym=Kt,Md=class extends or{constructor(e){super();l(this,"_volumeMeter");this._volumeMeter=new Ym(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return A(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}};var d_=Ci(ki(),1);var a_=i=>t=>t.deviceId===i;var Sa=class{constructor(t,e="Input"){l(this,"kind");l(this,"type");l(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&xs(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(a_(o.deviceId))){let s=`${this.kind}${this.type}Added`;U.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(a_(o.deviceId))){let s=`${this.kind}${this.type}Removed`;U.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},Zm=class extends d_.EventEmitter{constructor(){super();l(this,"audioInputs",new Sa(D.AUDIO));l(this,"videoInputs",new Sa(D.VIDEO));l(this,"audioOutputs",new Sa(D.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||ft.run(uo,()=>{this.update()},{delay:1e4}))}init(){Od().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return A(this,arguments,function*(e=0){let r=yield Od(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}},ht=Dn||os?null:new Zm;function xs(i){return i.deviceId===i.groupId&&i.groupId===""}function Od(){return A(this,arguments,function*(i=0){if(mi()||!bd())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{xs(r)&&(r.kind===D.AUDIO_INPUT?e.audio=!0:r.kind===D.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e)}catch(o){U.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&Km.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Gt(i=!1){return ht.update(i?1:0).then(t=>t.audioInputs.devices)}function er(i=!1){return ht.update(i?2:0).then(t=>t.videoInputs.devices)}var c_=!1;function u_(){return A(this,null,function*(){try{c_||(c_=!0,U.info(`speakers:${(yield Vi()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function Vi(i=!1){return A(this,null,function*(){return ht.update(i?1:0).then(t=>t.audioOutputs.devices)})}var Km=new Set;function l_(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${D.VIDEO_INPUT}`;return!!Km.has(r)}function m_(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${D.AUDIO_INPUT}`;return!!Km.has(r)}function ep(i,t){return A(this,null,function*(){let r=(yield Gt()).find(o=>o.deviceId===co);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function p_(s){return A(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===D.AUDIO&&i===co?yield ep(e,r):!0})}var Pd,tp=class extends Ia{constructor(e){super();this.log=e;l(this,"volumeMeter");l(this,"volumeDestination");l(this,"analyser",new Nd);this.volumeMeter=new Md({log:this.log}),this.volumeDestination=new or,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},xd=class i extends Ur{constructor(e){super(e,D.AUDIO);l(this,"_outputDeviceId");l(this,"_volume",1);l(this,"_destination",lt("player").createMediaStreamDestination());l(this,"pipeline");l(this,"volumeMeterMode","worklet");this.mode=0,this.pipeline=new tp(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((xi==="15.2"||xi==="15.3"||xi==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Pd||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.element=o,$e(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Pd&&(Pd=void 0),this.bindElementEvents()}play(e){return A(this,null,function*(){if(this.track)return this.pipeline.source.node||this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?this.pipeline.volumeMeter.init():this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(lt("player").createAnalyser()),u_(),Lt(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setSinkId(e){return A(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}},kd=class extends xd{constructor(t){super(t),this.pipeline.source.pipeTo(this.pipeline.volumeMeter,this.pipeline.destination)}setTrack(t){var e;this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(et.MEDIA_TRACK_CHANGED,t),t?(this.bindTrackEvents(),this.pipeline.source.channelCount=((e=t.getSettings())==null?void 0:e.channelCount)||1,this.pipeline.replaceSource(t),!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([t]))):this.pipeline.source.deleteNode())}setSourceNode(t){!t||this.pipeline.source.node===t||(this.pipeline.replaceSource(t),t instanceof MediaStreamAudioSourceNode?this.pipeline.destination.setNode(this._destination):this.pipeline.destination.deleteNode(),this.element&&(this.element.srcObject=this.getMediaStream(),this.element.play().catch(()=>{}),this.setVolume(this._volume)))}setVolume(t){this._volume=t,this.element&&(this.element.volume=t)}},Ld=class extends xd{constructor(e){super(e);l(this,"_sourceElement");l(this,"_output",new or);this.pipeline.source.pipeTo(this.pipeline.gain.pipeTo(this.pipeline.volumeMeter.pipeTo(this._output),this.pipeline.destination))}setOutput(){this.mode=1,this._output.setNode(lt("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(et.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){this._volume=e,this.useDestination?(this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`)):e<=1&&!bt?this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element"):(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),at(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&Oi&&(Pd=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var vo=class extends re{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:a=o===1?Ld:Zt}){var d;super();l(this,"id",ia());l(this,"userId","");l(this,"isRemote");l(this,"mediaType");l(this,"room");l(this,"user");l(this,"_log");l(this,"_inputTrack");l(this,"_outputTrack");l(this,"isPlayCalled");l(this,"container",null);l(this,"player");l(this,"subVideoPlayerMap");l(this,"muted",!1);l(this,"abortCtrl");l(this,"objectFit","cover");l(this,"mirror");l(this,"isScreen",!1);l(this,"manager");l(this,"trackSettings");this.userId=e||"",this.mediaType=o,this._log=U.createLogger({id:`${this.kind[0]}t`,userId:(d=s||this.room)==null?void 0:d.userId,remoteUserId:this instanceof hi?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof hi}),this.player=new a({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(et.PLAYER_STATE_CHANGED,h=>{F.emit(P.PLAYER_STATE_CHANGED,J({track:this},h)),this.emit("player-state-changed",h)}),this.kind===D.VIDEO&&(this.player.on(et.LOADED_DATA,()=>{F.emit(P.VIDEO_LOADED_DATA,{track:this})}),this.player.on(et.LOADED_META_DATA,()=>{var m,T,I;let h=(m=this.mediaTrack)==null?void 0:m.getSettings();this.emit("first-video-frame",{width:(h==null?void 0:h.width)||((T=this.player.element)==null?void 0:T.videoWidth)||0,height:(h==null?void 0:h.height)||((I=this.player.element)==null?void 0:I.videoHeight)||0,streamType:this.streamType,userId:this.isRemote?this.userId:""})}),this.player.on(et.MEDIA_TRACK_CHANGED,h=>{var m;(m=this.subVideoPlayerMap)==null||m.forEach(T=>T.setTrack(h))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(et.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||U}get kind(){return this.mediaType===1?D.AUDIO:D.VIDEO}get strMediaType(){return this.mediaType===4?D.VIDEO:this.mediaType===2?D.SCREEN:D.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return A(this,null,function*(){let o=it(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!L(r.muted)&&this.setPlayerMute(r.muted),r&&!L(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Zt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),it(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!L(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===D.VIDEO)&&this.setPlayerMute(!0),r&&!L(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Zt&&this.player.setObjectFit(this.objectFit),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof Zt&&this.player.setContainer(o)),F.emit(P.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),it(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==D.VIDEO||L(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(nt(this.mirror)){o.setViewMirror(this.mirror),s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return A(this,null,function*(){if(!this._outputTrack||this.kind===D.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,a)=>{var d;e.find(h=>a===h)||(s.stop(),(d=this.subVideoPlayerMap)==null||d.delete(a))});for(let[s,a]of e.entries()){let d=this.subVideoPlayerMap.get(a);d?r&&(L(r.objectFit)||d.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(a,new Zt({id:this.userId||this.id,track:this.playerMediaTrack,container:a,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(Ql(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return A(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),F.emit(e?P.TRACK_MUTED:P.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){vt(e,e).add(D.MUTE,this.onTrackMuted).add(D.UNMUTE,this.onTrackUnmuted).add(D.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===D.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){at(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(Ql(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){if(this.room&&this.room.enableAutoPlayDialog)new t_;else{let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};document.addEventListener("click",r,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof Zt?this.player.getVideoFrame():""}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};G([ye([],re.INIT,{sync:!0})],vo.prototype,"close",1);var VT=Object.prototype.hasOwnProperty,{toString:gv}=Object.prototype;function FT(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Bt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(VT.call(i,t))return!1;return!0}}return!1}var ya=FT;var BT=function(i){return A(this,null,function*(){let t=HT(i);U.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Gt(),U.info(`microphones: ${ir(e.map(s=>pe(J({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield er(),U.info(`cameras: ${ir(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return Lm&&s.getTracks().forEach(a=>{U.info(`${a.kind} capabilities: ${ir(a.getCapabilities(),{keysToInclude:Bc})}`)}),s}catch(s){let{message:a}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(a=st({key:ot.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(a=st({key:ot.MICROPHONE_NOT_FOUND}))),new ue({code:Y.INITIALIZE_FAILED,name:s.name,message:a,constraint:s.constraint})}})},$T=Mi({retryFunction:BT,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!$t||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&h_(r[0].microphoneId,!1),r[0].cameraId&&h_(r[0].cameraId,!0)},onRetrying:i=>{U.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{Ve.logFailedEvent({eventType:ti.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{Ve.logSuccessEvent({eventType:ti.GET_USER_MEDIA_RETRY}),Ve.uploadEvent({log:`stat-${ti.GET_USER_MEDIA_RETRY}-success-${i}`})}});function h_(i,t){return A(this,null,function*(){let r=(t?yield er():yield Gt()).find(o=>o.deviceId===i);r&&Fe(r.getCapabilities)&&U.warn(ir(r.getCapabilities(),{keysToInclude:Bc}))})}function HT(i){return{audio:WT(i),video:GT(i)}}function WT(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!ya(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:($e(i.channelCount)&&(t.channelCount=i.channelCount),nt(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),nt(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),nt(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),ya(t)?!0:t)}function GT(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!ya(e)?e:(i.width&&(e.width={ideal:i.width},t&&!_r&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!_r&&(e.height.max=i.height)),_r&&Er&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),ya(e)?!0:e)}var f_=$T;function Fi(i){return Ae((t,e)=>function(...r){return A(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function __(i){return Ae((t,e)=>function(...r){return A(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Ae(i){return function(t,e,r){return r.value=i(r.value,e),r}}var g_=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&U.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{U.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var jT=0,Ud=class{constructor(){l(this,"log",U.createLogger({id:`fq${++jT}`}));l(this,"isRunning",!1);l(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,a;let r=J({},t),o=new Promise((d,h)=>{r.resolve=d,r.reject=h});return r.promise=o,e?this.length<=1?this.queue.push(r):(a=(s=this.lastQueueItem)==null?void 0:s.promise)==null||a.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},E_=new WeakMap,T_=new WeakMap;function I_(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let a=E_.get(this)||new Ud;return E_.set(this,a),a.push({fn:o,args:s,context:this},i)},r}}function Vd(i){return function(t,e,r){let o=r.value,s=a=>i(...a);return r.value=function(...a){let d=T_.get(this)||new Map,h=d.get(s(a))||new Ud;return d.set(s(a),h),T_.set(this,d),h.push({fn:o,args:a,context:this})},r}}function Fd(i,t){return Ae((e,r)=>function(...o){let s=i;try{let a=e.apply(this,o),d=ge();return Ni(a)?a.then(h=>(t?X.addSuccessEvent({key:s,cost:ge()-d}):X.addSuccessEvent({key:s}),h)).catch(h=>{throw X.addFailedEvent({key:s,error:h}),h}):(X.addSuccessEvent({key:s}),a)}catch(a){throw X.addFailedEvent({key:s,error:a}),a}})}var Co=class Co extends vo{constructor(e,r){super({mediaType:e,PlayerClass:r});l(this,"isRemote",!1);l(this,"deviceId");l(this,"groupId","");l(this,"label","");l(this,"_isRecapturing",!1);l(this,"_lastRecaptureTime",0);l(this,"_onMuteTimeoutId",-1);l(this,"_encodeCheckTimeoutId",-1);l(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){vt(e,e).add(D.MUTE,this.onTrackMuted).add(D.UNMUTE,this.onTrackUnmuted).add(D.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===D.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){at(e)}setStateToCapture(){}capture(e){return A(this,null,function*(){var r;try{let o=ge();F.emit(P.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.mediaTrack)==null||r.stop(),s=yield f_(e));let a=s.getTracks()[0];return yield this.setInputMediaStreamTrack(a),e.customSource||(this.updateDeviceIdInUse(),this.listenDeviceChange()),F.emit(P.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:ge()-o}),s}catch(o){throw F.emit(P.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}setInputMediaStreamTrack(e){return this.state===re.INIT&&this.setStateToCapture(),super.setInputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}publish(e,r){return this.room=e,this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),r}unpublish(){this.room&&this.room.localTracks.delete(this),F.emit(P.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return A(this,null,function*(){if(this.mediaTrack&&Ns){let{deviceId:e,groupId:r}=this.mediaTrack.getSettings(),{label:o}=this.mediaTrack;(yield p_({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),Od().then(a=>{let d=a.find(h=>h.deviceId===e);d&&this.emit("2",d)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.mediaTrack||this.kind===D.AUDIO&&!m_(this.mediaTrack)||this.kind===D.VIDEO&&!l_(this.mediaTrack)||this._isRecapturing||e&&Er&&$t)}onTrackMuted(){if(super.onTrackMuted(),g_(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<as){setTimeout(()=>this.onTrackMuted(),as);return}this._onMuteTimeoutId=setTimeout(()=>A(this,null,function*(){var e;if((e=this.mediaTrack)!=null&&e.muted){if((bt||pt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return A(this,null,function*(){if(Lt(Co.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()){if(Date.now()-this._lastRecaptureTime<as){setTimeout(()=>this.onTrackEnded(),as);return}this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return A(this,null,function*(){var o;if(this._isRecapturing||!this._inputTrack)return;this.log.warn("recapture trying"),(o=this._inputTrack)==null||o.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let r={useExactDeviceId:!0};if(e==="user"||e==="environment")r.facingMode=e;else{let s;(this.kind==="audio"?yield Gt():yield er()).find(d=>d.deviceId===e)&&(s=e),r.deviceId=s}return this.capture(r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),F.emit(P.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),F.emit(P.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return A(this,null,function*(){let e=this instanceof Ir;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Aa.get(r)||0)+1;if(Aa.set(r,o),o>=3){let s=e?(yield er()).find(a=>!Aa.has(a.deviceId)):(yield Gt()).find(a=>!Aa.has(a.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}close(){var e;super.close(),this._inputTrack&&(this._inputTrack.stop(),this.uninstallTrackEvent(this._inputTrack)),(e=this.manager)==null||e.removeInput(this)}};G([ye(re.INIT,"capture",{ignoreError:!0,sync:!0})],Co.prototype,"setStateToCapture",1),G([I_()],Co.prototype,"capture",1),G([ye("capture","publish",{ignoreError:!0,success(){var r,o;this.room.localTracks.add(this),F.emit(P.LOCAL_TRACK_PUBLISHED,{track:this}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),!((((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var a,d;if(!((((d=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:d.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let h=this.kind===D.AUDIO,m=this.stat.bytesSent>0;X[m?"addSuccessEvent":"addFailedEvent"]({key:h?503700:513702}),m||(X.addEnum({key:h?503701:513703,value:ta()}),Ve.uploadEvent({log:`stat-encode-failed-${this.kind}-${ea()||_o()}`,userId:this.userId}),this.log.warn("encode failed"),this.emit("6",this))}},5e3))},fail(e){let r="error";if(e.cause instanceof RTCError){let o=e.cause;o.message.includes("timeout")?r="timeout":o.code===Y.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e})}}),Fd(521714,!1)],Co.prototype,"publish",1),G([Ae(e=>function(){return A(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),ye([],"capture",{sync:!0})],Co.prototype,"unpublish",1);var hi=Co,Aa=new Map;F.on(P.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Aa.delete(i.track.deviceId)});var fi=class i extends hi{constructor(e){super(1,kd);l(this,"mediaType",1);l(this,"volume",0);l(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});l(this,"playerMuted",!0);l(this,"pipeline");l(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});this.manager=e,this.pipeline=new Ps(e),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this)}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}get playerMediaTrack(){return this.mediaTrack}setInputMediaStreamTrack(e){return A(this,null,function*(){let r=this.trackSettings||{};X.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),X.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),X.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield Lt(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s=!0}){return super.capture({video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r})}switchDevice(e){return A(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e)if(e===co){if(yield ep(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.mediaTrack&&this.mediaTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),F.emit(P.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){ht&&!ht.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&ht.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current microphone is lost: ${JSON.stringify(e)}`),ze(this.userId,{eventId:2003,param1:6,streamType:1});let r=yield Gt();r[0]?this.recapture(r[0].deviceId):ht.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)}update3A(s){return A(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let a=!1;!L(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a=!0),!L(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a=!0),!L(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a=!0),a&&this.deviceId&&(yield this.recapture(this.deviceId))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&X.addEnum({key:502700,value:2}),this.resetPlayerSource()}enableTrackANS(e){if(!this._inputTrack)return;let r=this._inputTrack.getConstraints();return r.noiseSuppression=e,this._inputTrack.applyConstraints(r).catch(o=>this._log.warn(`${e?"enable":"disable"} ANS failed `,o))}addDenoiser(e){var r;if(si<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}X.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.resetPlayerSource(),this.enableTrackANS(!1)}removeDenoiser(e){this.pipeline.denoiser.node===e&&(this.pipeline.denoiser.deleteNode(),this.resetPlayerSource(),this.enableTrackANS(!0))}resetPlayerSource(){this.player.setSourceNode(this.pipeline.gain.node||this.pipeline.denoiser.node||this.pipeline.source.node)}close(){this.pipeline.remove(),ht.off("audioInputAdded",this.handleMicrophoneAdded,this),ht.off("audioInputRemoved",this.handleMicrophoneRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Lt(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Gt()).find(s=>s.deviceId!==e);if(o)yield Lt(i.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}};var Do=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let a=t;a<=e;a++){let d=this.dataView.getInt8(a);switch(d){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),d==0?o++:o=0,r.push(d);break;default:o=0,r.push(d);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let a=t;a<=e;a++)switch(this.dataView.getInt8(a)){case 0:o++,r.push(this.dataView.getInt8(a));break;case 3:o!==2&&r.push(this.dataView.getInt8(a)),o=0;break;default:r.push(this.dataView.getInt8(a)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let a=this.dataView.getUint8(s);if(e++,a===255)t+=255;else{t+=a;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var Bd=class{constructor(){l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let d=0;d<r;d++)s.push(255);s.push(o);let a=new DataView(t);return s.push(...new Uint8Array(a.buffer)),s.push(128),new Do(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let s=9-this.getNaluCount(t.data);if(s<=0)return 0;let a=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),d=a.reduce((v,N)=>v+N.dataView.byteLength,0),h=new ArrayBuffer(d+t.data.byteLength),m=new DataView(h),T=new DataView(t.data),I=0;for(let v=0;v<a.length;v++)for(let N=0;N<a[v].dataView.byteLength;N++)m.setInt8(I++,a[v].dataView.getInt8(N));for(let v=0;v<t.data.byteLength;v++)m.setInt8(I++,T.getInt8(v));return t.data=h,a.length}return 0}};var No=class No extends hi{constructor(e,r=4){super(r,Zt);l(this,"profile",{width:640,height:480,frameRate:15,bitrate:500});l(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0});l(this,"small");l(this,"isNeedToSetBandwidth");l(this,"muteImage");l(this,"manager");l(this,"_seiCodec",new Bd);this.manager=e;let o=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),this.setProfile(pe(J({},this.profile),{width:1920,height:1080})),this.applyProfile())};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!Ns||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}setMute(e){return A(this,null,function*(){var r,o,s;if(Se(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e}),this.muteImage=e,Lt(No.prototype,this,"setMute").call(this,!1)}else yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0,Lt(No.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:a=!0}){return super.capture({audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:a,customSource:s})}setProfile(e){let r=J({},e),o=r.width>r.height;r.width*r.height<=160*120&&pt&&fo&&(this.log.warn(`resolution is ${r.width}*${r.height}, fallback to 240*180`),r.width=o?240:180,r.height=o?180:240,r.bitrate=Math.max(r.bitrate,150)),r.width*r.height>1280*720&&dm&&(r.width=o?1280:720,r.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(r):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(pe(J({},this.profile),{width:1920,height:1080})))}applyProfile(){return A(this,null,function*(){var o;if(!this.mediaTrack)return;let e=this.settings;if(!(!(e.height!==this.profile.height||e.width!==this.profile.width||e.frameRate!==this.profile.frameRate)||!this.deviceId)&&(Yt===16?yield this.recapture(this.deviceId):(yield(o=this.mediaTrack)==null?void 0:o.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth))return this.isNeedToSetBandwidth=!1,this.room.setBandWidth({bandwidth:this.profile.bitrate,type:D.VIDEO,videoType:D.BIG})})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate};return Ns&&this.mediaTrack&&Object.assign(e,this.mediaTrack.getSettings()),e}get scaleResolutionDownBy(){let{settings:e}=this;return e.width===this.profile.width&&e.height===this.profile.height?1:qc()&&this.profile.width>this.profile.height&&e.height>e.width?Math.max(e.width/this.profile.height,e.height/this.profile.width,1):Math.max(e.width/this.profile.width,e.height/this.profile.height,1)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return A(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e))return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.mediaTrack.stop(),yield this.capture(r),F.emit(P.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}listenDeviceChange(){ht&&!ht.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&ht.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current camera is lost: ${JSON.stringify(e)}`),ze(this.userId,{eventId:2003,param1:7,streamType:2});let r=yield er();r[0]?this.recapture(r[0].deviceId):ht.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return A(this,null,function*(){this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,a)=>a?a({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return L(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){ht.off("videoInputAdded",this.handleCameraAdded,this),ht.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Lt(No.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield er()).find(s=>s.deviceId!==e);if(o)yield Lt(No.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}};G([Fi(function(e){this.setContentHint(e.contentHint||"motion")})],No.prototype,"capture",1);var Ir=No;var A_=ia();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:A_,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var zT=function(i){return A(this,null,function*(){let t=null,e=YT(i);U.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(ys&&si<74||$t||_r)&&U.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){U.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield XT(o,i.captureElement))}if(i.audio){let s=QT(i);U.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function XT(i,t){return A(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Fe(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===A_))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){U.warn(`cropTo target failed ${r}`)}})}function QT(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return L(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function YT(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:$t?{max:i.width}:{ideal:i.width,max:i.width},height:$t?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var b_=zT;var Bi=class extends Ir{constructor(e){super(e,2);l(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});l(this,"objectFit","contain");l(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}capture(T){return A(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:a,videoTrack:d,captureElement:h,preferDisplaySurface:m}){try{let I;return d||a?(I=new MediaStream,d&&I.addTrack(d),a&&I.addTrack(a)):I=yield b_({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:h,preferDisplaySurface:m}),yield this.setInputMediaStreamTrack(I.getVideoTracks()[0]),I}catch(I){throw this.log.error(`getDisplayMedia error observed ${I}`),I instanceof ue?I:new ue({code:Y.INITIALIZE_FAILED,name:I.name,message:I.message})}})}switchDevice(e){return A(this,null,function*(){throw new Error("Method not implemented.")})}};G([Fi(function(e){this.setContentHint(e.contentHint||"detail")})],Bi.prototype,"capture",1);var wo=class extends fi{constructor(t){super(t),this._log.id=`s-${this._log.id}`}};var ZT="registerProcessor('dumper', class extends AudioWorkletProcessor {process(inputs) {this.port.postMessage(inputs);return true;}});",ip;function ba(i){return A(this,null,function*(){let t=lt("dump");ip||(ip=Ro(t,URL.createObjectURL(new Blob([ZT],{type:"application/javascript"})))),yield ip;let e=new AudioWorkletNode(t,"dumper",{numberOfInputs:i.length,numberOfOutputs:0});return i.forEach((r,o)=>r.connect(e,0,o)),new ReadableStream({start(r){e.port.onmessage=o=>{r.enqueue(o.data)}},cancel(){i.forEach(r=>r.disconnect(e)),e.port.close()}})})}var $d=class extends wd{constructor(e){super();this.room=e;l(this,"_localAudioTrack");l(this,"_localScreenAudioTrack");l(this,"log",U.createLogger({id:"am"}));l(this,"denoiser");l(this,"mixChangedDebounce");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId))}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}dump(e){var T,I;if(!this._localAudioTrack)return;let r=[],o=[];(T=this._localAudioPipline)!=null&&T.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(I=this._localAudioPipline)!=null&&I.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,a=[],d=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),h=()=>{for(let v=0;v<o.length;v++){let N=URL.createObjectURL(new Blob(a[v])),j=document.createElement("a");j.href=N,j.download=`${o[v]}.pcm`,j.style.display="none",document.body.appendChild(j),j.click(),URL.revokeObjectURL(N),j.remove()}clearTimeout(d),s.abort("download")},m=ba(r).then(v=>v.pipeTo(new WritableStream({write(N){N.forEach((j,H)=>a[H]=a[H]?a[H].concat(j[0]):[j[0]])}}),s).catch(N=>h));return{then:m.then.bind(m),download:h}}getPCM(e){var a;if(L(WritableStream)){this.log.warn("getPCM failed: browser not support WritableStream");return}if(!((a=this._localAudioPipline)!=null&&a.source.node)){this.log.warn("getPCM failed: no local audio track");return}this.log.warn("getPCM");let r=new Float32Array(1920),o=0,s=new AbortController;return ba([this._localAudioPipline.source.node]).then(d=>d.pipeTo(new WritableStream({write(h){h[0][0]&&(r.set(h[0][0],o),o+=h[0][0].length,o>=1920&&(o=0,e(r),r=new Float32Array(1920)))}}),s).catch(h=>this.log.warn(`stop getPCM reason:${h}`))),s}get hasScreenAudioTrack(){return this._localScreenAudioTrack!==null}get hasAudioTrack(){return!L(this._localAudioTrack)}changeInput(e){if(e instanceof wo)return this._localScreenAudioTrack=e,e.pipeline.connect(),this.mixOnChange();if(e instanceof fi)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),e.pipeline.connect(),this.mixOnChange();if(e instanceof Mo)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof wo?delete this._localScreenAudioTrack:e instanceof fi?delete this._localAudioTrack:e instanceof Mo}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}removeDenoiser(e){var r;delete this.denoiser,(r=this._localAudioTrack)==null||r.removeDenoiser(e)}destroy(){this.close()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};function R_(i=30,t=2){return Ae((e,r)=>function(...o){return new Promise((s,a)=>{let d=setTimeout(()=>{let h=new ue({code:Y.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});U.warn(h),t===2?a(h):t===1&&s()},i*1e3);e.apply(this,o).then(s,a).finally(()=>{clearTimeout(d)})})})}var _i=class _i extends vo{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;l(this,"tinyId");l(this,"isRemote",!0);l(this,"jitterBufferDelay",0);l(this,"_decodeCheckTimeoutId",-1);this.tinyId=r.tinyId}setMute(e){this.isAvailable&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isAvailable&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===_i.STATE_SUBSCRIBE}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){let o=this.kind===D.AUDIO;X[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),e||(X.addEnum({key:o?504701:514703,value:ta()}),Ve.uploadEvent({log:`stat-decode-failed-${this.kind}-${ea()||_o()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===D.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isAvailable||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isAvailable} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.updatePlayingState(this.isAvailable)}onTrackMuted(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackMuted()}onTrackUnmuted(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackUnmuted()}onTrackEnded(){this.isAvailable&&(this.isSubscribed||this.isSubscribing)&&this.isPlayCalled&&super.onTrackEnded()}};l(_i,"STATE_SUBSCRIBE","subscribe"),G([R_(5,1)],_i.prototype,"waitHasMediaTrack",1),G([ye(re.INIT,_i.STATE_SUBSCRIBE,{success(){var r,o;this.log.info("subscribed"),F.emit(P.REMOTE_TRACK_SUBSCRIBED,{track:this}),this.updatePlayingState(!0),!((((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState)&&(this._decodeCheckTimeoutId=setTimeout(()=>{var a,d;if(!((((d=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:d.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState)&&this.isSubscribed&&this.isPlayCalled&&this.stat.bytesReceived>0){let h=this.kind===D.AUDIO,m=this.player.isPlaying||(h?this.getAudioLevel()>0:this.stat.framesDecoded>0);this.reportDecodeResult(m)}},5e3),this.player.once(et.ERROR,s=>{s.code===MediaError.MEDIA_ERR_DECODE&&(clearTimeout(this._decodeCheckTimeoutId),this.reportDecodeResult(!1,3))}))},ignoreError:!0}),Fd(521716,!1)],_i.prototype,"subscribe",1),G([ye(_i.STATE_SUBSCRIBE,re.INIT,{sync:!0,success(){this.log.info("unsubscribed"),this.updatePlayingState(!1),F.emit(P.REMOTE_TRACK_UNSUBSCRIBED,{track:this}),clearTimeout(this._decodeCheckTimeoutId)}})],_i.prototype,"unsubscribe",1);var ks=_i;var Mo=class extends ks{constructor(e,r){super(e,r,1);l(this,"volume",0);l(this,"mediaType",1);l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}decodeFrame(e){if(!this.manager)return e;let r=e;for(let o of this.manager.decodePipeline)if(o&&(r=o({frame:r,track:this}),!r))return;return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isAvailable(){return this.user.muteState.audioAvailable}};var eI=[-1,-1,1,-1,-1,1,1,1],tI=[0,0,1,0,0,1,1,1];var Vt=class extends re{constructor(e,r){super();this.context=e;l(this,"name");l(this,"input");l(this,"output");l(this,"texture");l(this,"ctx2d",null);l(this,"fbo");l(this,"width",0);l(this,"height",0);l(this,"x",0);l(this,"y",0);l(this,"program");l(this,"vertexShader");l(this,"fragmentShader");l(this,"totalFrames",0);l(this,"dropFrames",0);l(this,"matchInputSize",!0);l(this,"texCoordBuffer");l(this,"positionBuffer");l(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});l(this,"cost",0);l(this,"_canvas",null);l(this,"_image");l(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof Ct){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Yt!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(tI),this.positionBuffer=this.createBuffer(eI),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.PACK_ALIGNMENT,1),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof _t&&this.render(e)||this.context instanceof Ct&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof _t){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,a){return this.ctx2d&&e?(e instanceof ImageData?this.ctx2d.putImageData(e,r,o):(this.ctx2d.drawImage(e,r,o,s,a),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close()),!0):!1}getInfo(){var I;let{totalFrames:e,x:r,y:o,width:s,height:a,name:d,cost:h}=this,m=Date.now(),T=(e-this.lastInfo.totalFrames)/((m-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:a,timestamp:m,fps:T,name:d,cost:h},J({parent:(I=this.input)==null?void 0:I.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};G([ye(re.INIT,"connected",{sync:!0})],Vt.prototype,"connect",1),G([ye("connected",re.INIT,{ignoreError:!0,sync:!0})],Vt.prototype,"disconnect",1),G([ye([],"closed",{sync:!0})],Vt.prototype,"close",1);var $p={};Kr($p,{Events:()=>tt,Inspect:()=>sr,LastSink:()=>Oo,Sink:()=>ne,Subscribe:()=>Po,TimeoutError:()=>Ra,audit:()=>VI,bindCallback:()=>AI,bindNodeCallback:()=>bI,buffer:()=>mI,bufferCount:()=>lI,bufferTime:()=>iS,call:()=>C_,catchError:()=>va,combineLatest:()=>N_,concat:()=>nI,concatMap:()=>XI,concatMapTo:()=>QI,count:()=>CI,create:()=>Re,debounce:()=>FI,debounceTime:()=>BI,defer:()=>w_,delay:()=>oS,deliver:()=>ce,dispose:()=>Hd,elementAt:()=>$I,empty:()=>ko,every:()=>qI,exhaustMap:()=>KI,exhaustMapTo:()=>eS,filter:()=>Uo,find:()=>HI,findIndex:()=>WI,first:()=>GI,fromAnimationFrame:()=>SI,fromArray:()=>fI,fromEvent:()=>De,fromEventPattern:()=>_I,fromFetch:()=>gI,fromIterable:()=>EI,fromPromise:()=>P_,fromReadableStream:()=>II,fromReader:()=>TI,groupBy:()=>tS,identity:()=>rI,ignoreElements:()=>MI,iif:()=>cI,inspect:()=>D_,interval:()=>dp,last:()=>jI,map:()=>Vs,mapTo:()=>zI,max:()=>DI,merge:()=>oI,mergeMap:()=>YI,mergeMapTo:()=>ZI,min:()=>NI,never:()=>RI,nothing:()=>Oe,of:()=>hI,pairwise:()=>JI,pipe:()=>be,race:()=>sI,range:()=>yI,reduce:()=>lp,retry:()=>aS,scan:()=>Up,share:()=>gi,shareReplay:()=>aI,skip:()=>PI,skipUntil:()=>xI,skipWhile:()=>Jd,startWith:()=>xo,subject:()=>gt,subscribe:()=>ke,sum:()=>wI,switchMap:()=>Fr,switchMapTo:()=>Vo,take:()=>Sr,takeLast:()=>OI,takeUntil:()=>We,takeWhile:()=>x_,tap:()=>Ca,throttle:()=>LI,throwError:()=>vI,timeInterval:()=>rS,timeout:()=>Bp,timer:()=>up,toPromise:()=>sS,toReadableStream:()=>nS,withLatestFrom:()=>uI,zip:()=>dI});function Oe(...i){}var C_=i=>i(),rI=i=>i;function Hd(){this.dispose()}var D_=()=>typeof __FASTRX_DEVTOOLS__!="undefined",iI=1,sr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new sp(t,this,this.streamId++);return tt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},Oo=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=Oe,this.error=Oe,this.next=Oe,this.dispose=Oe,this.subscribe=Oe,this.doDefer()}subscribe(t){return t instanceof sr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(C_),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},ne=class extends Oo{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},Po=class extends Oo{constructor(t,e=Oe,r=Oe,o=Oe){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Oe,t instanceof sr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{tt.defer(s,0)}),tt.create(s),tt.pipe(s),this.sourceId=s.id,this.subscribe(t),tt.subscribe({id:s.id,end:!0}),e==Oe?this._next=a=>tt.next(s,0,a):this.next=a=>{tt.next(s,0,a),e(a)},o==Oe?this._complete=()=>tt.complete(s,0):this.complete=()=>{this.dispose(),tt.complete(s,0),o()},r==Oe?this._error=a=>tt.complete(s,0,a):this.error=a=>{this.dispose(),tt.complete(s,0,a),r()}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function be(i,...t){return t.reduce((e,r)=>r(e),i)}function Re(i,t,e){if(D_()){let r=Object.defineProperties(Object.setPrototypeOf(i,sr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});tt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof sr&&tt.addSource(r,s)}return r}return i}function ce(i,t){return function(...e){return r=>{if(r instanceof sr){let o=Re(s=>{let a=new i(s,...e);a.sourceId=o.id,a.subscribe(r)},t,arguments);return o.source=r,tt.pipe(o),o}else return o=>r(new i(o,...e))}}}function $i(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var sp=class extends ne{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{tt.defer(this.source,this.id)})}next(t){tt.next(this.source,this.id,t),this.sink.next(t)}complete(){tt.complete(this.source,this.id),this.sink.complete()}error(t){tt.complete(this.source,this.id,t),this.sink.error(t)}},tt={addSource(i,t){$i("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){$i("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){$i("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){$i("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){$i("defer",{id:i.id,streamId:t})},pipe(i){$i("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){$i("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=iI++),$i("create",{name:i.toString(),id:i.id})}},Ra=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var Wd=class extends Oo{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function gi(){return i=>{let t=new Wd(i);if(i instanceof sr){let e=Re(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,tt.pipe(e),e}return Re(t.add.bind(t),"share",arguments)}}function oI(...i){return Re(t=>{let e=new ne(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function sI(...i){return Re(t=>{let e=new Map;i.forEach(r=>{let o=new ne(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(a=>a.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function nI(...i){return Re(t=>{let e=0,r=i.length,o=new ne(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function aI(i){return t=>{let e=new Wd(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},Re(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function cI(i,t,e){return Re(r=>i()?t(r):e(r),"iif",arguments)}function N_(...i){return Re(t=>{let e=i.length,r=e,o=e,s=new Array(e),a=()=>{--o===0&&t.complete()},d=(h,m)=>{let T=new ne(t);T.next=I=>{--r===0?(T.next=v=>{s[m]=v,t.next(s)},T.next(I)):s[m]=I},T.complete=a,T.subscribe(h)};i.forEach(d)},"combineLatest",arguments)}function dI(...i){return Re(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},a=(d,h)=>{let m=new ne(t),T=[];o[h]=T,m.next=I=>{T.push(I),o.every(v=>v.length)&&t.next(o.map(v=>v.shift()))},m.complete=s,m.subscribe(d)};i.forEach(a)},"zip",arguments)}function xo(...i){return t=>Re((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var np=class extends ne{constructor(t,...e){super(t);let r=new ne(this.sink);r.next=o=>this.buffer=o,r.complete=Oe,r.subscribe(N_(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},uI=ce(np,"withLatestFrom"),ap=class extends ne{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},lI=ce(ap,"bufferCount"),cp=class extends ne{constructor(t,e){super(t),this.buffer=[];let r=new ne(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Oe,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},mI=ce(cp,"buffer");var pI=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function d(T){try{m(r.next(T))}catch(I){a(I)}}function h(T){try{m(r.throw(T))}catch(I){a(I)}}function m(T){T.done?s(T.value):o(T.value).then(d,h)}m((r=r.apply(i,t||[])).next())})};function gt(i){let t=arguments,e=gi()(Re(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=Oe,e.complete=Oe,e.error=Oe,e}function w_(i){return Re(t=>t.subscribe(i()),"defer",arguments)}var M_=i=>t=>{setTimeout(()=>i(t))},O_=i=>M_(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function hI(...i){return Re(O_(i),"of",arguments)}function fI(i){return Re(O_(i),"fromArray",arguments)}function dp(i){return Re(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function up(i,t){return Re(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let a=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(a)})}else e.complete()},i),s=()=>{clearTimeout(o)};e.defer(s)},"timer",arguments)}function Gd(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function _I(i,t){return Re(Gd(i,t),"fromEventPattern",arguments)}function De(i,t){if("on"in i&&"off"in i)return Re(Gd(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return Re(Gd(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return Re(Gd(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function P_(i){return Re(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function gI(i,t){return Re(w_(()=>P_(fetch(i,t))),"fromFetch",arguments)}function EI(i){return Re(M_(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function TI(i){let t=e=>pI(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return Re(e=>{t(e)},"fromReader",arguments)}function II(i){return Re(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function SI(){return Re(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function yI(i,t){return Re((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function AI(i,t,...e){return Re(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function bI(i,t,...e){return Re(r=>{let o=e.concat((s,a)=>s?r.error(s):(r.next(a),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function RI(){return Re(()=>{},"never",arguments)}function vI(i){return Re(t=>t.error(i),"throwError",arguments)}function ko(){return Re(i=>i.complete(),"empty",arguments)}var Lo=class extends ne{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},lp=ce(Lo,"reduce"),CI=i=>ce(Lo,"count")((t,e)=>i(e)?t+1:t,0),DI=()=>ce(Lo,"max")(Math.max),NI=()=>ce(Lo,"min")(Math.min),wI=()=>ce(Lo,"sum")((i,t)=>i+t,0);var mp=class extends ne{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},Uo=ce(mp,"filter"),pp=class extends ne{next(t){}},MI=ce(pp,"ignoreElements"),hp=class extends ne{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},Sr=ce(hp,"take"),fp=class extends ne{constructor(t,e){super(t);let r=new ne(t);r.next=()=>t.complete(),r.complete=Hd,r.subscribe(e)}},We=ce(fp,"takeUntil"),_p=class extends ne{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},x_=ce(_p,"takeWhile"),OI=i=>lp((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),gp=class extends ne{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},PI=ce(gp,"skip"),Ep=class extends ne{constructor(t,e){super(t),t.next=Oe;let r=new ne(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=Hd,r.subscribe(e)}},xI=ce(Ep,"skipUntil"),Tp=class extends ne{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},Jd=ce(Tp,"skipWhile"),kI={leading:!0,trailing:!1},Ip=class extends ne{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},jd=class extends ne{constructor(t,e,r=kI){super(t),this.durationSelector=e,this.config=r,this._throttle=new Ip(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=Oe,this._throttle.complete(),super.complete()}},LI=ce(jd,"throttle"),UI={leading:!1,trailing:!0},VI=i=>ce(jd,"audit")(i,UI),Sp=class extends ne{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},qd=class extends ne{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Sp(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},FI=ce(qd,"debounce"),BI=i=>ce(qd,"debounceTime")(t=>up(i)),yp=class extends ne{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},$I=ce(yp,"elementAt"),HI=i=>t=>Sr(1)(Jd(e=>!i(e))(t)),Ap=class extends ne{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.complete()):++this.i}},WI=ce(Ap,"findIndex"),bp=class extends ne{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},GI=ce(bp,"first"),Rp=class extends ne{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},jI=ce(Rp,"last"),vp=class extends ne{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},qI=ce(vp,"every");var Cp=class extends ne{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},Up=ce(Cp,"scan"),Dp=class extends ne{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},JI=ce(Dp,"pairwise"),zd=class extends ne{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},Vs=ce(zd,"map"),zI=i=>ce(zd,"mapTo")(t=>i),Ls=class extends ne{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},Us=class extends ne{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},Xd=class extends Ls{},Qd=class extends Us{next(t){this.subInner(t,Xd),this.next=e=>{this.currentSink.dispose(),this.subInner(e,Xd)}}},Fr=ce(Qd,"switchMap");function eu(i){return(t,e)=>i(()=>t,e)}var Vo=eu(ce(Qd,"switchMapTo")),Np=class extends Ls{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},Yd=class extends Us{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),Np),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},XI=ce(Yd,"concatMap"),QI=eu(ce(Yd,"concatMapTo")),wp=class extends Ls{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},Zd=class extends Us{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,wp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},YI=ce(Zd,"mergeMap"),ZI=eu(ce(Zd,"mergeMapTo")),Mp=class extends Ls{dispose(){this.context.resetNext(),super.dispose()}},Kd=class extends Us{next(t){this.next=Oe,this.subInner(t,Mp)}},KI=ce(Kd,"exhaustMap"),eS=eu(ce(Kd,"exhaustMapTo")),Op=class extends ne{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=gt(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},tS=ce(Op,"groupBy"),Pp=class extends ne{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},rS=ce(Pp,"timeInterval"),xp=class extends ne{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},iS=ce(xp,"bufferTime"),kp=class extends ne{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},oS=ce(kp,"delay"),Lp=class extends ne{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},va=ce(Lp,"catchError");var sS=()=>i=>new Promise((t,e)=>{let r;new Po(i,o=>r=o,e,()=>t(r))}),nS=()=>i=>{let t;return new ReadableStream({start(e){t=new Po(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},ke=(i=Oe,t=Oe,e=Oe)=>r=>new Po(r,i,t,e),Vp=class extends ne{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},Ca=ce(Vp,"tap"),Fp=class extends ne{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Ra(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Bp=ce(Fp,"timeout"),aS=(i=1/0)=>t=>{if(t instanceof sr){let e=Re(r=>{let o=i,s=new ne(r);s.error=a=>{o-- >0?s.subscribe(t):r.error(a)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,tt.pipe(e),e}else return e=>{let r=i,o=new ne(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var k_=be(dp(250),Vs(()=>performance.now()),gi()),L_=i=>t=>{let e=0,r=performance.now();be(k_,Vs(o=>(o-r)/i>>0),Uo(o=>o!=e?(e=o,!0):!1))(t)},tu=i=>t=>{let e=performance.now();be(k_,Jd(r=>r-e<i),Sr(1))(t)};var dS=[0,1,1,1,0,0,1,0],Fo=class extends Vt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));l(this,"_intervalId",0);l(this,"_sequence",0);l(this,"checkGLError",!1);l(this,"checkVisibilityChange");e instanceof Ct?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(dS)}start(e){this.log.info(`${this.name} start render ${e} fps`),ft.clearTask(this._intervalId),this._intervalId=ft.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(ft.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof _t){let o=this.context.ctx.getError();o&&this.context.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){if(this._intervalId&&(ft.clearTask(this._intervalId),this._intervalId=0,e===1)){this.log.info(`${this.name} use requestVideoFrameCallback`);let r=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",r))};document.addEventListener("visibilitychange",r)}this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),ft.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),ft.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},Fs=class extends Fo{constructor(e,r){super(e,r);l(this,"_videoTrack");l(this,"_muteOb");l(this,"_closedOb",De(this,"closed"));l(this,"_subscription");l(this,"_canvasContainer");Number(Pi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=De(this._videoTrack,"mute"),be(De(this._videoTrack,"ended"),We(this._closedOb),ke(()=>{this.context.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=be(this._muteOb,We(this._closedOb),Vo(tu(5e3)),ke(()=>{var e;(e=this._videoTrack)!=null&&e.muted&&this.context.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},ru=class extends Fs{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var iu=class extends Fs{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,a=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>a?o=s/a:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var Da=class extends Vt{constructor(e,r){super(e,J({name:"imageSource"},r));l(this,"_lastImage");l(this,"_totalFrames",0);l(this,"_autoResize",!1);l(this,"_canvasRendered");l(this,"_videoCallbackId",0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Yt===16&&(this._canvasRendered=gt(),be(this._canvasRendered,xo(this._image),Fr(o=>o instanceof HTMLCanvasElement?De(o,"rendered"):ko()),We(De(this,"closed")),ke(()=>{this.update()})))}tryVideoFrameCallback(e){this._videoCallbackId&&e.cancelVideoFrameCallback(this._videoCallbackId),Ao()&&!document.hidden&&(this._videoCallbackId=e.requestVideoFrameCallback((r,o)=>{document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var d;let{width:o,height:s}=this,{image:a}=this;if(a instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(a),{videoWidth:o,videoHeight:s}=a,!o||!s)return!1;a.width=o,a.height=s}else if(a instanceof HTMLImageElement||a instanceof ImageData||a instanceof ImageBitmap){if({width:o,height:s}=a,a!==this._lastImage)this._lastImage=a;else if(o===this.width&&s===this.height)return!1}else a instanceof HTMLCanvasElement||a instanceof OffscreenCanvas?({width:o,height:s}=a,this._lastImage=a):typeof VideoFrame!="undefined"&&a instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=a,(d=this._lastImage)==null||d.close(),this._lastImage=a);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let h=this.context.ctx;h.texSubImage2D(h.TEXTURE_2D,0,0,0,h.RGBA,h.UNSIGNED_BYTE,a)}}else{if(r){this.useTexture();let h=this.context.ctx;h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,a)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Na=class extends Da{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",be(De(this._player,et.PLAYER_STATE_CHANGED),We(De(this,"closed")),Uo(({state:s})=>s==="PLAYING"),ke(()=>{this.tryVideoFrameCallback(this._player.element)}))}get image(){return this._player.element}},Ei=class extends Na{constructor(t,e,r){super(t,new Zt({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}};var lS=`
29
+ `,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=Gm,o.innerText=`${hr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,a=s.querySelector(`.${Cd}`);return a.appendChild(o),a.appendChild(r),a.appendChild(e),s}addDiaLog(){Jm()||(this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${Os}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",U.info("show autoplay dialog"),Ve.uploadEvent({log:kT}))}deleteDiaLog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null)}onConfirm(){U.warn("confirm clicked, try resume stream"),F.emit(P.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDiaLog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${Yf}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||Ve.uploadEvent({log:LT}),this._isCollapseClicked=!0}onQuestionClick(){window.open(t_,"_blank"),this._isQuestionClicked||Ve.uploadEvent({log:UT}),this._isQuestionClicked=!0}},r_=jm;var Zt=class extends Ur{constructor(e){super(e,D.VIDEO);l(this,"stat",{});l(this,"_calculateTimeout",-1);l(this,"viewMirror",!1);l(this,"objectFit");l(this,"container");l(this,"canvas");l(this,"canvasTrack");this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,L(e.viewMirror)||(this.viewMirror=e.viewMirror),L(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}initializeElement(){var r;let e=document.createElement(D.VIDEO);this.track&&this.mode!==2&&(e.srcObject=new MediaStream([this.track])),e.muted=!0,e.setAttribute("id",`video_${this.id}`),e.setAttribute("style",this.styleAttribute),this.canvas&&this.canvas.setAttribute("style",this.styleAttribute),e.setAttribute("autoplay","autoplay"),e.setAttribute("playsinline","playsinline"),this.element=e,(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};background-color: black;`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,(this.track||this.canvasTrack)&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(D.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(D.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent)}handleTrackEvent(e){var r;super.handleTrackEvent(e),e.type===D.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0)}handleElementEvent(e){var o;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===D.PAUSE&&(this.container&&document.getElementById(this.container.id)||this._log.warn(`${this.kind} player has been remove, element ID: ${(o=this.container)==null?void 0:o.id}`),this._pausedRetryCount>0&&!Jm()&&(this._log.info(`${this.kind} player auto resume when paused`),this.resume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let s=this.element.style.transform;r===D.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=s.replace("scaleX(-1)",""):r===D.LEAVE_PICTURE_IN_PICTURE&&!s.includes("scaleX")&&(this.element.style.transform=`${s} scaleX(-1)`)}}setCanvas(e,r=1){var o,s,a,d;this.canvas!==e&&((o=this.canvas)==null||o.remove(),e==null||e.setAttribute("style",this.styleAttribute),this.canvas=e,this.mode=e?r:0,this.mode===2&&this.setTrack(e.captureStream().getVideoTracks()[0]),e?((s=this.element)==null||s.remove(),(a=this.container)==null||a.appendChild(e)):this.element&&((d=this.container)==null||d.appendChild(this.element)))}setAttr(e){let r=Object.assign({autoplay:"autoplay",playsinline:"playsinline",muted:!0},e);r.style=Object.assign({width:"100%",height:"100%"},r.style),super.setAttr(r)}get mirror(){return this.viewMirror}setRect(e,r){this.elementToRender&&(this.elementToRender.style.width=`${e}px`,this.elementToRender.style.height=`${r}px`)}setViewMirror(e){this.elementToRender&&(this.elementToRender.style.transform=e?"scaleX(-1)":""),this.viewMirror=e}setObjectFit(e){this.elementToRender&&(this.elementToRender.style.objectFit=`${e}`),this.objectFit=e}stop(e=0){var r;super.stop(e),console.warn("stop",this.canvas),(r=this.canvas)==null||r.remove()}play(){return this.element?this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender):this.initializeElement(),this.mode===2?Promise.resolve():super.play()}get elementToRender(){return this.canvas||this.element}setTrack(e){e!==this.track&&(this.unbindTrackEvents(),this.track=e,this.emit(et.MEDIA_TRACK_CHANGED,e),e!==null&&(this.bindTrackEvents(),this.element&&this.mode!==2&&(this.element.srcObject=new MediaStream([e]),this.element.remove()),this.elementToRender&&this.elementToRender.parentElement!==this.container&&this.container&&this.container.append(this.elementToRender)))}getVideoFrame(){if(this.canvas)return this.canvas.toDataURL("image/png");if(!this.element)return"";let e=document.createElement("canvas");return e.width=this.element.videoWidth,e.height=this.element.videoHeight,e.getContext("2d").drawImage(this.element,0,0),e.toDataURL("image/png")}getElement(){return this.element}calculateStat(){try{if(Ro()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,a)=>{this.stat.width=a.width,this.stat.height=a.height,r&&(this.stat.fps=Math.round((a.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=a,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var d;return(d=this.element)==null?void 0:d.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function Co(i,t){return A(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),U.info("worklet addModule success")}catch(e){throw U.info(`worklet addModule catch error. ${e.message}`),e}})}var Ta;typeof AudioContext!="undefined"?Ta=AudioContext:typeof webkitAudioContext!="undefined"?Ta=webkitAudioContext:typeof mozAudioContext!="undefined"&&(Ta=mozAudioContext);var Vr,i_=-1;s_();function s_(){try{if(Vr)return;Vr=new Ta({sampleRate:48e3}),Vr.onstatechange=()=>{U.info(`context state: ${Vr.state}${Vr.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),Ps()},clearTimeout(i_)}catch(i){U.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof Ta}`),i_=setTimeout(s_,1e3)}}var Ps=()=>{Vr.state==="suspended"?(o_(),document.addEventListener("click",Ps)):Vr.state==="interrupted"?o_():(document.removeEventListener("visibilitychange",Ps),document.removeEventListener("click",Ps))},zm=0,Xm=-1;function o_(){return new Promise((i,t)=>{Date.now()-zm<1e3?(clearTimeout(Xm),Xm=setTimeout(()=>{zm=Date.now(),Vr.resume().then(i,t)},1e3)):(clearTimeout(Xm),zm=Date.now(),Vr.resume().then(i,t))}).catch(i=>{U.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",Ps)})}document.addEventListener("click",Ps);var lt=i=>Vr;var or=class{constructor(){l(this,"node");l(this,"pre",new Set);l(this,"next",new Set);l(this,"context");l(this,"connectedNodes",new Set);l(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.node&&(this.node.channelCount=t),this.next.forEach(e=>e.channelCount=t)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}setNode(t){var e;if(!this.node)try{(e=this.context)==null||e.addMixWeight(),this.node=t,this.node.channelCountMode="explicit",this.node.channelCount=this._channelCount,this.preNodeReconnect(),this.reconnect(),X.addSuccessEvent({key:502701})}catch(r){U.error(r),X.addFailedEvent({key:502701,error:r})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),X.addSuccessEvent({key:502702})}catch(e){U.error(e),X.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>t._connect(e.node)||e.connectNext(t))}_connect(t){return!this.node||!t?!1:(this.node.connect(t),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(...t){return t.forEach(e=>{this.next.add(e),e.pre.add(this)}),this}},Nd=class extends or{constructor(e=256){super();this.fftSize=e;l(this,"dataArray",new Uint8Array(0))}setNode(e){e.fftSize=this.fftSize,this.dataArray=new Uint8Array(e.frequencyBinCount),super.setNode(e)}getByteTimeDomainData(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),this.dataArray}get level(){var e;return(e=this.node)==null||e.getByteTimeDomainData(this.dataArray),Math.max(...this.dataArray)/128-1}get timeDomainPathData(){let e=this.getByteTimeDomainData(),r=1,o=0,s=0,a=`M${o},${s}`;for(let d=0;d<e.length;d++)s=e[d]/128*100/2,a+=`L${o},${s}`,o+=r;return a}},Ia=class{constructor(){l(this,"source",new or);l(this,"gain",new or);l(this,"destination",new or)}get volume(){var t;return((t=this.gain.node)==null?void 0:t.gain.value)||1}setVolume(t){if(t===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.source.node.context.createGain()),this.gain.node.gain.value=t}replaceSource(t){this.source.deleteNode(),this.source.setNode(Qm(t))}get track(){var t;return(t=this.stream)==null?void 0:t.getAudioTracks()[0]}get stream(){var t;return(t=this.destination.node)==null?void 0:t.stream}},xs=class extends Ia{constructor(e){super();this.context=e;l(this,"denoiser",new or);this.source.pipeTo(this.denoiser.pipeTo(this.gain.pipeTo(this.destination)))}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.denoiser.setContext(this.context),this.gain.setContext(this.context),this.context.inputs.add(this))}disconnect(){this.context.inputs.has(this)&&(this.destination.deleteNode(),this.source.removeContext(),this.denoiser.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.denoiser.deleteNode(),this.source.deleteNode(),this.disconnect()}setVolume(e){if(e===1){this.gain.node&&this.gain.deleteNode();return}this.gain.node||this.gain.setNode(this.context.audioContext.createGain()),this.gain.node.gain.value=e}},wd=class{constructor(){l(this,"audioContext",lt("audio-mixer"));l(this,"destination",this.audioContext.createMediaStreamDestination());l(this,"inputs",new Set);l(this,"mixWeight",0)}addMixWeight(t=1){this.mixWeight+=t,this.mixWeight-1===t+1>>1&&this.mixOnChange()}reduceMixWeight(t=1){this.addMixWeight(-t)}close(){this.inputs.forEach(t=>t.remove())}get mixTrack(){return this.destination.stream.getAudioTracks()[0]}},n_=new WeakMap;function Qm(i){let t=n_.get(i);if(t)return t;let e=lt();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return n_.set(i,t),t}var Kt=class Kt{constructor(t){l(this,"_volume",0);l(this,"_log");l(this,"_scriptProcessorNode",null);l(this,"_audioWorkletNode",null);l(this,"_interval",200);l(this,"ready",this.preload());let{log:e}=t;this._log=e,F.on(P.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Kt.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Kt.workletReady){let t='class VolumeMeterWorklet extends AudioWorkletProcessor{constructor(){super(),this.volume=0,this.intervalTime=200,this.tick=200,this.isStop=!1,this.cache=[],this.sentFirstInfo1=!1,this.unmute=!1,this.port.onmessage=t=>{var e=t.data;switch(e.name){case"chunk":this.cache.push(...e.data),this.sentFirstInfo1||(this.port.postMessage({cl:e.data.length}),this.sentFirstInfo1=!0);break;case"setIntervalTime":this.intervalTime=e.intervalTime;break;case"unmute":this.unmute=!0;break;case"stop":this.isStop=!0}}}process(t,e){t=t[0],e=e[0];if(t||e){if(this.isStop)return!1;var s=e&&e[0]?e[0].length:0,i=this.cache.length,h=(s<i?(e[0].set(this.cache.slice(0,s)),this.cache=this.cache.slice(s)):this.unmute&&e[0].set(t[0]),(s<i?e:t)[0]);if(h){let e=0;for(let t=0;t<h.length;++t)e=Math.max(Math.abs(h[t]),e);this.volume=e,this.tick-=h.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,cacheLen:i,outputLen:s}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Kt.workletReady=Co(Kt.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Kt.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Kt.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Kt.lastMessageTime=Date.now(),this._volume=e.data.volume||0,!t&&e.data.cacheLen&&e.data.outputLen&&(this._log.warn("worklet play success"),t=!0)},this.handleAudioLevelInterval({interval:this._interval})}catch(t){this._log.error(`volumeMeter init audio worklet error: ${t}`),Ve.logFailedEvent({userId:this._log.userId,eventType:ti.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=lt("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Kt.lastMessageTime=Date.now();let e=t.inputBuffer.getChannelData(0),r=0;for(let o=0;o<e.length;++o)r+=e[o]*e[o];this._volume=Math.sqrt(r/e.length)||0}}catch(t){this._log.error(`volumeMeter init script processor error: ${t}`)}}destroy(){this._scriptProcessorNode&&(this._scriptProcessorNode.onaudioprocess=null),this._audioWorkletNode&&(this._audioWorkletNode.port.postMessage({name:"stop"}),this._audioWorkletNode.port.onmessage=null),this._audioWorkletNode=null,this._scriptProcessorNode=null,F.off(P.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};l(Kt,"lastMessageTime",0),l(Kt,"audioContext",lt("volume-meter")),l(Kt,"workletReady");var Ym=Kt,Md=class extends or{constructor(e){super();l(this,"_volumeMeter");this._volumeMeter=new Ym(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return A(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}write(e){if(this.node){let r=e.allocationSize({planeIndex:0}),o=new Float32Array(r>>2);e.copyTo(o,{planeIndex:0}),this.node.port.postMessage({name:"chunk",data:o},[o.buffer]),e.close()}}};var u_=Di(Li(),1);var c_=i=>t=>t.deviceId===i;var Sa=class{constructor(t,e="Input"){l(this,"kind");l(this,"type");l(this,"devices",[]);this.kind=t,this.type=e}update(t,e){let r=t.filter(o=>o.kind===`${this.kind}${this.type.toLocaleLowerCase()}`);if(this.devices.length===1&&ks(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(c_(o.deviceId))){let s=`${this.kind}${this.type}Added`;U.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(c_(o.deviceId))){let s=`${this.kind}${this.type}Removed`;U.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},Zm=class extends u_.EventEmitter{constructor(){super();l(this,"audioInputs",new Sa(D.AUDIO));l(this,"videoInputs",new Sa(D.VIDEO));l(this,"audioOutputs",new Sa(D.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||ft.run(mo,()=>{this.update()},{delay:1e4}))}init(){Od().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return A(this,arguments,function*(e=0){let r=yield Od(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}},ht=Dn||ss?null:new Zm;function ks(i){return i.deviceId===i.groupId&&i.groupId===""}function Od(){return A(this,arguments,function*(i=0){if(mi()||!bd())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{ks(r)&&(r.kind===D.AUDIO_INPUT?e.audio=!0:r.kind===D.VIDEO_INPUT&&(e.video=!0))}),i===2&&(e.audio=!1),i===1&&(e.video=!1),e.audio||e.video){let r;try{r=yield navigator.mediaDevices.getUserMedia(e)}catch(o){U.debug("capture before getDevices failed: ",o)}t=yield navigator.mediaDevices.enumerateDevices(),r==null||r.getTracks().forEach(o=>o.stop())}}return t.map((e,r)=>{let o={kind:e.kind,deviceId:e.deviceId,groupId:e.groupId,label:e.label||`${e.kind}_${r}`};return e.deviceId.length>0&&Km.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Gt(i=!1){return ht.update(i?1:0).then(t=>t.audioInputs.devices)}function er(i=!1){return ht.update(i?2:0).then(t=>t.videoInputs.devices)}var d_=!1;function l_(){return A(this,null,function*(){try{d_||(d_=!0,U.info(`speakers:${(yield Fi()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function Fi(i=!1){return A(this,null,function*(){return ht.update(i?1:0).then(t=>t.audioOutputs.devices)})}var Km=new Set;function m_(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("camera")||t.includes("webcam"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${D.VIDEO_INPUT}`;return!!Km.has(r)}function p_(i){if(i instanceof CanvasCaptureMediaStreamTrack||!(i instanceof MediaStreamTrack))return!1;let t=i.label.toLocaleLowerCase();if(t.includes("mic")||t.includes("\u9EA6\u514B\u98CE"))return!0;let r=`${((i==null?void 0:i.getSettings())||{}).deviceId}_${D.AUDIO_INPUT}`;return!!Km.has(r)}function ep(i,t){return A(this,null,function*(){let r=(yield Gt()).find(o=>o.deviceId===lo);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function h_(s){return A(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===D.AUDIO&&i===lo?yield ep(e,r):!0})}var Pd,tp=class extends Ia{constructor(e){super();this.log=e;l(this,"volumeMeter");l(this,"volumeDestination");l(this,"analyser",new Nd);this.volumeMeter=new Md({log:this.log}),this.volumeDestination=new or,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},xd=class i extends Ur{constructor(e){super(e,D.AUDIO);l(this,"_outputDeviceId");l(this,"_volume",1);l(this,"_destination",lt("player").createMediaStreamDestination());l(this,"pipeline");l(this,"volumeMeterMode","worklet");this.mode=0,this.pipeline=new tp(this._log)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((ki==="15.2"||ki==="15.3"||ki==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Pd||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.element=o,$e(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Pd&&(Pd=void 0),this.bindElementEvents()}play(e){return A(this,null,function*(){if(this.track)return this.pipeline.source.node||this.pipeline.replaceSource(this.track),this.element||this.initializeElement(e==null?void 0:e.volume),this._outputDeviceId&&(yield this.setSinkId(this._outputDeviceId)),this.volumeMeterMode==="worklet"?this.pipeline.volumeMeter.init():this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(lt("player").createAnalyser()),l_(),Lt(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setSinkId(e){return A(this,null,function*(){var r,o;this._outputDeviceId!==e&&(this._outputDeviceId=e),this.element&&this.element.sinkId!==e&&(yield(o=(r=this.element).setSinkId)==null?void 0:o.call(r,e))})}get useDestination(){return!!this.pipeline.stream}setLoop(e){this.element&&(this.element.loop=e)}getAudioLevel(){return this.pipeline.volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this.pipeline.volumeMeter.getInternalAudioLevel()}},kd=class extends xd{constructor(t){super(t),this.pipeline.source.pipeTo(this.pipeline.volumeMeter,this.pipeline.destination)}setTrack(t){var e;this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(et.MEDIA_TRACK_CHANGED,t),t?(this.bindTrackEvents(),this.pipeline.source.channelCount=((e=t.getSettings())==null?void 0:e.channelCount)||1,this.pipeline.replaceSource(t),!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([t]))):this.pipeline.source.deleteNode())}setSourceNode(t){!t||this.pipeline.source.node===t||(this.pipeline.replaceSource(t),t instanceof MediaStreamAudioSourceNode?this.pipeline.destination.setNode(this._destination):this.pipeline.destination.deleteNode(),this.element&&(this.element.srcObject=this.getMediaStream(),this.element.play().catch(()=>{}),this.setVolume(this._volume)))}setVolume(t){this._volume=t,this.element&&(this.element.volume=t)}},Ld=class extends xd{constructor(e){super(e);l(this,"_sourceElement");l(this,"_output",new or);this.pipeline.source.pipeTo(this.pipeline.gain.pipeTo(this.pipeline.volumeMeter.pipeTo(this._output),this.pipeline.destination))}setOutput(){this.mode=1,this._output.setNode(lt("player").destination)}write(e){this.pipeline.volumeMeter.write(e)}setTrack(e){var r,o,s;((o=(r=this.element)==null?void 0:r.error)==null?void 0:o.code)!==MediaError.MEDIA_ERR_DECODE&&this.track!==e&&(this.unbindTrackEvents(),this.track=e,this.emit(et.MEDIA_TRACK_CHANGED,e),e?(this.bindTrackEvents(),this._sourceElement?this._sourceElement.srcObject=new MediaStream([e]):!this.useDestination&&this.element&&(this.element.srcObject=new MediaStream([e])),this.pipeline.source.channelCount=((s=e.getSettings())==null?void 0:s.channelCount)||1,this.pipeline.replaceSource(e)):this.pipeline.source.deleteNode())}setVolume(e){this._volume=e,this.useDestination?(this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`)):e<=1&&!bt?this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element"):(this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),at(this.element),this._sourceElement=this.element,this._sourceElement.muted=!0,this.element=null,this.play()))}stop(e=0){this.pipeline.destroy();let r=this._sourceElement||this.element;r&&Pi&&(Pd=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var Do=class extends Z{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:a=o===1?Ld:Zt}){var d;super();l(this,"id",ia());l(this,"userId","");l(this,"isRemote");l(this,"mediaType");l(this,"room");l(this,"user");l(this,"_log");l(this,"_inputTrack");l(this,"_outputTrack");l(this,"isPlayCalled");l(this,"container",null);l(this,"player");l(this,"subVideoPlayerMap");l(this,"muted",!1);l(this,"abortCtrl");l(this,"objectFit","cover");l(this,"mirror");l(this,"isScreen",!1);l(this,"manager");l(this,"trackSettings");this.userId=e||"",this.mediaType=o,this._log=U.createLogger({id:`${this.kind[0]}t`,userId:(d=s||this.room)==null?void 0:d.userId,remoteUserId:this instanceof hi?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof hi}),this.player=new a({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log}),this.player.on(et.PLAYER_STATE_CHANGED,h=>{F.emit(P.PLAYER_STATE_CHANGED,J({track:this},h)),this.emit("player-state-changed",h)}),this.kind===D.VIDEO&&(this.player.on(et.LOADED_DATA,()=>{F.emit(P.VIDEO_LOADED_DATA,{track:this})}),this.player.on(et.LOADED_META_DATA,()=>{var m,T,I;let h=(m=this.mediaTrack)==null?void 0:m.getSettings();this.emit("first-video-frame",{width:(h==null?void 0:h.width)||((T=this.player.element)==null?void 0:T.videoWidth)||0,height:(h==null?void 0:h.height)||((I=this.player.element)==null?void 0:I.videoHeight)||0,streamType:this.streamType,userId:this.isRemote?this.userId:""})}),this.player.on(et.MEDIA_TRACK_CHANGED,h=>{var m;(m=this.subVideoPlayerMap)==null||m.forEach(T=>T.setTrack(h))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(et.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||U}get kind(){return this.mediaType===1?D.AUDIO:D.VIDEO}get strMediaType(){return this.mediaType===4?D.VIDEO:this.mediaType===2?D.SCREEN:D.AUDIO}get streamType(){return(this.mediaType&2)===0?"main":"auxiliary"}get isMediaTrackActive(){return this.mediaTrack?!this.mediaTrack.muted&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled:!1}play(e,r){return A(this,null,function*(){let o=it(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!L(r.muted)&&this.setPlayerMute(r.muted),r&&!L(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Zt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),it(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!L(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===D.VIDEO)&&this.setPlayerMute(!0),r&&!L(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Zt&&this.player.setObjectFit(this.objectFit),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof Zt&&this.player.setContainer(o)),F.emit(P.PLAY_TRACK_START,{track:this}),!this._outputTrack){this.log.info("play has not mediaTrack, abort");return}this._log.info(`play with options: ${JSON.stringify(r)}`);try{this.player.setTrack(this.playerMediaTrack),yield this.player.play(r),it(e)&&e.length>1&&(yield this.playSubContainer(e.slice(1),r))}catch(s){throw this.handleAutoPlayFailed(s),s}})}setMirror(e,r){if(this.isScreen||this.kind!==D.VIDEO||L(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(nt(this.mirror)){o.setViewMirror(this.mirror),s&&(s.mirror=!1);return}switch(this.mirror){case"view":{s&&(s.mirror=!1),o.setViewMirror(!0);break}case"publish":{s&&(s.mirror=!0),o.setViewMirror(!0);break}case"both":s&&(s.mirror=!0),o.setViewMirror(!1)}}playSubContainer(e,r){return A(this,null,function*(){if(!this._outputTrack||this.kind===D.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,a)=>{var d;e.find(h=>a===h)||(s.stop(),(d=this.subVideoPlayerMap)==null||d.delete(a))});for(let[s,a]of e.entries()){let d=this.subVideoPlayerMap.get(a);d?r&&(L(r.objectFit)||d.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(a,new Zt({id:this.userId||this.id,track:this.playerMediaTrack,container:a,muted:this.player.muted,objectFit:this.objectFit,log:this.log.createChild({id:`vp-sub${s+1}`})}))}let o=[...this.subVideoPlayerMap.values()];for(let s of o)s.setViewMirror(this.player.mirror),yield s.play()})}setAudioOutput(e){return this.player.setSinkId(e)}setAudioVolume(e){this.player.setVolume(e)}getAudioLevel(){return this.player.getAudioLevel()||0}getInternalAudioLevel(){var e;return((e=this.player)==null?void 0:e.getInternalAudioLevel())||0}stop(e=!1){this.isPlayCalled&&(this.isPlayCalled=!1,this.player&&(this.log.info(`stop ${this.kind} player`),this.player.stop(Ql(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return A(this,null,function*(){var e;this.isPlayCalled&&(yield(e=this.player)==null?void 0:e.resume())})}close(){this.log.info("close"),this.isPlayCalled&&this.stop(!0)}setMute(e){this.muted=e,this._inputTrack&&(this._inputTrack.enabled=!e),this._outputTrack&&(this._outputTrack.enabled=!e),this.emit(e?"mute":"unmute",this),F.emit(e?P.TRACK_MUTED:P.TRACK_UNMUTED,{track:this})}setPlayerMute(e){this.player.setMuted(e)}get mediaTrack(){return this._inputTrack||null}get outMediaTrack(){return this._outputTrack||null}get playerMediaTrack(){return this.outMediaTrack}installTrackEvent(e){vt(e,e).add(D.MUTE,this.onTrackMuted).add(D.UNMUTE,this.onTrackUnmuted).add(D.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===D.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){at(e)}setInputMediaStreamTrack(e){var o;let r=this._inputTrack;if(e!==r)return this._inputTrack=e,this.trackSettings=(o=e.getSettings)==null?void 0:o.call(e),e.enabled=!this.muted,r&&this.uninstallTrackEvent(r),this.installTrackEvent(e),this.emit("input-media-track-changed",e||null,r||null),this.manager?this.manager.changeInput(this):this.setOutputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var o;let r=this._outputTrack;e!==r&&(this.isRemote?this.log.debug("setOutputMediaStreamTrack",e.label):this.log.info("setOutputMediaStreamTrack",(o=e.getSettings)==null?void 0:o.call(e).deviceId,e.label),this._outputTrack=e,this._inputTrack&&(this._outputTrack.contentHint=this._inputTrack.contentHint,this._outputTrack.enabled=this._inputTrack.enabled),this.updatePlayingState(!!e),this.emit("output-media-track-changed",e))}setMediaType(e){this.mediaType=e}updatePlayingState(e){if(this.isPlayCalled){if(e){if(this.player.setTrack(this.playerMediaTrack),this.player.isStopped){this.player.play().catch(r=>this.handleAutoPlayFailed(r)),this.log.info(`playing state updated, play ${this.kind}`);return}}else if(!this.player.isStopped){this.player.stop(Ql(this)?this.jitterBufferDelay:0),this.log.info(`playing state updated, stop ${this.kind}`);return}}this.log.debug(`updatePlayingState abort ${this.isPlayCalled} ${e} ${this.player.isStopped}`)}handleAutoPlayFailed(e){if(this.room&&this.room.enableAutoPlayDialog)new r_;else{let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};document.addEventListener("click",r,!0)}this.emit("error",e)}getVideoFrame(){return this.player instanceof Zt?this.player.getVideoFrame():""}onTrackMuted(){this._log.warn(`${this.kind} track is unable to provide media output`)}onTrackUnmuted(){this._log.info(`${this.kind} track is able to provide media output`)}onTrackEnded(){this._log.warn(`${this.kind} track ended`)}};G([be([],Z.INIT,{sync:!0})],Do.prototype,"close",1);var FT=Object.prototype.hasOwnProperty,{toString:Ev}=Object.prototype;function BT(i){if(i==null)return!0;if(typeof i=="boolean")return!1;if(typeof i=="number")return i===0;if(typeof i=="string"||typeof i=="function"||Array.isArray(i))return i.length===0;if(i instanceof Error)return i.message==="";if(Bt(i))switch(Object.prototype.toString.call(i)){case"[object File]":case"[object Map]":case"[object Set]":return i.size===0;case"[object Object]":{for(let t in i)if(FT.call(i,t))return!1;return!0}}return!1}var ya=BT;var $T=function(i){return A(this,null,function*(){let t=WT(i);U.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];t.audio&&(e=yield Gt(),U.info(`microphones: ${ir(e.map(s=>pe(J({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield er(),U.info(`cameras: ${ir(r,{keysToInclude:o})}`));try{let s=yield navigator.mediaDevices.getUserMedia(t);return Lm&&s.getTracks().forEach(a=>{U.info(`${a.kind} capabilities: ${ir(a.getCapabilities(),{keysToInclude:Bc})}`)}),s}catch(s){let{message:a}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(a=st({key:ot.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(a=st({key:ot.MICROPHONE_NOT_FOUND}))),new ue({code:Y.INITIALIZE_FAILED,name:s.name,message:a,constraint:s.constraint})}})},HT=Oi({retryFunction:$T,settings:{retries:3,timeout:500},onError:({error:i,retry:t,reject:e,retryFuncArgs:r,retriedCount:o})=>{let s=o+1;i.name==="NotReadableError"||i.name==="OverconstrainedError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!$t||r[0].width*r[0].height<=1920*1080)&&r[0].frameRate&&(r[0].frameRate=r[0].frameRate>10?10:5)),r[0].retryWhenExactFailed&&r[0].useExactDeviceId&&(r[0].useExactDeviceId=!1)):s===2?r[0].useDeviceIdOnly=!0:s===3&&!r[0].useExactDeviceId&&(r[0].useTrueAsConstraint=!0),t()):e(i),r[0].microphoneId&&f_(r[0].microphoneId,!1),r[0].cameraId&&f_(r[0].cameraId,!0)},onRetrying:i=>{U.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{Ve.logFailedEvent({eventType:ti.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{Ve.logSuccessEvent({eventType:ti.GET_USER_MEDIA_RETRY}),Ve.uploadEvent({log:`stat-${ti.GET_USER_MEDIA_RETRY}-success-${i}`})}});function f_(i,t){return A(this,null,function*(){let r=(t?yield er():yield Gt()).find(o=>o.deviceId===i);r&&Fe(r.getCapabilities)&&U.warn(ir(r.getCapabilities(),{keysToInclude:Bc}))})}function WT(i){return{audio:GT(i),video:jT(i)}}function GT(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!ya(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:($e(i.channelCount)&&(t.channelCount=i.channelCount),nt(i.echoCancellation)&&!i.echoCancellation&&(t.echoCancellation=!1),nt(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),nt(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),ya(t)?!0:t)}function jT(i){if(!i.video)return!1;if(i.useTrueAsConstraint)return!0;let{maxResolution:t=!0}=i,e={};return i.cameraId?e.deviceId=i.useExactDeviceId?{exact:i.cameraId}:i.cameraId:i.facingMode&&(e.facingMode=i.facingMode),i.useDeviceIdOnly&&!ya(e)?e:(i.width&&(e.width={ideal:i.width},t&&!_r&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!_r&&(e.height.max=i.height)),_r&&Er&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),ya(e)?!0:e)}var __=HT;function Bi(i){return Re((t,e)=>function(...r){return A(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function g_(i){return Re((t,e)=>function(...r){return A(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Re(i){return function(t,e,r){return r.value=i(r.value,e),r}}var E_=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&U.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{U.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var qT=0,Ud=class{constructor(){l(this,"log",U.createLogger({id:`fq${++qT}`}));l(this,"isRunning",!1);l(this,"queue",[])}get length(){return this.queue.length}get lastQueueItem(){return this.length===0?null:this.queue[this.length-1]}push(t,e=!1){var s,a;let r=J({},t),o=new Promise((d,h)=>{r.resolve=d,r.reject=h});return r.promise=o,e?this.length<=1?this.queue.push(r):(a=(s=this.lastQueueItem)==null?void 0:s.promise)==null||a.then(r.resolve,r.reject):this.queue.push(r),this.log.debug(`push ${this.length}`),this.isRunning||this.callNext(),o}shift(){let t=this.queue.shift();return this.log.debug(`shift ${this.length}`),t}callNext(){if(this.isRunning||this.length===0)return;this.log.debug("callNext ",this.length);let{fn:t,args:e,context:r,resolve:o,reject:s}=this.queue[0];this.isRunning=!0,t.apply(r,e).then(o,s).finally(()=>{this.isRunning=!1,this.shift(),this.callNext()})}},T_=new WeakMap,I_=new WeakMap;function S_(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let a=T_.get(this)||new Ud;return T_.set(this,a),a.push({fn:o,args:s,context:this},i)},r}}function Vd(i){return function(t,e,r){let o=r.value,s=a=>i(...a);return r.value=function(...a){let d=I_.get(this)||new Map,h=d.get(s(a))||new Ud;return d.set(s(a),h),I_.set(this,d),h.push({fn:o,args:a,context:this})},r}}function Fd(i,t){return Re((e,r)=>function(...o){let s=i;try{let a=e.apply(this,o),d=ge();return wi(a)?a.then(h=>(t?X.addSuccessEvent({key:s,cost:ge()-d}):X.addSuccessEvent({key:s}),h)).catch(h=>{throw X.addFailedEvent({key:s,error:h}),h}):(X.addSuccessEvent({key:s}),a)}catch(a){throw X.addFailedEvent({key:s,error:a}),a}})}var No=class No extends Do{constructor(e,r){super({mediaType:e,PlayerClass:r});l(this,"isRemote",!1);l(this,"deviceId");l(this,"groupId","");l(this,"label","");l(this,"_isRecapturing",!1);l(this,"_lastRecaptureTime",0);l(this,"_onMuteTimeoutId",-1);l(this,"_encodeCheckTimeoutId",-1);l(this,"profile")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){vt(e,e).add(D.MUTE,this.onTrackMuted).add(D.UNMUTE,this.onTrackUnmuted).add(D.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===D.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){at(e)}setStateToCapture(){}capture(e){return A(this,null,function*(){var r;try{let o=ge();F.emit(P.LOCAL_TRACK_CAPTURE_START,{track:this});let s;e.customSource?(s=new MediaStream,s.addTrack(e.customSource)):((r=this.mediaTrack)==null||r.stop(),s=yield __(e));let a=s.getTracks()[0];return yield this.setInputMediaStreamTrack(a),e.customSource||(this.updateDeviceIdInUse(),this.listenDeviceChange()),F.emit(P.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:ge()-o}),s}catch(o){throw F.emit(P.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:o}),this.log.error(`getUserMedia error observed ${o}`),o}})}setInputMediaStreamTrack(e){return this.state===Z.INIT&&this.setStateToCapture(),super.setInputMediaStreamTrack(e)}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}publish(e,r){return this.room=e,this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.setUserId(e.userId),this._log.setSdkAppId(e.sdkAppId),r}unpublish(){this.room&&this.room.localTracks.delete(this),F.emit(P.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return A(this,null,function*(){if(this.mediaTrack&&ws){let{deviceId:e,groupId:r}=this.mediaTrack.getSettings(),{label:o}=this.mediaTrack;(yield h_({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),Od().then(a=>{let d=a.find(h=>h.deviceId===e);d&&this.emit("2",d)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.mediaTrack||this.kind===D.AUDIO&&!p_(this.mediaTrack)||this.kind===D.VIDEO&&!m_(this.mediaTrack)||this._isRecapturing||e&&Er&&$t)}onTrackMuted(){if(super.onTrackMuted(),E_(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<cs){setTimeout(()=>this.onTrackMuted(),cs);return}this._onMuteTimeoutId=setTimeout(()=>A(this,null,function*(){var e;if((e=this.mediaTrack)!=null&&e.muted){if((bt||pt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return A(this,null,function*(){if(Lt(No.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()){if(Date.now()-this._lastRecaptureTime<cs){setTimeout(()=>this.onTrackEnded(),cs);return}this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e){return A(this,null,function*(){var o;if(this._isRecapturing||!this._inputTrack)return;this.log.warn("recapture trying"),(o=this._inputTrack)==null||o.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let r={useExactDeviceId:!0};if(e==="user"||e==="environment")r.facingMode=e;else{let s;(this.kind==="audio"?yield Gt():yield er()).find(d=>d.deviceId===e)&&(s=e),r.deviceId=s}return this.capture(r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),F.emit(P.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(s=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${s.message}`),this.emit("5",s),F.emit(P.LOCAL_TRACK_RECAPTURE,{track:this,error:s})})})}getRecoverCaptureDeviceId(){return A(this,null,function*(){let e=this instanceof Ir;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Aa.get(r)||0)+1;if(Aa.set(r,o),o>=3){let s=e?(yield er()).find(a=>!Aa.has(a.deviceId)):(yield Gt()).find(a=>!Aa.has(a.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}close(){var e;super.close(),this._inputTrack&&(this._inputTrack.stop(),this.uninstallTrackEvent(this._inputTrack)),(e=this.manager)==null||e.removeInput(this)}};G([be(Z.INIT,"capture",{ignoreError:!0,sync:!0})],No.prototype,"setStateToCapture",1),G([S_()],No.prototype,"capture",1),G([be("capture","publish",{ignoreError:!0,success(){var r,o;this.room.localTracks.add(this),F.emit(P.LOCAL_TRACK_PUBLISHED,{track:this}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),!((((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.uplinkNetworkQuality)||0)>3)&&(this._encodeCheckTimeoutId=setTimeout(()=>{var a,d;if(!((((d=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:d.uplinkNetworkQuality)||0)>3)&&this.isPublished&&this.isMediaTrackActive){let h=this.kind===D.AUDIO,m=this.stat.bytesSent>0;X[m?"addSuccessEvent":"addFailedEvent"]({key:h?503700:513702}),m||(X.addEnum({key:h?503701:513703,value:ta()}),Ve.uploadEvent({log:`stat-encode-failed-${this.kind}-${ea()||Eo()}`,userId:this.userId}),this.log.warn("encode failed"),this.emit("6",this))}},5e3))},fail(e){let r="error";if(e.cause instanceof RTCError){let o=e.cause;o.message.includes("timeout")?r="timeout":o.code===Y.API_CALL_ABORTED&&(r="api-call")}this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:e.cause||e})}}),Fd(521714,!1)],No.prototype,"publish",1),G([Re(e=>function(){return A(this,null,function*(){let r=this.state==="publish"?"started":"starting";e.call(this),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:r,reason:"api-call"}),clearTimeout(this._encodeCheckTimeoutId)})}),be([],"capture",{sync:!0})],No.prototype,"unpublish",1);var hi=No,Aa=new Map;F.on(P.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Aa.delete(i.track.deviceId)});var fi=class i extends hi{constructor(e){super(1,kd);l(this,"mediaType",1);l(this,"volume",0);l(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});l(this,"playerMuted",!0);l(this,"pipeline");l(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});this.manager=e,this.pipeline=new xs(e),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this)}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}get playerMediaTrack(){return this.mediaTrack}setInputMediaStreamTrack(e){return A(this,null,function*(){let r=this.trackSettings||{};X.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),X.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),X.addEnum({key:502700,value:0});let{sampleRate:o,channelCount:s}=r;this._log.info(`local audio track input ${JSON.stringify({sampleRate:o,channelCount:s})}`),this.pipeline.source.channelCount=s||1,this.pipeline.replaceSource(e),yield Lt(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s=!0}){return super.capture({video:!1,audio:!0,microphoneId:e,echoCancellation:this.profile.echoCancellation,autoGainControl:this.profile.autoGainControl,noiseSuppression:this.profile.noiseSuppression,sampleRate:this.profile.sampleRate,channelCount:this.profile.channelCount,useExactDeviceId:o,retryWhenExactFailed:s,customSource:r})}switchDevice(e){return A(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e)if(e===lo){if(yield ep(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.mediaTrack&&this.mediaTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),F.emit(P.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch microphone success")}catch(r){throw this.log.error(`switch microphone failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}}})}listenDeviceChange(){ht&&!ht.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&ht.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current microphone is lost: ${JSON.stringify(e)}`),ze(this.userId,{eventId:2003,param1:6,streamType:1});let r=yield Gt();r[0]?this.recapture(r[0].deviceId):ht.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)}update3A(s){return A(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let a=!1;!L(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a=!0),!L(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a=!0),!L(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a=!0),a&&this.deviceId&&(yield this.recapture(this.deviceId))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&X.addEnum({key:502700,value:2}),this.resetPlayerSource()}enableTrackANS(e){if(!this._inputTrack)return;let r=this._inputTrack.getConstraints();return r.noiseSuppression=e,this._inputTrack.applyConstraints(r).catch(o=>this._log.warn(`${e?"enable":"disable"} ANS failed `,o))}addDenoiser(e){var r;if(si<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}X.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.resetPlayerSource(),this.enableTrackANS(!1)}removeDenoiser(e){this.pipeline.denoiser.node===e&&(this.pipeline.denoiser.deleteNode(),this.resetPlayerSource(),this.enableTrackANS(!0))}resetPlayerSource(){this.player.setSourceNode(this.pipeline.gain.node||this.pipeline.denoiser.node||this.pipeline.source.node)}close(){this.pipeline.remove(),ht.off("audioInputAdded",this.handleMicrophoneAdded,this),ht.off("audioInputRemoved",this.handleMicrophoneRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Lt(i.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield Gt()).find(s=>s.deviceId!==e);if(o)yield Lt(i.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}};var wo=class{constructor(t,e=!1){this.dataView=t;this.isSEI&&(e?this.addPreventionByte():this.removePreventionByte())}addPreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-2,r=[],o=0;for(let a=t;a<=e;a++){let d=this.dataView.getInt8(a);switch(d){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),d==0?o++:o=0,r.push(d);break;default:o=0,r.push(d);break}}r.push(this.dataView.getInt8(this.dataView.byteLength-1));let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}removePreventionByte(){let t=this.seiPayloadStartIndex,e=this.dataView.byteLength-1,r=[],o=0;for(let a=t;a<=e;a++)switch(this.dataView.getInt8(a)){case 0:o++,r.push(this.dataView.getInt8(a));break;case 3:o!==2&&r.push(this.dataView.getInt8(a)),o=0;break;default:r.push(this.dataView.getInt8(a)),o=0;break}let s=new DataView(new Uint8Array([...new Uint8Array(this.dataView.buffer).slice(0,t),...r]).buffer);this.dataView=s}get isSEI(){return this.dataView.getUint8(4)===6}get seiPayloadStartIndex(){let t=6;for(let e=6;e<this.dataView.buffer.byteLength&&(t++,this.dataView.getUint8(e)===255);e++);return t}get seiPayloadType(){return this.isSEI?this.dataView.getUint8(5):null}get seiPayload(){if(!this.isSEI)return null;let t=0,e=6;for(let s=6;s<this.dataView.buffer.byteLength;s++){let a=this.dataView.getUint8(s);if(e++,a===255)t+=255;else{t+=a;break}}let r=new ArrayBuffer(t),o=new DataView(r);for(let s=0;s<r.byteLength;s++,e++)o.setInt8(s,this.dataView.getInt8(e));return o}};var Bd=class{constructor(){l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_seiPayloadType",243)}encodeSEINalu(t){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,this._seiPayloadType);for(let d=0;d<r;d++)s.push(255);s.push(o);let a=new DataView(t);return s.push(...new Uint8Array(a.buffer)),s.push(128),new wo(new DataView(new Uint8Array(s).buffer),!0)}sendSEI(t,e){e!=null&&e.seiPayloadType&&(this._seiPayloadType=e.seiPayloadType),this._seiMessageList.push(t),e!=null&&e.small&&this._smallSeiMessageList.push(t)}isEmpty(){return!this._seiMessageList.length}getNaluCount(t){let e=0,r=0,o=new DataView(t);for(let s=0;s<t.byteLength;s++)switch(o.getUint8(s)){case 0:e++;break;case 1:(e===2||e===3)&&r++,e=0;break;default:e=0;break}return r}encode(t,e){let r=e?this._smallSeiMessageList:this._seiMessageList;if(r.length>0&&t.data.byteLength>0){let s=9-this.getNaluCount(t.data);if(s<=0)return 0;let a=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),d=a.reduce((v,N)=>v+N.dataView.byteLength,0),h=new ArrayBuffer(d+t.data.byteLength),m=new DataView(h),T=new DataView(t.data),I=0;for(let v=0;v<a.length;v++)for(let N=0;N<a[v].dataView.byteLength;N++)m.setInt8(I++,a[v].dataView.getInt8(N));for(let v=0;v<t.data.byteLength;v++)m.setInt8(I++,T.getInt8(v));return t.data=h,a.length}return 0}};var Mo=class Mo extends hi{constructor(e,r=4){super(r,Zt);l(this,"profile",{width:640,height:480,frameRate:15,bitrate:500});l(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0});l(this,"small");l(this,"isNeedToSetBandwidth");l(this,"muteImage");l(this,"manager");l(this,"_seiCodec",new Bd);this.manager=e;let o=()=>{this.isAllowed2k4k(this.profile)?this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),this.setProfile(pe(J({},this.profile),{width:1920,height:1080})),this.applyProfile())};this.on("input-media-track-changed",o),this.on("publish",o),this.handleCameraAdded=this.handleCameraAdded.bind(this),this.handleCameraRemoved=this.handleCameraRemoved.bind(this)}get facingMode(){if(!(!ws||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}setMute(e){return A(this,null,function*(){var r,o,s;if(Ae(e)){if(this.muteImage===e)return;yield(r=this.manager)==null?void 0:r.deleteWatermark("mute"),yield(o=this.manager)==null?void 0:o.setWatermark({x:0,y:0,width:this.settings.width,height:this.settings.height,type:"mute",zIndex:999,imageUrl:e}),this.muteImage=e,Lt(Mo.prototype,this,"setMute").call(this,!1)}else yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0,Lt(Mo.prototype,this,"setMute").call(this,e)})}capture({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:a=!0}){return super.capture({audio:!1,video:!0,facingMode:r||this.facingMode,cameraId:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,useExactDeviceId:o,retryWhenExactFailed:a,customSource:s})}setProfile(e){let r=J({},e),o=r.width>r.height;r.width*r.height<=160*120&&pt&&go&&(this.log.warn(`resolution is ${r.width}*${r.height}, fallback to 240*180`),r.width=o?240:180,r.height=o?180:240,r.bitrate=Math.max(r.bitrate,150)),r.width*r.height>1280*720&&dm&&(r.width=o?1280:720,r.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile)?super.setProfile(r):(this.log.warn("Resolution is reset to 1080p, need to upgrade ability here https://cloud.tencent.com/document/product/647/85386"),super.setProfile(pe(J({},this.profile),{width:1920,height:1080})))}applyProfile(){return A(this,null,function*(){var o;if(!this.mediaTrack)return;let e=this.settings;if(!(!(e.height!==this.profile.height||e.width!==this.profile.width||e.frameRate!==this.profile.frameRate)||!this.deviceId)&&(Yt===16?yield this.recapture(this.deviceId):(yield(o=this.mediaTrack)==null?void 0:o.applyConstraints({width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate}),this.manager&&this.manager.changeInput(this)),this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1}),this.isNeedToSetBandwidth&&this.room&&this.room.setBandWidth))return this.isNeedToSetBandwidth=!1,this.room.setBandWidth({bandwidth:this.profile.bitrate,type:D.VIDEO,videoType:D.BIG})})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate};return ws&&this.mediaTrack&&Object.assign(e,this.mediaTrack.getSettings()),e}get scaleResolutionDownBy(){let{settings:e}=this;return e.width===this.profile.width&&e.height===this.profile.height?1:qc()&&this.profile.width>this.profile.height&&e.height>e.width?Math.max(e.width/this.profile.height,e.height/this.profile.width,1):Math.max(e.width/this.profile.width,e.height/this.profile.height,1)}isAllowed2k4k(e){var r;return!this.room||!this.room.scheduleResult||this.isScreen||e.height*e.width<2560*1440?!0:((r=this.room.scheduleResult.trtcAutoConf)==null?void 0:r["2k4k"])===1}isNeedToSwitchDevice(e){return!(!this.mediaTrack||this.deviceId===e||this.facingMode===e)}switchDevice(e){return A(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e))return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.mediaTrack.stop(),yield this.capture(r),F.emit(P.SWITCH_DEVICE_SUCCESS,{track:this}),this.log.info("switch camera success")}catch(r){throw this.log.error(`switch camera failed ${r}`),this.deviceId&&this.recapture(this.deviceId),r}})}listenDeviceChange(){ht&&!ht.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&ht.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){this.log.warn(`current camera is lost: ${JSON.stringify(e)}`),ze(this.userId,{eventId:2003,param1:7,streamType:2});let r=yield er();r[0]?this.recapture(r[0].deviceId):ht.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return A(this,null,function*(){this.log.warn(`camera added: ${JSON.stringify(e)}`),this.recapture(e.deviceId)})}encodeFrame(e,r){if(!this.manager)return e;let o=r?8:this.mediaType;return this.manager.encodePipeline.reduceRight((s,a)=>a?a({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return L(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){ht.off("videoInputAdded",this.handleCameraAdded,this),ht.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Lt(Mo.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield er()).find(s=>s.deviceId!==e);if(o)yield Lt(Mo.prototype,this,"recapture").call(this,o.deviceId);else throw r}})}setContentHint(e){this.mediaTrack&&"contentHint"in this.mediaTrack&&(this.mediaTrack.contentHint!==e&&(this.log.info(`setContentHint ${e}`),this.mediaTrack.contentHint=e),this.outMediaTrack&&this.outMediaTrack.contentHint!==e&&(this.outMediaTrack.contentHint=e))}};G([Bi(function(e){this.setContentHint(e.contentHint||"motion")})],Mo.prototype,"capture",1);var Ir=Mo;var b_=ia();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:b_,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var XT=function(i){return A(this,null,function*(){let t=null,e=ZT(i);U.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(As&&si<74||$t||_r)&&U.warn("Your browser not support capture system audio");let o=r.getVideoTracks()[0];if(o){if(i.frameRate)try{yield o.applyConstraints({frameRate:{min:i.frameRate,ideal:i.frameRate},width:i.width,height:i.height})}catch(s){U.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield QT(o,i.captureElement))}if(i.audio){let s=YT(i);U.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function QT(i,t){return A(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Fe(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===b_))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){U.warn(`cropTo target failed ${r}`)}})}function YT(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return L(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function ZT(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:$t?{max:i.width}:{ideal:i.width,max:i.width},height:$t?{max:i.height}:{ideal:i.height,max:i.height},frameRate:i.frameRate,displaySurface:i.preferDisplaySurface||"monitor"};if(t.video=e,i.systemAudio){let{echoCancellation:r=!0,noiseSuppression:o=!1,autoGainControl:s=!1}=i;t.audio={echoCancellation:r,noiseSuppression:o,autoGainControl:s,sampleRate:48e3}}return t}var R_=XT;var $i=class extends Ir{constructor(e){super(e,2);l(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});l(this,"objectFit","contain");l(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}capture(T){return A(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:a,videoTrack:d,captureElement:h,preferDisplaySurface:m}){try{let I;return d||a?(I=new MediaStream,d&&I.addTrack(d),a&&I.addTrack(a)):I=yield R_({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:h,preferDisplaySurface:m}),yield this.setInputMediaStreamTrack(I.getVideoTracks()[0]),I}catch(I){throw this.log.error(`getDisplayMedia error observed ${I}`),I instanceof ue?I:new ue({code:Y.INITIALIZE_FAILED,name:I.name,message:I.message})}})}switchDevice(e){return A(this,null,function*(){throw new Error("Method not implemented.")})}};G([Bi(function(e){this.setContentHint(e.contentHint||"detail")})],$i.prototype,"capture",1);var Oo=class extends fi{constructor(t){super(t),this._log.id=`s-${this._log.id}`}};var KT="registerProcessor('dumper', class extends AudioWorkletProcessor {process(inputs) {this.port.postMessage(inputs);return true;}});",ip;function ba(i){return A(this,null,function*(){let t=lt("dump");ip||(ip=Co(t,URL.createObjectURL(new Blob([KT],{type:"application/javascript"})))),yield ip;let e=new AudioWorkletNode(t,"dumper",{numberOfInputs:i.length,numberOfOutputs:0});return i.forEach((r,o)=>r.connect(e,0,o)),new ReadableStream({start(r){e.port.onmessage=o=>{r.enqueue(o.data)}},cancel(){i.forEach(r=>r.disconnect(e)),e.port.close()}})})}var $d=class extends wd{constructor(e){super();this.room=e;l(this,"_localAudioTrack");l(this,"_localScreenAudioTrack");l(this,"log",U.createLogger({id:"am"}));l(this,"denoiser");l(this,"mixChangedDebounce");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId))}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}dump(e){var T,I;if(!this._localAudioTrack)return;let r=[],o=[];(T=this._localAudioPipline)!=null&&T.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(I=this._localAudioPipline)!=null&&I.denoiser.node&&(r.push(this._localAudioPipline.denoiser.node),o.push("mic-processed")),this.mixWeight>1&&(r.push(this.audioContext.createMediaStreamSource(this._localAudioPipline.stream)),o.push("mix")),this.log.info(`dump audio track ${o}, duration: ${e}`);let s=new AbortController,a=[],d=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),h=()=>{for(let v=0;v<o.length;v++){let N=URL.createObjectURL(new Blob(a[v])),j=document.createElement("a");j.href=N,j.download=`${o[v]}.pcm`,j.style.display="none",document.body.appendChild(j),j.click(),URL.revokeObjectURL(N),j.remove()}clearTimeout(d),s.abort("download")},m=ba(r).then(v=>v.pipeTo(new WritableStream({write(N){N.forEach((j,H)=>a[H]=a[H]?a[H].concat(j[0]):[j[0]])}}),s).catch(N=>h));return{then:m.then.bind(m),download:h}}getPCM(e){var a;if(L(WritableStream)){this.log.warn("getPCM failed: browser not support WritableStream");return}if(!((a=this._localAudioPipline)!=null&&a.source.node)){this.log.warn("getPCM failed: no local audio track");return}this.log.warn("getPCM");let r=new Float32Array(1920),o=0,s=new AbortController;return ba([this._localAudioPipline.source.node]).then(d=>d.pipeTo(new WritableStream({write(h){h[0][0]&&(r.set(h[0][0],o),o+=h[0][0].length,o>=1920&&(o=0,e(r),r=new Float32Array(1920)))}}),s).catch(h=>this.log.warn(`stop getPCM reason:${h}`))),s}get hasScreenAudioTrack(){return this._localScreenAudioTrack!==null}get hasAudioTrack(){return!L(this._localAudioTrack)}changeInput(e){if(e instanceof Oo)return this._localScreenAudioTrack=e,e.pipeline.connect(),this.mixOnChange();if(e instanceof fi)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),e.pipeline.connect(),this.mixOnChange();if(e instanceof Po)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixOnChange(){return this.mixChangedDebounce||(this.mixChangedDebounce=Promise.resolve().then(()=>{var e,r;return delete this.mixChangedDebounce,Promise.all([(e=this._localAudioTrack)==null?void 0:e.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localAudioTrack.mediaTrack),(r=this._localScreenAudioTrack)==null?void 0:r.setOutputMediaStreamTrack(this.mixWeight>1?this.mixTrack:this._localScreenAudioTrack.mediaTrack)])})),this.mixChangedDebounce}removeInput(e){e instanceof Oo?delete this._localScreenAudioTrack:e instanceof fi?delete this._localAudioTrack:e instanceof Po}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}removeDenoiser(e){var r;delete this.denoiser,(r=this._localAudioTrack)==null||r.removeDenoiser(e)}destroy(){this.close()}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};function v_(i=30,t=2){return Re((e,r)=>function(...o){return new Promise((s,a)=>{let d=setTimeout(()=>{let h=new ue({code:Y.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});U.warn(h),t===2?a(h):t===1&&s()},i*1e3);e.apply(this,o).then(s,a).finally(()=>{clearTimeout(d)})})})}var $p={};Kr($p,{Events:()=>tt,Inspect:()=>sr,LastSink:()=>xo,Sink:()=>ne,Subscribe:()=>ko,TimeoutError:()=>Ra,audit:()=>kI,bindCallback:()=>II,bindNodeCallback:()=>SI,buffer:()=>dI,bufferCount:()=>cI,bufferTime:()=>eS,call:()=>C_,catchError:()=>va,combineLatest:()=>N_,concat:()=>iI,concatMap:()=>qI,concatMapTo:()=>JI,count:()=>bI,create:()=>ve,debounce:()=>LI,debounceTime:()=>UI,defer:()=>w_,delay:()=>tS,deliver:()=>ce,dispose:()=>Hd,elementAt:()=>VI,empty:()=>Uo,every:()=>WI,exhaustMap:()=>QI,exhaustMapTo:()=>YI,filter:()=>gi,find:()=>FI,findIndex:()=>BI,first:()=>$I,fromAnimationFrame:()=>EI,fromArray:()=>mI,fromEvent:()=>Se,fromEventPattern:()=>pI,fromFetch:()=>hI,fromIterable:()=>fI,fromPromise:()=>P_,fromReadableStream:()=>gI,fromReader:()=>_I,groupBy:()=>ZI,identity:()=>eI,ignoreElements:()=>DI,iif:()=>sI,inspect:()=>D_,interval:()=>dp,last:()=>HI,map:()=>Wi,mapTo:()=>jI,max:()=>RI,merge:()=>cp,mergeMap:()=>zI,mergeMapTo:()=>XI,min:()=>vI,never:()=>yI,nothing:()=>Oe,of:()=>lI,pairwise:()=>GI,pipe:()=>Ie,race:()=>rI,range:()=>TI,reduce:()=>lp,retry:()=>oS,scan:()=>Up,share:()=>_i,shareReplay:()=>oI,skip:()=>wI,skipUntil:()=>MI,skipWhile:()=>Jd,startWith:()=>Lo,subject:()=>_t,subscribe:()=>Pe,sum:()=>CI,switchMap:()=>Fr,switchMapTo:()=>Fo,take:()=>Sr,takeLast:()=>NI,takeUntil:()=>Ge,takeWhile:()=>x_,tap:()=>Ca,throttle:()=>PI,throwError:()=>AI,timeInterval:()=>KI,timeout:()=>Bp,timer:()=>up,toPromise:()=>rS,toReadableStream:()=>iS,withLatestFrom:()=>aI,zip:()=>nI});function Oe(...i){}var C_=i=>i(),eI=i=>i;function Hd(){this.dispose()}var D_=()=>typeof __FASTRX_DEVTOOLS__!="undefined",tI=1,sr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new op(t,this,this.streamId++);return tt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},xo=class{constructor(){this.defers=new Set,this.disposed=!1}next(t){}complete(){this.dispose()}error(t){this.dispose()}get bindDispose(){return()=>this.dispose()}dispose(){this.disposed=!0,this.complete=Oe,this.error=Oe,this.next=Oe,this.dispose=Oe,this.subscribe=Oe,this.doDefer()}subscribe(t){return t instanceof sr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(C_),this.defers.clear()}defer(t){this.defers.add(t)}removeDefer(t){this.defers.delete(t)}reset(){this.disposed=!1,delete this.complete,delete this.next,delete this.dispose,delete this.next,delete this.subscribe}resetNext(){delete this.next}resetComplete(){delete this.complete}resetError(){delete this.error}},ne=class extends xo{constructor(t){super(),this.sink=t,t.defer(this.bindDispose)}next(t){this.sink.next(t)}complete(){this.sink.complete()}error(t){this.sink.error(t)}},ko=class extends xo{constructor(t,e=Oe,r=Oe,o=Oe){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Oe,t instanceof sr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{tt.defer(s,0)}),tt.create(s),tt.pipe(s),this.sourceId=s.id,this.subscribe(t),tt.subscribe({id:s.id,end:!0}),e==Oe?this._next=a=>tt.next(s,0,a):this.next=a=>{tt.next(s,0,a),e(a)},o==Oe?this._complete=()=>tt.complete(s,0):this.complete=()=>{this.dispose(),tt.complete(s,0),o()},r==Oe?this._error=a=>tt.complete(s,0,a):this.error=a=>{this.dispose(),tt.complete(s,0,a),r()}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Ie(i,...t){return t.reduce((e,r)=>r(e),i)}function ve(i,t,e){if(D_()){let r=Object.defineProperties(Object.setPrototypeOf(i,sr.prototype),{streamId:{value:0,writable:!0,configurable:!0},name:{value:t,writable:!0,configurable:!0},args:{value:e,writable:!0,configurable:!0},id:{value:0,writable:!0,configurable:!0}});tt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof sr&&tt.addSource(r,s)}return r}return i}function ce(i,t){return function(...e){return r=>{if(r instanceof sr){let o=ve(s=>{let a=new i(s,...e);a.sourceId=o.id,a.subscribe(r)},t,arguments);return o.source=r,tt.pipe(o),o}else return o=>r(new i(o,...e))}}}function Hi(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var op=class extends ne{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{tt.defer(this.source,this.id)})}next(t){tt.next(this.source,this.id,t),this.sink.next(t)}complete(){tt.complete(this.source,this.id),this.sink.complete()}error(t){tt.complete(this.source,this.id,t),this.sink.error(t)}},tt={addSource(i,t){Hi("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){Hi("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){Hi("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){Hi("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){Hi("defer",{id:i.id,streamId:t})},pipe(i){Hi("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){Hi("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=tI++),Hi("create",{name:i.toString(),id:i.id})}},Ra=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var Wd=class extends xo{constructor(t){super(),this.source=t,this.sinks=new Set}add(t){t.defer(()=>this.remove(t)),this.sinks.add(t).size===1&&(this.reset(),this.subscribe(this.source))}remove(t){this.sinks.delete(t),this.sinks.size===0&&this.dispose()}next(t){this.sinks.forEach(e=>e.next(t))}complete(){this.sinks.forEach(t=>t.complete()),this.sinks.clear()}error(t){this.sinks.forEach(e=>e.error(t)),this.sinks.clear()}};function _i(){return i=>{let t=new Wd(i);if(i instanceof sr){let e=ve(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,tt.pipe(e),e}return ve(t.add.bind(t),"share",arguments)}}function cp(...i){return ve(t=>{let e=new ne(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function rI(...i){return ve(t=>{let e=new Map;i.forEach(r=>{let o=new ne(t);e.set(r,o),o.complete=()=>{e.delete(r),e.size===0?t.complete():o.dispose()},o.next=s=>{e.delete(r),e.forEach(a=>a.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function iI(...i){return ve(t=>{let e=0,r=i.length,o=new ne(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function oI(i){return t=>{let e=new Wd(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},ve(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function sI(i,t,e){return ve(r=>i()?t(r):e(r),"iif",arguments)}function N_(...i){return ve(t=>{let e=i.length,r=e,o=e,s=new Array(e),a=()=>{--o===0&&t.complete()},d=(h,m)=>{let T=new ne(t);T.next=I=>{--r===0?(T.next=v=>{s[m]=v,t.next(s)},T.next(I)):s[m]=I},T.complete=a,T.subscribe(h)};i.forEach(d)},"combineLatest",arguments)}function nI(...i){return ve(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},a=(d,h)=>{let m=new ne(t),T=[];o[h]=T,m.next=I=>{T.push(I),o.every(v=>v.length)&&t.next(o.map(v=>v.shift()))},m.complete=s,m.subscribe(d)};i.forEach(a)},"zip",arguments)}function Lo(...i){return t=>ve((e,r=0,o=i.length)=>{for(;r<o&&!e.disposed;)e.next(i[r++]);e.disposed||e.subscribe(t)},"startWith",arguments)}var sp=class extends ne{constructor(t,...e){super(t);let r=new ne(this.sink);r.next=o=>this.buffer=o,r.complete=Oe,r.subscribe(N_(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},aI=ce(sp,"withLatestFrom"),np=class extends ne{constructor(t,e,r){super(t),this.bufferSize=e,this.startBufferEvery=r,this.buffer=[],this.count=0,this.startBufferEvery&&(this.buffers=[[]])}next(t){this.startBufferEvery?(this.count++===this.startBufferEvery&&(this.buffers.push([]),this.count=1),this.buffers.forEach(e=>{e.push(t)}),this.buffers[0].length===this.bufferSize&&this.sink.next(this.buffers.shift())):(this.buffer.push(t),this.buffer.length===this.bufferSize&&(this.sink.next(this.buffer),this.buffer=[]))}complete(){this.buffer.length?this.sink.next(this.buffer):this.buffers.length&&this.buffers.forEach(t=>this.sink.next(t)),super.complete()}},cI=ce(np,"bufferCount"),ap=class extends ne{constructor(t,e){super(t),this.buffer=[];let r=new ne(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Oe,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},dI=ce(ap,"buffer");var uI=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(a){a(s)})}return new(e||(e=Promise))(function(s,a){function d(T){try{m(r.next(T))}catch(I){a(I)}}function h(T){try{m(r.throw(T))}catch(I){a(I)}}function m(T){T.done?s(T.value):o(T.value).then(d,h)}m((r=r.apply(i,t||[])).next())})};function _t(i){let t=arguments,e=_i()(ve(r=>{e.next=o=>r.next(o),e.complete=()=>r.complete(),e.error=o=>r.error(o),i&&r.subscribe(i)},"subject",t));return e.next=Oe,e.complete=Oe,e.error=Oe,e}function w_(i){return ve(t=>t.subscribe(i()),"defer",arguments)}var M_=i=>t=>{setTimeout(()=>i(t))},O_=i=>M_(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function lI(...i){return ve(O_(i),"of",arguments)}function mI(i){return ve(O_(i),"fromArray",arguments)}function dp(i){return ve(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function up(i,t){return ve(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let a=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(a)})}else e.complete()},i),s=()=>{clearTimeout(o)};e.defer(s)},"timer",arguments)}function Gd(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function pI(i,t){return ve(Gd(i,t),"fromEventPattern",arguments)}function Se(i,t){if("on"in i&&"off"in i)return ve(Gd(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return ve(Gd(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return ve(Gd(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function P_(i){return ve(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function hI(i,t){return ve(w_(()=>P_(fetch(i,t))),"fromFetch",arguments)}function fI(i){return ve(M_(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function _I(i){let t=e=>uI(this,void 0,void 0,function*(){if(e.disposed)return;let{done:r,value:o}=yield i.read();if(r){e.complete();return}else e.next(o),t(e)});return ve(e=>{t(e)},"fromReader",arguments)}function gI(i){return ve(t=>{let e=new AbortController,r=e.signal;t.defer(()=>e.abort("cancelled")),i.pipeTo(new WritableStream({write(o){t.next(o)},close(){t.complete()},abort(o){t.error(o)}}),{signal:r}).then(()=>t.complete(),o=>t.error(o))},"fromReadableStream",arguments)}function EI(){return ve(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function TI(i,t){return ve((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function II(i,t,...e){return ve(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function SI(i,t,...e){return ve(r=>{let o=e.concat((s,a)=>s?r.error(s):(r.next(a),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function yI(){return ve(()=>{},"never",arguments)}function AI(i){return ve(t=>t.error(i),"throwError",arguments)}function Uo(){return ve(i=>i.complete(),"empty",arguments)}var Vo=class extends ne{constructor(t,e,r){super(t),this.f=e;let o=()=>{this.sink.next(this.acc),this.sink.complete()};typeof r=="undefined"?this.next=s=>{this.acc=s,this.complete=o,this.resetNext()}:(this.acc=r,this.complete=o)}next(t){this.acc=this.f(this.acc,t)}},lp=ce(Vo,"reduce"),bI=i=>ce(Vo,"count")((t,e)=>i(e)?t+1:t,0),RI=()=>ce(Vo,"max")(Math.max),vI=()=>ce(Vo,"min")(Math.min),CI=()=>ce(Vo,"sum")((i,t)=>i+t,0);var mp=class extends ne{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},gi=ce(mp,"filter"),pp=class extends ne{next(t){}},DI=ce(pp,"ignoreElements"),hp=class extends ne{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&this.complete()}},Sr=ce(hp,"take"),fp=class extends ne{constructor(t,e){super(t);let r=new ne(t);r.next=()=>t.complete(),r.complete=Hd,r.subscribe(e)}},Ge=ce(fp,"takeUntil"),_p=class extends ne{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):this.complete()}},x_=ce(_p,"takeWhile"),NI=i=>lp((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),gp=class extends ne{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},wI=ce(gp,"skip"),Ep=class extends ne{constructor(t,e){super(t),t.next=Oe;let r=new ne(t);r.next=()=>{r.dispose(),t.resetNext()},r.complete=Hd,r.subscribe(e)}},MI=ce(Ep,"skipUntil"),Tp=class extends ne{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},Jd=ce(Tp,"skipWhile"),OI={leading:!0,trailing:!1},Ip=class extends ne{constructor(t,e,r){super(t),this.durationSelector=e,this.trailing=r}cacheValue(t){this.last=t,this.disposed&&this.throttle(t)}send(t){this.sink.next(t),this.throttle(t)}throttle(t){this.reset(),this.subscribe(this.durationSelector(t))}next(){this.complete()}complete(){this.dispose(),this.trailing&&this.send(this.last)}},jd=class extends ne{constructor(t,e,r=OI){super(t),this.durationSelector=e,this.config=r,this._throttle=new Ip(this.sink,this.durationSelector,this.config.trailing),this._throttle.dispose()}next(t){this._throttle.disposed&&this.config.leading?this._throttle.send(t):this._throttle.cacheValue(t)}complete(){this._throttle.throttle=Oe,this._throttle.complete(),super.complete()}},PI=ce(jd,"throttle"),xI={leading:!1,trailing:!0},kI=i=>ce(jd,"audit")(i,xI),Sp=class extends ne{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},qd=class extends ne{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Sp(this.sink),this._debounce.dispose()}next(t){this._debounce.dispose(),this._debounce.reset(),this._debounce.last=t,this._debounce.subscribe(this.durationSelector(t))}complete(){this._debounce.complete(),super.complete()}},LI=ce(qd,"debounce"),UI=i=>ce(qd,"debounceTime")(t=>up(i)),yp=class extends ne{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("not enough elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},VI=ce(yp,"elementAt"),FI=i=>t=>Sr(1)(Jd(e=>!i(e))(t)),Ap=class extends ne{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.complete()):++this.i}},BI=ce(Ap,"findIndex"),bp=class extends ne{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t,this.complete())}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},$I=ce(bp,"first"),Rp=class extends ne{constructor(t,e,r){super(t),this.f=e,this.defaultValue=r,this.index=0}next(t){(!this.f||this.f(t,this.index++))&&(this.defaultValue=t)}complete(){if(this.defaultValue===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.defaultValue);super.complete()}},HI=ce(Rp,"last"),vp=class extends ne{constructor(t,e){super(t),this.predicate=e,this.index=0}next(t){this.predicate(t,this.index++)?this.result=!0:(this.result=!1,this.complete())}complete(){if(this.result===void 0){this.error(new Error("no elements in sequence"));return}else this.sink.next(this.result);super.complete()}},WI=ce(vp,"every");var Cp=class extends ne{constructor(t,e,r){super(t),this.f=e,typeof r=="undefined"?this.next=o=>{this.acc=o,this.resetNext(),this.sink.next(this.acc)}:this.acc=r}next(t){this.sink.next(this.acc=this.f(this.acc,t))}},Up=ce(Cp,"scan"),Dp=class extends ne{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},GI=ce(Dp,"pairwise"),zd=class extends ne{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},Wi=ce(zd,"map"),jI=i=>ce(zd,"mapTo")(t=>i),Ls=class extends ne{constructor(t,e,r){super(t),this.data=e,this.context=r}next(t){let e=this.context.combineResults;e?this.sink.next(e(this.data,t)):this.sink.next(t)}tryComplete(){this.context.resetComplete(),this.dispose()}},Us=class extends ne{constructor(t,e,r){super(t),this.makeSource=e,this.combineResults=r,this.index=0}subInner(t,e){let r=this.currentSink=new e(this.sink,t,this);this.complete=this.tryComplete,r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},Xd=class extends Ls{},Qd=class extends Us{next(t){this.subInner(t,Xd),this.next=e=>{this.currentSink.dispose(),this.subInner(e,Xd)}}},Fr=ce(Qd,"switchMap");function eu(i){return(t,e)=>i(()=>t,e)}var Fo=eu(ce(Qd,"switchMapTo")),Np=class extends Ls{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},Yd=class extends Us{constructor(){super(...arguments),this.sources=[],this.next2=this.sources.push.bind(this.sources)}next(t){this.next2(t),this.subNext()}subNext(){this.next=this.next2,this.subInner(this.sources.shift(),Np),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},qI=ce(Yd,"concatMap"),JI=eu(ce(Yd,"concatMapTo")),wp=class extends Ls{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},Zd=class extends Us{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,wp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},zI=ce(Zd,"mergeMap"),XI=eu(ce(Zd,"mergeMapTo")),Mp=class extends Ls{dispose(){this.context.resetNext(),super.dispose()}},Kd=class extends Us{next(t){this.next=Oe,this.subInner(t,Mp)}},QI=ce(Kd,"exhaustMap"),YI=eu(ce(Kd,"exhaustMapTo")),Op=class extends ne{constructor(t,e){super(t),this.f=e,this.groups=new Map}next(t){let e=this.f(t),r=this.groups.get(e);typeof r=="undefined"&&(r=_t(),r.key=e,this.groups.set(e,r),super.next(r)),r.next(t)}complete(){this.groups.forEach(t=>t.complete()),super.complete()}error(t){this.groups.forEach(e=>e.error(t)),super.error(t)}},ZI=ce(Op,"groupBy"),Pp=class extends ne{constructor(){super(...arguments),this.start=new Date}next(t){this.sink.next({value:t,interval:Number(new Date)-Number(this.start)}),this.start=new Date}},KI=ce(Pp,"timeInterval"),xp=class extends ne{constructor(t,e){super(t),this.miniseconds=e,this.buffer=[],this.id=setInterval(()=>{this.sink.next(this.buffer.concat()),this.buffer.length=0},this.miniseconds)}next(t){this.buffer.push(t)}complete(){this.sink.next(this.buffer),super.complete()}dispose(){clearInterval(this.id),super.dispose()}},eS=ce(xp,"bufferTime"),kp=class extends ne{constructor(t,e){super(t),this.buffer=[],this.delayTime=e}dispose(){clearTimeout(this.timeoutId),super.dispose()}delay(t){this.timeoutId=setTimeout(()=>{let e=this.buffer.shift();if(e){let{time:r,data:o}=e;super.next(o),this.buffer.length&&this.delay(Number(this.buffer[0].time)-Number(r))}},t)}next(t){this.buffer.length||this.delay(this.delayTime),this.buffer.push({time:new Date,data:t})}complete(){this.timeoutId=setTimeout(()=>super.complete(),this.delayTime)}},tS=ce(kp,"delay"),Lp=class extends ne{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},va=ce(Lp,"catchError");var rS=()=>i=>new Promise((t,e)=>{let r;new ko(i,o=>r=o,e,()=>t(r))}),iS=()=>i=>{let t;return new ReadableStream({start(e){t=new ko(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Pe=(i=Oe,t=Oe,e=Oe)=>r=>new ko(r,i,t,e),Vp=class extends ne{constructor(t,e){super(t),e instanceof Function?this.next=r=>{e(r),t.next(r)}:(e.next&&(this.next=r=>{e.next(r),t.next(r)}),e.complete&&(this.complete=()=>{e.complete(),t.complete()}),e.error&&(this.error=r=>{e.error(r),t.error(r)}))}},Ca=ce(Vp,"tap"),Fp=class extends ne{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Ra(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},Bp=ce(Fp,"timeout"),oS=(i=1/0)=>t=>{if(t instanceof sr){let e=ve(r=>{let o=i,s=new ne(r);s.error=a=>{o-- >0?s.subscribe(t):r.error(a)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,tt.pipe(e),e}else return e=>{let r=i,o=new ne(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var Ei=class Ei extends Do{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;l(this,"tinyId");l(this,"isRemote",!0);l(this,"jitterBufferDelay",0);l(this,"availableState");l(this,"remotePublishState");l(this,"_decodeCheckTimeoutId",-1);this.tinyId=r.tinyId,this.availableState=new Z(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new Z(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ie(cp(Se(this,Z.STATECHANGED),Se(this.remotePublishState,Z.STATECHANGED)),Wi(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),gi(s=>this.availableState.state!==(s?Z.ON:Z.OFF)),Pe(s=>{this.availableState.state=s?Z.ON:Z.OFF,this.updatePlayingState(this.isNeedPlay)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===Ei.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===Z.ON}get isNeedPlay(){return this.isAvailable&&this.isPlayCalled}subscribe(e){return e}unsubscribe(){this.player.setTrack(null),this.streamType==="main"&&this.kind==="video"&&this.room.changeType(!1,this.user)}reportDecodeResult(e,r){let o=this.kind===D.AUDIO;X[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),e||(X.addEnum({key:o?504701:514703,value:ta()}),Ve.uploadEvent({log:`stat-decode-failed-${this.kind}-${ea()||Eo()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===D.AUDIO?`audioLevel: ${this.getAudioLevel()}`:`framesDecoded: ${this.stat.framesDecoded>0}`}`),this.emit("decode-failed",{error:r}))}updatePlayingState(e){if(this.isPlayCalled&&this.player.isStopped===e){if(e&&(!this.isSubscribed||!this.isRemotePublished||!this.outMediaTrack)){this.log.info(`abort play, isSubscribed: ${this.isSubscribed} isAvailable: ${this.isRemotePublished} hasTrack: ${!!this.outMediaTrack} `);return}super.updatePlayingState(e)}}close(){super.close(),this.outMediaTrack&&this.uninstallTrackEvent(this.outMediaTrack)}onFlagChanged(){this.remotePublishState.state=this.isRemotePublished?Z.ON:Z.OFF}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};l(Ei,"STATE_SUBSCRIBE","subscribe"),G([v_(5,1)],Ei.prototype,"waitHasMediaTrack",1),G([be(Z.INIT,Ei.STATE_SUBSCRIBE,{success(){var r,o;this.log.info("subscribed"),F.emit(P.REMOTE_TRACK_SUBSCRIBED,{track:this}),!((((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState)&&(this._decodeCheckTimeoutId=setTimeout(()=>{var a,d;if(!((((d=(a=this.room)==null?void 0:a.networkQuality)==null?void 0:d.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState)&&this.isSubscribed&&this.isPlayCalled&&this.stat.bytesReceived>0){let h=this.kind===D.AUDIO,m=this.player.isPlaying||(h?this.getAudioLevel()>0:this.stat.framesDecoded>0);this.reportDecodeResult(m)}},5e3),this.player.once(et.ERROR,s=>{s.code===MediaError.MEDIA_ERR_DECODE&&(clearTimeout(this._decodeCheckTimeoutId),this.reportDecodeResult(!1,3))}))},ignoreError:!0}),Fd(521716,!1)],Ei.prototype,"subscribe",1),G([be(Ei.STATE_SUBSCRIBE,Z.INIT,{sync:!0,success(){this.log.info("unsubscribed"),F.emit(P.REMOTE_TRACK_UNSUBSCRIBED,{track:this}),clearTimeout(this._decodeCheckTimeoutId)}})],Ei.prototype,"unsubscribe",1);var Vs=Ei;var Po=class extends Vs{constructor(e,r){super(e,r,1);l(this,"volume",0);l(this,"mediaType",1);l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}decodeFrame(e){if(!this.manager)return e;let r=e;for(let o of this.manager.decodePipeline)if(o&&(r=o({frame:r,track:this}),!r))return;return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var nS=[-1,-1,1,-1,-1,1,1,1],aS=[0,0,1,0,0,1,1,1];var Vt=class extends Z{constructor(e,r){super();this.context=e;l(this,"name");l(this,"input");l(this,"output");l(this,"texture");l(this,"ctx2d",null);l(this,"fbo");l(this,"width",0);l(this,"height",0);l(this,"x",0);l(this,"y",0);l(this,"program");l(this,"vertexShader");l(this,"fragmentShader");l(this,"totalFrames",0);l(this,"dropFrames",0);l(this,"matchInputSize",!0);l(this,"texCoordBuffer");l(this,"positionBuffer");l(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});l(this,"cost",0);l(this,"_canvas",null);l(this,"_image");l(this,"log");if(this.context.on("disconnect",this.close,this),this.name=r.name,this.log=r.logger,this.matchInputSize=r.matchInputSize!==!1,this.width=r.width||e.width,this.height=r.height||e.height,this._image=r.image,e instanceof Ct){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Yt!==16?this._canvas=new OffscreenCanvas(this.width,this.height):(this._canvas=document.createElement("canvas"),this._canvas.width=this.width,this._canvas.height=this.height),this.ctx2d=this._canvas.getContext("2d"),this._image=this._canvas);return}try{let o=e.ctx;this.texCoordBuffer=this.createBuffer(aS),this.positionBuffer=this.createBuffer(nS),r.createTexture!==!1&&(this.texture=o.createTexture(),this.useTexture(),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.pixelStorei(o.PACK_ALIGNMENT,1),o.pixelStorei(o.UNPACK_ALIGNMENT,1)),r.useFbo&&(this.fbo=o.createFramebuffer(),this.useBufferFrame(),this.useTexture(),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,this.width,this.height,0,o.RGBA,o.UNSIGNED_BYTE,null),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,this.texture,0)),r.useDefaultProgram?this.program=e.defaultProgam:(r.vertexShaderSource||r.fragmentShaderSource)&&(this.vertexShader=r.vertexShaderSource?e.createShader(o.VERTEX_SHADER,r.vertexShaderSource):e.defaultVShader,this.fragmentShader=r.fragmentShaderSource?e.createShader(o.FRAGMENT_SHADER,r.fragmentShaderSource):e.defaultFShader,this.program=e.createProgram(this.vertexShader,this.fragmentShader))}catch(o){this.context.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${o.message||o}`}))}}get image(){return this._image}set image(e){this._image=e}createFramebuffer(e){let r=this.context.ctx,o=r.createFramebuffer();return r.bindFramebuffer(r.FRAMEBUFFER,o),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0),o}connect(e,...r){return e.addInput(this,...r),this.output=e,e}addInput(e,...r){this.input=e,this.matchInputSize&&e.width&&e.height&&this.resize(e.width,e.height)}requestFrame(e){let r=Date.now();if(this.context instanceof gt&&this.render(e)||this.context instanceof Ct&&this.render2d(e))this.totalFrames++;else return!1;return this.cost=Date.now()-r,!0}render2d(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?this.draw2d(this.input.image,0,0,this.width,this.height):!1}update(e=0){var r;(r=this.output)==null||r.update(e)}disconnect(...e){var r;(r=this.output)==null||r.removeInput(this,...e),delete this.output}removeInput(e,...r){delete this.input}close(){var e,r;if(this.context.off("disconnect",this.close,this),(e=this.output)==null||e.removeInput(this),delete this.output,(r=this.input)==null||r.disconnect(),this.context instanceof gt){let o=this.context.ctx;o.deleteBuffer(this.texCoordBuffer),o.deleteBuffer(this.positionBuffer),this.fbo&&o.deleteFramebuffer(this.fbo),this.texture&&o.deleteTexture(this.texture),this.vertexShader&&this.vertexShader!==this.context.defaultVShader&&o.deleteShader(this.vertexShader),this.fragmentShader&&this.fragmentShader!==this.context.defaultFShader&&o.deleteShader(this.fragmentShader),this.program&&this.program!==this.context.defaultProgam&&o.deleteProgram(this.program)}this._canvas&&(this._canvas.width=0,this._canvas.height=0,this.ctx2d=null),this.removeAllListeners()}useTexture(){this.useTextures(this.texture)}useInputTexture(){var e;this.useTextures((e=this.input)==null?void 0:e.texture)}useTextures(...e){let r=this.context.ctx;e.forEach((o,s)=>{o&&(r.activeTexture(r.TEXTURE0+s),r.bindTexture(r.TEXTURE_2D,o))})}useProgram(){this.context.ctx.useProgram(this.program)}useBufferFrame(){let e=this.context.ctx;e.bindFramebuffer(e.FRAMEBUFFER,this.fbo||null)}createBuffer(e){let r=this.context.ctx,o=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,o),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW),o}setTexBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.texCoordBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}setPosBuffer(e){let r=this.context.ctx;r.bindBuffer(r.ARRAY_BUFFER,this.positionBuffer),r.bufferData(r.ARRAY_BUFFER,new Float32Array(e),r.STATIC_DRAW)}changeBufferData(e,r){let o=this.context.ctx;o.bindBuffer(o.ARRAY_BUFFER,e),o.bufferData(o.ARRAY_BUFFER,new Float32Array(r),o.STATIC_DRAW)}setAttributes(...e){let r=this.context.ctx;e.forEach((o,s)=>{r.enableVertexAttribArray(s),r.bindBuffer(r.ARRAY_BUFFER,o),r.vertexAttribPointer(s,2,r.FLOAT,!1,0,0)})}getVertexPoint(e,r){return[e/this.width*2-1,r/this.height*2-1]}layout2texCoords(e){return[...this.getVertexPoint(e.x,e.y),...this.getVertexPoint(e.x+e.width,e.y),...this.getVertexPoint(e.x,e.y+e.height),...this.getVertexPoint(e.x+e.width,e.y+e.height)]}resize(e,r){if(!(this.width===e&&this.height===r)){if(this.width=e,this.height=r,this._canvas&&(this._canvas.width=e,this._canvas.height=r),this.texture&&this.fbo){this.useTexture();let o=this.context.ctx;o.texImage2D(o.TEXTURE_2D,0,o.RGBA,e,r,0,o.RGBA,o.UNSIGNED_BYTE,null)}this.output&&this.output.matchInputSize&&this.output.resize(e,r)}}draw(e,r){this.setAttributes(e||this.positionBuffer,r||this.texCoordBuffer);let o=this.context.ctx;o.drawArrays(o.TRIANGLE_STRIP,0,4)}draw2d(e,r,o,s,a){return this.ctx2d&&e?(e instanceof ImageData?this.ctx2d.putImageData(e,r,o):(this.ctx2d.drawImage(e,r,o,s,a),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close()),!0):!1}getInfo(){var I;let{totalFrames:e,x:r,y:o,width:s,height:a,name:d,cost:h}=this,m=Date.now(),T=(e-this.lastInfo.totalFrames)/((m-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:a,timestamp:m,fps:T,name:d,cost:h},J({parent:(I=this.input)==null?void 0:I.getInfo()},this.lastInfo)}createTexture(e){let r=this.context.ctx,o=r.createTexture();return this.useTextures(o),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};G([be(Z.INIT,"connected",{sync:!0})],Vt.prototype,"connect",1),G([be("connected",Z.INIT,{ignoreError:!0,sync:!0})],Vt.prototype,"disconnect",1),G([be([],"closed",{sync:!0})],Vt.prototype,"close",1);var L_=Ie(dp(250),Wi(()=>performance.now()),_i()),U_=i=>t=>{let e=0,r=performance.now();Ie(L_,Wi(o=>(o-r)/i>>0),gi(o=>o!=e?(e=o,!0):!1))(t)},tu=i=>t=>{let e=performance.now();Ie(L_,Jd(r=>r-e<i),Sr(1))(t)};var dS=[0,1,1,1,0,0,1,0],Bo=class extends Vt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));l(this,"_intervalId",0);l(this,"_sequence",0);l(this,"checkGLError",!1);l(this,"checkVisibilityChange");e instanceof Ct?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(dS)}start(e){this.log.info(`${this.name} start render ${e} fps`),ft.clearTask(this._intervalId),this._intervalId=ft.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(ft.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof gt){let o=this.context.ctx.getError();o&&this.context.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:5,message:`${this.name} req ${this._sequence} render ${this.totalFrames} faild ${o}`}))}},{fps:this.context.frameRate})}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){if(this._intervalId&&(ft.clearTask(this._intervalId),this._intervalId=0,e===1)){this.log.info(`${this.name} use requestVideoFrameCallback`);let r=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",r))};document.addEventListener("visibilitychange",r)}this.requestFrame(this._sequence++)}removeInput(e){super.removeInput(e),ft.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),ft.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},Fs=class extends Bo{constructor(e,r){super(e,r);l(this,"_videoTrack");l(this,"_muteOb");l(this,"_closedOb",Se(this,"closed"));l(this,"_subscription");l(this,"_canvasContainer");Number(xi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e._canvas.captureStream().getVideoTracks(),this._muteOb=Se(this._videoTrack,"mute"),Ie(Se(this._videoTrack,"ended"),Ge(this._closedOb),Pe(()=>{this.context.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ie(this._muteOb,Ge(this._closedOb),Fo(tu(5e3)),Pe(()=>{var e;(e=this._videoTrack)!=null&&e.muted&&this.context.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:7,message:"video track muted"}))}))}disableCheckMute(){var e;(e=this._subscription)==null||e.dispose()}get videoTrack(){return this._videoTrack}putCanvasIntoDom(){!this.context._canvas||!this._canvasContainer||document.getElementById(this.context._canvas.id)||(this.log.info(`${this.name} put canvas to body`),document.body.appendChild(this._canvasContainer),this._canvasContainer.appendChild(this.context._canvas))}render(e){return this.putCanvasIntoDom(),super.render(e)}render2d(e){return this.putCanvasIntoDom(),super.render2d(e)}close(){var e,r;super.close(),(e=this._videoTrack)==null||e.stop(),delete this._videoTrack,(r=this._canvasContainer)==null||r.remove()}},ru=class extends Fs{render(t){var e;return!!((e=this.input)!=null&&e.requestFrame(t))}};var iu=class extends Fs{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,a=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>a?o=s/a:(this.log.warn(`Small stream resolution is not smaller than big stream, which is invalid. big: ${e} * ${r} small: ${this.resolution.width} * ${this.resolution.height}`),o=s/(160*120)),super.resize(e/Math.sqrt(o),r/Math.sqrt(o))}};var Da=class extends Vt{constructor(e,r){super(e,J({name:"imageSource"},r));l(this,"_lastImage");l(this,"_totalFrames",0);l(this,"_autoResize",!1);l(this,"_canvasRendered");l(this,"_videoCallbackId",0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Yt===16&&(this._canvasRendered=_t(),Ie(this._canvasRendered,Lo(this._image),Fr(o=>o instanceof HTMLCanvasElement?Se(o,"rendered"):Uo()),Ge(Se(this,"closed")),Pe(()=>{this.update()})))}tryVideoFrameCallback(e){this._videoCallbackId&&e.cancelVideoFrameCallback(this._videoCallbackId),Ro()&&!document.hidden&&(this._videoCallbackId=e.requestVideoFrameCallback((r,o)=>{document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var d;let{width:o,height:s}=this,{image:a}=this;if(a instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(a),{videoWidth:o,videoHeight:s}=a,!o||!s)return!1;a.width=o,a.height=s}else if(a instanceof HTMLImageElement||a instanceof ImageData||a instanceof ImageBitmap){if({width:o,height:s}=a,a!==this._lastImage)this._lastImage=a;else if(o===this.width&&s===this.height)return!1}else a instanceof HTMLCanvasElement||a instanceof OffscreenCanvas?({width:o,height:s}=a,this._lastImage=a):typeof VideoFrame!="undefined"&&a instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=a,(d=this._lastImage)==null||d.close(),this._lastImage=a);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let h=this.context.ctx;h.texSubImage2D(h.TEXTURE_2D,0,0,0,h.RGBA,h.UNSIGNED_BYTE,a)}}else{if(r){this.useTexture();let h=this.context.ctx;h.texImage2D(h.TEXTURE_2D,0,h.RGBA,h.RGBA,h.UNSIGNED_BYTE,a)}this.resize(o,s)}return!0}get image(){return this._image}set image(e){var r;(r=this._canvasRendered)==null||r.next(e),this._image=e}render(e){return this._render(e,!0)}render2d(e){return this._render(e,!1)}},Na=class extends Da{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ie(Se(this._player,et.PLAYER_STATE_CHANGED),Ge(Se(this,"closed")),gi(({state:s})=>s==="PLAYING"),Pe(()=>{this.tryVideoFrameCallback(this._player.element)}))}get image(){return this._player.element}},Ti=class extends Na{constructor(t,e,r){super(t,new Zt({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}};var lS=`
30
30
  // \u9876\u70B9\u7740\u8272\u5668
31
31
  attribute vec4 a_position;
32
32
  attribute vec2 a_texCoord;
@@ -44,58 +44,58 @@ uniform sampler2D u_texture;
44
44
 
45
45
  void main() {
46
46
  gl_FragColor = texture2D(u_texture, v_texCoord);
47
- } `;var Bo=class extends re{constructor(e){super();l(this,"frameRate");l(this,"_canvas");l(this,"log");l(this,"hasAlpha",!1);l(this,"name");l(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new Ei(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new Fs(this,e)}createVideoImageSource(e,r){return new Da(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Na(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l(Bo,"_ids",0);var pS={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Bs=class Bs extends Bo{constructor(){super(...arguments);l(this,"defaultProgam");l(this,"defaultVShader");l(this,"defaultFShader");l(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${Bo._ids++}`),this.ctx=this._canvas.getContext("webgl2",pS),!this.ctx)throw new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,lS),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,mS),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))}),this.log.info("video context created use webgl")}destroy(e){let r="";return e&&(r=e.message,this.error=e,X.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};l(Bs,"UNAVAILABLE","unavailable"),G([ye(re.INIT,"created",{sync:!0,fail(e){X.addFailedEvent({key:512700,error:e.cause||e})},success(){X.addSuccessEvent({key:512700})}})],Bs.prototype,"create",1),G([ye("created",re.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Bs.UNAVAILABLE,e),this.removeAllListeners()}})],Bs.prototype,"destroy",1);var _t=Bs,Ct=class extends Bo{constructor(){super(...arguments);l(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${Bo._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this.log.info("video context created use 2d")}destroy(e){let r="";e&&(r=e.message,this.error=e,X.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),X.addSuccessEvent({key:512703})}};G([ye(re.INIT,"created",{sync:!0,fail(e){X.addFailedEvent({key:512701,error:e.cause||e})},success(){X.addSuccessEvent({key:512701})}})],Ct.prototype,"create",1),G([ye("created",re.INIT,{ignoreError:!0,sync:!0})],Ct.prototype,"destroy",1);function hS(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var Hi=class extends ks{constructor(e,r,o=4){super(e,r,o);l(this,"mediaType",4);l(this,"source");l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}play(e,r){return(nt(r==null?void 0:r.canvasRender)?r.canvasRender:Yt===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let e=new Ct({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new Fo(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Ao()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=hS(r);if(!$e(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var a;let{msg_video_status:e}=((a=this.room.heartbeatReport)==null?void 0:a.msg_down_stream_info.find(d=>d.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(d=>d.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isAvailable(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},ou=class extends Hi{constructor(e,r){super(e,r,2);l(this,"mediaType",2);l(this,"objectFit","contain")}get isAvailable(){return this.user.muteState.hasAuxiliary}};var $s=new Map;F.on(P.JOIN_SUCCESS,({room:i})=>{ze(i.userId,{eventId:32788})});F.on(P.LEAVE_START,({room:i})=>{ze(i.userId,{eventId:32789})});F.on(P.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),ze(i.room.userId,{eventId:t})}});F.on(P.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),ze(i.room.userId,{eventId:t})}});F.on(P.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===D.AUDIO?ze(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):ze(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});F.on(P.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===D.AUDIO?ze(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):ze(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});F.on(P.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&ze(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&ze(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&ze(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});F.on(P.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&ze(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&ze(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&ze(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});F.on(P.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&ze(i.room.userId,{eventId:i.kind===D.VIDEO?32780:32781})});F.on(P.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&ze(i.room.userId,{eventId:i.kind===D.VIDEO?32782:32783})});F.on(P.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&ze(i.userId,{eventId:r})});F.on(P.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&ze(i.userId,{eventId:s,remoteUserId:r})});F.on(P.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:a})=>{let d=o?1:0;s||(d=o?3:2);let h=r==="h264"?0:2,m={eventId:4004,param1:d,param2:h,streamType:a||2};e&&(m.remoteUserId=e,m.eventId=4005),ze(t,m),X.addEnum({key:e?514701:513701,value:d}),X.addEnum({key:e?514700:513700,value:h})});F.on(P.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===D.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),ze(i.userId,e)}});function ze(i,t){let e=pe(J({},t),{timestamp:Cn()});$s.has(i)?$s.get(i).push(e):$s.set(i,[e])}function U_(i){if($s.has(i)){let t=$s.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return $s.delete(i),t}return[]}var fS=Ci(ki(),1);var Ti=class extends re{constructor(){super(...arguments);l(this,"decoder");l(this,"config")}initialize(){return A(this,null,function*(){this.decoder=new VideoDecoder({output:e=>{this.emit("videoFrame",e)},error:e=>{this.close(),this.emit("error",e)}})})}configure(e){this.config=e,this.decoder.configure(pe(J({},e),{codec:this.getCodec(e)}))}getCodec(e){switch(e.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return e.codec}}decode(e){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(e))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};G([ye([re.INIT,"closed"],"initialized")],Ti.prototype,"initialize",1),G([ye("initialized","configured",{sync:!0})],Ti.prototype,"configure",1),G([Jf("configured")],Ti.prototype,"decode",1),G([ye([],re.INIT)],Ti.prototype,"reset",1),G([ye([],"closed",{ignoreError:!0,sync:!0})],Ti.prototype,"close",1);function _S(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),a=0,d=0,h={wasmBinary:o,postRun:()=>{i=new h.VideoDecoder({videoInfo(m,T){a=m,d=T,console.log("video info",m,T)},yuvData(m,T){let I=a*d,v=I>>2,N=h.HEAPU32[m>>2],j=h.HEAPU32[(m>>2)+1],H=h.HEAPU32[(m>>2)+2],z=h.HEAPU8.subarray(N,N+I),Te=h.HEAPU8.subarray(j,j+v),Pe=h.HEAPU8.subarray(H,H+v),Xe=new Uint8Array(I+v+v);Xe.set(z),Xe.set(Te,I),Xe.set(Pe,I+v);let wt=new VideoFrame(Xe,{codedWidth:a,codedHeight:d,format:"I420",timestamp:T});e?(s==null||s.drawImage(wt,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:wt},[wt])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(h)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}var Br=class extends re{constructor(e,r,o=!1,s,a=!1){super();this.createModule=e;this.wasmBinary=r;this.workerMode=o;this.canvas=s;this.yuvMode=a;l(this,"worker");l(this,"decoder");l(this,"config");l(this,"module",{});l(this,"width",0);l(this,"height",0)}initialize(e){return A(this,null,function*(){var o;if(this.workerMode){let s=new RegExp("\\{(.+)\\}","s").exec(_S.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([s],{type:"text/javascript"})));let a=(o=this.canvas)==null?void 0:o.transferControlToOffscreen(),d=yield this.wasmBinary;return console.warn("worker mode",d),this.worker.postMessage({type:"init",canvas:a,wasmScript:this.createModule.toString(),wasmBinary:d},a?[a,d]:[d]),new Promise(h=>{this.worker.onmessage=m=>{if(m.data.type==="ready")delete this.wasmBinary,h(),console.warn("worker mode initialize success");else if(m.data.type==="yuvData"){let{videoFrame:T}=m.data;this.emit("videoFrame",T)}}})}let r=this.module;return this.wasmBinary&&(r.wasmBinary=yield this.wasmBinary),r.print=s=>console.log(s),r.printErr=s=>console.log(`[JS] ERROR: ${s}`),r.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(s=>{r.postRun=a=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),s()},e&&Object.assign(r,e),this.createModule(r)})})}configure(e){var r,o,s;this.config=e,(o=this.decoder)==null||o.setCodec(this.config.codec,this.config.description?"avcc":"annexb",(r=this.config.description)!=null?r:""),(s=this.worker)==null||s.postMessage({type:"setCodec",codec:this.config.codec,format:this.config.description?"avcc":"annexb",description:this.config.description})}decode(e){var r,o;(r=this.decoder)==null||r.decode(e.data,e.type=="key",e.timestamp),this.state==="configured"&&((o=this.worker)==null||o.postMessage({type:"decode",packet:e}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(e,r){this.width=e,this.height=r;let o={width:e,height:r};this.emit("videoCodecInfo",o)}yuvData(e,r){if(!this.module)return;let o=this.width*this.height,s=o>>2,a=this.module.HEAPU32[e>>2],d=this.module.HEAPU32[(e>>2)+1],h=this.module.HEAPU32[(e>>2)+2],m=this.module.HEAPU8.subarray(a,a+o),T=this.module.HEAPU8.subarray(d,d+s),I=this.module.HEAPU8.subarray(h,h+s);if(this.yuvMode){this.emit("videoFrame",[m,T,I]);return}let v=new Uint8Array(o+s+s);v.set(m),v.set(T,o),v.set(I,o+s),this.emit("videoFrame",new VideoFrame(v,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:r}))}errorInfo(e){let r={errMsg:e};this.emit("error",r)}};G([ye([re.INIT,"closed"],"initialized")],Br.prototype,"initialize",1),G([ye("initialized","configured")],Br.prototype,"configure",1),G([ye([],re.INIT)],Br.prototype,"reset",1),G([ye([],"closed")],Br.prototype,"close",1);var gS=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e=t,r,o;e.ready=new Promise((n,c)=>{r=n,o=c});var s=Object.assign({},e),a=[],d="./this.program",h=(n,c)=>{throw c},m=typeof window=="object",T=typeof importScripts=="function",I=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v="";function N(n){return e.locateFile?e.locateFile(n,v):v+n}var j,H,z,Te;(m||T)&&(T?v=self.location.href:typeof document!="undefined"&&document.currentScript&&(v=document.currentScript.src),i&&(v=i),v.indexOf("blob:")!==0?v=v.substr(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1):v="",j=n=>{var c=new XMLHttpRequest;return c.open("GET",n,!1),c.send(null),c.responseText},T&&(z=n=>{var c=new XMLHttpRequest;return c.open("GET",n,!1),c.responseType="arraybuffer",c.send(null),new Uint8Array(c.response)}),H=(n,c,u)=>{var p=new XMLHttpRequest;p.open("GET",n,!0),p.responseType="arraybuffer",p.onload=()=>{if(p.status==200||p.status==0&&p.response){c(p.response);return}u()},p.onerror=u,p.send(null)},Te=n=>document.title=n);var Pe=e.print||console.log.bind(console),Xe=e.printErr||console.error.bind(console);Object.assign(e,s),s=null,e.arguments&&(a=e.arguments),e.thisProgram&&(d=e.thisProgram),e.quit&&(h=e.quit);var wt;e.wasmBinary&&(wt=e.wasmBinary);var fe=e.noExitRuntime||!0;typeof WebAssembly!="object"&&br("no native wasm support detected");var Xs,je,Qs=!1,Fu;function Hr(n,c){n||br(c)}var Le,rt,jt,qt,x,xe,Ys,Ha;function Wa(){var n=Xs.buffer;e.HEAP8=Le=new Int8Array(n),e.HEAP16=jt=new Int16Array(n),e.HEAP32=x=new Int32Array(n),e.HEAPU8=rt=new Uint8Array(n),e.HEAPU16=qt=new Uint16Array(n),e.HEAPU32=xe=new Uint32Array(n),e.HEAPF32=Ys=new Float32Array(n),e.HEAPF64=Ha=new Float64Array(n)}var Zs,Ks=[],en=[],Ga=[],Bu=!1;function $u(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)Wu(e.preRun.shift());sn(Ks)}function q(){Bu=!0,!e.noFSInit&&!g.init.initialized&&g.init(),g.ignorePermissions=!1,Rr.init(),sn(en)}function Hu(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Wr(e.postRun.shift());sn(Ga)}function Wu(n){Ks.unshift(n)}function Gu(n){en.unshift(n)}function Wr(n){Ga.unshift(n)}var se=0,Gr=null,Qi=null;function bh(n){return n}function yi(n){se++,e.monitorRunDependencies&&e.monitorRunDependencies(se)}function qo(n){if(se--,e.monitorRunDependencies&&e.monitorRunDependencies(se),se==0&&(Gr!==null&&(clearInterval(Gr),Gr=null),Qi)){var c=Qi;Qi=null,c()}}function br(n){e.onAbort&&e.onAbort(n),n="Aborted("+n+")",Xe(n),Qs=!0,Fu=1,n+=". Build with -sASSERTIONS for more info.";var c=new WebAssembly.RuntimeError(n);throw o(c),c}var Ai="data:application/octet-stream;base64,";function tn(n){return n.startsWith(Ai)}var bi;bi="videodec.wasm",tn(bi)||(bi=N(bi));function rn(n){if(n==bi&&wt)return new Uint8Array(wt);if(z)return z(n);throw"both async and sync fetching of the wasm failed"}function ju(n){return!wt&&(m||T)&&typeof fetch=="function"?fetch(n,{credentials:"same-origin"}).then(c=>{if(!c.ok)throw"failed to load wasm binary file at '"+n+"'";return c.arrayBuffer()}).catch(()=>rn(n)):Promise.resolve().then(()=>rn(n))}function ja(n,c,u){return ju(n).then(p=>WebAssembly.instantiate(p,c)).then(p=>p).then(u,p=>{Xe("failed to asynchronously prepare wasm: "+p),br(p)})}function on(n,c,u,p){return!n&&typeof WebAssembly.instantiateStreaming=="function"&&!tn(c)&&typeof fetch=="function"?fetch(c,{credentials:"same-origin"}).then(E=>{var y=WebAssembly.instantiateStreaming(E,u);return y.then(p,function(R){return Xe("wasm streaming compile failed: "+R),Xe("falling back to ArrayBuffer instantiation"),ja(c,u,p)})}):ja(c,u,p)}function w(){var n={a:xg};function c(p,E){var y=p.exports;return je=y,Xs=je.E,Wa(),Zs=je.H,Gu(je.F),qo("wasm-instantiate"),y}yi("wasm-instantiate");function u(p){c(p.instance)}if(e.instantiateWasm)try{return e.instantiateWasm(n,c)}catch(p){Xe("Module.instantiateWasm callback failed with error: "+p),o(p)}return on(wt,bi,n,u).catch(o),{}}var de,Ge,sn=n=>{for(;n.length>0;)n.shift()(e)};function qu(n){this.excPtr=n,this.ptr=n-24,this.set_type=function(c){xe[this.ptr+4>>2]=c},this.get_type=function(){return xe[this.ptr+4>>2]},this.set_destructor=function(c){xe[this.ptr+8>>2]=c},this.get_destructor=function(){return xe[this.ptr+8>>2]},this.set_caught=function(c){c=c?1:0,Le[this.ptr+12>>0]=c},this.get_caught=function(){return Le[this.ptr+12>>0]!=0},this.set_rethrown=function(c){c=c?1:0,Le[this.ptr+13>>0]=c},this.get_rethrown=function(){return Le[this.ptr+13>>0]!=0},this.init=function(c,u){this.set_adjusted_ptr(0),this.set_type(c),this.set_destructor(u)},this.set_adjusted_ptr=function(c){xe[this.ptr+16>>2]=c},this.get_adjusted_ptr=function(){return xe[this.ptr+16>>2]},this.get_exception_ptr=function(){var c=Nh(this.get_type());if(c)return xe[this.excPtr>>2];var u=this.get_adjusted_ptr();return u!==0?u:this.excPtr}}var Jo=0,Ju=0;function qa(n,c,u){var p=new qu(n);throw p.init(c,u),Jo=n,Ju++,Jo}var Mt=n=>(x[Ch()>>2]=n,n),Ce={isAbs:n=>n.charAt(0)==="/",splitPath:n=>{var c=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return c.exec(n).slice(1)},normalizeArray:(n,c)=>{for(var u=0,p=n.length-1;p>=0;p--){var E=n[p];E==="."?n.splice(p,1):E===".."?(n.splice(p,1),u++):u&&(n.splice(p,1),u--)}if(c)for(;u;u--)n.unshift("..");return n},normalize:n=>{var c=Ce.isAbs(n),u=n.substr(-1)==="/";return n=Ce.normalizeArray(n.split("/").filter(p=>!!p),!c).join("/"),!n&&!c&&(n="."),n&&u&&(n+="/"),(c?"/":"")+n},dirname:n=>{var c=Ce.splitPath(n),u=c[0],p=c[1];return!u&&!p?".":(p&&(p=p.substr(0,p.length-1)),u+p)},basename:n=>{if(n==="/")return"/";n=Ce.normalize(n),n=n.replace(/\/$/,"");var c=n.lastIndexOf("/");return c===-1?n:n.substr(c+1)},join:function(){var n=Array.prototype.slice.call(arguments);return Ce.normalize(n.join("/"))},join2:(n,c)=>Ce.normalize(n+"/"+c)},jr=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return n=>crypto.getRandomValues(n);br("initRandomDevice")},Yi=n=>(Yi=jr())(n),yt={resolve:function(){for(var n="",c=!1,u=arguments.length-1;u>=-1&&!c;u--){var p=u>=0?arguments[u]:g.cwd();if(typeof p!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!p)return"";n=p+"/"+n,c=Ce.isAbs(p)}return n=Ce.normalizeArray(n.split("/").filter(E=>!!E),!c).join("/"),(c?"/":"")+n||"."},relative:(n,c)=>{n=yt.resolve(n).substr(1),c=yt.resolve(c).substr(1);function u(M){for(var Z=0;Z<M.length&&M[Z]==="";Z++);for(var ie=M.length-1;ie>=0&&M[ie]==="";ie--);return Z>ie?[]:M.slice(Z,ie-Z+1)}for(var p=u(n.split("/")),E=u(c.split("/")),y=Math.min(p.length,E.length),R=y,b=0;b<y;b++)if(p[b]!==E[b]){R=b;break}for(var k=[],b=R;b<p.length;b++)k.push("..");return k=k.concat(E.slice(R)),k.join("/")}},Ne=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,qr=(n,c,u)=>{for(var p=c+u,E=c;n[E]&&!(E>=p);)++E;if(E-c>16&&n.buffer&&Ne)return Ne.decode(n.subarray(c,E));for(var y="";c<E;){var R=n[c++];if(!(R&128)){y+=String.fromCharCode(R);continue}var b=n[c++]&63;if((R&224)==192){y+=String.fromCharCode((R&31)<<6|b);continue}var k=n[c++]&63;if((R&240)==224?R=(R&15)<<12|b<<6|k:R=(R&7)<<18|b<<12|k<<6|n[c++]&63,R<65536)y+=String.fromCharCode(R);else{var M=R-65536;y+=String.fromCharCode(55296|M>>10,56320|M&1023)}}return y},Ri=[],Jr=n=>{for(var c=0,u=0;u<n.length;++u){var p=n.charCodeAt(u);p<=127?c++:p<=2047?c+=2:p>=55296&&p<=57343?(c+=4,++u):c+=3}return c},nn=(n,c,u,p)=>{if(!(p>0))return 0;for(var E=u,y=u+p-1,R=0;R<n.length;++R){var b=n.charCodeAt(R);if(b>=55296&&b<=57343){var k=n.charCodeAt(++R);b=65536+((b&1023)<<10)|k&1023}if(b<=127){if(u>=y)break;c[u++]=b}else if(b<=2047){if(u+1>=y)break;c[u++]=192|b>>6,c[u++]=128|b&63}else if(b<=65535){if(u+2>=y)break;c[u++]=224|b>>12,c[u++]=128|b>>6&63,c[u++]=128|b&63}else{if(u+3>=y)break;c[u++]=240|b>>18,c[u++]=128|b>>12&63,c[u++]=128|b>>6&63,c[u++]=128|b&63}}return c[u]=0,u-E};function Jt(n,c,u){var p=u>0?u:Jr(n)+1,E=new Array(p),y=nn(n,E,0,E.length);return c&&(E.length=y),E}var zu=()=>{if(!Ri.length){var n=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(n=window.prompt("Input: "),n!==null&&(n+=`
47
+ } `;var $o=class extends Z{constructor(e){super();l(this,"frameRate");l(this,"_canvas");l(this,"log");l(this,"hasAlpha",!1);l(this,"name");l(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}set width(e){this._canvas&&(this._canvas.width=e)}get width(){var e;return((e=this._canvas)==null?void 0:e.width)||0}set height(e){this._canvas&&(this._canvas.height=e)}get height(){var e;return((e=this._canvas)==null?void 0:e.height)||0}setSize(e,r){this._canvas&&(this._canvas.width=e,this._canvas.height=r)}createVideoTrackSource(e,r){return new Ti(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new Fs(this,e)}createVideoImageSource(e,r){return new Da(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Na(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};l($o,"_ids",0);var pS={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Bs=class Bs extends $o{constructor(){super(...arguments);l(this,"defaultProgam");l(this,"defaultVShader");l(this,"defaultFShader");l(this,"ctx")}create(){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${$o._ids++}`),this.ctx=this._canvas.getContext("webgl2",pS),!this.ctx)throw new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,lS),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,mS),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))}),this.log.info("video context created use webgl")}destroy(e){let r="";return e&&(r=e.message,this.error=e,X.addFailedEvent({key:512702,error:e})),this.disconnect(),this.log.info(`video context destroy${r}`?`: ${r}`:""),this.ctx&&(this.ctx.deleteShader(this.defaultVShader),this.ctx.deleteShader(this.defaultFShader),this.ctx.deleteProgram(this.defaultProgam),delete this.ctx),e}set width(e){var r;(r=this.ctx)==null||r.viewport(0,0,e,this.height),super.width=e}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r)}createShader(e,r){let o=this.ctx,s=o.createShader(e);return o.shaderSource(s,r),o.compileShader(s),s}createProgram(e,r){let o=this.ctx,s=o.createProgram();return o.attachShader(s,e),o.attachShader(s,r),o.linkProgram(s),o.getProgramParameter(s,o.LINK_STATUS)||this.log.error(o.getProgramInfoLog(s)),s}};l(Bs,"UNAVAILABLE","unavailable"),G([be(Z.INIT,"created",{sync:!0,fail(e){X.addFailedEvent({key:512700,error:e.cause||e})},success(){X.addSuccessEvent({key:512700})}})],Bs.prototype,"create",1),G([be("created",Z.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Bs.UNAVAILABLE,e),this.removeAllListeners()}})],Bs.prototype,"destroy",1);var gt=Bs,Ct=class extends $o{constructor(){super(...arguments);l(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${$o._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha}),!this.ctx)throw new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this.log.info("video context created use 2d")}destroy(e){let r="";e&&(r=e.message,this.error=e,X.addFailedEvent({key:512703,error:e})),this.disconnect(),this.log.info(`video context destroy ${r?`: ${r}`:""}`),delete this.ctx,this._canvas&&(this._canvas.remove(),this._canvas.width=0,this._canvas.height=0,delete this._canvas),this.removeAllListeners(),X.addSuccessEvent({key:512703})}};G([be(Z.INIT,"created",{sync:!0,fail(e){X.addFailedEvent({key:512701,error:e.cause||e})},success(){X.addSuccessEvent({key:512701})}})],Ct.prototype,"create",1),G([be("created",Z.INIT,{ignoreError:!0,sync:!0})],Ct.prototype,"destroy",1);function hS(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var Gi=class extends Vs{constructor(e,r,o=4){super(e,r,o);l(this,"mediaType",4);l(this,"source");l(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,framesReceived:0,framesDecoded:0,frameWidth:0,frameHeight:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.videoManager,this.once("first-video-frame",s=>{this.room.emit("first-video-frame",s)})}play(e,r){return(nt(r==null?void 0:r.canvasRender)?r.canvasRender:Yt===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat()})}useCanvasPlayer(){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let e=new Ct({frameRate:15,logger:this.log,name:this.userId});e.create({alpha:!1});let r=new Bo(e,{name:"remotePlayer",logger:this.log});this.source=e.createVideoPlayerSource(this.player),this.source.connect(r),this.player.setCanvas(e._canvas),Ro()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,e),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=hS(r);if(!$e(r)||r<=0){this.log.debug(`updateCanvasPlayerFPS() ignore decoder: ${r} `);return}if(o===e.frameRate){this.log.debug(`updateCanvasPlayerFPS() ignore ClosestFPS ${o} == ${e.frameRate}`);return}this.log.info(`updateCanvasPlayerFPS() decoder: ${r}, closest: ${o}, current: ${e.frameRate}`),e.frameRate=o}get decodeFPS(){var a;let{msg_video_status:e}=((a=this.room.heartbeatReport)==null?void 0:a.msg_down_stream_info.find(d=>d.msg_user_info.str_identifier===this.userId))||{},r=this.mediaType===2?7:this.isSmall?3:2;if(!e||e.length===0)return 0;let o=e.find(d=>d.uint32_video_stream_type===r);return(o==null?void 0:o.uint32_video_dec_fps)||0}stop(){return this.room.off("heartbeat-report",this.updateCanvasPlayerFPS,this),super.stop()}decodeFrame(e){if(!this.manager)return e;for(let r of this.manager.decodePipeline)if(r&&(e=r({frame:e,track:this}),!e))return;return e}get isBig(){return this.mediaType===4}get isSmall(){return this.mediaType===8}changeType(e){this.room.changeType(e,this.user)}get isRemotePublished(){return this.user.muteState.videoAvailable}setMirror(e){e==="publish"||e==="both"||super.setMirror(e)}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},ou=class extends Gi{constructor(e,r){super(e,r,2);l(this,"mediaType",2);l(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var $s=new Map;F.on(P.JOIN_SUCCESS,({room:i})=>{ze(i.userId,{eventId:32788})});F.on(P.LEAVE_START,({room:i})=>{ze(i.userId,{eventId:32789})});F.on(P.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),ze(i.room.userId,{eventId:t})}});F.on(P.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),ze(i.room.userId,{eventId:t})}});F.on(P.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===D.AUDIO?ze(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):ze(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});F.on(P.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===D.AUDIO?ze(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):ze(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});F.on(P.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&ze(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&ze(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&ze(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});F.on(P.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&ze(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&ze(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&ze(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});F.on(P.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&ze(i.room.userId,{eventId:i.kind===D.VIDEO?32780:32781})});F.on(P.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&ze(i.room.userId,{eventId:i.kind===D.VIDEO?32782:32783})});F.on(P.SIGNAL_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e})=>{let r;switch(e){case"CONNECTED":t==="RECONNECTING"?r=32795:r=32791;break;case"DISCONNECTED":t==="RECONNECTING"?r=32796:r=32790;break;case"RECONNECTING":r=32794;break}r&&ze(i.userId,{eventId:r})});F.on(P.PEER_CONNECTION_STATE_CHANGED,({room:i,prevState:t,state:e,remoteUserId:r})=>{let o=!!r,s;switch(e){case"CONNECTED":t==="RECONNECTING"?s=o?32801:32798:s=o?32793:32792;break;case"DISCONNECTED":t==="RECONNECTING"&&(s=o?32802:32799);break;case"RECONNECTING":s=o?32800:32797;break}s&&ze(i.userId,{eventId:s,remoteUserId:r})});F.on(P.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:a})=>{let d=o?1:0;s||(d=o?3:2);let h=r==="h264"?0:2,m={eventId:4004,param1:d,param2:h,streamType:a||2};e&&(m.remoteUserId=e,m.eventId=4005),ze(t,m),X.addEnum({key:e?514701:513701,value:d}),X.addEnum({key:e?514700:513700,value:h})});F.on(P.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===D.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),ze(i.userId,e)}});function ze(i,t){let e=pe(J({},t),{timestamp:Cn()});$s.has(i)?$s.get(i).push(e):$s.set(i,[e])}function V_(i){if($s.has(i)){let t=$s.get(i).map(e=>({uint32_event_id:e.eventId,uint64_date:e.timestamp,str_userid:e.remoteUserId,uint32_param1:e.param1,uint32_param2:e.param2,uint32_video_stream_type:e.streamType}));return $s.delete(i),t}return[]}var fS=Di(Li(),1);var Ii=class extends Z{constructor(){super(...arguments);l(this,"decoder");l(this,"config")}initialize(){return A(this,null,function*(){this.decoder=new VideoDecoder({output:e=>{this.emit("videoFrame",e)},error:e=>{this.close(),this.emit("error",e)}})})}configure(e){this.config=e,this.decoder.configure(pe(J({},e),{codec:this.getCodec(e)}))}getCodec(e){switch(e.codec){case"hevc":return"hvc1.1.6.L0.12.34.56.78.9A.BC";case"av1":return"av01.0.05M.08";case"avc":return"avc1.420028";default:return e.codec}}decode(e){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(e))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};G([be([Z.INIT,"closed"],"initialized")],Ii.prototype,"initialize",1),G([be("initialized","configured",{sync:!0})],Ii.prototype,"configure",1),G([zf("configured")],Ii.prototype,"decode",1),G([be([],Z.INIT)],Ii.prototype,"reset",1),G([be([],"closed",{ignoreError:!0,sync:!0})],Ii.prototype,"close",1);function _S(){var i;self.onmessage=t=>{if(t.data.type==="init"){let{canvas:e,wasmScript:r,wasmBinary:o}=t.data,s=e==null?void 0:e.getContext("2d"),a=0,d=0,h={wasmBinary:o,postRun:()=>{i=new h.VideoDecoder({videoInfo(m,T){a=m,d=T,console.log("video info",m,T)},yuvData(m,T){let I=a*d,v=I>>2,N=h.HEAPU32[m>>2],j=h.HEAPU32[(m>>2)+1],H=h.HEAPU32[(m>>2)+2],z=h.HEAPU8.subarray(N,N+I),Te=h.HEAPU8.subarray(j,j+v),xe=h.HEAPU8.subarray(H,H+v),Xe=new Uint8Array(I+v+v);Xe.set(z),Xe.set(Te,I),Xe.set(xe,I+v);let wt=new VideoFrame(Xe,{codedWidth:a,codedHeight:d,format:"I420",timestamp:T});e?(s==null||s.drawImage(wt,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:wt},[wt])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(h)}else if(t.data.type==="decode"){let{packet:e}=t.data;i==null||i.decode(e.data,e.type=="key",e.timestamp)}else if(t.data.type==="setCodec"){let{codec:e,format:r,description:o}=t.data;i==null||i.setCodec(e,r,o!=null?o:"")}}}var Br=class extends Z{constructor(e,r,o=!1,s,a=!1){super();this.createModule=e;this.wasmBinary=r;this.workerMode=o;this.canvas=s;this.yuvMode=a;l(this,"worker");l(this,"decoder");l(this,"config");l(this,"module",{});l(this,"width",0);l(this,"height",0)}initialize(e){return A(this,null,function*(){var o;if(this.workerMode){let s=new RegExp("\\{(.+)\\}","s").exec(_S.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([s],{type:"text/javascript"})));let a=(o=this.canvas)==null?void 0:o.transferControlToOffscreen(),d=yield this.wasmBinary;return console.warn("worker mode",d),this.worker.postMessage({type:"init",canvas:a,wasmScript:this.createModule.toString(),wasmBinary:d},a?[a,d]:[d]),new Promise(h=>{this.worker.onmessage=m=>{if(m.data.type==="ready")delete this.wasmBinary,h(),console.warn("worker mode initialize success");else if(m.data.type==="yuvData"){let{videoFrame:T}=m.data;this.emit("videoFrame",T)}}})}let r=this.module;return this.wasmBinary&&(r.wasmBinary=yield this.wasmBinary),r.print=s=>console.log(s),r.printErr=s=>console.log(`[JS] ERROR: ${s}`),r.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(s=>{r.postRun=a=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),s()},e&&Object.assign(r,e),this.createModule(r)})})}configure(e){var r,o,s;this.config=e,(o=this.decoder)==null||o.setCodec(this.config.codec,this.config.description?"avcc":"annexb",(r=this.config.description)!=null?r:""),(s=this.worker)==null||s.postMessage({type:"setCodec",codec:this.config.codec,format:this.config.description?"avcc":"annexb",description:this.config.description})}decode(e){var r,o;(r=this.decoder)==null||r.decode(e.data,e.type=="key",e.timestamp),this.state==="configured"&&((o=this.worker)==null||o.postMessage({type:"decode",packet:e}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(e,r){this.width=e,this.height=r;let o={width:e,height:r};this.emit("videoCodecInfo",o)}yuvData(e,r){if(!this.module)return;let o=this.width*this.height,s=o>>2,a=this.module.HEAPU32[e>>2],d=this.module.HEAPU32[(e>>2)+1],h=this.module.HEAPU32[(e>>2)+2],m=this.module.HEAPU8.subarray(a,a+o),T=this.module.HEAPU8.subarray(d,d+s),I=this.module.HEAPU8.subarray(h,h+s);if(this.yuvMode){this.emit("videoFrame",[m,T,I]);return}let v=new Uint8Array(o+s+s);v.set(m),v.set(T,o),v.set(I,o+s),this.emit("videoFrame",new VideoFrame(v,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:r}))}errorInfo(e){let r={errMsg:e};this.emit("error",r)}};G([be([Z.INIT,"closed"],"initialized")],Br.prototype,"initialize",1),G([be("initialized","configured")],Br.prototype,"configure",1),G([be([],Z.INIT)],Br.prototype,"reset",1),G([be([],"closed")],Br.prototype,"close",1);var gS=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e=t,r,o;e.ready=new Promise((n,c)=>{r=n,o=c});var s=Object.assign({},e),a=[],d="./this.program",h=(n,c)=>{throw c},m=typeof window=="object",T=typeof importScripts=="function",I=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v="";function N(n){return e.locateFile?e.locateFile(n,v):v+n}var j,H,z,Te;(m||T)&&(T?v=self.location.href:typeof document!="undefined"&&document.currentScript&&(v=document.currentScript.src),i&&(v=i),v.indexOf("blob:")!==0?v=v.substr(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1):v="",j=n=>{var c=new XMLHttpRequest;return c.open("GET",n,!1),c.send(null),c.responseText},T&&(z=n=>{var c=new XMLHttpRequest;return c.open("GET",n,!1),c.responseType="arraybuffer",c.send(null),new Uint8Array(c.response)}),H=(n,c,u)=>{var p=new XMLHttpRequest;p.open("GET",n,!0),p.responseType="arraybuffer",p.onload=()=>{if(p.status==200||p.status==0&&p.response){c(p.response);return}u()},p.onerror=u,p.send(null)},Te=n=>document.title=n);var xe=e.print||console.log.bind(console),Xe=e.printErr||console.error.bind(console);Object.assign(e,s),s=null,e.arguments&&(a=e.arguments),e.thisProgram&&(d=e.thisProgram),e.quit&&(h=e.quit);var wt;e.wasmBinary&&(wt=e.wasmBinary);var fe=e.noExitRuntime||!0;typeof WebAssembly!="object"&&br("no native wasm support detected");var Xs,je,Qs=!1,Fu;function Hr(n,c){n||br(c)}var Le,rt,jt,qt,x,ke,Ys,Ha;function Wa(){var n=Xs.buffer;e.HEAP8=Le=new Int8Array(n),e.HEAP16=jt=new Int16Array(n),e.HEAP32=x=new Int32Array(n),e.HEAPU8=rt=new Uint8Array(n),e.HEAPU16=qt=new Uint16Array(n),e.HEAPU32=ke=new Uint32Array(n),e.HEAPF32=Ys=new Float32Array(n),e.HEAPF64=Ha=new Float64Array(n)}var Zs,Ks=[],en=[],Ga=[],Bu=!1;function $u(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)Wu(e.preRun.shift());sn(Ks)}function q(){Bu=!0,!e.noFSInit&&!g.init.initialized&&g.init(),g.ignorePermissions=!1,Rr.init(),sn(en)}function Hu(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Wr(e.postRun.shift());sn(Ga)}function Wu(n){Ks.unshift(n)}function Gu(n){en.unshift(n)}function Wr(n){Ga.unshift(n)}var se=0,Gr=null,Zi=null;function Rh(n){return n}function Ai(n){se++,e.monitorRunDependencies&&e.monitorRunDependencies(se)}function Jo(n){if(se--,e.monitorRunDependencies&&e.monitorRunDependencies(se),se==0&&(Gr!==null&&(clearInterval(Gr),Gr=null),Zi)){var c=Zi;Zi=null,c()}}function br(n){e.onAbort&&e.onAbort(n),n="Aborted("+n+")",Xe(n),Qs=!0,Fu=1,n+=". Build with -sASSERTIONS for more info.";var c=new WebAssembly.RuntimeError(n);throw o(c),c}var bi="data:application/octet-stream;base64,";function tn(n){return n.startsWith(bi)}var Ri;Ri="videodec.wasm",tn(Ri)||(Ri=N(Ri));function rn(n){if(n==Ri&&wt)return new Uint8Array(wt);if(z)return z(n);throw"both async and sync fetching of the wasm failed"}function ju(n){return!wt&&(m||T)&&typeof fetch=="function"?fetch(n,{credentials:"same-origin"}).then(c=>{if(!c.ok)throw"failed to load wasm binary file at '"+n+"'";return c.arrayBuffer()}).catch(()=>rn(n)):Promise.resolve().then(()=>rn(n))}function ja(n,c,u){return ju(n).then(p=>WebAssembly.instantiate(p,c)).then(p=>p).then(u,p=>{Xe("failed to asynchronously prepare wasm: "+p),br(p)})}function on(n,c,u,p){return!n&&typeof WebAssembly.instantiateStreaming=="function"&&!tn(c)&&typeof fetch=="function"?fetch(c,{credentials:"same-origin"}).then(E=>{var y=WebAssembly.instantiateStreaming(E,u);return y.then(p,function(R){return Xe("wasm streaming compile failed: "+R),Xe("falling back to ArrayBuffer instantiation"),ja(c,u,p)})}):ja(c,u,p)}function w(){var n={a:kg};function c(p,E){var y=p.exports;return je=y,Xs=je.E,Wa(),Zs=je.H,Gu(je.F),Jo("wasm-instantiate"),y}Ai("wasm-instantiate");function u(p){c(p.instance)}if(e.instantiateWasm)try{return e.instantiateWasm(n,c)}catch(p){Xe("Module.instantiateWasm callback failed with error: "+p),o(p)}return on(wt,Ri,n,u).catch(o),{}}var de,We,sn=n=>{for(;n.length>0;)n.shift()(e)};function qu(n){this.excPtr=n,this.ptr=n-24,this.set_type=function(c){ke[this.ptr+4>>2]=c},this.get_type=function(){return ke[this.ptr+4>>2]},this.set_destructor=function(c){ke[this.ptr+8>>2]=c},this.get_destructor=function(){return ke[this.ptr+8>>2]},this.set_caught=function(c){c=c?1:0,Le[this.ptr+12>>0]=c},this.get_caught=function(){return Le[this.ptr+12>>0]!=0},this.set_rethrown=function(c){c=c?1:0,Le[this.ptr+13>>0]=c},this.get_rethrown=function(){return Le[this.ptr+13>>0]!=0},this.init=function(c,u){this.set_adjusted_ptr(0),this.set_type(c),this.set_destructor(u)},this.set_adjusted_ptr=function(c){ke[this.ptr+16>>2]=c},this.get_adjusted_ptr=function(){return ke[this.ptr+16>>2]},this.get_exception_ptr=function(){var c=wh(this.get_type());if(c)return ke[this.excPtr>>2];var u=this.get_adjusted_ptr();return u!==0?u:this.excPtr}}var zo=0,Ju=0;function qa(n,c,u){var p=new qu(n);throw p.init(c,u),zo=n,Ju++,zo}var Mt=n=>(x[Dh()>>2]=n,n),De={isAbs:n=>n.charAt(0)==="/",splitPath:n=>{var c=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return c.exec(n).slice(1)},normalizeArray:(n,c)=>{for(var u=0,p=n.length-1;p>=0;p--){var E=n[p];E==="."?n.splice(p,1):E===".."?(n.splice(p,1),u++):u&&(n.splice(p,1),u--)}if(c)for(;u;u--)n.unshift("..");return n},normalize:n=>{var c=De.isAbs(n),u=n.substr(-1)==="/";return n=De.normalizeArray(n.split("/").filter(p=>!!p),!c).join("/"),!n&&!c&&(n="."),n&&u&&(n+="/"),(c?"/":"")+n},dirname:n=>{var c=De.splitPath(n),u=c[0],p=c[1];return!u&&!p?".":(p&&(p=p.substr(0,p.length-1)),u+p)},basename:n=>{if(n==="/")return"/";n=De.normalize(n),n=n.replace(/\/$/,"");var c=n.lastIndexOf("/");return c===-1?n:n.substr(c+1)},join:function(){var n=Array.prototype.slice.call(arguments);return De.normalize(n.join("/"))},join2:(n,c)=>De.normalize(n+"/"+c)},jr=()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return n=>crypto.getRandomValues(n);br("initRandomDevice")},Ki=n=>(Ki=jr())(n),yt={resolve:function(){for(var n="",c=!1,u=arguments.length-1;u>=-1&&!c;u--){var p=u>=0?arguments[u]:g.cwd();if(typeof p!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!p)return"";n=p+"/"+n,c=De.isAbs(p)}return n=De.normalizeArray(n.split("/").filter(E=>!!E),!c).join("/"),(c?"/":"")+n||"."},relative:(n,c)=>{n=yt.resolve(n).substr(1),c=yt.resolve(c).substr(1);function u(M){for(var K=0;K<M.length&&M[K]==="";K++);for(var ie=M.length-1;ie>=0&&M[ie]==="";ie--);return K>ie?[]:M.slice(K,ie-K+1)}for(var p=u(n.split("/")),E=u(c.split("/")),y=Math.min(p.length,E.length),R=y,b=0;b<y;b++)if(p[b]!==E[b]){R=b;break}for(var k=[],b=R;b<p.length;b++)k.push("..");return k=k.concat(E.slice(R)),k.join("/")}},Ne=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,qr=(n,c,u)=>{for(var p=c+u,E=c;n[E]&&!(E>=p);)++E;if(E-c>16&&n.buffer&&Ne)return Ne.decode(n.subarray(c,E));for(var y="";c<E;){var R=n[c++];if(!(R&128)){y+=String.fromCharCode(R);continue}var b=n[c++]&63;if((R&224)==192){y+=String.fromCharCode((R&31)<<6|b);continue}var k=n[c++]&63;if((R&240)==224?R=(R&15)<<12|b<<6|k:R=(R&7)<<18|b<<12|k<<6|n[c++]&63,R<65536)y+=String.fromCharCode(R);else{var M=R-65536;y+=String.fromCharCode(55296|M>>10,56320|M&1023)}}return y},vi=[],Jr=n=>{for(var c=0,u=0;u<n.length;++u){var p=n.charCodeAt(u);p<=127?c++:p<=2047?c+=2:p>=55296&&p<=57343?(c+=4,++u):c+=3}return c},nn=(n,c,u,p)=>{if(!(p>0))return 0;for(var E=u,y=u+p-1,R=0;R<n.length;++R){var b=n.charCodeAt(R);if(b>=55296&&b<=57343){var k=n.charCodeAt(++R);b=65536+((b&1023)<<10)|k&1023}if(b<=127){if(u>=y)break;c[u++]=b}else if(b<=2047){if(u+1>=y)break;c[u++]=192|b>>6,c[u++]=128|b&63}else if(b<=65535){if(u+2>=y)break;c[u++]=224|b>>12,c[u++]=128|b>>6&63,c[u++]=128|b&63}else{if(u+3>=y)break;c[u++]=240|b>>18,c[u++]=128|b>>12&63,c[u++]=128|b>>6&63,c[u++]=128|b&63}}return c[u]=0,u-E};function Jt(n,c,u){var p=u>0?u:Jr(n)+1,E=new Array(p),y=nn(n,E,0,E.length);return c&&(E.length=y),E}var zu=()=>{if(!vi.length){var n=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(n=window.prompt("Input: "),n!==null&&(n+=`
48
48
  `)):typeof readline=="function"&&(n=readline(),n!==null&&(n+=`
49
- `)),!n)return null;Ri=Jt(n,!0)}return Ri.shift()},Rr={ttys:[],init:function(){},shutdown:function(){},register:function(n,c){Rr.ttys[n]={input:[],output:[],ops:c},g.registerDevice(n,Rr.stream_ops)},stream_ops:{open:function(n){var c=Rr.ttys[n.node.rdev];if(!c)throw new g.ErrnoError(43);n.tty=c,n.seekable=!1},close:function(n){n.tty.ops.fsync(n.tty)},fsync:function(n){n.tty.ops.fsync(n.tty)},read:function(n,c,u,p,E){if(!n.tty||!n.tty.ops.get_char)throw new g.ErrnoError(60);for(var y=0,R=0;R<p;R++){var b;try{b=n.tty.ops.get_char(n.tty)}catch(k){throw new g.ErrnoError(29)}if(b===void 0&&y===0)throw new g.ErrnoError(6);if(b==null)break;y++,c[u+R]=b}return y&&(n.node.timestamp=Date.now()),y},write:function(n,c,u,p,E){if(!n.tty||!n.tty.ops.put_char)throw new g.ErrnoError(60);try{for(var y=0;y<p;y++)n.tty.ops.put_char(n.tty,c[u+y])}catch(R){throw new g.ErrnoError(29)}return p&&(n.node.timestamp=Date.now()),y}},default_tty_ops:{get_char:function(n){return zu()},put_char:function(n,c){c===null||c===10?(Pe(qr(n.output,0)),n.output=[]):c!=0&&n.output.push(c)},fsync:function(n){n.output&&n.output.length>0&&(Pe(qr(n.output,0)),n.output=[])},ioctl_tcgets:function(n){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets:function(n,c,u){return 0},ioctl_tiocgwinsz:function(n){return[24,80]}},default_tty1_ops:{put_char:function(n,c){c===null||c===10?(Xe(qr(n.output,0)),n.output=[]):c!=0&&n.output.push(c)},fsync:function(n){n.output&&n.output.length>0&&(Xe(qr(n.output,0)),n.output=[])}}},Ja=n=>{br()},he={ops_table:null,mount(n){return he.createNode(null,"/",16895,0)},createNode(n,c,u,p){if(g.isBlkdev(u)||g.isFIFO(u))throw new g.ErrnoError(63);he.ops_table||(he.ops_table={dir:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr,lookup:he.node_ops.lookup,mknod:he.node_ops.mknod,rename:he.node_ops.rename,unlink:he.node_ops.unlink,rmdir:he.node_ops.rmdir,readdir:he.node_ops.readdir,symlink:he.node_ops.symlink},stream:{llseek:he.stream_ops.llseek}},file:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr},stream:{llseek:he.stream_ops.llseek,read:he.stream_ops.read,write:he.stream_ops.write,allocate:he.stream_ops.allocate,mmap:he.stream_ops.mmap,msync:he.stream_ops.msync}},link:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr,readlink:he.node_ops.readlink},stream:{}},chrdev:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr},stream:g.chrdev_stream_ops}});var E=g.createNode(n,c,u,p);return g.isDir(E.mode)?(E.node_ops=he.ops_table.dir.node,E.stream_ops=he.ops_table.dir.stream,E.contents={}):g.isFile(E.mode)?(E.node_ops=he.ops_table.file.node,E.stream_ops=he.ops_table.file.stream,E.usedBytes=0,E.contents=null):g.isLink(E.mode)?(E.node_ops=he.ops_table.link.node,E.stream_ops=he.ops_table.link.stream):g.isChrdev(E.mode)&&(E.node_ops=he.ops_table.chrdev.node,E.stream_ops=he.ops_table.chrdev.stream),E.timestamp=Date.now(),n&&(n.contents[c]=E,n.timestamp=E.timestamp),E},getFileDataAsTypedArray(n){return n.contents?n.contents.subarray?n.contents.subarray(0,n.usedBytes):new Uint8Array(n.contents):new Uint8Array(0)},expandFileStorage(n,c){var u=n.contents?n.contents.length:0;if(!(u>=c)){var p=1024*1024;c=Math.max(c,u*(u<p?2:1.125)>>>0),u!=0&&(c=Math.max(c,256));var E=n.contents;n.contents=new Uint8Array(c),n.usedBytes>0&&n.contents.set(E.subarray(0,n.usedBytes),0)}},resizeFileStorage(n,c){if(n.usedBytes!=c)if(c==0)n.contents=null,n.usedBytes=0;else{var u=n.contents;n.contents=new Uint8Array(c),u&&n.contents.set(u.subarray(0,Math.min(c,n.usedBytes))),n.usedBytes=c}},node_ops:{getattr(n){var c={};return c.dev=g.isChrdev(n.mode)?n.id:1,c.ino=n.id,c.mode=n.mode,c.nlink=1,c.uid=0,c.gid=0,c.rdev=n.rdev,g.isDir(n.mode)?c.size=4096:g.isFile(n.mode)?c.size=n.usedBytes:g.isLink(n.mode)?c.size=n.link.length:c.size=0,c.atime=new Date(n.timestamp),c.mtime=new Date(n.timestamp),c.ctime=new Date(n.timestamp),c.blksize=4096,c.blocks=Math.ceil(c.size/c.blksize),c},setattr(n,c){c.mode!==void 0&&(n.mode=c.mode),c.timestamp!==void 0&&(n.timestamp=c.timestamp),c.size!==void 0&&he.resizeFileStorage(n,c.size)},lookup(n,c){throw g.genericErrors[44]},mknod(n,c,u,p){return he.createNode(n,c,u,p)},rename(n,c,u){if(g.isDir(n.mode)){var p;try{p=g.lookupNode(c,u)}catch(y){}if(p)for(var E in p.contents)throw new g.ErrnoError(55)}delete n.parent.contents[n.name],n.parent.timestamp=Date.now(),n.name=u,c.contents[u]=n,c.timestamp=n.parent.timestamp,n.parent=c},unlink(n,c){delete n.contents[c],n.timestamp=Date.now()},rmdir(n,c){var u=g.lookupNode(n,c);for(var p in u.contents)throw new g.ErrnoError(55);delete n.contents[c],n.timestamp=Date.now()},readdir(n){var c=[".",".."];for(var u in n.contents)n.contents.hasOwnProperty(u)&&c.push(u);return c},symlink(n,c,u){var p=he.createNode(n,c,41471,0);return p.link=u,p},readlink(n){if(!g.isLink(n.mode))throw new g.ErrnoError(28);return n.link}},stream_ops:{read(n,c,u,p,E){var y=n.node.contents;if(E>=n.node.usedBytes)return 0;var R=Math.min(n.node.usedBytes-E,p);if(R>8&&y.subarray)c.set(y.subarray(E,E+R),u);else for(var b=0;b<R;b++)c[u+b]=y[E+b];return R},write(n,c,u,p,E,y){if(!p)return 0;var R=n.node;if(R.timestamp=Date.now(),c.subarray&&(!R.contents||R.contents.subarray)){if(y)return R.contents=c.subarray(u,u+p),R.usedBytes=p,p;if(R.usedBytes===0&&E===0)return R.contents=c.slice(u,u+p),R.usedBytes=p,p;if(E+p<=R.usedBytes)return R.contents.set(c.subarray(u,u+p),E),p}if(he.expandFileStorage(R,E+p),R.contents.subarray&&c.subarray)R.contents.set(c.subarray(u,u+p),E);else for(var b=0;b<p;b++)R.contents[E+b]=c[u+b];return R.usedBytes=Math.max(R.usedBytes,E+p),p},llseek(n,c,u){var p=c;if(u===1?p+=n.position:u===2&&g.isFile(n.node.mode)&&(p+=n.node.usedBytes),p<0)throw new g.ErrnoError(28);return p},allocate(n,c,u){he.expandFileStorage(n.node,c+u),n.node.usedBytes=Math.max(n.node.usedBytes,c+u)},mmap(n,c,u,p,E){if(!g.isFile(n.node.mode))throw new g.ErrnoError(43);var y,R,b=n.node.contents;if(!(E&2)&&b.buffer===Le.buffer)R=!1,y=b.byteOffset;else{if((u>0||u+c<b.length)&&(b.subarray?b=b.subarray(u,u+c):b=Array.prototype.slice.call(b,u,u+c)),R=!0,y=Ja(c),!y)throw new g.ErrnoError(48);Le.set(b,y)}return{ptr:y,allocated:R}},msync(n,c,u,p,E){return he.stream_ops.write(n,c,0,p,u,!1),0}}},an=(n,c,u,p)=>{var E=p?"":`al ${n}`;H(n,y=>{Hr(y,`Loading data file "${n}" failed (no arrayBuffer).`),c(new Uint8Array(y)),E&&qo(E)},y=>{if(u)u();else throw`Loading data file "${n}" failed.`}),E&&yi(E)},za=e.preloadPlugins||[];function Xu(n,c,u,p){typeof Browser!="undefined"&&Browser.init();var E=!1;return za.forEach(function(y){E||y.canHandle(c)&&(y.handle(n,c,u,p),E=!0)}),E}function Xa(n,c,u,p,E,y,R,b,k,M){var Z=c?yt.resolve(Ce.join2(n,c)):n,ie=`cp ${Z}`;function te(Q){function me(He){M&&M(),b||g.createDataFile(n,c,He,p,E,k),y&&y(),qo(ie)}Xu(Q,Z,me,()=>{R&&R(),qo(ie)})||me(Q)}yi(ie),typeof u=="string"?an(u,Q=>te(Q),R):te(u)}function Qa(n){var c={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},u=c[n];if(typeof u=="undefined")throw new Error(`Unknown file open mode: ${n}`);return u}function zo(n,c){var u=0;return n&&(u|=365),c&&(u|=146),u}var g={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(n,c={})=>{if(n=yt.resolve(n),!n)return{path:"",node:null};var u={follow_mount:!0,recurse_count:0};if(c=Object.assign(u,c),c.recurse_count>8)throw new g.ErrnoError(32);for(var p=n.split("/").filter(ie=>!!ie),E=g.root,y="/",R=0;R<p.length;R++){var b=R===p.length-1;if(b&&c.parent)break;if(E=g.lookupNode(E,p[R]),y=Ce.join2(y,p[R]),g.isMountpoint(E)&&(!b||b&&c.follow_mount)&&(E=E.mounted.root),!b||c.follow)for(var k=0;g.isLink(E.mode);){var M=g.readlink(y);y=yt.resolve(Ce.dirname(y),M);var Z=g.lookupPath(y,{recurse_count:c.recurse_count+1});if(E=Z.node,k++>40)throw new g.ErrnoError(32)}}return{path:y,node:E}},getPath:n=>{for(var c;;){if(g.isRoot(n)){var u=n.mount.mountpoint;return c?u[u.length-1]!=="/"?`${u}/${c}`:u+c:u}c=c?`${n.name}/${c}`:n.name,n=n.parent}},hashName:(n,c)=>{for(var u=0,p=0;p<c.length;p++)u=(u<<5)-u+c.charCodeAt(p)|0;return(n+u>>>0)%g.nameTable.length},hashAddNode:n=>{var c=g.hashName(n.parent.id,n.name);n.name_next=g.nameTable[c],g.nameTable[c]=n},hashRemoveNode:n=>{var c=g.hashName(n.parent.id,n.name);if(g.nameTable[c]===n)g.nameTable[c]=n.name_next;else for(var u=g.nameTable[c];u;){if(u.name_next===n){u.name_next=n.name_next;break}u=u.name_next}},lookupNode:(n,c)=>{var u=g.mayLookup(n);if(u)throw new g.ErrnoError(u,n);for(var p=g.hashName(n.id,c),E=g.nameTable[p];E;E=E.name_next){var y=E.name;if(E.parent.id===n.id&&y===c)return E}return g.lookup(n,c)},createNode:(n,c,u,p)=>{var E=new g.FSNode(n,c,u,p);return g.hashAddNode(E),E},destroyNode:n=>{g.hashRemoveNode(n)},isRoot:n=>n===n.parent,isMountpoint:n=>!!n.mounted,isFile:n=>(n&61440)===32768,isDir:n=>(n&61440)===16384,isLink:n=>(n&61440)===40960,isChrdev:n=>(n&61440)===8192,isBlkdev:n=>(n&61440)===24576,isFIFO:n=>(n&61440)===4096,isSocket:n=>(n&49152)===49152,flagsToPermissionString:n=>{var c=["r","w","rw"][n&3];return n&512&&(c+="w"),c},nodePermissions:(n,c)=>g.ignorePermissions?0:c.includes("r")&&!(n.mode&292)||c.includes("w")&&!(n.mode&146)||c.includes("x")&&!(n.mode&73)?2:0,mayLookup:n=>{var c=g.nodePermissions(n,"x");return c||(n.node_ops.lookup?0:2)},mayCreate:(n,c)=>{try{var u=g.lookupNode(n,c);return 20}catch(p){}return g.nodePermissions(n,"wx")},mayDelete:(n,c,u)=>{var p;try{p=g.lookupNode(n,c)}catch(y){return y.errno}var E=g.nodePermissions(n,"wx");if(E)return E;if(u){if(!g.isDir(p.mode))return 54;if(g.isRoot(p)||g.getPath(p)===g.cwd())return 10}else if(g.isDir(p.mode))return 31;return 0},mayOpen:(n,c)=>n?g.isLink(n.mode)?32:g.isDir(n.mode)&&(g.flagsToPermissionString(c)!=="r"||c&512)?31:g.nodePermissions(n,g.flagsToPermissionString(c)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var n=0;n<=g.MAX_OPEN_FDS;n++)if(!g.streams[n])return n;throw new g.ErrnoError(33)},getStreamChecked:n=>{var c=g.getStream(n);if(!c)throw new g.ErrnoError(8);return c},getStream:n=>g.streams[n],createStream:(n,c=-1)=>(g.FSStream||(g.FSStream=function(){this.shared={}},g.FSStream.prototype={},Object.defineProperties(g.FSStream.prototype,{object:{get(){return this.node},set(u){this.node=u}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(u){this.shared.flags=u}},position:{get(){return this.shared.position},set(u){this.shared.position=u}}})),n=Object.assign(new g.FSStream,n),c==-1&&(c=g.nextfd()),n.fd=c,g.streams[c]=n,n),closeStream:n=>{g.streams[n]=null},chrdev_stream_ops:{open:n=>{var c=g.getDevice(n.node.rdev);n.stream_ops=c.stream_ops,n.stream_ops.open&&n.stream_ops.open(n)},llseek:()=>{throw new g.ErrnoError(70)}},major:n=>n>>8,minor:n=>n&255,makedev:(n,c)=>n<<8|c,registerDevice:(n,c)=>{g.devices[n]={stream_ops:c}},getDevice:n=>g.devices[n],getMounts:n=>{for(var c=[],u=[n];u.length;){var p=u.pop();c.push(p),u.push.apply(u,p.mounts)}return c},syncfs:(n,c)=>{typeof n=="function"&&(c=n,n=!1),g.syncFSRequests++,g.syncFSRequests>1&&Xe(`warning: ${g.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var u=g.getMounts(g.root.mount),p=0;function E(R){return g.syncFSRequests--,c(R)}function y(R){if(R)return y.errored?void 0:(y.errored=!0,E(R));++p>=u.length&&E(null)}u.forEach(R=>{if(!R.type.syncfs)return y(null);R.type.syncfs(R,n,y)})},mount:(n,c,u)=>{var p=u==="/",E=!u,y;if(p&&g.root)throw new g.ErrnoError(10);if(!p&&!E){var R=g.lookupPath(u,{follow_mount:!1});if(u=R.path,y=R.node,g.isMountpoint(y))throw new g.ErrnoError(10);if(!g.isDir(y.mode))throw new g.ErrnoError(54)}var b={type:n,opts:c,mountpoint:u,mounts:[]},k=n.mount(b);return k.mount=b,b.root=k,p?g.root=k:y&&(y.mounted=b,y.mount&&y.mount.mounts.push(b)),k},unmount:n=>{var c=g.lookupPath(n,{follow_mount:!1});if(!g.isMountpoint(c.node))throw new g.ErrnoError(28);var u=c.node,p=u.mounted,E=g.getMounts(p);Object.keys(g.nameTable).forEach(R=>{for(var b=g.nameTable[R];b;){var k=b.name_next;E.includes(b.mount)&&g.destroyNode(b),b=k}}),u.mounted=null;var y=u.mount.mounts.indexOf(p);u.mount.mounts.splice(y,1)},lookup:(n,c)=>n.node_ops.lookup(n,c),mknod:(n,c,u)=>{var p=g.lookupPath(n,{parent:!0}),E=p.node,y=Ce.basename(n);if(!y||y==="."||y==="..")throw new g.ErrnoError(28);var R=g.mayCreate(E,y);if(R)throw new g.ErrnoError(R);if(!E.node_ops.mknod)throw new g.ErrnoError(63);return E.node_ops.mknod(E,y,c,u)},create:(n,c)=>(c=c!==void 0?c:438,c&=4095,c|=32768,g.mknod(n,c,0)),mkdir:(n,c)=>(c=c!==void 0?c:511,c&=1023,c|=16384,g.mknod(n,c,0)),mkdirTree:(n,c)=>{for(var u=n.split("/"),p="",E=0;E<u.length;++E)if(u[E]){p+="/"+u[E];try{g.mkdir(p,c)}catch(y){if(y.errno!=20)throw y}}},mkdev:(n,c,u)=>(typeof u=="undefined"&&(u=c,c=438),c|=8192,g.mknod(n,c,u)),symlink:(n,c)=>{if(!yt.resolve(n))throw new g.ErrnoError(44);var u=g.lookupPath(c,{parent:!0}),p=u.node;if(!p)throw new g.ErrnoError(44);var E=Ce.basename(c),y=g.mayCreate(p,E);if(y)throw new g.ErrnoError(y);if(!p.node_ops.symlink)throw new g.ErrnoError(63);return p.node_ops.symlink(p,E,n)},rename:(n,c)=>{var u=Ce.dirname(n),p=Ce.dirname(c),E=Ce.basename(n),y=Ce.basename(c),R,b,k;if(R=g.lookupPath(n,{parent:!0}),b=R.node,R=g.lookupPath(c,{parent:!0}),k=R.node,!b||!k)throw new g.ErrnoError(44);if(b.mount!==k.mount)throw new g.ErrnoError(75);var M=g.lookupNode(b,E),Z=yt.relative(n,p);if(Z.charAt(0)!==".")throw new g.ErrnoError(28);if(Z=yt.relative(c,u),Z.charAt(0)!==".")throw new g.ErrnoError(55);var ie;try{ie=g.lookupNode(k,y)}catch(me){}if(M!==ie){var te=g.isDir(M.mode),Q=g.mayDelete(b,E,te);if(Q)throw new g.ErrnoError(Q);if(Q=ie?g.mayDelete(k,y,te):g.mayCreate(k,y),Q)throw new g.ErrnoError(Q);if(!b.node_ops.rename)throw new g.ErrnoError(63);if(g.isMountpoint(M)||ie&&g.isMountpoint(ie))throw new g.ErrnoError(10);if(k!==b&&(Q=g.nodePermissions(b,"w"),Q))throw new g.ErrnoError(Q);g.hashRemoveNode(M);try{b.node_ops.rename(M,k,y)}catch(me){throw me}finally{g.hashAddNode(M)}}},rmdir:n=>{var c=g.lookupPath(n,{parent:!0}),u=c.node,p=Ce.basename(n),E=g.lookupNode(u,p),y=g.mayDelete(u,p,!0);if(y)throw new g.ErrnoError(y);if(!u.node_ops.rmdir)throw new g.ErrnoError(63);if(g.isMountpoint(E))throw new g.ErrnoError(10);u.node_ops.rmdir(u,p),g.destroyNode(E)},readdir:n=>{var c=g.lookupPath(n,{follow:!0}),u=c.node;if(!u.node_ops.readdir)throw new g.ErrnoError(54);return u.node_ops.readdir(u)},unlink:n=>{var c=g.lookupPath(n,{parent:!0}),u=c.node;if(!u)throw new g.ErrnoError(44);var p=Ce.basename(n),E=g.lookupNode(u,p),y=g.mayDelete(u,p,!1);if(y)throw new g.ErrnoError(y);if(!u.node_ops.unlink)throw new g.ErrnoError(63);if(g.isMountpoint(E))throw new g.ErrnoError(10);u.node_ops.unlink(u,p),g.destroyNode(E)},readlink:n=>{var c=g.lookupPath(n),u=c.node;if(!u)throw new g.ErrnoError(44);if(!u.node_ops.readlink)throw new g.ErrnoError(28);return yt.resolve(g.getPath(u.parent),u.node_ops.readlink(u))},stat:(n,c)=>{var u=g.lookupPath(n,{follow:!c}),p=u.node;if(!p)throw new g.ErrnoError(44);if(!p.node_ops.getattr)throw new g.ErrnoError(63);return p.node_ops.getattr(p)},lstat:n=>g.stat(n,!0),chmod:(n,c,u)=>{var p;if(typeof n=="string"){var E=g.lookupPath(n,{follow:!u});p=E.node}else p=n;if(!p.node_ops.setattr)throw new g.ErrnoError(63);p.node_ops.setattr(p,{mode:c&4095|p.mode&-4096,timestamp:Date.now()})},lchmod:(n,c)=>{g.chmod(n,c,!0)},fchmod:(n,c)=>{var u=g.getStreamChecked(n);g.chmod(u.node,c)},chown:(n,c,u,p)=>{var E;if(typeof n=="string"){var y=g.lookupPath(n,{follow:!p});E=y.node}else E=n;if(!E.node_ops.setattr)throw new g.ErrnoError(63);E.node_ops.setattr(E,{timestamp:Date.now()})},lchown:(n,c,u)=>{g.chown(n,c,u,!0)},fchown:(n,c,u)=>{var p=g.getStreamChecked(n);g.chown(p.node,c,u)},truncate:(n,c)=>{if(c<0)throw new g.ErrnoError(28);var u;if(typeof n=="string"){var p=g.lookupPath(n,{follow:!0});u=p.node}else u=n;if(!u.node_ops.setattr)throw new g.ErrnoError(63);if(g.isDir(u.mode))throw new g.ErrnoError(31);if(!g.isFile(u.mode))throw new g.ErrnoError(28);var E=g.nodePermissions(u,"w");if(E)throw new g.ErrnoError(E);u.node_ops.setattr(u,{size:c,timestamp:Date.now()})},ftruncate:(n,c)=>{var u=g.getStreamChecked(n);if((u.flags&2097155)===0)throw new g.ErrnoError(28);g.truncate(u.node,c)},utime:(n,c,u)=>{var p=g.lookupPath(n,{follow:!0}),E=p.node;E.node_ops.setattr(E,{timestamp:Math.max(c,u)})},open:(n,c,u)=>{if(n==="")throw new g.ErrnoError(44);c=typeof c=="string"?Qa(c):c,u=typeof u=="undefined"?438:u,c&64?u=u&4095|32768:u=0;var p;if(typeof n=="object")p=n;else{n=Ce.normalize(n);try{var E=g.lookupPath(n,{follow:!(c&131072)});p=E.node}catch(k){}}var y=!1;if(c&64)if(p){if(c&128)throw new g.ErrnoError(20)}else p=g.mknod(n,u,0),y=!0;if(!p)throw new g.ErrnoError(44);if(g.isChrdev(p.mode)&&(c&=-513),c&65536&&!g.isDir(p.mode))throw new g.ErrnoError(54);if(!y){var R=g.mayOpen(p,c);if(R)throw new g.ErrnoError(R)}c&512&&!y&&g.truncate(p,0),c&=-131713;var b=g.createStream({node:p,path:g.getPath(p),flags:c,seekable:!0,position:0,stream_ops:p.stream_ops,ungotten:[],error:!1});return b.stream_ops.open&&b.stream_ops.open(b),e.logReadFiles&&!(c&1)&&(g.readFiles||(g.readFiles={}),n in g.readFiles||(g.readFiles[n]=1)),b},close:n=>{if(g.isClosed(n))throw new g.ErrnoError(8);n.getdents&&(n.getdents=null);try{n.stream_ops.close&&n.stream_ops.close(n)}catch(c){throw c}finally{g.closeStream(n.fd)}n.fd=null},isClosed:n=>n.fd===null,llseek:(n,c,u)=>{if(g.isClosed(n))throw new g.ErrnoError(8);if(!n.seekable||!n.stream_ops.llseek)throw new g.ErrnoError(70);if(u!=0&&u!=1&&u!=2)throw new g.ErrnoError(28);return n.position=n.stream_ops.llseek(n,c,u),n.ungotten=[],n.position},read:(n,c,u,p,E)=>{if(p<0||E<0)throw new g.ErrnoError(28);if(g.isClosed(n))throw new g.ErrnoError(8);if((n.flags&2097155)===1)throw new g.ErrnoError(8);if(g.isDir(n.node.mode))throw new g.ErrnoError(31);if(!n.stream_ops.read)throw new g.ErrnoError(28);var y=typeof E!="undefined";if(!y)E=n.position;else if(!n.seekable)throw new g.ErrnoError(70);var R=n.stream_ops.read(n,c,u,p,E);return y||(n.position+=R),R},write:(n,c,u,p,E,y)=>{if(p<0||E<0)throw new g.ErrnoError(28);if(g.isClosed(n))throw new g.ErrnoError(8);if((n.flags&2097155)===0)throw new g.ErrnoError(8);if(g.isDir(n.node.mode))throw new g.ErrnoError(31);if(!n.stream_ops.write)throw new g.ErrnoError(28);n.seekable&&n.flags&1024&&g.llseek(n,0,2);var R=typeof E!="undefined";if(!R)E=n.position;else if(!n.seekable)throw new g.ErrnoError(70);var b=n.stream_ops.write(n,c,u,p,E,y);return R||(n.position+=b),b},allocate:(n,c,u)=>{if(g.isClosed(n))throw new g.ErrnoError(8);if(c<0||u<=0)throw new g.ErrnoError(28);if((n.flags&2097155)===0)throw new g.ErrnoError(8);if(!g.isFile(n.node.mode)&&!g.isDir(n.node.mode))throw new g.ErrnoError(43);if(!n.stream_ops.allocate)throw new g.ErrnoError(138);n.stream_ops.allocate(n,c,u)},mmap:(n,c,u,p,E)=>{if((p&2)!==0&&(E&2)===0&&(n.flags&2097155)!==2)throw new g.ErrnoError(2);if((n.flags&2097155)===1)throw new g.ErrnoError(2);if(!n.stream_ops.mmap)throw new g.ErrnoError(43);return n.stream_ops.mmap(n,c,u,p,E)},msync:(n,c,u,p,E)=>n.stream_ops.msync?n.stream_ops.msync(n,c,u,p,E):0,munmap:n=>0,ioctl:(n,c,u)=>{if(!n.stream_ops.ioctl)throw new g.ErrnoError(59);return n.stream_ops.ioctl(n,c,u)},readFile:(n,c={})=>{if(c.flags=c.flags||0,c.encoding=c.encoding||"binary",c.encoding!=="utf8"&&c.encoding!=="binary")throw new Error(`Invalid encoding type "${c.encoding}"`);var u,p=g.open(n,c.flags),E=g.stat(n),y=E.size,R=new Uint8Array(y);return g.read(p,R,0,y,0),c.encoding==="utf8"?u=qr(R,0):c.encoding==="binary"&&(u=R),g.close(p),u},writeFile:(n,c,u={})=>{u.flags=u.flags||577;var p=g.open(n,u.flags,u.mode);if(typeof c=="string"){var E=new Uint8Array(Jr(c)+1),y=nn(c,E,0,E.length);g.write(p,E,0,y,void 0,u.canOwn)}else if(ArrayBuffer.isView(c))g.write(p,c,0,c.byteLength,void 0,u.canOwn);else throw new Error("Unsupported data type");g.close(p)},cwd:()=>g.currentPath,chdir:n=>{var c=g.lookupPath(n,{follow:!0});if(c.node===null)throw new g.ErrnoError(44);if(!g.isDir(c.node.mode))throw new g.ErrnoError(54);var u=g.nodePermissions(c.node,"x");if(u)throw new g.ErrnoError(u);g.currentPath=c.path},createDefaultDirectories:()=>{g.mkdir("/tmp"),g.mkdir("/home"),g.mkdir("/home/web_user")},createDefaultDevices:()=>{g.mkdir("/dev"),g.registerDevice(g.makedev(1,3),{read:()=>0,write:(p,E,y,R,b)=>R}),g.mkdev("/dev/null",g.makedev(1,3)),Rr.register(g.makedev(5,0),Rr.default_tty_ops),Rr.register(g.makedev(6,0),Rr.default_tty1_ops),g.mkdev("/dev/tty",g.makedev(5,0)),g.mkdev("/dev/tty1",g.makedev(6,0));var n=new Uint8Array(1024),c=0,u=()=>(c===0&&(c=Yi(n).byteLength),n[--c]);g.createDevice("/dev","random",u),g.createDevice("/dev","urandom",u),g.mkdir("/dev/shm"),g.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{g.mkdir("/proc");var n=g.mkdir("/proc/self");g.mkdir("/proc/self/fd"),g.mount({mount:()=>{var c=g.createNode(n,"fd",16895,73);return c.node_ops={lookup:(u,p)=>{var E=+p,y=g.getStreamChecked(E),R={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>y.path}};return R.parent=R,R}},c}},{},"/proc/self/fd")},createStandardStreams:()=>{e.stdin?g.createDevice("/dev","stdin",e.stdin):g.symlink("/dev/tty","/dev/stdin"),e.stdout?g.createDevice("/dev","stdout",null,e.stdout):g.symlink("/dev/tty","/dev/stdout"),e.stderr?g.createDevice("/dev","stderr",null,e.stderr):g.symlink("/dev/tty1","/dev/stderr");var n=g.open("/dev/stdin",0),c=g.open("/dev/stdout",1),u=g.open("/dev/stderr",1)},ensureErrnoError:()=>{g.ErrnoError||(g.ErrnoError=function(c,u){this.name="ErrnoError",this.node=u,this.setErrno=function(p){this.errno=p},this.setErrno(c),this.message="FS error"},g.ErrnoError.prototype=new Error,g.ErrnoError.prototype.constructor=g.ErrnoError,[44].forEach(n=>{g.genericErrors[n]=new g.ErrnoError(n),g.genericErrors[n].stack="<generic error, no stack>"}))},staticInit:()=>{g.ensureErrnoError(),g.nameTable=new Array(4096),g.mount(he,{},"/"),g.createDefaultDirectories(),g.createDefaultDevices(),g.createSpecialDirectories(),g.filesystems={MEMFS:he}},init:(n,c,u)=>{g.init.initialized=!0,g.ensureErrnoError(),e.stdin=n||e.stdin,e.stdout=c||e.stdout,e.stderr=u||e.stderr,g.createStandardStreams()},quit:()=>{g.init.initialized=!1;for(var n=0;n<g.streams.length;n++){var c=g.streams[n];c&&g.close(c)}},findObject:(n,c)=>{var u=g.analyzePath(n,c);return u.exists?u.object:null},analyzePath:(n,c)=>{try{var u=g.lookupPath(n,{follow:!c});n=u.path}catch(E){}var p={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var u=g.lookupPath(n,{parent:!0});p.parentExists=!0,p.parentPath=u.path,p.parentObject=u.node,p.name=Ce.basename(n),u=g.lookupPath(n,{follow:!c}),p.exists=!0,p.path=u.path,p.object=u.node,p.name=u.node.name,p.isRoot=u.path==="/"}catch(E){p.error=E.errno}return p},createPath:(n,c,u,p)=>{n=typeof n=="string"?n:g.getPath(n);for(var E=c.split("/").reverse();E.length;){var y=E.pop();if(y){var R=Ce.join2(n,y);try{g.mkdir(R)}catch(b){}n=R}}return R},createFile:(n,c,u,p,E)=>{var y=Ce.join2(typeof n=="string"?n:g.getPath(n),c),R=zo(p,E);return g.create(y,R)},createDataFile:(n,c,u,p,E,y)=>{var R=c;n&&(n=typeof n=="string"?n:g.getPath(n),R=c?Ce.join2(n,c):n);var b=zo(p,E),k=g.create(R,b);if(u){if(typeof u=="string"){for(var M=new Array(u.length),Z=0,ie=u.length;Z<ie;++Z)M[Z]=u.charCodeAt(Z);u=M}g.chmod(k,b|146);var te=g.open(k,577);g.write(te,u,0,u.length,0,y),g.close(te),g.chmod(k,b)}return k},createDevice:(n,c,u,p)=>{var E=Ce.join2(typeof n=="string"?n:g.getPath(n),c),y=zo(!!u,!!p);g.createDevice.major||(g.createDevice.major=64);var R=g.makedev(g.createDevice.major++,0);return g.registerDevice(R,{open:b=>{b.seekable=!1},close:b=>{p&&p.buffer&&p.buffer.length&&p(10)},read:(b,k,M,Z,ie)=>{for(var te=0,Q=0;Q<Z;Q++){var me;try{me=u()}catch(He){throw new g.ErrnoError(29)}if(me===void 0&&te===0)throw new g.ErrnoError(6);if(me==null)break;te++,k[M+Q]=me}return te&&(b.node.timestamp=Date.now()),te},write:(b,k,M,Z,ie)=>{for(var te=0;te<Z;te++)try{p(k[M+te])}catch(Q){throw new g.ErrnoError(29)}return Z&&(b.node.timestamp=Date.now()),te}}),g.mkdev(E,y,R)},forceLoadFile:n=>{if(n.isDevice||n.isFolder||n.link||n.contents)return!0;if(typeof XMLHttpRequest!="undefined")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(j)try{n.contents=Jt(j(n.url),!0),n.usedBytes=n.contents.length}catch(c){throw new g.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(n,c,u,p,E)=>{function y(){this.lengthKnown=!1,this.chunks=[]}if(y.prototype.get=function(Q){if(!(Q>this.length-1||Q<0)){var me=Q%this.chunkSize,He=Q/this.chunkSize|0;return this.getter(He)[me]}},y.prototype.setDataGetter=function(Q){this.getter=Q},y.prototype.cacheLength=function(){var Q=new XMLHttpRequest;if(Q.open("HEAD",u,!1),Q.send(null),!(Q.status>=200&&Q.status<300||Q.status===304))throw new Error("Couldn't load "+u+". Status: "+Q.status);var me=Number(Q.getResponseHeader("Content-length")),He,Je=(He=Q.getResponseHeader("Accept-Ranges"))&&He==="bytes",ct=(He=Q.getResponseHeader("Content-Encoding"))&&He==="gzip",kt=1024*1024;Je||(kt=me);var Ze=(Xt,Zr)=>{if(Xt>Zr)throw new Error("invalid range ("+Xt+", "+Zr+") or no bytes requested!");if(Zr>me-1)throw new Error("only "+me+" bytes available! programmer error!");var dt=new XMLHttpRequest;if(dt.open("GET",u,!1),me!==kt&&dt.setRequestHeader("Range","bytes="+Xt+"-"+Zr),dt.responseType="arraybuffer",dt.overrideMimeType&&dt.overrideMimeType("text/plain; charset=x-user-defined"),dt.send(null),!(dt.status>=200&&dt.status<300||dt.status===304))throw new Error("Couldn't load "+u+". Status: "+dt.status);return dt.response!==void 0?new Uint8Array(dt.response||[]):Jt(dt.responseText||"",!0)},so=this;so.setDataGetter(Xt=>{var Zr=Xt*kt,dt=(Xt+1)*kt-1;if(dt=Math.min(dt,me-1),typeof so.chunks[Xt]=="undefined"&&(so.chunks[Xt]=Ze(Zr,dt)),typeof so.chunks[Xt]=="undefined")throw new Error("doXHR failed!");return so.chunks[Xt]}),(ct||!me)&&(kt=me=1,me=this.getter(0).length,kt=me,Pe("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=me,this._chunkSize=kt,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!T)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var R=new y;Object.defineProperties(R,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var b={isDevice:!1,contents:R}}else var b={isDevice:!1,url:u};var k=g.createFile(n,c,b,p,E);b.contents?k.contents=b.contents:b.url&&(k.contents=null,k.url=b.url),Object.defineProperties(k,{usedBytes:{get:function(){return this.contents.length}}});var M={},Z=Object.keys(k.stream_ops);Z.forEach(te=>{var Q=k.stream_ops[te];M[te]=function(){return g.forceLoadFile(k),Q.apply(null,arguments)}});function ie(te,Q,me,He,Je){var ct=te.node.contents;if(Je>=ct.length)return 0;var kt=Math.min(ct.length-Je,He);if(ct.slice)for(var Ze=0;Ze<kt;Ze++)Q[me+Ze]=ct[Je+Ze];else for(var Ze=0;Ze<kt;Ze++)Q[me+Ze]=ct.get(Je+Ze);return kt}return M.read=(te,Q,me,He,Je)=>(g.forceLoadFile(k),ie(te,Q,me,He,Je)),M.mmap=(te,Q,me,He,Je)=>{g.forceLoadFile(k);var ct=Ja(Q);if(!ct)throw new g.ErrnoError(48);return ie(te,Le,ct,Q,me),{ptr:ct,allocated:!0}},k.stream_ops=M,k}},Ya=(n,c)=>n?qr(rt,n,c):"",Qe={DEFAULT_POLLMASK:5,calculateAt:function(n,c,u){if(Ce.isAbs(c))return c;var p;if(n===-100)p=g.cwd();else{var E=Qe.getStreamFromFD(n);p=E.path}if(c.length==0){if(!u)throw new g.ErrnoError(44);return p}return Ce.join2(p,c)},doStat:function(n,c,u){try{var p=n(c)}catch(b){if(b&&b.node&&Ce.normalize(c)!==Ce.normalize(g.getPath(b.node)))return-54;throw b}x[u>>2]=p.dev,x[u+4>>2]=p.mode,xe[u+8>>2]=p.nlink,x[u+12>>2]=p.uid,x[u+16>>2]=p.gid,x[u+20>>2]=p.rdev,Ge=[p.size>>>0,(de=p.size,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+24>>2]=Ge[0],x[u+28>>2]=Ge[1],x[u+32>>2]=4096,x[u+36>>2]=p.blocks;var E=p.atime.getTime(),y=p.mtime.getTime(),R=p.ctime.getTime();return Ge=[Math.floor(E/1e3)>>>0,(de=Math.floor(E/1e3),+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+40>>2]=Ge[0],x[u+44>>2]=Ge[1],xe[u+48>>2]=E%1e3*1e3,Ge=[Math.floor(y/1e3)>>>0,(de=Math.floor(y/1e3),+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+56>>2]=Ge[0],x[u+60>>2]=Ge[1],xe[u+64>>2]=y%1e3*1e3,Ge=[Math.floor(R/1e3)>>>0,(de=Math.floor(R/1e3),+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+72>>2]=Ge[0],x[u+76>>2]=Ge[1],xe[u+80>>2]=R%1e3*1e3,Ge=[p.ino>>>0,(de=p.ino,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+88>>2]=Ge[0],x[u+92>>2]=Ge[1],0},doMsync:function(n,c,u,p,E){if(!g.isFile(c.node.mode))throw new g.ErrnoError(43);if(p&2)return 0;var y=rt.slice(n,n+u);g.msync(c,y,E,u,p)},varargs:void 0,get(){Qe.varargs+=4;var n=x[Qe.varargs-4>>2];return n},getStr(n){var c=Ya(n);return c},getStreamFromFD:function(n){var c=g.getStreamChecked(n);return c}};function cn(n,c,u){Qe.varargs=u;try{var p=Qe.getStreamFromFD(n);switch(c){case 0:{var E=Qe.get();if(E<0)return-28;var y;return y=g.createStream(p,E),y.fd}case 1:case 2:return 0;case 3:return p.flags;case 4:{var E=Qe.get();return p.flags|=E,0}case 5:{var E=Qe.get(),R=0;return jt[E+R>>1]=2,0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:return Mt(28),-1;default:return-28}}catch(b){if(typeof g=="undefined"||b.name!=="ErrnoError")throw b;return-b.errno}}function Zi(n,c,u,p){Qe.varargs=p;try{c=Qe.getStr(c),c=Qe.calculateAt(n,c);var E=p?Qe.get():0;return g.open(c,u,E).fd}catch(y){if(typeof g=="undefined"||y.name!=="ErrnoError")throw y;return-y.errno}}function Qu(n,c,u,p,E){}function dn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${n}`)}}function Ki(){for(var n=new Array(256),c=0;c<256;++c)n[c]=String.fromCharCode(c);Za=n}var Za=void 0;function Ot(n){for(var c="",u=n;rt[u];)c+=Za[rt[u++]];return c}var ar={},zr={},vr={},vi=void 0;function Me(n){throw new vi(n)}var Ka=void 0;function Xo(n){throw new Ka(n)}function eo(n,c,u){n.forEach(function(b){vr[b]=c});function p(b){var k=u(b);k.length!==n.length&&Xo("Mismatched type converter count");for(var M=0;M<n.length;++M)cr(n[M],k[M])}var E=new Array(c.length),y=[],R=0;c.forEach((b,k)=>{zr.hasOwnProperty(b)?E[k]=zr[b]:(y.push(b),ar.hasOwnProperty(b)||(ar[b]=[]),ar[b].push(()=>{E[k]=zr[b],++R,R===y.length&&p(E)}))}),y.length===0&&p(E)}function Cr(n,c,u={}){var p=c.name;if(n||Me(`type "${p}" must have a positive integer typeid pointer`),zr.hasOwnProperty(n)){if(u.ignoreDuplicateRegistrations)return;Me(`Cannot register type '${p}' twice`)}if(zr[n]=c,delete vr[n],ar.hasOwnProperty(n)){var E=ar[n];delete ar[n],E.forEach(y=>y())}}function cr(n,c,u={}){if(!("argPackAdvance"in c))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Cr(n,c,u)}function Yu(n,c,u,p,E){var y=dn(u);c=Ot(c),cr(n,{name:c,fromWireType:function(R){return!!R},toWireType:function(R,b){return b?p:E},argPackAdvance:8,readValueFromPointer:function(R){var b;if(u===1)b=Le;else if(u===2)b=jt;else if(u===4)b=x;else throw new TypeError("Unknown boolean type size: "+c);return this.fromWireType(b[R>>y])},destructorFunction:null})}function Qo(n){if(!(this instanceof ur)||!(n instanceof ur))return!1;for(var c=this.$$.ptrType.registeredClass,u=this.$$.ptr,p=n.$$.ptrType.registeredClass,E=n.$$.ptr;c.baseClass;)u=c.upcast(u),c=c.baseClass;for(;p.baseClass;)E=p.upcast(E),p=p.baseClass;return c===p&&u===E}function un(n){return{count:n.count,deleteScheduled:n.deleteScheduled,preservePointerOnDelete:n.preservePointerOnDelete,ptr:n.ptr,ptrType:n.ptrType,smartPtr:n.smartPtr,smartPtrType:n.smartPtrType}}function Yo(n){function c(u){return u.$$.ptrType.registeredClass.name}Me(c(n)+" instance already deleted")}var ln=!1;function ec(n){}function mn(n){n.smartPtr?n.smartPtrType.rawDestructor(n.smartPtr):n.ptrType.registeredClass.rawDestructor(n.ptr)}function tc(n){n.count.value-=1;var c=n.count.value===0;c&&mn(n)}function rc(n,c,u){if(c===u)return n;if(u.baseClass===void 0)return null;var p=rc(n,c,u.baseClass);return p===null?null:u.downcast(p)}var ic={};function Zo(){return Object.keys(io).length}function Zu(){var n=[];for(var c in io)io.hasOwnProperty(c)&&n.push(io[c]);return n}var to=[];function pn(){for(;to.length;){var n=to.pop();n.$$.deleteScheduled=!1,n.delete()}}var ro=void 0;function dr(n){ro=n,to.length&&ro&&ro(pn)}function Ku(){e.getInheritedInstanceCount=Zo,e.getLiveInheritedInstances=Zu,e.flushPendingDeletes=pn,e.setDelayFunction=dr}var io={};function Ko(n,c){for(c===void 0&&Me("ptr should not be undefined");n.baseClass;)c=n.upcast(c),n=n.baseClass;return c}function oc(n,c){return c=Ko(n,c),io[c]}function es(n,c){(!c.ptrType||!c.ptr)&&Xo("makeClassHandle requires ptr and ptrType");var u=!!c.smartPtrType,p=!!c.smartPtr;return u!==p&&Xo("Both smartPtrType and smartPtr must be specified"),c.count={value:1},tr(Object.create(n,{$$:{value:c}}))}function el(n){var c=this.getPointee(n);if(!c)return this.destructor(n),null;var u=oc(this.registeredClass,c);if(u!==void 0){if(u.$$.count.value===0)return u.$$.ptr=c,u.$$.smartPtr=n,u.clone();var p=u.clone();return this.destructor(n),p}function E(){return this.isSmartPointer?es(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:c,smartPtrType:this,smartPtr:n}):es(this.registeredClass.instancePrototype,{ptrType:this,ptr:n})}var y=this.registeredClass.getActualType(c),R=ic[y];if(!R)return E.call(this);var b;this.isConst?b=R.constPointerType:b=R.pointerType;var k=rc(c,this.registeredClass,b.registeredClass);return k===null?E.call(this):this.isSmartPointer?es(b.registeredClass.instancePrototype,{ptrType:b,ptr:k,smartPtrType:this,smartPtr:n}):es(b.registeredClass.instancePrototype,{ptrType:b,ptr:k})}var tr=function(n){return typeof FinalizationRegistry=="undefined"?(tr=c=>c,n):(ln=new FinalizationRegistry(c=>{tc(c.$$)}),tr=c=>{var u=c.$$,p=!!u.smartPtr;if(p){var E={$$:u};ln.register(c,E,c)}return c},ec=c=>ln.unregister(c),tr(n))};function tl(){if(this.$$.ptr||Yo(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var n=tr(Object.create(Object.getPrototypeOf(this),{$$:{value:un(this.$$)}}));return n.$$.count.value+=1,n.$$.deleteScheduled=!1,n}function sc(){this.$$.ptr||Yo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Me("Object already scheduled for deletion"),ec(this),tc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function nc(){return!this.$$.ptr}function hn(){return this.$$.ptr||Yo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Me("Object already scheduled for deletion"),to.push(this),to.length===1&&ro&&ro(pn),this.$$.deleteScheduled=!0,this}function rl(){ur.prototype.isAliasOf=Qo,ur.prototype.clone=tl,ur.prototype.delete=sc,ur.prototype.isDeleted=nc,ur.prototype.deleteLater=hn}function ur(){}var il=48,ac=57;function oo(n){if(n===void 0)return"_unknown";n=n.replace(/[^a-zA-Z0-9_]/g,"$");var c=n.charCodeAt(0);return c>=il&&c<=ac?`_${n}`:n}function fn(n,c){return n=oo(n),{[n]:function(){return c.apply(this,arguments)}}[n]}function cc(n,c,u){if(n[c].overloadTable===void 0){var p=n[c];n[c]=function(){return n[c].overloadTable.hasOwnProperty(arguments.length)||Me(`Function '${u}' called with an invalid number of arguments (${arguments.length}) - expects one of (${n[c].overloadTable})!`),n[c].overloadTable[arguments.length].apply(this,arguments)},n[c].overloadTable=[],n[c].overloadTable[p.argCount]=p}}function ol(n,c,u){e.hasOwnProperty(n)?((u===void 0||e[n].overloadTable!==void 0&&e[n].overloadTable[u]!==void 0)&&Me(`Cannot register public name '${n}' twice`),cc(e,n,n),e.hasOwnProperty(u)&&Me(`Cannot register multiple overloads of a function with the same number of arguments (${u})!`),e[n].overloadTable[u]=c):(e[n]=c,u!==void 0&&(e[n].numArguments=u))}function dc(n,c,u,p,E,y,R,b){this.name=n,this.constructor=c,this.instancePrototype=u,this.rawDestructor=p,this.baseClass=E,this.getActualType=y,this.upcast=R,this.downcast=b,this.pureVirtualFunctions=[]}function Pt(n,c,u){for(;c!==u;)c.upcast||Me(`Expected null or instance of ${u.name}, got an instance of ${c.name}`),n=c.upcast(n),c=c.baseClass;return n}function uc(n,c){if(c===null)return this.isReference&&Me(`null is not a valid ${this.name}`),0;c.$$||Me(`Cannot pass "${Tn(c)}" as a ${this.name}`),c.$$.ptr||Me(`Cannot pass deleted object as a pointer of type ${this.name}`);var u=c.$$.ptrType.registeredClass,p=Pt(c.$$.ptr,u,this.registeredClass);return p}function sl(n,c){var u;if(c===null)return this.isReference&&Me(`null is not a valid ${this.name}`),this.isSmartPointer?(u=this.rawConstructor(),n!==null&&n.push(this.rawDestructor,u),u):0;c.$$||Me(`Cannot pass "${Tn(c)}" as a ${this.name}`),c.$$.ptr||Me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&c.$$.ptrType.isConst&&Me(`Cannot convert argument of type ${c.$$.smartPtrType?c.$$.smartPtrType.name:c.$$.ptrType.name} to parameter type ${this.name}`);var p=c.$$.ptrType.registeredClass;if(u=Pt(c.$$.ptr,p,this.registeredClass),this.isSmartPointer)switch(c.$$.smartPtr===void 0&&Me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:c.$$.smartPtrType===this?u=c.$$.smartPtr:Me(`Cannot convert argument of type ${c.$$.smartPtrType?c.$$.smartPtrType.name:c.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:u=c.$$.smartPtr;break;case 2:if(c.$$.smartPtrType===this)u=c.$$.smartPtr;else{var E=c.clone();u=this.rawShare(u,rs.toHandle(function(){E.delete()})),n!==null&&n.push(this.rawDestructor,u)}break;default:Me("Unsupporting sharing policy")}return u}function nl(n,c){if(c===null)return this.isReference&&Me(`null is not a valid ${this.name}`),0;c.$$||Me(`Cannot pass "${Tn(c)}" as a ${this.name}`),c.$$.ptr||Me(`Cannot pass deleted object as a pointer of type ${this.name}`),c.$$.ptrType.isConst&&Me(`Cannot convert argument of type ${c.$$.ptrType.name} to parameter type ${this.name}`);var u=c.$$.ptrType.registeredClass,p=Pt(c.$$.ptr,u,this.registeredClass);return p}function Xr(n){return this.fromWireType(x[n>>2])}function al(n){return this.rawGetPointee&&(n=this.rawGetPointee(n)),n}function _n(n){this.rawDestructor&&this.rawDestructor(n)}function cl(n){n!==null&&n.delete()}function dl(){lr.prototype.getPointee=al,lr.prototype.destructor=_n,lr.prototype.argPackAdvance=8,lr.prototype.readValueFromPointer=Xr,lr.prototype.deleteObject=cl,lr.prototype.fromWireType=el}function lr(n,c,u,p,E,y,R,b,k,M,Z){this.name=n,this.registeredClass=c,this.isReference=u,this.isConst=p,this.isSmartPointer=E,this.pointeeType=y,this.sharingPolicy=R,this.rawGetPointee=b,this.rawConstructor=k,this.rawShare=M,this.rawDestructor=Z,!E&&c.baseClass===void 0?p?(this.toWireType=uc,this.destructorFunction=null):(this.toWireType=nl,this.destructorFunction=null):this.toWireType=sl}function ul(n,c,u){e.hasOwnProperty(n)||Xo("Replacing nonexistant public symbol"),e[n].overloadTable!==void 0&&u!==void 0?e[n].overloadTable[u]=c:(e[n]=c,e[n].argCount=u)}var ll=(n,c,u)=>{var p=e["dynCall_"+n];return u&&u.length?p.apply(null,[c].concat(u)):p.call(null,c)},ts=[],lc=n=>{var c=ts[n];return c||(n>=ts.length&&(ts.length=n+1),ts[n]=c=Zs.get(n)),c},ml=(n,c,u)=>{if(n.includes("j"))return ll(n,c,u);var p=lc(c).apply(null,u);return p},mc=(n,c)=>{var u=[];return function(){return u.length=0,Object.assign(u,arguments),ml(n,c,u)}};function Qr(n,c){n=Ot(n);function u(){return n.includes("j")?mc(n,c):lc(c)}var p=u();return typeof p!="function"&&Me(`unknown function pointer with signature ${n}: ${c}`),p}function pc(n,c){var u=fn(c,function(p){this.name=c,this.message=p;var E=new Error(p).stack;E!==void 0&&(this.stack=this.toString()+`
50
- `+E.replace(/^Error(:[^\n]*)?\n/,""))});return u.prototype=Object.create(n.prototype),u.prototype.constructor=u,u.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},u}var hc=void 0;function gn(n){var c=Dh(n),u=Ot(c);return Yr(c),u}function En(n,c){var u=[],p={};function E(y){if(!p[y]&&!zr[y]){if(vr[y]){vr[y].forEach(E);return}u.push(y),p[y]=!0}}throw c.forEach(E),new hc(`${n}: `+u.map(gn).join([", "]))}function pl(n,c,u,p,E,y,R,b,k,M,Z,ie,te){Z=Ot(Z),y=Qr(E,y),b&&(b=Qr(R,b)),M&&(M=Qr(k,M)),te=Qr(ie,te);var Q=oo(Z);ol(Q,function(){En(`Cannot construct ${Z} due to unbound types`,[p])}),eo([n,c,u],p?[p]:[],function(me){me=me[0];var He,Je;p?(He=me.registeredClass,Je=He.instancePrototype):Je=ur.prototype;var ct=fn(Q,function(){if(Object.getPrototypeOf(this)!==kt)throw new vi("Use 'new' to construct "+Z);if(Ze.constructor_body===void 0)throw new vi(Z+" has no accessible constructor");var dt=Ze.constructor_body[arguments.length];if(dt===void 0)throw new vi(`Tried to invoke ctor of ${Z} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Ze.constructor_body).toString()}) parameters instead!`);return dt.apply(this,arguments)}),kt=Object.create(Je,{constructor:{value:ct}});ct.prototype=kt;var Ze=new dc(Z,ct,kt,te,He,y,b,M);Ze.baseClass&&(Ze.baseClass.__derivedClasses===void 0&&(Ze.baseClass.__derivedClasses=[]),Ze.baseClass.__derivedClasses.push(Ze));var so=new lr(Z,Ze,!0,!1,!1),Xt=new lr(Z+"*",Ze,!1,!1,!1),Zr=new lr(Z+" const*",Ze,!1,!0,!1);return ic[n]={pointerType:Xt,constPointerType:Zr},ul(Q,ct),[so,Xt,Zr]})}function fc(n,c){for(var u=[],p=0;p<n;p++)u.push(xe[c+p*4>>2]);return u}function hl(n){for(;n.length;){var c=n.pop(),u=n.pop();u(c)}}function _c(n,c){if(!(n instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof n} which is not a function`);var u=fn(n.name||"unknownFunctionName",function(){});u.prototype=n.prototype;var p=new u,E=n.apply(p,c);return E instanceof Object?E:p}function gc(n,c,u,p,E,y){var R=c.length;R<2&&Me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var b=c[1]!==null&&u!==null,k=!1,M=1;M<c.length;++M)if(c[M]!==null&&c[M].destructorFunction===void 0){k=!0;break}for(var Z=c[0].name!=="void",ie="",te="",M=0;M<R-2;++M)ie+=(M!==0?", ":"")+"arg"+M,te+=(M!==0?", ":"")+"arg"+M+"Wired";var Q=`
51
- return function ${oo(n)}(${ie}) {
49
+ `)),!n)return null;vi=Jt(n,!0)}return vi.shift()},Rr={ttys:[],init:function(){},shutdown:function(){},register:function(n,c){Rr.ttys[n]={input:[],output:[],ops:c},g.registerDevice(n,Rr.stream_ops)},stream_ops:{open:function(n){var c=Rr.ttys[n.node.rdev];if(!c)throw new g.ErrnoError(43);n.tty=c,n.seekable=!1},close:function(n){n.tty.ops.fsync(n.tty)},fsync:function(n){n.tty.ops.fsync(n.tty)},read:function(n,c,u,p,E){if(!n.tty||!n.tty.ops.get_char)throw new g.ErrnoError(60);for(var y=0,R=0;R<p;R++){var b;try{b=n.tty.ops.get_char(n.tty)}catch(k){throw new g.ErrnoError(29)}if(b===void 0&&y===0)throw new g.ErrnoError(6);if(b==null)break;y++,c[u+R]=b}return y&&(n.node.timestamp=Date.now()),y},write:function(n,c,u,p,E){if(!n.tty||!n.tty.ops.put_char)throw new g.ErrnoError(60);try{for(var y=0;y<p;y++)n.tty.ops.put_char(n.tty,c[u+y])}catch(R){throw new g.ErrnoError(29)}return p&&(n.node.timestamp=Date.now()),y}},default_tty_ops:{get_char:function(n){return zu()},put_char:function(n,c){c===null||c===10?(xe(qr(n.output,0)),n.output=[]):c!=0&&n.output.push(c)},fsync:function(n){n.output&&n.output.length>0&&(xe(qr(n.output,0)),n.output=[])},ioctl_tcgets:function(n){return{c_iflag:25856,c_oflag:5,c_cflag:191,c_lflag:35387,c_cc:[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}},ioctl_tcsets:function(n,c,u){return 0},ioctl_tiocgwinsz:function(n){return[24,80]}},default_tty1_ops:{put_char:function(n,c){c===null||c===10?(Xe(qr(n.output,0)),n.output=[]):c!=0&&n.output.push(c)},fsync:function(n){n.output&&n.output.length>0&&(Xe(qr(n.output,0)),n.output=[])}}},Ja=n=>{br()},he={ops_table:null,mount(n){return he.createNode(null,"/",16895,0)},createNode(n,c,u,p){if(g.isBlkdev(u)||g.isFIFO(u))throw new g.ErrnoError(63);he.ops_table||(he.ops_table={dir:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr,lookup:he.node_ops.lookup,mknod:he.node_ops.mknod,rename:he.node_ops.rename,unlink:he.node_ops.unlink,rmdir:he.node_ops.rmdir,readdir:he.node_ops.readdir,symlink:he.node_ops.symlink},stream:{llseek:he.stream_ops.llseek}},file:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr},stream:{llseek:he.stream_ops.llseek,read:he.stream_ops.read,write:he.stream_ops.write,allocate:he.stream_ops.allocate,mmap:he.stream_ops.mmap,msync:he.stream_ops.msync}},link:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr,readlink:he.node_ops.readlink},stream:{}},chrdev:{node:{getattr:he.node_ops.getattr,setattr:he.node_ops.setattr},stream:g.chrdev_stream_ops}});var E=g.createNode(n,c,u,p);return g.isDir(E.mode)?(E.node_ops=he.ops_table.dir.node,E.stream_ops=he.ops_table.dir.stream,E.contents={}):g.isFile(E.mode)?(E.node_ops=he.ops_table.file.node,E.stream_ops=he.ops_table.file.stream,E.usedBytes=0,E.contents=null):g.isLink(E.mode)?(E.node_ops=he.ops_table.link.node,E.stream_ops=he.ops_table.link.stream):g.isChrdev(E.mode)&&(E.node_ops=he.ops_table.chrdev.node,E.stream_ops=he.ops_table.chrdev.stream),E.timestamp=Date.now(),n&&(n.contents[c]=E,n.timestamp=E.timestamp),E},getFileDataAsTypedArray(n){return n.contents?n.contents.subarray?n.contents.subarray(0,n.usedBytes):new Uint8Array(n.contents):new Uint8Array(0)},expandFileStorage(n,c){var u=n.contents?n.contents.length:0;if(!(u>=c)){var p=1024*1024;c=Math.max(c,u*(u<p?2:1.125)>>>0),u!=0&&(c=Math.max(c,256));var E=n.contents;n.contents=new Uint8Array(c),n.usedBytes>0&&n.contents.set(E.subarray(0,n.usedBytes),0)}},resizeFileStorage(n,c){if(n.usedBytes!=c)if(c==0)n.contents=null,n.usedBytes=0;else{var u=n.contents;n.contents=new Uint8Array(c),u&&n.contents.set(u.subarray(0,Math.min(c,n.usedBytes))),n.usedBytes=c}},node_ops:{getattr(n){var c={};return c.dev=g.isChrdev(n.mode)?n.id:1,c.ino=n.id,c.mode=n.mode,c.nlink=1,c.uid=0,c.gid=0,c.rdev=n.rdev,g.isDir(n.mode)?c.size=4096:g.isFile(n.mode)?c.size=n.usedBytes:g.isLink(n.mode)?c.size=n.link.length:c.size=0,c.atime=new Date(n.timestamp),c.mtime=new Date(n.timestamp),c.ctime=new Date(n.timestamp),c.blksize=4096,c.blocks=Math.ceil(c.size/c.blksize),c},setattr(n,c){c.mode!==void 0&&(n.mode=c.mode),c.timestamp!==void 0&&(n.timestamp=c.timestamp),c.size!==void 0&&he.resizeFileStorage(n,c.size)},lookup(n,c){throw g.genericErrors[44]},mknod(n,c,u,p){return he.createNode(n,c,u,p)},rename(n,c,u){if(g.isDir(n.mode)){var p;try{p=g.lookupNode(c,u)}catch(y){}if(p)for(var E in p.contents)throw new g.ErrnoError(55)}delete n.parent.contents[n.name],n.parent.timestamp=Date.now(),n.name=u,c.contents[u]=n,c.timestamp=n.parent.timestamp,n.parent=c},unlink(n,c){delete n.contents[c],n.timestamp=Date.now()},rmdir(n,c){var u=g.lookupNode(n,c);for(var p in u.contents)throw new g.ErrnoError(55);delete n.contents[c],n.timestamp=Date.now()},readdir(n){var c=[".",".."];for(var u in n.contents)n.contents.hasOwnProperty(u)&&c.push(u);return c},symlink(n,c,u){var p=he.createNode(n,c,41471,0);return p.link=u,p},readlink(n){if(!g.isLink(n.mode))throw new g.ErrnoError(28);return n.link}},stream_ops:{read(n,c,u,p,E){var y=n.node.contents;if(E>=n.node.usedBytes)return 0;var R=Math.min(n.node.usedBytes-E,p);if(R>8&&y.subarray)c.set(y.subarray(E,E+R),u);else for(var b=0;b<R;b++)c[u+b]=y[E+b];return R},write(n,c,u,p,E,y){if(!p)return 0;var R=n.node;if(R.timestamp=Date.now(),c.subarray&&(!R.contents||R.contents.subarray)){if(y)return R.contents=c.subarray(u,u+p),R.usedBytes=p,p;if(R.usedBytes===0&&E===0)return R.contents=c.slice(u,u+p),R.usedBytes=p,p;if(E+p<=R.usedBytes)return R.contents.set(c.subarray(u,u+p),E),p}if(he.expandFileStorage(R,E+p),R.contents.subarray&&c.subarray)R.contents.set(c.subarray(u,u+p),E);else for(var b=0;b<p;b++)R.contents[E+b]=c[u+b];return R.usedBytes=Math.max(R.usedBytes,E+p),p},llseek(n,c,u){var p=c;if(u===1?p+=n.position:u===2&&g.isFile(n.node.mode)&&(p+=n.node.usedBytes),p<0)throw new g.ErrnoError(28);return p},allocate(n,c,u){he.expandFileStorage(n.node,c+u),n.node.usedBytes=Math.max(n.node.usedBytes,c+u)},mmap(n,c,u,p,E){if(!g.isFile(n.node.mode))throw new g.ErrnoError(43);var y,R,b=n.node.contents;if(!(E&2)&&b.buffer===Le.buffer)R=!1,y=b.byteOffset;else{if((u>0||u+c<b.length)&&(b.subarray?b=b.subarray(u,u+c):b=Array.prototype.slice.call(b,u,u+c)),R=!0,y=Ja(c),!y)throw new g.ErrnoError(48);Le.set(b,y)}return{ptr:y,allocated:R}},msync(n,c,u,p,E){return he.stream_ops.write(n,c,0,p,u,!1),0}}},an=(n,c,u,p)=>{var E=p?"":`al ${n}`;H(n,y=>{Hr(y,`Loading data file "${n}" failed (no arrayBuffer).`),c(new Uint8Array(y)),E&&Jo(E)},y=>{if(u)u();else throw`Loading data file "${n}" failed.`}),E&&Ai(E)},za=e.preloadPlugins||[];function Xu(n,c,u,p){typeof Browser!="undefined"&&Browser.init();var E=!1;return za.forEach(function(y){E||y.canHandle(c)&&(y.handle(n,c,u,p),E=!0)}),E}function Xa(n,c,u,p,E,y,R,b,k,M){var K=c?yt.resolve(De.join2(n,c)):n,ie=`cp ${K}`;function re(Q){function me(He){M&&M(),b||g.createDataFile(n,c,He,p,E,k),y&&y(),Jo(ie)}Xu(Q,K,me,()=>{R&&R(),Jo(ie)})||me(Q)}Ai(ie),typeof u=="string"?an(u,Q=>re(Q),R):re(u)}function Qa(n){var c={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},u=c[n];if(typeof u=="undefined")throw new Error(`Unknown file open mode: ${n}`);return u}function Xo(n,c){var u=0;return n&&(u|=365),c&&(u|=146),u}var g={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(n,c={})=>{if(n=yt.resolve(n),!n)return{path:"",node:null};var u={follow_mount:!0,recurse_count:0};if(c=Object.assign(u,c),c.recurse_count>8)throw new g.ErrnoError(32);for(var p=n.split("/").filter(ie=>!!ie),E=g.root,y="/",R=0;R<p.length;R++){var b=R===p.length-1;if(b&&c.parent)break;if(E=g.lookupNode(E,p[R]),y=De.join2(y,p[R]),g.isMountpoint(E)&&(!b||b&&c.follow_mount)&&(E=E.mounted.root),!b||c.follow)for(var k=0;g.isLink(E.mode);){var M=g.readlink(y);y=yt.resolve(De.dirname(y),M);var K=g.lookupPath(y,{recurse_count:c.recurse_count+1});if(E=K.node,k++>40)throw new g.ErrnoError(32)}}return{path:y,node:E}},getPath:n=>{for(var c;;){if(g.isRoot(n)){var u=n.mount.mountpoint;return c?u[u.length-1]!=="/"?`${u}/${c}`:u+c:u}c=c?`${n.name}/${c}`:n.name,n=n.parent}},hashName:(n,c)=>{for(var u=0,p=0;p<c.length;p++)u=(u<<5)-u+c.charCodeAt(p)|0;return(n+u>>>0)%g.nameTable.length},hashAddNode:n=>{var c=g.hashName(n.parent.id,n.name);n.name_next=g.nameTable[c],g.nameTable[c]=n},hashRemoveNode:n=>{var c=g.hashName(n.parent.id,n.name);if(g.nameTable[c]===n)g.nameTable[c]=n.name_next;else for(var u=g.nameTable[c];u;){if(u.name_next===n){u.name_next=n.name_next;break}u=u.name_next}},lookupNode:(n,c)=>{var u=g.mayLookup(n);if(u)throw new g.ErrnoError(u,n);for(var p=g.hashName(n.id,c),E=g.nameTable[p];E;E=E.name_next){var y=E.name;if(E.parent.id===n.id&&y===c)return E}return g.lookup(n,c)},createNode:(n,c,u,p)=>{var E=new g.FSNode(n,c,u,p);return g.hashAddNode(E),E},destroyNode:n=>{g.hashRemoveNode(n)},isRoot:n=>n===n.parent,isMountpoint:n=>!!n.mounted,isFile:n=>(n&61440)===32768,isDir:n=>(n&61440)===16384,isLink:n=>(n&61440)===40960,isChrdev:n=>(n&61440)===8192,isBlkdev:n=>(n&61440)===24576,isFIFO:n=>(n&61440)===4096,isSocket:n=>(n&49152)===49152,flagsToPermissionString:n=>{var c=["r","w","rw"][n&3];return n&512&&(c+="w"),c},nodePermissions:(n,c)=>g.ignorePermissions?0:c.includes("r")&&!(n.mode&292)||c.includes("w")&&!(n.mode&146)||c.includes("x")&&!(n.mode&73)?2:0,mayLookup:n=>{var c=g.nodePermissions(n,"x");return c||(n.node_ops.lookup?0:2)},mayCreate:(n,c)=>{try{var u=g.lookupNode(n,c);return 20}catch(p){}return g.nodePermissions(n,"wx")},mayDelete:(n,c,u)=>{var p;try{p=g.lookupNode(n,c)}catch(y){return y.errno}var E=g.nodePermissions(n,"wx");if(E)return E;if(u){if(!g.isDir(p.mode))return 54;if(g.isRoot(p)||g.getPath(p)===g.cwd())return 10}else if(g.isDir(p.mode))return 31;return 0},mayOpen:(n,c)=>n?g.isLink(n.mode)?32:g.isDir(n.mode)&&(g.flagsToPermissionString(c)!=="r"||c&512)?31:g.nodePermissions(n,g.flagsToPermissionString(c)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var n=0;n<=g.MAX_OPEN_FDS;n++)if(!g.streams[n])return n;throw new g.ErrnoError(33)},getStreamChecked:n=>{var c=g.getStream(n);if(!c)throw new g.ErrnoError(8);return c},getStream:n=>g.streams[n],createStream:(n,c=-1)=>(g.FSStream||(g.FSStream=function(){this.shared={}},g.FSStream.prototype={},Object.defineProperties(g.FSStream.prototype,{object:{get(){return this.node},set(u){this.node=u}},isRead:{get(){return(this.flags&2097155)!==1}},isWrite:{get(){return(this.flags&2097155)!==0}},isAppend:{get(){return this.flags&1024}},flags:{get(){return this.shared.flags},set(u){this.shared.flags=u}},position:{get(){return this.shared.position},set(u){this.shared.position=u}}})),n=Object.assign(new g.FSStream,n),c==-1&&(c=g.nextfd()),n.fd=c,g.streams[c]=n,n),closeStream:n=>{g.streams[n]=null},chrdev_stream_ops:{open:n=>{var c=g.getDevice(n.node.rdev);n.stream_ops=c.stream_ops,n.stream_ops.open&&n.stream_ops.open(n)},llseek:()=>{throw new g.ErrnoError(70)}},major:n=>n>>8,minor:n=>n&255,makedev:(n,c)=>n<<8|c,registerDevice:(n,c)=>{g.devices[n]={stream_ops:c}},getDevice:n=>g.devices[n],getMounts:n=>{for(var c=[],u=[n];u.length;){var p=u.pop();c.push(p),u.push.apply(u,p.mounts)}return c},syncfs:(n,c)=>{typeof n=="function"&&(c=n,n=!1),g.syncFSRequests++,g.syncFSRequests>1&&Xe(`warning: ${g.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var u=g.getMounts(g.root.mount),p=0;function E(R){return g.syncFSRequests--,c(R)}function y(R){if(R)return y.errored?void 0:(y.errored=!0,E(R));++p>=u.length&&E(null)}u.forEach(R=>{if(!R.type.syncfs)return y(null);R.type.syncfs(R,n,y)})},mount:(n,c,u)=>{var p=u==="/",E=!u,y;if(p&&g.root)throw new g.ErrnoError(10);if(!p&&!E){var R=g.lookupPath(u,{follow_mount:!1});if(u=R.path,y=R.node,g.isMountpoint(y))throw new g.ErrnoError(10);if(!g.isDir(y.mode))throw new g.ErrnoError(54)}var b={type:n,opts:c,mountpoint:u,mounts:[]},k=n.mount(b);return k.mount=b,b.root=k,p?g.root=k:y&&(y.mounted=b,y.mount&&y.mount.mounts.push(b)),k},unmount:n=>{var c=g.lookupPath(n,{follow_mount:!1});if(!g.isMountpoint(c.node))throw new g.ErrnoError(28);var u=c.node,p=u.mounted,E=g.getMounts(p);Object.keys(g.nameTable).forEach(R=>{for(var b=g.nameTable[R];b;){var k=b.name_next;E.includes(b.mount)&&g.destroyNode(b),b=k}}),u.mounted=null;var y=u.mount.mounts.indexOf(p);u.mount.mounts.splice(y,1)},lookup:(n,c)=>n.node_ops.lookup(n,c),mknod:(n,c,u)=>{var p=g.lookupPath(n,{parent:!0}),E=p.node,y=De.basename(n);if(!y||y==="."||y==="..")throw new g.ErrnoError(28);var R=g.mayCreate(E,y);if(R)throw new g.ErrnoError(R);if(!E.node_ops.mknod)throw new g.ErrnoError(63);return E.node_ops.mknod(E,y,c,u)},create:(n,c)=>(c=c!==void 0?c:438,c&=4095,c|=32768,g.mknod(n,c,0)),mkdir:(n,c)=>(c=c!==void 0?c:511,c&=1023,c|=16384,g.mknod(n,c,0)),mkdirTree:(n,c)=>{for(var u=n.split("/"),p="",E=0;E<u.length;++E)if(u[E]){p+="/"+u[E];try{g.mkdir(p,c)}catch(y){if(y.errno!=20)throw y}}},mkdev:(n,c,u)=>(typeof u=="undefined"&&(u=c,c=438),c|=8192,g.mknod(n,c,u)),symlink:(n,c)=>{if(!yt.resolve(n))throw new g.ErrnoError(44);var u=g.lookupPath(c,{parent:!0}),p=u.node;if(!p)throw new g.ErrnoError(44);var E=De.basename(c),y=g.mayCreate(p,E);if(y)throw new g.ErrnoError(y);if(!p.node_ops.symlink)throw new g.ErrnoError(63);return p.node_ops.symlink(p,E,n)},rename:(n,c)=>{var u=De.dirname(n),p=De.dirname(c),E=De.basename(n),y=De.basename(c),R,b,k;if(R=g.lookupPath(n,{parent:!0}),b=R.node,R=g.lookupPath(c,{parent:!0}),k=R.node,!b||!k)throw new g.ErrnoError(44);if(b.mount!==k.mount)throw new g.ErrnoError(75);var M=g.lookupNode(b,E),K=yt.relative(n,p);if(K.charAt(0)!==".")throw new g.ErrnoError(28);if(K=yt.relative(c,u),K.charAt(0)!==".")throw new g.ErrnoError(55);var ie;try{ie=g.lookupNode(k,y)}catch(me){}if(M!==ie){var re=g.isDir(M.mode),Q=g.mayDelete(b,E,re);if(Q)throw new g.ErrnoError(Q);if(Q=ie?g.mayDelete(k,y,re):g.mayCreate(k,y),Q)throw new g.ErrnoError(Q);if(!b.node_ops.rename)throw new g.ErrnoError(63);if(g.isMountpoint(M)||ie&&g.isMountpoint(ie))throw new g.ErrnoError(10);if(k!==b&&(Q=g.nodePermissions(b,"w"),Q))throw new g.ErrnoError(Q);g.hashRemoveNode(M);try{b.node_ops.rename(M,k,y)}catch(me){throw me}finally{g.hashAddNode(M)}}},rmdir:n=>{var c=g.lookupPath(n,{parent:!0}),u=c.node,p=De.basename(n),E=g.lookupNode(u,p),y=g.mayDelete(u,p,!0);if(y)throw new g.ErrnoError(y);if(!u.node_ops.rmdir)throw new g.ErrnoError(63);if(g.isMountpoint(E))throw new g.ErrnoError(10);u.node_ops.rmdir(u,p),g.destroyNode(E)},readdir:n=>{var c=g.lookupPath(n,{follow:!0}),u=c.node;if(!u.node_ops.readdir)throw new g.ErrnoError(54);return u.node_ops.readdir(u)},unlink:n=>{var c=g.lookupPath(n,{parent:!0}),u=c.node;if(!u)throw new g.ErrnoError(44);var p=De.basename(n),E=g.lookupNode(u,p),y=g.mayDelete(u,p,!1);if(y)throw new g.ErrnoError(y);if(!u.node_ops.unlink)throw new g.ErrnoError(63);if(g.isMountpoint(E))throw new g.ErrnoError(10);u.node_ops.unlink(u,p),g.destroyNode(E)},readlink:n=>{var c=g.lookupPath(n),u=c.node;if(!u)throw new g.ErrnoError(44);if(!u.node_ops.readlink)throw new g.ErrnoError(28);return yt.resolve(g.getPath(u.parent),u.node_ops.readlink(u))},stat:(n,c)=>{var u=g.lookupPath(n,{follow:!c}),p=u.node;if(!p)throw new g.ErrnoError(44);if(!p.node_ops.getattr)throw new g.ErrnoError(63);return p.node_ops.getattr(p)},lstat:n=>g.stat(n,!0),chmod:(n,c,u)=>{var p;if(typeof n=="string"){var E=g.lookupPath(n,{follow:!u});p=E.node}else p=n;if(!p.node_ops.setattr)throw new g.ErrnoError(63);p.node_ops.setattr(p,{mode:c&4095|p.mode&-4096,timestamp:Date.now()})},lchmod:(n,c)=>{g.chmod(n,c,!0)},fchmod:(n,c)=>{var u=g.getStreamChecked(n);g.chmod(u.node,c)},chown:(n,c,u,p)=>{var E;if(typeof n=="string"){var y=g.lookupPath(n,{follow:!p});E=y.node}else E=n;if(!E.node_ops.setattr)throw new g.ErrnoError(63);E.node_ops.setattr(E,{timestamp:Date.now()})},lchown:(n,c,u)=>{g.chown(n,c,u,!0)},fchown:(n,c,u)=>{var p=g.getStreamChecked(n);g.chown(p.node,c,u)},truncate:(n,c)=>{if(c<0)throw new g.ErrnoError(28);var u;if(typeof n=="string"){var p=g.lookupPath(n,{follow:!0});u=p.node}else u=n;if(!u.node_ops.setattr)throw new g.ErrnoError(63);if(g.isDir(u.mode))throw new g.ErrnoError(31);if(!g.isFile(u.mode))throw new g.ErrnoError(28);var E=g.nodePermissions(u,"w");if(E)throw new g.ErrnoError(E);u.node_ops.setattr(u,{size:c,timestamp:Date.now()})},ftruncate:(n,c)=>{var u=g.getStreamChecked(n);if((u.flags&2097155)===0)throw new g.ErrnoError(28);g.truncate(u.node,c)},utime:(n,c,u)=>{var p=g.lookupPath(n,{follow:!0}),E=p.node;E.node_ops.setattr(E,{timestamp:Math.max(c,u)})},open:(n,c,u)=>{if(n==="")throw new g.ErrnoError(44);c=typeof c=="string"?Qa(c):c,u=typeof u=="undefined"?438:u,c&64?u=u&4095|32768:u=0;var p;if(typeof n=="object")p=n;else{n=De.normalize(n);try{var E=g.lookupPath(n,{follow:!(c&131072)});p=E.node}catch(k){}}var y=!1;if(c&64)if(p){if(c&128)throw new g.ErrnoError(20)}else p=g.mknod(n,u,0),y=!0;if(!p)throw new g.ErrnoError(44);if(g.isChrdev(p.mode)&&(c&=-513),c&65536&&!g.isDir(p.mode))throw new g.ErrnoError(54);if(!y){var R=g.mayOpen(p,c);if(R)throw new g.ErrnoError(R)}c&512&&!y&&g.truncate(p,0),c&=-131713;var b=g.createStream({node:p,path:g.getPath(p),flags:c,seekable:!0,position:0,stream_ops:p.stream_ops,ungotten:[],error:!1});return b.stream_ops.open&&b.stream_ops.open(b),e.logReadFiles&&!(c&1)&&(g.readFiles||(g.readFiles={}),n in g.readFiles||(g.readFiles[n]=1)),b},close:n=>{if(g.isClosed(n))throw new g.ErrnoError(8);n.getdents&&(n.getdents=null);try{n.stream_ops.close&&n.stream_ops.close(n)}catch(c){throw c}finally{g.closeStream(n.fd)}n.fd=null},isClosed:n=>n.fd===null,llseek:(n,c,u)=>{if(g.isClosed(n))throw new g.ErrnoError(8);if(!n.seekable||!n.stream_ops.llseek)throw new g.ErrnoError(70);if(u!=0&&u!=1&&u!=2)throw new g.ErrnoError(28);return n.position=n.stream_ops.llseek(n,c,u),n.ungotten=[],n.position},read:(n,c,u,p,E)=>{if(p<0||E<0)throw new g.ErrnoError(28);if(g.isClosed(n))throw new g.ErrnoError(8);if((n.flags&2097155)===1)throw new g.ErrnoError(8);if(g.isDir(n.node.mode))throw new g.ErrnoError(31);if(!n.stream_ops.read)throw new g.ErrnoError(28);var y=typeof E!="undefined";if(!y)E=n.position;else if(!n.seekable)throw new g.ErrnoError(70);var R=n.stream_ops.read(n,c,u,p,E);return y||(n.position+=R),R},write:(n,c,u,p,E,y)=>{if(p<0||E<0)throw new g.ErrnoError(28);if(g.isClosed(n))throw new g.ErrnoError(8);if((n.flags&2097155)===0)throw new g.ErrnoError(8);if(g.isDir(n.node.mode))throw new g.ErrnoError(31);if(!n.stream_ops.write)throw new g.ErrnoError(28);n.seekable&&n.flags&1024&&g.llseek(n,0,2);var R=typeof E!="undefined";if(!R)E=n.position;else if(!n.seekable)throw new g.ErrnoError(70);var b=n.stream_ops.write(n,c,u,p,E,y);return R||(n.position+=b),b},allocate:(n,c,u)=>{if(g.isClosed(n))throw new g.ErrnoError(8);if(c<0||u<=0)throw new g.ErrnoError(28);if((n.flags&2097155)===0)throw new g.ErrnoError(8);if(!g.isFile(n.node.mode)&&!g.isDir(n.node.mode))throw new g.ErrnoError(43);if(!n.stream_ops.allocate)throw new g.ErrnoError(138);n.stream_ops.allocate(n,c,u)},mmap:(n,c,u,p,E)=>{if((p&2)!==0&&(E&2)===0&&(n.flags&2097155)!==2)throw new g.ErrnoError(2);if((n.flags&2097155)===1)throw new g.ErrnoError(2);if(!n.stream_ops.mmap)throw new g.ErrnoError(43);return n.stream_ops.mmap(n,c,u,p,E)},msync:(n,c,u,p,E)=>n.stream_ops.msync?n.stream_ops.msync(n,c,u,p,E):0,munmap:n=>0,ioctl:(n,c,u)=>{if(!n.stream_ops.ioctl)throw new g.ErrnoError(59);return n.stream_ops.ioctl(n,c,u)},readFile:(n,c={})=>{if(c.flags=c.flags||0,c.encoding=c.encoding||"binary",c.encoding!=="utf8"&&c.encoding!=="binary")throw new Error(`Invalid encoding type "${c.encoding}"`);var u,p=g.open(n,c.flags),E=g.stat(n),y=E.size,R=new Uint8Array(y);return g.read(p,R,0,y,0),c.encoding==="utf8"?u=qr(R,0):c.encoding==="binary"&&(u=R),g.close(p),u},writeFile:(n,c,u={})=>{u.flags=u.flags||577;var p=g.open(n,u.flags,u.mode);if(typeof c=="string"){var E=new Uint8Array(Jr(c)+1),y=nn(c,E,0,E.length);g.write(p,E,0,y,void 0,u.canOwn)}else if(ArrayBuffer.isView(c))g.write(p,c,0,c.byteLength,void 0,u.canOwn);else throw new Error("Unsupported data type");g.close(p)},cwd:()=>g.currentPath,chdir:n=>{var c=g.lookupPath(n,{follow:!0});if(c.node===null)throw new g.ErrnoError(44);if(!g.isDir(c.node.mode))throw new g.ErrnoError(54);var u=g.nodePermissions(c.node,"x");if(u)throw new g.ErrnoError(u);g.currentPath=c.path},createDefaultDirectories:()=>{g.mkdir("/tmp"),g.mkdir("/home"),g.mkdir("/home/web_user")},createDefaultDevices:()=>{g.mkdir("/dev"),g.registerDevice(g.makedev(1,3),{read:()=>0,write:(p,E,y,R,b)=>R}),g.mkdev("/dev/null",g.makedev(1,3)),Rr.register(g.makedev(5,0),Rr.default_tty_ops),Rr.register(g.makedev(6,0),Rr.default_tty1_ops),g.mkdev("/dev/tty",g.makedev(5,0)),g.mkdev("/dev/tty1",g.makedev(6,0));var n=new Uint8Array(1024),c=0,u=()=>(c===0&&(c=Ki(n).byteLength),n[--c]);g.createDevice("/dev","random",u),g.createDevice("/dev","urandom",u),g.mkdir("/dev/shm"),g.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{g.mkdir("/proc");var n=g.mkdir("/proc/self");g.mkdir("/proc/self/fd"),g.mount({mount:()=>{var c=g.createNode(n,"fd",16895,73);return c.node_ops={lookup:(u,p)=>{var E=+p,y=g.getStreamChecked(E),R={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>y.path}};return R.parent=R,R}},c}},{},"/proc/self/fd")},createStandardStreams:()=>{e.stdin?g.createDevice("/dev","stdin",e.stdin):g.symlink("/dev/tty","/dev/stdin"),e.stdout?g.createDevice("/dev","stdout",null,e.stdout):g.symlink("/dev/tty","/dev/stdout"),e.stderr?g.createDevice("/dev","stderr",null,e.stderr):g.symlink("/dev/tty1","/dev/stderr");var n=g.open("/dev/stdin",0),c=g.open("/dev/stdout",1),u=g.open("/dev/stderr",1)},ensureErrnoError:()=>{g.ErrnoError||(g.ErrnoError=function(c,u){this.name="ErrnoError",this.node=u,this.setErrno=function(p){this.errno=p},this.setErrno(c),this.message="FS error"},g.ErrnoError.prototype=new Error,g.ErrnoError.prototype.constructor=g.ErrnoError,[44].forEach(n=>{g.genericErrors[n]=new g.ErrnoError(n),g.genericErrors[n].stack="<generic error, no stack>"}))},staticInit:()=>{g.ensureErrnoError(),g.nameTable=new Array(4096),g.mount(he,{},"/"),g.createDefaultDirectories(),g.createDefaultDevices(),g.createSpecialDirectories(),g.filesystems={MEMFS:he}},init:(n,c,u)=>{g.init.initialized=!0,g.ensureErrnoError(),e.stdin=n||e.stdin,e.stdout=c||e.stdout,e.stderr=u||e.stderr,g.createStandardStreams()},quit:()=>{g.init.initialized=!1;for(var n=0;n<g.streams.length;n++){var c=g.streams[n];c&&g.close(c)}},findObject:(n,c)=>{var u=g.analyzePath(n,c);return u.exists?u.object:null},analyzePath:(n,c)=>{try{var u=g.lookupPath(n,{follow:!c});n=u.path}catch(E){}var p={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var u=g.lookupPath(n,{parent:!0});p.parentExists=!0,p.parentPath=u.path,p.parentObject=u.node,p.name=De.basename(n),u=g.lookupPath(n,{follow:!c}),p.exists=!0,p.path=u.path,p.object=u.node,p.name=u.node.name,p.isRoot=u.path==="/"}catch(E){p.error=E.errno}return p},createPath:(n,c,u,p)=>{n=typeof n=="string"?n:g.getPath(n);for(var E=c.split("/").reverse();E.length;){var y=E.pop();if(y){var R=De.join2(n,y);try{g.mkdir(R)}catch(b){}n=R}}return R},createFile:(n,c,u,p,E)=>{var y=De.join2(typeof n=="string"?n:g.getPath(n),c),R=Xo(p,E);return g.create(y,R)},createDataFile:(n,c,u,p,E,y)=>{var R=c;n&&(n=typeof n=="string"?n:g.getPath(n),R=c?De.join2(n,c):n);var b=Xo(p,E),k=g.create(R,b);if(u){if(typeof u=="string"){for(var M=new Array(u.length),K=0,ie=u.length;K<ie;++K)M[K]=u.charCodeAt(K);u=M}g.chmod(k,b|146);var re=g.open(k,577);g.write(re,u,0,u.length,0,y),g.close(re),g.chmod(k,b)}return k},createDevice:(n,c,u,p)=>{var E=De.join2(typeof n=="string"?n:g.getPath(n),c),y=Xo(!!u,!!p);g.createDevice.major||(g.createDevice.major=64);var R=g.makedev(g.createDevice.major++,0);return g.registerDevice(R,{open:b=>{b.seekable=!1},close:b=>{p&&p.buffer&&p.buffer.length&&p(10)},read:(b,k,M,K,ie)=>{for(var re=0,Q=0;Q<K;Q++){var me;try{me=u()}catch(He){throw new g.ErrnoError(29)}if(me===void 0&&re===0)throw new g.ErrnoError(6);if(me==null)break;re++,k[M+Q]=me}return re&&(b.node.timestamp=Date.now()),re},write:(b,k,M,K,ie)=>{for(var re=0;re<K;re++)try{p(k[M+re])}catch(Q){throw new g.ErrnoError(29)}return K&&(b.node.timestamp=Date.now()),re}}),g.mkdev(E,y,R)},forceLoadFile:n=>{if(n.isDevice||n.isFolder||n.link||n.contents)return!0;if(typeof XMLHttpRequest!="undefined")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(j)try{n.contents=Jt(j(n.url),!0),n.usedBytes=n.contents.length}catch(c){throw new g.ErrnoError(29)}else throw new Error("Cannot load without read() or XMLHttpRequest.")},createLazyFile:(n,c,u,p,E)=>{function y(){this.lengthKnown=!1,this.chunks=[]}if(y.prototype.get=function(Q){if(!(Q>this.length-1||Q<0)){var me=Q%this.chunkSize,He=Q/this.chunkSize|0;return this.getter(He)[me]}},y.prototype.setDataGetter=function(Q){this.getter=Q},y.prototype.cacheLength=function(){var Q=new XMLHttpRequest;if(Q.open("HEAD",u,!1),Q.send(null),!(Q.status>=200&&Q.status<300||Q.status===304))throw new Error("Couldn't load "+u+". Status: "+Q.status);var me=Number(Q.getResponseHeader("Content-length")),He,Je=(He=Q.getResponseHeader("Accept-Ranges"))&&He==="bytes",ct=(He=Q.getResponseHeader("Content-Encoding"))&&He==="gzip",kt=1024*1024;Je||(kt=me);var Ze=(Xt,Zr)=>{if(Xt>Zr)throw new Error("invalid range ("+Xt+", "+Zr+") or no bytes requested!");if(Zr>me-1)throw new Error("only "+me+" bytes available! programmer error!");var dt=new XMLHttpRequest;if(dt.open("GET",u,!1),me!==kt&&dt.setRequestHeader("Range","bytes="+Xt+"-"+Zr),dt.responseType="arraybuffer",dt.overrideMimeType&&dt.overrideMimeType("text/plain; charset=x-user-defined"),dt.send(null),!(dt.status>=200&&dt.status<300||dt.status===304))throw new Error("Couldn't load "+u+". Status: "+dt.status);return dt.response!==void 0?new Uint8Array(dt.response||[]):Jt(dt.responseText||"",!0)},ao=this;ao.setDataGetter(Xt=>{var Zr=Xt*kt,dt=(Xt+1)*kt-1;if(dt=Math.min(dt,me-1),typeof ao.chunks[Xt]=="undefined"&&(ao.chunks[Xt]=Ze(Zr,dt)),typeof ao.chunks[Xt]=="undefined")throw new Error("doXHR failed!");return ao.chunks[Xt]}),(ct||!me)&&(kt=me=1,me=this.getter(0).length,kt=me,xe("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=me,this._chunkSize=kt,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!T)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var R=new y;Object.defineProperties(R,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var b={isDevice:!1,contents:R}}else var b={isDevice:!1,url:u};var k=g.createFile(n,c,b,p,E);b.contents?k.contents=b.contents:b.url&&(k.contents=null,k.url=b.url),Object.defineProperties(k,{usedBytes:{get:function(){return this.contents.length}}});var M={},K=Object.keys(k.stream_ops);K.forEach(re=>{var Q=k.stream_ops[re];M[re]=function(){return g.forceLoadFile(k),Q.apply(null,arguments)}});function ie(re,Q,me,He,Je){var ct=re.node.contents;if(Je>=ct.length)return 0;var kt=Math.min(ct.length-Je,He);if(ct.slice)for(var Ze=0;Ze<kt;Ze++)Q[me+Ze]=ct[Je+Ze];else for(var Ze=0;Ze<kt;Ze++)Q[me+Ze]=ct.get(Je+Ze);return kt}return M.read=(re,Q,me,He,Je)=>(g.forceLoadFile(k),ie(re,Q,me,He,Je)),M.mmap=(re,Q,me,He,Je)=>{g.forceLoadFile(k);var ct=Ja(Q);if(!ct)throw new g.ErrnoError(48);return ie(re,Le,ct,Q,me),{ptr:ct,allocated:!0}},k.stream_ops=M,k}},Ya=(n,c)=>n?qr(rt,n,c):"",Qe={DEFAULT_POLLMASK:5,calculateAt:function(n,c,u){if(De.isAbs(c))return c;var p;if(n===-100)p=g.cwd();else{var E=Qe.getStreamFromFD(n);p=E.path}if(c.length==0){if(!u)throw new g.ErrnoError(44);return p}return De.join2(p,c)},doStat:function(n,c,u){try{var p=n(c)}catch(b){if(b&&b.node&&De.normalize(c)!==De.normalize(g.getPath(b.node)))return-54;throw b}x[u>>2]=p.dev,x[u+4>>2]=p.mode,ke[u+8>>2]=p.nlink,x[u+12>>2]=p.uid,x[u+16>>2]=p.gid,x[u+20>>2]=p.rdev,We=[p.size>>>0,(de=p.size,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+24>>2]=We[0],x[u+28>>2]=We[1],x[u+32>>2]=4096,x[u+36>>2]=p.blocks;var E=p.atime.getTime(),y=p.mtime.getTime(),R=p.ctime.getTime();return We=[Math.floor(E/1e3)>>>0,(de=Math.floor(E/1e3),+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+40>>2]=We[0],x[u+44>>2]=We[1],ke[u+48>>2]=E%1e3*1e3,We=[Math.floor(y/1e3)>>>0,(de=Math.floor(y/1e3),+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+56>>2]=We[0],x[u+60>>2]=We[1],ke[u+64>>2]=y%1e3*1e3,We=[Math.floor(R/1e3)>>>0,(de=Math.floor(R/1e3),+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+72>>2]=We[0],x[u+76>>2]=We[1],ke[u+80>>2]=R%1e3*1e3,We=[p.ino>>>0,(de=p.ino,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[u+88>>2]=We[0],x[u+92>>2]=We[1],0},doMsync:function(n,c,u,p,E){if(!g.isFile(c.node.mode))throw new g.ErrnoError(43);if(p&2)return 0;var y=rt.slice(n,n+u);g.msync(c,y,E,u,p)},varargs:void 0,get(){Qe.varargs+=4;var n=x[Qe.varargs-4>>2];return n},getStr(n){var c=Ya(n);return c},getStreamFromFD:function(n){var c=g.getStreamChecked(n);return c}};function cn(n,c,u){Qe.varargs=u;try{var p=Qe.getStreamFromFD(n);switch(c){case 0:{var E=Qe.get();if(E<0)return-28;var y;return y=g.createStream(p,E),y.fd}case 1:case 2:return 0;case 3:return p.flags;case 4:{var E=Qe.get();return p.flags|=E,0}case 5:{var E=Qe.get(),R=0;return jt[E+R>>1]=2,0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:return Mt(28),-1;default:return-28}}catch(b){if(typeof g=="undefined"||b.name!=="ErrnoError")throw b;return-b.errno}}function eo(n,c,u,p){Qe.varargs=p;try{c=Qe.getStr(c),c=Qe.calculateAt(n,c);var E=p?Qe.get():0;return g.open(c,u,E).fd}catch(y){if(typeof g=="undefined"||y.name!=="ErrnoError")throw y;return-y.errno}}function Qu(n,c,u,p,E){}function dn(n){switch(n){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${n}`)}}function to(){for(var n=new Array(256),c=0;c<256;++c)n[c]=String.fromCharCode(c);Za=n}var Za=void 0;function Ot(n){for(var c="",u=n;rt[u];)c+=Za[rt[u++]];return c}var ar={},zr={},vr={},Ci=void 0;function Me(n){throw new Ci(n)}var Ka=void 0;function Qo(n){throw new Ka(n)}function ro(n,c,u){n.forEach(function(b){vr[b]=c});function p(b){var k=u(b);k.length!==n.length&&Qo("Mismatched type converter count");for(var M=0;M<n.length;++M)cr(n[M],k[M])}var E=new Array(c.length),y=[],R=0;c.forEach((b,k)=>{zr.hasOwnProperty(b)?E[k]=zr[b]:(y.push(b),ar.hasOwnProperty(b)||(ar[b]=[]),ar[b].push(()=>{E[k]=zr[b],++R,R===y.length&&p(E)}))}),y.length===0&&p(E)}function Cr(n,c,u={}){var p=c.name;if(n||Me(`type "${p}" must have a positive integer typeid pointer`),zr.hasOwnProperty(n)){if(u.ignoreDuplicateRegistrations)return;Me(`Cannot register type '${p}' twice`)}if(zr[n]=c,delete vr[n],ar.hasOwnProperty(n)){var E=ar[n];delete ar[n],E.forEach(y=>y())}}function cr(n,c,u={}){if(!("argPackAdvance"in c))throw new TypeError("registerType registeredInstance requires argPackAdvance");return Cr(n,c,u)}function Yu(n,c,u,p,E){var y=dn(u);c=Ot(c),cr(n,{name:c,fromWireType:function(R){return!!R},toWireType:function(R,b){return b?p:E},argPackAdvance:8,readValueFromPointer:function(R){var b;if(u===1)b=Le;else if(u===2)b=jt;else if(u===4)b=x;else throw new TypeError("Unknown boolean type size: "+c);return this.fromWireType(b[R>>y])},destructorFunction:null})}function Yo(n){if(!(this instanceof ur)||!(n instanceof ur))return!1;for(var c=this.$$.ptrType.registeredClass,u=this.$$.ptr,p=n.$$.ptrType.registeredClass,E=n.$$.ptr;c.baseClass;)u=c.upcast(u),c=c.baseClass;for(;p.baseClass;)E=p.upcast(E),p=p.baseClass;return c===p&&u===E}function un(n){return{count:n.count,deleteScheduled:n.deleteScheduled,preservePointerOnDelete:n.preservePointerOnDelete,ptr:n.ptr,ptrType:n.ptrType,smartPtr:n.smartPtr,smartPtrType:n.smartPtrType}}function Zo(n){function c(u){return u.$$.ptrType.registeredClass.name}Me(c(n)+" instance already deleted")}var ln=!1;function ec(n){}function mn(n){n.smartPtr?n.smartPtrType.rawDestructor(n.smartPtr):n.ptrType.registeredClass.rawDestructor(n.ptr)}function tc(n){n.count.value-=1;var c=n.count.value===0;c&&mn(n)}function rc(n,c,u){if(c===u)return n;if(u.baseClass===void 0)return null;var p=rc(n,c,u.baseClass);return p===null?null:u.downcast(p)}var ic={};function Ko(){return Object.keys(so).length}function Zu(){var n=[];for(var c in so)so.hasOwnProperty(c)&&n.push(so[c]);return n}var io=[];function pn(){for(;io.length;){var n=io.pop();n.$$.deleteScheduled=!1,n.delete()}}var oo=void 0;function dr(n){oo=n,io.length&&oo&&oo(pn)}function Ku(){e.getInheritedInstanceCount=Ko,e.getLiveInheritedInstances=Zu,e.flushPendingDeletes=pn,e.setDelayFunction=dr}var so={};function es(n,c){for(c===void 0&&Me("ptr should not be undefined");n.baseClass;)c=n.upcast(c),n=n.baseClass;return c}function oc(n,c){return c=es(n,c),so[c]}function ts(n,c){(!c.ptrType||!c.ptr)&&Qo("makeClassHandle requires ptr and ptrType");var u=!!c.smartPtrType,p=!!c.smartPtr;return u!==p&&Qo("Both smartPtrType and smartPtr must be specified"),c.count={value:1},tr(Object.create(n,{$$:{value:c}}))}function el(n){var c=this.getPointee(n);if(!c)return this.destructor(n),null;var u=oc(this.registeredClass,c);if(u!==void 0){if(u.$$.count.value===0)return u.$$.ptr=c,u.$$.smartPtr=n,u.clone();var p=u.clone();return this.destructor(n),p}function E(){return this.isSmartPointer?ts(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:c,smartPtrType:this,smartPtr:n}):ts(this.registeredClass.instancePrototype,{ptrType:this,ptr:n})}var y=this.registeredClass.getActualType(c),R=ic[y];if(!R)return E.call(this);var b;this.isConst?b=R.constPointerType:b=R.pointerType;var k=rc(c,this.registeredClass,b.registeredClass);return k===null?E.call(this):this.isSmartPointer?ts(b.registeredClass.instancePrototype,{ptrType:b,ptr:k,smartPtrType:this,smartPtr:n}):ts(b.registeredClass.instancePrototype,{ptrType:b,ptr:k})}var tr=function(n){return typeof FinalizationRegistry=="undefined"?(tr=c=>c,n):(ln=new FinalizationRegistry(c=>{tc(c.$$)}),tr=c=>{var u=c.$$,p=!!u.smartPtr;if(p){var E={$$:u};ln.register(c,E,c)}return c},ec=c=>ln.unregister(c),tr(n))};function tl(){if(this.$$.ptr||Zo(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var n=tr(Object.create(Object.getPrototypeOf(this),{$$:{value:un(this.$$)}}));return n.$$.count.value+=1,n.$$.deleteScheduled=!1,n}function sc(){this.$$.ptr||Zo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Me("Object already scheduled for deletion"),ec(this),tc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function nc(){return!this.$$.ptr}function hn(){return this.$$.ptr||Zo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Me("Object already scheduled for deletion"),io.push(this),io.length===1&&oo&&oo(pn),this.$$.deleteScheduled=!0,this}function rl(){ur.prototype.isAliasOf=Yo,ur.prototype.clone=tl,ur.prototype.delete=sc,ur.prototype.isDeleted=nc,ur.prototype.deleteLater=hn}function ur(){}var il=48,ac=57;function no(n){if(n===void 0)return"_unknown";n=n.replace(/[^a-zA-Z0-9_]/g,"$");var c=n.charCodeAt(0);return c>=il&&c<=ac?`_${n}`:n}function fn(n,c){return n=no(n),{[n]:function(){return c.apply(this,arguments)}}[n]}function cc(n,c,u){if(n[c].overloadTable===void 0){var p=n[c];n[c]=function(){return n[c].overloadTable.hasOwnProperty(arguments.length)||Me(`Function '${u}' called with an invalid number of arguments (${arguments.length}) - expects one of (${n[c].overloadTable})!`),n[c].overloadTable[arguments.length].apply(this,arguments)},n[c].overloadTable=[],n[c].overloadTable[p.argCount]=p}}function ol(n,c,u){e.hasOwnProperty(n)?((u===void 0||e[n].overloadTable!==void 0&&e[n].overloadTable[u]!==void 0)&&Me(`Cannot register public name '${n}' twice`),cc(e,n,n),e.hasOwnProperty(u)&&Me(`Cannot register multiple overloads of a function with the same number of arguments (${u})!`),e[n].overloadTable[u]=c):(e[n]=c,u!==void 0&&(e[n].numArguments=u))}function dc(n,c,u,p,E,y,R,b){this.name=n,this.constructor=c,this.instancePrototype=u,this.rawDestructor=p,this.baseClass=E,this.getActualType=y,this.upcast=R,this.downcast=b,this.pureVirtualFunctions=[]}function Pt(n,c,u){for(;c!==u;)c.upcast||Me(`Expected null or instance of ${u.name}, got an instance of ${c.name}`),n=c.upcast(n),c=c.baseClass;return n}function uc(n,c){if(c===null)return this.isReference&&Me(`null is not a valid ${this.name}`),0;c.$$||Me(`Cannot pass "${Tn(c)}" as a ${this.name}`),c.$$.ptr||Me(`Cannot pass deleted object as a pointer of type ${this.name}`);var u=c.$$.ptrType.registeredClass,p=Pt(c.$$.ptr,u,this.registeredClass);return p}function sl(n,c){var u;if(c===null)return this.isReference&&Me(`null is not a valid ${this.name}`),this.isSmartPointer?(u=this.rawConstructor(),n!==null&&n.push(this.rawDestructor,u),u):0;c.$$||Me(`Cannot pass "${Tn(c)}" as a ${this.name}`),c.$$.ptr||Me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&c.$$.ptrType.isConst&&Me(`Cannot convert argument of type ${c.$$.smartPtrType?c.$$.smartPtrType.name:c.$$.ptrType.name} to parameter type ${this.name}`);var p=c.$$.ptrType.registeredClass;if(u=Pt(c.$$.ptr,p,this.registeredClass),this.isSmartPointer)switch(c.$$.smartPtr===void 0&&Me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:c.$$.smartPtrType===this?u=c.$$.smartPtr:Me(`Cannot convert argument of type ${c.$$.smartPtrType?c.$$.smartPtrType.name:c.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:u=c.$$.smartPtr;break;case 2:if(c.$$.smartPtrType===this)u=c.$$.smartPtr;else{var E=c.clone();u=this.rawShare(u,is.toHandle(function(){E.delete()})),n!==null&&n.push(this.rawDestructor,u)}break;default:Me("Unsupporting sharing policy")}return u}function nl(n,c){if(c===null)return this.isReference&&Me(`null is not a valid ${this.name}`),0;c.$$||Me(`Cannot pass "${Tn(c)}" as a ${this.name}`),c.$$.ptr||Me(`Cannot pass deleted object as a pointer of type ${this.name}`),c.$$.ptrType.isConst&&Me(`Cannot convert argument of type ${c.$$.ptrType.name} to parameter type ${this.name}`);var u=c.$$.ptrType.registeredClass,p=Pt(c.$$.ptr,u,this.registeredClass);return p}function Xr(n){return this.fromWireType(x[n>>2])}function al(n){return this.rawGetPointee&&(n=this.rawGetPointee(n)),n}function _n(n){this.rawDestructor&&this.rawDestructor(n)}function cl(n){n!==null&&n.delete()}function dl(){lr.prototype.getPointee=al,lr.prototype.destructor=_n,lr.prototype.argPackAdvance=8,lr.prototype.readValueFromPointer=Xr,lr.prototype.deleteObject=cl,lr.prototype.fromWireType=el}function lr(n,c,u,p,E,y,R,b,k,M,K){this.name=n,this.registeredClass=c,this.isReference=u,this.isConst=p,this.isSmartPointer=E,this.pointeeType=y,this.sharingPolicy=R,this.rawGetPointee=b,this.rawConstructor=k,this.rawShare=M,this.rawDestructor=K,!E&&c.baseClass===void 0?p?(this.toWireType=uc,this.destructorFunction=null):(this.toWireType=nl,this.destructorFunction=null):this.toWireType=sl}function ul(n,c,u){e.hasOwnProperty(n)||Qo("Replacing nonexistant public symbol"),e[n].overloadTable!==void 0&&u!==void 0?e[n].overloadTable[u]=c:(e[n]=c,e[n].argCount=u)}var ll=(n,c,u)=>{var p=e["dynCall_"+n];return u&&u.length?p.apply(null,[c].concat(u)):p.call(null,c)},rs=[],lc=n=>{var c=rs[n];return c||(n>=rs.length&&(rs.length=n+1),rs[n]=c=Zs.get(n)),c},ml=(n,c,u)=>{if(n.includes("j"))return ll(n,c,u);var p=lc(c).apply(null,u);return p},mc=(n,c)=>{var u=[];return function(){return u.length=0,Object.assign(u,arguments),ml(n,c,u)}};function Qr(n,c){n=Ot(n);function u(){return n.includes("j")?mc(n,c):lc(c)}var p=u();return typeof p!="function"&&Me(`unknown function pointer with signature ${n}: ${c}`),p}function pc(n,c){var u=fn(c,function(p){this.name=c,this.message=p;var E=new Error(p).stack;E!==void 0&&(this.stack=this.toString()+`
50
+ `+E.replace(/^Error(:[^\n]*)?\n/,""))});return u.prototype=Object.create(n.prototype),u.prototype.constructor=u,u.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},u}var hc=void 0;function gn(n){var c=Nh(n),u=Ot(c);return Yr(c),u}function En(n,c){var u=[],p={};function E(y){if(!p[y]&&!zr[y]){if(vr[y]){vr[y].forEach(E);return}u.push(y),p[y]=!0}}throw c.forEach(E),new hc(`${n}: `+u.map(gn).join([", "]))}function pl(n,c,u,p,E,y,R,b,k,M,K,ie,re){K=Ot(K),y=Qr(E,y),b&&(b=Qr(R,b)),M&&(M=Qr(k,M)),re=Qr(ie,re);var Q=no(K);ol(Q,function(){En(`Cannot construct ${K} due to unbound types`,[p])}),ro([n,c,u],p?[p]:[],function(me){me=me[0];var He,Je;p?(He=me.registeredClass,Je=He.instancePrototype):Je=ur.prototype;var ct=fn(Q,function(){if(Object.getPrototypeOf(this)!==kt)throw new Ci("Use 'new' to construct "+K);if(Ze.constructor_body===void 0)throw new Ci(K+" has no accessible constructor");var dt=Ze.constructor_body[arguments.length];if(dt===void 0)throw new Ci(`Tried to invoke ctor of ${K} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(Ze.constructor_body).toString()}) parameters instead!`);return dt.apply(this,arguments)}),kt=Object.create(Je,{constructor:{value:ct}});ct.prototype=kt;var Ze=new dc(K,ct,kt,re,He,y,b,M);Ze.baseClass&&(Ze.baseClass.__derivedClasses===void 0&&(Ze.baseClass.__derivedClasses=[]),Ze.baseClass.__derivedClasses.push(Ze));var ao=new lr(K,Ze,!0,!1,!1),Xt=new lr(K+"*",Ze,!1,!1,!1),Zr=new lr(K+" const*",Ze,!1,!0,!1);return ic[n]={pointerType:Xt,constPointerType:Zr},ul(Q,ct),[ao,Xt,Zr]})}function fc(n,c){for(var u=[],p=0;p<n;p++)u.push(ke[c+p*4>>2]);return u}function hl(n){for(;n.length;){var c=n.pop(),u=n.pop();u(c)}}function _c(n,c){if(!(n instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof n} which is not a function`);var u=fn(n.name||"unknownFunctionName",function(){});u.prototype=n.prototype;var p=new u,E=n.apply(p,c);return E instanceof Object?E:p}function gc(n,c,u,p,E,y){var R=c.length;R<2&&Me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var b=c[1]!==null&&u!==null,k=!1,M=1;M<c.length;++M)if(c[M]!==null&&c[M].destructorFunction===void 0){k=!0;break}for(var K=c[0].name!=="void",ie="",re="",M=0;M<R-2;++M)ie+=(M!==0?", ":"")+"arg"+M,re+=(M!==0?", ":"")+"arg"+M+"Wired";var Q=`
51
+ return function ${no(n)}(${ie}) {
52
52
  if (arguments.length !== ${R-2}) {
53
53
  throwBindingError('function ${n} called with ${arguments.length} arguments, expected ${R-2} args!');
54
54
  }`;k&&(Q+=`var destructors = [];
55
55
  `);var me=k?"destructors":"null",He=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Je=[Me,p,E,hl,c[0],c[1]];b&&(Q+="var thisWired = classParam.toWireType("+me+`, this);
56
56
  `);for(var M=0;M<R-2;++M)Q+="var arg"+M+"Wired = argType"+M+".toWireType("+me+", arg"+M+"); // "+c[M+2].name+`
57
- `,He.push("argType"+M),Je.push(c[M+2]);if(b&&(te="thisWired"+(te.length>0?", ":"")+te),Q+=(Z||y?"var rv = ":"")+"invoker(fn"+(te.length>0?", ":"")+te+`);
57
+ `,He.push("argType"+M),Je.push(c[M+2]);if(b&&(re="thisWired"+(re.length>0?", ":"")+re),Q+=(K||y?"var rv = ":"")+"invoker(fn"+(re.length>0?", ":"")+re+`);
58
58
  `,k)Q+=`runDestructors(destructors);
59
59
  `;else for(var M=b?1:2;M<c.length;++M){var ct=M===1?"thisWired":"arg"+(M-2)+"Wired";c[M].destructorFunction!==null&&(Q+=ct+"_dtor("+ct+"); // "+c[M].name+`
60
- `,He.push(ct+"_dtor"),Je.push(c[M].destructorFunction))}return Z&&(Q+=`var ret = retType.fromWireType(rv);
60
+ `,He.push(ct+"_dtor"),Je.push(c[M].destructorFunction))}return K&&(Q+=`var ret = retType.fromWireType(rv);
61
61
  return ret;
62
62
  `),Q+=`}
63
- `,He.push(Q),_c(Function,He).apply(null,Je)}function fl(n,c,u,p,E,y){var R=fc(c,u);E=Qr(p,E),eo([],[n],function(b){b=b[0];var k=`constructor ${b.name}`;if(b.registeredClass.constructor_body===void 0&&(b.registeredClass.constructor_body=[]),b.registeredClass.constructor_body[c-1]!==void 0)throw new vi(`Cannot register multiple constructors with identical number of parameters (${c-1}) for class '${b.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return b.registeredClass.constructor_body[c-1]=()=>{En(`Cannot construct ${b.name} due to unbound types`,R)},eo([],R,function(M){return M.splice(1,0,null),b.registeredClass.constructor_body[c-1]=gc(k,M,null,E,y),[]}),[]})}function _l(n,c,u,p,E,y,R,b,k){var M=fc(u,p);c=Ot(c),y=Qr(E,y),eo([],[n],function(Z){Z=Z[0];var ie=`${Z.name}.${c}`;c.startsWith("@@")&&(c=Symbol[c.substring(2)]),b&&Z.registeredClass.pureVirtualFunctions.push(c);function te(){En(`Cannot call ${ie} due to unbound types`,M)}var Q=Z.registeredClass.instancePrototype,me=Q[c];return me===void 0||me.overloadTable===void 0&&me.className!==Z.name&&me.argCount===u-2?(te.argCount=u-2,te.className=Z.name,Q[c]=te):(cc(Q,c,ie),Q[c].overloadTable[u-2]=te),eo([],M,function(He){var Je=gc(ie,He,Z,y,R,k);return Q[c].overloadTable===void 0?(Je.argCount=u-2,Q[c]=Je):Q[c].overloadTable[u-2]=Je,[]}),[]})}function gl(){Object.assign(Ec.prototype,{get(n){return this.allocated[n]},has(n){return this.allocated[n]!==void 0},allocate(n){var c=this.freelist.pop()||this.allocated.length;return this.allocated[c]=n,c},free(n){this.allocated[n]=void 0,this.freelist.push(n)}})}function Ec(){this.allocated=[void 0],this.freelist=[]}var xt=new Ec;function Tc(n){n>=xt.reserved&&--xt.get(n).refcount===0&&xt.free(n)}function El(){for(var n=0,c=xt.reserved;c<xt.allocated.length;++c)xt.allocated[c]!==void 0&&++n;return n}function Tl(){xt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),xt.reserved=xt.allocated.length,e.count_emval_handles=El}var rs={toValue:n=>(n||Me("Cannot use deleted val. handle = "+n),xt.get(n).value),toHandle:n=>{switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return xt.allocate({refcount:1,value:n})}}};function Ic(n,c){c=Ot(c),cr(n,{name:c,fromWireType:function(u){var p=rs.toValue(u);return Tc(u),p},toWireType:function(u,p){return rs.toHandle(p)},argPackAdvance:8,readValueFromPointer:Xr,destructorFunction:null})}function Tn(n){if(n===null)return"null";var c=typeof n;return c==="object"||c==="array"||c==="function"?n.toString():""+n}function Il(n,c){switch(c){case 2:return function(u){return this.fromWireType(Ys[u>>2])};case 3:return function(u){return this.fromWireType(Ha[u>>3])};default:throw new TypeError("Unknown float type: "+n)}}function Sc(n,c,u){var p=dn(u);c=Ot(c),cr(n,{name:c,fromWireType:function(E){return E},toWireType:function(E,y){return y},argPackAdvance:8,readValueFromPointer:Il(c,p),destructorFunction:null})}function Sl(n,c,u){switch(c){case 0:return u?function(E){return Le[E]}:function(E){return rt[E]};case 1:return u?function(E){return jt[E>>1]}:function(E){return qt[E>>1]};case 2:return u?function(E){return x[E>>2]}:function(E){return xe[E>>2]};default:throw new TypeError("Unknown integer type: "+n)}}function yl(n,c,u,p,E){c=Ot(c),E===-1&&(E=4294967295);var y=dn(u),R=ie=>ie;if(p===0){var b=32-8*u;R=ie=>ie<<b>>>b}var k=c.includes("unsigned"),M=(ie,te)=>{},Z;k?Z=function(ie,te){return M(te,this.name),te>>>0}:Z=function(ie,te){return M(te,this.name),te},cr(n,{name:c,fromWireType:R,toWireType:Z,argPackAdvance:8,readValueFromPointer:Sl(c,y,p!==0),destructorFunction:null})}function Al(n,c,u){var p=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],E=p[c];function y(R){R=R>>2;var b=xe,k=b[R],M=b[R+1];return new E(b.buffer,M,k)}u=Ot(u),cr(n,{name:u,fromWireType:y,argPackAdvance:8,readValueFromPointer:y},{ignoreDuplicateRegistrations:!0})}var bl=(n,c,u)=>nn(n,rt,c,u);function Rl(n,c){c=Ot(c);var u=c==="std::string";cr(n,{name:c,fromWireType:function(p){var E=xe[p>>2],y=p+4,R;if(u)for(var b=y,k=0;k<=E;++k){var M=y+k;if(k==E||rt[M]==0){var Z=M-b,ie=Ya(b,Z);R===void 0?R=ie:(R+="\0",R+=ie),b=M+1}}else{for(var te=new Array(E),k=0;k<E;++k)te[k]=String.fromCharCode(rt[y+k]);R=te.join("")}return Yr(p),R},toWireType:function(p,E){E instanceof ArrayBuffer&&(E=new Uint8Array(E));var y,R=typeof E=="string";R||E instanceof Uint8Array||E instanceof Uint8ClampedArray||E instanceof Int8Array||Me("Cannot pass non-string to std::string"),u&&R?y=Jr(E):y=E.length;var b=Ol(4+y+1),k=b+4;if(xe[b>>2]=y,u&&R)bl(E,k,y+1);else if(R)for(var M=0;M<y;++M){var Z=E.charCodeAt(M);Z>255&&(Yr(k),Me("String has UTF-16 code units that do not fit in 8 bits")),rt[k+M]=Z}else for(var M=0;M<y;++M)rt[k+M]=E[M];return p!==null&&p.push(Yr,b),b},argPackAdvance:8,readValueFromPointer:Xr,destructorFunction:function(p){Yr(p)}})}var In=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,vl=(n,c)=>{for(var u=n,p=u>>1,E=p+c/2;!(p>=E)&&qt[p];)++p;if(u=p<<1,u-n>32&&In)return In.decode(rt.subarray(n,u));for(var y="",R=0;!(R>=c/2);++R){var b=jt[n+R*2>>1];if(b==0)break;y+=String.fromCharCode(b)}return y},Cl=(n,c,u)=>{if(u===void 0&&(u=2147483647),u<2)return 0;u-=2;for(var p=c,E=u<n.length*2?u/2:n.length,y=0;y<E;++y){var R=n.charCodeAt(y);jt[c>>1]=R,c+=2}return jt[c>>1]=0,c-p},Rh=n=>n.length*2,Dl=(n,c)=>{for(var u=0,p="";!(u>=c/4);){var E=x[n+u*4>>2];if(E==0)break;if(++u,E>=65536){var y=E-65536;p+=String.fromCharCode(55296|y>>10,56320|y&1023)}else p+=String.fromCharCode(E)}return p},mr=(n,c,u)=>{if(u===void 0&&(u=2147483647),u<4)return 0;for(var p=c,E=p+u-4,y=0;y<n.length;++y){var R=n.charCodeAt(y);if(R>=55296&&R<=57343){var b=n.charCodeAt(++y);R=65536+((R&1023)<<10)|b&1023}if(x[c>>2]=R,c+=4,c+4>E)break}return x[c>>2]=0,c-p},Sn=n=>{for(var c=0,u=0;u<n.length;++u){var p=n.charCodeAt(u);p>=55296&&p<=57343&&++u,c+=4}return c},yc=function(n,c,u){u=Ot(u);var p,E,y,R,b;c===2?(p=vl,E=Cl,R=Rh,y=()=>qt,b=1):c===4&&(p=Dl,E=mr,R=Sn,y=()=>xe,b=2),cr(n,{name:u,fromWireType:function(k){for(var M=xe[k>>2],Z=y(),ie,te=k+4,Q=0;Q<=M;++Q){var me=k+4+Q*c;if(Q==M||Z[me>>b]==0){var He=me-te,Je=p(te,He);ie===void 0?ie=Je:(ie+="\0",ie+=Je),te=me+c}}return Yr(k),ie},toWireType:function(k,M){typeof M!="string"&&Me(`Cannot pass non-string to C++ string type ${u}`);var Z=R(M),ie=Ol(4+Z+c);return xe[ie>>2]=Z>>b,E(M,ie+4,Z+c),k!==null&&k.push(Yr,ie),ie},argPackAdvance:8,readValueFromPointer:Xr,destructorFunction:function(k){Yr(k)}})};function Nl(n,c){c=Ot(c),cr(n,{isVoid:!0,name:c,argPackAdvance:0,fromWireType:function(){},toWireType:function(u,p){}})}var wl={};function Ac(n){var c=wl[n];return c===void 0?Ot(n):c}var yn=[];function is(n,c,u,p){n=yn[n],c=rs.toValue(c),u=Ac(u),n(c,u,null,p)}function bc(n){var c=yn.length;return yn.push(n),c}function f(n,c){var u=zr[n];return u===void 0&&Me(c+" has unknown type "+gn(n)),u}function _(n,c){for(var u=new Array(n),p=0;p<n;++p)u[p]=f(xe[c+p*4>>2],"parameter "+p);return u}var S=[];function C(n,c){var u=_(n,c),p=u[0],E=p.name+"_$"+u.slice(1).map(function(me){return me.name}).join("_")+"$",y=S[E];if(y!==void 0)return y;for(var R=["retType"],b=[p],k="",M=0;M<n-1;++M)k+=(M!==0?", ":"")+"arg"+M,R.push("argType"+M),b.push(u[1+M]);for(var Z=oo("methodCaller_"+E),ie="return function "+Z+`(handle, name, destructors, args) {
64
- `,te=0,M=0;M<n-1;++M)ie+=" var arg"+M+" = argType"+M+".readValueFromPointer(args"+(te?"+"+te:"")+`);
65
- `,te+=u[M+1].argPackAdvance;ie+=" var rv = handle[name]("+k+`);
63
+ `,He.push(Q),_c(Function,He).apply(null,Je)}function fl(n,c,u,p,E,y){var R=fc(c,u);E=Qr(p,E),ro([],[n],function(b){b=b[0];var k=`constructor ${b.name}`;if(b.registeredClass.constructor_body===void 0&&(b.registeredClass.constructor_body=[]),b.registeredClass.constructor_body[c-1]!==void 0)throw new Ci(`Cannot register multiple constructors with identical number of parameters (${c-1}) for class '${b.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return b.registeredClass.constructor_body[c-1]=()=>{En(`Cannot construct ${b.name} due to unbound types`,R)},ro([],R,function(M){return M.splice(1,0,null),b.registeredClass.constructor_body[c-1]=gc(k,M,null,E,y),[]}),[]})}function _l(n,c,u,p,E,y,R,b,k){var M=fc(u,p);c=Ot(c),y=Qr(E,y),ro([],[n],function(K){K=K[0];var ie=`${K.name}.${c}`;c.startsWith("@@")&&(c=Symbol[c.substring(2)]),b&&K.registeredClass.pureVirtualFunctions.push(c);function re(){En(`Cannot call ${ie} due to unbound types`,M)}var Q=K.registeredClass.instancePrototype,me=Q[c];return me===void 0||me.overloadTable===void 0&&me.className!==K.name&&me.argCount===u-2?(re.argCount=u-2,re.className=K.name,Q[c]=re):(cc(Q,c,ie),Q[c].overloadTable[u-2]=re),ro([],M,function(He){var Je=gc(ie,He,K,y,R,k);return Q[c].overloadTable===void 0?(Je.argCount=u-2,Q[c]=Je):Q[c].overloadTable[u-2]=Je,[]}),[]})}function gl(){Object.assign(Ec.prototype,{get(n){return this.allocated[n]},has(n){return this.allocated[n]!==void 0},allocate(n){var c=this.freelist.pop()||this.allocated.length;return this.allocated[c]=n,c},free(n){this.allocated[n]=void 0,this.freelist.push(n)}})}function Ec(){this.allocated=[void 0],this.freelist=[]}var xt=new Ec;function Tc(n){n>=xt.reserved&&--xt.get(n).refcount===0&&xt.free(n)}function El(){for(var n=0,c=xt.reserved;c<xt.allocated.length;++c)xt.allocated[c]!==void 0&&++n;return n}function Tl(){xt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),xt.reserved=xt.allocated.length,e.count_emval_handles=El}var is={toValue:n=>(n||Me("Cannot use deleted val. handle = "+n),xt.get(n).value),toHandle:n=>{switch(n){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return xt.allocate({refcount:1,value:n})}}};function Ic(n,c){c=Ot(c),cr(n,{name:c,fromWireType:function(u){var p=is.toValue(u);return Tc(u),p},toWireType:function(u,p){return is.toHandle(p)},argPackAdvance:8,readValueFromPointer:Xr,destructorFunction:null})}function Tn(n){if(n===null)return"null";var c=typeof n;return c==="object"||c==="array"||c==="function"?n.toString():""+n}function Il(n,c){switch(c){case 2:return function(u){return this.fromWireType(Ys[u>>2])};case 3:return function(u){return this.fromWireType(Ha[u>>3])};default:throw new TypeError("Unknown float type: "+n)}}function Sc(n,c,u){var p=dn(u);c=Ot(c),cr(n,{name:c,fromWireType:function(E){return E},toWireType:function(E,y){return y},argPackAdvance:8,readValueFromPointer:Il(c,p),destructorFunction:null})}function Sl(n,c,u){switch(c){case 0:return u?function(E){return Le[E]}:function(E){return rt[E]};case 1:return u?function(E){return jt[E>>1]}:function(E){return qt[E>>1]};case 2:return u?function(E){return x[E>>2]}:function(E){return ke[E>>2]};default:throw new TypeError("Unknown integer type: "+n)}}function yl(n,c,u,p,E){c=Ot(c),E===-1&&(E=4294967295);var y=dn(u),R=ie=>ie;if(p===0){var b=32-8*u;R=ie=>ie<<b>>>b}var k=c.includes("unsigned"),M=(ie,re)=>{},K;k?K=function(ie,re){return M(re,this.name),re>>>0}:K=function(ie,re){return M(re,this.name),re},cr(n,{name:c,fromWireType:R,toWireType:K,argPackAdvance:8,readValueFromPointer:Sl(c,y,p!==0),destructorFunction:null})}function Al(n,c,u){var p=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],E=p[c];function y(R){R=R>>2;var b=ke,k=b[R],M=b[R+1];return new E(b.buffer,M,k)}u=Ot(u),cr(n,{name:u,fromWireType:y,argPackAdvance:8,readValueFromPointer:y},{ignoreDuplicateRegistrations:!0})}var bl=(n,c,u)=>nn(n,rt,c,u);function Rl(n,c){c=Ot(c);var u=c==="std::string";cr(n,{name:c,fromWireType:function(p){var E=ke[p>>2],y=p+4,R;if(u)for(var b=y,k=0;k<=E;++k){var M=y+k;if(k==E||rt[M]==0){var K=M-b,ie=Ya(b,K);R===void 0?R=ie:(R+="\0",R+=ie),b=M+1}}else{for(var re=new Array(E),k=0;k<E;++k)re[k]=String.fromCharCode(rt[y+k]);R=re.join("")}return Yr(p),R},toWireType:function(p,E){E instanceof ArrayBuffer&&(E=new Uint8Array(E));var y,R=typeof E=="string";R||E instanceof Uint8Array||E instanceof Uint8ClampedArray||E instanceof Int8Array||Me("Cannot pass non-string to std::string"),u&&R?y=Jr(E):y=E.length;var b=Ol(4+y+1),k=b+4;if(ke[b>>2]=y,u&&R)bl(E,k,y+1);else if(R)for(var M=0;M<y;++M){var K=E.charCodeAt(M);K>255&&(Yr(k),Me("String has UTF-16 code units that do not fit in 8 bits")),rt[k+M]=K}else for(var M=0;M<y;++M)rt[k+M]=E[M];return p!==null&&p.push(Yr,b),b},argPackAdvance:8,readValueFromPointer:Xr,destructorFunction:function(p){Yr(p)}})}var In=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,vl=(n,c)=>{for(var u=n,p=u>>1,E=p+c/2;!(p>=E)&&qt[p];)++p;if(u=p<<1,u-n>32&&In)return In.decode(rt.subarray(n,u));for(var y="",R=0;!(R>=c/2);++R){var b=jt[n+R*2>>1];if(b==0)break;y+=String.fromCharCode(b)}return y},Cl=(n,c,u)=>{if(u===void 0&&(u=2147483647),u<2)return 0;u-=2;for(var p=c,E=u<n.length*2?u/2:n.length,y=0;y<E;++y){var R=n.charCodeAt(y);jt[c>>1]=R,c+=2}return jt[c>>1]=0,c-p},vh=n=>n.length*2,Dl=(n,c)=>{for(var u=0,p="";!(u>=c/4);){var E=x[n+u*4>>2];if(E==0)break;if(++u,E>=65536){var y=E-65536;p+=String.fromCharCode(55296|y>>10,56320|y&1023)}else p+=String.fromCharCode(E)}return p},mr=(n,c,u)=>{if(u===void 0&&(u=2147483647),u<4)return 0;for(var p=c,E=p+u-4,y=0;y<n.length;++y){var R=n.charCodeAt(y);if(R>=55296&&R<=57343){var b=n.charCodeAt(++y);R=65536+((R&1023)<<10)|b&1023}if(x[c>>2]=R,c+=4,c+4>E)break}return x[c>>2]=0,c-p},Sn=n=>{for(var c=0,u=0;u<n.length;++u){var p=n.charCodeAt(u);p>=55296&&p<=57343&&++u,c+=4}return c},yc=function(n,c,u){u=Ot(u);var p,E,y,R,b;c===2?(p=vl,E=Cl,R=vh,y=()=>qt,b=1):c===4&&(p=Dl,E=mr,R=Sn,y=()=>ke,b=2),cr(n,{name:u,fromWireType:function(k){for(var M=ke[k>>2],K=y(),ie,re=k+4,Q=0;Q<=M;++Q){var me=k+4+Q*c;if(Q==M||K[me>>b]==0){var He=me-re,Je=p(re,He);ie===void 0?ie=Je:(ie+="\0",ie+=Je),re=me+c}}return Yr(k),ie},toWireType:function(k,M){typeof M!="string"&&Me(`Cannot pass non-string to C++ string type ${u}`);var K=R(M),ie=Ol(4+K+c);return ke[ie>>2]=K>>b,E(M,ie+4,K+c),k!==null&&k.push(Yr,ie),ie},argPackAdvance:8,readValueFromPointer:Xr,destructorFunction:function(k){Yr(k)}})};function Nl(n,c){c=Ot(c),cr(n,{isVoid:!0,name:c,argPackAdvance:0,fromWireType:function(){},toWireType:function(u,p){}})}var wl={};function Ac(n){var c=wl[n];return c===void 0?Ot(n):c}var yn=[];function os(n,c,u,p){n=yn[n],c=is.toValue(c),u=Ac(u),n(c,u,null,p)}function bc(n){var c=yn.length;return yn.push(n),c}function f(n,c){var u=zr[n];return u===void 0&&Me(c+" has unknown type "+gn(n)),u}function _(n,c){for(var u=new Array(n),p=0;p<n;++p)u[p]=f(ke[c+p*4>>2],"parameter "+p);return u}var S=[];function C(n,c){var u=_(n,c),p=u[0],E=p.name+"_$"+u.slice(1).map(function(me){return me.name}).join("_")+"$",y=S[E];if(y!==void 0)return y;for(var R=["retType"],b=[p],k="",M=0;M<n-1;++M)k+=(M!==0?", ":"")+"arg"+M,R.push("argType"+M),b.push(u[1+M]);for(var K=no("methodCaller_"+E),ie="return function "+K+`(handle, name, destructors, args) {
64
+ `,re=0,M=0;M<n-1;++M)ie+=" var arg"+M+" = argType"+M+".readValueFromPointer(args"+(re?"+"+re:"")+`);
65
+ `,re+=u[M+1].argPackAdvance;ie+=" var rv = handle[name]("+k+`);
66
66
  `;for(var M=0;M<n-1;++M)u[M+1].deleteObject&&(ie+=" argType"+M+".deleteObject(arg"+M+`);
67
67
  `);p.isVoid||(ie+=` return retType.toWireType(destructors, rv);
68
68
  `),ie+=`};
69
- `,R.push(ie);var Q=_c(Function,R).apply(null,b);return y=bc(Q),S[E]=y,y}function O(n,c){return c+2097152>>>0<4194305-!!n?(n>>>0)+c*4294967296:NaN}var B=()=>{br("")};function W(){return Date.now()}var V=()=>rt.length,ee=()=>V(),$=(n,c,u)=>rt.copyWithin(n,c,c+u),_e=n=>{br("OOM")},Ie=n=>{var c=rt.length;n>>>=0,_e(n)},ve={},Ue=()=>d||"./this.program",Ye=()=>{if(!Ye.strings){var n=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",c={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:n,_:Ue()};for(var u in ve)ve[u]===void 0?delete c[u]:c[u]=ve[u];var p=[];for(var u in c)p.push(`${u}=${c[u]}`);Ye.strings=p}return Ye.strings},Ft=(n,c)=>{for(var u=0;u<n.length;++u)Le[c++>>0]=n.charCodeAt(u);Le[c>>0]=0},At=(n,c)=>{var u=0;return Ye().forEach(function(p,E){var y=c+u;xe[n+E*4>>2]=y,Ft(p,y),u+=p.length+1}),0},Dr=(n,c)=>{var u=Ye();xe[n>>2]=u.length;var p=0;return u.forEach(function(E){p+=E.length+1}),xe[c>>2]=p,0};function An(n){try{var c=Qe.getStreamFromFD(n);return g.close(c),0}catch(u){if(typeof g=="undefined"||u.name!=="ErrnoError")throw u;return u.errno}}function zt(n,c){try{var u=0,p=0,E=0,y=Qe.getStreamFromFD(n),R=y.tty?2:g.isDir(y.mode)?3:g.isLink(y.mode)?7:4;return Le[c>>0]=R,jt[c+2>>1]=E,Ge=[u>>>0,(de=u,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[c+8>>2]=Ge[0],x[c+12>>2]=Ge[1],Ge=[p>>>0,(de=p,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[c+16>>2]=Ge[0],x[c+20>>2]=Ge[1],0}catch(b){if(typeof g=="undefined"||b.name!=="ErrnoError")throw b;return b.errno}}var Ml=(n,c,u,p)=>{for(var E=0,y=0;y<u;y++){var R=xe[c>>2],b=xe[c+4>>2];c+=8;var k=g.read(n,Le,R,b,p);if(k<0)return-1;if(E+=k,k<b)break;typeof p!="undefined"&&(p+=k)}return E};function Rc(n,c,u,p){try{var E=Qe.getStreamFromFD(n),y=Ml(E,c,u);return xe[p>>2]=y,0}catch(R){if(typeof g=="undefined"||R.name!=="ErrnoError")throw R;return R.errno}}function vc(n,c,u,p,E){var y=O(c,u);try{if(isNaN(y))return 61;var R=Qe.getStreamFromFD(n);return g.llseek(R,y,p),Ge=[R.position>>>0,(de=R.position,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[E>>2]=Ge[0],x[E+4>>2]=Ge[1],R.getdents&&y===0&&p===0&&(R.getdents=null),0}catch(b){if(typeof g=="undefined"||b.name!=="ErrnoError")throw b;return b.errno}}var Cc=(n,c,u,p)=>{for(var E=0,y=0;y<u;y++){var R=xe[c>>2],b=xe[c+4>>2];c+=8;var k=g.write(n,Le,R,b,p);if(k<0)return-1;E+=k,typeof p!="undefined"&&(p+=k)}return E};function Pg(n,c,u,p){try{var E=Qe.getStreamFromFD(n),y=Cc(E,c,u);return xe[p>>2]=y,0}catch(R){if(typeof g=="undefined"||R.name!=="ErrnoError")throw R;return R.errno}}var vh=function(n,c,u,p){n||(n=this),this.parent=n,this.mount=n.mount,this.mounted=null,this.id=g.nextInode++,this.name=c,this.mode=u,this.node_ops={},this.stream_ops={},this.rdev=p},Dc=365,Nc=146;Object.defineProperties(vh.prototype,{read:{get:function(){return(this.mode&Dc)===Dc},set:function(n){n?this.mode|=Dc:this.mode&=~Dc}},write:{get:function(){return(this.mode&Nc)===Nc},set:function(n){n?this.mode|=Nc:this.mode&=~Nc}},isFolder:{get:function(){return g.isDir(this.mode)}},isDevice:{get:function(){return g.isChrdev(this.mode)}}}),g.FSNode=vh,g.createPreloadedFile=Xa,g.staticInit(),Ki(),vi=e.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},Ka=e.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},rl(),Ku(),dl(),hc=e.UnboundTypeError=pc(Error,"UnboundTypeError"),gl(),Tl();var xg={p:qa,C:cn,w:Zi,t:Qu,n:Yu,r:pl,q:fl,d:_l,D:Ic,k:Sc,c:yl,b:Al,j:Rl,f:yc,o:Nl,g:is,m:Tc,l:C,a:B,e:W,v:ee,A:$,u:Ie,y:At,z:Dr,i:An,x:zt,B:Rc,s:vc,h:Pg},py=w(),kg=()=>(kg=je.F)(),Ol=n=>(Ol=je.G)(n),Yr=n=>(Yr=je.I)(n),Ch=()=>(Ch=je.J)(),Dh=n=>(Dh=je.K)(n),Lg=e.__embind_initialize_bindings=()=>(Lg=e.__embind_initialize_bindings=je.L)(),Nh=n=>(Nh=je.M)(n),Ug=e.dynCall_jiji=(n,c,u,p,E)=>(Ug=e.dynCall_jiji=je.N)(n,c,u,p,E),hy=e._ff_h264_cabac_tables=67061,wc;Qi=function n(){wc||wh(),wc||(Qi=n)};function wh(){if(se>0||($u(),se>0))return;function n(){wc||(wc=!0,e.calledRun=!0,!Qs&&(q(),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Hu()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),n()},1)):n()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return wh(),t.ready}})(),F_=gS;var su=class extends Br{constructor(t){super(F_,t!=null&&t.wasmPath?fetch(t==null?void 0:t.wasmPath).then(e=>e.arrayBuffer()):void 0,t==null?void 0:t.workerMode,t==null?void 0:t.canvas,t==null?void 0:t.yuvMode)}};var ES=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e=t,r,o;e.ready=new Promise((f,_)=>{r=f,o=_});var s=Object.assign({},e),a=[],d="./this.program",h=(f,_)=>{throw _},m=typeof window=="object",T=typeof importScripts=="function",I=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v="";function N(f){return e.locateFile?e.locateFile(f,v):v+f}var j,H,z,Te;(m||T)&&(T?v=self.location.href:typeof document!="undefined"&&document.currentScript&&(v=document.currentScript.src),i&&(v=i),v.indexOf("blob:")!==0?v=v.substr(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1):v="",j=f=>{var _=new XMLHttpRequest;return _.open("GET",f,!1),_.send(null),_.responseText},T&&(z=f=>{var _=new XMLHttpRequest;return _.open("GET",f,!1),_.responseType="arraybuffer",_.send(null),new Uint8Array(_.response)}),H=(f,_,S)=>{var C=new XMLHttpRequest;C.open("GET",f,!0),C.responseType="arraybuffer",C.onload=()=>{if(C.status==200||C.status==0&&C.response){_(C.response);return}S()},C.onerror=S,C.send(null)},Te=f=>document.title=f);var Pe=e.print||console.log.bind(console),Xe=e.printErr||console.error.bind(console);Object.assign(e,s),s=null,e.arguments&&(a=e.arguments),e.thisProgram&&(d=e.thisProgram),e.quit&&(h=e.quit);var wt;e.wasmBinary&&(wt=e.wasmBinary);var fe=e.noExitRuntime||!0;typeof WebAssembly!="object"&&yi("no native wasm support detected");var Xs,je,Qs=!1,Fu,Hr,Le,rt,jt,qt,x,xe,Ys;function Ha(){var f=Xs.buffer;e.HEAP8=Hr=new Int8Array(f),e.HEAP16=rt=new Int16Array(f),e.HEAP32=qt=new Int32Array(f),e.HEAPU8=Le=new Uint8Array(f),e.HEAPU16=jt=new Uint16Array(f),e.HEAPU32=x=new Uint32Array(f),e.HEAPF32=xe=new Float32Array(f),e.HEAPF64=Ys=new Float64Array(f)}var Wa,Zs=[],Ks=[],en=[],Ga=!1;function Bu(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)Hu(e.preRun.shift());on(Zs)}function $u(){Ga=!0,on(Ks)}function q(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Gu(e.postRun.shift());on(en)}function Hu(f){Zs.unshift(f)}function Wu(f){Ks.unshift(f)}function Gu(f){en.unshift(f)}var Wr=0,se=null,Gr=null;function Qi(f){Wr++,e.monitorRunDependencies&&e.monitorRunDependencies(Wr)}function bh(f){if(Wr--,e.monitorRunDependencies&&e.monitorRunDependencies(Wr),Wr==0&&(se!==null&&(clearInterval(se),se=null),Gr)){var _=Gr;Gr=null,_()}}function yi(f){e.onAbort&&e.onAbort(f),f="Aborted("+f+")",Xe(f),Qs=!0,Fu=1,f+=". Build with -sASSERTIONS for more info.";var _=new WebAssembly.RuntimeError(f);throw o(_),_}var qo="data:application/octet-stream;base64,";function br(f){return f.startsWith(qo)}var Ai;Ai="videodec_simd.wasm",br(Ai)||(Ai=N(Ai));function tn(f){if(f==Ai&&wt)return new Uint8Array(wt);if(z)return z(f);throw"both async and sync fetching of the wasm failed"}function bi(f){return!wt&&(m||T)&&typeof fetch=="function"?fetch(f,{credentials:"same-origin"}).then(_=>{if(!_.ok)throw"failed to load wasm binary file at '"+f+"'";return _.arrayBuffer()}).catch(()=>tn(f)):Promise.resolve().then(()=>tn(f))}function rn(f,_,S){return bi(f).then(C=>WebAssembly.instantiate(C,_)).then(C=>C).then(S,C=>{Xe("failed to asynchronously prepare wasm: "+C),yi(C)})}function ju(f,_,S,C){return!f&&typeof WebAssembly.instantiateStreaming=="function"&&!br(_)&&typeof fetch=="function"?fetch(_,{credentials:"same-origin"}).then(O=>{var B=WebAssembly.instantiateStreaming(O,S);return B.then(C,function(W){return Xe("wasm streaming compile failed: "+W),Xe("falling back to ArrayBuffer instantiation"),rn(_,S,C)})}):rn(_,S,C)}function ja(){var f={a:Cl};function _(C,O){var B=C.exports;return je=B,Xs=je.v,Ha(),Wa=je.z,Wu(je.w),bh("wasm-instantiate"),B}Qi("wasm-instantiate");function S(C){_(C.instance)}if(e.instantiateWasm)try{return e.instantiateWasm(f,_)}catch(C){Xe("Module.instantiateWasm callback failed with error: "+C),o(C)}return ju(wt,Ai,f,S).catch(o),{}}var on=f=>{for(;f.length>0;)f.shift()(e)};function w(f){this.excPtr=f,this.ptr=f-24,this.set_type=function(_){x[this.ptr+4>>2]=_},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(_){x[this.ptr+8>>2]=_},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_caught=function(_){_=_?1:0,Hr[this.ptr+12>>0]=_},this.get_caught=function(){return Hr[this.ptr+12>>0]!=0},this.set_rethrown=function(_){_=_?1:0,Hr[this.ptr+13>>0]=_},this.get_rethrown=function(){return Hr[this.ptr+13>>0]!=0},this.init=function(_,S){this.set_adjusted_ptr(0),this.set_type(_),this.set_destructor(S)},this.set_adjusted_ptr=function(_){x[this.ptr+16>>2]=_},this.get_adjusted_ptr=function(){return x[this.ptr+16>>2]},this.get_exception_ptr=function(){var _=Ac(this.get_type());if(_)return x[this.excPtr>>2];var S=this.get_adjusted_ptr();return S!==0?S:this.excPtr}}var de=0,Ge=0;function sn(f,_,S){var C=new w(f);throw C.init(_,S),de=f,Ge++,de}function qu(f,_,S,C,O){}function Jo(f){switch(f){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${f}`)}}function Ju(){for(var f=new Array(256),_=0;_<256;++_)f[_]=String.fromCharCode(_);qa=f}var qa=void 0;function Mt(f){for(var _="",S=f;Le[S];)_+=qa[Le[S++]];return _}var Ce={},jr={},Yi={},yt=void 0;function Ne(f){throw new yt(f)}var qr=void 0;function Ri(f){throw new qr(f)}function Jr(f,_,S){f.forEach(function(V){Yi[V]=_});function C(V){var ee=S(V);ee.length!==f.length&&Ri("Mismatched type converter count");for(var $=0;$<f.length;++$)Jt(f[$],ee[$])}var O=new Array(_.length),B=[],W=0;_.forEach((V,ee)=>{jr.hasOwnProperty(V)?O[ee]=jr[V]:(B.push(V),Ce.hasOwnProperty(V)||(Ce[V]=[]),Ce[V].push(()=>{O[ee]=jr[V],++W,W===B.length&&C(O)}))}),B.length===0&&C(O)}function nn(f,_,S={}){var C=_.name;if(f||Ne(`type "${C}" must have a positive integer typeid pointer`),jr.hasOwnProperty(f)){if(S.ignoreDuplicateRegistrations)return;Ne(`Cannot register type '${C}' twice`)}if(jr[f]=_,delete Yi[f],Ce.hasOwnProperty(f)){var O=Ce[f];delete Ce[f],O.forEach(B=>B())}}function Jt(f,_,S={}){if(!("argPackAdvance"in _))throw new TypeError("registerType registeredInstance requires argPackAdvance");return nn(f,_,S)}function zu(f,_,S,C,O){var B=Jo(S);_=Mt(_),Jt(f,{name:_,fromWireType:function(W){return!!W},toWireType:function(W,V){return V?C:O},argPackAdvance:8,readValueFromPointer:function(W){var V;if(S===1)V=Hr;else if(S===2)V=rt;else if(S===4)V=qt;else throw new TypeError("Unknown boolean type size: "+_);return this.fromWireType(V[W>>B])},destructorFunction:null})}function Rr(f){if(!(this instanceof Cr)||!(f instanceof Cr))return!1;for(var _=this.$$.ptrType.registeredClass,S=this.$$.ptr,C=f.$$.ptrType.registeredClass,O=f.$$.ptr;_.baseClass;)S=_.upcast(S),_=_.baseClass;for(;C.baseClass;)O=C.upcast(O),C=C.baseClass;return _===C&&S===O}function Ja(f){return{count:f.count,deleteScheduled:f.deleteScheduled,preservePointerOnDelete:f.preservePointerOnDelete,ptr:f.ptr,ptrType:f.ptrType,smartPtr:f.smartPtr,smartPtrType:f.smartPtrType}}function he(f){function _(S){return S.$$.ptrType.registeredClass.name}Ne(_(f)+" instance already deleted")}var an=!1;function za(f){}function Xu(f){f.smartPtr?f.smartPtrType.rawDestructor(f.smartPtr):f.ptrType.registeredClass.rawDestructor(f.ptr)}function Xa(f){f.count.value-=1;var _=f.count.value===0;_&&Xu(f)}function Qa(f,_,S){if(_===S)return f;if(S.baseClass===void 0)return null;var C=Qa(f,_,S.baseClass);return C===null?null:S.downcast(C)}var zo={};function g(){return Object.keys(Ki).length}function Ya(){var f=[];for(var _ in Ki)Ki.hasOwnProperty(_)&&f.push(Ki[_]);return f}var Qe=[];function cn(){for(;Qe.length;){var f=Qe.pop();f.$$.deleteScheduled=!1,f.delete()}}var Zi=void 0;function Qu(f){Zi=f,Qe.length&&Zi&&Zi(cn)}function dn(){e.getInheritedInstanceCount=g,e.getLiveInheritedInstances=Ya,e.flushPendingDeletes=cn,e.setDelayFunction=Qu}var Ki={};function Za(f,_){for(_===void 0&&Ne("ptr should not be undefined");f.baseClass;)_=f.upcast(_),f=f.baseClass;return _}function Ot(f,_){return _=Za(f,_),Ki[_]}function ar(f,_){(!_.ptrType||!_.ptr)&&Ri("makeClassHandle requires ptr and ptrType");var S=!!_.smartPtrType,C=!!_.smartPtr;return S!==C&&Ri("Both smartPtrType and smartPtr must be specified"),_.count={value:1},vr(Object.create(f,{$$:{value:_}}))}function zr(f){var _=this.getPointee(f);if(!_)return this.destructor(f),null;var S=Ot(this.registeredClass,_);if(S!==void 0){if(S.$$.count.value===0)return S.$$.ptr=_,S.$$.smartPtr=f,S.clone();var C=S.clone();return this.destructor(f),C}function O(){return this.isSmartPointer?ar(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:_,smartPtrType:this,smartPtr:f}):ar(this.registeredClass.instancePrototype,{ptrType:this,ptr:f})}var B=this.registeredClass.getActualType(_),W=zo[B];if(!W)return O.call(this);var V;this.isConst?V=W.constPointerType:V=W.pointerType;var ee=Qa(_,this.registeredClass,V.registeredClass);return ee===null?O.call(this):this.isSmartPointer?ar(V.registeredClass.instancePrototype,{ptrType:V,ptr:ee,smartPtrType:this,smartPtr:f}):ar(V.registeredClass.instancePrototype,{ptrType:V,ptr:ee})}var vr=function(f){return typeof FinalizationRegistry=="undefined"?(vr=_=>_,f):(an=new FinalizationRegistry(_=>{Xa(_.$$)}),vr=_=>{var S=_.$$,C=!!S.smartPtr;if(C){var O={$$:S};an.register(_,O,_)}return _},za=_=>an.unregister(_),vr(f))};function vi(){if(this.$$.ptr||he(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var f=vr(Object.create(Object.getPrototypeOf(this),{$$:{value:Ja(this.$$)}}));return f.$$.count.value+=1,f.$$.deleteScheduled=!1,f}function Me(){this.$$.ptr||he(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ne("Object already scheduled for deletion"),za(this),Xa(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ka(){return!this.$$.ptr}function Xo(){return this.$$.ptr||he(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ne("Object already scheduled for deletion"),Qe.push(this),Qe.length===1&&Zi&&Zi(cn),this.$$.deleteScheduled=!0,this}function eo(){Cr.prototype.isAliasOf=Rr,Cr.prototype.clone=vi,Cr.prototype.delete=Me,Cr.prototype.isDeleted=Ka,Cr.prototype.deleteLater=Xo}function Cr(){}var cr=48,Yu=57;function Qo(f){if(f===void 0)return"_unknown";f=f.replace(/[^a-zA-Z0-9_]/g,"$");var _=f.charCodeAt(0);return _>=cr&&_<=Yu?`_${f}`:f}function un(f,_){return f=Qo(f),{[f]:function(){return _.apply(this,arguments)}}[f]}function Yo(f,_,S){if(f[_].overloadTable===void 0){var C=f[_];f[_]=function(){return f[_].overloadTable.hasOwnProperty(arguments.length)||Ne(`Function '${S}' called with an invalid number of arguments (${arguments.length}) - expects one of (${f[_].overloadTable})!`),f[_].overloadTable[arguments.length].apply(this,arguments)},f[_].overloadTable=[],f[_].overloadTable[C.argCount]=C}}function ln(f,_,S){e.hasOwnProperty(f)?((S===void 0||e[f].overloadTable!==void 0&&e[f].overloadTable[S]!==void 0)&&Ne(`Cannot register public name '${f}' twice`),Yo(e,f,f),e.hasOwnProperty(S)&&Ne(`Cannot register multiple overloads of a function with the same number of arguments (${S})!`),e[f].overloadTable[S]=_):(e[f]=_,S!==void 0&&(e[f].numArguments=S))}function ec(f,_,S,C,O,B,W,V){this.name=f,this.constructor=_,this.instancePrototype=S,this.rawDestructor=C,this.baseClass=O,this.getActualType=B,this.upcast=W,this.downcast=V,this.pureVirtualFunctions=[]}function mn(f,_,S){for(;_!==S;)_.upcast||Ne(`Expected null or instance of ${S.name}, got an instance of ${_.name}`),f=_.upcast(f),_=_.baseClass;return f}function tc(f,_){if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),0;_.$$||Ne(`Cannot pass "${_n(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`);var S=_.$$.ptrType.registeredClass,C=mn(_.$$.ptr,S,this.registeredClass);return C}function rc(f,_){var S;if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),this.isSmartPointer?(S=this.rawConstructor(),f!==null&&f.push(this.rawDestructor,S),S):0;_.$$||Ne(`Cannot pass "${_n(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&_.$$.ptrType.isConst&&Ne(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);var C=_.$$.ptrType.registeredClass;if(S=mn(_.$$.ptr,C,this.registeredClass),this.isSmartPointer)switch(_.$$.smartPtr===void 0&&Ne("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:_.$$.smartPtrType===this?S=_.$$.smartPtr:Ne(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:S=_.$$.smartPtr;break;case 2:if(_.$$.smartPtrType===this)S=_.$$.smartPtr;else{var O=_.clone();S=this.rawShare(S,Xr.toHandle(function(){O.delete()})),f!==null&&f.push(this.rawDestructor,S)}break;default:Ne("Unsupporting sharing policy")}return S}function ic(f,_){if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),0;_.$$||Ne(`Cannot pass "${_n(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`),_.$$.ptrType.isConst&&Ne(`Cannot convert argument of type ${_.$$.ptrType.name} to parameter type ${this.name}`);var S=_.$$.ptrType.registeredClass,C=mn(_.$$.ptr,S,this.registeredClass);return C}function Zo(f){return this.fromWireType(qt[f>>2])}function Zu(f){return this.rawGetPointee&&(f=this.rawGetPointee(f)),f}function to(f){this.rawDestructor&&this.rawDestructor(f)}function pn(f){f!==null&&f.delete()}function ro(){dr.prototype.getPointee=Zu,dr.prototype.destructor=to,dr.prototype.argPackAdvance=8,dr.prototype.readValueFromPointer=Zo,dr.prototype.deleteObject=pn,dr.prototype.fromWireType=zr}function dr(f,_,S,C,O,B,W,V,ee,$,_e){this.name=f,this.registeredClass=_,this.isReference=S,this.isConst=C,this.isSmartPointer=O,this.pointeeType=B,this.sharingPolicy=W,this.rawGetPointee=V,this.rawConstructor=ee,this.rawShare=$,this.rawDestructor=_e,!O&&_.baseClass===void 0?C?(this.toWireType=tc,this.destructorFunction=null):(this.toWireType=ic,this.destructorFunction=null):this.toWireType=rc}function Ku(f,_,S){e.hasOwnProperty(f)||Ri("Replacing nonexistant public symbol"),e[f].overloadTable!==void 0&&S!==void 0?e[f].overloadTable[S]=_:(e[f]=_,e[f].argCount=S)}var io=(f,_,S)=>{var C=e["dynCall_"+f];return S&&S.length?C.apply(null,[_].concat(S)):C.call(null,_)},Ko=[],oc=f=>{var _=Ko[f];return _||(f>=Ko.length&&(Ko.length=f+1),Ko[f]=_=Wa.get(f)),_},es=(f,_,S)=>{if(f.includes("j"))return io(f,_,S);var C=oc(_).apply(null,S);return C},el=(f,_)=>{var S=[];return function(){return S.length=0,Object.assign(S,arguments),es(f,_,S)}};function tr(f,_){f=Mt(f);function S(){return f.includes("j")?el(f,_):oc(_)}var C=S();return typeof C!="function"&&Ne(`unknown function pointer with signature ${f}: ${_}`),C}function tl(f,_){var S=un(_,function(C){this.name=_,this.message=C;var O=new Error(C).stack;O!==void 0&&(this.stack=this.toString()+`
70
- `+O.replace(/^Error(:[^\n]*)?\n/,""))});return S.prototype=Object.create(f.prototype),S.prototype.constructor=S,S.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},S}var sc=void 0;function nc(f){var _=yc(f),S=Mt(_);return mr(_),S}function hn(f,_){var S=[],C={};function O(B){if(!C[B]&&!jr[B]){if(Yi[B]){Yi[B].forEach(O);return}S.push(B),C[B]=!0}}throw _.forEach(O),new sc(`${f}: `+S.map(nc).join([", "]))}function rl(f,_,S,C,O,B,W,V,ee,$,_e,Ie,ve){_e=Mt(_e),B=tr(O,B),V&&(V=tr(W,V)),$&&($=tr(ee,$)),ve=tr(Ie,ve);var Ue=Qo(_e);ln(Ue,function(){hn(`Cannot construct ${_e} due to unbound types`,[C])}),Jr([f,_,S],C?[C]:[],function(Ye){Ye=Ye[0];var Ft,At;C?(Ft=Ye.registeredClass,At=Ft.instancePrototype):At=Cr.prototype;var Dr=un(Ue,function(){if(Object.getPrototypeOf(this)!==An)throw new yt("Use 'new' to construct "+_e);if(zt.constructor_body===void 0)throw new yt(_e+" has no accessible constructor");var Cc=zt.constructor_body[arguments.length];if(Cc===void 0)throw new yt(`Tried to invoke ctor of ${_e} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(zt.constructor_body).toString()}) parameters instead!`);return Cc.apply(this,arguments)}),An=Object.create(At,{constructor:{value:Dr}});Dr.prototype=An;var zt=new ec(_e,Dr,An,ve,Ft,B,V,$);zt.baseClass&&(zt.baseClass.__derivedClasses===void 0&&(zt.baseClass.__derivedClasses=[]),zt.baseClass.__derivedClasses.push(zt));var Ml=new dr(_e,zt,!0,!1,!1),Rc=new dr(_e+"*",zt,!1,!1,!1),vc=new dr(_e+" const*",zt,!1,!0,!1);return zo[f]={pointerType:Rc,constPointerType:vc},Ku(Ue,Dr),[Ml,Rc,vc]})}function ur(f,_){for(var S=[],C=0;C<f;C++)S.push(x[_+C*4>>2]);return S}function il(f){for(;f.length;){var _=f.pop(),S=f.pop();S(_)}}function ac(f,_){if(!(f instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof f} which is not a function`);var S=un(f.name||"unknownFunctionName",function(){});S.prototype=f.prototype;var C=new S,O=f.apply(C,_);return O instanceof Object?O:C}function oo(f,_,S,C,O,B){var W=_.length;W<2&&Ne("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var V=_[1]!==null&&S!==null,ee=!1,$=1;$<_.length;++$)if(_[$]!==null&&_[$].destructorFunction===void 0){ee=!0;break}for(var _e=_[0].name!=="void",Ie="",ve="",$=0;$<W-2;++$)Ie+=($!==0?", ":"")+"arg"+$,ve+=($!==0?", ":"")+"arg"+$+"Wired";var Ue=`
71
- return function ${Qo(f)}(${Ie}) {
69
+ `,R.push(ie);var Q=_c(Function,R).apply(null,b);return y=bc(Q),S[E]=y,y}function O(n,c){return c+2097152>>>0<4194305-!!n?(n>>>0)+c*4294967296:NaN}var B=()=>{br("")};function W(){return Date.now()}var V=()=>rt.length,te=()=>V(),$=(n,c,u)=>rt.copyWithin(n,c,c+u),_e=n=>{br("OOM")},ye=n=>{var c=rt.length;n>>>=0,_e(n)},Ce={},Ue=()=>d||"./this.program",Ye=()=>{if(!Ye.strings){var n=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",c={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:n,_:Ue()};for(var u in Ce)Ce[u]===void 0?delete c[u]:c[u]=Ce[u];var p=[];for(var u in c)p.push(`${u}=${c[u]}`);Ye.strings=p}return Ye.strings},Ft=(n,c)=>{for(var u=0;u<n.length;++u)Le[c++>>0]=n.charCodeAt(u);Le[c>>0]=0},At=(n,c)=>{var u=0;return Ye().forEach(function(p,E){var y=c+u;ke[n+E*4>>2]=y,Ft(p,y),u+=p.length+1}),0},Dr=(n,c)=>{var u=Ye();ke[n>>2]=u.length;var p=0;return u.forEach(function(E){p+=E.length+1}),ke[c>>2]=p,0};function An(n){try{var c=Qe.getStreamFromFD(n);return g.close(c),0}catch(u){if(typeof g=="undefined"||u.name!=="ErrnoError")throw u;return u.errno}}function zt(n,c){try{var u=0,p=0,E=0,y=Qe.getStreamFromFD(n),R=y.tty?2:g.isDir(y.mode)?3:g.isLink(y.mode)?7:4;return Le[c>>0]=R,jt[c+2>>1]=E,We=[u>>>0,(de=u,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[c+8>>2]=We[0],x[c+12>>2]=We[1],We=[p>>>0,(de=p,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[c+16>>2]=We[0],x[c+20>>2]=We[1],0}catch(b){if(typeof g=="undefined"||b.name!=="ErrnoError")throw b;return b.errno}}var Ml=(n,c,u,p)=>{for(var E=0,y=0;y<u;y++){var R=ke[c>>2],b=ke[c+4>>2];c+=8;var k=g.read(n,Le,R,b,p);if(k<0)return-1;if(E+=k,k<b)break;typeof p!="undefined"&&(p+=k)}return E};function Rc(n,c,u,p){try{var E=Qe.getStreamFromFD(n),y=Ml(E,c,u);return ke[p>>2]=y,0}catch(R){if(typeof g=="undefined"||R.name!=="ErrnoError")throw R;return R.errno}}function vc(n,c,u,p,E){var y=O(c,u);try{if(isNaN(y))return 61;var R=Qe.getStreamFromFD(n);return g.llseek(R,y,p),We=[R.position>>>0,(de=R.position,+Math.abs(de)>=1?de>0?+Math.floor(de/4294967296)>>>0:~~+Math.ceil((de-+(~~de>>>0))/4294967296)>>>0:0)],x[E>>2]=We[0],x[E+4>>2]=We[1],R.getdents&&y===0&&p===0&&(R.getdents=null),0}catch(b){if(typeof g=="undefined"||b.name!=="ErrnoError")throw b;return b.errno}}var Cc=(n,c,u,p)=>{for(var E=0,y=0;y<u;y++){var R=ke[c>>2],b=ke[c+4>>2];c+=8;var k=g.write(n,Le,R,b,p);if(k<0)return-1;E+=k,typeof p!="undefined"&&(p+=k)}return E};function xg(n,c,u,p){try{var E=Qe.getStreamFromFD(n),y=Cc(E,c,u);return ke[p>>2]=y,0}catch(R){if(typeof g=="undefined"||R.name!=="ErrnoError")throw R;return R.errno}}var Ch=function(n,c,u,p){n||(n=this),this.parent=n,this.mount=n.mount,this.mounted=null,this.id=g.nextInode++,this.name=c,this.mode=u,this.node_ops={},this.stream_ops={},this.rdev=p},Dc=365,Nc=146;Object.defineProperties(Ch.prototype,{read:{get:function(){return(this.mode&Dc)===Dc},set:function(n){n?this.mode|=Dc:this.mode&=~Dc}},write:{get:function(){return(this.mode&Nc)===Nc},set:function(n){n?this.mode|=Nc:this.mode&=~Nc}},isFolder:{get:function(){return g.isDir(this.mode)}},isDevice:{get:function(){return g.isChrdev(this.mode)}}}),g.FSNode=Ch,g.createPreloadedFile=Xa,g.staticInit(),to(),Ci=e.BindingError=class extends Error{constructor(c){super(c),this.name="BindingError"}},Ka=e.InternalError=class extends Error{constructor(c){super(c),this.name="InternalError"}},rl(),Ku(),dl(),hc=e.UnboundTypeError=pc(Error,"UnboundTypeError"),gl(),Tl();var kg={p:qa,C:cn,w:eo,t:Qu,n:Yu,r:pl,q:fl,d:_l,D:Ic,k:Sc,c:yl,b:Al,j:Rl,f:yc,o:Nl,g:os,m:Tc,l:C,a:B,e:W,v:te,A:$,u:ye,y:At,z:Dr,i:An,x:zt,B:Rc,s:vc,h:xg},hy=w(),Lg=()=>(Lg=je.F)(),Ol=n=>(Ol=je.G)(n),Yr=n=>(Yr=je.I)(n),Dh=()=>(Dh=je.J)(),Nh=n=>(Nh=je.K)(n),Ug=e.__embind_initialize_bindings=()=>(Ug=e.__embind_initialize_bindings=je.L)(),wh=n=>(wh=je.M)(n),Vg=e.dynCall_jiji=(n,c,u,p,E)=>(Vg=e.dynCall_jiji=je.N)(n,c,u,p,E),fy=e._ff_h264_cabac_tables=67061,wc;Zi=function n(){wc||Mh(),wc||(Zi=n)};function Mh(){if(se>0||($u(),se>0))return;function n(){wc||(wc=!0,e.calledRun=!0,!Qs&&(q(),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Hu()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),n()},1)):n()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return Mh(),t.ready}})(),B_=gS;var su=class extends Br{constructor(t){super(B_,t!=null&&t.wasmPath?fetch(t==null?void 0:t.wasmPath).then(e=>e.arrayBuffer()):void 0,t==null?void 0:t.workerMode,t==null?void 0:t.canvas,t==null?void 0:t.yuvMode)}};var ES=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e=t,r,o;e.ready=new Promise((f,_)=>{r=f,o=_});var s=Object.assign({},e),a=[],d="./this.program",h=(f,_)=>{throw _},m=typeof window=="object",T=typeof importScripts=="function",I=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",v="";function N(f){return e.locateFile?e.locateFile(f,v):v+f}var j,H,z,Te;(m||T)&&(T?v=self.location.href:typeof document!="undefined"&&document.currentScript&&(v=document.currentScript.src),i&&(v=i),v.indexOf("blob:")!==0?v=v.substr(0,v.replace(/[?#].*/,"").lastIndexOf("/")+1):v="",j=f=>{var _=new XMLHttpRequest;return _.open("GET",f,!1),_.send(null),_.responseText},T&&(z=f=>{var _=new XMLHttpRequest;return _.open("GET",f,!1),_.responseType="arraybuffer",_.send(null),new Uint8Array(_.response)}),H=(f,_,S)=>{var C=new XMLHttpRequest;C.open("GET",f,!0),C.responseType="arraybuffer",C.onload=()=>{if(C.status==200||C.status==0&&C.response){_(C.response);return}S()},C.onerror=S,C.send(null)},Te=f=>document.title=f);var xe=e.print||console.log.bind(console),Xe=e.printErr||console.error.bind(console);Object.assign(e,s),s=null,e.arguments&&(a=e.arguments),e.thisProgram&&(d=e.thisProgram),e.quit&&(h=e.quit);var wt;e.wasmBinary&&(wt=e.wasmBinary);var fe=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Ai("no native wasm support detected");var Xs,je,Qs=!1,Fu,Hr,Le,rt,jt,qt,x,ke,Ys;function Ha(){var f=Xs.buffer;e.HEAP8=Hr=new Int8Array(f),e.HEAP16=rt=new Int16Array(f),e.HEAP32=qt=new Int32Array(f),e.HEAPU8=Le=new Uint8Array(f),e.HEAPU16=jt=new Uint16Array(f),e.HEAPU32=x=new Uint32Array(f),e.HEAPF32=ke=new Float32Array(f),e.HEAPF64=Ys=new Float64Array(f)}var Wa,Zs=[],Ks=[],en=[],Ga=!1;function Bu(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)Hu(e.preRun.shift());on(Zs)}function $u(){Ga=!0,on(Ks)}function q(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Gu(e.postRun.shift());on(en)}function Hu(f){Zs.unshift(f)}function Wu(f){Ks.unshift(f)}function Gu(f){en.unshift(f)}var Wr=0,se=null,Gr=null;function Zi(f){Wr++,e.monitorRunDependencies&&e.monitorRunDependencies(Wr)}function Rh(f){if(Wr--,e.monitorRunDependencies&&e.monitorRunDependencies(Wr),Wr==0&&(se!==null&&(clearInterval(se),se=null),Gr)){var _=Gr;Gr=null,_()}}function Ai(f){e.onAbort&&e.onAbort(f),f="Aborted("+f+")",Xe(f),Qs=!0,Fu=1,f+=". Build with -sASSERTIONS for more info.";var _=new WebAssembly.RuntimeError(f);throw o(_),_}var Jo="data:application/octet-stream;base64,";function br(f){return f.startsWith(Jo)}var bi;bi="videodec_simd.wasm",br(bi)||(bi=N(bi));function tn(f){if(f==bi&&wt)return new Uint8Array(wt);if(z)return z(f);throw"both async and sync fetching of the wasm failed"}function Ri(f){return!wt&&(m||T)&&typeof fetch=="function"?fetch(f,{credentials:"same-origin"}).then(_=>{if(!_.ok)throw"failed to load wasm binary file at '"+f+"'";return _.arrayBuffer()}).catch(()=>tn(f)):Promise.resolve().then(()=>tn(f))}function rn(f,_,S){return Ri(f).then(C=>WebAssembly.instantiate(C,_)).then(C=>C).then(S,C=>{Xe("failed to asynchronously prepare wasm: "+C),Ai(C)})}function ju(f,_,S,C){return!f&&typeof WebAssembly.instantiateStreaming=="function"&&!br(_)&&typeof fetch=="function"?fetch(_,{credentials:"same-origin"}).then(O=>{var B=WebAssembly.instantiateStreaming(O,S);return B.then(C,function(W){return Xe("wasm streaming compile failed: "+W),Xe("falling back to ArrayBuffer instantiation"),rn(_,S,C)})}):rn(_,S,C)}function ja(){var f={a:Cl};function _(C,O){var B=C.exports;return je=B,Xs=je.v,Ha(),Wa=je.z,Wu(je.w),Rh("wasm-instantiate"),B}Zi("wasm-instantiate");function S(C){_(C.instance)}if(e.instantiateWasm)try{return e.instantiateWasm(f,_)}catch(C){Xe("Module.instantiateWasm callback failed with error: "+C),o(C)}return ju(wt,bi,f,S).catch(o),{}}var on=f=>{for(;f.length>0;)f.shift()(e)};function w(f){this.excPtr=f,this.ptr=f-24,this.set_type=function(_){x[this.ptr+4>>2]=_},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(_){x[this.ptr+8>>2]=_},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_caught=function(_){_=_?1:0,Hr[this.ptr+12>>0]=_},this.get_caught=function(){return Hr[this.ptr+12>>0]!=0},this.set_rethrown=function(_){_=_?1:0,Hr[this.ptr+13>>0]=_},this.get_rethrown=function(){return Hr[this.ptr+13>>0]!=0},this.init=function(_,S){this.set_adjusted_ptr(0),this.set_type(_),this.set_destructor(S)},this.set_adjusted_ptr=function(_){x[this.ptr+16>>2]=_},this.get_adjusted_ptr=function(){return x[this.ptr+16>>2]},this.get_exception_ptr=function(){var _=Ac(this.get_type());if(_)return x[this.excPtr>>2];var S=this.get_adjusted_ptr();return S!==0?S:this.excPtr}}var de=0,We=0;function sn(f,_,S){var C=new w(f);throw C.init(_,S),de=f,We++,de}function qu(f,_,S,C,O){}function zo(f){switch(f){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${f}`)}}function Ju(){for(var f=new Array(256),_=0;_<256;++_)f[_]=String.fromCharCode(_);qa=f}var qa=void 0;function Mt(f){for(var _="",S=f;Le[S];)_+=qa[Le[S++]];return _}var De={},jr={},Ki={},yt=void 0;function Ne(f){throw new yt(f)}var qr=void 0;function vi(f){throw new qr(f)}function Jr(f,_,S){f.forEach(function(V){Ki[V]=_});function C(V){var te=S(V);te.length!==f.length&&vi("Mismatched type converter count");for(var $=0;$<f.length;++$)Jt(f[$],te[$])}var O=new Array(_.length),B=[],W=0;_.forEach((V,te)=>{jr.hasOwnProperty(V)?O[te]=jr[V]:(B.push(V),De.hasOwnProperty(V)||(De[V]=[]),De[V].push(()=>{O[te]=jr[V],++W,W===B.length&&C(O)}))}),B.length===0&&C(O)}function nn(f,_,S={}){var C=_.name;if(f||Ne(`type "${C}" must have a positive integer typeid pointer`),jr.hasOwnProperty(f)){if(S.ignoreDuplicateRegistrations)return;Ne(`Cannot register type '${C}' twice`)}if(jr[f]=_,delete Ki[f],De.hasOwnProperty(f)){var O=De[f];delete De[f],O.forEach(B=>B())}}function Jt(f,_,S={}){if(!("argPackAdvance"in _))throw new TypeError("registerType registeredInstance requires argPackAdvance");return nn(f,_,S)}function zu(f,_,S,C,O){var B=zo(S);_=Mt(_),Jt(f,{name:_,fromWireType:function(W){return!!W},toWireType:function(W,V){return V?C:O},argPackAdvance:8,readValueFromPointer:function(W){var V;if(S===1)V=Hr;else if(S===2)V=rt;else if(S===4)V=qt;else throw new TypeError("Unknown boolean type size: "+_);return this.fromWireType(V[W>>B])},destructorFunction:null})}function Rr(f){if(!(this instanceof Cr)||!(f instanceof Cr))return!1;for(var _=this.$$.ptrType.registeredClass,S=this.$$.ptr,C=f.$$.ptrType.registeredClass,O=f.$$.ptr;_.baseClass;)S=_.upcast(S),_=_.baseClass;for(;C.baseClass;)O=C.upcast(O),C=C.baseClass;return _===C&&S===O}function Ja(f){return{count:f.count,deleteScheduled:f.deleteScheduled,preservePointerOnDelete:f.preservePointerOnDelete,ptr:f.ptr,ptrType:f.ptrType,smartPtr:f.smartPtr,smartPtrType:f.smartPtrType}}function he(f){function _(S){return S.$$.ptrType.registeredClass.name}Ne(_(f)+" instance already deleted")}var an=!1;function za(f){}function Xu(f){f.smartPtr?f.smartPtrType.rawDestructor(f.smartPtr):f.ptrType.registeredClass.rawDestructor(f.ptr)}function Xa(f){f.count.value-=1;var _=f.count.value===0;_&&Xu(f)}function Qa(f,_,S){if(_===S)return f;if(S.baseClass===void 0)return null;var C=Qa(f,_,S.baseClass);return C===null?null:S.downcast(C)}var Xo={};function g(){return Object.keys(to).length}function Ya(){var f=[];for(var _ in to)to.hasOwnProperty(_)&&f.push(to[_]);return f}var Qe=[];function cn(){for(;Qe.length;){var f=Qe.pop();f.$$.deleteScheduled=!1,f.delete()}}var eo=void 0;function Qu(f){eo=f,Qe.length&&eo&&eo(cn)}function dn(){e.getInheritedInstanceCount=g,e.getLiveInheritedInstances=Ya,e.flushPendingDeletes=cn,e.setDelayFunction=Qu}var to={};function Za(f,_){for(_===void 0&&Ne("ptr should not be undefined");f.baseClass;)_=f.upcast(_),f=f.baseClass;return _}function Ot(f,_){return _=Za(f,_),to[_]}function ar(f,_){(!_.ptrType||!_.ptr)&&vi("makeClassHandle requires ptr and ptrType");var S=!!_.smartPtrType,C=!!_.smartPtr;return S!==C&&vi("Both smartPtrType and smartPtr must be specified"),_.count={value:1},vr(Object.create(f,{$$:{value:_}}))}function zr(f){var _=this.getPointee(f);if(!_)return this.destructor(f),null;var S=Ot(this.registeredClass,_);if(S!==void 0){if(S.$$.count.value===0)return S.$$.ptr=_,S.$$.smartPtr=f,S.clone();var C=S.clone();return this.destructor(f),C}function O(){return this.isSmartPointer?ar(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:_,smartPtrType:this,smartPtr:f}):ar(this.registeredClass.instancePrototype,{ptrType:this,ptr:f})}var B=this.registeredClass.getActualType(_),W=Xo[B];if(!W)return O.call(this);var V;this.isConst?V=W.constPointerType:V=W.pointerType;var te=Qa(_,this.registeredClass,V.registeredClass);return te===null?O.call(this):this.isSmartPointer?ar(V.registeredClass.instancePrototype,{ptrType:V,ptr:te,smartPtrType:this,smartPtr:f}):ar(V.registeredClass.instancePrototype,{ptrType:V,ptr:te})}var vr=function(f){return typeof FinalizationRegistry=="undefined"?(vr=_=>_,f):(an=new FinalizationRegistry(_=>{Xa(_.$$)}),vr=_=>{var S=_.$$,C=!!S.smartPtr;if(C){var O={$$:S};an.register(_,O,_)}return _},za=_=>an.unregister(_),vr(f))};function Ci(){if(this.$$.ptr||he(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var f=vr(Object.create(Object.getPrototypeOf(this),{$$:{value:Ja(this.$$)}}));return f.$$.count.value+=1,f.$$.deleteScheduled=!1,f}function Me(){this.$$.ptr||he(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ne("Object already scheduled for deletion"),za(this),Xa(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Ka(){return!this.$$.ptr}function Qo(){return this.$$.ptr||he(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Ne("Object already scheduled for deletion"),Qe.push(this),Qe.length===1&&eo&&eo(cn),this.$$.deleteScheduled=!0,this}function ro(){Cr.prototype.isAliasOf=Rr,Cr.prototype.clone=Ci,Cr.prototype.delete=Me,Cr.prototype.isDeleted=Ka,Cr.prototype.deleteLater=Qo}function Cr(){}var cr=48,Yu=57;function Yo(f){if(f===void 0)return"_unknown";f=f.replace(/[^a-zA-Z0-9_]/g,"$");var _=f.charCodeAt(0);return _>=cr&&_<=Yu?`_${f}`:f}function un(f,_){return f=Yo(f),{[f]:function(){return _.apply(this,arguments)}}[f]}function Zo(f,_,S){if(f[_].overloadTable===void 0){var C=f[_];f[_]=function(){return f[_].overloadTable.hasOwnProperty(arguments.length)||Ne(`Function '${S}' called with an invalid number of arguments (${arguments.length}) - expects one of (${f[_].overloadTable})!`),f[_].overloadTable[arguments.length].apply(this,arguments)},f[_].overloadTable=[],f[_].overloadTable[C.argCount]=C}}function ln(f,_,S){e.hasOwnProperty(f)?((S===void 0||e[f].overloadTable!==void 0&&e[f].overloadTable[S]!==void 0)&&Ne(`Cannot register public name '${f}' twice`),Zo(e,f,f),e.hasOwnProperty(S)&&Ne(`Cannot register multiple overloads of a function with the same number of arguments (${S})!`),e[f].overloadTable[S]=_):(e[f]=_,S!==void 0&&(e[f].numArguments=S))}function ec(f,_,S,C,O,B,W,V){this.name=f,this.constructor=_,this.instancePrototype=S,this.rawDestructor=C,this.baseClass=O,this.getActualType=B,this.upcast=W,this.downcast=V,this.pureVirtualFunctions=[]}function mn(f,_,S){for(;_!==S;)_.upcast||Ne(`Expected null or instance of ${S.name}, got an instance of ${_.name}`),f=_.upcast(f),_=_.baseClass;return f}function tc(f,_){if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),0;_.$$||Ne(`Cannot pass "${_n(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`);var S=_.$$.ptrType.registeredClass,C=mn(_.$$.ptr,S,this.registeredClass);return C}function rc(f,_){var S;if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),this.isSmartPointer?(S=this.rawConstructor(),f!==null&&f.push(this.rawDestructor,S),S):0;_.$$||Ne(`Cannot pass "${_n(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&_.$$.ptrType.isConst&&Ne(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);var C=_.$$.ptrType.registeredClass;if(S=mn(_.$$.ptr,C,this.registeredClass),this.isSmartPointer)switch(_.$$.smartPtr===void 0&&Ne("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:_.$$.smartPtrType===this?S=_.$$.smartPtr:Ne(`Cannot convert argument of type ${_.$$.smartPtrType?_.$$.smartPtrType.name:_.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:S=_.$$.smartPtr;break;case 2:if(_.$$.smartPtrType===this)S=_.$$.smartPtr;else{var O=_.clone();S=this.rawShare(S,Xr.toHandle(function(){O.delete()})),f!==null&&f.push(this.rawDestructor,S)}break;default:Ne("Unsupporting sharing policy")}return S}function ic(f,_){if(_===null)return this.isReference&&Ne(`null is not a valid ${this.name}`),0;_.$$||Ne(`Cannot pass "${_n(_)}" as a ${this.name}`),_.$$.ptr||Ne(`Cannot pass deleted object as a pointer of type ${this.name}`),_.$$.ptrType.isConst&&Ne(`Cannot convert argument of type ${_.$$.ptrType.name} to parameter type ${this.name}`);var S=_.$$.ptrType.registeredClass,C=mn(_.$$.ptr,S,this.registeredClass);return C}function Ko(f){return this.fromWireType(qt[f>>2])}function Zu(f){return this.rawGetPointee&&(f=this.rawGetPointee(f)),f}function io(f){this.rawDestructor&&this.rawDestructor(f)}function pn(f){f!==null&&f.delete()}function oo(){dr.prototype.getPointee=Zu,dr.prototype.destructor=io,dr.prototype.argPackAdvance=8,dr.prototype.readValueFromPointer=Ko,dr.prototype.deleteObject=pn,dr.prototype.fromWireType=zr}function dr(f,_,S,C,O,B,W,V,te,$,_e){this.name=f,this.registeredClass=_,this.isReference=S,this.isConst=C,this.isSmartPointer=O,this.pointeeType=B,this.sharingPolicy=W,this.rawGetPointee=V,this.rawConstructor=te,this.rawShare=$,this.rawDestructor=_e,!O&&_.baseClass===void 0?C?(this.toWireType=tc,this.destructorFunction=null):(this.toWireType=ic,this.destructorFunction=null):this.toWireType=rc}function Ku(f,_,S){e.hasOwnProperty(f)||vi("Replacing nonexistant public symbol"),e[f].overloadTable!==void 0&&S!==void 0?e[f].overloadTable[S]=_:(e[f]=_,e[f].argCount=S)}var so=(f,_,S)=>{var C=e["dynCall_"+f];return S&&S.length?C.apply(null,[_].concat(S)):C.call(null,_)},es=[],oc=f=>{var _=es[f];return _||(f>=es.length&&(es.length=f+1),es[f]=_=Wa.get(f)),_},ts=(f,_,S)=>{if(f.includes("j"))return so(f,_,S);var C=oc(_).apply(null,S);return C},el=(f,_)=>{var S=[];return function(){return S.length=0,Object.assign(S,arguments),ts(f,_,S)}};function tr(f,_){f=Mt(f);function S(){return f.includes("j")?el(f,_):oc(_)}var C=S();return typeof C!="function"&&Ne(`unknown function pointer with signature ${f}: ${_}`),C}function tl(f,_){var S=un(_,function(C){this.name=_,this.message=C;var O=new Error(C).stack;O!==void 0&&(this.stack=this.toString()+`
70
+ `+O.replace(/^Error(:[^\n]*)?\n/,""))});return S.prototype=Object.create(f.prototype),S.prototype.constructor=S,S.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},S}var sc=void 0;function nc(f){var _=yc(f),S=Mt(_);return mr(_),S}function hn(f,_){var S=[],C={};function O(B){if(!C[B]&&!jr[B]){if(Ki[B]){Ki[B].forEach(O);return}S.push(B),C[B]=!0}}throw _.forEach(O),new sc(`${f}: `+S.map(nc).join([", "]))}function rl(f,_,S,C,O,B,W,V,te,$,_e,ye,Ce){_e=Mt(_e),B=tr(O,B),V&&(V=tr(W,V)),$&&($=tr(te,$)),Ce=tr(ye,Ce);var Ue=Yo(_e);ln(Ue,function(){hn(`Cannot construct ${_e} due to unbound types`,[C])}),Jr([f,_,S],C?[C]:[],function(Ye){Ye=Ye[0];var Ft,At;C?(Ft=Ye.registeredClass,At=Ft.instancePrototype):At=Cr.prototype;var Dr=un(Ue,function(){if(Object.getPrototypeOf(this)!==An)throw new yt("Use 'new' to construct "+_e);if(zt.constructor_body===void 0)throw new yt(_e+" has no accessible constructor");var Cc=zt.constructor_body[arguments.length];if(Cc===void 0)throw new yt(`Tried to invoke ctor of ${_e} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(zt.constructor_body).toString()}) parameters instead!`);return Cc.apply(this,arguments)}),An=Object.create(At,{constructor:{value:Dr}});Dr.prototype=An;var zt=new ec(_e,Dr,An,Ce,Ft,B,V,$);zt.baseClass&&(zt.baseClass.__derivedClasses===void 0&&(zt.baseClass.__derivedClasses=[]),zt.baseClass.__derivedClasses.push(zt));var Ml=new dr(_e,zt,!0,!1,!1),Rc=new dr(_e+"*",zt,!1,!1,!1),vc=new dr(_e+" const*",zt,!1,!0,!1);return Xo[f]={pointerType:Rc,constPointerType:vc},Ku(Ue,Dr),[Ml,Rc,vc]})}function ur(f,_){for(var S=[],C=0;C<f;C++)S.push(x[_+C*4>>2]);return S}function il(f){for(;f.length;){var _=f.pop(),S=f.pop();S(_)}}function ac(f,_){if(!(f instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof f} which is not a function`);var S=un(f.name||"unknownFunctionName",function(){});S.prototype=f.prototype;var C=new S,O=f.apply(C,_);return O instanceof Object?O:C}function no(f,_,S,C,O,B){var W=_.length;W<2&&Ne("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var V=_[1]!==null&&S!==null,te=!1,$=1;$<_.length;++$)if(_[$]!==null&&_[$].destructorFunction===void 0){te=!0;break}for(var _e=_[0].name!=="void",ye="",Ce="",$=0;$<W-2;++$)ye+=($!==0?", ":"")+"arg"+$,Ce+=($!==0?", ":"")+"arg"+$+"Wired";var Ue=`
71
+ return function ${Yo(f)}(${ye}) {
72
72
  if (arguments.length !== ${W-2}) {
73
73
  throwBindingError('function ${f} called with ${arguments.length} arguments, expected ${W-2} args!');
74
- }`;ee&&(Ue+=`var destructors = [];
75
- `);var Ye=ee?"destructors":"null",Ft=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],At=[Ne,C,O,il,_[0],_[1]];V&&(Ue+="var thisWired = classParam.toWireType("+Ye+`, this);
74
+ }`;te&&(Ue+=`var destructors = [];
75
+ `);var Ye=te?"destructors":"null",Ft=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],At=[Ne,C,O,il,_[0],_[1]];V&&(Ue+="var thisWired = classParam.toWireType("+Ye+`, this);
76
76
  `);for(var $=0;$<W-2;++$)Ue+="var arg"+$+"Wired = argType"+$+".toWireType("+Ye+", arg"+$+"); // "+_[$+2].name+`
77
- `,Ft.push("argType"+$),At.push(_[$+2]);if(V&&(ve="thisWired"+(ve.length>0?", ":"")+ve),Ue+=(_e||B?"var rv = ":"")+"invoker(fn"+(ve.length>0?", ":"")+ve+`);
78
- `,ee)Ue+=`runDestructors(destructors);
77
+ `,Ft.push("argType"+$),At.push(_[$+2]);if(V&&(Ce="thisWired"+(Ce.length>0?", ":"")+Ce),Ue+=(_e||B?"var rv = ":"")+"invoker(fn"+(Ce.length>0?", ":"")+Ce+`);
78
+ `,te)Ue+=`runDestructors(destructors);
79
79
  `;else for(var $=V?1:2;$<_.length;++$){var Dr=$===1?"thisWired":"arg"+($-2)+"Wired";_[$].destructorFunction!==null&&(Ue+=Dr+"_dtor("+Dr+"); // "+_[$].name+`
80
80
  `,Ft.push(Dr+"_dtor"),At.push(_[$].destructorFunction))}return _e&&(Ue+=`var ret = retType.fromWireType(rv);
81
81
  return ret;
82
82
  `),Ue+=`}
83
- `,Ft.push(Ue),ac(Function,Ft).apply(null,At)}function fn(f,_,S,C,O,B){var W=ur(_,S);O=tr(C,O),Jr([],[f],function(V){V=V[0];var ee=`constructor ${V.name}`;if(V.registeredClass.constructor_body===void 0&&(V.registeredClass.constructor_body=[]),V.registeredClass.constructor_body[_-1]!==void 0)throw new yt(`Cannot register multiple constructors with identical number of parameters (${_-1}) for class '${V.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return V.registeredClass.constructor_body[_-1]=()=>{hn(`Cannot construct ${V.name} due to unbound types`,W)},Jr([],W,function($){return $.splice(1,0,null),V.registeredClass.constructor_body[_-1]=oo(ee,$,null,O,B),[]}),[]})}function cc(f,_,S,C,O,B,W,V,ee){var $=ur(S,C);_=Mt(_),B=tr(O,B),Jr([],[f],function(_e){_e=_e[0];var Ie=`${_e.name}.${_}`;_.startsWith("@@")&&(_=Symbol[_.substring(2)]),V&&_e.registeredClass.pureVirtualFunctions.push(_);function ve(){hn(`Cannot call ${Ie} due to unbound types`,$)}var Ue=_e.registeredClass.instancePrototype,Ye=Ue[_];return Ye===void 0||Ye.overloadTable===void 0&&Ye.className!==_e.name&&Ye.argCount===S-2?(ve.argCount=S-2,ve.className=_e.name,Ue[_]=ve):(Yo(Ue,_,Ie),Ue[_].overloadTable[S-2]=ve),Jr([],$,function(Ft){var At=oo(Ie,Ft,_e,B,W,ee);return Ue[_].overloadTable===void 0?(At.argCount=S-2,Ue[_]=At):Ue[_].overloadTable[S-2]=At,[]}),[]})}function ol(){Object.assign(dc.prototype,{get(f){return this.allocated[f]},has(f){return this.allocated[f]!==void 0},allocate(f){var _=this.freelist.pop()||this.allocated.length;return this.allocated[_]=f,_},free(f){this.allocated[f]=void 0,this.freelist.push(f)}})}function dc(){this.allocated=[void 0],this.freelist=[]}var Pt=new dc;function uc(f){f>=Pt.reserved&&--Pt.get(f).refcount===0&&Pt.free(f)}function sl(){for(var f=0,_=Pt.reserved;_<Pt.allocated.length;++_)Pt.allocated[_]!==void 0&&++f;return f}function nl(){Pt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Pt.reserved=Pt.allocated.length,e.count_emval_handles=sl}var Xr={toValue:f=>(f||Ne("Cannot use deleted val. handle = "+f),Pt.get(f).value),toHandle:f=>{switch(f){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Pt.allocate({refcount:1,value:f})}}};function al(f,_){_=Mt(_),Jt(f,{name:_,fromWireType:function(S){var C=Xr.toValue(S);return uc(S),C},toWireType:function(S,C){return Xr.toHandle(C)},argPackAdvance:8,readValueFromPointer:Zo,destructorFunction:null})}function _n(f){if(f===null)return"null";var _=typeof f;return _==="object"||_==="array"||_==="function"?f.toString():""+f}function cl(f,_){switch(_){case 2:return function(S){return this.fromWireType(xe[S>>2])};case 3:return function(S){return this.fromWireType(Ys[S>>3])};default:throw new TypeError("Unknown float type: "+f)}}function dl(f,_,S){var C=Jo(S);_=Mt(_),Jt(f,{name:_,fromWireType:function(O){return O},toWireType:function(O,B){return B},argPackAdvance:8,readValueFromPointer:cl(_,C),destructorFunction:null})}function lr(f,_,S){switch(_){case 0:return S?function(O){return Hr[O]}:function(O){return Le[O]};case 1:return S?function(O){return rt[O>>1]}:function(O){return jt[O>>1]};case 2:return S?function(O){return qt[O>>2]}:function(O){return x[O>>2]};default:throw new TypeError("Unknown integer type: "+f)}}function ul(f,_,S,C,O){_=Mt(_),O===-1&&(O=4294967295);var B=Jo(S),W=Ie=>Ie;if(C===0){var V=32-8*S;W=Ie=>Ie<<V>>>V}var ee=_.includes("unsigned"),$=(Ie,ve)=>{},_e;ee?_e=function(Ie,ve){return $(ve,this.name),ve>>>0}:_e=function(Ie,ve){return $(ve,this.name),ve},Jt(f,{name:_,fromWireType:W,toWireType:_e,argPackAdvance:8,readValueFromPointer:lr(_,B,C!==0),destructorFunction:null})}function ll(f,_,S){var C=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],O=C[_];function B(W){W=W>>2;var V=x,ee=V[W],$=V[W+1];return new O(V.buffer,$,ee)}S=Mt(S),Jt(f,{name:S,fromWireType:B,argPackAdvance:8,readValueFromPointer:B},{ignoreDuplicateRegistrations:!0})}var ts=(f,_,S,C)=>{if(!(C>0))return 0;for(var O=S,B=S+C-1,W=0;W<f.length;++W){var V=f.charCodeAt(W);if(V>=55296&&V<=57343){var ee=f.charCodeAt(++W);V=65536+((V&1023)<<10)|ee&1023}if(V<=127){if(S>=B)break;_[S++]=V}else if(V<=2047){if(S+1>=B)break;_[S++]=192|V>>6,_[S++]=128|V&63}else if(V<=65535){if(S+2>=B)break;_[S++]=224|V>>12,_[S++]=128|V>>6&63,_[S++]=128|V&63}else{if(S+3>=B)break;_[S++]=240|V>>18,_[S++]=128|V>>12&63,_[S++]=128|V>>6&63,_[S++]=128|V&63}}return _[S]=0,S-O},lc=(f,_,S)=>ts(f,Le,_,S),ml=f=>{for(var _=0,S=0;S<f.length;++S){var C=f.charCodeAt(S);C<=127?_++:C<=2047?_+=2:C>=55296&&C<=57343?(_+=4,++S):_+=3}return _},mc=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Qr=(f,_,S)=>{for(var C=_+S,O=_;f[O]&&!(O>=C);)++O;if(O-_>16&&f.buffer&&mc)return mc.decode(f.subarray(_,O));for(var B="";_<O;){var W=f[_++];if(!(W&128)){B+=String.fromCharCode(W);continue}var V=f[_++]&63;if((W&224)==192){B+=String.fromCharCode((W&31)<<6|V);continue}var ee=f[_++]&63;if((W&240)==224?W=(W&15)<<12|V<<6|ee:W=(W&7)<<18|V<<12|ee<<6|f[_++]&63,W<65536)B+=String.fromCharCode(W);else{var $=W-65536;B+=String.fromCharCode(55296|$>>10,56320|$&1023)}}return B},pc=(f,_)=>f?Qr(Le,f,_):"";function hc(f,_){_=Mt(_);var S=_==="std::string";Jt(f,{name:_,fromWireType:function(C){var O=x[C>>2],B=C+4,W;if(S)for(var V=B,ee=0;ee<=O;++ee){var $=B+ee;if(ee==O||Le[$]==0){var _e=$-V,Ie=pc(V,_e);W===void 0?W=Ie:(W+="\0",W+=Ie),V=$+1}}else{for(var ve=new Array(O),ee=0;ee<O;++ee)ve[ee]=String.fromCharCode(Le[B+ee]);W=ve.join("")}return mr(C),W},toWireType:function(C,O){O instanceof ArrayBuffer&&(O=new Uint8Array(O));var B,W=typeof O=="string";W||O instanceof Uint8Array||O instanceof Uint8ClampedArray||O instanceof Int8Array||Ne("Cannot pass non-string to std::string"),S&&W?B=ml(O):B=O.length;var V=Sn(4+B+1),ee=V+4;if(x[V>>2]=B,S&&W)lc(O,ee,B+1);else if(W)for(var $=0;$<B;++$){var _e=O.charCodeAt($);_e>255&&(mr(ee),Ne("String has UTF-16 code units that do not fit in 8 bits")),Le[ee+$]=_e}else for(var $=0;$<B;++$)Le[ee+$]=O[$];return C!==null&&C.push(mr,V),V},argPackAdvance:8,readValueFromPointer:Zo,destructorFunction:function(C){mr(C)}})}var gn=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,En=(f,_)=>{for(var S=f,C=S>>1,O=C+_/2;!(C>=O)&&jt[C];)++C;if(S=C<<1,S-f>32&&gn)return gn.decode(Le.subarray(f,S));for(var B="",W=0;!(W>=_/2);++W){var V=rt[f+W*2>>1];if(V==0)break;B+=String.fromCharCode(V)}return B},pl=(f,_,S)=>{if(S===void 0&&(S=2147483647),S<2)return 0;S-=2;for(var C=_,O=S<f.length*2?S/2:f.length,B=0;B<O;++B){var W=f.charCodeAt(B);rt[_>>1]=W,_+=2}return rt[_>>1]=0,_-C},fc=f=>f.length*2,hl=(f,_)=>{for(var S=0,C="";!(S>=_/4);){var O=qt[f+S*4>>2];if(O==0)break;if(++S,O>=65536){var B=O-65536;C+=String.fromCharCode(55296|B>>10,56320|B&1023)}else C+=String.fromCharCode(O)}return C},_c=(f,_,S)=>{if(S===void 0&&(S=2147483647),S<4)return 0;for(var C=_,O=C+S-4,B=0;B<f.length;++B){var W=f.charCodeAt(B);if(W>=55296&&W<=57343){var V=f.charCodeAt(++B);W=65536+((W&1023)<<10)|V&1023}if(qt[_>>2]=W,_+=4,_+4>O)break}return qt[_>>2]=0,_-C},gc=f=>{for(var _=0,S=0;S<f.length;++S){var C=f.charCodeAt(S);C>=55296&&C<=57343&&++S,_+=4}return _},fl=function(f,_,S){S=Mt(S);var C,O,B,W,V;_===2?(C=En,O=pl,W=fc,B=()=>jt,V=1):_===4&&(C=hl,O=_c,W=gc,B=()=>x,V=2),Jt(f,{name:S,fromWireType:function(ee){for(var $=x[ee>>2],_e=B(),Ie,ve=ee+4,Ue=0;Ue<=$;++Ue){var Ye=ee+4+Ue*_;if(Ue==$||_e[Ye>>V]==0){var Ft=Ye-ve,At=C(ve,Ft);Ie===void 0?Ie=At:(Ie+="\0",Ie+=At),ve=Ye+_}}return mr(ee),Ie},toWireType:function(ee,$){typeof $!="string"&&Ne(`Cannot pass non-string to C++ string type ${S}`);var _e=W($),Ie=Sn(4+_e+_);return x[Ie>>2]=_e>>V,O($,Ie+4,_e+_),ee!==null&&ee.push(mr,Ie),Ie},argPackAdvance:8,readValueFromPointer:Zo,destructorFunction:function(ee){mr(ee)}})};function _l(f,_){_=Mt(_),Jt(f,{isVoid:!0,name:_,argPackAdvance:0,fromWireType:function(){},toWireType:function(S,C){}})}var gl={};function Ec(f){var _=gl[f];return _===void 0?Mt(f):_}var xt=[];function Tc(f,_,S,C){f=xt[f],_=Xr.toValue(_),S=Ec(S),f(_,S,null,C)}function El(f){var _=xt.length;return xt.push(f),_}function Tl(f,_){var S=jr[f];return S===void 0&&Ne(_+" has unknown type "+nc(f)),S}function rs(f,_){for(var S=new Array(f),C=0;C<f;++C)S[C]=Tl(x[_+C*4>>2],"parameter "+C);return S}var Ic=[];function Tn(f,_){var S=rs(f,_),C=S[0],O=C.name+"_$"+S.slice(1).map(function(Ye){return Ye.name}).join("_")+"$",B=Ic[O];if(B!==void 0)return B;for(var W=["retType"],V=[C],ee="",$=0;$<f-1;++$)ee+=($!==0?", ":"")+"arg"+$,W.push("argType"+$),V.push(S[1+$]);for(var _e=Qo("methodCaller_"+O),Ie="return function "+_e+`(handle, name, destructors, args) {
84
- `,ve=0,$=0;$<f-1;++$)Ie+=" var arg"+$+" = argType"+$+".readValueFromPointer(args"+(ve?"+"+ve:"")+`);
85
- `,ve+=S[$+1].argPackAdvance;Ie+=" var rv = handle[name]("+ee+`);
86
- `;for(var $=0;$<f-1;++$)S[$+1].deleteObject&&(Ie+=" argType"+$+".deleteObject(arg"+$+`);
87
- `);C.isVoid||(Ie+=` return retType.toWireType(destructors, rv);
88
- `),Ie+=`};
89
- `,W.push(Ie);var Ue=ac(Function,W).apply(null,V);return B=El(Ue),Ic[O]=B,B}var Il=()=>{yi("")},Sc;Sc=()=>performance.now();var Sl=(f,_,S)=>Le.copyWithin(f,_,_+S),yl=f=>{yi("OOM")},Al=f=>{var _=Le.length;f>>>=0,yl(f)},bl=[null,[],[]],Rl=(f,_)=>{var S=bl[f];_===0||_===10?((f===1?Pe:Xe)(Qr(S,0)),S.length=0):S.push(_)},In={varargs:void 0,get(){In.varargs+=4;var f=qt[In.varargs-4>>2];return f},getStr(f){var _=pc(f);return _}},vl=(f,_,S,C)=>{for(var O=0,B=0;B<S;B++){var W=x[_>>2],V=x[_+4>>2];_+=8;for(var ee=0;ee<V;ee++)Rl(f,Le[W+ee]);O+=V}return x[C>>2]=O,0};Ju(),yt=e.BindingError=class extends Error{constructor(_){super(_),this.name="BindingError"}},qr=e.InternalError=class extends Error{constructor(_){super(_),this.name="InternalError"}},eo(),dn(),ro(),sc=e.UnboundTypeError=tl(Error,"UnboundTypeError"),ol(),nl();var Cl={o:sn,r:qu,m:zu,q:rl,p:fn,d:cc,u:al,k:dl,b:ul,a:ll,j:hc,g:fl,n:_l,e:Tc,l:uc,h:Tn,f:Il,c:Sc,t:Sl,s:Al,i:vl},Rh=ja(),Dl=()=>(Dl=je.w)(),mr=f=>(mr=je.x)(f),Sn=f=>(Sn=je.y)(f),yc=f=>(yc=je.A)(f),Nl=e.__embind_initialize_bindings=()=>(Nl=e.__embind_initialize_bindings=je.B)(),wl=()=>(wl=je.__errno_location)(),Ac=f=>(Ac=je.C)(f),yn=e.dynCall_jiji=(f,_,S,C,O)=>(yn=e.dynCall_jiji=je.D)(f,_,S,C,O),is;Gr=function f(){is||bc(),is||(Gr=f)};function bc(){if(Wr>0||(Bu(),Wr>0))return;function f(){is||(is=!0,e.calledRun=!0,!Qs&&($u(),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),q()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),f()},1)):f()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return bc(),t.ready}})(),B_=ES;var nu=class extends Br{constructor(t){super(B_,t!=null&&t.wasmPath?fetch(t.wasmPath).then(e=>e.arrayBuffer()):void 0,t==null?void 0:t.workerMode,t==null?void 0:t.canvas,t==null?void 0:t.yuvMode)}};var au=class au{constructor(t){this.core=t;l(this,"contextMap",new Map);l(this,"decodeProcessorMap",new WeakMap);this.createDecoder=this.createDecoder.bind(this)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return au.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return this.core.rtcDectection.isSIMDSupported()?new nu(pe(J({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec_simd.wasm`})):new su(pe(J({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec.wasm`}));case"webCodecs":return new Ti;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(t){this.decodeProcessorMap.set(t.track,this.decode(t)),this.core.room.videoManager.addDecodeProcessor({processor:({frame:e,track:r})=>{var o;return((o=this.decodeProcessorMap.get(r))==null?void 0:o({frame:e,track:r}))||e},type:3})}decode(t){let{pipe:e,take:r,subscribe:o}=this.core.rx;return({frame:s,track:a})=>{if(a!==t.track||s.type==="empty")return s;if(this.contextMap.has(a))return this.contextMap.get(a).decode(s);let d=this.core.room.videoManager.createDecodeContext(pe(J({},t),{createDecoder:this.createDecoder}));return e(d.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:a})})),this.contextMap.set(a,d),d.decode(s)}}stop(t){if(!(t!=null&&t.track))this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});else{let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.contextMap.delete(t.track))}this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST);return}e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(pe(J({},t),{createDecoder:this.createDecoder})))}}};l(au,"Name","TRTCVideoDecoder");var wa=au;var cg=Ci(ki());function Hp({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return Ae((r,o)=>{let s=new WeakMap;return F.on(P.ROOM_DESTROY,({room:a})=>s.delete(a)),function(...a){let d=s.get(this);if(d||(d={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,d)),d.timestamp===0?d.timestamp=Date.now():Date.now()-d.timestamp>1e3&&(d.timestamp=Date.now(),d.callCountInSecond=0,d.totalSizeInSecond=0),e&&(d.totalSizeInSecond+=e(...a)),d.timestamp!==0&&Date.now()-d.timestamp<1e3&&(d.callCountInSecond>=i||d.totalSizeInSecond>t))throw new ue({code:Y.INVALID_OPERATION,message:st({key:ot.CALL_FREQUENCY_LIMIT,data:{isTimes:d.callCountInSecond>=i,isSize:d.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});d.callCountInSecond++,r.call(this,...a)}})}var TS="2025-02-19 13:15:02",$_=!0,H_=function(){var i;$_&&($_=!1,U.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${Nr}/en/index.html`),console.info(`* Changelog: ${Nr}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),U.info("TRTC Web SDK Version:",Ke),Tr||U.debug("Build Time:",TS),U.info("UA:",navigator.userAgent),U.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),Kn().then(t=>{t&&U.info(fr)}))};var nr={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var ae={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},yr=(w=>(w[w.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",w[w.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",w[w.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",w[w.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",w[w.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",w[w.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",w[w.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",w[w.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",w[w.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",w[w.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",w[w.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",w[w.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",w[w.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",w[w.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",w[w.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",w[w.INVALID_ROOM_ID_REQUIED=5015]="INVALID_ROOM_ID_REQUIED",w[w.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",w[w.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",w[w.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",w[w.INVALID_OPERATION=5100]="INVALID_OPERATION",w[w.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",w[w.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",w[w.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",w[w.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",w[w.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",w[w.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",w[w.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",w[w.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",w[w.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",w[w.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",w[w.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",w[w.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",w[w.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",w[w.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",w[w.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",w[w.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",w[w.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",w[w.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",w[w.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",w[w.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",w[w.DEVICE_ERROR=5300]="DEVICE_ERROR",w[w.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",w[w.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",w[w.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",w[w.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",w[w.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",w[w.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",w[w.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",w[w.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",w[w.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",w[w.SERVER_ERROR=5400]="SERVER_ERROR",w[w.NEED_TO_BUY=5401]="NEED_TO_BUY",w[w.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",w[w.OPERATION_FAILED=5500]="OPERATION_FAILED",w[w.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",w[w.REJOIN_FAILED=5502]="REJOIN_FAILED",w[w.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",w[w.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",w[w.VIDEO_DECODE_ERROR=5505]="VIDEO_DECODE_ERROR",w[w.OPERATION_ABORT=5998]="OPERATION_ABORT",w[w.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",w))(yr||{});function G_({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=yr[i];try{o=W_[s]}catch(a){o=W_.UNKNOWN_ERROR}return Fe(o)?r=o(t):Se(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var W_=pe(J({},Wt),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ut(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ut(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=$o(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=$o(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=$o(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=$o(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=$o(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=$o(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=$o(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function $o(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var Wp=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:a="",originError:d}){var m;let h;o?h=o:h=G_({code:e===ae.SERVER_ERROR?e:r||e,params:J({fnName:a,error:d},s)});super(h);l(this,"name","RtcError");l(this,"code");l(this,"extraCode");l(this,"functionName");l(this,"message");l(this,"handler");l(this,"originError");this.name=yr[e],this.code=e,this.extraCode=r,this.functionName=a,this.originError=d,this.message=h,this.extraCode===5302&&((m=this.originError)!=null&&m.message.includes("system"))&&(this.handler=()=>{let T={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},I={startLocalVideo:"webcam",startLocalAudio:"microphone"},v=document.createElement("a");ho?v.href=`ms-settings:privacy-${I[this.functionName]}`:Er&&(v.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${T[this.functionName]}`),v.href.length>0&&v.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof ue){let{stack:a}=e,d={code:ae.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case Y.INVALID_PARAMETER:d.code=ae.INVALID_PARAMETER,d.message=e.message;break;case Y.INVALID_OPERATION:d.code=ae.INVALID_OPERATION;break;case Y.NOT_SUPPORTED:case Y.NOT_SUPPORTED_H264:d.code=ae.ENV_NOT_SUPPORTED,e.getCode()===Y.NOT_SUPPORTED_H264&&(d.extraCode=e.message.includes(Wt.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Y.JOIN_ROOM_FAILED:d.messageParams={fnParams:o};case Y.SERVER_TIMEOUT:case Y.SWITCH_ROLE_FAILED:d.code=ae.SERVER_ERROR,d.extraCode=e.getExtraCode();break;case Y.API_CALL_ABORTED:d.code=ae.OPERATION_ABORT;break;case Y.DEVICE_NOT_FOUND:case Y.DEVICE_AUTO_RECOVER_FAILED:case Y.INITIALIZE_FAILED:d.code=5300,e.name&&(d.extraCode=IS(e.name));break;case Y.UNKNOWN:break;default:d.code=ae.OPERATION_FAILED}s=new i(d),a&&(s.stack+=a.substr(a.indexOf(`
90
- `)))}else{if(e instanceof i)return e;s=new i({code:ae.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function IS(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var oe=Wp;var j_={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},q_={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},Hs={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Se(i)&&!document.getElementById(i))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},J_={name:"userId",required:!0,type:"string"},z_={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[nr.AUDIO_PROFILE_STANDARD,nr.AUDIO_PROFILE_STANDARD_STEREO,nr.AUDIO_PROFILE_HIGH,nr.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Ma(i,t){if(!i)throw new oe({code:ae.INVALID_OPERATION,extraCode:5101,fnName:t})}function X_(i,t,e){if(!i)throw new oe({code:ae.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}var NP={type:"number",notLessThanZero:!0},SS={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new oe({code:ae.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(Se(i.roomId))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});if(!(/^[1-9]\d*$/.test(String(i.roomId))&&i.roomId<4294967295))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5013,fnName:e,messageParams:{key:t}})}else if(i.strRoomId){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i.strRoomId))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5012,fnName:e,messageParams:{key:t}})}else throw new oe({code:ae.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:Hs,mute:{type:["boolean","string"]},publish:{type:"boolean"},option:j_},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&mi())throw new oe({code:ae.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:pe(J({},Hs),{required:!1}),publish:{type:"boolean"},mute:{type:["boolean","string"]},option:j_}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:z_},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&mi())throw new oe({code:ae.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:z_}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:Hs,publish:{type:"boolean"},option:q_},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)&&mi())throw new oe({code:ae.ENV_NOT_SUPPORTED,extraCode:5201});if(!da())throw new oe({code:ae.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:Hs,publish:{type:"boolean"},option:q_}},muteRemoteAudio:[J_,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[J_,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:Hs,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){Ma(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(X_(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ae.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:pe(J({},Hs),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){Ma(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(X_(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ae.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&L(i.streamType))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){Ma(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!pa)throw new oe({code:ae.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:ae.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});Ma(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new oe({code:ae.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(Ma(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:ae.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}}},Et={TRTC:SS};var Dt=class extends Error{};function yS(i,t){let e=lo(i);for(let r=0;r<t.length;r++)Or(e[r],t[r]);return e}function AS(i){this._resolve=Promise.resolve(i)}function bS(i){this._reject=Promise.reject(i)}var Wi=class Wi{constructor(t,e){this.instance=t;this.group=e;l(this,"started",!1);l(this,"ops",[]);l(this,"startSame",()=>!0);l(this,"mergeUpdate",yS);let r=Wi.instances.get(t);r?r.set(e,this):Wi.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=Wi.instances.get(t);return r&&r.get(e)||new Wi(t,e)}static gets(t,e){let r=Wi.instances.get(t),o=[];return r&&r.forEach((s,a)=>{e.test(a)&&o.push(s)}),o}action(t,e,r){let o=d=>{var h;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(h=this.currentOp)==null||h.action(),d},s=d=>{var h,m;throw this.ops.shift(),t===0&&((h=this.currentOp)==null?void 0:h.type)===2&&this.ops.shift().reject(new Dt("start failed")),(m=this.currentOp)==null||m.action(),d},a={type:t,action:()=>e(...a.args).then(o,s),args:r,resolve:AS,reject:bS};try{switch(this.state){case 1:if(t===0)throw new Dt("already started");break;case 4:if(t===2)throw new Dt("not started");break;default:return this.cacheOp(a)}}catch(d){return Promise.reject(d)}return this.ops.push(a),a.promise=e(...a.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Dt("already start");break;case 3:switch(t.type){case 2:throw new Dt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Dt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Dt("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new Dt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Dt("start not allowed after update");case 0:throw new Dt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Dt("keep start")),new Dt("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};l(Wi,"instances",new WeakMap);var Ii=Wi;var cu=new WeakMap,du=(i,t)=>{if(t instanceof Dt){let{stack:e}=t;t=new oe({code:ae.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
91
- `)))}throw t};function Gi(i,t){return Ae((e,r)=>function(...o){let s=Ii.get(this,typeof i=="string"?i:i.call(this,...o));return s?(t&&(s.startSame=t.bind(this)),s.action(0,e.bind(this),o).catch(du.bind(null,r))):e.apply(this,o)})}function Ho(i,t){let{merge:e,debounce:r}=t||{};return Ae((o,s)=>function(...a){let d=Ii.get(this,typeof i=="string"?i:i.call(this,...a));if(!d)return o.apply(this,a);if(e&&(d.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,a)){let{delay:h,getKey:m}=r;return new Promise((T,I)=>{var j,H;let v=(j=cu.get(this))==null?void 0:j.get(m(...a));if(v){let{timeoutId:z,resolve:Te}=v;clearTimeout(z),Te()}let N=setTimeout(()=>{if(d.state===3||d.state===4)return T();d.action(2,o.bind(this),a).catch(du.bind(null,s)).then(T,I)},h);cu.has(this)?(H=cu.get(this))==null||H.set(m(...a),{timeoutId:N,resolve:T}):cu.set(this,new Map([[m(...a),{timeoutId:N,resolve:T}]]))})}return d.action(2,o.bind(this),a).catch(du.bind(null,s))})}function ji(i){return Ae((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Ii.gets(this,o).map(a=>a.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Ii.get(this,o);return s?s.action(3,t.bind(this),r).catch(du.bind(null,e)):t.apply(this,r)})}var K={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame"},Q_=new Set([K.ERROR,K.AUTOPLAY_FAILED,K.KICKED_OUT,K.REMOTE_USER_ENTER,K.REMOTE_USER_EXIT,K.REMOTE_AUDIO_AVAILABLE,K.REMOTE_AUDIO_UNAVAILABLE,K.REMOTE_VIDEO_AVAILABLE,K.REMOTE_VIDEO_UNAVAILABLE,K.CONNECTION_STATE_CHANGED,K.PUBLISH_STATE_CHANGED,K.SCREEN_SHARE_STOPPED,K.DEVICE_CHANGED,K.FIRST_VIDEO_FRAME]);function qi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function Oa(i){return i===nr.QOS_PREFERENCE_CLEAR?"detail":i===nr.QOS_PREFERENCE_SMOOTH?"motion":""}var jp={};Kr(jp,{bytes2ms:()=>jh,convertObjectNumberToInt:()=>Fn,copyProperties:()=>Gh,deepClone:()=>lo,deepMerge:()=>Or,delay:()=>Bn,fibonacci:()=>mo,formatedTime:()=>Gc,getConstructorName:()=>Un,getContainerFromElement:()=>Kh,getEnv:()=>$h,getInternalVersion:()=>Yh,getLoggerUrl:()=>ii,getMuteStateFromFlag:()=>Vn,getNetworkType:()=>kn,getNumNetworkType:()=>$c,getReconnectionTimeout:()=>Jh,getStringByteLength:()=>ef,getTurnServer:()=>Zh,getUint32Version:()=>Jc,getValueType:()=>ut,getViewListFromView:()=>ls,glog:()=>Ln,ipv4ToUint32:()=>us,isArray:()=>it,isAudioWorkletSupported:()=>Qh,isBoolean:()=>nt,isConstructor:()=>ds,isEmpty:()=>Wc,isFunction:()=>Fe,isLangChinese:()=>hr,isMediaStreamTrack:()=>zh,isNumber:()=>$e,isObject:()=>rr,isOverseaSdkAppId:()=>xn,isPlainObject:()=>Bt,isPortrait:()=>qc,isPromise:()=>Ni,isRemoteTrack:()=>Xh,isString:()=>Se,isUndefined:()=>L,loadImage:()=>ms,ms2bytes:()=>qh,ms2samples:()=>zl,performanceNow:()=>ge,promiseAny:()=>Hc,samples2ms:()=>Jl,setNetworkType:()=>Wh,stringify:()=>ir,stringifyIncludeValue:()=>jc,throttlePromise:()=>zc});var zp={};Kr(zp,{getAbilityConfigUrl:()=>vS,getScheduleDomain:()=>Pa,isNeedToSchedule:()=>uu,scheduleProxy:()=>Ar,sendScheduleRequest:()=>Jp,setIsNeedToSchedule:()=>Wo,setScheduleProxy:()=>lu});var qp=null,uu=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(ri).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
92
- `));function Wo(i){nt(i)&&i!==uu&&(uu=i,U.info(`setIsNeedToSchedule ${i}`))}F.on("28",()=>Wo(!0));F.on("63",()=>Wo(!0));F.on("84",()=>Wo(!0));F.on("201",i=>{i.state==="RECONNECTING"&&Wo(!0)});F.on("202",i=>{i.state==="RECONNECTING"&&Wo(!0)});function RS(i,t,e){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),s=Ws(i,D.MAIN),a=Ws(i,D.BACKUP);for(let d of o)if(d.startTime>=e&&(d.name===s||d.name===a)&&d.transferSize>0){let h=d.name===s?D.MAIN:D.BACKUP,m=Math.round(d.duration),T=Math.round(d.domainLookupStart-d.startTime),I=d.redirectStart>0?Math.round(d.redirectEnd-d.redirectStart):0,v=d.fetchStart>0?Math.round(d.domainLookupStart-d.fetchStart):0,N=Math.round(d.domainLookupEnd-d.domainLookupStart),j=Math.round(d.requestStart-d.secureConnectionStart),H=Math.round(d.secureConnectionStart-d.connectStart),z=Math.round(d.responseStart-d.requestStart),Te=Math.round(d.responseEnd-d.responseStart),Pe=[N,j,H,z,Te];Ve.uploadEvent({log:`stat-schedule-net:${m}(${T}(${I}->${v})->${Pe.join("->")}) ${h}`,userId:t}),r=pe(J({},r),{totalCost:m,local:T,dns:N,tcp:H,tls:j,request:z,response:Te});break}}catch(o){U.error("getScheduleDetailCost error",o)}return r}function Jp(m){return A(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:a,role:d,latencyLevel:h}){if(!uu&&qp)return{isCached:!0,result:qp};let T={delta:0,count:[1,1],msg:[],detail:[]};try{let I=new FormData;I.append("userId",String(i)),I.append("sdkAppId",String(t)),I.append("isStrGroupId",String(e)),I.append("groupId",String(r)),I.append("sdkVersion",s),I.append("userSig",String(o)),d&&I.append("role",String(d)),h&&I.append("latencyLevel",String(h)),a&&I.append("frameWorkType",String(a));let v=ge(),N=yield DS(I,T,t);N.config&&(N.config.loggerDomain&&no(N.config.loggerDomain),nt(N.config.scheduleCache)&&Wo(!N.config.scheduleCache)),T.delta=ge()-v;let j=RS(Number(t),i,v);return qp=N,{isCached:!1,result:N,detailCost:j}}catch(I){let v=it(I)?I[0]:I,N=$e(v.code)?v.code:0,j=`schedule failed${v.message?`: ${v.message}`:""}`,H=new ue({code:Y.SCHEDULE_FAILED,extraCode:N,message:st({key:ot.JOIN_ROOM_FAILED,data:{error:j,code:N}})});throw U.error(j,N),H}})}var Ar={main:"",backup:""};function lu(i){it(i)?(Ar.main=i[0],Ar.backup=i[1]):Ar.main=i}function Ws(i,t=D.MAIN,e=!1){return`https://${Ar[t]||Pa(i,t,e)}/api/v1/config`}function vS(i,t=D.MAIN){return`https://${Ar[t]||Pa(i,t)}/api/v1/trtcAutoConf`}function Pa(i,t=D.MAIN,e=!1){let r;return xn(i)?e?r=t===D.MAIN?ri.MAIN_OVERSEA_BACKUP:ri.BACKUP_OVERSEA:r=t===D.MAIN?ri.MAIN_OVERSEA:ri.BACKUP_OVERSEA:r=t===D.MAIN?ri.MAIN:ri.BACKUP,r}function CS(i,t,e){return new Promise((r,o)=>{oi({url:i,body:t,timeout:e.timeout,priority:"high"}).then(s=>{s.data.code===0?r(s.data.data):o({code:s.data.code,message:s.data.msg})}).catch(o)})}var Y_=(i,t)=>Mi({retryFunction:CS,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function DS(i,t,e){return new Promise((r,o)=>{let s=null;Hc([Y_(a=>t.count[0]=a+1,({error:a,retry:d,retriedCount:h,retryFuncArgs:m})=>{t.msg[0]=a.message,s||(h>=1&&(m[0]=Ws(e,D.MAIN,!0)),d())})(Ws(e,D.MAIN),i,{get timeout(){return mo(2+t.count[0])*1e3}}),Y_(a=>t.count[1]=a+1,({error:a,retry:d,retriedCount:h,retryFuncArgs:m})=>{t.msg[1]=a.message,s||(h>=2&&(m[0]=Ws(e,D.BACKUP,!0)),d())})(Ws(e,D.BACKUP),i,{get timeout(){return mo(2+t.count[1])*1e3}})]).then(a=>{s=a,r(s)}).catch(o)})}var NS=i=>i.startsWith("data:application/octet-stream;base64,"),wS=i=>i.startsWith("file://"),mu=class{constructor(){l(this,"_log");this._log=U.createLogger({id:"fd"})}download(t,e){return A(this,null,function*(){let{type:r="blob"}=e||{};try{let o=ge(),s;if(Fe(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let a=ge()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${a}ms`),X.addSuccessEvent({key:522700,cost:ge()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),X.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return A(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok)throw new Error("network response was not ok");let o;return e==="arraybuffer"?o=yield r.arrayBuffer():o=yield r.blob(),{data:o}}catch(r){throw r}})}downloadWithXHR(t,e){return this._log.info(`download with xhr: ${t}, return type: ${e}`),new Promise((r,o)=>{let s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType=e,s.onload=()=>{s.status===200||s.status===0&&s.response?r({data:s.response}):o(new Error("XHR failed"))},s.onerror=o,s.send(null)})}loadWasm(t,e){return A(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=ge(),o=null,s=null;if(Fe(WebAssembly.instantiateStreaming)&&!NS(t)&&!wS(t)&&Fe(fetch))try{let a=fetch(t);o=(yield WebAssembly.instantiateStreaming(a,e)).instance}catch(a){s=a}if(!o)try{let a=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(a,e)).instance}catch(a){s=a}if(o){let a=ge()-r;return this._log.info(`loadedWasm ${t}, cost: ${a}ms`),X.addSuccessEvent({key:522701,cost:a}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),X.addFailedEvent({key:522701,error:s}),s})}};G([Ui({settings:{timeout:0,retries:3},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],mu.prototype,"download",1);var Z_=new mu;function K_({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,room:t,assetsPath:r,fileDownloader:Z_,innerEmitter:F,constants:ql,environment:bs,utils:jp,eventLogger:Ve,log:this.room.getLogger(),loggerManager:U,errorModule:e,kvStatManager:X,rtcDectection:Li,trtc:this,rx:$p,enums:vm,schedule:zp,clearStarted:(o,s)=>{let a=o.getAlias(),d=Ii.instances.get(this);if(d)if(s){let h=d.get(a+s);if(!h)return;h.started=!1}else d.forEach((h,m)=>{m.startsWith(a)&&(h.started=!1)})},startGetPCM:ba,createAudioNode:Qm}}var eg=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=st({key:ot.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return U.warn(`${s}
83
+ `,Ft.push(Ue),ac(Function,Ft).apply(null,At)}function fn(f,_,S,C,O,B){var W=ur(_,S);O=tr(C,O),Jr([],[f],function(V){V=V[0];var te=`constructor ${V.name}`;if(V.registeredClass.constructor_body===void 0&&(V.registeredClass.constructor_body=[]),V.registeredClass.constructor_body[_-1]!==void 0)throw new yt(`Cannot register multiple constructors with identical number of parameters (${_-1}) for class '${V.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return V.registeredClass.constructor_body[_-1]=()=>{hn(`Cannot construct ${V.name} due to unbound types`,W)},Jr([],W,function($){return $.splice(1,0,null),V.registeredClass.constructor_body[_-1]=no(te,$,null,O,B),[]}),[]})}function cc(f,_,S,C,O,B,W,V,te){var $=ur(S,C);_=Mt(_),B=tr(O,B),Jr([],[f],function(_e){_e=_e[0];var ye=`${_e.name}.${_}`;_.startsWith("@@")&&(_=Symbol[_.substring(2)]),V&&_e.registeredClass.pureVirtualFunctions.push(_);function Ce(){hn(`Cannot call ${ye} due to unbound types`,$)}var Ue=_e.registeredClass.instancePrototype,Ye=Ue[_];return Ye===void 0||Ye.overloadTable===void 0&&Ye.className!==_e.name&&Ye.argCount===S-2?(Ce.argCount=S-2,Ce.className=_e.name,Ue[_]=Ce):(Zo(Ue,_,ye),Ue[_].overloadTable[S-2]=Ce),Jr([],$,function(Ft){var At=no(ye,Ft,_e,B,W,te);return Ue[_].overloadTable===void 0?(At.argCount=S-2,Ue[_]=At):Ue[_].overloadTable[S-2]=At,[]}),[]})}function ol(){Object.assign(dc.prototype,{get(f){return this.allocated[f]},has(f){return this.allocated[f]!==void 0},allocate(f){var _=this.freelist.pop()||this.allocated.length;return this.allocated[_]=f,_},free(f){this.allocated[f]=void 0,this.freelist.push(f)}})}function dc(){this.allocated=[void 0],this.freelist=[]}var Pt=new dc;function uc(f){f>=Pt.reserved&&--Pt.get(f).refcount===0&&Pt.free(f)}function sl(){for(var f=0,_=Pt.reserved;_<Pt.allocated.length;++_)Pt.allocated[_]!==void 0&&++f;return f}function nl(){Pt.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Pt.reserved=Pt.allocated.length,e.count_emval_handles=sl}var Xr={toValue:f=>(f||Ne("Cannot use deleted val. handle = "+f),Pt.get(f).value),toHandle:f=>{switch(f){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Pt.allocate({refcount:1,value:f})}}};function al(f,_){_=Mt(_),Jt(f,{name:_,fromWireType:function(S){var C=Xr.toValue(S);return uc(S),C},toWireType:function(S,C){return Xr.toHandle(C)},argPackAdvance:8,readValueFromPointer:Ko,destructorFunction:null})}function _n(f){if(f===null)return"null";var _=typeof f;return _==="object"||_==="array"||_==="function"?f.toString():""+f}function cl(f,_){switch(_){case 2:return function(S){return this.fromWireType(ke[S>>2])};case 3:return function(S){return this.fromWireType(Ys[S>>3])};default:throw new TypeError("Unknown float type: "+f)}}function dl(f,_,S){var C=zo(S);_=Mt(_),Jt(f,{name:_,fromWireType:function(O){return O},toWireType:function(O,B){return B},argPackAdvance:8,readValueFromPointer:cl(_,C),destructorFunction:null})}function lr(f,_,S){switch(_){case 0:return S?function(O){return Hr[O]}:function(O){return Le[O]};case 1:return S?function(O){return rt[O>>1]}:function(O){return jt[O>>1]};case 2:return S?function(O){return qt[O>>2]}:function(O){return x[O>>2]};default:throw new TypeError("Unknown integer type: "+f)}}function ul(f,_,S,C,O){_=Mt(_),O===-1&&(O=4294967295);var B=zo(S),W=ye=>ye;if(C===0){var V=32-8*S;W=ye=>ye<<V>>>V}var te=_.includes("unsigned"),$=(ye,Ce)=>{},_e;te?_e=function(ye,Ce){return $(Ce,this.name),Ce>>>0}:_e=function(ye,Ce){return $(Ce,this.name),Ce},Jt(f,{name:_,fromWireType:W,toWireType:_e,argPackAdvance:8,readValueFromPointer:lr(_,B,C!==0),destructorFunction:null})}function ll(f,_,S){var C=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],O=C[_];function B(W){W=W>>2;var V=x,te=V[W],$=V[W+1];return new O(V.buffer,$,te)}S=Mt(S),Jt(f,{name:S,fromWireType:B,argPackAdvance:8,readValueFromPointer:B},{ignoreDuplicateRegistrations:!0})}var rs=(f,_,S,C)=>{if(!(C>0))return 0;for(var O=S,B=S+C-1,W=0;W<f.length;++W){var V=f.charCodeAt(W);if(V>=55296&&V<=57343){var te=f.charCodeAt(++W);V=65536+((V&1023)<<10)|te&1023}if(V<=127){if(S>=B)break;_[S++]=V}else if(V<=2047){if(S+1>=B)break;_[S++]=192|V>>6,_[S++]=128|V&63}else if(V<=65535){if(S+2>=B)break;_[S++]=224|V>>12,_[S++]=128|V>>6&63,_[S++]=128|V&63}else{if(S+3>=B)break;_[S++]=240|V>>18,_[S++]=128|V>>12&63,_[S++]=128|V>>6&63,_[S++]=128|V&63}}return _[S]=0,S-O},lc=(f,_,S)=>rs(f,Le,_,S),ml=f=>{for(var _=0,S=0;S<f.length;++S){var C=f.charCodeAt(S);C<=127?_++:C<=2047?_+=2:C>=55296&&C<=57343?(_+=4,++S):_+=3}return _},mc=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Qr=(f,_,S)=>{for(var C=_+S,O=_;f[O]&&!(O>=C);)++O;if(O-_>16&&f.buffer&&mc)return mc.decode(f.subarray(_,O));for(var B="";_<O;){var W=f[_++];if(!(W&128)){B+=String.fromCharCode(W);continue}var V=f[_++]&63;if((W&224)==192){B+=String.fromCharCode((W&31)<<6|V);continue}var te=f[_++]&63;if((W&240)==224?W=(W&15)<<12|V<<6|te:W=(W&7)<<18|V<<12|te<<6|f[_++]&63,W<65536)B+=String.fromCharCode(W);else{var $=W-65536;B+=String.fromCharCode(55296|$>>10,56320|$&1023)}}return B},pc=(f,_)=>f?Qr(Le,f,_):"";function hc(f,_){_=Mt(_);var S=_==="std::string";Jt(f,{name:_,fromWireType:function(C){var O=x[C>>2],B=C+4,W;if(S)for(var V=B,te=0;te<=O;++te){var $=B+te;if(te==O||Le[$]==0){var _e=$-V,ye=pc(V,_e);W===void 0?W=ye:(W+="\0",W+=ye),V=$+1}}else{for(var Ce=new Array(O),te=0;te<O;++te)Ce[te]=String.fromCharCode(Le[B+te]);W=Ce.join("")}return mr(C),W},toWireType:function(C,O){O instanceof ArrayBuffer&&(O=new Uint8Array(O));var B,W=typeof O=="string";W||O instanceof Uint8Array||O instanceof Uint8ClampedArray||O instanceof Int8Array||Ne("Cannot pass non-string to std::string"),S&&W?B=ml(O):B=O.length;var V=Sn(4+B+1),te=V+4;if(x[V>>2]=B,S&&W)lc(O,te,B+1);else if(W)for(var $=0;$<B;++$){var _e=O.charCodeAt($);_e>255&&(mr(te),Ne("String has UTF-16 code units that do not fit in 8 bits")),Le[te+$]=_e}else for(var $=0;$<B;++$)Le[te+$]=O[$];return C!==null&&C.push(mr,V),V},argPackAdvance:8,readValueFromPointer:Ko,destructorFunction:function(C){mr(C)}})}var gn=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,En=(f,_)=>{for(var S=f,C=S>>1,O=C+_/2;!(C>=O)&&jt[C];)++C;if(S=C<<1,S-f>32&&gn)return gn.decode(Le.subarray(f,S));for(var B="",W=0;!(W>=_/2);++W){var V=rt[f+W*2>>1];if(V==0)break;B+=String.fromCharCode(V)}return B},pl=(f,_,S)=>{if(S===void 0&&(S=2147483647),S<2)return 0;S-=2;for(var C=_,O=S<f.length*2?S/2:f.length,B=0;B<O;++B){var W=f.charCodeAt(B);rt[_>>1]=W,_+=2}return rt[_>>1]=0,_-C},fc=f=>f.length*2,hl=(f,_)=>{for(var S=0,C="";!(S>=_/4);){var O=qt[f+S*4>>2];if(O==0)break;if(++S,O>=65536){var B=O-65536;C+=String.fromCharCode(55296|B>>10,56320|B&1023)}else C+=String.fromCharCode(O)}return C},_c=(f,_,S)=>{if(S===void 0&&(S=2147483647),S<4)return 0;for(var C=_,O=C+S-4,B=0;B<f.length;++B){var W=f.charCodeAt(B);if(W>=55296&&W<=57343){var V=f.charCodeAt(++B);W=65536+((W&1023)<<10)|V&1023}if(qt[_>>2]=W,_+=4,_+4>O)break}return qt[_>>2]=0,_-C},gc=f=>{for(var _=0,S=0;S<f.length;++S){var C=f.charCodeAt(S);C>=55296&&C<=57343&&++S,_+=4}return _},fl=function(f,_,S){S=Mt(S);var C,O,B,W,V;_===2?(C=En,O=pl,W=fc,B=()=>jt,V=1):_===4&&(C=hl,O=_c,W=gc,B=()=>x,V=2),Jt(f,{name:S,fromWireType:function(te){for(var $=x[te>>2],_e=B(),ye,Ce=te+4,Ue=0;Ue<=$;++Ue){var Ye=te+4+Ue*_;if(Ue==$||_e[Ye>>V]==0){var Ft=Ye-Ce,At=C(Ce,Ft);ye===void 0?ye=At:(ye+="\0",ye+=At),Ce=Ye+_}}return mr(te),ye},toWireType:function(te,$){typeof $!="string"&&Ne(`Cannot pass non-string to C++ string type ${S}`);var _e=W($),ye=Sn(4+_e+_);return x[ye>>2]=_e>>V,O($,ye+4,_e+_),te!==null&&te.push(mr,ye),ye},argPackAdvance:8,readValueFromPointer:Ko,destructorFunction:function(te){mr(te)}})};function _l(f,_){_=Mt(_),Jt(f,{isVoid:!0,name:_,argPackAdvance:0,fromWireType:function(){},toWireType:function(S,C){}})}var gl={};function Ec(f){var _=gl[f];return _===void 0?Mt(f):_}var xt=[];function Tc(f,_,S,C){f=xt[f],_=Xr.toValue(_),S=Ec(S),f(_,S,null,C)}function El(f){var _=xt.length;return xt.push(f),_}function Tl(f,_){var S=jr[f];return S===void 0&&Ne(_+" has unknown type "+nc(f)),S}function is(f,_){for(var S=new Array(f),C=0;C<f;++C)S[C]=Tl(x[_+C*4>>2],"parameter "+C);return S}var Ic=[];function Tn(f,_){var S=is(f,_),C=S[0],O=C.name+"_$"+S.slice(1).map(function(Ye){return Ye.name}).join("_")+"$",B=Ic[O];if(B!==void 0)return B;for(var W=["retType"],V=[C],te="",$=0;$<f-1;++$)te+=($!==0?", ":"")+"arg"+$,W.push("argType"+$),V.push(S[1+$]);for(var _e=Yo("methodCaller_"+O),ye="return function "+_e+`(handle, name, destructors, args) {
84
+ `,Ce=0,$=0;$<f-1;++$)ye+=" var arg"+$+" = argType"+$+".readValueFromPointer(args"+(Ce?"+"+Ce:"")+`);
85
+ `,Ce+=S[$+1].argPackAdvance;ye+=" var rv = handle[name]("+te+`);
86
+ `;for(var $=0;$<f-1;++$)S[$+1].deleteObject&&(ye+=" argType"+$+".deleteObject(arg"+$+`);
87
+ `);C.isVoid||(ye+=` return retType.toWireType(destructors, rv);
88
+ `),ye+=`};
89
+ `,W.push(ye);var Ue=ac(Function,W).apply(null,V);return B=El(Ue),Ic[O]=B,B}var Il=()=>{Ai("")},Sc;Sc=()=>performance.now();var Sl=(f,_,S)=>Le.copyWithin(f,_,_+S),yl=f=>{Ai("OOM")},Al=f=>{var _=Le.length;f>>>=0,yl(f)},bl=[null,[],[]],Rl=(f,_)=>{var S=bl[f];_===0||_===10?((f===1?xe:Xe)(Qr(S,0)),S.length=0):S.push(_)},In={varargs:void 0,get(){In.varargs+=4;var f=qt[In.varargs-4>>2];return f},getStr(f){var _=pc(f);return _}},vl=(f,_,S,C)=>{for(var O=0,B=0;B<S;B++){var W=x[_>>2],V=x[_+4>>2];_+=8;for(var te=0;te<V;te++)Rl(f,Le[W+te]);O+=V}return x[C>>2]=O,0};Ju(),yt=e.BindingError=class extends Error{constructor(_){super(_),this.name="BindingError"}},qr=e.InternalError=class extends Error{constructor(_){super(_),this.name="InternalError"}},ro(),dn(),oo(),sc=e.UnboundTypeError=tl(Error,"UnboundTypeError"),ol(),nl();var Cl={o:sn,r:qu,m:zu,q:rl,p:fn,d:cc,u:al,k:dl,b:ul,a:ll,j:hc,g:fl,n:_l,e:Tc,l:uc,h:Tn,f:Il,c:Sc,t:Sl,s:Al,i:vl},vh=ja(),Dl=()=>(Dl=je.w)(),mr=f=>(mr=je.x)(f),Sn=f=>(Sn=je.y)(f),yc=f=>(yc=je.A)(f),Nl=e.__embind_initialize_bindings=()=>(Nl=e.__embind_initialize_bindings=je.B)(),wl=()=>(wl=je.__errno_location)(),Ac=f=>(Ac=je.C)(f),yn=e.dynCall_jiji=(f,_,S,C,O)=>(yn=e.dynCall_jiji=je.D)(f,_,S,C,O),os;Gr=function f(){os||bc(),os||(Gr=f)};function bc(){if(Wr>0||(Bu(),Wr>0))return;function f(){os||(os=!0,e.calledRun=!0,!Qs&&($u(),r(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),q()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),f()},1)):f()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return bc(),t.ready}})(),$_=ES;var nu=class extends Br{constructor(t){super($_,t!=null&&t.wasmPath?fetch(t.wasmPath).then(e=>e.arrayBuffer()):void 0,t==null?void 0:t.workerMode,t==null?void 0:t.canvas,t==null?void 0:t.yuvMode)}};var au=class au{constructor(t){this.core=t;l(this,"contextMap",new Map);l(this,"decodeProcessorMap",new WeakMap);this.createDecoder=this.createDecoder.bind(this)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return au.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){switch(t){case"wasm":return this.core.rtcDectection.isSIMDSupported()?new nu(pe(J({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec_simd.wasm`})):new su(pe(J({},e),{wasmPath:`${this.core.assetsPath||"."}/videodec.wasm`}));case"webCodecs":return new Ii;case"mse":throw new Error("mse decoder not supported yet");default:throw new Error("Unsupported decoder type")}}start(t){this.decodeProcessorMap.set(t.track,this.decode(t)),this.core.room.videoManager.addDecodeProcessor({processor:({frame:e,track:r})=>{var o;return((o=this.decodeProcessorMap.get(r))==null?void 0:o({frame:e,track:r}))||e},type:3})}decode(t){let{pipe:e,take:r,subscribe:o}=this.core.rx;return({frame:s,track:a})=>{if(a!==t.track||s.type==="empty")return s;if(this.contextMap.has(a))return this.contextMap.get(a).decode(s);let d=this.core.room.videoManager.createDecodeContext(pe(J({},t),{createDecoder:this.createDecoder}));return e(d.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:a})})),this.contextMap.set(a,d),d.decode(s)}}stop(t){if(!(t!=null&&t.track))this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});else{let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.contextMap.delete(t.track))}this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST);return}e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(pe(J({},t),{createDecoder:this.createDecoder})))}}};l(au,"Name","TRTCVideoDecoder");var wa=au;var dg=Di(Li());function Wp({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return Re((r,o)=>{let s=new WeakMap;return F.on(P.ROOM_DESTROY,({room:a})=>s.delete(a)),function(...a){let d=s.get(this);if(d||(d={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,d)),d.timestamp===0?d.timestamp=Date.now():Date.now()-d.timestamp>1e3&&(d.timestamp=Date.now(),d.callCountInSecond=0,d.totalSizeInSecond=0),e&&(d.totalSizeInSecond+=e(...a)),d.timestamp!==0&&Date.now()-d.timestamp<1e3&&(d.callCountInSecond>=i||d.totalSizeInSecond>t))throw new ue({code:Y.INVALID_OPERATION,message:st({key:ot.CALL_FREQUENCY_LIMIT,data:{isTimes:d.callCountInSecond>=i,isSize:d.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});d.callCountInSecond++,r.call(this,...a)}})}var TS="2025-02-20 18:45:31",H_=!0,W_=function(){var i;H_&&(H_=!1,U.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${Nr}/en/index.html`),console.info(`* Changelog: ${Nr}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),U.info("TRTC Web SDK Version:",Ke),Tr||U.debug("Build Time:",TS),U.info("UA:",navigator.userAgent),U.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),Kn().then(t=>{t&&U.info(fr)}))};var nr={SCENE_LIVE:"live",SCENE_RTC:"rtc",ROLE_ANCHOR:"anchor",ROLE_AUDIENCE:"audience",STREAM_TYPE_MAIN:"main",STREAM_TYPE_SUB:"sub",AUDIO_PROFILE_STANDARD:"standard",AUDIO_PROFILE_STANDARD_STEREO:"standard-stereo",AUDIO_PROFILE_HIGH:"high",AUDIO_PROFILE_HIGH_STEREO:"high-stereo",QOS_PREFERENCE_SMOOTH:"smooth",QOS_PREFERENCE_CLEAR:"clear",SPEAKER:"Speakerphone",HEADSET:"Headset earpiece"};var ae={INVALID_PARAMETER:5e3,INVALID_OPERATION:5100,ENV_NOT_SUPPORTED:5200,DEVICE_ERROR:5300,SERVER_ERROR:5400,OPERATION_FAILED:5500,OPERATION_ABORT:5998,UNKNOWN_ERROR:5999},yr=(w=>(w[w.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",w[w.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",w[w.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",w[w.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",w[w.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",w[w.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",w[w.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",w[w.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",w[w.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",w[w.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",w[w.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",w[w.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",w[w.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",w[w.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",w[w.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",w[w.INVALID_ROOM_ID_REQUIED=5015]="INVALID_ROOM_ID_REQUIED",w[w.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",w[w.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",w[w.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",w[w.INVALID_OPERATION=5100]="INVALID_OPERATION",w[w.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",w[w.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",w[w.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",w[w.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",w[w.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",w[w.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",w[w.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",w[w.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",w[w.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",w[w.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",w[w.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",w[w.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",w[w.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",w[w.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",w[w.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",w[w.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",w[w.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",w[w.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",w[w.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",w[w.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",w[w.DEVICE_ERROR=5300]="DEVICE_ERROR",w[w.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",w[w.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",w[w.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",w[w.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",w[w.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",w[w.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",w[w.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",w[w.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",w[w.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",w[w.SERVER_ERROR=5400]="SERVER_ERROR",w[w.NEED_TO_BUY=5401]="NEED_TO_BUY",w[w.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",w[w.OPERATION_FAILED=5500]="OPERATION_FAILED",w[w.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",w[w.REJOIN_FAILED=5502]="REJOIN_FAILED",w[w.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",w[w.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",w[w.VIDEO_DECODE_ERROR=5505]="VIDEO_DECODE_ERROR",w[w.OPERATION_ABORT=5998]="OPERATION_ABORT",w[w.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",w))(yr||{});function j_({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=yr[i];try{o=G_[s]}catch(a){o=G_.UNKNOWN_ERROR}return Fe(o)?r=o(t):Ae(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var G_=pe(J({},Wt),{INVALID_PARAMETER({fnName:i}){return`the parameters of the '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_PARAMETER_REQUIRED({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' is a required param when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_TYPE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s="";return Array.isArray(t.type)?s=t.type.join("|"):s=t.type,`'${o}' must be type of ${s} when calling ${e}(), received type: ${ut(r)}.`},INVALID_PARAMETER_EMPTY({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' cannot be '${r}' when calling ${e}().`},INVALID_PARAMETER_INSTANCE({key:i,rule:t,fnName:e,value:r}){let o=`${i||t.name}`,s=`${t.instanceOf.name||t.instanceOf}`;return`'${o}' must be instanceof ${s} when calling ${e}(), received type: ${ut(r)}.`},INVALID_PARAMETER_RANGE({key:i,rule:t,fnName:e,value:r}){return`'${i||t.name}' must be one of ${t.values.join("|")} when calling ${e}(), received: ${r}.`},INVALID_PARAMETER_LESS_THAN_ZERO({key:i,rule:t,fnName:e}){return`'${i||t.name}' cannot be less than 0 when calling ${e}().`},INVALID_PARAMETER_MIN({key:i,rule:t,value:e}){return`the min value of ${i||t.name} is ${t.min}, received: ${e}.`},INVALID_PARAMETER_MAX({key:i,rule:t,value:e}){return`the max value of ${i||t.name} is ${t.max}, received: ${e}.`},INVALID_ELEMENT_ID({key:i,fnName:t}){return`'${i}' is not found in the document object when calling ${t}().`},INVALID_ELEMENT_ID_TYPE({key:i,fnName:t,type:e}){return`the element corresponding to '${i}' must be instanceof HTMLElement when calling ${t}(), received: ${e}.`},INVALID_STREAM_ID({key:i}){return`'${i}' can only consist of uppercase and lowercase english letters (a-zA-Z), numbers (0-9), hyphens and underscores.`},INVALID_ROOM_ID_STRING({key:i}){return`'${i}' must be a valid string.`},INVALID_ROOM_ID_INTEGER({key:i}){return`'${i}' must be an integer between [1, 4294967294].`},INVALID_ROOM_ID_INTEGER_STRING({key:i}){return`'${i}' must be an integer but go a string, use 'parseInt' to convert it or use 'strRoomId' instead.`},INVALID_ROOM_ID_REQUIED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_STREAM_TYPE:({fnName:i})=>`'streamType' is required when 'userId' is not '*', calling ${i}()`,INVALID_IMAGE_URL:"The 'src' param must be filled in when the background type is image.",INVALID_OPERATION({fnName:i}){return`the API '${i}' you called does not meet the requirements, please check the API documentation.`},INVALID_OPERATION_NOT_JOINED({fnName:i}){return`cannot ${i} because you are not enter room yet.`},INVALID_OPERATION_REMOTE_USER_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing stream.`},INVALID_OPERATION_STREAM_TYPE_NOT_EXIST({fnName:i,value:t}){return`cannot ${i} because remote user(userId: ${t.userId}) does not publishing ${t.streamType} video.`},INVALID_OPERATION_REPEAT_CALL({fnName:i}){return`you are already ${i}(), cannot repeated call '${i}'.`},INVALID_OPERATION_NEED_VIDEO({fnName:i}){return`cannot call '${i}' because the camera is not turned on.`},INVALID_OPERATION_NEED_AUDIO({fnName:i}){return`cannot call '${i}' because the microphone is not turned on.`},INVALID_BUFFER_EMPTY:({key:i})=>`the buffer size of paramerter '${i}' cannot be empty`,INVALID_BUFFER_OVERSIZE:()=>"buffer size is over 1000 Bytes",INVALID_ROLE_AUDIENCE:()=>"role: 'audience' cannot call this api.",INVALID_NOT_ENABLE_SEI:()=>"you need to enable SEI in TRTC.create({ enableSEI: true })",INVALID_NEED_CALL_PUBLISHED:({fnName:i})=>`you need to call ${i}() after publish stream.`,ENV_NOT_SUPPORTED({fnName:i}){return`the current browser does not support the capability of the function '${i}' you are calling, please check the API documentation.`},NOT_SUPPORTED_WEBRTC:"the current browser does not support WebRTC capability, please check the SDK documentation.",NOT_SUPPORTED_H264_ENCODE:"this browser does not support H264 encode.",NOT_SUPPORTED_H264_DECODE:"this browser does not support H264 decode.",NOT_SUPPORTED_SCREEN_SHARE:"this browser does not support screen share, please check the browser version.",NOT_SUPPORTED_SMALL_VIDEO:"this browser does not support small video, please check the browser version.",NOT_SUPPORTED_SEI:"this browser does not support SEI, please check the browser version.",NOT_SUPPORTED_WEBGL:"this browser does not support WebGL, please check the browser version.",NOT_SUPPORTED_CHROME_VERSION({fnName:i}){return`cannot call ${i} because the browser version is too low, please upgrade to the latest version`},DEVICE_ERROR({fnName:i,error:t}){return`'${i}' got device exception${t?`, error: ${t.toString()}.`:"."}`},DEVICE_NOT_FOUND_ERROR({fnName:i,deviceType:t=Ho(i),error:e}){return`NotFoundError, no ${t} detected, please check your device and the configuration on '${i}'${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_ALLOWED_ERROR({fnName:i,deviceType:t=Ho(i),error:e}){return`NotAllowedError, you have disabled ${t} access, please allow the current application to use the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_NOT_READABLE_ERROR({fnName:i,deviceType:t=Ho(i),error:e}){return`NotReadableError, the ${t} maybe in use by another APP, please check if the device is pre-occupied by another APP.`},DEVICE_OVERCONSTRAINED_ERROR({fnName:i,deviceType:t=Ho(i),error:e}){return`OverconstrainedError, the device ID is incorrect, please check whether the device ID passed in is correct${e?`, error: ${e.toString()}.`:"."}`},DEVICE_INVALID_STATE_ERROR({fnName:i,deviceType:t=Ho(i),error:e}){return`InvalidStateError, after the user clicks and interacts with the page, turn on the ${t}${e?`, error: ${e.toString()}.`:"."}`},DEVICE_SECURITY_ERROR({fnName:i,deviceType:t=Ho(i),error:e}){return`SecurityError, check whether the system security policy restricts the use of the ${t}, and it is recommended to turn on the ${t} after the user interacts with the page${e?`, error: ${e.toString()}.`:"."}`},DEVICE_ABORT_ERROR({fnName:i,deviceType:t=Ho(i),error:e}){return`AbortError, an unknown exception in the system makes the device unusable, recommended to change the device or browser and re-check whether the device is normal${e?` error: ${e.toString()}.`:"."}`},CAMERA_RECOVER_FAILED({error:i}){return`camera recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},MICROPHONE_RECOVER_FAILED({error:i}){return`microphone recover capture failed ${(i==null?void 0:i.name)||""}: ${(i==null?void 0:i.originMessage)||(i==null?void 0:i.message)}`},OPERATION_FAILED({fnName:i,error:t}){return`'${i}' failed, reason: ${t==null?void 0:t.toString()}`},FIREWALL_RESTRICTION(){return"media connection failure due to firewall restrictions, please try to change your network."},EVENT_HANDLER_ERROR({eventName:i}){return`an error was caught on trtc.on('${i}', handler), please check your code on 'handler'.`},VIDEO_CONTEXT_ERROR({reason:i,error:t}){return`video context error ${i} ${(t==null?void 0:t.name)||""} ${(t==null?void 0:t.message)||""}`},SERVER_ERROR({fnName:i,error:t}){return`'${i}' got server error: ${t==null?void 0:t.toString()}, please check the SDK documentation.`},NEED_TO_BUY({value:i,url:t}){return`You need to buy packages for ${i}. Refer to: ${t}`},ACCOUNT_NO_MONEY:({fnParams:i})=>`your TRTC account run out of credit, please recharge.${i.sdkAppId?` SDKAppId: ${i.sdkAppId}`:""}`,OPERATION_ABORT({fnName:i}){return`'${i}' abort`},UNKNOWN_ERROR({fnName:i,error:t}){return`'${i}' throw unknown exception${t?`, error: ${t.toString()}.`:"."}`}});function Ho(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var Gp=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:a="",originError:d}){var m;let h;o?h=o:h=j_({code:e===ae.SERVER_ERROR?e:r||e,params:J({fnName:a,error:d},s)});super(h);l(this,"name","RtcError");l(this,"code");l(this,"extraCode");l(this,"functionName");l(this,"message");l(this,"handler");l(this,"originError");this.name=yr[e],this.code=e,this.extraCode=r,this.functionName=a,this.originError=d,this.message=h,this.extraCode===5302&&((m=this.originError)!=null&&m.message.includes("system"))&&(this.handler=()=>{let T={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},I={startLocalVideo:"webcam",startLocalAudio:"microphone"},v=document.createElement("a");_o?v.href=`ms-settings:privacy-${I[this.functionName]}`:Er&&(v.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${T[this.functionName]}`),v.href.length>0&&v.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof ue){let{stack:a}=e,d={code:ae.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case Y.INVALID_PARAMETER:d.code=ae.INVALID_PARAMETER,d.message=e.message;break;case Y.INVALID_OPERATION:d.code=ae.INVALID_OPERATION;break;case Y.NOT_SUPPORTED:case Y.NOT_SUPPORTED_H264:d.code=ae.ENV_NOT_SUPPORTED,e.getCode()===Y.NOT_SUPPORTED_H264&&(d.extraCode=e.message.includes(Wt.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Y.JOIN_ROOM_FAILED:d.messageParams={fnParams:o};case Y.SERVER_TIMEOUT:case Y.SWITCH_ROLE_FAILED:d.code=ae.SERVER_ERROR,d.extraCode=e.getExtraCode();break;case Y.API_CALL_ABORTED:d.code=ae.OPERATION_ABORT;break;case Y.DEVICE_NOT_FOUND:case Y.DEVICE_AUTO_RECOVER_FAILED:case Y.INITIALIZE_FAILED:d.code=5300,e.name&&(d.extraCode=IS(e.name));break;case Y.UNKNOWN:break;default:d.code=ae.OPERATION_FAILED}s=new i(d),a&&(s.stack+=a.substr(a.indexOf(`
90
+ `)))}else{if(e instanceof i)return e;s=new i({code:ae.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function IS(i){let t;switch(i){case"NotFoundError":t=5301;break;case"NotAllowedError":t=5302;break;case"NotReadableError":t=5303;break;case"OverconstrainedError":t=5304;break;case"InvalidStateError":t=5305;break;case"SecurityError":t=5306;break;case"AbortError":t=5307;break;default:t=5300}return t}var oe=Gp;var q_={type:"object",properties:{cameraId:{type:"string"},useFrontCamera:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:["string","boolean"],values:[!0,!1,"view","publish","both"]},small:{properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},J_={type:"object",properties:{systemAudio:{type:"boolean"},fillMode:{type:"string",values:["contain","cover","fill"]},profile:{type:["string","object"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack},audioTrack:{instanceOf:MediaStreamTrack}}},Hs={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Ae(i)&&!document.getElementById(i))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},z_={name:"userId",required:!0,type:"string"},X_={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{values:[nr.AUDIO_PROFILE_STANDARD,nr.AUDIO_PROFILE_STANDARD_STEREO,nr.AUDIO_PROFILE_HIGH,nr.AUDIO_PROFILE_HIGH_STEREO]},echoCancellation:{type:"boolean"},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Ma(i,t){if(!i)throw new oe({code:ae.INVALID_OPERATION,extraCode:5101,fnName:t})}function Q_(i,t,e){if(!i)throw new oe({code:ae.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}var PP={type:"number",notLessThanZero:!0},SS={create:[{name:"RoomConfig",instanceOf:Function},{name:"CreateConfig",type:"object",properties:{plugins:{type:"array",arrayItem:{instanceOf:Function}}}}],enterRoom:{name:"EnterRoomConfig",type:"object",required:!0,validate(i,t,e){if(this._room.isJoined)throw new oe({code:ae.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(Ae(i.roomId))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});if(!(/^[1-9]\d*$/.test(String(i.roomId))&&i.roomId<4294967295))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5013,fnName:e,messageParams:{key:t}})}else if(i.strRoomId){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i.strRoomId))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5012,fnName:e,messageParams:{key:t}})}else throw new oe({code:ae.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{sdkAppId:{required:!0,type:"number",allowEmpty:!1},userId:{required:!0,type:"string",allowEmpty:!1},userSig:{required:!0,type:"string",allowEmpty:!1},scene:{type:"string",values:["live","rtc"]},role:{type:"string",values:["audience","anchor"]},roomId:{type:["string","number"]},strRoomId:{type:"string"},proxy:{type:["object","string"],properties:{websocketProxy:{type:"string"},turnServer:{type:["object","array"],properties:{url:{required:!0,type:"string"},username:{type:"string"},credential:{type:"string"},credentialType:{type:"string",values:["password"]}}},loggerProxy:{type:"string"},webtransportProxy:{type:"string"}}},enableAutoPlayDialog:{type:"boolean"},userDefineRecordId:{type:"string"},latencyLevel:{type:"number"}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:Hs,mute:{type:["boolean","string"]},publish:{type:"boolean"},option:q_},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&mi())throw new oe({code:ae.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:pe(J({},Hs),{required:!1}),publish:{type:"boolean"},mute:{type:["boolean","string"]},option:q_}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:X_},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&mi())throw new oe({code:ae.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:X_}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:Hs,publish:{type:"boolean"},option:J_},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)&&mi())throw new oe({code:ae.ENV_NOT_SUPPORTED,extraCode:5201});if(!da())throw new oe({code:ae.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:Hs,publish:{type:"boolean"},option:J_}},muteRemoteAudio:[z_,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[z_,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:Hs,userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){Ma(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(Q_(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ae.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:pe(J({},Hs),{required:!1}),userId:{type:"string",required:!0},streamType:{values:["main","sub"],required:!0},option:{type:"object",properties:{fillMode:{type:"string",values:["contain","cover","fill"]},mirror:{type:"boolean"}}}},validate(i,t,e){Ma(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(Q_(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ae.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},stopRemoteVideo:{name:"stopRemoteVideoConfig",type:"object",required:!0,properties:{userId:{type:"string",required:!0},streamType:{values:["main","sub"]}},validate(i,t,e){if(i.userId!=="*"&&L(i.streamType))throw new oe({code:ae.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){Ma(this._room.isJoining||this._room.isJoined,e)}},enableAudioVolumeEvaluation:[{name:"interval",type:"number"},{name:"enableInBackground",type:"boolean"}],sendSEIMessage:[{name:"buffer",required:!0,instanceOf:ArrayBuffer,validate(i,t,e,r){if(!pa)throw new oe({code:ae.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:ae.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});Ma(this._room.isJoined,e)}},{name:"options",type:"object",properties:{seiPayloadType:{type:"number",values:[5,243]},toSubStream:{type:"boolean",validate(i,t,e){if(!i&&!this._room.isMainStreamPublished||i&&!this._room.isAuxStreamPublished)throw new oe({code:ae.INVALID_OPERATION,extraCode:5109,messageParams:{key:t},fnName:e})}}}}],sendCustomMessage:{name:"message",required:!0,type:"object",properties:{cmdId:{type:"number",required:!0,min:1,max:10},data:{instanceOf:ArrayBuffer,required:!0,validate(i,t,e,r){if(i.byteLength>1e3)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(Ma(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:ae.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}}},Et={TRTC:SS};var Dt=class extends Error{};function yS(i,t){let e=po(i);for(let r=0;r<t.length;r++)Or(e[r],t[r]);return e}function AS(i){this._resolve=Promise.resolve(i)}function bS(i){this._reject=Promise.reject(i)}var ji=class ji{constructor(t,e){this.instance=t;this.group=e;l(this,"started",!1);l(this,"ops",[]);l(this,"startSame",()=>!0);l(this,"mergeUpdate",yS);let r=ji.instances.get(t);r?r.set(e,this):ji.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=ji.instances.get(t);return r&&r.get(e)||new ji(t,e)}static gets(t,e){let r=ji.instances.get(t),o=[];return r&&r.forEach((s,a)=>{e.test(a)&&o.push(s)}),o}action(t,e,r){let o=d=>{var h;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(h=this.currentOp)==null||h.action(),d},s=d=>{var h,m;throw this.ops.shift(),t===0&&((h=this.currentOp)==null?void 0:h.type)===2&&this.ops.shift().reject(new Dt("start failed")),(m=this.currentOp)==null||m.action(),d},a={type:t,action:()=>e(...a.args).then(o,s),args:r,resolve:AS,reject:bS};try{switch(this.state){case 1:if(t===0)throw new Dt("already started");break;case 4:if(t===2)throw new Dt("not started");break;default:return this.cacheOp(a)}}catch(d){return Promise.reject(d)}return this.ops.push(a),a.promise=e(...a.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Dt("already start");break;case 3:switch(t.type){case 2:throw new Dt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Dt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Dt("keep stop");if(this.ops.slice(1).forEach(o=>o.reject(r)),this.ops=this.ops.slice(0,1),this.state===3)return this.currentOp.promise}break;case 2:switch(this.lastOpType){case 2:return this.lastOp.args=this.mergeUpdate(this.lastOp.args,t.args),this.lastOp.promise;case 3:throw new Dt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Dt("start not allowed after update");case 0:throw new Dt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Dt("keep start")),new Dt("already start")}}t.promise=new Promise((r,o)=>{t._resolve?t._resolve.then(r):t.resolve=r,t._reject?t._reject.catch(o):t.reject=o});let{action:e}=t;return t.action=()=>e().then(t.resolve,t.reject),this.ops.push(t),t.promise}get lastOp(){return this.ops[this.ops.length-1]}get lastOpType(){return this.lastOp.type}get currentOp(){return this.ops[0]}get state(){return this.currentOp?this.currentOp.type:this.started?1:4}};l(ji,"instances",new WeakMap);var Si=ji;var cu=new WeakMap,du=(i,t)=>{if(t instanceof Dt){let{stack:e}=t;t=new oe({code:ae.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
91
+ `)))}throw t};function qi(i,t){return Re((e,r)=>function(...o){let s=Si.get(this,typeof i=="string"?i:i.call(this,...o));return s?(t&&(s.startSame=t.bind(this)),s.action(0,e.bind(this),o).catch(du.bind(null,r))):e.apply(this,o)})}function Wo(i,t){let{merge:e,debounce:r}=t||{};return Re((o,s)=>function(...a){let d=Si.get(this,typeof i=="string"?i:i.call(this,...a));if(!d)return o.apply(this,a);if(e&&(d.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,a)){let{delay:h,getKey:m}=r;return new Promise((T,I)=>{var j,H;let v=(j=cu.get(this))==null?void 0:j.get(m(...a));if(v){let{timeoutId:z,resolve:Te}=v;clearTimeout(z),Te()}let N=setTimeout(()=>{if(d.state===3||d.state===4)return T();d.action(2,o.bind(this),a).catch(du.bind(null,s)).then(T,I)},h);cu.has(this)?(H=cu.get(this))==null||H.set(m(...a),{timeoutId:N,resolve:T}):cu.set(this,new Map([[m(...a),{timeoutId:N,resolve:T}]]))})}return d.action(2,o.bind(this),a).catch(du.bind(null,s))})}function Ji(i){return Re((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(Si.gets(this,o).map(a=>a.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=Si.get(this,o);return s?s.action(3,t.bind(this),r).catch(du.bind(null,e)):t.apply(this,r)})}var ee={ERROR:"error",AUTOPLAY_FAILED:"autoplay-failed",KICKED_OUT:"kicked-out",REMOTE_USER_ENTER:"remote-user-enter",REMOTE_USER_EXIT:"remote-user-exit",REMOTE_AUDIO_AVAILABLE:"remote-audio-available",REMOTE_AUDIO_UNAVAILABLE:"remote-audio-unavailable",REMOTE_VIDEO_AVAILABLE:"remote-video-available",REMOTE_VIDEO_UNAVAILABLE:"remote-video-unavailable",AUDIO_VOLUME:"audio-volume",AUDIO_FRAME:"audio-frame",NETWORK_QUALITY:"network-quality",CONNECTION_STATE_CHANGED:"connection-state-changed",AUDIO_PLAY_STATE_CHANGED:"audio-play-state-changed",VIDEO_PLAY_STATE_CHANGED:"video-play-state-changed",SCREEN_SHARE_STOPPED:"screen-share-stopped",DEVICE_CHANGED:"device-changed",PUBLISH_STATE_CHANGED:"publish-state-changed",TRACK:"track",STATISTICS:"statistics",SEI_MESSAGE:"sei-message",CUSTOM_MESSAGE:"custom-message",VIDEO_DECODE_DOWNGRADE_STATE_CHANGED:"video-decode-downgrade-state-changed",LAYER_DATA:"layerData",FIRST_VIDEO_FRAME:"first-video-frame"},Y_=new Set([ee.ERROR,ee.AUTOPLAY_FAILED,ee.KICKED_OUT,ee.REMOTE_USER_ENTER,ee.REMOTE_USER_EXIT,ee.REMOTE_AUDIO_AVAILABLE,ee.REMOTE_AUDIO_UNAVAILABLE,ee.REMOTE_VIDEO_AVAILABLE,ee.REMOTE_VIDEO_UNAVAILABLE,ee.CONNECTION_STATE_CHANGED,ee.PUBLISH_STATE_CHANGED,ee.SCREEN_SHARE_STOPPED,ee.DEVICE_CHANGED,ee.FIRST_VIDEO_FRAME]);function zi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function Oa(i){return i===nr.QOS_PREFERENCE_CLEAR?"detail":i===nr.QOS_PREFERENCE_SMOOTH?"motion":""}var qp={};Kr(qp,{bytes2ms:()=>qh,convertObjectNumberToInt:()=>Fn,copyProperties:()=>jh,deepClone:()=>po,deepMerge:()=>Or,delay:()=>Bn,fibonacci:()=>ho,formatedTime:()=>Gc,getConstructorName:()=>Un,getContainerFromElement:()=>ef,getEnv:()=>Hh,getInternalVersion:()=>Zh,getLoggerUrl:()=>ii,getMuteStateFromFlag:()=>Vn,getNetworkType:()=>kn,getNumNetworkType:()=>$c,getReconnectionTimeout:()=>zh,getStringByteLength:()=>tf,getTurnServer:()=>Kh,getUint32Version:()=>Jc,getValueType:()=>ut,getViewListFromView:()=>ms,glog:()=>Ln,ipv4ToUint32:()=>ls,isArray:()=>it,isAudioWorkletSupported:()=>Yh,isBoolean:()=>nt,isConstructor:()=>us,isEmpty:()=>Wc,isFunction:()=>Fe,isLangChinese:()=>hr,isMediaStreamTrack:()=>Xh,isNumber:()=>$e,isObject:()=>rr,isOverseaSdkAppId:()=>xn,isPlainObject:()=>Bt,isPortrait:()=>qc,isPromise:()=>wi,isRemoteTrack:()=>Qh,isString:()=>Ae,isUndefined:()=>L,loadImage:()=>ps,ms2bytes:()=>Jh,ms2samples:()=>zl,performanceNow:()=>ge,promiseAny:()=>Hc,samples2ms:()=>Jl,setNetworkType:()=>Gh,stringify:()=>ir,stringifyIncludeValue:()=>jc,throttlePromise:()=>zc});var Xp={};Kr(Xp,{getAbilityConfigUrl:()=>vS,getScheduleDomain:()=>Pa,isNeedToSchedule:()=>uu,scheduleProxy:()=>Ar,sendScheduleRequest:()=>zp,setIsNeedToSchedule:()=>Go,setScheduleProxy:()=>lu});var Jp=null,uu=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(ri).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
92
+ `));function Go(i){nt(i)&&i!==uu&&(uu=i,U.info(`setIsNeedToSchedule ${i}`))}F.on("28",()=>Go(!0));F.on("63",()=>Go(!0));F.on("84",()=>Go(!0));F.on("201",i=>{i.state==="RECONNECTING"&&Go(!0)});F.on("202",i=>{i.state==="RECONNECTING"&&Go(!0)});function RS(i,t,e){let r={totalCost:0,local:0,dns:0,tcp:0,tls:0,request:0,response:0};try{let o=performance.getEntriesByType("resource"),s=Ws(i,D.MAIN),a=Ws(i,D.BACKUP);for(let d of o)if(d.startTime>=e&&(d.name===s||d.name===a)&&d.transferSize>0){let h=d.name===s?D.MAIN:D.BACKUP,m=Math.round(d.duration),T=Math.round(d.domainLookupStart-d.startTime),I=d.redirectStart>0?Math.round(d.redirectEnd-d.redirectStart):0,v=d.fetchStart>0?Math.round(d.domainLookupStart-d.fetchStart):0,N=Math.round(d.domainLookupEnd-d.domainLookupStart),j=Math.round(d.requestStart-d.secureConnectionStart),H=Math.round(d.secureConnectionStart-d.connectStart),z=Math.round(d.responseStart-d.requestStart),Te=Math.round(d.responseEnd-d.responseStart),xe=[N,j,H,z,Te];Ve.uploadEvent({log:`stat-schedule-net:${m}(${T}(${I}->${v})->${xe.join("->")}) ${h}`,userId:t}),r=pe(J({},r),{totalCost:m,local:T,dns:N,tcp:H,tls:j,request:z,response:Te});break}}catch(o){U.error("getScheduleDetailCost error",o)}return r}function zp(m){return A(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:a,role:d,latencyLevel:h}){if(!uu&&Jp)return{isCached:!0,result:Jp};let T={delta:0,count:[1,1],msg:[],detail:[]};try{let I=new FormData;I.append("userId",String(i)),I.append("sdkAppId",String(t)),I.append("isStrGroupId",String(e)),I.append("groupId",String(r)),I.append("sdkVersion",s),I.append("userSig",String(o)),d&&I.append("role",String(d)),h&&I.append("latencyLevel",String(h)),a&&I.append("frameWorkType",String(a));let v=ge(),N=yield DS(I,T,t);N.config&&(N.config.loggerDomain&&co(N.config.loggerDomain),nt(N.config.scheduleCache)&&Go(!N.config.scheduleCache)),T.delta=ge()-v;let j=RS(Number(t),i,v);return Jp=N,{isCached:!1,result:N,detailCost:j}}catch(I){let v=it(I)?I[0]:I,N=$e(v.code)?v.code:0,j=`schedule failed${v.message?`: ${v.message}`:""}`,H=new ue({code:Y.SCHEDULE_FAILED,extraCode:N,message:st({key:ot.JOIN_ROOM_FAILED,data:{error:j,code:N}})});throw U.error(j,N),H}})}var Ar={main:"",backup:""};function lu(i){it(i)?(Ar.main=i[0],Ar.backup=i[1]):Ar.main=i}function Ws(i,t=D.MAIN,e=!1){return`https://${Ar[t]||Pa(i,t,e)}/api/v1/config`}function vS(i,t=D.MAIN){return`https://${Ar[t]||Pa(i,t)}/api/v1/trtcAutoConf`}function Pa(i,t=D.MAIN,e=!1){let r;return xn(i)?e?r=t===D.MAIN?ri.MAIN_OVERSEA_BACKUP:ri.BACKUP_OVERSEA:r=t===D.MAIN?ri.MAIN_OVERSEA:ri.BACKUP_OVERSEA:r=t===D.MAIN?ri.MAIN:ri.BACKUP,r}function CS(i,t,e){return new Promise((r,o)=>{oi({url:i,body:t,timeout:e.timeout,priority:"high"}).then(s=>{s.data.code===0?r(s.data.data):o({code:s.data.code,message:s.data.msg})}).catch(o)})}var Z_=(i,t)=>Oi({retryFunction:CS,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function DS(i,t,e){return new Promise((r,o)=>{let s=null;Hc([Z_(a=>t.count[0]=a+1,({error:a,retry:d,retriedCount:h,retryFuncArgs:m})=>{t.msg[0]=a.message,s||(h>=1&&(m[0]=Ws(e,D.MAIN,!0)),d())})(Ws(e,D.MAIN),i,{get timeout(){return ho(2+t.count[0])*1e3}}),Z_(a=>t.count[1]=a+1,({error:a,retry:d,retriedCount:h,retryFuncArgs:m})=>{t.msg[1]=a.message,s||(h>=2&&(m[0]=Ws(e,D.BACKUP,!0)),d())})(Ws(e,D.BACKUP),i,{get timeout(){return ho(2+t.count[1])*1e3}})]).then(a=>{s=a,r(s)}).catch(o)})}var NS=i=>i.startsWith("data:application/octet-stream;base64,"),wS=i=>i.startsWith("file://"),mu=class{constructor(){l(this,"_log");this._log=U.createLogger({id:"fd"})}download(t,e){return A(this,null,function*(){let{type:r="blob"}=e||{};try{let o=ge(),s;if(Fe(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let a=ge()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${a}ms`),X.addSuccessEvent({key:522700,cost:ge()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),X.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return A(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok)throw new Error("network response was not ok");let o;return e==="arraybuffer"?o=yield r.arrayBuffer():o=yield r.blob(),{data:o}}catch(r){throw r}})}downloadWithXHR(t,e){return this._log.info(`download with xhr: ${t}, return type: ${e}`),new Promise((r,o)=>{let s=new XMLHttpRequest;s.open("GET",t,!0),s.responseType=e,s.onload=()=>{s.status===200||s.status===0&&s.response?r({data:s.response}):o(new Error("XHR failed"))},s.onerror=o,s.send(null)})}loadWasm(t,e){return A(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=ge(),o=null,s=null;if(Fe(WebAssembly.instantiateStreaming)&&!NS(t)&&!wS(t)&&Fe(fetch))try{let a=fetch(t);o=(yield WebAssembly.instantiateStreaming(a,e)).instance}catch(a){s=a}if(!o)try{let a=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(a,e)).instance}catch(a){s=a}if(o){let a=ge()-r;return this._log.info(`loadedWasm ${t}, cost: ${a}ms`),X.addSuccessEvent({key:522701,cost:a}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),X.addFailedEvent({key:522701,error:s}),s})}};G([Vi({settings:{timeout:0,retries:3},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],mu.prototype,"download",1);var K_=new mu;function eg({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,room:t,assetsPath:r,fileDownloader:K_,innerEmitter:F,constants:ql,environment:Rs,utils:qp,eventLogger:Ve,log:this.room.getLogger(),loggerManager:U,errorModule:e,kvStatManager:X,rtcDectection:Ui,trtc:this,rx:$p,enums:vm,schedule:Xp,clearStarted:(o,s)=>{let a=o.getAlias(),d=Si.instances.get(this);if(d)if(s){let h=d.get(a+s);if(!h)return;h.started=!1}else d.forEach((h,m)=>{m.startsWith(a)&&(h.started=!1)})},startGetPCM:ba,createAudioNode:Qm}}var tg=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=st({key:ot.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return U.warn(`${s}
93
93
 
94
- ${o.stack}`),!1}},i};var Gs=new WeakMap;function tg(i){let t=Gs.get(i);t&&(t.forEach(e=>clearTimeout(e)),Gs.delete(i))}function rg(i,t){return Ae((e,r)=>function(...o){let s=Gs.get(this);s||(s=new Map,Gs.set(this,s));let a=t(...o),d=s.get(a);if(!d||d<=0){e.apply(this,o);let h=setTimeout(()=>{var m;(m=Gs.get(this))==null||m.delete(a)},i);s.set(a,h)}else{clearTimeout(d);let h=window.setTimeout(()=>{var m;e.apply(this,o),(m=Gs.get(this))==null||m.delete(a)},i);s.set(a,h)}})}var ig="5.9.0-wasm.13";function Nt(...i){return Ae((t,e)=>function(...r){try{hu.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function Xp(...i){return Ae((t,e)=>function(...r){try{hu.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function hu(i,t,e,r){if(it(i))for(let o=0;o<i.length;o++)pu.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else pu.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function pu({rule:i,value:t,key:e,fnName:r,className:o}){function s(h){return{code:ae.INVALID_PARAMETER,extraCode:h,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(L(t)){if(i.required)throw new oe(s(5001));if(L(i.defaultValue)){Fe(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let h=!1;for(let m=0;m<i.type.length;m++)i.type[m]===null&&t===null&&(h=!0),Fe(i.type[m])&&t instanceof i.type[m]&&(h=!0),Se(i.type[m])&&ut(t)===i.type[m].toLowerCase()&&(h=!0);if(!h)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>ds(m)?Un(m):Se(m)?m:ut(m))},value:t}})}else if(!L(i.type)&&ut(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let h=$e(t)&&(t===0||Number.isNaN(t)),m=Se(t)&&t.trim()==="";if(h||m)throw new oe(s(5003))}if(i.notLessThanZero&&$e(t)&&t<0)throw new oe(s(5006));if(!L(i.min)&&$e(t)&&t<i.min)throw new oe(s(5007));if(!L(i.max)&&$e(t)&&t>i.max)throw new oe(s(5008));if(Se(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Fe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new oe(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new oe(s(5005));let{properties:a}=i;Bt(a)&&rr(t)&&Object.keys(a).forEach(h=>{pu.call(this,{rule:a[h],value:t&&t[h],key:`${h}`,fnName:r,className:o})});let{arrayItem:d}=i;Bt(d)&&it(t)&&t.forEach((h,m)=>{pu.call(this,{rule:d,value:h,key:`${e}[${m}]`,fnName:r,className:o})}),Fe(i.validate)&&i.validate.call(this,t,e,r,o,this)}function qe(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o}=i;return Ae((s,a)=>function(...d){var I;function h(v,N,j){if(j&&j.includes(v))return"hided";if(e){let H=e(...d);if(d[H.argIndex]===N)return H.value}if(N===d||v in d)return N;try{return N instanceof HTMLElement?`id: ${N.id} type:${ut(N)}`:(JSON.stringify(N),N)}catch(H){return`type:${ut(N)}`}}let m=this._log||U;if(o!=null&&o(...d))return s.apply(this,d);d.length>0?m.info(`${a}() ${JSON.stringify(d,(v,N)=>h(v,N,["userSig","privateMapKey"]))}`):m.info(`${a}()`);let T=r?r(...d):Sd[a];try{let v=s.apply(this,d),N=ge();return Ni(v)?v.then(j=>(m.info(`${a}() success ${t.call(this,...d)}`),X.addSuccessEvent({key:T,cost:ge()-N}),j)).catch(j=>{var Te;j=oe.convertFrom.call(this,j,a,d.length===1?d[0]:d);let H=j.extraCode||j.code,z=(Te=j.message)!=null&&Te.includes(H)?"":` code:${H}`;throw m.error(`${a}() failed ${t.call(this,...d)} ${j}${z} params: ${JSON.stringify(d,h)}`),X.addFailedEvent({key:T,error:j}),j}):(X.addSuccessEvent({key:T}),v)}catch(v){v=oe.convertFrom.call(this,v,a);let N=v.extraCode||v.code,j=(I=v.message)!=null&&I.includes(N)?"":` code:${N}`;throw m.error(`${a}() failed ${v}${j} params: ${JSON.stringify(d,h)}`),X.addFailedEvent({key:T,error:v}),v}})}var fu=i=>Ae((t,e)=>function(r,o){return A(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new oe({code:ae.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Fe(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:ae.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return hu.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var _u=0,Qp=class{constructor(t,e){l(this,"player");l(this,"publisher");l(this,"mixInput");this.mixInput=new Ps(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){this.player&&(L(t.volume)||(this.volume=t.volume),L(t.loop)||(this.loop=t.loop),L(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reset(){this.seek(0),this.mixInput.connect()}seek(t){this.player&&(t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t))}play(){var t,e;return(t=this.publisher)==null||t.play(),(e=this.player)==null?void 0:e.play()}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function js(i,t){if(t&&typeof t!="function")throw new oe({code:ae.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var $r=class $r{constructor(t){this.core=t;l(this,"log");l(this,"mixedMusicMap",new Map);l(this,"cacheMusicMap",new Map);_u=_u+1,this.log=t.log.createChild({id:`${this.getAlias()}${_u}`}),this.log.info(`[audioMixer] created id=${this.getAlias()}${_u}`),this.core=t}getName(){return $r.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return $r.startValidateRule;case"update":return $r.updateValidateRule;case"stop":return $r.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core;this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new Qp(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t),yield s.play(),this.mixedMusicMap.set(r,s),this.log.info(`start mix audio track ${r} success.`),X.addEnum({key:502700,value:3}),this.kvUpload(t)})}update(t){return A(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let a=this.mixedMusicMap.get(e);if(!a){this.log.warn(`update music source failed, music id: ${e} not found.`);return}a.updateSettings(t),a.updateListener(t),L(r)||a.setOperation(r),L(o)||a.seek(o),this.kvUpload(t)})}stop(e){return A(this,arguments,function*({id:t}){var r;this.mixedMusicMap.has(t)&&(this.log.info(`remove music source, music id: ${t}`),(r=this.mixedMusicMap.get(t))==null||r.stop(),this.mixedMusicMap.delete(t)),t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:a,seekFrom:d,onTimeUpdate:h,onDurationChange:m,onEnded:T}=t;e&&X.addCount({key:502711}),r&&X.addCount({key:502703}),o&&X.addCount({key:502704}),s&&X.addCount({key:502705}),a&&X.addCount({key:502706}),d&&X.addCount({key:502707}),typeof h!="function"&&X.addCount({key:502709}),typeof T!="function"&&X.addCount({key:502710}),typeof m!="function"&&X.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>this.stop({id:e}))}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};l($r,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],a=o.split(".").pop(),d=s.indexOf(a)>=0,h=o.startsWith("blob"),m=o.startsWith("data");if(!(d||h||m))throw new oe({code:ae.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new oe({code:ae.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});js("onTimeUpdate",t.onTimeUpdate),js("onEnded",t.onEnded),js("onDurationChange",t.onDurationChange)}}),l($r,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){js("onTimeUpdate",t.onTimeUpdate),js("onEnded",t.onEnded),js("onDurationChange",t.onDurationChange)}}),l($r,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l($r,"Name","AudioMixer");var gu=$r;var Eu=0,Yp,Si=class Si{constructor(t){this.core=t;l(this,"log");l(this,"audioContext",lt("denoiser"));l(this,"workletNode");Eu=Eu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Eu}`}),this.log.info(`[audioDenoiser] created id=${this.getAlias()}${Eu}`),t.assetsPath&&this.preload(`${t.assetsPath}/denoiser-wasm.js`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:ae.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return Yp||(Yp=this.doPreload(t)),Yp}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Ro(this.audioContext,r)}finally{URL.revokeObjectURL(r)}})}getName(){return Si.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return Si.startValidateRule(this.core);case"update":return Si.updateValidateRule;case"stop":return Si.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core;if(yield this.preload(`${t.assetsPath}/denoiser-wasm.js`),!this.workletNode){let r=String(Date.now()).slice(0,-3),{auth:o,sign:s,status:a,message:d}=yield PS(pe(J({},t),{timestamp:r}));if(!o)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${o}. Message: ${d}`),new oe({code:ae.INVALID_PARAMETER,message:d});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:r,sign:s,status:a}}),this.workletNode.port.onmessage=h=>{let{data:m}=h;m.type==="cost"&&this.log.debug(`[RTCAIDenoiser] ${m.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return A(this,null,function*(){})}stop(){return A(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};l(Si,"updateValidateRule",{type:"object"}),l(Si,"stopValidateRule",{type:"object"}),l(Si,"Name","AIDenoiser");var Tu=Si;function OS(i,t=D.MAIN){return`https://${Ar[t]||Pa(i,t)}/api/v1/audioAiAuth`}function PS(o){return A(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let a=`${OS(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,d=yield fetch(a),{data:{errCode:h,errMsg:m,sign:T,status:I}}=yield d.json();if(I==="1")return{auth:!0,sign:T,status:I,message:m};let v="Init RTCAIDenoiser failed.",N="";switch(h){case 1:N="Please check your params.";break;case 2:N="You need to buy packages. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 3:N="Server is invalid. Please contact our engineer. ";break;case 4:N="Your packages is not active. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 5:N="Your packages is expired. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 6:N="Your version is not supported.";break}return{auth:!1,status:I,message:m?`${v} Reason: ${m}. ${N}`:`${v}, ${N}`}})}var og=Ci(ki(),1);var Zp=class extends og.EventEmitter{constructor(){super();l(this,"observer");l(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return A(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!pt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){Ve.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&U.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){Ve.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},xS=new Zp,Kp=xS;function kS([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let d=0;d<r;d++)s.push(255);s.push(o);let a=new DataView(t);return s.push(...new Uint8Array(a.buffer)),s.push(128),new Do(new DataView(new Uint8Array(s).buffer),!0)}function LS(i){return i.type==="empty"||i.data.byteLength===0}function US(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function VS(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function eh({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-VS(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(kS),s=o.reduce((T,I)=>T+I.dataView.byteLength,0),a=new ArrayBuffer(s+i.data.byteLength),d=new DataView(a),h=new DataView(i.data),m=0;for(let T=0;T<o.length;T++)for(let I=0;I<o[T].dataView.byteLength;I++)d.setInt8(m++,o[T].dataView.getInt8(I));for(let T=0;T<i.data.byteLength;T++)d.setInt8(m++,h.getInt8(T));return i.data=a,i}function th({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(LS(i)||!US(e))return i;let r=[],o=0,s=-1,a=-1;for(let d=0;d<i.data.byteLength;d++){let h=e.getUint8(d);if(h===0)o++;else if(h===1){if(o===2||o===3){let m=d-o;if(s===-1?s=m:a===-1&&(a=m,r.push(new Do(new DataView(e.buffer.slice(s,a)))),s=m,a=-1),!(e.getUint8(d+1)===6)){i.data=e.buffer.slice(m);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var rh=0,xa=class xa{constructor(t){this.core=t;l(this,"log");l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_subStreamSeiMessageList",[]);rh++,this.log=t.log.createChild({id:`${this.getAlias()}${rh}`}),this.log.info(`[sei] created id=${this.getAlias()}${rh}`),this.core=t,this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return eh({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return th({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(K.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:ma?this.encode:eh,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:ma?this.decode:th,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return xa.Name}getAlias(){return"sei"}getGroup(){return"sei"}};l(xa,"autoStart",!0),l(xa,"Name","SEI");var Iu=xa;function ih({frame:i,onDump:t}){return t==null||t(),i}function oh({frame:i,onDump:t}){return t==null||t(),i}var sg={"play() error: NotAllowedError:":{tips:i=>i.includes("main <video>")||i.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
94
+ ${o.stack}`),!1}},i};var Gs=new WeakMap;function rg(i){let t=Gs.get(i);t&&(t.forEach(e=>clearTimeout(e)),Gs.delete(i))}function ig(i,t){return Re((e,r)=>function(...o){let s=Gs.get(this);s||(s=new Map,Gs.set(this,s));let a=t(...o),d=s.get(a);if(!d||d<=0){e.apply(this,o);let h=setTimeout(()=>{var m;(m=Gs.get(this))==null||m.delete(a)},i);s.set(a,h)}else{clearTimeout(d);let h=window.setTimeout(()=>{var m;e.apply(this,o),(m=Gs.get(this))==null||m.delete(a)},i);s.set(a,h)}})}var og="5.9.0-wasm.14";function Nt(...i){return Re((t,e)=>function(...r){try{hu.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function Qp(...i){return Re((t,e)=>function(...r){try{hu.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function hu(i,t,e,r){if(it(i))for(let o=0;o<i.length;o++)pu.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else pu.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function pu({rule:i,value:t,key:e,fnName:r,className:o}){function s(h){return{code:ae.INVALID_PARAMETER,extraCode:h,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(L(t)){if(i.required)throw new oe(s(5001));if(L(i.defaultValue)){Fe(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let h=!1;for(let m=0;m<i.type.length;m++)i.type[m]===null&&t===null&&(h=!0),Fe(i.type[m])&&t instanceof i.type[m]&&(h=!0),Ae(i.type[m])&&ut(t)===i.type[m].toLowerCase()&&(h=!0);if(!h)throw new oe({code:ae.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(m=>us(m)?Un(m):Ae(m)?m:ut(m))},value:t}})}else if(!L(i.type)&&ut(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let h=$e(t)&&(t===0||Number.isNaN(t)),m=Ae(t)&&t.trim()==="";if(h||m)throw new oe(s(5003))}if(i.notLessThanZero&&$e(t)&&t<0)throw new oe(s(5006));if(!L(i.min)&&$e(t)&&t<i.min)throw new oe(s(5007));if(!L(i.max)&&$e(t)&&t>i.max)throw new oe(s(5008));if(Ae(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Fe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new oe(s(5004));if(Array.isArray(i.values)&&!i.values.includes(t))throw new oe(s(5005));let{properties:a}=i;Bt(a)&&rr(t)&&Object.keys(a).forEach(h=>{pu.call(this,{rule:a[h],value:t&&t[h],key:`${h}`,fnName:r,className:o})});let{arrayItem:d}=i;Bt(d)&&it(t)&&t.forEach((h,m)=>{pu.call(this,{rule:d,value:h,key:`${e}[${m}]`,fnName:r,className:o})}),Fe(i.validate)&&i.validate.call(this,t,e,r,o,this)}function qe(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o}=i;return Re((s,a)=>function(...d){var I;function h(v,N,j){if(j&&j.includes(v))return"hided";if(e){let H=e(...d);if(d[H.argIndex]===N)return H.value}if(N===d||v in d)return N;try{return N instanceof HTMLElement?`id: ${N.id} type:${ut(N)}`:(JSON.stringify(N),N)}catch(H){return`type:${ut(N)}`}}let m=this._log||U;if(o!=null&&o(...d))return s.apply(this,d);d.length>0?m.info(`${a}() ${JSON.stringify(d,(v,N)=>h(v,N,["userSig","privateMapKey"]))}`):m.info(`${a}()`);let T=r?r(...d):Sd[a];try{let v=s.apply(this,d),N=ge();return wi(v)?v.then(j=>(m.info(`${a}() success ${t.call(this,...d)}`),X.addSuccessEvent({key:T,cost:ge()-N}),j)).catch(j=>{var Te;j=oe.convertFrom.call(this,j,a,d.length===1?d[0]:d);let H=j.extraCode||j.code,z=(Te=j.message)!=null&&Te.includes(H)?"":` code:${H}`;throw m.error(`${a}() failed ${t.call(this,...d)} ${j}${z} params: ${JSON.stringify(d,h)}`),X.addFailedEvent({key:T,error:j}),j}):(X.addSuccessEvent({key:T}),v)}catch(v){v=oe.convertFrom.call(this,v,a);let N=v.extraCode||v.code,j=(I=v.message)!=null&&I.includes(N)?"":` code:${N}`;throw m.error(`${a}() failed ${v}${j} params: ${JSON.stringify(d,h)}`),X.addFailedEvent({key:T,error:v}),v}})}var fu=i=>Re((t,e)=>function(r,o){return A(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new oe({code:ae.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Fe(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:ae.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return hu.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var _u=0,Yp=class{constructor(t,e){l(this,"player");l(this,"publisher");l(this,"mixInput");this.mixInput=new xs(e),t.url?(this.player=new Audio(t.url),this.player.crossOrigin="anonymous",this.publisher=new Audio(t.url),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher)):this.mixInput.replaceSource(t.track),this.mixInput.connect()}updateSettings(t){this.player&&(L(t.volume)||(this.volume=t.volume),L(t.loop)||(this.loop=t.loop),L(t.playbackRate)||(this.playbackRate=t.playbackRate))}updateListener(t){if(this.player){if(t.onDurationChange){let{onDurationChange:e}=t;this.player.ondurationchange=r=>{e(r.target.duration)}}if(t.onTimeUpdate){let e=t.onTimeUpdate,{player:r}=this;r.ontimeupdate=()=>{e(r.currentTime,r.duration)}}t.onEnded&&(this.player.onended=t.onEnded)}}reset(){this.seek(0),this.mixInput.connect()}seek(t){this.player&&(t<0&&t>this.player.duration||(this.player.currentTime=t,this.publisher.currentTime=t))}play(){var t,e;return(t=this.publisher)==null||t.play(),(e=this.player)==null?void 0:e.play()}pause(){var t,e;(t=this.player)==null||t.pause(),(e=this.publisher)==null||e.pause()}stop(){var t;(t=this.player)==null||t.pause(),this.mixInput.disconnect()}setOperation(t){t==="pause"&&this.pause(),t==="resume"&&(this.pause(),this.play()),t==="stop"&&(this.pause(),this.seek(0))}set volume(t){!this.player||!this.publisher||(this.player.volume=t,this.publisher.volume=t)}set loop(t){!this.player||!this.publisher||(this.player.loop=t,this.publisher.loop=t)}set playbackRate(t){!this.player||!this.publisher||(this.player.playbackRate=t,this.publisher.playbackRate=t)}};function js(i,t){if(t&&typeof t!="function")throw new oe({code:ae.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var $r=class $r{constructor(t){this.core=t;l(this,"log");l(this,"mixedMusicMap",new Map);l(this,"cacheMusicMap",new Map);_u=_u+1,this.log=t.log.createChild({id:`${this.getAlias()}${_u}`}),this.log.info(`[audioMixer] created id=${this.getAlias()}${_u}`),this.core=t}getName(){return $r.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return $r.startValidateRule;case"update":return $r.updateValidateRule;case"stop":return $r.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core;this.log.info(`add music source, id: ${t.id} url: ${t.url}, track: ${t.track}`);let{id:r,url:o}=t;if(this.mixedMusicMap.has(r))return;let s=this.cacheMusicMap.get(r);s?t.url?s.reset():(s.mixInput.replaceSource(t.track),s.mixInput.connect()):(s=new Yp(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t),yield s.play(),this.mixedMusicMap.set(r,s),this.log.info(`start mix audio track ${r} success.`),X.addEnum({key:502700,value:3}),this.kvUpload(t)})}update(t){return A(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let a=this.mixedMusicMap.get(e);if(!a){this.log.warn(`update music source failed, music id: ${e} not found.`);return}a.updateSettings(t),a.updateListener(t),L(r)||a.setOperation(r),L(o)||a.seek(o),this.kvUpload(t)})}stop(e){return A(this,arguments,function*({id:t}){var r;this.mixedMusicMap.has(t)&&(this.log.info(`remove music source, music id: ${t}`),(r=this.mixedMusicMap.get(t))==null||r.stop(),this.mixedMusicMap.delete(t)),t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:a,seekFrom:d,onTimeUpdate:h,onDurationChange:m,onEnded:T}=t;e&&X.addCount({key:502711}),r&&X.addCount({key:502703}),o&&X.addCount({key:502704}),s&&X.addCount({key:502705}),a&&X.addCount({key:502706}),d&&X.addCount({key:502707}),typeof h!="function"&&X.addCount({key:502709}),typeof T!="function"&&X.addCount({key:502710}),typeof m!="function"&&X.addCount({key:502708})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>this.stop({id:e}))}destroyAllCache(){this.log.info("destroy all music cache."),this.cacheMusicMap.clear()}destroy(){this.log.info("destroy audio mixer plugin."),this.destroyAllMusic(),this.destroyAllCache()}};l($r,"startValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},url:{type:"string",required:!1},track:{required:!1},loop:{type:"boolean"},volume:{type:"number"}},validate(t,e,r){if(t.url&&t.url!=="*"){let o=t.url.split("?")[0],s=["mp3","ogg","wav","flac"],a=o.split(".").pop(),d=s.indexOf(a)>=0,h=o.startsWith("blob"),m=o.startsWith("data");if(!(d||h||m))throw new oe({code:ae.INVALID_PARAMETER,message:"start audioMixer plugin: music url is invalid, please check your file format.",fnName:r})}if(!t.url&&!t.track)throw new oe({code:ae.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});js("onTimeUpdate",t.onTimeUpdate),js("onEnded",t.onEnded),js("onDurationChange",t.onDurationChange)}}),l($r,"updateValidateRule",{name:"options",required:!0,type:"object",properties:{id:{type:"string",required:!0},loop:{type:"boolean"},volume:{type:"number"},seekFrom:{type:"number"},operation:{type:"string",values:["pause","resume","stop"]}},validate(t,e,r){js("onTimeUpdate",t.onTimeUpdate),js("onEnded",t.onEnded),js("onDurationChange",t.onDurationChange)}}),l($r,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),l($r,"Name","AudioMixer");var gu=$r;var Eu=0,Zp,yi=class yi{constructor(t){this.core=t;l(this,"log");l(this,"audioContext",lt("denoiser"));l(this,"workletNode");Eu=Eu+1,this.log=t.log.createChild({id:`${this.getAlias()}${Eu}`}),this.log.info(`[audioDenoiser] created id=${this.getAlias()}${Eu}`),t.assetsPath&&this.preload(`${t.assetsPath}/denoiser-wasm.js`)}static startValidateRule(t){return{name:"options",required:!0,type:"object",properties:{sdkAppId:{type:"number",required:!0},userId:{type:"string",required:!0},userSig:{type:"string",required:!0}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:ae.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return Zp||(Zp=this.doPreload(t)),Zp}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Co(this.audioContext,r)}finally{URL.revokeObjectURL(r)}})}getName(){return yi.Name}getAlias(){return"ad"}getGroup(){return`AIDenoiser_${Date.now()}`}getValidateRule(t){switch(t){case"start":return yi.startValidateRule(this.core);case"update":return yi.updateValidateRule;case"stop":return yi.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core;if(yield this.preload(`${t.assetsPath}/denoiser-wasm.js`),!this.workletNode){let r=String(Date.now()).slice(0,-3),{auth:o,sign:s,status:a,message:d}=yield PS(pe(J({},t),{timestamp:r}));if(!o)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${o}. Message: ${d}`),new oe({code:ae.INVALID_PARAMETER,message:d});this.workletNode=new AudioWorkletNode(this.audioContext,"trtc-denoiser-processor",{numberOfInputs:1,numberOfOutputs:1}),this.workletNode.port.postMessage({type:"init",data:{sdkAppId:String(t.sdkAppId),userId:t.userId,timestamp:r,sign:s,status:a}}),this.workletNode.port.onmessage=h=>{let{data:m}=h;m.type==="cost"&&this.log.debug(`[RTCAIDenoiser] ${m.value}`)}}this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(){return A(this,null,function*(){})}stop(){return A(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};l(yi,"updateValidateRule",{type:"object"}),l(yi,"stopValidateRule",{type:"object"}),l(yi,"Name","AIDenoiser");var Tu=yi;function OS(i,t=D.MAIN){return`https://${Ar[t]||Pa(i,t)}/api/v1/audioAiAuth`}function PS(o){return A(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let a=`${OS(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}&timestamp=${r}`,d=yield fetch(a),{data:{errCode:h,errMsg:m,sign:T,status:I}}=yield d.json();if(I==="1")return{auth:!0,sign:T,status:I,message:m};let v="Init RTCAIDenoiser failed.",N="";switch(h){case 1:N="Please check your params.";break;case 2:N="You need to buy packages. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 3:N="Server is invalid. Please contact our engineer. ";break;case 4:N="Your packages is not active. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 5:N="Your packages is expired. Refer to: https://cloud.tencent.com/document/product/647/44247";break;case 6:N="Your version is not supported.";break}return{auth:!1,status:I,message:m?`${v} Reason: ${m}. ${N}`:`${v}, ${N}`}})}var sg=Di(Li(),1);var Kp=class extends sg.EventEmitter{constructor(){super();l(this,"observer");l(this,"state","nominal");this.onPressureChange=this.onPressureChange.bind(this)}get stateNum(){switch(this.state){case"nominal":return 1;case"fair":return 2;case"serious":return 3;case"critical":return 4}}start(){return A(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!pt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){Ve.uploadEvent({log:"stat-pressure-detector-start-failed",error:e})}})}onPressureChange(e){let r=this.stateNum,o=e[e.length-1];this.state=o.state,(this.stateNum>3||r>3)&&U.info(`${o.source}: ${o.state}`),this.emit("state-changed",{type:o.source,state:this.state})}destroy(){var e;try{(e=this.observer)==null||e.disconnect(),this.observer=null}catch(r){Ve.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},xS=new Kp,eh=xS;function kS([i,t]){let e=t.byteLength,r=parseInt(String(e/255),10),o=e%255,s=[];s.push(0,0,0,1,6,i);for(let d=0;d<r;d++)s.push(255);s.push(o);let a=new DataView(t);return s.push(...new Uint8Array(a.buffer)),s.push(128),new wo(new DataView(new Uint8Array(s).buffer),!0)}function LS(i){return i.type==="empty"||i.data.byteLength===0}function US(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function VS(i){let t=0,e=0,r=new DataView(i);for(let o=0;o<i.byteLength;o++)switch(r.getUint8(o)){case 0:t++;break;case 1:(t===2||t===3)&&e++,t=0;break;default:t=0;break}return e}function th({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-VS(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(kS),s=o.reduce((T,I)=>T+I.dataView.byteLength,0),a=new ArrayBuffer(s+i.data.byteLength),d=new DataView(a),h=new DataView(i.data),m=0;for(let T=0;T<o.length;T++)for(let I=0;I<o[T].dataView.byteLength;I++)d.setInt8(m++,o[T].dataView.getInt8(I));for(let T=0;T<i.data.byteLength;T++)d.setInt8(m++,h.getInt8(T));return i.data=a,i}function rh({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(LS(i)||!US(e))return i;let r=[],o=0,s=-1,a=-1;for(let d=0;d<i.data.byteLength;d++){let h=e.getUint8(d);if(h===0)o++;else if(h===1){if(o===2||o===3){let m=d-o;if(s===-1?s=m:a===-1&&(a=m,r.push(new wo(new DataView(e.buffer.slice(s,a)))),s=m,a=-1),!(e.getUint8(d+1)===6)){i.data=e.buffer.slice(m);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var ih=0,xa=class xa{constructor(t){this.core=t;l(this,"log");l(this,"_seiMessageList",[]);l(this,"_smallSeiMessageList",[]);l(this,"_subStreamSeiMessageList",[]);ih++,this.log=t.log.createChild({id:`${this.getAlias()}${ih}`}),this.log.info(`[sei] created id=${this.getAlias()}${ih}`),this.core=t,this.encode=this.encode.bind(this),this.decode=this.decode.bind(this)}encode({frame:t,mediaType:e}){try{let r=e===8?this._smallSeiMessageList:e===2?this._subStreamSeiMessageList:this._seiMessageList;return th({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return rh({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(ee.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destory"),this.stop(),delete this.core}getValidateRule(t){switch(t){case"start":return{type:"object"};case"update":return{type:"object"};case"stop":return{type:"object"}}}start(){this.core.room.videoManager.addEncodeProcessor({processor:ma?this.encode:th,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:ma?this.decode:rh,type:2})}stop(){this.core.room.videoManager.removeEncodeProcessor({type:2}),this.core.room.videoManager.removeDecodeProcessor({type:2})}update({buffer:t,options:e}){var s;let r=[e.seiPayloadType,t],o=!!e.small;e.toSubStream?this._subStreamSeiMessageList.push(r):(this._seiMessageList.push(r),o&&this._smallSeiMessageList.push(r)),(s=this.core.room.scriptTransformWorker)==null||s.postMessage({type:"sei",data:r,isMain:!e.toSubStream,small:o})}getName(){return xa.Name}getAlias(){return"sei"}getGroup(){return"sei"}};l(xa,"autoStart",!0),l(xa,"Name","SEI");var Iu=xa;function oh({frame:i,onDump:t}){return t==null||t(),i}function sh({frame:i,onDump:t}){return t==null||t(),i}var ng={"play() error: NotAllowedError:":{tips:i=>i.includes("main <video>")||i.includes("main <audio>")?"Remote stream auto play is restricted and playback fails":"Local stream playback failure, generally only occurs in Android WeChat devices, no need to handle",color:"red",class:"red"},"updateStream() try to recover local stream":{tips:"Device acquisition exception, automatic recovery is in progress"},"updateStream() recover local stream successfully":{tips:"Device acquisition exception, automatic recovery is successful"},"updateStream() failed to recover local stream":{tips:"Device acquisition exception, automatic recovery failed"},"main stream - video track is muted":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is muted":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is muted":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unable to provide media output":{tips:"Indicates that the received video data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - audio track is unable to provide media output":{tips:"Indicates that the received audio data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"auxiliary stream - video track is unable to provide media output":{tips:"Indicates that the received screen sharing data is not enough for playback. This is usually caused by network reasons. When enough data is received for playback, the state will change to unmuted."},"main stream - video track is unmuted":{tips:"Received enough playback video data"},"main stream - audio track is unmuted":{tips:"Received enough playback audio data"},"auxiliary stream - video track is unmuted":{tips:"Received enough playback screen sharing data"},"main stream - audio player track is ended":{tips:"Remote audio track stopped"},"main stream - video player track is ended":{tips:"Remote video track stopped"},"auxiliary stream - video player track is ended":{tips:"Received enough playback screen sharing data"},"stream - video track is muted":{tips:"Camera capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"stream - video track is unable to provide media output":{tips:"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked, and the customer needs to re-acquire. SDK v4.11.4+ will automatically resume acquisition without customer intervention",color:"orange"},"video track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"The camera acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"video player track is ended":{tips:"The camera acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"stream - audio track is muted":{tips:"Microphone capture is paused, usually due to the device being occupied by other applications or the browser media permission being revoked. The client needs to re-capture.",color:"orange"},"audio track is unable to provide media output":{tips:i=>i.includes("\u2193")?"The remote track is temporarily unable to decode data, which may be caused by network fluctuations":"Microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio track is unable to provide media output":{tips:"The microphone acquisition is paused, usually because the device is occupied by other applications or the browser media permissions are revoked. The SDK will automatically resume the acquisition.",color:"orange"},"stream - audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"audio player track is ended":{tips:"The microphone acquisition stops, usually because the device is unplugged. In this case, the SDK will automatically resume acquisition, and the access side does not need to handle it. It may also be caused by the device being occupied by other applications or the browser media permissions being reclaimed. It is recommended to remind the user to re-acquire on the page."},"is adding audio track to current published local stream":{tips:"add audio track",color:"orange"},"is removing audio track from current published local stream":{tips:"remove audio track",color:"orange"},"is removing video track from current published local stream":{tips:"remove video track",color:"orange"},"is adding video track to current published local stream":{tips:"add video track",color:"orange"},"is replacing audio track to current published local main stream":{tips:"replace audio track",color:"orange"},"is replacing video track to current published local main stream":{tips:"replace video track",color:"orange"},"downlink network quality change":{tips:"Downstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"uplink network quality change":{tips:"Upstream network quality change: 1: excellent, 2: good, 3: average, 4: poor, 5: extremely poor"},"localStream mute video":{tips:"mute upstream video stream",color:"orange"},"localStream unmute video":{tips:"unmute upstream video stream",color:"orange"},"localStream mute audio":{tips:"mute upstream audio stream",color:"orange"},"localStream unmute audio":{tips:"unmute upstream audio stream",color:"orange"},"black detected":{tips:"Detect black screen, which means fps = 0. It is usually caused by network, and the network will be recovered after a while. If the network is normal but has not been restored, it is an abnormal situation."},'main stream start to play with options: {"muted":true}':{tips:"Play the remote stream in silent mode. Generally, the remote stream does not need to be played in silent mode. You need to confirm whether the parameters passed in the client stream.play API call are correct.",color:"orange"},"main stream - audio player is starting playing":{tips:"Remote stream audio playback success",color:"#0dd90d",class:"success"},"main stream - video player is starting playing":{tips:"Remote stream video playback success",color:"#0dd90d",class:"success"},"video player is playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"audio player is playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"stream - video player is starting playing":{tips:"Local video playback success",color:"#0dd90d",class:"success"},"stream - audio player is starting playing":{tips:"Local audio playback success",color:"#0dd90d",class:"success"},"switch camera success":{tips:"Switch camera success",color:"#0dd90d",class:"success"},"switch microphone success":{tips:"Switch microphone success",color:"#0dd90d",class:"success"},gotStream:{tips:"Local stream capture success"},"local stream is published successfully":{tips:"Publish success",color:"#0dd90d",class:"success"},"encoderImplementation change to OpenH264":{tips:"Use software encoding"},"encoderImplementation change to ExternalEncoder":{tips:"Use hardware encoding"},"getUserMedia with constraints":{tips:"Start media (camera/microphone) capture"},"getDisplayMedia with constraints":{tips:"Start screen sharing capture"},"client-banned":{tips:"Kicked out of the room",color:"red",class:"red",textColor:"#fff"},user_timeout:{tips:"The backend is too long without receiving SDK heartbeat, which is usually caused by the JS thread being blocked for a long time. If the reproduction probability is high, the application browser Performance tool analyzes where the JS thread is blocked.",color:"red",class:"red",textColor:"#fff"},"schedule failed":{tips:"Signaling request failed, does not affect the normal room entry process, SDK will connect to the default signaling domain."},"updateStream() video flag is true, but no camera detected, set video to false":{tips:"When trying to resume camera acquisition, the camera acquisition is not resumed because it is detected that there is no camera.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to bandwidth":{tips:"bandwidth estimation is not enough to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"qualityLimitationReason change to cpu":{tips:"cpu load is too high to limit the quality of the encoding, which may cause the code rate, frame rate, and resolution to be lowered.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: hidden":{tips:"User page switched to backend, in mobile devices, this will cause the device to pause the capture, and it will be restored when the user switches backend to the frontend.",color:"orange",class:"orange",textColor:"#fff"},"visibility change: visible":{tips:"User page switched to frontend",color:"orange",class:"orange",textColor:"#fff"},"main stream - audio player is paused":{tips:`The remote stream audio playback is paused, which usually has two possibilities:
95
95
  1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
96
96
  2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},"main stream - video player is paused":{tips:`The remote stream video playback is paused, which usually has two possibilities:
97
97
  1. The business side passes in the div tag container for playing audio and video to be removed by the business side from the DOM.
98
- 2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(i=>{sg[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var Wk=Object.keys(sg);var FS=0,Su,qs=class qs{constructor(t){this.core=t;l(this,"_core");l(this,"log");l(this,"dumpLocalVideoMap",{});l(this,"dumpRemoteVideoMap",{});l(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++FS}`}),this.log.info("created")}getName(){return qs.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return A(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(){}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return A(this,null,function*(){try{if(Su)yield Su;else{let t=Date.now(),e=new URLSearchParams(location.search).get("trtcDebugDialogVersion")||Ke;Su=this.loadScript(`https://web.sdk.qcloud.com/trtc/webrtc/assets/debug/debug-dialog@${e}.js`),yield Su,this.log.info(`download debug dialog script cost: ${Date.now()-t}ms`)}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(t){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(t))}})}closeDebugDiaLog(){var t;(t=this.dialog)==null||t.closeDialog(),this.dialog=null}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):ih,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):oh,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return ih({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return oh({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}loadScript(t){return new Promise((e,r)=>{this.log.info(`loading debug dialog from ${t}`);let o=document.createElement("script");o.type="text/javascript",o.onload=e,o.onerror=r,o.crossOrigin="anonymous",o.src=t,document.head.append?document.head.append(o):document.getElementsByTagName("head")[0].appendChild(o)})}};l(qs,"Name","Debug"),l(qs,"autoStart",!0),G([Ui({settings:{timeout:3e3,retries:3},onError(t,e,r){var o;(o=t==null?void 0:t.message)!=null&&o.includes("timeout")?e():r(t)}})],qs.prototype,"loadScript",1);var yu=qs;var ng=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Au=class{constructor(t,e,r){l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"type","auto");l(this,"config");l(this,"decoder");l(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=De(e,re.INIT),this.stopOB=gt(this.trackDoneOB),this.startOB=gt(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let a=gt(),d=h=>{let m=this.pipe(e);return a.next("STARTING"),e.log.info(`decoder type: ${this.type}`),be(m,We(this.stopOB),ke(()=>{},T=>{e.log.error(T),o.addFailedEvent({key:ng(this.type),error:T}),h>4?this.startOB.error(T):this.startOB.next(h+1)})),be(m,Sr(1),va(ko))};be(this.startOB,xo(0),Fr(d),We(this.stopOB),ke(()=>{e.player.setOutput(),a.next("STARTED")},h=>{a.next("FAILED")},()=>{o.addSuccessEvent({key:ng(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return gi()(e=>A(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},BS={type:"object"},ka=class ka{constructor(t){this.core=t;l(this,"log");l(this,"contextMap",new Map);l(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return ka.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return ka.Name}getValidateRule(t){return BS}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new Au(this.core,r,t);return be(o.trackDoneOB,Sr(1),ke(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);e&&(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new Au(this.core,t.track,t))}}};l(ka,"Name","TRTCAudioDecoder");var La=ka;var ag=0,Ua=new Set,Tt=null;Ll(ig);Rs.checkStorage();Vm();var $S={RtcError:oe,ErrorCode:ae,ErrorCodeDictionary:yr},le=class le extends cg.EventEmitter{constructor(e,r){super();l(this,"_room");l(this,"_eventListened",new Set);l(this,"_localVideoTrack",null);l(this,"_localAudioTrack",null);l(this,"_localScreenTrack",null);l(this,"_localScreenAudioTrack",null);l(this,"_localVideoConfig",null);l(this,"_localScreenConfig",null);l(this,"_localAudioConfig",null);l(this,"_remoteVideoConfigMap",new Map);l(this,"_remoteAudioConfigMap",new Map);l(this,"_remoteAudioVolumeMap",new Map);l(this,"_remoteAudioMuteMap",new Map);l(this,"_mediaTrackMap",new WeakMap);l(this,"_log",U.createLogger({id:`t${++ag}`}));l(this,"_plugins",new Map);l(this,"_networkQuality",null);l(this,"_speakerId");l(this,"_getPCMAbortCtrl");this._room=new e(J({logger:this._log,frameWorkType:le.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,this._log.debug(`TRTC.create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(a=>a.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(gu,r.assetsPath),this._use(Tu,r.assetsPath),this._use(La,r.assetsPath||Oc),this._use(yu),r.enableSEI&&pa&&this._use(Iu),this._room.on("audio-volume",o=>{!o.find(s=>s.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(this._localAudioTrack.getAudioLevel()*100)}),this.emit(K.AUDIO_VOLUME,{result:o.sort((s,a)=>a.volume-s.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:ae.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),eg(this,"trtc")}static create(e){}static _create(e,r){H_();let o=new le(e,r||{});return Ua.add(o),o}get room(){return this._room}_listenEvents(){vt(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(K.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(K.REMOTE_USER_EXIT,{userId:e}),this._remoteAudioVolumeMap.delete(e)}).add("banned",e=>{this._exitRoom().then(()=>{this.emit(K.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().then(()=>{this.emit(K.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(K.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=pe(J({},e),{uplinkRTT:Math.min(e.uplinkRTT,On),downlinkRTT:Math.min(e.downlinkRTT,On)});this.emit(K.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{vt(o,o).add("player-state-changed",s=>{let a=pe(J({},s),{userId:e.userId});o.kind===D.VIDEO&&(a.streamType=qi(o.streamType)),this.emit(o.kind===D.AUDIO?K.AUDIO_PLAY_STATE_CHANGED:K.VIDEO_PLAY_STATE_CHANGED,a)}).add("error",s=>{s.getCode()===Y.PLAY_NOT_ALLOWED&&this.emit(K.AUTOPLAY_FAILED,{userId:o.userId,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{at(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,a=e.videoAvailable,{audioAvailable:d,videoAvailable:h}=r;d||this._remoteAudioConfigMap.delete(o),h||this._remoteVideoConfigMap.delete(`${o}_main`),r.hasAuxiliary||this._remoteVideoConfigMap.delete(`${o}_sub`),a!==h&&(h?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(h?K.REMOTE_VIDEO_AVAILABLE:K.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==d&&(d?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(d?K.REMOTE_AUDIO_AVAILABLE:K.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?K.REMOTE_VIDEO_AVAILABLE:K.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(K.SEI_MESSAGE,pe(J({},e),{streamType:qi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(K.ERROR,new oe({code:ae.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,a,d,h,m,T,I;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((a=this._networkQuality)==null?void 0:a.uplinkRTT)||((d=this._networkQuality)==null?void 0:d.downlinkRTT)||0,On),upLoss:((h=this._networkQuality)==null?void 0:h.uplinkLoss)||0,downLoss:((m=this._networkQuality)==null?void 0:m.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((T=e.msg_up_stream_info.msg_audio_status)==null?void 0:T.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((I=e.msg_up_stream_info.msg_audio_status)==null?void 0:I.uint32_audio_level)||0)/di},video:e.msg_up_stream_info.msg_video_status.filter(v=>r[v.uint32_video_stream_type]).map(v=>({bitrate:(v.uint32_video_codec_bitrate||0)/1e3,width:v.uint32_video_width,height:v.uint32_video_height,frameRate:v.uint32_video_enc_fps,videoType:r[v.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(v=>({userId:v.msg_user_info.str_identifier,audio:{bitrate:(v.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(v.msg_audio_status.uint32_audio_level||0)/di},video:v.msg_video_status.map(N=>({bitrate:(N.uint32_video_codec_bitrate||0)/1e3,width:N.uint32_video_width,height:N.uint32_video_height,frameRate:N.uint32_video_dec_fps,videoType:r[N.uint32_video_stream_type]}))}))};this.emit(K.STATISTICS,o)}).add("custom-message",e=>{this.emit(K.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(K.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(K.FIRST_VIDEO_FRAME,pe(J({},e),{streamType:qi(e.streamType)}))}),vt(this,ht).add("audioInputAdded",e=>{this.emit(K.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(K.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(K.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(K.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>A(this,null,function*(){if(this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Tt&&Tt.deviceId===Mn){let r=(yield Vi()).find(o=>o.deviceId===Mn);r&&Tt.groupId!==r.groupId&&(Tt=r,this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>A(this,null,function*(){this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield Vi())[0];if(!r||!Tt||Tt.groupId===r.groupId)return;let o=Tt.deviceId===e.deviceId,s=Tt.deviceId===Mn&&Tt.deviceId===r.deviceId;(o||s)&&(Tt=r,this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}))}use(e){let r,o;"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,this._use(r,o||Oc)}_use(e,r){if(this._plugins.get(e.Name)){this._log.warn("duplicate install plugin",e.Name);return}let s=new e(K_.call(this,{TRTC:le,room:this._room,errorModule:$S,assetsPath:r}));this._plugins.set(e.Name,s),e.autoStart&&this.startPlugin(e.Name)}enterRoom(e){return A(this,null,function*(){var h,m;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:a=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Se(e.proxy)&&e.proxy.turnServer&&((m=(h=this._room).setTurnServer)==null||m.call(h,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=a,nt(e.preferHW)&&(this._room.preferHW=e.preferHW);let d={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(d,r,le.frameWorkType),this._checkTrackToPublish(),Kp.start()})}exitRoom(){return A(this,null,function*(){return yield this._exitRoom()})}switchRole(e,r){return A(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){at(this),this.removeAllListeners(),this._room.destroy(),Ua.delete(this),Ua.size===0&&Kp.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),F.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return A(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,a=new fi(this._room.audioManager),d={},h={muted:!0};s&&(L(s.microphoneId)?L(s.audioTrack)||(d.customSource=s.audioTrack):d.deviceId=s.microphoneId,s&&$e(s.captureVolume)&&a.setCaptureVolume(s.captureVolume),L(s.profile)||(Se(s.profile)?xc[s.profile]&&a.setProfile(xc[s.profile]):a.setProfile(s.profile)),$e(s.earMonitorVolume)&&(h.muted=!(s.earMonitorVolume>0),h.volume=s.earMonitorVolume),L(s.echoCancellation)||(a.profile.echoCancellation=s.echoCancellation),L(s.noiseSuppression)||(a.profile.noiseSuppression=s.noiseSuppression),L(s.autoGainControl)||(a.profile.autoGainControl=s.autoGainControl)),a.on("5",m=>{this.emit(K.ERROR,new oe({code:ae.DEVICE_ERROR,extraCode:5309,messageParams:{error:m}}))}),a.on("2",m=>{this.emit(K.DEVICE_CHANGED,{type:"microphone",action:"active",device:m})}),a.on("4",m=>{let T;m.error&&(T=oe.convertFrom(m.error)),this.emit(K.PUBLISH_STATE_CHANGED,pe(J({},m),{error:T}))}),this._listenOutputTrackChanged(a),this._speakerId&&a.setAudioOutput(this._speakerId),yield a.capture(d),L(o)||a.setMute(o),vt(a,a).add("player-state-changed",m=>{this.emit(K.AUDIO_PLAY_STATE_CHANGED,pe(J({},m),{userId:""}))}),this.listeners(K.AUDIO_FRAME).length>0&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM(m=>{this.emit(le.EVENT.AUDIO_FRAME,{data:m})})),this._getPCMAbortCtrl&&a.on("input-media-track-changed",()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM(m=>{this.emit(le.EVENT.AUDIO_FRAME,{data:m})}))}),r&&this._room.isJoined&&this._room.publish(a).catch(()=>{}),this._localAudioTrack=a,this._localAudioConfig=pe(J({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:h,track:a})})}updateLocalAudio(e){return A(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,a={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):L(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),L(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),L(s.earMonitorVolume)||(a.muted=!(s.earMonitorVolume>0),a.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!L(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),L(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:a,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Or(this._localAudioConfig,e)})}stopLocalAudio(){return A(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),at(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null,this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("stopLocalAudio"),delete this._getPCMAbortCtrl))})}startLocalVideo(){return A(this,arguments,function*(e={publish:!0,view:null}){if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,mute:s,option:a}=e,d=new Ir(this._room.videoManager),h={},m={};a&&(a.cameraId?h.deviceId=a.cameraId:L(a.useFrontCamera)?L(a.videoTrack)||(h.customSource=a.videoTrack):h.facingMode=a.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT,a.qosPreference&&(h.contentHint=Oa(a.qosPreference)),L(a.profile)||(Se(a.profile)?wr[a.profile]&&d.setProfile(wr[a.profile]):d.setProfile(a.profile)),L(a.fillMode)||(m.objectFit=a.fillMode),L(a.mirror)||(m.mirror=a.mirror),L(a.small)||(ua()?Se(a.small)?d.small=wr[a.small]:a.small===!0?d.small=wr["120p"]:d.small=a.small:this._log.warn("small stream is not supported"))),d.once("first-video-frame",T=>{this.emit(K.FIRST_VIDEO_FRAME,pe(J({},T),{streamType:qi(T.streamType)}))}),d.on("5",T=>{this.emit(K.ERROR,new oe({code:ae.DEVICE_ERROR,extraCode:5308,messageParams:{error:T}}))}),d.on("2",T=>{this.emit(K.DEVICE_CHANGED,{type:"camera",action:"active",device:T})}),d.on("4",T=>{let I;T.error&&(I=oe.convertFrom(T.error)),this.emit(K.PUBLISH_STATE_CHANGED,pe(J({},T),{error:I}))}),this._listenOutputTrackChanged(d),yield d.capture(h),L(s)||(yield d.setMute(s)),vt(d,d).add("player-state-changed",T=>{this.emit(K.VIDEO_PLAY_STATE_CHANGED,pe(J({},T),{userId:"",streamType:"main"}))}),o&&this._room.isJoined&&this._room.publish(d).catch(()=>{}),this._localVideoTrack=d,this._localVideoConfig=pe(J({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:m,track:d})})}updateLocalVideo(e){return A(this,null,function*(){if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,option:a}=e,d={};if(a)if(L(a.profile)||(Se(a.profile)?wr[a.profile]&&this._localVideoTrack.setProfile(wr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&L(a.useFrontCamera)&&this._localVideoTrack.applyProfile()),a.cameraId?yield this._localVideoTrack.switchDevice(a.cameraId):L(a.useFrontCamera)?L(a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a.videoTrack)):yield this._localVideoTrack.switchDevice(a.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT),L(a.fillMode)||(d.objectFit=a.fillMode),L(a.mirror)||(d.mirror=a.mirror),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Oa(a.qosPreference)),a.small){let h=!this._localVideoTrack.small;ua()?(a.small===!0?this._localVideoTrack.small=wr["120p"]:Se(a.small)?this._localVideoTrack.small=wr[a.small]:this._localVideoTrack.small=a.small,this._room.videoManager.update(),h&&this._room.enableSmall(!0)):this._log.warn("small stream is not supported")}else a.small===!1&&this._localVideoTrack.small&&(delete this._localVideoTrack.small,this._room.videoManager.update(),this._room.enableSmall(!1));this._room.isJoined&&!L(o)&&(o&&!this._localVideoConfig.publish&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._localVideoConfig.publish&&!o&&this._room.unpublish(this._localVideoTrack).catch(()=>{})),L(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:d,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Or(this._localVideoConfig,e)})}stopLocalVideo(){return A(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),at(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return A(this,arguments,function*(e={publish:!0,view:null}){if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,option:s}=e,a=new Bi(this._room.videoManager);a.on("4",I=>{let v;I.error&&(v=oe.convertFrom(I.error)),this.emit(K.PUBLISH_STATE_CHANGED,pe(J({},I),{error:v}))}),a.once("first-video-frame",I=>{this.emit(K.FIRST_VIDEO_FRAME,pe(J({},I),{streamType:qi(I.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let d=null,h={},m={};s&&(L(s.profile)||(Se(s.profile)?kc[s.profile]&&a.setProfile(kc[s.profile]):a.setProfile(s.profile)),s.systemAudio&&(h.systemAudio=!0,h.echoCancellation=s.echoCancellation,h.noiseSuppression=s.noiseSuppression,h.autoGainControl=s.autoGainControl),L(s.fillMode)||(m.objectFit=s.fillMode),s.videoTrack&&(h.videoTrack=s.videoTrack),s.audioTrack&&(h.audioTrack=s.audioTrack),s.captureElement&&(h.captureElement=s.captureElement),s.preferDisplaySurface&&(h.preferDisplaySurface=s.preferDisplaySurface),s.qosPreference&&(h.contentHint=Oa(s.qosPreference)));let T=yield a.capture(h);if(a.mediaTrack.addEventListener(D.ENDED,()=>{this._stopScreenShare(),this.emit(K.SCREEN_SHARE_STOPPED)}),T.getAudioTracks()[0]&&(d=new wo(this._room.audioManager),yield d.setInputMediaStreamTrack(T.getAudioTracks()[0]),this._speakerId&&d.setAudioOutput(this._speakerId)),vt(a,a).add("player-state-changed",I=>{this.emit(K.VIDEO_PLAY_STATE_CHANGED,pe(J({},I),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let I=[a];d&&I.push(d),this._room.publish(...I).catch(()=>{})}this._localScreenTrack=a,this._localScreenAudioTrack=d,this._localScreenConfig=pe(J({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:m,track:a})})}updateScreenShare(e){return A(this,null,function*(){if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,option:s}=e,a={};if(s&&(L(s.fillMode)||(a.objectFit=s.fillMode),s.qosPreference)){let d=Oa(s.qosPreference);this._localScreenTrack.setContentHint(d)}this._room.isJoined&&!L(o)&&(o&&!this._localScreenConfig.publish&&(this._room.publish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch(()=>{})),this._localScreenConfig.publish&&!o&&(this._room.unpublish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.unpublish(this._localScreenAudioTrack).catch(()=>{}))),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Or(this._localScreenConfig,e)})}stopScreenShare(){return A(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return A(this,null,function*(){let{view:r,userId:o,streamType:s,option:a}=e,d=`${o}_${s}`;if(this._remoteVideoConfigMap.has(d)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let h=this._room.remotePublishedUserMap.get(o);if(!h)return;let m={},T=s==="main"?h.remoteVideoTrack:h.remoteAuxiliaryTrack;this._listenOutputTrackChanged(T),a&&(L(a.fillMode)||(m.objectFit=a.fillMode),L(a.mirror)||(m.mirror=a.mirror),m.canvasRender=a.canvasRender,s==="main"&&!L(a.small)&&(h.remoteVideoTrack.setMediaType(a.small?8:4),this._room.changeType(a.small,T.user))),yield this._room.subscribe(T),yield this._enableVideoDecodeFallback(T,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:T}),this._emitTrackEvent(T),this._remoteVideoConfigMap.set(d,{config:e}),a&&!L(a.receiveWhenViewVisible)&&this._observeView({remoteTrack:T,view:r,receiveWhenViewVisible:a.receiveWhenViewVisible,viewRoot:a==null?void 0:a.viewRoot})})}updateRemoteVideo(e){return A(this,null,function*(){var z,Te;let{view:r,userId:o,streamType:s,option:a}=e,d=`${o}_${s}`,h=this._remoteVideoConfigMap.get(d);if(!h||!this._room.remotePublishedUserMap.has(o))return;let m={};a&&(L(a.fillMode)||(m.objectFit=a.fillMode),L(a.mirror)||(m.mirror=a.mirror));let T=null,I=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(I!=null&&I.muteState.hasVideo)&&(T=I.remoteVideoTrack),s==="sub"&&(I!=null&&I.muteState.hasAuxiliary)&&(T=I.remoteAuxiliaryTrack),!T)return;let{config:v}=h;s==="main"&&a&&!L(a.small)&&this._room.changeType(a.small,T.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:T,prevConfig:v}),Or(v,e);let N=L(a==null?void 0:a.receiveWhenViewVisible)?(z=v.option)==null?void 0:z.receiveWhenViewVisible:a.receiveWhenViewVisible,j=L(r)?v.view:r,H=L(a==null?void 0:a.viewRoot)?(Te=v.option)==null?void 0:Te.viewRoot:a.viewRoot;this._observeView({remoteTrack:T,view:j,receiveWhenViewVisible:N,viewRoot:H})})}stopRemoteVideo(e){return A(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return A(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:d,remoteVideoTrack:h,remoteAuxiliaryTrack:m}=s;e.streamType==="main"&&(h.stop(),d.hasVideo&&o.push(h)),e.streamType==="sub"&&(m.stop(),d.hasAuxiliary&&o.push(m))}for(let d of o)r&&(yield this._room.unsubscribe(d),this._mediaTrackMap.delete(d.outMediaTrack));let a=this._remoteVideoConfigMap.get(`${e.userId}_${e.streamType}`);a&&a.observer&&a.observer.disconnect(),this._remoteVideoConfigMap.delete(`${e.userId}_${e.streamType}`)})}muteRemoteAudio(e,r){return A(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return A(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return A(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return A(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){return this.listeners(e).includes(r)?this:(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),e===le.EVENT.AUDIO_FRAME&&!this._getPCMAbortCtrl&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM(s=>{this.emit(le.EVENT.AUDIO_FRAME,{data:s})}),this._localAudioTrack&&this._localAudioTrack.on("input-media-track-changed",()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM(s=>{this.emit(le.EVENT.AUDIO_FRAME,{data:s})}))})),this)}emit(e,...r){try{Q_.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){var s,a;return this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners(),(s=this._getPCMAbortCtrl)==null||s.abort("off"),delete this._getPCMAbortCtrl):(super.off(e,r,o),e===le.EVENT.AUDIO_FRAME&&((a=this._getPCMAbortCtrl)==null||a.abort("off"),delete this._getPCMAbortCtrl)),this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",a=!1;if(Se(e)?r=e:(r=e.userId,a=e.processed===!0,e.streamType&&(s=e.streamType)),r){let d=this._room.remotePublishedUserMap.get(r);d&&(o=d.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?a&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,a=null;if(r==="")o==="main"&&this._localVideoTrack&&(a=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(a=this._localScreenTrack);else{let d=this._room.remotePublishedUserMap.get(r);d&&(a=o==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack)}return a?s&&a.outMediaTrack&&a.outMediaTrack!==a.mediaTrack?a.outMediaTrack.clone():a.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s!=null&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return A(this,null,function*(){(yield Vi()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Tt=o)}),this._log.warn('the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/TRTC.html#.setCurrentSpeaker')})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return A(this,null,function*(){let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},a=o.remoteAudioTrack;this._listenOutputTrackChanged(a),this._speakerId&&a.setAudioOutput(this._speakerId);try{let d=this._remoteAudioVolumeMap.get(r),h=$e(d)?d:100;s.volume=h,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(a),be(De(a,"decode-failed"),We(De(a,re.INIT)),ke(()=>{this.startPlugin(La.Name,{track:a,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:a})}catch(d){throw this._remoteAudioConfigMap.delete(r),d}this._emitTrackEvent(a)})}_stopRemoteAudio(e,r=!0){return A(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`)})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;!o||!this._plugins.has("TRTCVideoDecoder")||(this._log.debug("remote video will fall back when decode failed"),be(De(e,"decode-failed"),We(De(e,re.INIT)),Ca(()=>{this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),Vo(De(e,"decode-downgrade-state-changed")),ke(s=>{this.emit(K.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,pe(J({},s),{streamType:r,userId:e.userId}))},s=>{this._log.error("fallback",s)},()=>this._log.info("fallback complete"))))}_updateVideoPlayOption(a){return A(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),L(e)&&s&&s.view&&!Wc(r)){let d=ls(s.view);d.length>0&&(yield o.play(d,r))}if(!L(e)){let d=ls(e);d.length>0?yield o.play(d,r):o.stop()}})}_updateAudioPlayOption(s){return A(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(a){}L(e.muted)||r.setPlayerMute(e.muted),L(e.volume)||r.setAudioVolume(e.volume/100)})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";e.outMediaTrack&&(r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(K.TRACK,{userId:o,streamType:qi(e.streamType),track:e.outMediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack)),e.length!==0)return this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(L(r))return;let a=this._remoteVideoConfigMap.get(`${e.userId}_${qi(e.streamType)}`);if(!a)return;let d=a.observer||void 0;if(r===null||it(r)&&r.length===0||!o){d==null||d.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let m=a.visibleViewMap||new Map,T=-1;(!d||d.root!==s)&&(d==null||d.disconnect(),m.clear(),d=new IntersectionObserver(v=>{v.forEach(N=>{m.set(N.target,N.isIntersecting)}),clearTimeout(T),T=window.setTimeout(()=>{[...m.values()].find(j=>j)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let I=new Set(ls(r));m.forEach((v,N)=>{I.has(N)||(d.unobserve(N),m.delete(N))}),I.forEach(v=>{m.set(v,!0),d.observe(v)}),d.takeRecords().forEach(v=>{m.set(v.target,v.isIntersecting)}),a.visibleViewMap=m,a.observer=d}_exitRoom(){return A(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch()}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch()}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),this._remoteAudioVolumeMap.clear(),tg(this),this._room.remotePublishedUserMap.forEach(e=>{at(e.remoteAudioTrack),at(e.remoteVideoTrack),at(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return A(this,null,function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let r=[this._localScreenTrack];this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...r).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),at(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Tt||xs(Tt))&&(this._initActiveSpeaker(),F.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return A(this,null,function*(){if(Tt&&!xs(Tt))this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:Tt});else{let e=yield Vi();e[0]&&!xs(e[0])?(Tt=e[0],this.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):F.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,a=[s];this._room.autoReceiveAudio&&a.push(o.remoteAudioTrack),this._room.subscribe(...a).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:pe(J({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),X.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),X.addCount({key:500001,useUV:!0})}static setLogLevel(e,r){U.setLogLevel(e),L(r)||(r?U.enableUploadLog():U.disableUploadLog())}static isSupported(){return Rd()}static getCameraList(e=!0){return er(e)}static getMicrophoneList(e=!0){return Gt(e)}static getSpeakerList(e=!0){return Vi(e)}static setCurrentSpeaker(e){return A(this,null,function*(){if(pt&&(e===nr.SPEAKER||e===nr.HEADSET)){let o=yield le.getMicrophoneList(),s="";if(o.forEach(a=>{a.label===e&&(s=a.deviceId)}),!s)return;Ua.forEach(a=>A(this,null,function*(){a._localAudioTrack&&(yield a.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield Vi()).forEach(o=>{o.deviceId===e&&(Ua.forEach(s=>{s._setCurrentSpeaker(e),s.emit(K.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Tt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:a,version:d}){switch(d&&(yo.version=d),e){case"count":yo.addCount({key:r,useUV:a});break;case"enum":yo.addEnum({key:r,value:o,useUV:a});break;case"number":yo.addNumber({key:r,value:o,split:s});break}}};l(le,"_loggerManager",U),l(le,"EVENT",K),l(le,"ERROR_CODE",ae),l(le,"TYPE",nr),l(le,"frameWorkType",30),G([qe({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],le.prototype,"use",1),G([Nt(Et.TRTC.enterRoom),Gi("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Ae(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),qe()],le.prototype,"enterRoom",1),G([qe()],le.prototype,"exitRoom",1),G([Nt(Et.TRTC.switchRole),Ho("room",{merge:(e,r)=>r}),qe()],le.prototype,"switchRole",1),G([qe()],le.prototype,"destroy",1),G([Nt(Et.TRTC.startLocalAudio),Gi("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),qe()],le.prototype,"startLocalAudio",1),G([Nt(Et.TRTC.updateLocalAudio),Ho("audio",{debounce:{delay:200,getKey:()=>`${ag}-localAudio`,isNeedToDebounce:e=>{var r;return!L((r=e.option)==null?void 0:r.captureVolume)}}}),qe()],le.prototype,"updateLocalAudio",1),G([ji("audio"),qe()],le.prototype,"stopLocalAudio",1),G([Nt(Et.TRTC.startLocalVideo),Gi("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),qe()],le.prototype,"startLocalVideo",1),G([Nt(Et.TRTC.updateLocalVideo),Ho("video"),qe()],le.prototype,"updateLocalVideo",1),G([ji("video"),qe()],le.prototype,"stopLocalVideo",1),G([Nt(Et.TRTC.startScreenShare),Gi("screen",()=>!0),qe()],le.prototype,"startScreenShare",1),G([Nt(Et.TRTC.updateScreenShare),Ho("screen"),qe()],le.prototype,"updateScreenShare",1),G([qe()],le.prototype,"stopScreenShare",1),G([Nt(Et.TRTC.startRemoteVideo),Gi(e=>`v${e.userId}${e.streamType}`,()=>!0),qe({getRemoteId:e=>`${e.userId}_${e.streamType}`})],le.prototype,"startRemoteVideo",1),G([Nt(Et.TRTC.updateRemoteVideo),Ho(e=>`v${e.userId}${e.streamType}`),qe({getRemoteId:e=>`${e.userId}_${e.streamType}`})],le.prototype,"updateRemoteVideo",1),G([Nt(Et.TRTC.stopRemoteVideo),Ae(e=>function(r){return A(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),qe({getRemoteId:e=>`${e.userId}_${e.streamType}`})],le.prototype,"stopRemoteVideo",1),G([ji(e=>`v${e.userId}${e.streamType}`)],le.prototype,"_stopRemoteVideo",1),G([Nt(...Et.TRTC.muteRemoteAudio),qe({getRemoteId:e=>e})],le.prototype,"muteRemoteAudio",1),G([Xp(...Et.TRTC.setRemoteAudioVolume),rg(200,e=>e),qe({getRemoteId:e=>e})],le.prototype,"setRemoteAudioVolume",1),G([fu("start"),Fi(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),Gi((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),qe({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Nm[e.getName()],ignoreLog:e=>e.getName()==="Debug"})],le.prototype,"startPlugin",1),G([fu("update"),Ho((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),qe({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>wm[e.getName()]})],le.prototype,"updatePlugin",1),G([fu("stop"),ji((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),qe({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Mm[e.getName()]})],le.prototype,"stopPlugin",1),G([Xp(...Et.TRTC.enableAudioVolumeEvaluation)],le.prototype,"enableAudioVolumeEvaluation",1),G([qe()],le.prototype,"getVideoSnapshot",1),G([qe()],le.prototype,"_setCurrentSpeaker",1),G([Gi(e=>`a${e.userId}`,()=>!0)],le.prototype,"_startRemoteAudio",1),G([Ae(e=>function(r){return A(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(pe(J({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),ji(e=>`a${e.userId}`)],le.prototype,"_stopRemoteAudio",1),G([ji("room")],le.prototype,"_exitRoom",1),G([ji("screen")],le.prototype,"_stopScreenShare",1),G([Nt(...Et.TRTC.sendSEIMessage),Hp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],le.prototype,"sendSEIMessage",1),G([Nt(Et.TRTC.sendCustomMessage),Hp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],le.prototype,"sendCustomMessage",1),G([Nt(Et.TRTC.create)],le,"_create",1);var sh=le,Js=sh;var bu=class{constructor(t,e){l(this,"_flag");l(this,"terminalType");l(this,"userId");l(this,"tinyId");l(this,"role");l(this,"remoteAudioTrack");l(this,"remoteVideoTrack");l(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new Mo(t,this),this.remoteVideoTrack=new Hi(t,this),this.remoteAuxiliaryTrack=new ou(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return Vn(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var nh=class{constructor(){l(this,"_set",new Set);F.on(P.LEAVE_SUCCESS,this.delete,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}};function HS(){return A(this,null,function*(){let i,t;try{let I=yield Gt();i=I&&I.length}catch(I){}try{let I=yield er();t=I&&I.length}catch(I){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:a}=this.checkSystemResult.detail,d=Li.basis(),h={webRTC:d.isWebRTCSupported,getUserMedia:d.isGetUserMediaSupported,webSocket:d.isWebSocketsSupported,screenShare:d.isScreenShareSupported,webAudio:d.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:a},m={browser:d.browser,os:d.os,trtc:h,devices:e},T={isWebCodecSupported:d.isWebCodecSupported,isMediaSessionSupported:d.isMediaSessionSupported,isWebTransportSupported:d.isWebTransportSupported};Ve.uploadEvent({log:`trtcstats-${JSON.stringify(m)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(m)}`),Ve.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(T)}`,userId:this.userId})})}function dg(){return Ae(i=>{let t=new nh;return function(e,r,o){return A(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new ue({code:Y.INVALID_OPERATION,message:st({key:ot.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new ue({code:Y.INVALID_OPERATION,message:st({key:ot.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),F.emit(P.JOIN_START,{room:this,roomId:s,params:e});let a=Pr.getEnv();a||(a=ei.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Lc.OLD_CLOUD_LADDER)?a=ei.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Lc.WEBRTC)&&(a=ei.WEBRTC))),Ve.setConfig({env:a,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),Li.checkSystemRequirementsInternal().then(d=>{this.checkSystemResult=d,HS.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Pr.getEnv()&&(yield this.schedule(e,o));let d=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Pr.performanceNow(),F.emit(P.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&Ve.uploadEvent({log:`stat-conv-${Number(Tr)}-${location.hostname}`,userId:this.userId}),d}catch(d){throw t.delete({room:this,roomId:s}),F.emit(P.JOIN_FAILED,{room:this,error:d}),d}})}})}var ug=()=>Ae(i=>function(...t){return A(this,null,function*(){F.emit(P.LEAVE_START,{room:this}),yield i.call(this),F.emit(P.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function lg(){return Ae(i=>function(...t){return A(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="capture"),!t.length))return;F.emit("61",{room:this});let e=i.apply(this,t);return t.forEach(r=>r.publish(this,e)),e})})}function mg(){return Ae(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function pg(){return Ae(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function WS({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return Ni(r)?r.catch(o=>U.error(`${i.name}() error observed ${o}`)):r}catch(r){U.error(`${i.name}() error observed ${r}`)}}}var Ru=class{constructor(t){l(this,"_frameWorkType");l(this,"_component");l(this,"_language");l(this,"connectionType");l(this,"_room");l(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});l(this,"_keyPrefix");l(this,"_log");l(this,"_intervalId");l(this,"_firstPublishedUserList");l(this,"_networkQuality");l(this,"_basicInfo");l(this,"_pathJoinRoom");l(this,"_pathLeaveRoom");l(this,"_pathMainVideoMap");l(this,"_pathMainAudioMap");l(this,"_pathAuxiliaryMap");l(this,"_remoteStreamStatMap");l(this,"_localStreamStat");l(this,"_eventMap",new Map);l(this,"_captureCostSum",0);l(this,"_captureCostCount",0);l(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=U.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Fe(this[e])&&(this[e]=WS({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:Ke,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,Kn().then(t=>{this._basicInfo.string_os_version=_o(),t?this._basicInfo.string_device_name=t.mobile?t.model:this._basicInfo.string_os_version:this._basicInfo.string_device_name=this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),F.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(P.JOIN_START,this.handleJoinStart).addEvent(P.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(P.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(P.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(P.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(P.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(P.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(P.JOIN_FAILED,this.handleJoinFailed).addEvent(P.LEAVE_START,this.handleLeaveStart).addEvent(P.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(P.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(P.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(P.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(P.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(P.PUBLISH_START,this.handlePublishStart).addEvent(P.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(P.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(P.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(P.PLAY_TRACK_START,this.handlePlayStart).addEvent(P.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(P.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===D.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(P.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(P.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(P.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(P.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,a=r.hasAudio||r.hasVideo||r.hasSmall,d=r.hasAuxiliary;!o&&a&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&d&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(P.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("unload",this.handleUnload),this._eventMap.forEach((t,e)=>F.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),ft.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(L(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),L(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),L(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:a,tls:d,request:h,response:m}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=a,this._pathJoinRoom.int32_schedule_tls=d,this._pathJoinRoom.int32_schedule_request=h,this._pathJoinRoom.int32_schedule_response=m}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof ue?Number(e.getExtraCode()||e.getCode()):Y.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0&&(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0?this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time:this._log.warn("pathJoinRoom endTime is 0"),this.report())}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:pe(J({},GS),{msg_user_info:new Va({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:a,role:d}=e,h=new Va({userId:s,tinyId:a,role:d==="anchor"?20:21}),m=Date.now(),T=`${s}_${r}`,I=this._remoteStreamStatMap.get(T);I&&I.subscribeStartTime===0&&(I.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(T)&&this._pathMainVideoMap.set(T,{statsToReport:{msg_user_info:h,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:m}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(T)&&this._pathMainAudioMap.set(T,{statsToReport:{msg_user_info:h,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:m})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(T)&&this._pathAuxiliaryMap.set(T,{sendSubscribeCMDTime:m})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(o&&(o.statsToReport.uint64_render_first_frame_time===0&&(o.statsToReport.uint64_render_first_frame_time=r),s)){let{statsToReport:d,playStreamTime:h,subscribedTime:m}=s;d.uint32_video_render_first===0&&h-m<=100&&(d.uint32_video_render_first=r-o.sendSubscribeCMDTime)}let a=this._pathAuxiliaryMap.get(e);if(a&&s){let{statsToReport:d,playStreamTime:h,subscribedTime:m}=s;d.uint32_video_render_first===0&&h-m<=100&&(d.uint32_video_render_first=r-a.sendSubscribeCMDTime)}}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:a})=>{let d=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(d)d.totalRTT+=e,d.totalLoss+=r,s&&(d.totalVideoDelay=(d.totalVideoDelay||0)+s,d.videoDelayCount=(d.videoDelayCount||0)+1),a&&(d.totalAudioDelay=(d.totalAudioDelay||0)+a,d.audioDelayCount=(d.audioDelayCount||0)+1),d.count++;else{let h,m,T,I;s&&(m=s,T=1),a&&(h=a,I=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:h,totalVideoDelay:m,audioDelayCount:I,videoDelayCount:T})}}))}handleHeartbeatStats(t){if(this.hitTest(t.room)){let{msg_device_info:e,msg_up_stream_info:r,msg_down_stream_info:o}=t.report;if(r.msg_video_status[0]){let{uint32_video_codec_bitrate:s,uint32_video_enc_fps:a,uint32_video_width:d,uint32_video_height:h}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=a,this._localStreamStat.totalVideoWidth+=d,this._localStreamStat.totalVideoHeight+=h,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/di*100)>0&&(this._localStreamStat.totalAudioLevel+=s/di,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:a,msg_audio_status:d,msg_video_status:h}=s,m=a.str_identifier,T=this._room.remotePublishedUserMap.get(m);if(h.forEach(I=>{let v=I.uint32_video_stream_type===2,N=I.uint32_video_stream_type===7,j=`${m}_${v?"main":"auxiliary"}`,H=this._remoteStreamStatMap.get(j);if(H&&(v&&(T!=null&&T.remoteVideoTrack.isSubscribed)||N&&(T!=null&&T.remoteAuxiliaryTrack))){H.totalVideoFPS+=I.uint32_video_receive_fps,H.totalVideoBitrate+=I.uint32_video_codec_bitrate,H.videoCount++,H.statsToReport.uint32_video_width===0&&(H.statsToReport.uint32_video_width=I.uint32_video_width),H.statsToReport.uint32_video_height===0&&(H.statsToReport.uint32_video_height=I.uint32_video_height);let z=v?T.remoteVideoTrack:T.remoteAuxiliaryTrack;z.stat.jitterBufferDelay&&(H.videoJitterBufferDelay=z.stat.jitterBufferDelay),z.stat.framesReceived&&(H.statsToReport.uint32_video_consume_render_rate=Math.floor(z.stat.framesDecoded/z.stat.framesReceived*Rn(10,6)))}}),d){let I=`${m}_main`,v=this._remoteStreamStatMap.get(I);this._remoteStreamStatMap.has(I)&&v&&T!=null&&T.remoteAudioTrack.isSubscribed&&(v.totalAudioBitrate+=d.uint32_audio_codec_bitrate,v.audioCount++,T.remoteAudioTrack.stat.jitterBufferDelay&&(v.audioJitterBufferDelay=T.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(d.uint32_audio_level/di*100)>0&&(v.totalAudioLevel+=d.uint32_audio_level/di,v.audioLevelCount++))}}),e.uint32_audio_capture_cost&&(this._captureCostSum+=e.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0))}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof ue?e.getExtraCode()||e.getCode():Y.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ss)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ns)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&wn)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:T,count:I,audioDelayCount:v,videoDelayCount:N,totalAudioDelay:j,totalVideoDelay:H}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(T/I),v&&j&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(j/v),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),N&&H&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(H/N))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,D.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,D.VIDEO)),t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,Go);let{badCaseDetector:a}=this._room,{dataFreeze:d,count:h}=a.getDataFreezeDuration(e),{renderFreeze:m}=a.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=h,t.statsToReport.uint32_video_block_time=Math.min(d,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(m,t.statsToReport.uint32_video_play_time),a.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0,(t.subscribeStartTime===0||t.subscribeStartTime-t.streamAddedTime>100||t.playStreamTime===0)&&(this._pathMainAudioMap.delete(e),this._pathMainVideoMap.delete(e),t.statsToReport.uint32_video_render_first=0)}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>Go&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+Go)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>Go&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+Go)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>Go&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+Go)}getReportData(){this._basicInfo.uint32_networkType=$c();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Va({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:us(this._signalInfo.relayIp),uint32_client_ip:us(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Rn(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:us(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return Fn(t),t}report(){return A(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return A(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=yield Xl(t),o=r instanceof ArrayBuffer,s=`${ii(e,Di.KEY_POINT)}&gzip=${+o}`,a=!1;navigator.sendBeacon&&(a=navigator.sendBeacon(s,r));let d=[this.uploadKVStat(X),this.uploadKVStat(yo)];a||d.push(oi({url:s,body:r,priority:"low"})),yield Promise.all(d)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return A(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=pe(J({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=yield Xl(e),o=`${ii(+this._room.sdkAppId,Di.KV_STAT)}&gzip=${+(r instanceof ArrayBuffer)}`,s=!1;navigator.sendBeacon&&(s=navigator.sendBeacon(o,r)),s||oi({url:o,body:r})})}};G([Ui({settings:{timeout:500,retries:3}})],Ru.prototype,"upload",1);var Go=5e3,GS={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_render_first:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},Va=class{constructor(t){l(this,"str_identifier");l(this,"str_tinyid");l(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},hg=Ru;var ah=class{constructor(){l(this,"_startTime");l(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=ge())}stop(){this._endTime===0&&(this._endTime=ge())}getDuration(){return this._endTime===0?ge()-this._startTime:this._endTime-this._startTime}get endTime(){return this._endTime}},zs=ah;var ch=class{constructor(t){l(this,"_room",null);l(this,"_durationMap");l(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(P.SUBSCRIBE_SUCCESS,this.handleSubscribed).set(P.UNSUBSCRIBE_SUCCESS,this.handleStreamStopped).set(P.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var a;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,D.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,D.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,D.VIDEO);let s=(a=this._room)==null?void 0:a.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,D.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,D.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,D.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>F.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>F.off(e,t,this)),this._eventMap.clear()}handleSubscribed({room:t,streamType:e,remotePublishedUser:r}){if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;if(r.muteState.hasAudio&&e==="main")if(r.remoteAudioTrack.isSubscribed){let a=new zs,d=this._durationMap.get(s);d?this.isRecording(d.audio)||d.audio.push(a):this._durationMap.set(s,{userId:o,type:e,audio:[a],video:[]})}else this.stopDurationItem(s,D.AUDIO);if(r.muteState.hasVideo||r.muteState.hasAuxiliary)if(r.remoteVideoTrack.isSubscribed||r.remoteAuxiliaryTrack.isSubscribed){let a=new zs,d=this._durationMap.get(s);d?this.isRecording(d.video)||d.video.push(a):this._durationMap.set(s,{userId:o,type:e,audio:[],video:[a]})}else this.stopDurationItem(s,D.VIDEO)}handleStreamStopped({room:t,streamType:e,remotePublishedUser:r}){if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDurationItem(s,D.AUDIO),this.stopDurationItem(s,D.VIDEO)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new zs,a=this._durationMap.get(o);a?this.isRecording(a[e])||a[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===D.AUDIO?[s]:[],video:e===D.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},fg=ch;var dh=class{constructor(t){l(this,"_room");l(this,"_renderFreezeMap",new Map);l(this,"_isVideoPlayingEventFiredMap",new Map);l(this,"_dataFreezeMap",new Map);l(this,"_monitorFreezeData",new Map);l(this,"_eventMap",new Map);this._room=t.room,this.installEvents()}installEvents(){this._eventMap.set(P.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(P.PLAY_TRACK_START,this.onPlayTrackStart).set(P.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(P.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",a=`${r.userId}_${s}`;this.stopDataFreeze({key:a,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",a=`${r.userId}_${s}`;this.stopDataFreeze({key:a,userId:o,type:s})}}).set(P.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==D.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===D.MUTE?this.onVideoTrackMuted(t):r===D.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(P.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((t,e)=>F.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>F.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),a=new zs;s?s.durationItemList.push(a):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[a],isFreezing(){let d=this.durationItemList[this.durationItemList.length-1];return d&&d.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){this.hitTest(t)&&e.msg_down_stream_info.forEach(r=>{let o=this._room.remotePublishedUserMap.get(r.msg_user_info.str_identifier);if(!o)return;let{userId:s,muteState:a}=o;r.msg_video_status.forEach(d=>{d.uint32_video_stream_type===2&&a.hasVideo&&!a.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:d.uint32_video_dec_fps,type:"main"}),d.uint32_video_stream_type===7&&a.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:d.uint32_video_dec_fps,type:"auxiliary"})})})}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let a=s.getDuration();a>Fc?this._monitorFreezeData.set(t,{userId:e,type:r,duration:a}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return A(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,a=this._renderFreezeMap.get(s);if(e<=2){let d=ge();a&&!a.isFreeze&&(a.freezeTimeline.push({startTime:d,endTime:0}),a.isFreeze=!0),a||this._renderFreezeMap.set(s,{userId:t,type:r,isFreeze:!0,freezeTimeline:[{startTime:d,endTime:0}],renderFreezeTotal:0})}else if(a&&a.isFreeze){a.isFreeze=!1;let d=a.freezeTimeline.pop();if(d){d.endTime=ge();let h=d.endTime-d.startTime;a.freezeTimeline.push(d),a.renderFreezeTotal+=Math.min(5e3,h)}}})}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==D.VIDEO||!t.isAvailable)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<Fc&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e=this._renderFreezeMap.get(t),r=0,o=0;if(e)if(!e.isFreeze)r=e.renderFreezeTotal;else{let s=ge(),a=e.freezeTimeline[e.freezeTimeline.length-1],d=s-a.startTime;r=e.renderFreezeTotal+Math.min(d,5e3),o=e.freezeTimeline.length}return{renderFreeze:r,count:o}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},_g=dh;var Eg=Ci(ki(),1);var jS=[1,0,0,0,1,1,0,1],vu=class extends Vt{constructor(t,e){if(super(t,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"mirror",logger:e}),t instanceof _t)try{this.setTexBuffer(jS)}catch(r){t.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${r.message||r}`}))}}draw2d(t,e,r,o,s){if(this.ctx2d){this.ctx2d.save(),this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0);let a=super.draw2d(t,e,r,o,s);return this.ctx2d.restore(),a}return!1}render(t){var e;return(e=this.input)!=null&&e.requestFrame(t)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}};var uh=class{constructor(t,e){this.node=t;this.layout=e;l(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}},Cu=class extends Vt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});l(this,"inputs",[])}addInput(e,r){if(this.inputs[r.zIndex])throw new Error("input already exists");let o=new uh(e,r);this.inputs[r.zIndex]=o}resize(e,r){let o=this.inputs.reduce((s,a)=>a?Object.assign(s,{width:Math.max(s.width,a.right),height:Math.max(s.height,a.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof _t&&this.inputs.forEach(s=>{if(s){let a=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,a):s.positionBuffer=this.createBuffer(a)}})}connect(e,...r){return super.connect(e,...r),this.resize(0,0),e}removeInput(e){this.inputs[this.inputs.findIndex(r=>(r==null?void 0:r.node)===e)]=void 0}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),!this.inputs.reduce((s,a)=>(!a||!a.node.requestFrame(e))&&s,!0)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let a=this.inputs[s];a&&(a.node.useTexture(),this.draw(a.positionBuffer))}return!0}return!1}render2d(e){if(!this.inputs.reduce((o,s)=>(!s||!s.node.requestFrame(e))&&o,!0)&&this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height);for(let o=0;o<this.inputs.length;o++){let s=this.inputs[o];s&&this.draw2d(s.node.image,s.x,s.y,s.width,s.height)}return!0}return!1}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:a,name:d}=this,h=Date.now(),m=(e-this.lastInfo.totalFrames)/((h-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:a,timestamp:h,fps:m,name:d},J({parent:this.inputs.filter(T=>T).map(T=>T.node.getInfo())},this.lastInfo)}close(){super.close(),this.inputs.forEach(e=>{var r,o;if(e&&((r=e.node)==null||r.disconnect(),e.positionBuffer&&this.context instanceof _t))try{(o=this.context.ctx)==null||o.deleteBuffer(e.positionBuffer)}catch(s){}})}};var qS=`#version 300 es
98
+ 2. If the user is in Chrome 70 and below, when the div container is moved, the playback will be paused.`,color:"orange",class:"orange",textColor:"#fff"},'"displaySurface":"window"':{tips:"Screen sharing captures the application window",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"monitor"':{tips:"Screen sharing captures the entire screen",color:"blue",class:"blue",textColor:"#fff"},'"displaySurface":"browser"':{tips:"Screen sharing captures a certain tab page",color:"blue",class:"blue",textColor:"#fff"},updateMediaSettings:{tips:"The resolution and frame rate below are the actual resolution and frame rate captured",color:"blue",class:"blue",textColor:"#fff"},"main stream start to play with":{tips:"Call remoteStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"stream start to play with":{tips:"Call localStream.play interface",color:"blue",class:"blue",textColor:"#fff"},"main setAudioVolume to 0":{tips:"Business side calls remoteStream.setAudioVolume(0) interface to set the playback volume to 0, which will cause the playback to be silent",color:"orange",class:"orange",textColor:"#fff"},"screen sharing was stopped because the video track is ended":{tips:"Screen sharing capture stopped, possible reasons: user clicks the stop button, the window/page shared by the user is closed, etc.",color:"orange",class:"orange",textColor:"#fff"},"Join() => joining room":{tips:"Call client.join interface",color:"blue",class:"blue",textColor:"#fff"},"publish() => publishing local stream":{tips:"Call client.publish interface",color:"blue",class:"blue",textColor:"#fff"},"subscribe() => subscribe to":{tips:"Call client.subscribe interface",color:"blue",class:"blue",textColor:"#fff"},"switchRole() => switch role":{tips:"Call client.switchRole interface",color:"blue",class:"blue",textColor:"#fff"}};["enterRoom","exitRoom","switchRole","destroy","startLocalAudio","updateLocalAudio","stopLocalAudio","startLocalVideo","updateLocalVideo","stopLocalVideo","startScreenShare","updateScreenShare","stopScreenShare","startRemoteVideo","updateRemoteVideo","stopRemoteVideo","muteRemoteAudio","setRemoteAudioVolume"].forEach(i=>{ng[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var Jk=Object.keys(ng);var FS=0,Su,qs=class qs{constructor(t){this.core=t;l(this,"_core");l(this,"log");l(this,"dumpLocalVideoMap",{});l(this,"dumpRemoteVideoMap",{});l(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++FS}`}),this.log.info("created")}getName(){return qs.Name}getAlias(){return"dm"}getGroup(){return"dm"}getValidateRule(t){switch(t){case"start":return{name:"StartDebugOptions",required:!1};case"update":return{name:"UpdateDebugOptions",required:!1};case"stop":return{name:"StopDebugOptions",required:!1}}}start(){return A(this,null,function*(){var e;!new URLSearchParams(location.search).has("trtcDebug")&&((e=window.sessionStorage)==null?void 0:e.getItem("TRTC_ENABLE_DEBUG_PLUGIN"))!=="true"||(yield this.openDebugDiaLog(),this.addVideoProcessor())})}update(){}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return A(this,null,function*(){try{if(Su)yield Su;else{let t=Date.now(),e=new URLSearchParams(location.search).get("trtcDebugDialogVersion")||Ke;Su=this.loadScript(`https://web.sdk.qcloud.com/trtc/webrtc/assets/debug/debug-dialog@${e}.js`),yield Su,this.log.info(`download debug dialog script cost: ${Date.now()-t}ms`)}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(t){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(t))}})}closeDebugDiaLog(){var t;(t=this.dialog)==null||t.closeDialog(),this.dialog=null}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):oh,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):sh,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return oh({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return sh({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}loadScript(t){return new Promise((e,r)=>{this.log.info(`loading debug dialog from ${t}`);let o=document.createElement("script");o.type="text/javascript",o.onload=e,o.onerror=r,o.crossOrigin="anonymous",o.src=t,document.head.append?document.head.append(o):document.getElementsByTagName("head")[0].appendChild(o)})}};l(qs,"Name","Debug"),l(qs,"autoStart",!0),G([Vi({settings:{timeout:3e3,retries:3},onError(t,e,r){var o;(o=t==null?void 0:t.message)!=null&&o.includes("timeout")?e():r(t)}})],qs.prototype,"loadScript",1);var yu=qs;var ag=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Au=class{constructor(t,e,r){l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"type","auto");l(this,"config");l(this,"decoder");l(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=Se(e,Z.INIT),this.stopOB=_t(this.trackDoneOB),this.startOB=_t(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let a=_t(),d=h=>{let m=this.pipe(e);return a.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ie(m,Ge(this.stopOB),Pe(()=>{},T=>{e.log.error(T),o.addFailedEvent({key:ag(this.type),error:T}),h>4?this.startOB.error(T):this.startOB.next(h+1)})),Ie(m,Sr(1),va(Uo))};Ie(this.startOB,Lo(0),Fr(d),Ge(this.stopOB),Pe(()=>{e.player.setOutput(),a.next("STARTED")},h=>{a.next("FAILED")},()=>{o.addSuccessEvent({key:ag(this.type)}),o.addSuccessEvent({key:504702})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}pipe(t){return _i()(e=>A(this,null,function*(){this._decodeSink=e,e.defer(()=>{var o;(o=this.decoder)==null||o.close()});let{type:r}=this;try{switch(r){case"webCodecs":this.decoder=new AudioDecoder({error:o=>{t.log.error(o),e.error(4)},output:o=>{this.decodedFrameCount++,e.next(o),t.player.write(o)}});break;case"wasm":break}this.decoder.configure(this.config)}catch(o){t.log.error(o),e.error(r==="webCodecs"?2:6)}}))}decodeFrame(t){var e;this.inputFrameCount++,((e=this.decoder)==null?void 0:e.state)==="configured"&&this.decoder.decode(new EncodedAudioChunk({data:t.data,timestamp:t.timestamp,type:"key"}))}},BS={type:"object"},ka=class ka{constructor(t){this.core=t;l(this,"log");l(this,"contextMap",new Map);l(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return ka.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return ka.Name}getValidateRule(t){return BS}start(t){let{track:e}=t;this.decodeProcessorMap.set(e,this.decode(t)),this.core.room.audioManager.addDecodeProcessor({processor:({frame:r,track:o})=>this.decodeProcessorMap.has(o)?this.decodeProcessorMap.get(o)({frame:r,track:o}):r,type:3})}decode(t){return({frame:e,track:r})=>{if(r!==t.track)return e;if(this.contextMap.has(r))return this.contextMap.get(r).decodeFrame(e);let o=new Au(this.core,r,t);return Ie(o.trackDoneOB,Sr(1),Pe(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:r})})),this.contextMap.set(r,o),o.decodeFrame(e)}}stop({track:t}){let e=this.contextMap.get(t);e&&(e.close("stop"),this.contextMap.delete(t),this.contextMap.size===0&&this.core.room.audioManager.removeDecodeProcessor({type:3}))}update(t){let e=this.contextMap.get(t.track);if(e){if(t.type==="mock"){e.mock(10);return}e.close("update"),this.contextMap.set(t.track,new Au(this.core,t.track,t))}}};l(ka,"Name","TRTCAudioDecoder");var La=ka;var cg=0,Ua=new Set,Tt=null;Ll(og);vs.checkStorage();Vm();var $S={RtcError:oe,ErrorCode:ae,ErrorCodeDictionary:yr},le=class le extends dg.EventEmitter{constructor(e,r){super();l(this,"_room");l(this,"_eventListened",new Set);l(this,"_localVideoTrack",null);l(this,"_localAudioTrack",null);l(this,"_localScreenTrack",null);l(this,"_localScreenAudioTrack",null);l(this,"_localVideoConfig",null);l(this,"_localScreenConfig",null);l(this,"_localAudioConfig",null);l(this,"_remoteVideoConfigMap",new Map);l(this,"_remoteAudioConfigMap",new Map);l(this,"_remoteAudioVolumeMap",new Map);l(this,"_remoteAudioMuteMap",new Map);l(this,"_mediaTrackMap",new WeakMap);l(this,"_log",U.createLogger({id:`t${++cg}`}));l(this,"_plugins",new Map);l(this,"_networkQuality",null);l(this,"_speakerId");l(this,"_getPCMAbortCtrl");this._room=new e(J({logger:this._log,frameWorkType:le.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,this._log.debug(`TRTC.create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(a=>a.Name):s)}`),Object.defineProperties(this,{dumpAudio:{enumerable:!1,value(o){return this._room.audioManager.dump(o)}}}),r.plugins&&r.plugins.forEach(o=>{this._use(o,r.assetsPath)}),this._use(gu,r.assetsPath),this._use(Tu,r.assetsPath),this._use(La,r.assetsPath||Oc),this._use(yu),r.enableSEI&&pa&&this._use(Iu),this._room.on("audio-volume",o=>{!o.find(s=>s.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(this._localAudioTrack.getAudioLevel()*100)}),this.emit(ee.AUDIO_VOLUME,{result:o.sort((s,a)=>a.volume-s.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:ae.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),tg(this,"trtc")}static create(e){}static _create(e,r){W_();let o=new le(e,r||{});return Ua.add(o),o}get room(){return this._room}_listenEvents(){vt(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(ee.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(ee.REMOTE_USER_EXIT,{userId:e}),this._remoteAudioVolumeMap.delete(e)}).add("banned",e=>{this._exitRoom().then(()=>{this.emit(ee.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().then(()=>{this.emit(ee.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(ee.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=pe(J({},e),{uplinkRTT:Math.min(e.uplinkRTT,On),downlinkRTT:Math.min(e.downlinkRTT,On)});this.emit(ee.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{vt(o,o).add("player-state-changed",s=>{let a=pe(J({},s),{userId:e.userId});o.kind===D.VIDEO&&(a.streamType=zi(o.streamType)),this.emit(o.kind===D.AUDIO?ee.AUDIO_PLAY_STATE_CHANGED:ee.VIDEO_PLAY_STATE_CHANGED,a)}).add("error",s=>{s.getCode()===Y.PLAY_NOT_ALLOWED&&this.emit(ee.AUTOPLAY_FAILED,{userId:o.userId,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{at(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,a=e.videoAvailable,{audioAvailable:d,videoAvailable:h}=r;d||this._remoteAudioConfigMap.delete(o),h||this._remoteVideoConfigMap.delete(`${o}_main`),r.hasAuxiliary||this._remoteVideoConfigMap.delete(`${o}_sub`),a!==h&&(h?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(h?ee.REMOTE_VIDEO_AVAILABLE:ee.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==d&&(d?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(d?ee.REMOTE_AUDIO_AVAILABLE:ee.REMOTE_AUDIO_UNAVAILABLE,{userId:o})),e.hasAuxiliary!==r.hasAuxiliary&&(r.hasAuxiliary?this._onVideoAvailable({userId:o,streamType:"sub"}):this._onVideoUnavailable({userId:o,streamType:"sub"}),this.emit(r.hasAuxiliary?ee.REMOTE_VIDEO_AVAILABLE:ee.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(ee.SEI_MESSAGE,pe(J({},e),{streamType:zi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(ee.ERROR,new oe({code:ae.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,a,d,h,m,T,I;let r={2:"big",3:"small",7:"sub"},o={rtt:Math.min(e.msg_up_stream_info.msg_network_status.uint32_rtt||((s=e.msg_down_stream_info[0])==null?void 0:s.msg_network_status.uint32_rtt)||((a=this._networkQuality)==null?void 0:a.uplinkRTT)||((d=this._networkQuality)==null?void 0:d.downlinkRTT)||0,On),upLoss:((h=this._networkQuality)==null?void 0:h.uplinkLoss)||0,downLoss:((m=this._networkQuality)==null?void 0:m.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((T=e.msg_up_stream_info.msg_audio_status)==null?void 0:T.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((I=e.msg_up_stream_info.msg_audio_status)==null?void 0:I.uint32_audio_level)||0)/di},video:e.msg_up_stream_info.msg_video_status.filter(v=>r[v.uint32_video_stream_type]).map(v=>({bitrate:(v.uint32_video_codec_bitrate||0)/1e3,width:v.uint32_video_width,height:v.uint32_video_height,frameRate:v.uint32_video_enc_fps,videoType:r[v.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(v=>({userId:v.msg_user_info.str_identifier,audio:{bitrate:(v.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(v.msg_audio_status.uint32_audio_level||0)/di},video:v.msg_video_status.map(N=>({bitrate:(N.uint32_video_codec_bitrate||0)/1e3,width:N.uint32_video_width,height:N.uint32_video_height,frameRate:N.uint32_video_dec_fps,videoType:r[N.uint32_video_stream_type]}))}))};this.emit(ee.STATISTICS,o)}).add("custom-message",e=>{this.emit(ee.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(ee.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(ee.FIRST_VIDEO_FRAME,pe(J({},e),{streamType:zi(e.streamType)}))}),vt(this,ht).add("audioInputAdded",e=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>A(this,null,function*(){if(this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Tt&&Tt.deviceId===Mn){let r=(yield Fi()).find(o=>o.deviceId===Mn);r&&Tt.groupId!==r.groupId&&(Tt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>A(this,null,function*(){this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield Fi())[0];if(!r||!Tt||Tt.groupId===r.groupId)return;let o=Tt.deviceId===e.deviceId,s=Tt.deviceId===Mn&&Tt.deviceId===r.deviceId;(o||s)&&(Tt=r,this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}))}use(e){let r,o;"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,this._use(r,o||Oc)}_use(e,r){if(this._plugins.get(e.Name)){this._log.warn("duplicate install plugin",e.Name);return}let s=new e(eg.call(this,{TRTC:le,room:this._room,errorModule:$S,assetsPath:r}));this._plugins.set(e.Name,s),e.autoStart&&this.startPlugin(e.Name)}enterRoom(e){return A(this,null,function*(){var h,m;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:a=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Ae(e.proxy)&&e.proxy.turnServer&&((m=(h=this._room).setTurnServer)==null||m.call(h,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=a,nt(e.preferHW)&&(this._room.preferHW=e.preferHW);let d={sdkAppId:e.sdkAppId,userId:e.userId,userSig:e.userSig,privateMapKey:e.privateMapKey||null,latencyLevel:e.latencyLevel,role:e.role==="audience"?21:20,roomId:e.roomId||0,strRoomId:e.strRoomId||"",businessInfo:e.businessInfo||null,streamId:null,userDefineRecordId:e.userDefineRecordId||null,frameWorkType:e.frameWorkType,component:e.component,language:e.language,priority:e.priority,useVp8:e.useVp8};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(d,r,le.frameWorkType),this._checkTrackToPublish(),eh.start()})}exitRoom(){return A(this,null,function*(){return yield this._exitRoom()})}switchRole(e,r){return A(this,null,function*(){r!=null&&r.privateMapKey&&(this._room.privateMapKey=r.privateMapKey),r!=null&&r.latencyLevel&&(this._room.latencyLevel=r.latencyLevel),yield this._room.switchRole(e),e==="anchor"&&this._checkTrackToPublish()})}destroy(){at(this),this.removeAllListeners(),this._room.destroy(),Ua.delete(this),Ua.size===0&&eh.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),F.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return A(this,arguments,function*(e={publish:!0}){if(this._localAudioTrack){this._log.warn("local audio is already started");return}let{publish:r=!0,mute:o,option:s}=e,a=new fi(this._room.audioManager),d={},h={muted:!0};s&&(L(s.microphoneId)?L(s.audioTrack)||(d.customSource=s.audioTrack):d.deviceId=s.microphoneId,s&&$e(s.captureVolume)&&a.setCaptureVolume(s.captureVolume),L(s.profile)||(Ae(s.profile)?xc[s.profile]&&a.setProfile(xc[s.profile]):a.setProfile(s.profile)),$e(s.earMonitorVolume)&&(h.muted=!(s.earMonitorVolume>0),h.volume=s.earMonitorVolume),L(s.echoCancellation)||(a.profile.echoCancellation=s.echoCancellation),L(s.noiseSuppression)||(a.profile.noiseSuppression=s.noiseSuppression),L(s.autoGainControl)||(a.profile.autoGainControl=s.autoGainControl)),a.on("5",m=>{this.emit(ee.ERROR,new oe({code:ae.DEVICE_ERROR,extraCode:5309,messageParams:{error:m}}))}),a.on("2",m=>{this.emit(ee.DEVICE_CHANGED,{type:"microphone",action:"active",device:m})}),a.on("4",m=>{let T;m.error&&(T=oe.convertFrom(m.error)),this.emit(ee.PUBLISH_STATE_CHANGED,pe(J({},m),{error:T}))}),this._listenOutputTrackChanged(a),this._speakerId&&a.setAudioOutput(this._speakerId),yield a.capture(d),L(o)||a.setMute(o),vt(a,a).add("player-state-changed",m=>{this.emit(ee.AUDIO_PLAY_STATE_CHANGED,pe(J({},m),{userId:""}))}),this.listeners(ee.AUDIO_FRAME).length>0&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM(m=>{this.emit(le.EVENT.AUDIO_FRAME,{data:m})})),this._getPCMAbortCtrl&&a.on("input-media-track-changed",()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM(m=>{this.emit(le.EVENT.AUDIO_FRAME,{data:m})}))}),r&&this._room.isJoined&&this._room.publish(a).catch(()=>{}),this._localAudioTrack=a,this._localAudioConfig=pe(J({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:h,track:a})})}updateLocalAudio(e){return A(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,a={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):L(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),L(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),L(s.earMonitorVolume)||(a.muted=!(s.earMonitorVolume>0),a.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!L(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),L(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:a,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Or(this._localAudioConfig,e)})}stopLocalAudio(){return A(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),at(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null,this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("stopLocalAudio"),delete this._getPCMAbortCtrl))})}startLocalVideo(){return A(this,arguments,function*(e={publish:!0,view:null}){if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,mute:s,option:a}=e,d=new Ir(this._room.videoManager),h={},m={};a&&(a.cameraId?h.deviceId=a.cameraId:L(a.useFrontCamera)?L(a.videoTrack)||(h.customSource=a.videoTrack):h.facingMode=a.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT,a.qosPreference&&(h.contentHint=Oa(a.qosPreference)),L(a.profile)||(Ae(a.profile)?wr[a.profile]&&d.setProfile(wr[a.profile]):d.setProfile(a.profile)),L(a.fillMode)||(m.objectFit=a.fillMode),L(a.mirror)||(m.mirror=a.mirror),L(a.small)||(ua()?Ae(a.small)?d.small=wr[a.small]:a.small===!0?d.small=wr["120p"]:d.small=a.small:this._log.warn("small stream is not supported"))),d.once("first-video-frame",T=>{this.emit(ee.FIRST_VIDEO_FRAME,pe(J({},T),{streamType:zi(T.streamType)}))}),d.on("5",T=>{this.emit(ee.ERROR,new oe({code:ae.DEVICE_ERROR,extraCode:5308,messageParams:{error:T}}))}),d.on("2",T=>{this.emit(ee.DEVICE_CHANGED,{type:"camera",action:"active",device:T})}),d.on("4",T=>{let I;T.error&&(I=oe.convertFrom(T.error)),this.emit(ee.PUBLISH_STATE_CHANGED,pe(J({},T),{error:I}))}),this._listenOutputTrackChanged(d),yield d.capture(h),L(s)||(yield d.setMute(s)),vt(d,d).add("player-state-changed",T=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,pe(J({},T),{userId:"",streamType:"main"}))}),o&&this._room.isJoined&&this._room.publish(d).catch(()=>{}),this._localVideoTrack=d,this._localVideoConfig=pe(J({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:m,track:d})})}updateLocalVideo(e){return A(this,null,function*(){if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,option:a}=e,d={};if(a)if(L(a.profile)||(Ae(a.profile)?wr[a.profile]&&this._localVideoTrack.setProfile(wr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&L(a.useFrontCamera)&&this._localVideoTrack.applyProfile()),a.cameraId?yield this._localVideoTrack.switchDevice(a.cameraId):L(a.useFrontCamera)?L(a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a.videoTrack)):yield this._localVideoTrack.switchDevice(a.useFrontCamera?D.FACING_MODE_USER:D.FACING_MODE_ENVIRONMENT),L(a.fillMode)||(d.objectFit=a.fillMode),L(a.mirror)||(d.mirror=a.mirror),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Oa(a.qosPreference)),a.small){let h=!this._localVideoTrack.small;ua()?(a.small===!0?this._localVideoTrack.small=wr["120p"]:Ae(a.small)?this._localVideoTrack.small=wr[a.small]:this._localVideoTrack.small=a.small,this._room.videoManager.update(),h&&this._room.enableSmall(!0)):this._log.warn("small stream is not supported")}else a.small===!1&&this._localVideoTrack.small&&(delete this._localVideoTrack.small,this._room.videoManager.update(),this._room.enableSmall(!1));this._room.isJoined&&!L(o)&&(o&&!this._localVideoConfig.publish&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._localVideoConfig.publish&&!o&&this._room.unpublish(this._localVideoTrack).catch(()=>{})),L(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:d,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Or(this._localVideoConfig,e)})}stopLocalVideo(){return A(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),at(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return A(this,arguments,function*(e={publish:!0,view:null}){if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,option:s}=e,a=new $i(this._room.videoManager);a.on("4",I=>{let v;I.error&&(v=oe.convertFrom(I.error)),this.emit(ee.PUBLISH_STATE_CHANGED,pe(J({},I),{error:v}))}),a.once("first-video-frame",I=>{this.emit(ee.FIRST_VIDEO_FRAME,pe(J({},I),{streamType:zi(I.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let d=null,h={},m={};s&&(L(s.profile)||(Ae(s.profile)?kc[s.profile]&&a.setProfile(kc[s.profile]):a.setProfile(s.profile)),s.systemAudio&&(h.systemAudio=!0,h.echoCancellation=s.echoCancellation,h.noiseSuppression=s.noiseSuppression,h.autoGainControl=s.autoGainControl),L(s.fillMode)||(m.objectFit=s.fillMode),s.videoTrack&&(h.videoTrack=s.videoTrack),s.audioTrack&&(h.audioTrack=s.audioTrack),s.captureElement&&(h.captureElement=s.captureElement),s.preferDisplaySurface&&(h.preferDisplaySurface=s.preferDisplaySurface),s.qosPreference&&(h.contentHint=Oa(s.qosPreference)));let T=yield a.capture(h);if(a.mediaTrack.addEventListener(D.ENDED,()=>{this._stopScreenShare(),this.emit(ee.SCREEN_SHARE_STOPPED)}),T.getAudioTracks()[0]&&(d=new Oo(this._room.audioManager),yield d.setInputMediaStreamTrack(T.getAudioTracks()[0]),this._speakerId&&d.setAudioOutput(this._speakerId)),vt(a,a).add("player-state-changed",I=>{this.emit(ee.VIDEO_PLAY_STATE_CHANGED,pe(J({},I),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let I=[a];d&&I.push(d),this._room.publish(...I).catch(()=>{})}this._localScreenTrack=a,this._localScreenAudioTrack=d,this._localScreenConfig=pe(J({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:m,track:a})})}updateScreenShare(e){return A(this,null,function*(){if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,option:s}=e,a={};if(s&&(L(s.fillMode)||(a.objectFit=s.fillMode),s.qosPreference)){let d=Oa(s.qosPreference);this._localScreenTrack.setContentHint(d)}this._room.isJoined&&!L(o)&&(o&&!this._localScreenConfig.publish&&(this._room.publish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.publish(this._localScreenAudioTrack).catch(()=>{})),this._localScreenConfig.publish&&!o&&(this._room.unpublish(this._localScreenTrack).catch(()=>{}),this._localScreenAudioTrack&&this._room.unpublish(this._localScreenAudioTrack).catch(()=>{}))),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Or(this._localScreenConfig,e)})}stopScreenShare(){return A(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return A(this,null,function*(){let{view:r,userId:o,streamType:s,option:a}=e,d=`${o}_${s}`;if(this._remoteVideoConfigMap.has(d)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let h=this._room.remotePublishedUserMap.get(o);if(!h)return;let m={},T=s==="main"?h.remoteVideoTrack:h.remoteAuxiliaryTrack;this._listenOutputTrackChanged(T),a&&(L(a.fillMode)||(m.objectFit=a.fillMode),L(a.mirror)||(m.mirror=a.mirror),m.canvasRender=a.canvasRender,s==="main"&&!L(a.small)&&(h.remoteVideoTrack.setMediaType(a.small?8:4),this._room.changeType(a.small,T.user))),yield this._room.subscribe(T),yield this._enableVideoDecodeFallback(T,s),yield this._updateVideoPlayOption({view:r,playOption:m,track:T}),this._emitTrackEvent(T),this._remoteVideoConfigMap.set(d,{config:e}),a&&!L(a.receiveWhenViewVisible)&&this._observeView({remoteTrack:T,view:r,receiveWhenViewVisible:a.receiveWhenViewVisible,viewRoot:a==null?void 0:a.viewRoot})})}updateRemoteVideo(e){return A(this,null,function*(){var z,Te;let{view:r,userId:o,streamType:s,option:a}=e,d=`${o}_${s}`,h=this._remoteVideoConfigMap.get(d);if(!h||!this._room.remotePublishedUserMap.has(o))return;let m={};a&&(L(a.fillMode)||(m.objectFit=a.fillMode),L(a.mirror)||(m.mirror=a.mirror));let T=null,I=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(I!=null&&I.muteState.hasVideo)&&(T=I.remoteVideoTrack),s==="sub"&&(I!=null&&I.muteState.hasAuxiliary)&&(T=I.remoteAuxiliaryTrack),!T)return;let{config:v}=h;s==="main"&&a&&!L(a.small)&&this._room.changeType(a.small,T.user),yield this._updateVideoPlayOption({view:r,playOption:m,track:T,prevConfig:v}),Or(v,e);let N=L(a==null?void 0:a.receiveWhenViewVisible)?(z=v.option)==null?void 0:z.receiveWhenViewVisible:a.receiveWhenViewVisible,j=L(r)?v.view:r,H=L(a==null?void 0:a.viewRoot)?(Te=v.option)==null?void 0:Te.viewRoot:a.viewRoot;this._observeView({remoteTrack:T,view:j,receiveWhenViewVisible:N,viewRoot:H})})}stopRemoteVideo(e){return A(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return A(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:d,remoteVideoTrack:h,remoteAuxiliaryTrack:m}=s;e.streamType==="main"&&(h.stop(),d.hasVideo&&o.push(h)),e.streamType==="sub"&&(m.stop(),d.hasAuxiliary&&o.push(m))}for(let d of o)r&&(yield this._room.unsubscribe(d),this._mediaTrackMap.delete(d.outMediaTrack));let a=this._remoteVideoConfigMap.get(`${e.userId}_${e.streamType}`);a&&a.observer&&a.observer.disconnect(),this._remoteVideoConfigMap.delete(`${e.userId}_${e.streamType}`)})}muteRemoteAudio(e,r){return A(this,null,function*(){this._remoteAudioMuteMap.set(e,r);try{if(e==="*")if(r)yield this._stopRemoteAudio({userId:e});else{let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)s.muteState.hasAudio&&!this._remoteAudioConfigMap.has(s.userId)&&(yield this._startRemoteAudio({userId:s.userId}))}else r?yield this._stopRemoteAudio({userId:e}):this._remoteAudioConfigMap.has(e)||(yield this._startRemoteAudio({userId:e}))}catch(o){throw this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){let o=[...this._room.remotePublishedUserMap.values()];for(let s of o)this._remoteAudioVolumeMap.set(s.userId,r),s.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:s.remoteAudioTrack})}else if(e){let o=this._room.remotePublishedUserMap.get(e);this._remoteAudioVolumeMap.set(e,r),o&&o.remoteAudioTrack.isSubscribed&&this._updateAudioPlayOption({playOption:{volume:r},track:o.remoteAudioTrack})}}startPlugin(e,r){return A(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return A(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return A(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){return this.listeners(e).includes(r)?this:(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),e===le.EVENT.AUDIO_FRAME&&!this._getPCMAbortCtrl&&(this._getPCMAbortCtrl=this._room.audioManager.getPCM(s=>{this.emit(le.EVENT.AUDIO_FRAME,{data:s})}),this._localAudioTrack&&this._localAudioTrack.on("input-media-track-changed",()=>{this._getPCMAbortCtrl&&(this._getPCMAbortCtrl.abort("inputMediaTrackChanged"),this._getPCMAbortCtrl=this._room.audioManager.getPCM(s=>{this.emit(le.EVENT.AUDIO_FRAME,{data:s})}))})),this)}emit(e,...r){try{Y_.has(e)&&this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){var s,a;return this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners(),(s=this._getPCMAbortCtrl)==null||s.abort("off"),delete this._getPCMAbortCtrl):(super.off(e,r,o),e===le.EVENT.AUDIO_FRAME&&((a=this._getPCMAbortCtrl)==null||a.abort("off"),delete this._getPCMAbortCtrl)),this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",a=!1;if(Ae(e)?r=e:(r=e.userId,a=e.processed===!0,e.streamType&&(s=e.streamType)),r){let d=this._room.remotePublishedUserMap.get(r);d&&(o=d.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?a&&o.outMediaTrack&&o.outMediaTrack!==o.mediaTrack?o.outMediaTrack.clone():o.mediaTrack:null}getVideoTrack(e={userId:"",streamType:"main"}){let{userId:r="",streamType:o="main",processed:s=!1}=e,a=null;if(r==="")o==="main"&&this._localVideoTrack&&(a=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(a=this._localScreenTrack);else{let d=this._room.remotePublishedUserMap.get(r);d&&(a=o==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack)}return a?s&&a.outMediaTrack&&a.outMediaTrack!==a.mediaTrack?a.outMediaTrack.clone():a.mediaTrack:null}getVideoSnapshot(e={}){let{userId:r,streamType:o="main"}=e;if(r){let s=this._room.remotePublishedUserMap.get(r);if(o==="main"&&(s!=null&&s.muteState.hasVideo))return s.remoteVideoTrack.getVideoFrame();if(o==="sub"&&(s!=null&&s.muteState.hasAuxiliary))return s.remoteAuxiliaryTrack.getVideoFrame()}else{if(o==="main"&&this._localVideoTrack)return this._localVideoTrack.getVideoFrame();if(o==="sub"&&this._localScreenTrack)return this._localScreenTrack.getVideoFrame()}return""}_setCurrentSpeaker(e){var r,o;this._speakerId=e,(r=this._localAudioTrack)==null||r.setAudioOutput(e),(o=this._localScreenAudioTrack)==null||o.setAudioOutput(e),this._room.remotePublishedUserMap.forEach(s=>s.remoteAudioTrack.setAudioOutput(e))}setCurrentSpeaker(e){return A(this,null,function*(){(yield Fi()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Tt=o)}),this._log.warn('the "setCurrentSpeaker" method of the instance will be deprecated in the future, please use "TRTC.setCurrentSpeaker" instead. For more information, please visit: https://web.sdk.qcloud.com/trtc/webrtc/v5/doc/en/TRTC.html#.setCurrentSpeaker')})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return A(this,null,function*(){let{userId:r}=e;if(this._remoteAudioConfigMap.has(r)){this._log.warn(`remote audio has already started. userId:${r}`);return}let o=this._room.remotePublishedUserMap.get(r);if(!o)return;let s={},a=o.remoteAudioTrack;this._listenOutputTrackChanged(a),this._speakerId&&a.setAudioOutput(this._speakerId);try{let d=this._remoteAudioVolumeMap.get(r),h=$e(d)?d:100;s.volume=h,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(a),Ie(Se(a,"decode-failed"),Ge(Se(a,Z.INIT)),Pe(()=>{this.startPlugin(La.Name,{track:a,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:a})}catch(d){throw this._remoteAudioConfigMap.delete(r),d}this._emitTrackEvent(a)})}_stopRemoteAudio(e,r=!0){return A(this,null,function*(){let o=this._room.remotePublishedUserMap.get(e.userId);o&&(o.remoteAudioTrack.stop(),o.muteState.hasAudio&&r&&(yield this._room.unsubscribe(o.remoteAudioTrack)),this._mediaTrackMap.delete(o.remoteAudioTrack.outMediaTrack)),this._remoteAudioConfigMap.delete(`${e.userId}`)})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;!o||!this._plugins.has("TRTCVideoDecoder")||(this._log.debug("remote video will fall back when decode failed"),Ie(Se(e,"decode-failed"),Ge(Se(e,Z.INIT)),Ca(()=>{this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),Fo(Se(e,"decode-downgrade-state-changed")),Pe(s=>{this.emit(ee.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,pe(J({},s),{streamType:r,userId:e.userId}))},s=>{this._log.error("fallback",s)},()=>this._log.info("fallback complete"))))}_updateVideoPlayOption(a){return A(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),L(e)&&s&&s.view&&!Wc(r)){let d=ms(s.view);d.length>0&&(yield o.play(d,r))}if(!L(e)){let d=ms(e);d.length>0?yield o.play(d,r):o.stop()}})}_updateAudioPlayOption(s){return A(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(a){}L(e.muted)||r.setPlayerMute(e.muted),L(e.volume)||r.setAudioVolume(e.volume/100)})}_listenOutputTrackChanged(e){e.listeners("output-media-track-changed").length===0&&e.on("output-media-track-changed",()=>this._emitTrackEvent(e,!1))}_emitTrackEvent(e,r=!0){let o=e.isRemote?e.userId:"";e.outMediaTrack&&(r&&this._mediaTrackMap.get(e.outMediaTrack)===o||(this._mediaTrackMap.set(e.outMediaTrack,o),this.emit(ee.TRACK,{userId:o,streamType:zi(e.streamType),track:e.outMediaTrack})))}_checkTrackToPublish(){var r,o,s;let e=[];if((r=this._localAudioConfig)!=null&&r.publish&&this._localAudioTrack&&e.push(this._localAudioTrack),(o=this._localVideoConfig)!=null&&o.publish&&this._localVideoTrack&&e.push(this._localVideoTrack),(s=this._localScreenConfig)!=null&&s.publish&&(this._localScreenTrack&&e.push(this._localScreenTrack),this._localScreenAudioTrack&&e.push(this._localScreenAudioTrack)),e.length!==0)return this._room.publish(...e).catch(()=>{})}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(L(r))return;let a=this._remoteVideoConfigMap.get(`${e.userId}_${zi(e.streamType)}`);if(!a)return;let d=a.observer||void 0;if(r===null||it(r)&&r.length===0||!o){d==null||d.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let m=a.visibleViewMap||new Map,T=-1;(!d||d.root!==s)&&(d==null||d.disconnect(),m.clear(),d=new IntersectionObserver(v=>{v.forEach(N=>{m.set(N.target,N.isIntersecting)}),clearTimeout(T),T=window.setTimeout(()=>{[...m.values()].find(j=>j)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let I=new Set(ms(r));m.forEach((v,N)=>{I.has(N)||(d.unobserve(N),m.delete(N))}),I.forEach(v=>{m.set(v,!0),d.observe(v)}),d.takeRecords().forEach(v=>{m.set(v.target,v.isIntersecting)}),a.visibleViewMap=m,a.observer=d}_exitRoom(){return A(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),new Set([...this._remoteAudioConfigMap.keys(),...this._remoteAudioMuteMap.keys()]).forEach(e=>{this._stopRemoteAudio({userId:e}).catch()}),[...this._remoteVideoConfigMap.keys()].forEach(e=>{let r=e.includes("main")?"main":"sub",o=e.split(`_${r}`)[0];o&&this._stopRemoteVideo({userId:o,streamType:r}).catch()}),this._remoteVideoConfigMap.clear(),this._remoteAudioConfigMap.clear(),this._remoteAudioMuteMap.clear(),this._remoteAudioVolumeMap.clear(),rg(this),this._room.remotePublishedUserMap.forEach(e=>{at(e.remoteAudioTrack),at(e.remoteVideoTrack),at(e.remoteAuxiliaryTrack)})})}_stopScreenShare(){return A(this,null,function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let r=[this._localScreenTrack];this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),yield(e=this._room)==null?void 0:e.unpublish(...r).catch(()=>{})}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),at(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Tt||ks(Tt))&&(this._initActiveSpeaker(),F.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return A(this,null,function*(){if(Tt&&!ks(Tt))this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:Tt});else{let e=yield Fi();e[0]&&!ks(e[0])?(Tt=e[0],this.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):F.on("102",this._onLocalTrackCaptured,this)}})}_onAudioAvailable({userId:e}){let r=this._remoteAudioMuteMap.has(e)?this._remoteAudioMuteMap.get(e):this._remoteAudioMuteMap.get("*");(r===!1||this._room.autoReceiveAudio&&!r)&&this._doStartRemoteAudio({userId:e}).catch(()=>{})}_onVideoAvailable({userId:e,streamType:r}){if(!this._room.autoReceiveVideo)return;let o=this._room.remotePublishedUserMap.get(e);if(o){let s=r==="main"?o.remoteVideoTrack:o.remoteAuxiliaryTrack,a=[s];this._room.autoReceiveAudio&&a.push(o.remoteAudioTrack),this._room.subscribe(...a).then(()=>{this._emitTrackEvent(s)}).catch(()=>{})}}_onAudioUnavailable({userId:e,muteState:r}){r.hasAudio&&r.audioMuted||this._stopRemoteAudio({userId:e},!1).catch(()=>{})}_onVideoUnavailable({userId:e,streamType:r}){this._stopRemoteVideo({userId:e,streamType:r},!1).catch(()=>{})}sendSEIMessage(e,r){var s;let o=this._plugins.get("SEI");o&&(o.update({buffer:e,options:pe(J({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),X.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),X.addCount({key:500001,useUV:!0})}static setLogLevel(e,r){U.setLogLevel(e),L(r)||(r?U.enableUploadLog():U.disableUploadLog())}static isSupported(){return Rd()}static getCameraList(e=!0){return er(e)}static getMicrophoneList(e=!0){return Gt(e)}static getSpeakerList(e=!0){return Fi(e)}static setCurrentSpeaker(e){return A(this,null,function*(){if(pt&&(e===nr.SPEAKER||e===nr.HEADSET)){let o=yield le.getMicrophoneList(),s="";if(o.forEach(a=>{a.label===e&&(s=a.deviceId)}),!s)return;Ua.forEach(a=>A(this,null,function*(){a._localAudioTrack&&(yield a.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield Fi()).forEach(o=>{o.deviceId===e&&(Ua.forEach(s=>{s._setCurrentSpeaker(e),s.emit(ee.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Tt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:a,version:d}){switch(d&&(bo.version=d),e){case"count":bo.addCount({key:r,useUV:a});break;case"enum":bo.addEnum({key:r,value:o,useUV:a});break;case"number":bo.addNumber({key:r,value:o,split:s});break}}};l(le,"_loggerManager",U),l(le,"EVENT",ee),l(le,"ERROR_CODE",ae),l(le,"TYPE",nr),l(le,"frameWorkType",30),G([qe({replaceArg:e=>({argIndex:0,value:{name:"plugin"in e?e.plugin.Name:e.Name,assetsPath:"assetsPath"in e?e==null?void 0:e.assetsPath:"default"}})})],le.prototype,"use",1),G([Nt(Et.TRTC.enterRoom),qi("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Re(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),qe()],le.prototype,"enterRoom",1),G([qe()],le.prototype,"exitRoom",1),G([Nt(Et.TRTC.switchRole),Wo("room",{merge:(e,r)=>r}),qe()],le.prototype,"switchRole",1),G([qe()],le.prototype,"destroy",1),G([Nt(Et.TRTC.startLocalAudio),qi("audio",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.microphoneId)===((s=r==null?void 0:r.option)==null?void 0:s.microphoneId)}),qe()],le.prototype,"startLocalAudio",1),G([Nt(Et.TRTC.updateLocalAudio),Wo("audio",{debounce:{delay:200,getKey:()=>`${cg}-localAudio`,isNeedToDebounce:e=>{var r;return!L((r=e.option)==null?void 0:r.captureVolume)}}}),qe()],le.prototype,"updateLocalAudio",1),G([Ji("audio"),qe()],le.prototype,"stopLocalAudio",1),G([Nt(Et.TRTC.startLocalVideo),qi("video",([e],[r])=>{var o,s;return((o=e==null?void 0:e.option)==null?void 0:o.cameraId)===((s=r==null?void 0:r.option)==null?void 0:s.cameraId)}),qe()],le.prototype,"startLocalVideo",1),G([Nt(Et.TRTC.updateLocalVideo),Wo("video"),qe()],le.prototype,"updateLocalVideo",1),G([Ji("video"),qe()],le.prototype,"stopLocalVideo",1),G([Nt(Et.TRTC.startScreenShare),qi("screen",()=>!0),qe()],le.prototype,"startScreenShare",1),G([Nt(Et.TRTC.updateScreenShare),Wo("screen"),qe()],le.prototype,"updateScreenShare",1),G([qe()],le.prototype,"stopScreenShare",1),G([Nt(Et.TRTC.startRemoteVideo),qi(e=>`v${e.userId}${e.streamType}`,()=>!0),qe({getRemoteId:e=>`${e.userId}_${e.streamType}`})],le.prototype,"startRemoteVideo",1),G([Nt(Et.TRTC.updateRemoteVideo),Wo(e=>`v${e.userId}${e.streamType}`),qe({getRemoteId:e=>`${e.userId}_${e.streamType}`})],le.prototype,"updateRemoteVideo",1),G([Nt(Et.TRTC.stopRemoteVideo),Re(e=>function(r){return A(this,null,function*(){if(r.userId==="*"){let o=[];return this._room.remotePublishedUserMap.forEach(s=>{this._remoteVideoConfigMap.has(`${s.userId}_main`)&&o.push(this.stopRemoteVideo({streamType:"main",userId:s.userId}).catch(()=>{})),this._remoteVideoConfigMap.has(`${s.userId}_sub`)&&o.push(this.stopRemoteVideo({streamType:"sub",userId:s.userId}).catch(()=>{}))}),Promise.all(o)}return e.call(this,r)})}),qe({getRemoteId:e=>`${e.userId}_${e.streamType}`})],le.prototype,"stopRemoteVideo",1),G([Ji(e=>`v${e.userId}${e.streamType}`)],le.prototype,"_stopRemoteVideo",1),G([Nt(...Et.TRTC.muteRemoteAudio),qe({getRemoteId:e=>e})],le.prototype,"muteRemoteAudio",1),G([Qp(...Et.TRTC.setRemoteAudioVolume),ig(200,e=>e),qe({getRemoteId:e=>e})],le.prototype,"setRemoteAudioVolume",1),G([fu("start"),Bi(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),qi((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),qe({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Nm[e.getName()],ignoreLog:e=>e.getName()==="Debug"})],le.prototype,"startPlugin",1),G([fu("update"),Wo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),qe({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>wm[e.getName()]})],le.prototype,"updatePlugin",1),G([fu("stop"),Ji((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),qe({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Mm[e.getName()]})],le.prototype,"stopPlugin",1),G([Qp(...Et.TRTC.enableAudioVolumeEvaluation)],le.prototype,"enableAudioVolumeEvaluation",1),G([qe()],le.prototype,"getVideoSnapshot",1),G([qe()],le.prototype,"_setCurrentSpeaker",1),G([qi(e=>`a${e.userId}`,()=>!0)],le.prototype,"_startRemoteAudio",1),G([Re(e=>function(r){return A(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(pe(J({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),Ji(e=>`a${e.userId}`)],le.prototype,"_stopRemoteAudio",1),G([Ji("room")],le.prototype,"_exitRoom",1),G([Ji("screen")],le.prototype,"_stopScreenShare",1),G([Nt(...Et.TRTC.sendSEIMessage),Wp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],le.prototype,"sendSEIMessage",1),G([Nt(Et.TRTC.sendCustomMessage),Wp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],le.prototype,"sendCustomMessage",1),G([Nt(Et.TRTC.create)],le,"_create",1);var nh=le,Js=nh;var bu=class{constructor(t,e){l(this,"_flag");l(this,"terminalType");l(this,"userId");l(this,"tinyId");l(this,"role");l(this,"remoteAudioTrack");l(this,"remoteVideoTrack");l(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new Po(t,this),this.remoteVideoTrack=new Gi(t,this),this.remoteAuxiliaryTrack=new ou(t,this),this.flag=e.flag||0}get subscribeState(){let t={audio:!1,video:!1,auxiliary:!1,smallVideo:!1};return this.remoteVideoTrack.isSubscribed&&(this.remoteVideoTrack.mediaType&8?t.smallVideo=!0:t.video=!0),this.remoteAudioTrack.isSubscribed&&(t.audio=!0),this.remoteAuxiliaryTrack.isSubscribed&&(t.auxiliary=!0),t}get muteState(){return Vn(this.flag,this.userId)}get flag(){return this._flag}set flag(t){if(t===this._flag)return;let e,r=this.muteState;this._flag=t;let o=this.muteState;for(e in o)r[e]!=o[e]&&console.log(this.userId,e,r[e],"->",o[e]);this.remoteAudioTrack.onFlagChanged(),this.remoteVideoTrack.onFlagChanged(),this.remoteAuxiliaryTrack.onFlagChanged()}};var ah=class{constructor(){l(this,"_set",new Set);F.on(P.LEAVE_SUCCESS,this.delete,this)}add({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,e||t.roomId,t.sdkAppId,t.useStringRoomId);this._set.add(r)}delete({room:t,roomId:e}){if(t.scene==="rtc")return;let r=this.getKey(t.userId,t.roomId||e,t.sdkAppId,t.useStringRoomId);this._set.delete(r)}getKey(t,e,r,o){return`${r}_${e}_${t}_${o}`}isJoined({userId:t,roomId:e,sdkAppId:r,room:o}){return o.scene==="rtc"?!1:this._set.has(this.getKey(t,e,r,o.useStringRoomId))}};function HS(){return A(this,null,function*(){let i,t;try{let I=yield Gt();i=I&&I.length}catch(I){}try{let I=yield er();t=I&&I.length}catch(I){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:a}=this.checkSystemResult.detail,d=Ui.basis(),h={webRTC:d.isWebRTCSupported,getUserMedia:d.isGetUserMediaSupported,webSocket:d.isWebSocketsSupported,screenShare:d.isScreenShareSupported,webAudio:d.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:a},m={browser:d.browser,os:d.os,trtc:h,devices:e},T={isWebCodecSupported:d.isWebCodecSupported,isMediaSessionSupported:d.isMediaSessionSupported,isWebTransportSupported:d.isWebTransportSupported};Ve.uploadEvent({log:`trtcstats-${JSON.stringify(m)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(m)}`),Ve.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(T)}`,userId:this.userId})})}function ug(){return Re(i=>{let t=new ah;return function(e,r,o){return A(this,null,function*(){let s=String(e.roomId||e.strRoomId);if(this.userId=e.userId,this.sdkAppId=e.sdkAppId,this.userSig=e.userSig,this._log.setSdkAppId(this.sdkAppId),this._log.setUserId(this.userId),this.scene=r,e.privateMapKey=e.privateMapKey||"",this.isJoined)throw new ue({code:Y.INVALID_OPERATION,message:st({key:ot.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new ue({code:Y.INVALID_OPERATION,message:st({key:ot.REPEAT_JOIN,data:this.userId})});t.add({room:this,roomId:s}),this.role=e.role===21?"audience":"anchor",this._log.info(`Join() => joining room: ${s} useStringRoomId: ${this.useStringRoomId} scene: ${this.scene} role: ${this.role}`),F.emit(P.JOIN_START,{room:this,roomId:s,params:e});let a=Pr.getEnv();a||(a=ei.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Lc.OLD_CLOUD_LADDER)?a=ei.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Lc.WEBRTC)&&(a=ei.WEBRTC))),Ve.setConfig({env:a,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),Ui.checkSystemRequirementsInternal().then(d=>{this.checkSystemResult=d,HS.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Pr.getEnv()&&(yield this.schedule(e,o));let d=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Pr.performanceNow(),F.emit(P.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&Ve.uploadEvent({log:`stat-conv-${Number(Tr)}-${location.hostname}`,userId:this.userId}),d}catch(d){throw t.delete({room:this,roomId:s}),F.emit(P.JOIN_FAILED,{room:this,error:d}),d}})}})}var lg=()=>Re(i=>function(...t){return A(this,null,function*(){F.emit(P.LEAVE_START,{room:this}),yield i.call(this),F.emit(P.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function mg(){return Re(i=>function(...t){return A(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="capture"),!t.length))return;F.emit("61",{room:this});let e=i.apply(this,t);return t.forEach(r=>r.publish(this,e)),e})})}function pg(){return Re(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function hg(){return Re(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function WS({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return wi(r)?r.catch(o=>U.error(`${i.name}() error observed ${o}`)):r}catch(r){U.error(`${i.name}() error observed ${r}`)}}}var Ru=class{constructor(t){l(this,"_frameWorkType");l(this,"_component");l(this,"_language");l(this,"connectionType");l(this,"_room");l(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0});l(this,"_keyPrefix");l(this,"_log");l(this,"_intervalId");l(this,"_firstPublishedUserList");l(this,"_networkQuality");l(this,"_basicInfo");l(this,"_pathJoinRoom");l(this,"_pathLeaveRoom");l(this,"_pathMainVideoMap");l(this,"_pathMainAudioMap");l(this,"_pathAuxiliaryMap");l(this,"_remoteStreamStatMap");l(this,"_localStreamStat");l(this,"_eventMap",new Map);l(this,"_captureCostSum",0);l(this,"_captureCostCount",0);l(this,"isDestroyed",!1);this._frameWorkType=t.frameWorkType||30,this._component=t.component||0,this.connectionType=t.connectionType||1,this._language=t.language||0,this._room=t.room,this._keyPrefix="key_point",this._log=U.createLogger({id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Fe(this[e])&&(this[e]=WS({fn:this[e],context:this}))}),this.initData(),this.installEvents()}initData(){this._firstPublishedUserList=[],this._networkQuality={totalUplinkRTT:0,totalUplinkLoss:0,count:0,totalDownlinkRTTAndLossMap:new Map},this._basicInfo={string_sdk_version:Ke,uint32_os_type:15,string_device_name:"",string_http_user_agent:navigator.userAgent,string_os_version:"",uint32_avg_rtt:0,uint32_avg_up_loss:0,uint32_scene:this._room.scene==="live"?1:0,uint32_joining_duration:0,uint32_networkType:0,uint32_framework:this._frameWorkType,uint32_component:this._component,uint32_connection_type:this.connectionType,uint32_caller_coding_language:this._language,string_domain:location.hostname},this._pathJoinRoom={uint64_start_time:0,uint64_send_request_acc_ip_cmd_start_time:0,uint64_send_request_acc_ip_cmd_end_time:0,uint64_send_request_enter_room_cmd_start_time:0,uint64_send_request_enter_room_cmd_end_time:0,uint64_send_first_video_frame_time:0,uint64_recv_userlist_time:0,uint64_end_time:0,int32_send_request_acc_ip_cmd_ret:0,int32_send_request_enter_room_cmd_ret:0,int32_end_ret:0},this._pathLeaveRoom={uint64_start_time:0,uint64_send_request_exit_room_cmd_start_time:0,uint64_send_request_exit_room_cmd_end_time:0,uint64_end_time:0,int32_send_request_exit_room_cmd_ret:0,int32_end_ret:0},this._localStreamStat={totalVideoBitrate:0,totalVideoFPS:0,totalVideoHeight:0,totalVideoWidth:0,totalAudioLevel:0,videoCount:0,audioLevelCount:0,publishStartTime:0,statsToReport:{uint32_audio_capture_db:0,uint32_video_big_capture_fps:0,uint32_video_big_bitrate:0,uint32_video_big_resolution:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,Kn().then(t=>{this._basicInfo.string_os_version=Eo(),t?this._basicInfo.string_device_name=t.mobile?t.model:this._basicInfo.string_os_version:this._basicInfo.string_device_name=this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),F.on(t,e),this}installEvents(){this.handleUnload=this.handleUnload.bind(this),window.addEventListener("pagehide",this.handleUnload),this._room.once("banned",()=>this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})),this.addEvent(P.JOIN_START,this.handleJoinStart).addEvent(P.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(P.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(P.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(P.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(P.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(P.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(P.JOIN_FAILED,this.handleJoinFailed).addEvent(P.LEAVE_START,this.handleLeaveStart).addEvent(P.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(P.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(P.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(P.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(P.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(P.PUBLISH_START,this.handlePublishStart).addEvent(P.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(P.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(P.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(P.PLAY_TRACK_START,this.handlePlayStart).addEvent(P.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(P.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===D.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(P.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(P.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(P.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(P.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let o=e.hasAudio||e.hasVideo||e.hasSmall,s=e.hasAuxiliary,a=r.hasAudio||r.hasVideo||r.hasSmall,d=r.hasAuxiliary;!o&&a&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&d&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(P.SINGLE_CONNECTION_STAT,({room:t,stat:e})=>{this.hitTest(t)&&(this._pathJoinRoom.int32_ice_cost=e.ice,this._pathJoinRoom.int32_dtls_cost=e.dtls,this._pathJoinRoom.int32_peer_connection_cost=e.peerConnection)})}uninstallEvents(){window.removeEventListener("unload",this.handleUnload),this._eventMap.forEach((t,e)=>F.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),ft.clearTask(this._intervalId),this._pathJoinRoom.uint64_start_time===0&&(this._room=null),this.isDestroyed=!0}handleUnload(){this._room.isJoined&&this.handleLeaveSuccess({room:this._room,roomId:this._room.roomId})}handleJoinStart(t){this.hitTest(t.room)&&(this._pathJoinRoom.uint64_start_time===0&&(this._pathJoinRoom.uint64_start_time=Date.now()),t.params&&(L(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),L(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),L(t.params.language)||(this._language=t.params.language,this._basicInfo.uint32_caller_coding_language=this._language)))}handleJoinScheduleSuccess({room:t,detailCost:e}){if(this.hitTest(t)&&e){let{totalCost:r,local:o,dns:s,tcp:a,tls:d,request:h,response:m}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=a,this._pathJoinRoom.int32_schedule_tls=d,this._pathJoinRoom.int32_schedule_request=h,this._pathJoinRoom.int32_schedule_response=m}}handleSignalConnectionStart({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_start_time=Date.now())}handleSignalConnectionEnd({room:t,error:e}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_acc_ip_cmd_end_time=Date.now(),e&&(this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret=e instanceof ue?Number(e.getExtraCode()||e.getCode()):Y.UNKNOWN,this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret))}handleJoinSendCMD(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=Date.now())}handleJoinReceivedCMDResponce(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time===0&&(this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=Date.now(),this._pathJoinRoom.int32_send_request_enter_room_cmd_ret=t.code,t.code!==0&&(this._pathJoinRoom.int32_end_ret=this._pathJoinRoom.int32_send_request_enter_room_cmd_ret))}handleJoinSuccess(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_end_time===0&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret=0,this._signalInfo=t.room.getSignalInfo())}handleJoinFailed({room:t,error:e}){this.hitTest(t)&&(this._pathJoinRoom.uint64_end_time=Date.now(),this._pathJoinRoom.int32_end_ret===0&&(this._pathJoinRoom.int32_end_ret=e.code||this._pathJoinRoom.int32_send_request_enter_room_cmd_ret||this._pathJoinRoom.int32_send_request_acc_ip_cmd_ret),setTimeout(()=>{this.report()}))}handleReceivedPublishUserList(t){this.hitTest(t.room)&&this._pathJoinRoom.uint64_recv_userlist_time===0&&(this._pathJoinRoom.uint64_recv_userlist_time=Date.now(),this._firstPublishedUserList=t.publishedUserList||[])}handleSendFirstVideoFrame({room:t}){this.hitTest(t)&&this._pathJoinRoom.uint64_send_first_video_frame_time===0&&this._pathJoinRoom.uint64_start_time!==0&&(this._pathJoinRoom.uint64_send_first_video_frame_time=Date.now())}handleLeaveStart(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_start_time=Date.now())}handleLeaveSuccess(t){this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0&&(this._pathLeaveRoom.uint64_end_time=Date.now(),this._pathJoinRoom.uint64_end_time!==0?this._basicInfo.uint32_joining_duration=this._pathLeaveRoom.uint64_end_time-this._pathJoinRoom.uint64_end_time:this._log.warn("pathJoinRoom endTime is 0"),this.report())}handleLeaveSendCMD(t){this.hitTest(t.room)&&(this._pathLeaveRoom.uint64_send_request_exit_room_cmd_start_time=Date.now(),this._pathLeaveRoom.uint64_send_request_exit_room_cmd_end_time=Date.now())}handleRemoteStreamAdded(t,e){var o;let r=`${t}_${e}`;if(!this._remoteStreamStatMap.has(r)){let s={userId:t,totalVideoFPS:0,totalVideoBitrate:0,totalAudioLevel:0,totalAudioBitrate:0,totalLoss:0,audioCount:0,audioLevelCount:0,videoCount:0,networkQualityCount:0,streamAddedTime:Date.now(),subscribeStartTime:0,subscribedTime:0,playStreamTime:0,statsToReport:pe(J({},GS),{msg_user_info:new Va({userId:t,tinyId:(o=this._room.remotePublishedUserMap.get(t))==null?void 0:o.tinyId,role:20})})};s.statsToReport.uint32_stream_type=e==="main"?2:7,this._remoteStreamStatMap.set(r,s)}}handleSubscribeStart({room:t,remotePublishedUser:e,streamType:r,subscribeState:o}){if(!this.hitTest(t))return;let{userId:s,tinyId:a,role:d}=e,h=new Va({userId:s,tinyId:a,role:d==="anchor"?20:21}),m=Date.now(),T=`${s}_${r}`,I=this._remoteStreamStatMap.get(T);I&&I.subscribeStartTime===0&&(I.subscribeStartTime=m),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(T)&&this._pathMainVideoMap.set(T,{statsToReport:{msg_user_info:h,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:m}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(T)&&this._pathMainAudioMap.set(T,{statsToReport:{msg_user_info:h,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:m})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(T)&&this._pathAuxiliaryMap.set(T,{sendSubscribeCMDTime:m})}handleSubscribed({room:t,remotePublishedUser:e,streamType:r}){if(this.hitTest(t)){let o=`${e.userId}_${r}`,s=this._remoteStreamStatMap.get(o);s&&s.subscribedTime===0&&(s.subscribedTime=Date.now())}}handlePlayStart({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._remoteStreamStatMap.get(e);(r==null?void 0:r.playStreamTime)===0&&(r.playStreamTime=Date.now())}handleVideoLoadedData({track:t}){if(!t.isRemote||!this.hitTest(t.room))return;let e=`${t.userId}_${t.streamType}`,r=this._pathMainVideoMap.get(e);r&&r.statsToReport.uint64_combine_first_frame_time===0&&(r.statsToReport.uint64_combine_first_frame_time=Date.now())}handleVideoPlaying(t){let e=`${t.userId}_${t.streamType}`,r=Date.now(),o=this._pathMainVideoMap.get(e),s=this._remoteStreamStatMap.get(e);if(o&&(o.statsToReport.uint64_render_first_frame_time===0&&(o.statsToReport.uint64_render_first_frame_time=r),s)){let{statsToReport:d,playStreamTime:h,subscribedTime:m}=s;d.uint32_video_render_first===0&&h-m<=100&&(d.uint32_video_render_first=r-o.sendSubscribeCMDTime)}let a=this._pathAuxiliaryMap.get(e);if(a&&s){let{statsToReport:d,playStreamTime:h,subscribedTime:m}=s;d.uint32_video_render_first===0&&h-m<=100&&(d.uint32_video_render_first=r-a.sendSubscribeCMDTime)}}handleAudioPlaying(t){let e=`${t.userId}_${t.streamType}`,r=this._pathMainAudioMap.get(e);r&&r.statsToReport.uint64_play_first_frame_time===0&&(r.statsToReport.uint64_play_first_frame_time=Date.now())}handleNetworkQuality(t){this.hitTest(t.room)&&(this._networkQuality.totalUplinkLoss+=t.uplink.loss,this._networkQuality.totalUplinkRTT+=t.uplink.rtt,this._networkQuality.count++,t.downlinks.forEach(({rtt:e,loss:r,userId:o,videoDelay:s,audioDelay:a})=>{let d=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(d)d.totalRTT+=e,d.totalLoss+=r,s&&(d.totalVideoDelay=(d.totalVideoDelay||0)+s,d.videoDelayCount=(d.videoDelayCount||0)+1),a&&(d.totalAudioDelay=(d.totalAudioDelay||0)+a,d.audioDelayCount=(d.audioDelayCount||0)+1),d.count++;else{let h,m,T,I;s&&(m=s,T=1),a&&(h=a,I=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:h,totalVideoDelay:m,audioDelayCount:I,videoDelayCount:T})}}))}handleHeartbeatStats(t){if(this.hitTest(t.room)){let{msg_device_info:e,msg_up_stream_info:r,msg_down_stream_info:o}=t.report;if(r.msg_video_status[0]){let{uint32_video_codec_bitrate:s,uint32_video_enc_fps:a,uint32_video_width:d,uint32_video_height:h}=r.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=s,this._localStreamStat.totalVideoFPS+=a,this._localStreamStat.totalVideoWidth+=d,this._localStreamStat.totalVideoHeight+=h,this._localStreamStat.videoCount++}if(r.msg_audio_status){let{uint32_audio_level:s}=r.msg_audio_status;Math.floor(s/di*100)>0&&(this._localStreamStat.totalAudioLevel+=s/di,this._localStreamStat.audioLevelCount++)}o.forEach(s=>{let{msg_user_info:a,msg_audio_status:d,msg_video_status:h}=s,m=a.str_identifier,T=this._room.remotePublishedUserMap.get(m);if(h.forEach(I=>{let v=I.uint32_video_stream_type===2,N=I.uint32_video_stream_type===7,j=`${m}_${v?"main":"auxiliary"}`,H=this._remoteStreamStatMap.get(j);if(H&&(v&&(T!=null&&T.remoteVideoTrack.isSubscribed)||N&&(T!=null&&T.remoteAuxiliaryTrack))){H.totalVideoFPS+=I.uint32_video_receive_fps,H.totalVideoBitrate+=I.uint32_video_codec_bitrate,H.videoCount++,H.statsToReport.uint32_video_width===0&&(H.statsToReport.uint32_video_width=I.uint32_video_width),H.statsToReport.uint32_video_height===0&&(H.statsToReport.uint32_video_height=I.uint32_video_height);let z=v?T.remoteVideoTrack:T.remoteAuxiliaryTrack;z.stat.jitterBufferDelay&&(H.videoJitterBufferDelay=z.stat.jitterBufferDelay),z.stat.framesReceived&&(H.statsToReport.uint32_video_consume_render_rate=Math.floor(z.stat.framesDecoded/z.stat.framesReceived*Rn(10,6)))}}),d){let I=`${m}_main`,v=this._remoteStreamStatMap.get(I);this._remoteStreamStatMap.has(I)&&v&&T!=null&&T.remoteAudioTrack.isSubscribed&&(v.totalAudioBitrate+=d.uint32_audio_codec_bitrate,v.audioCount++,T.remoteAudioTrack.stat.jitterBufferDelay&&(v.audioJitterBufferDelay=T.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(d.uint32_audio_level/di*100)>0&&(v.totalAudioLevel+=d.uint32_audio_level/di,v.audioLevelCount++))}}),e.uint32_audio_capture_cost&&(this._captureCostSum+=e.uint32_audio_capture_cost,this._captureCostCount+=1,this._captureCostCount>=100&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0))}}handlePublishStart({room:t}){this.hitTest(t)&&this._localStreamStat.publishStartTime===0&&(this._localStreamStat.publishStartTime=Date.now())}handleTrackCaptureStart({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_start_time&&(this._pathJoinRoom.uint64_init_audio_start_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_start_time&&(this._pathJoinRoom.uint64_init_camera_start_time=Date.now())}handleTrackCaptureSuccess({track:t}){t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=0,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=0,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}handleTrackCaptureFailed({track:t,error:e}){let o={NotFoundError:1,NotAllowedError:2,NotReadableError:3,OverConstrainedError:4,AbortError:5,InvalidStateError:6,SecurityError:7,TypeError:8}[e.name]||(e instanceof ue?e.getExtraCode()||e.getCode():Y.UNKNOWN);t.mediaType===1&&!this._pathJoinRoom.uint64_init_audio_end_time&&(this._pathJoinRoom.int32_init_audio_ret=o,this._pathJoinRoom.uint64_init_audio_end_time=Date.now()),t.mediaType===4&&!this._pathJoinRoom.uint64_init_camera_end_time&&(this._pathJoinRoom.int32_init_camera_ret=o,this._pathJoinRoom.uint64_init_camera_end_time=Date.now())}hasVideoFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ns)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&as)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&wn)>=0}hitTest(t){return t===this._room}prepareReport(){if(this._captureCostCount>0&&!this._basicInfo.uint32_audio_capture_cost&&(this._basicInfo.uint32_audio_capture_cost=Math.floor(this._captureCostSum/this._captureCostCount),this._captureCostSum=0,this._captureCostCount=0),this._networkQuality.count>0&&(this._basicInfo.uint32_avg_rtt=Math.floor(this._networkQuality.totalUplinkRTT/this._networkQuality.count),this._basicInfo.uint32_avg_up_loss=Math.floor(this._networkQuality.totalUplinkLoss/this._networkQuality.count)),this._localStreamStat.videoCount>0){this._localStreamStat.statsToReport.uint32_video_big_capture_fps=Math.floor(this._localStreamStat.totalVideoFPS/this._localStreamStat.videoCount),this._localStreamStat.statsToReport.uint32_video_big_bitrate=Math.floor(this._localStreamStat.totalVideoBitrate/this._localStreamStat.videoCount);let t=Math.floor(this._localStreamStat.totalVideoWidth/this._localStreamStat.videoCount),e=Math.floor(this._localStreamStat.totalVideoHeight/this._localStreamStat.videoCount);this._localStreamStat.statsToReport.uint32_video_big_resolution=t<<16|e}this._localStreamStat.audioLevelCount>0&&(this._localStreamStat.statsToReport.uint32_audio_capture_db=Math.floor(this._localStreamStat.totalAudioLevel/this._localStreamStat.audioLevelCount*100)),this._remoteStreamStatMap.forEach((t,e)=>{let{userId:r}=t,o=this._networkQuality.totalDownlinkRTTAndLossMap.get(r);if(o){let{totalLoss:T,count:I,audioDelayCount:v,videoDelayCount:N,totalAudioDelay:j,totalVideoDelay:H}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(T/I),v&&j&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(j/v),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),N&&H&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(H/N))}t.videoCount>0&&(t.statsToReport.uint32_video_avg_fps=Math.floor(t.totalVideoFPS/t.videoCount),t.statsToReport.uint32_video_avg_bitrate=Math.floor(t.totalVideoBitrate/t.videoCount)),t.audioCount>0&&(t.statsToReport.uint32_audio_recv_bitrate=t.statsToReport.uint32_audio_bitrate=Math.floor(t.totalAudioBitrate/t.audioCount)),t.audioLevelCount>0&&(t.statsToReport.uint32_audio_play_db=Math.floor(t.totalAudioLevel/t.audioLevelCount*100));let{callDurationCalculator:s}=this._room;s&&(t.statsToReport.uint32_audio_play_time=s.getDuration(e,D.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,D.VIDEO)),t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,jo);let{badCaseDetector:a}=this._room,{dataFreeze:d,count:h}=a.getDataFreezeDuration(e),{renderFreeze:m}=a.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=h,t.statsToReport.uint32_video_block_time=Math.min(d,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(m,t.statsToReport.uint32_video_play_time),a.isBlackStream(e)&&t.statsToReport.uint32_video_avg_fps===0?t.statsToReport.uint32_video_black_screen_subjective=1:t.statsToReport.uint32_video_black_screen_subjective=0,(t.subscribeStartTime===0||t.subscribeStartTime-t.streamAddedTime>100||t.playStreamTime===0)&&(this._pathMainAudioMap.delete(e),this._pathMainVideoMap.delete(e),t.statsToReport.uint32_video_render_first=0)}),this._pathMainAudioMap.forEach((t,e)=>{if(!this.hasAudioFlag(t.userId)){this._pathMainAudioMap.delete(e);return}t.statsToReport.uint64_play_first_frame_time-t.statsToReport.uint64_start_enter_time>jo&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+jo)}),this._pathMainVideoMap.forEach((t,e)=>{if(!this.hasVideoFlag(t.userId)){this._pathMainVideoMap.delete(e);return}t.statsToReport.uint64_render_first_frame_time-t.statsToReport.uint64_start_enter_time>jo&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+jo)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>jo&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+jo)}getReportData(){this._basicInfo.uint32_networkType=$c();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Va({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:ls(this._signalInfo.relayIp),uint32_client_ip:ls(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*Rn(2,31)),msg_path_enter_room:this._pathJoinRoom,msg_path_exit_room:this._pathLeaveRoom,msg_path_recv_video:[...this._pathMainVideoMap.values()].map(e=>e.statsToReport),msg_quality_statistics:[...this._remoteStreamStatMap.values()].map(e=>e.statsToReport),str_room_name:String(this._room.roomId||0),msg_path_recv_audio:[...this._pathMainAudioMap.values()].map(e=>e.statsToReport),uint32_info_client_ip:ls(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend};return Fn(t),t}report(){return A(this,null,function*(){try{this.prepareReport();let t=this.getReportData();yield this.upload(t),this.initData()}catch(t){this._log.warn(t)}finally{this.isDestroyed&&(this._room=null)}})}upload(t){return A(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=yield Xl(t),o=r instanceof ArrayBuffer,s=`${ii(e,Ni.KEY_POINT)}&gzip=${+o}`,a=!1;navigator.sendBeacon&&(a=navigator.sendBeacon(s,r));let d=[this.uploadKVStat(X),this.uploadKVStat(bo)];a||d.push(oi({url:s,body:r,priority:"low"})),yield Promise.all(d)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return A(this,null,function*(){let e=t.getReportData();if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=pe(J({},e.msg_sdk_basic_info),{bytes_device_name:this._basicInfo.string_device_name||"",bytes_os_version:this._basicInfo.string_os_version||"",uint32_framework:this._frameWorkType,uint32_network_type:this._basicInfo.uint32_networkType||0}),this._log.debug(e);let r=yield Xl(e),o=`${ii(+this._room.sdkAppId,Ni.KV_STAT)}&gzip=${+(r instanceof ArrayBuffer)}`,s=!1;navigator.sendBeacon&&(s=navigator.sendBeacon(o,r)),s||oi({url:o,body:r})})}};G([Vi({settings:{timeout:500,retries:3}})],Ru.prototype,"upload",1);var jo=5e3,GS={msg_user_info:null,uint32_video_avg_fps:0,uint32_video_width:0,uint32_video_height:0,uint32_video_avg_bitrate:0,uint32_video_block_time:0,uint32_video_play_time:0,uint32_audio_block_time:0,uint32_audio_play_time:0,uint32_audio_play_db:0,uint32_avg_down_loss:0,uint32_stream_type:0,uint32_video_render_first:0,uint32_video_block_count:0,uint32_audio_block_count:0,uint32_audio_bitrate:0,uint32_video_black_screen_subjective:0,uint32_audio_recv_bitrate:0,uint32_video_external_block_time:0,uint32_video_consume_render_rate:0},Va=class{constructor(t){l(this,"str_identifier");l(this,"str_tinyid");l(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},fg=Ru;var ch=class{constructor(){l(this,"_startTime");l(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=ge())}stop(){this._endTime===0&&(this._endTime=ge())}getDuration(){return this._endTime===0?ge()-this._startTime:this._endTime-this._startTime}get endTime(){return this._endTime}},zs=ch;var dh=class{constructor(t){l(this,"_room",null);l(this,"_durationMap");l(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(P.SUBSCRIBE_SUCCESS,this.handleSubscribed).set(P.UNSUBSCRIBE_SUCCESS,this.handleStreamStopped).set(P.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var a;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,D.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,D.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,D.VIDEO);let s=(a=this._room)==null?void 0:a.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,D.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,D.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,D.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>F.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>F.off(e,t,this)),this._eventMap.clear()}handleSubscribed({room:t,streamType:e,remotePublishedUser:r}){if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;if(r.muteState.hasAudio&&e==="main")if(r.remoteAudioTrack.isSubscribed){let a=new zs,d=this._durationMap.get(s);d?this.isRecording(d.audio)||d.audio.push(a):this._durationMap.set(s,{userId:o,type:e,audio:[a],video:[]})}else this.stopDurationItem(s,D.AUDIO);if(r.muteState.hasVideo||r.muteState.hasAuxiliary)if(r.remoteVideoTrack.isSubscribed||r.remoteAuxiliaryTrack.isSubscribed){let a=new zs,d=this._durationMap.get(s);d?this.isRecording(d.video)||d.video.push(a):this._durationMap.set(s,{userId:o,type:e,audio:[],video:[a]})}else this.stopDurationItem(s,D.VIDEO)}handleStreamStopped({room:t,streamType:e,remotePublishedUser:r}){if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDurationItem(s,D.AUDIO),this.stopDurationItem(s,D.VIDEO)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new zs,a=this._durationMap.get(o);a?this.isRecording(a[e])||a[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===D.AUDIO?[s]:[],video:e===D.AUDIO?[]:[s]})}stopDurationItem(t,e){if(this._durationMap.has(t)){let o=this._durationMap.get(t)[e].find(s=>s.endTime===0);o&&o.stop()}}hitTest(t){return this._room===t}getDuration(t,e){return this._durationMap.has(t)?this._durationMap.get(t)[e].reduce((o,s)=>o+s.getDuration(),0):0}getDurationMap(){return this._durationMap}reset(){this._durationMap.clear()}destroy(){this._room=null,this.uninstallEvents()}},_g=dh;var uh=class{constructor(t){l(this,"_room");l(this,"_renderFreezeMap",new Map);l(this,"_isVideoPlayingEventFiredMap",new Map);l(this,"_dataFreezeMap",new Map);l(this,"_monitorFreezeData",new Map);l(this,"_eventMap",new Map);this._room=t.room,this.installEvents()}installEvents(){this._eventMap.set(P.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(P.PLAY_TRACK_START,this.onPlayTrackStart).set(P.UNSUBSCRIBE_SUCCESS,({room:t,streamType:e,remotePublishedUser:r})=>{if(!this.hitTest(t))return;let{userId:o}=r,s=`${o}_${e}`;this.stopDataFreeze({key:s,userId:o,type:e})}).set(P.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{if(!this.hitTest(t))return;let{userId:o}=r;if(e.hasVideo&&!r.hasVideo){let s="main",a=`${r.userId}_${s}`;this.stopDataFreeze({key:a,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",a=`${r.userId}_${s}`;this.stopDataFreeze({key:a,userId:o,type:s})}}).set(P.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==D.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===D.MUTE?this.onVideoTrackMuted(t):r===D.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(P.HEARTBEAT_REPORT,this.onHearBeatReport),this._eventMap.forEach((t,e)=>F.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>F.off(e,t,this)),this._eventMap.clear()}stop(){this._renderFreezeMap.clear(),this._dataFreezeMap.clear(),this._isVideoPlayingEventFiredMap.clear()}onVideoTrackMuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`,s=this._dataFreezeMap.get(o),a=new zs;s?s.durationItemList.push(a):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[a],isFreezing(){let d=this.durationItemList[this.durationItemList.length-1];return d&&d.endTime===0}})}onVideoTrackUnmuted(t){if(!t.isSubscribed)return;let{userId:e,streamType:r}=t,o=`${e}_${r}`;this.stopDataFreeze({key:o,userId:e,type:r})}onHearBeatReport({room:t,report:e}){this.hitTest(t)&&e.msg_down_stream_info.forEach(r=>{let o=this._room.remotePublishedUserMap.get(r.msg_user_info.str_identifier);if(!o)return;let{userId:s,muteState:a}=o;r.msg_video_status.forEach(d=>{d.uint32_video_stream_type===2&&a.hasVideo&&!a.videoMuted&&o.remoteVideoTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:d.uint32_video_dec_fps,type:"main"}),d.uint32_video_stream_type===7&&a.hasAuxiliary&&o.remoteAuxiliaryTrack.isSubscribed&&this.handleRenderFreeze({userId:s,fps:d.uint32_video_dec_fps,type:"auxiliary"})})})}stopDataFreeze({key:t,userId:e,type:r}){let o=this._dataFreezeMap.get(t);if(!o||!o.isFreezing())return;let s=o.durationItemList[o.durationItemList.length-1];s.stop();let a=s.getDuration();a>Fc?this._monitorFreezeData.set(t,{userId:e,type:r,duration:a}):o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}handleRenderFreeze(o){return A(this,arguments,function*({userId:t,fps:e,type:r}){let s=`${t}_${r}`,a=this._renderFreezeMap.get(s);if(e<=2){let d=ge();a&&!a.isFreeze&&(a.freezeTimeline.push({startTime:d,endTime:0}),a.isFreeze=!0),a||this._renderFreezeMap.set(s,{userId:t,type:r,isFreeze:!0,freezeTimeline:[{startTime:d,endTime:0}],renderFreezeTotal:0})}else if(a&&a.isFreeze){a.isFreeze=!1;let d=a.freezeTimeline.pop();if(d){d.endTime=ge();let h=d.endTime-d.startTime;a.freezeTimeline.push(d),a.renderFreezeTotal+=Math.min(5e3,h)}}})}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==D.VIDEO||!t.isRemotePublished)return;let e=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.has(e)||this._isVideoPlayingEventFiredMap.set(e,!1)}getDataFreezeDuration(t){let e={dataFreeze:0,count:0},r=this._dataFreezeMap.get(t);if(r){if(r.isFreezing()){let o=r.durationItemList[r.durationItemList.length-1];o.stop(),o.getDuration()<Fc&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e=this._renderFreezeMap.get(t),r=0,o=0;if(e)if(!e.isFreeze)r=e.renderFreezeTotal;else{let s=ge(),a=e.freezeTimeline[e.freezeTimeline.length-1],d=s-a.startTime;r=e.renderFreezeTotal+Math.min(d,5e3),o=e.freezeTimeline.length}return{renderFreeze:r,count:o}}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},gg=uh;var Tg=Di(Li(),1);var jS=[1,0,0,0,1,1,0,1],vu=class extends Vt{constructor(t,e){if(super(t,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"mirror",logger:e}),t instanceof gt)try{this.setTexBuffer(jS)}catch(r){t.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${r.message||r}`}))}}draw2d(t,e,r,o,s){if(this.ctx2d){this.ctx2d.save(),this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0);let a=super.draw2d(t,e,r,o,s);return this.ctx2d.restore(),a}return!1}render(t){var e;return(e=this.input)!=null&&e.requestFrame(t)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}};var lh=class{constructor(t,e){this.node=t;this.layout=e;l(this,"positionBuffer")}get x(){return this.layout.x||this.node.x}get y(){return this.layout.y||this.node.y}get width(){return this.layout.width||this.node.width}get height(){return this.layout.height||this.node.height}get right(){return this.x+this.width}get bottom(){return this.y+this.height}},Cu=class extends Vt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});l(this,"inputs",[])}addInput(e,r){if(this.inputs[r.zIndex])throw new Error("input already exists");let o=new lh(e,r);this.inputs[r.zIndex]=o}resize(e,r){let o=this.inputs.reduce((s,a)=>a?Object.assign(s,{width:Math.max(s.width,a.right),height:Math.max(s.height,a.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof gt&&this.inputs.forEach(s=>{if(s){let a=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,a):s.positionBuffer=this.createBuffer(a)}})}connect(e,...r){return super.connect(e,...r),this.resize(0,0),e}removeInput(e){this.inputs[this.inputs.findIndex(r=>(r==null?void 0:r.node)===e)]=void 0}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),!this.inputs.reduce((s,a)=>(!a||!a.node.requestFrame(e))&&s,!0)&&r){this.useProgram(),r.enable(r.BLEND),r.blendFunc(r.SRC_ALPHA,r.ONE_MINUS_SRC_ALPHA),this.useBufferFrame();for(let s=0;s<this.inputs.length;s++){let a=this.inputs[s];a&&(a.node.useTexture(),this.draw(a.positionBuffer))}return!0}return!1}render2d(e){if(!this.inputs.reduce((o,s)=>(!s||!s.node.requestFrame(e))&&o,!0)&&this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height);for(let o=0;o<this.inputs.length;o++){let s=this.inputs[o];s&&this.draw2d(s.node.image,s.x,s.y,s.width,s.height)}return!0}return!1}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:a,name:d}=this,h=Date.now(),m=(e-this.lastInfo.totalFrames)/((h-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:a,timestamp:h,fps:m,name:d},J({parent:this.inputs.filter(T=>T).map(T=>T.node.getInfo())},this.lastInfo)}close(){super.close(),this.inputs.forEach(e=>{var r,o;if(e&&((r=e.node)==null||r.disconnect(),e.positionBuffer&&this.context instanceof gt))try{(o=this.context.ctx)==null||o.deleteBuffer(e.positionBuffer)}catch(s){}})}};var qS=`#version 300 es
99
99
  in vec2 a_position;
100
100
  in vec2 a_texCoord;
101
101
  out vec2 v_texCoord;
@@ -111,7 +111,7 @@ in vec2 v_texCoord;
111
111
  out vec4 outColor;
112
112
  void main() {
113
113
  outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
114
- }`,Du=class extends Ei{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,logger:e.log});l(this,"_bgTexture");l(this,"_waterMarkTexture");l(this,"_lastMaskTexture");l(this,"_lastMaskFbo");l(this,"_textureValid",!1);l(this,"_selfieTextureValid",!1);l(this,"_selfieSegmentation");l(this,"wasm");l(this,"_prePrograme");l(this,"_segmentationMask");l(this,"_weixin",!1);r.selfieSegmentation&&(this._selfieSegmentation=r.selfieSegmentation,this._selfieSegmentation.onResults=this.onPredict.bind(this));try{this.init(r)}catch(o){e.log.error(o),e.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`}))}}init(e){var s,a;let r=e.Wasm,o=this.context.ctx;if(this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="green"?3:0,e.waterMark){let{x:d,y:h,width:m,height:T}=e.waterMark;this.wasm.setWaterMark(d,h,m,T)}if(e.beautyParams){let{beauty:d,brightness:h,ruddy:m}=e.beautyParams;this.wasm.setBeauty(d,h,m,(s=this.context._canvas)==null?void 0:s.width,(a=this.context._canvas)==null?void 0:a.height)}if(this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(o.uniform1i(o.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(o.uniform1i(o.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image)),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let d=this.context.createShader(o.FRAGMENT_SHADER,JS),h=this.context.createShader(o.VERTEX_SHADER,qS);this._prePrograme=this.context.createProgram(h,d),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}}onPredict(e){var o;let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this._weixin?this.useTexture():this==null||this._selfieSegmentation.bindTexture(),r.activeTexture(r.TEXTURE1),(o=this._selfieSegmentation)==null||o.bindTexture2d(e),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),r.drawArrays(r.TRIANGLE_STRIP,0,4),this._segmentationMask=e,this.totalFrames++}render(e){var h,m,T,I;let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback(o);let{videoWidth:s,videoHeight:a}=o;o.width=s,o.height=a;let d=!1;if(this.totalFrames)this._weixin?this.useTexture():(h=this._selfieSegmentation)==null||h.bindTexture(),d=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;d=this._textureValid,this._textureValid=!0}return this.width!==s||this.height!==a||!d?(this.resize(s,a),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,o)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,o),this._weixin&&(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(r.activeTexture(r.TEXTURE1),(m=this._selfieSegmentation)==null||m.bindTexture2d(this._segmentationMask),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)),r.drawArrays(r.TRIANGLE_STRIP,0,4),(T=this._selfieSegmentation)==null||T.bindTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,a):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,a,0)),(I=this._selfieSegmentation)==null||I.send(s,a),this.totalFrames||(r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),r.drawArrays(r.TRIANGLE_STRIP,0,4)),!1}close(){var r;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),(r=this.wasm)==null||r.close()}};var Nu=class extends Vt{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
114
+ }`,Du=class extends Ti{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,logger:e.log});l(this,"_bgTexture");l(this,"_waterMarkTexture");l(this,"_lastMaskTexture");l(this,"_lastMaskFbo");l(this,"_textureValid",!1);l(this,"_selfieTextureValid",!1);l(this,"_selfieSegmentation");l(this,"wasm");l(this,"_prePrograme");l(this,"_segmentationMask");l(this,"_weixin",!1);r.selfieSegmentation&&(this._selfieSegmentation=r.selfieSegmentation,this._selfieSegmentation.onResults=this.onPredict.bind(this));try{this.init(r)}catch(o){e.log.error(o),e.destroy(new ue({code:Y.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`}))}}init(e){var s,a;let r=e.Wasm,o=this.context.ctx;if(this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="green"?3:0,e.waterMark){let{x:d,y:h,width:m,height:T}=e.waterMark;this.wasm.setWaterMark(d,h,m,T)}if(e.beautyParams){let{beauty:d,brightness:h,ruddy:m}=e.beautyParams;this.wasm.setBeauty(d,h,m,(s=this.context._canvas)==null?void 0:s.width,(a=this.context._canvas)==null?void 0:a.height)}if(this.program=this.wasm.init(),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this.program,"mask"),1),e.bg instanceof HTMLImageElement&&(o.uniform1i(o.getUniformLocation(this.program,"bg"),2),this._bgTexture=this.createTexture(e.bg)),e.waterMark&&(o.uniform1i(o.getUniformLocation(this.program,"waterMark"),3),this._waterMarkTexture=this.createTexture(e.waterMark.image)),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let d=this.context.createShader(o.FRAGMENT_SHADER,JS),h=this.context.createShader(o.VERTEX_SHADER,qS);this._prePrograme=this.context.createProgram(h,d),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}}onPredict(e){var o;let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture))),this.useProgram(),this._weixin?this.useTexture():this==null||this._selfieSegmentation.bindTexture(),r.activeTexture(r.TEXTURE1),(o=this._selfieSegmentation)==null||o.bindTexture2d(e),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),this.useBufferFrame(),r.drawArrays(r.TRIANGLE_STRIP,0,4),this._segmentationMask=e,this.totalFrames++}render(e){var h,m,T,I;let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback(o);let{videoWidth:s,videoHeight:a}=o;o.width=s,o.height=a;let d=!1;if(this.totalFrames)this._weixin?this.useTexture():(h=this._selfieSegmentation)==null||h.bindTexture(),d=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;d=this._textureValid,this._textureValid=!0}return this.width!==s||this.height!==a||!d?(this.resize(s,a),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,o)):r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,o),this._weixin&&(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask&&(r.activeTexture(r.TEXTURE1),(m=this._selfieSegmentation)==null||m.bindTexture2d(this._segmentationMask),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)),r.drawArrays(r.TRIANGLE_STRIP,0,4),(T=this._selfieSegmentation)==null||T.bindTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,a):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,a,0)),(I=this._selfieSegmentation)==null||I.send(s,a),this.totalFrames||(r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this._bgTexture||null),r.activeTexture(r.TEXTURE3),r.bindTexture(r.TEXTURE_2D,this._waterMarkTexture||null),r.drawArrays(r.TRIANGLE_STRIP,0,4)),!1}close(){var r;super.close();let e=this.context.ctx;this._bgTexture&&e.deleteTexture(this._bgTexture),this._waterMarkTexture&&e.deleteTexture(this._waterMarkTexture),this._lastMaskTexture&&e.deleteTexture(this._lastMaskTexture),this._lastMaskFbo&&e.deleteFramebuffer(this._lastMaskFbo),this._prePrograme&&e.deleteProgram(this._prePrograme),(r=this.wasm)==null||r.close()}};var Nu=class extends Vt{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
115
115
  precision highp float;
116
116
  uniform sampler2D ySampler;
117
117
  uniform sampler2D uSampler;
@@ -136,4 +136,4 @@ void main() {
136
136
  void main() {
137
137
  gl_Position = vertexPos;
138
138
  textureCoord = texturePos;
139
- }`});l(this,"yTextureRef");l(this,"uTextureRef");l(this,"vTextureRef");l(this,"Y");l(this,"U");l(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var lh=[i=>{i.codec="avc1.420028"},i=>{delete i.hardwareAcceleration}],gg=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")},wu=class{constructor(t){l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"decoder");l(this,"videoContext");l(this,"gop",0);l(this,"gop_helper",0);l(this,"waitFirstKeyFrame",!0);l(this,"startTimestamp",0);l(this,"startTime",0);l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"downgradeLevel",0);l(this,"config");l(this,"videoElement");l(this,"type","wasm");l(this,"renderer","2d");l(this,"wasmOption");l(this,"createDecoder");l(this,"_decodeSink");let{track:e,createDecoder:r}=t;if(this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=De(e,re.INIT),this.stopOB=gt(this.trackDoneOB),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),this.startOB=gt();let o=gt(),s;be(o,Up((d,h)=>(d!==h&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:s,prevState:d,state:h}),h),"INITIALIZED"),We(this.stopOB),ke());let a=d=>{let h=this.pipe(e);return o.next("STARTING"),e.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`),be(h,We(this.stopOB),ke(()=>{e.stat.framesDecoded++},m=>{if(e.log.error(m),X.addFailedEvent({key:gg(this.type,this.renderer),error:m}),d>4)this.startOB.error(m);else{switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.startOB.next(d+1)}})),be(h,Sr(1),va(ko))};be(this.startOB,xo(0),Fr(a),We(this.stopOB),ke(()=>{e.player.handlePlaying("canvas"),o.next("STARTED")},d=>{s=d,o.next("FAILED")},()=>{X.addSuccessEvent({key:gg(this.type,this.renderer)}),X.addSuccessEvent({key:514704})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!km()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t){var s;if(this.inputFrameCount++,((s=this.decoder)==null?void 0:s.state)!=="configured")return t;let e=new Uint8Array(t.data)[4]&31,r=!1;switch(e){case 5:case 7:r=!0;break}let{timestamp:o}=t;if(r?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(r)this.waitFirstKeyFrame=!1,this.startTimestamp=o,this.startTime=Date.now();else return;let a=(o-this.startTimestamp)/90,h=Date.now()-this.startTime-a,m=h<500?0:h/1e3>>0;switch(r&&(m>0?this.downgradeLevel++:this.downgradeLevel>3&&this.downgradeLevel--),this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}this.inputFrameCount<10&&console.log(`decode ${this.inputFrameCount} ${this.downgradeLevel} ${this.gop_helper} ${this.gop}`),this.decoder.decode(t);return}return t}pipe(t){return gi()(e=>A(this,null,function*(){this._decodeSink=e,e.defer(()=>{var s,a;(s=this.decoder)==null||s.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:r,type:o}=this;try{switch(o){case"wasm":this.decoder=this.createDecoder(o,this.wasmOption);break;case"webCodecs":for(let s=0;s<=lh.length;s++){let{supported:a}=yield VideoDecoder.isConfigSupported(this.config);if(a)break;if(s===lh.length){e.error(3);return}lh[s](this.config)}this.decoder=this.createDecoder(o);break;case"mse":throw new Error("not supported yet")}if(this.decoder.on("videoFrame",s=>{this.decodedFrameCount++,e.next(s)}),this.decoder.on("error",s=>{t.log.error(s),e.error(o==="webCodecs"?4:8)}),yield this.decoder.initialize(this.videoElement),this.decoder.configure(this.config),o==="wasm"&&r==="webgl"){this.videoContext=new _t({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(_t.UNAVAILABLE,a=>{t.log.error(a),e.error(7)});let s=new Nu(this.videoContext);this.decoder.on("videoCodecInfo",a=>s.resize(a.width,a.height)),this.decoder.on("videoFrame",a=>{[s.Y,s.U,s.V]=a,this.downgradeLevel===1?this.decodedFrameCount%2===0&&s.render(this.decodedFrameCount):s.render(this.decodedFrameCount)}),t.source=s,t.player.setCanvas(this.videoContext._canvas,2)}else if(r==="videoFrame"){t.player.setCanvas();let s=new MediaStreamTrackGenerator({kind:"video"}),a=s.writable.getWriter();t.setInputMediaStreamTrack(s);let d=0;this.decoder.on("videoFrame",h=>{d++,d<=10&&t.log.info(`Frame ${d} decoded width: ${h.displayWidth} height: ${h.displayHeight}`),a.write(h)}),s.onmute=()=>{e.error(o==="webCodecs"?5:9)},e.defer(()=>s.onmute=null)}else{this.videoContext=new Ct({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let s=this.videoContext.createVideoImageSource();this.decoder.on("videoFrame",d=>{s.image=d,s.update()});let a=new Fo(this.videoContext,{name:"remotePlayer",logger:t.log});s.connect(a),t.source=s,t.player.setCanvas(this.videoContext._canvas,2)}}catch(s){t.log.error(s),e.error(o==="webCodecs"?2:6)}}))}};var Fa=class extends Eg.EventEmitter{constructor(e){super();this.room=e;l(this,"videoContext");l(this,"_glVideoContext");l(this,"_2dVideoContext");l(this,"destination");l(this,"smallVideoContext");l(this,"smallDestination");l(this,"smallTrackSource");l(this,"smallImageSource");l(this,"_isMirror",!1);l(this,"cameraTrack");l(this,"cameraNode");l(this,"mirrorNode");l(this,"mixNode");l(this,"screenTrack");l(this,"screenNode");l(this,"selfModel",!1);l(this,"blurRadius",3);l(this,"arTrack");l(this,"Wasm");l(this,"waterMarkNode");l(this,"_waterMarkOption");l(this,"watermarkImageList",[]);l(this,"_beautyParams");l(this,"isUsingArTrack",!1);l(this,"_isMixScreen",!1);l(this,"_virtualBackground");l(this,"_virtualBackgroundAbortCallback");l(this,"virtualBackgroundInstance");l(this,"_bgAssetPath");l(this,"log",U.createLogger({id:"vm"}));l(this,"_checkId",0);l(this,"_use2d",!1);l(this,"_autoSwitchRenderMode",!0);l(this,"_selfieSegmentation");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Ct({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Ct({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new _t({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on("unavailable",e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update().catch(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}enablePrintDetail(e=2e3){this._checkId=ft.run(uo,()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),ft.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(Oi||this._isMixScreen||this._isMirror||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?X.addFailedEvent({key:o,error:r}):X.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new _t({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}initVirtualBackground(e){return this._selfieSegmentation=e,this._selfieSegmentation.changeModel()}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,settings:a,player:d}=o;s?(this.smallVideoContext.available||(this.smallVideoContext.create({alpha:!1}),this.smallDestination=new iu(this.smallVideoContext,s,this.log)),this.smallVideoContext.frameRate=s.frameRate,this.smallDestination.resolution=s,e?(this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=e:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(e),this.smallImageSource.connect(this.smallDestination))):(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource?this.smallTrackSource.replaceTrack(this.initialTrack):(this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource"),this.smallTrackSource.width=a.width,this.smallTrackSource.height=a.height,this.smallTrackSource.connect(this.smallDestination)))):this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource),Oi&&d.setCanvas(e);let h=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),h=this.arTrack),this._selfieSegmentation&&e&&!this._use2d&&(this._selfieSegmentation._glName||this._selfieSegmentation.setCanvas(e)),this.log.info(`set main output ${h?h.label:"no output track"}`),o.setOutputMediaStreamTrack(h)}catch(o){this.log.error("set main output failed",o)}}update(){return A(this,null,function*(){var o,s;if(!this.cameraTrack||!this.cameraTrack.mediaTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:e,profile:r}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams?(this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log})),Yt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Ei?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof Ei?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(e.width,e.height)):(this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():this.destination=new ru(this.videoContext,{name:"mainDestination",logger:this.log}),this.cameraNode=new Du(this.videoContext,{input:this.cameraTrack.mediaTrack,mirror:this._isMirror,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,selfieSegmentation:this._selfieSegmentation,Wasm:this.Wasm}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()),this.videoContext.frameRate=r.frameRate,this._use2d){let a=this.cameraNode;a.disconnect(),this._isMirror&&(this.mirrorNode||(this.mirrorNode=new vu(this.videoContext,this.log)),a=a.connect(this.mirrorNode),a.disconnect(),this.log.info("start mirror")),this.mixNode&&this.mixNode.close(),delete this.mixNode,(this._isMixScreen||this._hasWaterMark)&&(this.mixNode=new Cu(this.videoContext,this.log),a.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption&&(this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y),(o=this.waterMarkNode)==null||o.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&!this.screenNode&&(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource")),(s=this.screenNode)==null||s.connect(this.mixNode,{zIndex:0}),a=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)),a.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext._canvas)})}changeInput(e){var r,o,s,a;if(e instanceof Bi)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof Ir)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof Hi){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let d=e.mediaTrack;return e.setOutputMediaStreamTrack(d)}this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof Bi?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof Ir?(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof Hi&&e.source&&e.source.context.destroy()}setCameraTrack(e){return A(this,null,function*(){this.cameraTrack=e,this.update()})}setScreenTrack(e){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)}getWatermarkImage(e,r){return A(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new ue({code:Y.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((a,d)=>a.zIndex-d.zIndex),this.watermarkImageList.forEach(({image:a,x:d,y:h,width:m,height:T})=>{s.drawImage(a,d,h,m,T)}),ms(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return A(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return A(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return A(this,null,function*(){var I,v;let r;try{r=yield ms((e==null?void 0:e.imageElement)||e.imageUrl)}catch(N){throw new ue({code:Y.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:a=r.width,height:d=r.height,type:h="watermark",zIndex:m=2}=e;this.watermarkImageList.some(N=>N.type===h)?(this.watermarkImageList=this.watermarkImageList.filter(N=>N.type!==h),this.pushWaterMarkImageList({x:o,y:s,width:a,height:d,image:r,zIndex:m,type:h,imageUrl:e.imageUrl}),r=yield this.getWatermarkImage((I=this.cameraTrack)==null?void 0:I.settings.width,(v=this.cameraTrack)==null?void 0:v.settings.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:a,height:d,image:r,zIndex:m,type:h,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(N,j)=>N==="imageUrl"?void 0:j))})}deleteWatermark(e="watermark"){return A(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return A(this,null,function*(){var r,o,s;(r=this.waterMarkNode)==null||r.close(),delete this.waterMarkNode,delete this._waterMarkOption;let e=yield this.getWatermarkImage((o=this.cameraTrack)==null?void 0:o.settings.width,(s=this.cameraTrack)==null?void 0:s.settings.height);this._waterMarkOption={x:0,y:0,width:e.width,height:e.height,image:e},this.update()})}setVirtualBackground(e){return A(this,null,function*(){if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield ms(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type)}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new ue({code:Y.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isMirror||((r=this.mirrorNode)==null||r.close(),delete this.mirrorNode),this.update())}get mirror(){return this._isMirror}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return A(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new wu(e)}clear(){var e;(e=this.videoContext)==null||e.disconnect(),delete this.destination,delete this.cameraNode,delete this.mirrorNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};G([__(function(e){this.log.error("update failed",e)})],Fa.prototype,"update",1);var zS=0;var Mu=class extends re{constructor(e){super("room");l(this,"seq",++zS);l(this,"sdkAppId");l(this,"userId");l(this,"userSig");l(this,"privateMapKey");l(this,"latencyLevel");l(this,"tinyId");l(this,"scene");l(this,"roomId");l(this,"useStringRoomId");l(this,"role","anchor");l(this,"joinParams",null);l(this,"localTracks",new Set);l(this,"enableAutoPlayDialog",!0);l(this,"autoReceiveAudio",!0);l(this,"autoReceiveVideo",!0);l(this,"proxy_ws");l(this,"proxy_wt");l(this,"proxy_unified");l(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0}});l(this,"keyPointManager");l(this,"audioManager");l(this,"videoManager");l(this,"callDurationCalculator");l(this,"badCaseDetector");l(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});l(this,"videoDecodeFallbackType");l(this,"_isUsingCachedSchedule",!1);l(this,"_log",U.createLogger({id:`r${this.seq}`}));l(this,"_joinedTimestamp",0);l(this,"_sdkType");l(this,"heartbeatReport");l(this,"quality");l(this,"enableSEI");l(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,nt(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),nt(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),nt(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new hg({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new fg({room:this}),this.badCaseDetector=new _g({room:this}),this.audioManager=new $d(this),this.videoManager=new Fa(this)}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return A(this,null,function*(){return this.publish(e)})}removeTrack(e){return A(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return A(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Se(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Bt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:a,unifiedProxy:d}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=d,d?(lu([d,d]),no(`https://${d}`)):(s&&no(s),a&&lu(a))}F.once(P.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:Ar.main,sched_back_domain:Ar.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return A(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return A(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return A(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new ue({code:Y.INVALID_OPERATION,message:st({key:ot.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Wt.INVALID_DESTROY),new ue({code:Y.INVALID_OPERATION,message:st({key:ot.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,F.emit(P.ROOM_DESTROY,{room:this})}schedule(e,r){return A(this,null,function*(){var s,a,d;let o=ge();try{let{isCached:h,result:m,detailCost:T}=yield Jp({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:Ke,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=h,this._log.info(`schedule cache:${+h} ${ir(m,{keysToExclude:["username","credential"]})}`),h&&F.once(P.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=J(J({},this.scheduleResult),m),$e((s=m.config)==null?void 0:s.retryCount)&&$l(m.config.retryCount),Se((a=m.config)==null?void 0:a.loggerDomain)&&no(m.config.loggerDomain),this.videoDecodeFallbackType=((d=m.config)==null?void 0:d.videoDecodeFallback)||this.videoDecodeFallbackType,F.emit(P.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:T}),X.addSuccessEvent({key:521700,cost:ge()-o,split:50})}catch(h){throw X.addFailedEvent({key:521700,error:h}),h}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}};function Tg(i,t=!1){let e=Object.defineProperties(gt(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Oe,i.onmessageerror=Oe,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var mh=class extends ne{constructor(t,e){super(t);let r=new ne(t);r.next=Oe,e(r)}},M1=ce(mh,"takeUntilComplete");var St={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},hh="__INLINE__WORKER__",Ig="__INLINE__WASM__",{debug:Sg}=console;St.debug||(console.debug=()=>{});var ph=!hh.startsWith("__"),XS=!Ig.startsWith("__");function yg(){return`${St.assetsPath?`${St.assetsPath}/`:""}worker.js`}function Ag(){let i=yg();return ph||i.startsWith("http")?URL.createObjectURL(new Blob([ph?atob(hh):`importScripts('${i}')`])):i}function bg(){let i=yg();return ph?URL.createObjectURL(new Blob([atob(hh)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var Ba;function Ou(){return A(this,null,function*(){let i=St.assetsPath?`${St.assetsPath}/`:"";return Ba||(XS?Ba=new TextEncoder().encode(atob(Ig)).buffer:Ba=yield fetch(`${i}av_processing.wasm`).then(t=>t.arrayBuffer()),Ba)})}var fh=class{constructor(){l(this,"playPort");l(this,"playPortSent",!1);l(this,"worklet");l(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return A(this,null,function*(){let t=lt("player"),e=bg();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),U.info("global audio player worklet addModule success",e)}catch(r){throw U.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Ou(),flag:St},numberOfInputs:2}),U.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return A(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.init()))})}},Pu=new fh;var _h=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),F1=_h?Promise.resolve().then(function(){return KS}):Promise.resolve().then(function(){return sy});var B1=_h?Promise.resolve().then(function(){return ty}):Promise.resolve().then(function(){return ay});var QS=_h?Promise.resolve().then(function(){return iy}):Promise.resolve().then(function(){return dy});function gh(...i){return A(this,null,function*(){return(yield QS).default(...i)})}var YS=i=>A(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),ZS=(...t)=>A(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,a)=>{e[a]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(d=>{e[a].accept[d]=s.extensions||[]}):e[a].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(YS));return i[0].multiple?o:o[0]}),KS={__proto__:null,default:ZS};function xu(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return xu=function(e){this.s=e,this.n=e.next},xu.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new xu(i)}var Rg=(o,s,...a)=>A(void 0,[o,s,...a],function*(i,t,e=i.name,r){let d=[],h=[];var m,T=!1,I=!1;try{for(var v,N=function(j){var H,z,Te,Pe=2;for(typeof Symbol!="undefined"&&(z=Symbol.asyncIterator,Te=Symbol.iterator);Pe--;){if(z&&(H=j[z])!=null)return H.call(j);if(Te&&(H=j[Te])!=null)return new xu(H.call(j));z="@@asyncIterator",Te="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());T=!(v=yield N.next()).done;T=!1){let j=v.value,H=`${e}/${j.name}`;j.kind==="file"?h.push(j.getFile().then(z=>(z.directoryHandle=i,z.handle=j,Object.defineProperty(z,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>H})))):j.kind!=="directory"||!t||r&&r(j)||d.push(Rg(j,t,H,r))}}catch(j){I=!0,m=j}finally{try{T&&N.return!=null&&(yield N.return())}finally{if(I)throw m}}return[...(yield Promise.all(d)).flat(),...yield Promise.all(h)]}),ey=(...t)=>A(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return Rg(e,i.recursive,void 0,i.skipDirectory)}),ty={__proto__:null,default:ey},ry=(s,...a)=>A(void 0,[s,...a],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let d=[],h=null;if(i instanceof Blob&&i.type?h=i.type:i.headers&&i.headers.get("content-type")&&(h=i.headers.get("content-type")),t.forEach((I,v)=>{d[v]={description:I.description||"Files",accept:{}},I.mimeTypes?(v===0&&h&&I.mimeTypes.push(h),I.mimeTypes.map(N=>{d[v].accept[N]=I.extensions||[]})):h?d[v].accept[h]=I.extensions||[]:d[v].accept["*/*"]=I.extensions||[]}),e)try{yield e.getFile()}catch(I){if(e=null,r)throw I}let m=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:d,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(m);let T=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(T),m):"body"in i?(yield i.body.pipeTo(T),m):(yield T.write(yield i),yield T.close(),m)}),iy={__proto__:null,default:ry},oy=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(m=>m.mimeTypes||[]),...i.map(m=>m.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let a=m=>{typeof d=="function"&&d(),e(m)},d=i[0].legacySetup&&i[0].legacySetup(a,()=>d(r),o),h=()=>{window.removeEventListener("focus",h),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",h)}),o.addEventListener("change",()=>{window.removeEventListener("focus",h),o.remove(),a(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),sy={__proto__:null,default:oy},ny=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=d=>{typeof a=="function"&&a(),e(d)},a=i[0].legacySetup&&i[0].legacySetup(s,()=>a(r),o);o.addEventListener("change",()=>{let d=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(d=d.filter(h=>h.webkitRelativePath.split("/").every(m=>!i[0].skipDirectory({name:m,kind:"directory"})))):d=d.filter(h=>h.webkitRelativePath.split("/").length===2),s(d)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),ay={__proto__:null,default:ny},cy=(e,...r)=>A(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(h,m){return A(this,null,function*(){let T=h.getReader(),I=new ReadableStream({start:j=>function H(){return A(this,null,function*(){return T.read().then(({done:z,value:Te})=>{if(!z)return j.enqueue(Te),H();j.close()})})}()}),v=new Response(I),N=yield v.blob();return T.releaseLock(),new Blob([N],{type:m})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let a=()=>{typeof d=="function"&&d()},d=t.legacySetup&&t.legacySetup(a,()=>d(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),a()}),o.click(),null}),dy={__proto__:null,default:cy};var Eh=class{constructor(t){this.name=t;l(this,"ready");l(this,"worker");l(this,"ports");l(this,"ids",1);l(this,"transactions",new Map);l(this,"log");l(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=new Worker(Ag(),{name:t});return this.worker=e,this.ready=new Promise((r,o)=>A(this,null,function*(){e.onmessage=({data:{id:s,type:a,payload:d}})=>{var h;if(s)(h=this.transactions.get(s))==null||h(d),this.transactions.delete(s);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",d),o(d);break;case"ready":console.timeEnd(`createWorker_${t}`),r(this);break;case"updateAFSM":if(d.value){let m=typeof d.old=="string"?d.old:`${d.old.action}ing`,T=typeof d.value=="string"?d.value:`${d.value.action}ing`;console.log(Gc(),d.group,d.name,m,"\u{1F449}",T)}break;case"log":console.log(d);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:d}));break}},e.postMessage({wasm:yield Ou(),flag:St},this.ports)}))}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Th=class{constructor(t,e,r){this.worker=t;l(this,"channel",new MessageChannel);l(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},Ih=class i extends Eh{constructor(){super("main");l(this,"switchValue",new Map);l(this,"extendChannel");l(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return A(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Lt(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},Ji=new Ih,jo,uy=-1;function vg(i){return console.log(i),jo.push(i.slice()),jo.length>1e3&&jo.shift(),i}function Cg(i){return A(this,null,function*(){switch(uy){case 0:this.edpl.willDecodeAudio=vg;break;case 2:this.edpl.didEncodeAudio=vg;break}yield Ji.create(),F.emit(P.JOIN_SEND_CMD,{room:this});let t=new Th(Ji,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:a,payload:d}=s;this.onWorkerEvent(a,d)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(F.emit(P.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new ue({code:Y.JOIN_ROOM_FAILED,extraCode:Number(e),message:st({key:ot.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Sh},useWt:{set:ly},enableDebug:{set(i){console.debug=i?Sg:()=>{},Ji.setSwitchValue("enableDebug",i)}},useV2:{set:yh},dump:{value(){if(jo||(console.warn("dump audio will be activated at next time join room"),jo=[]),!jo.length){console.warn("no audio data to dump,try it later");return}let i=[];return jo.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),gh(new Blob(i),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;Ji.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:a})=>{console.log(a),e.push(a),e.length>t&&(s.port2.onmessage=null,Ji.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return gh(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:St.useHardDecoder="prefer-hardware";break;case!1:St.useHardDecoder="prefer-software";break;default:St.useHardDecoder="no-preference"}}}});function Sh(i){return A(this,null,function*(){Ji.setSwitchValue("useAINS",i)})}function yh(i){return A(this,null,function*(){Ji.setSwitchValue("useV2",i)})}function ly(i){return A(this,null,function*(){Ji.setSwitchValue("useWt",i)})}function Dg(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function Ng(i){return A(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),be(Tg(r.port2),We(De(i,re.INIT)),ke(s=>{let{data:a,packetsReceived:d}=s;i.stat.packetsReceived=d,i.stat.framesReceived++,e++;let h=a[4]&31;if(e<=10){let T=Array.from(a.slice(0,10)).map(I=>I.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${a.length} bytes, Type: ${h}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${T}`)}let m;switch(h){case 5:case 7:m="key";break;default:m="delta";break}i.decodeFrame({data:a.buffer,type:m,timestamp:(Date.now()-t)*1e3})},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var ku=[];function Mg(i){var h;let t=gt();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let m=0;m<=ku.length;m++)if(!ku[m]){ku[m]=this,this.index=m;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(h=this.session)==null||h.postMessage({cmd:"pushAudio",payload:J({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=m=>{m.data==null||(typeof m.data=="number"?t.next(m.data):o&&o.port1.postMessage(pe(J({},m.data),{data:new Uint8Array(i.encodeFrame({data:m.data.data.buffer,timestamp:m.data.timestamp}).data)})))};let s=new MediaStream,a,d=m=>{let T=s.getAudioTracks()[0];T&&(a.disconnect(),s.removeTrack(T)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),a=lt("player").createMediaStreamSource(s),a.connect(Pu.worklet,0,this.index)};be(De(i,"output-media-track-changed"),We(De(i,"capture")),ke(d,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,a.disconnect(),ku[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),be(t,Ca(m=>i.volume=m),Vo(tu(1e3)),ke(()=>{i.volume=0})),d(i.outMediaTrack)}var IF=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Ah=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;l(this,"track");l(this,"label");l(this,"insertKeyFrame",!0);l(this,"encoder");l(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){let o=this.recreate(r);e.signal.addEventListener("abort",()=>{o.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(a,d)=>{o.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(a),s++,d.enqueue(a))}}),e)}encode(t){this.encoder.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){let o=this.recreate(r),s=0;t.pipeTo(new WritableStream({write:a=>{o.state==="configured"&&(s<10&&console.log(`capture ${this.label} track frame:`,s,Date.now(),a.timestamp,a.displayWidth,a.displayHeight),(a.displayWidth!==this.config.width||a.displayHeight!==this.config.height)&&(console.log("resize video track frame:",a.displayWidth,a.displayHeight,this.config.width,this.config.height),this.configure({width:a.displayWidth,height:a.displayHeight})),this.tsMap.set(s,Date.now()),this.encode(a),s<10&&console.log(`encode ${this.label} track frame:`,s),s++,a.close())}}),e).catch(a=>{console.warn(a),o.close()})}recreate(t,e=0){let r=0,o=new VideoEncoder({output:s=>{let a=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e===0&&F.emit(P.SEND_FIRST_VIDEO_FRAME,{room:t}),console.log(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,this.track.enabled===!1)return;let d=null;if(this.localTrack.enableEncodeFrame){d=new Uint8Array(s.byteLength),s.copyTo(d);let h=this.localTrack.encodeFrame({data:d.buffer},this.type===3);d=new Uint8Array(h.data)}d?(this.localTrack.stat.bytesSent+=d.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:d,duration:s.duration},timestamp:a},[d.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:a}))},error:s=>{console.warn(s,this.config),setTimeout(()=>this.recreate(t,e+1),100)}});return this.encoder=o,this.configure({}),o}configure(t){var e;(e=this.encoder)==null||e.configure(Object.assign(this.config,t))}close(){this.port.postMessage(null),this.port.close()}};function Lu(i,t){return A(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",avc:{format:"annexb"},hardwareAcceleration:St.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let a=new Ah(i,t.type,o,s.port2);return s.port2.onmessage=d=>{if(d.data===260)a.insertKeyFrame=!0;else if(!e){let{bitrate:h}=d.data;Ln({configureBr:[d.data.bitrate,h]}),a.configure({bitrate:h})}},this._log.info("start push",r,t),a})}function Og(i){return A(this,null,function*(){let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera"};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:a}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=a;let d=yield Lu.call(this,i,r);this._log.info("VideoEncoder created",r);let h,m=T=>A(this,null,function*(){if(h==null||h.abort("track changed"),!T)return;h=new AbortController;let{width:I,height:v,displaySurface:N}=T.getSettings();I&&(d.config.width=I),v&&(d.config.height=v);let j=Qt.match(/Chrome\/(\d+)/);(j==null?void 0:j[1])==="114"&&N==="browser"&&delete d.config.hardwareAcceleration,this._log.info("push",e,"track:",T.readyState,T.getSettings());let H=new MediaStreamTrackProcessor({track:T}).readable,z="small"in i&&i.small;z?(this.smallEncoder||(this.smallEncoder=yield Lu.call(this,i,{profile:z,type:3,trackType:o})),this.smallEncoder.track=T,this.smallEncoder.label="small",H=this.smallEncoder.trans(H,h,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),d.track=T,d.label=e,d.start(H,h,this)});return be(De(i,"output-media-track-changed"),We(De(i,"capture")),ke(m,console.error,()=>{var T;this._log.info("stop push",e,r),h.abort("unpublish"),d.close(),(T=this.smallEncoder)==null||T.close()})),m(i.outMediaTrack)})}var zi=class zi extends re{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;l(this,"enableInBackground",!1);l(this,"interval",400);e.on("joined",()=>{this.emit(zi.INTERVALCHANGED,this.interval)}),be(De(this,zi.INTERVALCHANGED),Fr(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):be(L_(s),Vs(()=>[]))),ke(s=>{s.forEach(a=>{this.room.remotePublishedUserMap.has(a.userId)&&(this.room.remotePublishedUserMap.get(a.userId).remoteAudioTrack.volume=a.volume)}),(!document.hidden||this.enableInBackground)&&this.state==re.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(zi.INTERVALCHANGED,this.interval)}stop(){}};l(zi,"INTERVALCHANGED","intervalChanged"),G([ye([re.INIT,re.OFF],re.ON)],zi.prototype,"start",1),G([ye([],re.OFF)],zi.prototype,"stop",1);var Uu=zi;var Xi=class Xi extends Mu{constructor(e){super(e);l(this,"index",0);l(this,"session");l(this,"tinyid");l(this,"roomid");l(this,"openid");l(this,"socketid");l(this,"relayip");l(this,"clientip");l(this,"remotePublishedUserMap",new Map);l(this,"bussinessInfo");l(this,"token");l(this,"audioVolumeEvalution",new Uu(this));l(this,"enableAIVoice",Sh);l(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:um(),uint32_device_type:0,str_os_verion:lm(),uint32_link_type:1,str_client_version:Ke,uint32_net_type:ao[Pr.getNetworkType()],ua:navigator.userAgent,version:""}});l(this,"joinAbortController",new AbortController);l(this,"smallAbortCtrl");l(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,yh(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return A(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){this.session&&(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let a=new MessageChannel;this.postMessage({cmd:e,payload:r},[a.port1]),a.port2.onmessageerror=s,a.port2.onmessage=d=>{a.port2.close(),o(d.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var a;let s=new MessageChannel;s.port2.onmessage=d=>{d.data?o.next(d.data):o.complete()},s.port2.onmessageerror=d=>o.error(d),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(a=this.session)==null||a.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return A(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return A(this,null,function*(){var h,m,T;let s=Pr.getEnv(),a=Ad(),d={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(h=this.proxy_wt)==null?void 0:h.replace("https://",""),proxy_ws:(m=this.proxy_ws)==null?void 0:m.replace("wss://",""),proxy_cloud:(T=this.scheduleResult.iceServers)!=null&&T.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:As(),browserInfo:Ad(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:Ke,browserVersion:a.browserName+a.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield Cg.call(this,d),console.log(this),Pu.playAudio(I=>this.postMessage({cmd:"setAudioWorkletPort"},[I])),this.checkDestroy()})}_leave(e=0){return A(this,null,function*(){console.log(this.userId,"leave",e),this.remotePublishedUserMap.forEach(r=>{r.remoteAudioTrack.close(),r.remoteAuxiliaryTrack.close(),r.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((r,o)=>o.unpublish())})}leave(){return A(this,null,function*(){return this._leave()})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return A(this,null,function*(){let e=We(De(this,"left"));be(r=>A(this,null,function*(){let o=new MessageChannel;o.port2.onmessage=s=>{s.data?r.next({data:s.data,port:o.port2}):r.complete()},o.port2.onmessageerror=s=>r.error(s),r.defer(()=>{o.port2.postMessage(null),o.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[o.port1])}),e,ke(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.buffer}});o.postMessage(new Uint8Array(s.data),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case P.RECEIVED_PUBLISHED_USER_LIST:F.emit(e,J({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new bu(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let I=r,v=this.remotePublishedUserMap.get(I);v&&(v.remoteVideoTrack.close(),v.remoteAuxiliaryTrack.close(),v.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(I),this.emit("remote-unpublished",v))}return;case"banned":switch(this._leave(r),r){case 8:this.emit("banned",{reason:"kick",message:""});break;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});case 7:case 5:this.emit("banned",{reason:"room_disband",message:""})}break;case"6":{let{prevMuteState:I,muteState:v,flag:N}=r,j=this.remotePublishedUserMap.get(v.userId);if(!j){this.emit("remote-publish-state-changed",r);return}j.flag=N}F.emit(P.REMOTE_PUBLISH_STATE_CHANGED,J({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"network-quality":this.quality=J({},r);let{uplinkLoss:s,uplinkRTT:a,uplinkInfo:d,downlinkInfo:h,msg_down_stream_info:m}=r,T={str_sdk_version:Ke,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:ao[kn()]},msg_event_msg:U_(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:d,msg_down_stream_info:m};F.emit(P.HEARTBEAT_REPORT,{room:this,report:T}),this.emit("heartbeat-report",T),F.emit(P.NETWORK_QUALITY,{room:this,uplink:{rtt:a,loss:s},downlinks:h}),delete r.downlinkInfo;break;case"signal-connection-state-changed":F.emit(P.SIGNAL_CONNECTION_STATE_CHANGED,J({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(...e){return A(this,null,function*(){let r=e.reduce((d,h)=>h.mediaType|d,0),o=this.sendMessage("publish",r).then(d=>d.err!==0?Promise.reject(d.err):d),s=0,a=d=>A(this,null,function*(){switch(yield o,d.muted&&(s|=d.mediaType),vt(d,d).add("mute",()=>{this.postMessage("mute",{mediaType:d.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:d.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),d.mediaType){case 1:Mg.call(this,d);break;default:yield Og.call(this,d)}});yield Promise.all(e.map(a)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return A(this,null,function*(){e.forEach(at)})}subscribe(...e){return A(this,null,function*(){let r=e.reduce((I,v)=>v.mediaType|I,0),{userId:o,tinyId:s,streamType:a}=e[0],d=this.remotePublishedUserMap.get(o),h=J({},d.subscribeState),m=Object.assign(new oa,h);m.mediaType|=r,F.emit(P.SUBSCRIBE_START,{room:this,streamType:a,remotePublishedUser:d,subscribeState:m});let T=yield this.sendMessage("subscribe",{mediaType:m.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(I=>m.mediaType&I).map(I=>({mediaType:I,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",T),yield Promise.all(e.filter(I=>!I.isSubscribed).map(I=>{switch(I.mediaType){case 1:return Dg.call(this,I);default:return Ng.call(this,I)}})),F.emit(P.SUBSCRIBE_SUCCESS,{room:this,streamType:a,remotePublishedUser:d})})}unsubscribe(...e){return A(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType,o.unsubscribe();if(e.length){let{userId:o,streamType:s,tinyId:a}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:a,userId:o}),F.emit(P.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return A(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Lu.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId),s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let a={srctinyid:r.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(d=>s&d).map(d=>({mediaType:d,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=a.mediaType,this.postMessage("changetype",a)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};G([Fi(Xi.prototype.afterJoin),ye(["left",re.INIT],"joined"),dg()],Xi.prototype,"join",1),G([ye("joined","left",{ignoreError:!0}),ug()],Xi.prototype,"_leave",1),G([Vd((...e)=>0),lg()],Xi.prototype,"publish",1),G([Vd((...e)=>0),mg()],Xi.prototype,"unpublish",1),G([Vd((...e)=>e[0].userId),pg()],Xi.prototype,"subscribe",1);var Vu=Xi;Js.frameWorkType=37;Js.create=function(i){let t=Js._create.call(this,Vu,i);return t._use(wa,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(St.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",Ke,"created",St),t};Object.assign(Js.prototype,{_setCurrentSpeaker(i){let t=lt("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return A(this,null,function*(){return this.startPlugin(wa.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{be(De(i,"decode-downgrade-state-changed"),Uo(o=>o.state==="STARTED"),Sr(1),Bp(1e4),We(De(i,re.INIT)),ke(e,r))})})}});var WB=Js;export{WB as default};
139
+ }`});l(this,"yTextureRef");l(this,"uTextureRef");l(this,"vTextureRef");l(this,"Y");l(this,"U");l(this,"V");this.useProgram();let r=this.context.ctx;r.pixelStorei(r.PACK_ALIGNMENT,1),r.pixelStorei(r.UNPACK_ALIGNMENT,1),this.setTexBuffer([0,1,1,1,0,0,1,0]),this.yTextureRef=this._initTexture("ySampler",0),this.uTextureRef=this._initTexture("uSampler",1),this.vTextureRef=this._initTexture("vSampler",2),this._canvas=e._canvas}_initTexture(e,r){let o=this.context.ctx,s=o.createTexture();return o.bindTexture(o.TEXTURE_2D,s),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.LINEAR),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.bindTexture(o.TEXTURE_2D,null),o.uniform1i(o.getUniformLocation(this.program,e),r),s}render(e){let r=this.context.ctx,o=this.width,s=this.height;return this.useProgram(),r.viewport(0,0,o,s),r.activeTexture(r.TEXTURE0),r.bindTexture(r.TEXTURE_2D,this.yTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o,s,r.LUMINANCE,r.UNSIGNED_BYTE,this.Y),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,this.uTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.U),r.activeTexture(r.TEXTURE2),r.bindTexture(r.TEXTURE_2D,this.vTextureRef),r.texSubImage2D(r.TEXTURE_2D,0,0,0,o/2,s/2,r.LUMINANCE,r.UNSIGNED_BYTE,this.V),this.draw(),!0}resize(e,r){super.resize(e,r);let o=this.context.ctx;o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.yTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e,r,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE1),o.bindTexture(o.TEXTURE_2D,this.uTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null),o.activeTexture(o.TEXTURE2),o.bindTexture(o.TEXTURE_2D,this.vTextureRef),o.texImage2D(o.TEXTURE_2D,0,o.LUMINANCE,e/2,r/2,0,o.LUMINANCE,o.UNSIGNED_BYTE,null)}};var mh=[i=>{i.codec="avc1.420028"},i=>{delete i.hardwareAcceleration}],Eg=(i,t)=>{switch(i){case"webCodecs":return t==="videoFrame"?514705:514706;case"wasm":return t==="webgl"?514707:t==="videoFrame"?514708:514709}throw new Error("decoder type not supported")},zS=0,wu=class{constructor(t){l(this,"id",zS++);l(this,"trackDoneOB");l(this,"startOB");l(this,"stopOB");l(this,"decoder");l(this,"videoContext");l(this,"gop",0);l(this,"gop_helper",0);l(this,"waitFirstKeyFrame",!0);l(this,"startTimestamp",0);l(this,"startTime",0);l(this,"inputFrameCount",0);l(this,"decodedFrameCount",0);l(this,"downgradeLevel",0);l(this,"config");l(this,"gop_before_configure",[]);l(this,"videoElement");l(this,"type","wasm");l(this,"renderer","2d");l(this,"wasmOption");l(this,"createDecoder");l(this,"_decodeSink");l(this,"track");let{track:e,createDecoder:r}=t;if(this.track=e,this.createDecoder=r,this.wasmOption={yuvMode:t.renderer==="webgl",wasmPath:t.wasmPath,workerMode:t.workerMode,canvas:t.canvas},this.config=t.config,this.videoElement=t.videoElement,this.renderer=t.renderer,this.trackDoneOB=Se(e.availableState,Z.OFF),this.stopOB=_t(this.trackDoneOB),t.type==="auto"){switch(t.fallback){case"wasm":this.type="wasm",this.renderer="webgl";break;case"wasm_2d":this.type="wasm",this.renderer="2d";break;case"wasm_video":this.type="wasm",this.renderer="videoFrame";break;default:this.type="webCodecs"}this.wasmOption.yuvMode=this.renderer==="webgl"}else this.type=t.type;this.changeRenderer(this.renderer),this.startOB=_t();let o=_t(),s;Ie(o,Up((m,T)=>(m!==T&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:s,prevState:m,state:T}),T),"INITIALIZED"),Ge(this.stopOB),Pe());let a=0,d=()=>(o.next("STARTING"),this.pipe(e)),h=Ie(this.startOB,Lo(0),Fr(d),Ge(this.stopOB),_i());Ie(h,Pe(()=>{e.stat.framesDecoded++},m=>{if(e.log.error(`${this.id} play failed: ${m} retryCount: ${a}`),X.addFailedEvent({key:Eg(this.type,this.renderer),error:m}),a>4)this.startOB.error(m);else{switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.startOB.next(++a)}},()=>{e.log.warn(`${this.id} decoderOB completed`)})),Ie(h,Sr(1),va(Uo),Pe(()=>{e.player.handlePlaying("canvas"),o.next("STARTED")},m=>{s=m,o.next("FAILED")},()=>{X.addSuccessEvent({key:Eg(this.type,this.renderer)}),X.addSuccessEvent({key:514704})}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.startOB.next(0)}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!km()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a;let r=new Uint8Array(t.data)[4]&31,o=!1;switch(r){case 5:case 7:o=!0;break}if(this.inputFrameCount++,((a=this.decoder)==null?void 0:a.state)!=="configured")return console.log(`not configured ${this.inputFrameCount}`),o&&(this.gop_before_configure=[]),this.gop_before_configure.push(t),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(d=>{this.decode(d,!0)}),this.gop_before_configure=[]);let{timestamp:s}=t;if(o?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(o)this.waitFirstKeyFrame=!1,this.startTimestamp=s,this.startTime=Date.now();else{console.log(`wait first key frame ${this.inputFrameCount}`);return}let d=(s-this.startTimestamp)/90,m=Date.now()-this.startTime-d,T=m<500?0:m/1e3>>0;switch(o&&(T>0?this.downgradeLevel++:this.downgradeLevel>3&&this.downgradeLevel--),this.downgradeLevel){case 0:break;case 1:break;case 2:if(this.gop_helper>this.gop>>1)return;break;case 3:if(this.gop_helper>0)return;break;default:return}this.inputFrameCount<10&&console.log(`${this.track.userId} ${this.track.mediaType} decode ${this.inputFrameCount} ${this.downgradeLevel} ${this.gop_helper} ${this.gop}`),this.decoder.decode(t);return}return t}pipe(t){return e=>A(this,null,function*(){this._decodeSink=e,e.defer(()=>{var s,a;(s=this.decoder)==null||s.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:r,type:o}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`),console.warn(`${t.userId} ${t.mediaType} ${r} ${o} ${t.availableState.state}`);try{switch(o){case"wasm":this.decoder=this.createDecoder(o,this.wasmOption);break;case"webCodecs":for(let s=0;s<=mh.length;s++){let{supported:a}=yield VideoDecoder.isConfigSupported(this.config);if(a)break;if(s===mh.length){e.error(3);return}mh[s](this.config)}this.decoder=this.createDecoder(o);break;case"mse":throw new Error("not supported yet")}if(this.decoder.on("videoFrame",s=>{this.decodedFrameCount++,e.next(s)}),this.decoder.on("error",s=>{t.log.error(s),e.error(o==="webCodecs"?4:8)}),yield this.decoder.initialize(this.videoElement),this.decoder.configure(this.config),o==="wasm"&&r==="webgl"){this.videoContext=new gt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(gt.UNAVAILABLE,a=>{t.log.error(a),e.error(7)});let s=new Nu(this.videoContext);this.decoder.on("videoCodecInfo",a=>s.resize(a.width,a.height)),this.decoder.on("videoFrame",a=>{[s.Y,s.U,s.V]=a,this.downgradeLevel===1?this.decodedFrameCount%2===0&&s.render(this.decodedFrameCount):s.render(this.decodedFrameCount)}),t.source=s,t.player.setCanvas(this.videoContext._canvas,2)}else if(r==="videoFrame"){t.player.setCanvas();let s=new MediaStreamTrackGenerator({kind:"video"}),a=s.writable.getWriter();t.setInputMediaStreamTrack(s);let d=0;this.decoder.on("videoFrame",h=>{d++,d<=10&&t.log.info(`Frame ${d} decoded width: ${h.displayWidth} height: ${h.displayHeight}`),a.write(h)}),s.onmute=()=>{e.error(o==="webCodecs"?5:9)},e.defer(()=>s.onmute=null)}else{this.videoContext=new Ct({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let s=this.videoContext.createVideoImageSource();this.decoder.on("videoFrame",d=>{s.image=d,s.update()});let a=new Bo(this.videoContext,{name:"remotePlayer",logger:t.log});s.connect(a),t.source=s,t.player.setCanvas(this.videoContext._canvas,2)}}catch(s){t.log.error(s),e.error(o==="webCodecs"?2:6)}})}};var Fa=class extends Tg.EventEmitter{constructor(e){super();this.room=e;l(this,"videoContext");l(this,"_glVideoContext");l(this,"_2dVideoContext");l(this,"destination");l(this,"smallVideoContext");l(this,"smallDestination");l(this,"smallTrackSource");l(this,"smallImageSource");l(this,"_isMirror",!1);l(this,"cameraTrack");l(this,"cameraNode");l(this,"mirrorNode");l(this,"mixNode");l(this,"screenTrack");l(this,"screenNode");l(this,"selfModel",!1);l(this,"blurRadius",3);l(this,"arTrack");l(this,"Wasm");l(this,"waterMarkNode");l(this,"_waterMarkOption");l(this,"watermarkImageList",[]);l(this,"_beautyParams");l(this,"isUsingArTrack",!1);l(this,"_isMixScreen",!1);l(this,"_virtualBackground");l(this,"_virtualBackgroundAbortCallback");l(this,"virtualBackgroundInstance");l(this,"_bgAssetPath");l(this,"log",U.createLogger({id:"vm"}));l(this,"_checkId",0);l(this,"_use2d",!1);l(this,"_autoSwitchRenderMode",!0);l(this,"_selfieSegmentation");l(this,"encodePipeline",[]);l(this,"decodePipeline",[]);e&&(this.log.setUserId(e.userId),this.log.setSdkAppId(e.sdkAppId)),this.smallVideoContext=new Ct({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get renderMode(){return this._autoSwitchRenderMode?"auto":this._use2d?"2d":"webgl"}set renderMode(e){if(this._autoSwitchRenderMode=e==="auto",this._autoSwitchRenderMode)return;let r=e==="2d";this._use2d!==r&&(this._use2d=r,this.clear(),this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.update())}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Ct({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new gt({frameRate:15,logger:this.log,name:"m"});else if(this._glVideoContext.available)return this._glVideoContext;return this.initializeGlVideoContext(),this._glVideoContext}initializeGlVideoContext(){try{this._glVideoContext.create(),this._glVideoContext.on("unavailable",e=>{var r;this.emit("error",e),this.log.warn("video context unavailable",e),(r=this._virtualBackgroundAbortCallback)==null||r.call(this,e),this.update().catch(o=>{this.log.error(o)})})}catch(e){this.emit("error",e)}}enablePrintDetail(e=2e3){this._checkId=ft.run(mo,()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}destroy(){var e,r;(e=this._2dVideoContext)==null||e.destroy(),(r=this._glVideoContext)==null||r.destroy(),this.smallVideoContext.destroy(),ft.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(Pi||this._isMixScreen||this._isMirror||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?X.addFailedEvent({key:o,error:r}):X.addSuccessEvent({key:o})}checkOrCreateVideoContext(){let e=this._use2d;if(this._autoSwitchRenderMode&&(this._use2d=!this._hasVirtualBg),this.videoContext)if(this.videoContext.available){let r=!this.videoContext.hasAlpha&&this.needAlpha;if(this._autoSwitchRenderMode&&e===this._hasVirtualBg)this.clear();else if(r)if(this._use2d)this.clear();else return!0;else return!0}else{if(this._glVideoContext=new gt({frameRate:15,logger:this.log,name:"m"}),this.initializeGlVideoContext(),this._glVideoContext.available)return this.videoContext=this._glVideoContext,this.videoContext.available;this.log.warn("webgl is still not available"),this.clear(),this._use2d=!0}return this.videoContext=this._use2d?this.get2dVideoContext():this.getGlVideoContext(),this.videoContext.available}get smallTrack(){var e;return(e=this.smallDestination)==null?void 0:e.videoTrack}get hasSmall(){return!!this.smallTrack}get initialTrack(){var e;return(e=this.cameraTrack)==null?void 0:e.mediaTrack}initVirtualBackground(e){return this._selfieSegmentation=e,this._selfieSegmentation.changeModel()}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,settings:a,player:d}=o;s?(this.smallVideoContext.available||(this.smallVideoContext.create({alpha:!1}),this.smallDestination=new iu(this.smallVideoContext,s,this.log)),this.smallVideoContext.frameRate=s.frameRate,this.smallDestination.resolution=s,e?(this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=e:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(e),this.smallImageSource.connect(this.smallDestination))):(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource?this.smallTrackSource.replaceTrack(this.initialTrack):(this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource"),this.smallTrackSource.width=a.width,this.smallTrackSource.height=a.height,this.smallTrackSource.connect(this.smallDestination)))):this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource),Pi&&d.setCanvas(e);let h=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),h=this.arTrack),this._selfieSegmentation&&e&&!this._use2d&&(this._selfieSegmentation._glName||this._selfieSegmentation.setCanvas(e)),this.log.info(`set main output ${h?h.label:"no output track"}`),o.setOutputMediaStreamTrack(h)}catch(o){this.log.error("set main output failed",o)}}update(){return A(this,null,function*(){var o,s;if(!this.cameraTrack||!this.cameraTrack.mediaTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:e,profile:r}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams?(this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log})),Yt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Ti?(this.cameraNode.close(),delete this.cameraNode):this.cameraNode.image=this.initialTrack.canvas),this.cameraNode||(this.cameraNode=this.videoContext.createVideoImageSource(this.initialTrack.canvas,{name:"cameraCanvasSource",logger:this.log}))):(this.cameraNode&&(this.cameraNode instanceof Ti?this.cameraNode.replaceTrack(this.initialTrack):(this.cameraNode.close(),delete this.cameraNode)),this.cameraNode||(this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraTrackSource"))):this.cameraNode?this.cameraNode.replaceTrack(this.initialTrack):this.cameraNode=this.videoContext.createVideoTrackSource(this.initialTrack,"cameraNodeSource"),this.cameraNode.resize(e.width,e.height)):(this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():this.destination=new ru(this.videoContext,{name:"mainDestination",logger:this.log}),this.cameraNode=new Du(this.videoContext,{input:this.cameraTrack.mediaTrack,mirror:this._isMirror,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,selfieSegmentation:this._selfieSegmentation,Wasm:this.Wasm}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute()),this.videoContext.frameRate=r.frameRate,this._use2d){let a=this.cameraNode;a.disconnect(),this._isMirror&&(this.mirrorNode||(this.mirrorNode=new vu(this.videoContext,this.log)),a=a.connect(this.mirrorNode),a.disconnect(),this.log.info("start mirror")),this.mixNode&&this.mixNode.close(),delete this.mixNode,(this._isMixScreen||this._hasWaterMark)&&(this.mixNode=new Cu(this.videoContext,this.log),a.connect(this.mixNode,{zIndex:1}),this._hasWaterMark&&!this.waterMarkNode&&this._waterMarkOption&&(this.waterMarkNode=this.videoContext.createVideoImageSource(this._waterMarkOption.image,{autoResize:!1,logger:this.log}),this.waterMarkNode.resize(this._waterMarkOption.width,this._waterMarkOption.height),this.waterMarkNode.x=this._waterMarkOption.x,this.waterMarkNode.y=this._waterMarkOption.y),(o=this.waterMarkNode)==null||o.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&!this.screenNode&&(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource")),(s=this.screenNode)==null||s.connect(this.mixNode,{zIndex:0}),a=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)),a.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext._canvas)})}changeInput(e){var r,o,s,a;if(e instanceof $i)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof Ir)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof Gi){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let d=e.mediaTrack;return e.setOutputMediaStreamTrack(d)}this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof $i?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof Ir?(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof Gi&&e.source&&e.source.context.destroy()}setCameraTrack(e){return A(this,null,function*(){this.cameraTrack=e,this.update()})}setScreenTrack(e){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)}getWatermarkImage(e,r){return A(this,null,function*(){let o=document.createElement("canvas");r&&e&&(o.height=r,o.width=e);let s=o.getContext("2d");if(!s)throw new ue({code:Y.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((a,d)=>a.zIndex-d.zIndex),this.watermarkImageList.forEach(({image:a,x:d,y:h,width:m,height:T})=>{s.drawImage(a,d,h,m,T)}),ps(o.toDataURL())})}pushWaterMarkImageList(e){let{type:r}=e;this.watermarkImageList.some(s=>s.imageUrl===e.imageUrl&&s.height===e.height&&s.width===e.width&&s.x===e.x&&s.y===e.y&&s.type===e.type&&s.zIndex===e.zIndex)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return A(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return A(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return A(this,null,function*(){var I,v;let r;try{r=yield ps((e==null?void 0:e.imageElement)||e.imageUrl)}catch(N){throw new ue({code:Y.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:a=r.width,height:d=r.height,type:h="watermark",zIndex:m=2}=e;this.watermarkImageList.some(N=>N.type===h)?(this.watermarkImageList=this.watermarkImageList.filter(N=>N.type!==h),this.pushWaterMarkImageList({x:o,y:s,width:a,height:d,image:r,zIndex:m,type:h,imageUrl:e.imageUrl}),r=yield this.getWatermarkImage((I=this.cameraTrack)==null?void 0:I.settings.width,(v=this.cameraTrack)==null?void 0:v.settings.height),this._waterMarkOption={x:0,y:0,width:r.width,height:r.height,image:r},this.waterMarkNode?(this.waterMarkNode.x=0,this.waterMarkNode.y=0,this.waterMarkNode.resize(r.width,r.height),this.waterMarkNode.image=r):this.update()):(this.pushWaterMarkImageList({x:o,y:s,width:a,height:d,image:r,zIndex:m,type:h,imageUrl:e.imageUrl}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(N,j)=>N==="imageUrl"?void 0:j))})}deleteWatermark(e="watermark"){return A(this,null,function*(){this.watermarkImageList=this.watermarkImageList.filter(r=>r.type!==e),this.log.info("delete watermark",e,JSON.stringify(this.watermarkImageList,(r,o)=>r==="imageUrl"?void 0:o)),yield this.freshWatermark()})}freshWatermark(){return A(this,null,function*(){var r,o,s;(r=this.waterMarkNode)==null||r.close(),delete this.waterMarkNode,delete this._waterMarkOption;let e=yield this.getWatermarkImage((o=this.cameraTrack)==null?void 0:o.settings.width,(s=this.cameraTrack)==null?void 0:s.settings.height);this._waterMarkOption={x:0,y:0,width:e.width,height:e.height,image:e},this.update()})}setVirtualBackground(e){return A(this,null,function*(){if(!e)delete this._virtualBackground,delete this._virtualBackgroundAbortCallback;else{if(e.onAbort&&(this._virtualBackgroundAbortCallback=e.onAbort),this._use2d&&!this._autoSwitchRenderMode)return Promise.reject(new Error("not support virtual background in 2d mode"));this._bgAssetPath=e.assetPath,e.type==="image"?this._virtualBackground=yield ps(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type)}if(this.log.info(`${this._virtualBackground?"start":"stop"} virtual background, ${(e==null?void 0:e.type)||""}, ${this.blurRadius||""}`),yield this.update(),this._virtualBackground&&!this._glVideoContext.available)throw new ue({code:Y.INVALID_OPERATION,message:`webgl context create failed, ${this._glVideoContext.error}`})})}get mixScreen(){return this._isMixScreen}set mixScreen(e){var r;this._isMixScreen=e,this._isMixScreen||((r=this.screenNode)==null||r.close(),delete this.screenNode),this.update()}set mirror(e){var r;this._isMirror!==e&&(this._isMirror=e,this._isMirror||((r=this.mirrorNode)==null||r.close(),delete this.mirrorNode),this.update())}get mirror(){return this._isMirror}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return A(this,null,function*(){var e;(e=this.cameraTrack)!=null&&e.mediaTrack&&(yield this.virtualBackgroundInstance.ar.updateInputTrack(this.cameraTrack.mediaTrack.clone()))})}disableAr(){var e;this.isUsingArTrack=!1,(e=this.arTrack)==null||e.stop(),this.arTrack=void 0,this.update()}createDecodeContext(e){return new wu(e)}clear(){var e;(e=this.videoContext)==null||e.disconnect(),delete this.destination,delete this.cameraNode,delete this.mirrorNode,delete this.screenNode,delete this.waterMarkNode}addEncodeProcessor({processor:e,type:r}){var o;this.encodePipeline.includes(e)||(this.encodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}addDecodeProcessor({processor:e,type:r}){var o;this.decodePipeline.includes(e)||(this.decodePipeline[r]=e,(o=this.room)==null||o.enableInsertableStreams())}removeEncodeProcessor({type:e}){this.encodePipeline[e]=void 0}removeDecodeProcessor({type:e}){this.decodePipeline[e]=void 0}};G([g_(function(e){this.log.error("update failed",e)})],Fa.prototype,"update",1);var XS=0;var Mu=class extends Z{constructor(e){super("room");l(this,"seq",++XS);l(this,"sdkAppId");l(this,"userId");l(this,"userSig");l(this,"privateMapKey");l(this,"latencyLevel");l(this,"tinyId");l(this,"scene");l(this,"roomId");l(this,"useStringRoomId");l(this,"role","anchor");l(this,"joinParams",null);l(this,"localTracks",new Set);l(this,"enableAutoPlayDialog",!0);l(this,"autoReceiveAudio",!0);l(this,"autoReceiveVideo",!0);l(this,"proxy_ws");l(this,"proxy_wt");l(this,"proxy_unified");l(this,"checkSystemResult",{result:!0,detail:{isBrowserSupported:!0,isWebRTCSupported:!0,isWebCodecsSupported:!0,isMediaDevicesSupported:!0,isScreenShareSupported:!0,isSmallStreamSupported:!0,isH264EncodeSupported:!0,isVp8EncodeSupported:!0,isH264DecodeSupported:!0,isVp8DecodeSupported:!0}});l(this,"keyPointManager");l(this,"audioManager");l(this,"videoManager");l(this,"callDurationCalculator");l(this,"badCaseDetector");l(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});l(this,"videoDecodeFallbackType");l(this,"_isUsingCachedSchedule",!1);l(this,"_log",U.createLogger({id:`r${this.seq}`}));l(this,"_joinedTimestamp",0);l(this,"_sdkType");l(this,"heartbeatReport");l(this,"quality");l(this,"enableSEI");l(this,"isDestroyed",!1);this.useStringRoomId=!!e.useStringRoomId,nt(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),nt(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),nt(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new fg({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new _g({room:this}),this.badCaseDetector=new gg({room:this}),this.audioManager=new $d(this),this.videoManager=new Fa(this)}get scriptTransformWorker(){}get isMainStreamPublished(){for(let e of this.localTracks)if(e.mediaType&4)return!0;return!1}get isAuxStreamPublished(){for(let e of this.localTracks)if(e.mediaType&2)return!0;return!1}get hasAuxStream(){for(let e of this.remotePublishedUserMap.values())if(e.muteState.hasAuxiliary)return!0;return this.isAuxStreamPublished}get localMainVideoTrack(){for(let e of this.localTracks)if(e.mediaType&4)return e;return null}get localAuxVideoTrack(){for(let e of this.localTracks)if(e.mediaType&2)return e;return null}getLogger(){return this._log}get isJoining(){return this.state.toString()==="joining"}get isJoined(){return this.state==="joined"}get isLeft(){return this.state==="left"}addTrack(e){return A(this,null,function*(){return this.publish(e)})}removeTrack(e){return A(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return A(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(Ae(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Bt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:a,unifiedProxy:d}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=d,d?(lu([d,d]),co(`https://${d}`)):(s&&co(s),a&&lu(a))}F.once(P.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:Ar.main,sched_back_domain:Ar.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return A(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return A(this,null,function*(){var r;let e={rtt:((r=this.quality)==null?void 0:r.uplinkRTT)||0,downlinksRTT:{}};if(this.quality)for(let o of this.quality.downlinkInfo)e.downlinksRTT[o.userId]=o.rtt;return e})}getRemoteVideoStats(){return A(this,arguments,function*(e="main"){let r={};return this.remotePublishedUserMap.forEach(o=>{let s=e==="auxiliary"?o.remoteAuxiliaryTrack:o.remoteVideoTrack;r[o.userId]=s.stat}),r})}checkDestroy(){if(this.isDestroyed)throw new ue({code:Y.INVALID_OPERATION,message:st({key:ot.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Wt.INVALID_DESTROY),new ue({code:Y.INVALID_OPERATION,message:st({key:ot.INVALID_DESTROY})});this._log.info("destroy room"),this.audioManager.destroy(),this.videoManager.destroy(),this.keyPointManager.destroy(),this.callDurationCalculator.destroy(),this.badCaseDetector.destroy(),this.isDestroyed=!0,F.emit(P.ROOM_DESTROY,{room:this})}schedule(e,r){return A(this,null,function*(){var s,a,d;let o=ge();try{let{isCached:h,result:m,detailCost:T}=yield zp({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:Ke,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=h,this._log.info(`schedule cache:${+h} ${ir(m,{keysToExclude:["username","credential"]})}`),h&&F.once(P.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=J(J({},this.scheduleResult),m),$e((s=m.config)==null?void 0:s.retryCount)&&$l(m.config.retryCount),Ae((a=m.config)==null?void 0:a.loggerDomain)&&co(m.config.loggerDomain),this.videoDecodeFallbackType=((d=m.config)==null?void 0:d.videoDecodeFallback)||this.videoDecodeFallbackType,F.emit(P.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:T}),X.addSuccessEvent({key:521700,cost:ge()-o,split:50})}catch(h){throw X.addFailedEvent({key:521700,error:h}),h}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}};function Ig(i,t=!1){let e=Object.defineProperties(_t(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Oe,i.onmessageerror=Oe,i=o,r()}}});function r(){i.onmessage=o=>{o.data?o.ports.length||t?e.next(o):e.next(o.data):(e.complete(),i.close())},i.onmessageerror=o=>{e.error(o),i.close()}}return r(),e}var ph=class extends ne{constructor(t,e){super(t);let r=new ne(t);r.next=Oe,e(r)}},k1=ce(ph,"takeUntilComplete");var St={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},fh="__INLINE__WORKER__",Sg="__INLINE__WASM__",{debug:yg}=console;St.debug||(console.debug=()=>{});var hh=!fh.startsWith("__"),QS=!Sg.startsWith("__");function Ag(){return`${St.assetsPath?`${St.assetsPath}/`:""}worker.js`}function bg(){let i=Ag();return hh||i.startsWith("http")?URL.createObjectURL(new Blob([hh?atob(fh):`importScripts('${i}')`])):i}function Rg(){let i=Ag();return hh?URL.createObjectURL(new Blob([atob(fh)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var Ba;function Ou(){return A(this,null,function*(){let i=St.assetsPath?`${St.assetsPath}/`:"";return Ba||(QS?Ba=new TextEncoder().encode(atob(Sg)).buffer:Ba=yield fetch(`${i}av_processing.wasm`).then(t=>t.arrayBuffer()),Ba)})}var _h=class{constructor(){l(this,"playPort");l(this,"playPortSent",!1);l(this,"worklet");l(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return A(this,null,function*(){let t=lt("player"),e=Rg();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),U.info("global audio player worklet addModule success",e)}catch(r){throw U.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Ou(),flag:St},numberOfInputs:2}),U.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return A(this,null,function*(){this.playPortSent||(this.playPortSent=!0,t(yield this.init()))})}},Pu=new _h;var gh=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),W1=gh?Promise.resolve().then(function(){return ey}):Promise.resolve().then(function(){return ny});var G1=gh?Promise.resolve().then(function(){return ry}):Promise.resolve().then(function(){return cy});var YS=gh?Promise.resolve().then(function(){return oy}):Promise.resolve().then(function(){return uy});function Eh(...i){return A(this,null,function*(){return(yield YS).default(...i)})}var ZS=i=>A(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),KS=(...t)=>A(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,a)=>{e[a]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(d=>{e[a].accept[d]=s.extensions||[]}):e[a].accept["*/*"]=s.extensions||[]});let r=yield window.showOpenFilePicker({id:i[0].id,startIn:i[0].startIn,types:e,multiple:i[0].multiple||!1,excludeAcceptAllOption:i[0].excludeAcceptAllOption||!1}),o=yield Promise.all(r.map(ZS));return i[0].multiple?o:o[0]}),ey={__proto__:null,default:KS};function xu(i){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var r=e.done;return Promise.resolve(e.value).then(function(o){return{value:o,done:r}})}return xu=function(e){this.s=e,this.n=e.next},xu.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return r===void 0?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return r===void 0?Promise.reject(e):t(r.apply(this.s,arguments))}},new xu(i)}var vg=(o,s,...a)=>A(void 0,[o,s,...a],function*(i,t,e=i.name,r){let d=[],h=[];var m,T=!1,I=!1;try{for(var v,N=function(j){var H,z,Te,xe=2;for(typeof Symbol!="undefined"&&(z=Symbol.asyncIterator,Te=Symbol.iterator);xe--;){if(z&&(H=j[z])!=null)return H.call(j);if(Te&&(H=j[Te])!=null)return new xu(H.call(j));z="@@asyncIterator",Te="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());T=!(v=yield N.next()).done;T=!1){let j=v.value,H=`${e}/${j.name}`;j.kind==="file"?h.push(j.getFile().then(z=>(z.directoryHandle=i,z.handle=j,Object.defineProperty(z,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>H})))):j.kind!=="directory"||!t||r&&r(j)||d.push(vg(j,t,H,r))}}catch(j){I=!0,m=j}finally{try{T&&N.return!=null&&(yield N.return())}finally{if(I)throw m}}return[...(yield Promise.all(d)).flat(),...yield Promise.all(h)]}),ty=(...t)=>A(void 0,[...t],function*(i={}){i.recursive=i.recursive||!1,i.mode=i.mode||"read";let e=yield window.showDirectoryPicker({id:i.id,startIn:i.startIn,mode:i.mode});return vg(e,i.recursive,void 0,i.skipDirectory)}),ry={__proto__:null,default:ty},iy=(s,...a)=>A(void 0,[s,...a],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let d=[],h=null;if(i instanceof Blob&&i.type?h=i.type:i.headers&&i.headers.get("content-type")&&(h=i.headers.get("content-type")),t.forEach((I,v)=>{d[v]={description:I.description||"Files",accept:{}},I.mimeTypes?(v===0&&h&&I.mimeTypes.push(h),I.mimeTypes.map(N=>{d[v].accept[N]=I.extensions||[]})):h?d[v].accept[h]=I.extensions||[]:d[v].accept["*/*"]=I.extensions||[]}),e)try{yield e.getFile()}catch(I){if(e=null,r)throw I}let m=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:d,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(m);let T=yield m.createWritable();return"stream"in i?(yield i.stream().pipeTo(T),m):"body"in i?(yield i.body.pipeTo(T),m):(yield T.write(yield i),yield T.close(),m)}),oy={__proto__:null,default:iy},sy=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),new Promise((e,r)=>{let o=document.createElement("input");o.type="file";let s=[...i.map(m=>m.mimeTypes||[]),...i.map(m=>m.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let a=m=>{typeof d=="function"&&d(),e(m)},d=i[0].legacySetup&&i[0].legacySetup(a,()=>d(r),o),h=()=>{window.removeEventListener("focus",h),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",h)}),o.addEventListener("change",()=>{window.removeEventListener("focus",h),o.remove(),a(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),ny={__proto__:null,default:sy},ay=(...t)=>A(void 0,[...t],function*(i=[{}]){return Array.isArray(i)||(i=[i]),i[0].recursive=i[0].recursive||!1,new Promise((e,r)=>{let o=document.createElement("input");o.type="file",o.webkitdirectory=!0;let s=d=>{typeof a=="function"&&a(),e(d)},a=i[0].legacySetup&&i[0].legacySetup(s,()=>a(r),o);o.addEventListener("change",()=>{let d=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(d=d.filter(h=>h.webkitRelativePath.split("/").every(m=>!i[0].skipDirectory({name:m,kind:"directory"})))):d=d.filter(h=>h.webkitRelativePath.split("/").length===2),s(d)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),cy={__proto__:null,default:ay},dy=(e,...r)=>A(void 0,[e,...r],function*(i,t={}){Array.isArray(t)&&(t=t[0]);let o=document.createElement("a"),s=i;"body"in i&&(s=yield function(h,m){return A(this,null,function*(){let T=h.getReader(),I=new ReadableStream({start:j=>function H(){return A(this,null,function*(){return T.read().then(({done:z,value:Te})=>{if(!z)return j.enqueue(Te),H();j.close()})})}()}),v=new Response(I),N=yield v.blob();return T.releaseLock(),new Blob([N],{type:m})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let a=()=>{typeof d=="function"&&d()},d=t.legacySetup&&t.legacySetup(a,()=>d(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),a()}),o.click(),null}),uy={__proto__:null,default:dy};var Th=class{constructor(t){this.name=t;l(this,"ready");l(this,"worker");l(this,"ports");l(this,"ids",1);l(this,"transactions",new Map);l(this,"log");l(this,"addTransaction",t=>(this.transactions.set(++this.ids,t),this.ids))}postMessage(t,e){var r;(r=this.worker)==null||r.postMessage(t,e)}create(t){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=new Worker(bg(),{name:t});return this.worker=e,this.ready=new Promise((r,o)=>A(this,null,function*(){e.onmessage=({data:{id:s,type:a,payload:d}})=>{var h;if(s)(h=this.transactions.get(s))==null||h(d),this.transactions.delete(s);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",d),o(d);break;case"ready":console.timeEnd(`createWorker_${t}`),r(this);break;case"updateAFSM":if(d.value){let m=typeof d.old=="string"?d.old:`${d.old.action}ing`,T=typeof d.value=="string"?d.value:`${d.value.action}ing`;console.log(Gc(),d.group,d.name,m,"\u{1F449}",T)}break;case"log":console.log(d);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:d}));break}},e.postMessage({wasm:yield Ou(),flag:St},this.ports)}))}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Ih=class{constructor(t,e,r){this.worker=t;l(this,"channel",new MessageChannel);l(this,"ready");this.ready=new Promise((o,s)=>{this.worker.postMessage({id:this.worker.addTransaction(o),payload:e},[this.channel.port2])}).then(o=>(o.err===0&&(this.worker.sessionCount++,this.channel.port1.onmessage=r),o))}postMessage(...t){this.channel.port1.postMessage(...t)}destroy(){--this.worker.sessionCount===0&&this.worker.destroy()}},Sh=class i extends Th{constructor(){super("main");l(this,"switchValue",new Map);l(this,"extendChannel");l(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return A(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Lt(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},Xi=new Sh,qo,ly=-1;function Cg(i){return console.log(i),qo.push(i.slice()),qo.length>1e3&&qo.shift(),i}function Dg(i){return A(this,null,function*(){switch(ly){case 0:this.edpl.willDecodeAudio=Cg;break;case 2:this.edpl.didEncodeAudio=Cg;break}yield Xi.create(),F.emit(P.JOIN_SEND_CMD,{room:this});let t=new Ih(Xi,i,o=>{let s=o.data;if(typeof s=="string")this.onWorkerEvent(s);else if(s==null)this.onWorkerEvent("client-banned",0),t.destroy();else{let{cmd:a,payload:d}=s;this.onWorkerEvent(a,d)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(F.emit(P.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new ue({code:Y.JOIN_ROOM_FAILED,extraCode:Number(e),message:st({key:ot.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:yh},useWt:{set:my},enableDebug:{set(i){console.debug=i?yg:()=>{},Xi.setSwitchValue("enableDebug",i)}},useV2:{set:Ah},dump:{value(){if(qo||(console.warn("dump audio will be activated at next time join room"),qo=[]),!qo.length){console.warn("no audio data to dump,try it later");return}let i=[];return qo.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),Eh(new Blob(i),{fileName:"audio dump hex",extensions:[".hex"]})}},dumpAudio:{value(i="audio",t=2e3){let e=[],r=new Promise(o=>{let s=new MessageChannel;Xi.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:a})=>{console.log(a),e.push(a),e.length>t&&(s.port2.onmessage=null,Xi.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Eh(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:St.useHardDecoder="prefer-hardware";break;case!1:St.useHardDecoder="prefer-software";break;default:St.useHardDecoder="no-preference"}}}});function yh(i){return A(this,null,function*(){Xi.setSwitchValue("useAINS",i)})}function Ah(i){return A(this,null,function*(){Xi.setSwitchValue("useV2",i)})}function my(i){return A(this,null,function*(){Xi.setSwitchValue("useWt",i)})}function Ng(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function wg(i){return A(this,null,function*(){var o;this._log.info("pull video",i);let t=Date.now(),e=0,r=new MessageChannel;this.postMessage({cmd:"pullVideo",payload:{mediaType:i.mediaType,tinyId:i.tinyId}},[r.port1]),(o=i.stat).framesReceived||(o.framesReceived=0),Ie(Ig(r.port2),Ge(Se(i,Z.INIT)),Pe(s=>{let{data:a,packetsReceived:d}=s;i.stat.packetsReceived=d,i.stat.framesReceived++,e++;let h=a[4]&31;if(e<=10){let T=Array.from(a.slice(0,10)).map(I=>I.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${a.length} bytes, Type: ${h}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${T}`)}let m;switch(h){case 5:case 7:m="key";break;default:m="delta";break}i.isAvailable?i.decodeFrame({data:a.buffer,type:m,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var ku=[];function Og(i){var h;let t=_t();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let m=0;m<=ku.length;m++)if(!ku[m]){ku[m]=this,this.index=m;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncodeFrame?new MessageChannel:null;(h=this.session)==null||h.postMessage({cmd:"pushAudio",payload:J({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=m=>{m.data==null||(typeof m.data=="number"?t.next(m.data):o&&o.port1.postMessage(pe(J({},m.data),{data:new Uint8Array(i.encodeFrame({data:m.data.data.buffer,timestamp:m.data.timestamp}).data)})))};let s=new MediaStream,a,d=m=>{let T=s.getAudioTracks()[0];T&&(a.disconnect(),s.removeTrack(T)),s.addTrack(m),this._log.info("push audio track:",m.readyState,m.getSettings().deviceId),a=lt("player").createMediaStreamSource(s),a.connect(Pu.worklet,0,this.index)};Ie(Se(i,"output-media-track-changed"),Ge(Se(i,"capture")),Pe(d,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,a.disconnect(),ku[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ie(t,Ca(m=>i.volume=m),Fo(tu(1e3)),Pe(()=>{i.volume=0})),d(i.outMediaTrack)}var bF=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var bh=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;l(this,"track");l(this,"label");l(this,"insertKeyFrame",!0);l(this,"encoder");l(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){let o=this.recreate(r);e.signal.addEventListener("abort",()=>{o.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(a,d)=>{o.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(a),s++,d.enqueue(a))}}),e)}encode(t){this.encoder.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){let o=this.recreate(r),s=0;t.pipeTo(new WritableStream({write:a=>{o.state==="configured"&&(s<10&&console.log(`capture ${this.label} track frame:`,s,Date.now(),a.timestamp,a.displayWidth,a.displayHeight),(a.displayWidth!==this.config.width||a.displayHeight!==this.config.height)&&(console.log("resize video track frame:",a.displayWidth,a.displayHeight,this.config.width,this.config.height),this.configure({width:a.displayWidth,height:a.displayHeight})),this.tsMap.set(s,Date.now()),this.encode(a),s<10&&console.log(`encode ${this.label} track frame:`,s),s++,a.close())}}),e).catch(a=>{console.warn(a),o.close()})}recreate(t,e=0){let r=0,o=new VideoEncoder({output:s=>{let a=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e===0&&F.emit(P.SEND_FIRST_VIDEO_FRAME,{room:t}),console.log(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,this.track.enabled===!1)return;let d=null;if(this.localTrack.enableEncodeFrame){d=new Uint8Array(s.byteLength),s.copyTo(d);let h=this.localTrack.encodeFrame({data:d.buffer},this.type===3);d=new Uint8Array(h.data)}d?(this.localTrack.stat.bytesSent+=d.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:d,duration:s.duration},timestamp:a},[d.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:a}))},error:s=>{console.warn(s,this.config),setTimeout(()=>this.recreate(t,e+1),100)}});return this.encoder=o,this.configure({}),o}configure(t){var e;(e=this.encoder)==null||e.configure(Object.assign(this.config,t))}close(){this.port.postMessage(null),this.port.close()}};function Lu(i,t){return A(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",avc:{format:"annexb"},hardwareAcceleration:St.useHardEncoder,width:t.profile.width,height:t.profile.height,framerate:t.profile.frameRate,bitrate:t.profile.bitrate*1e3},s=new MessageChannel;this.postMessage({cmd:"pushVideo",payload:t},[s.port1]);let a=new bh(i,t.type,o,s.port2);return s.port2.onmessage=d=>{if(d.data===260)a.insertKeyFrame=!0;else if(!e){let{bitrate:h}=d.data;Ln({configureBr:[d.data.bitrate,h]}),a.configure({bitrate:h})}},this._log.info("start push",r,t),a})}function Pg(i){return A(this,null,function*(){let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera"};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:a}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=a;let d=yield Lu.call(this,i,r);this._log.info("VideoEncoder created",r);let h,m=T=>A(this,null,function*(){if(h==null||h.abort("track changed"),!T)return;h=new AbortController;let{width:I,height:v,displaySurface:N}=T.getSettings();I&&(d.config.width=I),v&&(d.config.height=v);let j=Qt.match(/Chrome\/(\d+)/);(j==null?void 0:j[1])==="114"&&N==="browser"&&delete d.config.hardwareAcceleration,this._log.info("push",e,"track:",T.readyState,T.getSettings());let H=new MediaStreamTrackProcessor({track:T}).readable,z="small"in i&&i.small;z?(this.smallEncoder||(this.smallEncoder=yield Lu.call(this,i,{profile:z,type:3,trackType:o})),this.smallEncoder.track=T,this.smallEncoder.label="small",H=this.smallEncoder.trans(H,h,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),d.track=T,d.label=e,d.start(H,h,this)});return Ie(Se(i,"output-media-track-changed"),Ge(Se(i,"capture")),Pe(m,console.error,()=>{var T;this._log.info("stop push",e,r),h.abort("unpublish"),d.close(),(T=this.smallEncoder)==null||T.close()})),m(i.outMediaTrack)})}var Qi=class Qi extends Z{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;l(this,"enableInBackground",!1);l(this,"interval",400);e.on("joined",()=>{this.emit(Qi.INTERVALCHANGED,this.interval)}),Ie(Se(this,Qi.INTERVALCHANGED),Fr(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ie(U_(s),Wi(()=>[]))),Pe(s=>{s.forEach(a=>{this.room.remotePublishedUserMap.has(a.userId)&&(this.room.remotePublishedUserMap.get(a.userId).remoteAudioTrack.volume=a.volume)}),(!document.hidden||this.enableInBackground)&&this.state==Z.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(Qi.INTERVALCHANGED,this.interval)}stop(){}};l(Qi,"INTERVALCHANGED","intervalChanged"),G([be([Z.INIT,Z.OFF],Z.ON)],Qi.prototype,"start",1),G([be([],Z.OFF)],Qi.prototype,"stop",1);var Uu=Qi;var Yi=class Yi extends Mu{constructor(e){super(e);l(this,"index",0);l(this,"session");l(this,"tinyid");l(this,"roomid");l(this,"openid");l(this,"socketid");l(this,"relayip");l(this,"clientip");l(this,"remotePublishedUserMap",new Map);l(this,"bussinessInfo");l(this,"token");l(this,"audioVolumeEvalution",new Uu(this));l(this,"enableAIVoice",yh);l(this,"AbilityOption",{AVLimit:{EncVideoCodec:"H265",EncVideoWidth:0,EncVideoHeight:0,EncVideoBr:"0",EncVideoFps:0,EncAudioCodec:"opus",EncAudioFS:0,EncAudioCh:0,EncAudioBr:"0"},GeneralLimit:{CPULimit:{uint32_CPU_num:navigator.hardwareConcurrency||0,str_CPU_name:navigator.platform,uint32_CPU_maxfreq:0,model:"",uint32_total_memory:0},uint32_terminal_type:um(),uint32_device_type:0,str_os_verion:lm(),uint32_link_type:1,str_client_version:Ke,uint32_net_type:uo[Pr.getNetworkType()],ua:navigator.userAgent,version:""}});l(this,"joinAbortController",new AbortController);l(this,"smallAbortCtrl");l(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Ah(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return A(this,null,function*(){})}getLogger(){return this._log}postMessage(e,r){this.session&&(e?typeof e=="string"?this.session.postMessage({cmd:e,payload:r}):this.session.postMessage(e,r):this.session.postMessage(null))}sendMessage(e,r){return new Promise((o,s)=>{this.state!="joined"&&s("join room first");let a=new MessageChannel;this.postMessage({cmd:e,payload:r},[a.port1]),a.port2.onmessageerror=s,a.port2.onmessage=d=>{a.port2.close(),o(d.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var a;let s=new MessageChannel;s.port2.onmessage=d=>{d.data?o.next(d.data):o.complete()},s.port2.onmessageerror=d=>o.error(d),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(a=this.session)==null||a.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return A(this,null,function*(){if(e!==this.role)return this._log.info(`switchRole() => switch role to: ${e}`),e=="audience"&&this.unpublish(...this.localTracks),this.sendMessage("switchRole",e=="audience"?21:20).then(r=>{this.role=e})})}join(e,r,o){return A(this,null,function*(){var h,m,T;let s=Pr.getEnv(),a=Ad(),d={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(h=this.proxy_wt)==null?void 0:h.replace("https://",""),proxy_ws:(m=this.proxy_ws)==null?void 0:m.replace("wss://",""),proxy_cloud:(T=this.scheduleResult.iceServers)!=null&&T.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:bs(),browserInfo:Ad(),tinyId:this.tinyId,joinReq:{useStrRoomid:!!this.useStringRoomId,roomid:String(e.roomId||e.strRoomId),sdkAppID:String(e.sdkAppId),userSig:e.userSig,privMapEncrypt:e.privateMapKey||"",privMap:"",pstnBizType:0,role:"user",jsSdkVersion:Ke,browserVersion:a.browserName+a.browserVersion,closeLocalMedia:!0,trtcscene:r==="live"?2:1,trtcrole:e.role,bussinessInfo:e.businessInfo||this.bussinessInfo||"",isAuxUser:0,autoSubscribe:this.autoReceiveAudio&&this.autoReceiveVideo,AbilityOption:this.AbilityOption}};yield Dg.call(this,d),console.log(this),Pu.playAudio(I=>this.postMessage({cmd:"setAudioWorkletPort"},[I])),this.checkDestroy()})}_leave(e=0){return A(this,null,function*(){console.log(this.userId,"leave",e),this.remotePublishedUserMap.forEach(r=>{r.remoteAudioTrack.close(),r.remoteAuxiliaryTrack.close(),r.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((r,o)=>o.unpublish())})}leave(){return A(this,null,function*(){return this._leave()})}getSignalInfo(){return{tinyId:this.tinyid,clientIp:this.clientip,signalIp:"",relayIp:this.relayip,relayInnerIp:"",relayPort:0}}enableAudioVolumeEvaluation(e=2e3,r=!1){e<=0?this.audioVolumeEvalution.stop():this.audioVolumeEvalution.start(e,r)}getLocalAudioStats(){return this.sendMessage("getLocalAudioStats")}getLocalVideoStats(){return this.sendMessage("getLocalVideoStats")}afterJoin(){return A(this,null,function*(){let e=Ge(Se(this,"left"));Ie(r=>A(this,null,function*(){let o=new MessageChannel;o.port2.onmessage=s=>{s.data?r.next({data:s.data,port:o.port2}):r.complete()},o.port2.onmessageerror=s=>r.error(s),r.defer(()=>{o.port2.postMessage(null),o.port2.close()}),this.postMessage({cmd:"decodeAudio",payload:!!this.audioManager.decodePipeline[0]},[o.port1])}),e,Pe(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.buffer}});o.postMessage(new Uint8Array(s.data),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case P.RECEIVED_PUBLISHED_USER_LIST:F.emit(e,J({room:this},r));return;case"1":if(r.userId===this.userId)return;this.emit("peer-join",r);return;case"2":this.emit("peer-leave",r);return;case"3":let o=new bu(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let I=r,v=this.remotePublishedUserMap.get(I);v&&(v.remoteVideoTrack.close(),v.remoteAuxiliaryTrack.close(),v.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(I),this.emit("remote-unpublished",v))}return;case"banned":switch(this._leave(r),r){case 8:this.emit("banned",{reason:"kick",message:""});break;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});case 7:case 5:this.emit("banned",{reason:"room_disband",message:""})}break;case"6":{let{prevMuteState:I,muteState:v,flag:N}=r,j=this.remotePublishedUserMap.get(v.userId);if(!j){this.emit("remote-publish-state-changed",r);return}j.flag=N}F.emit(P.REMOTE_PUBLISH_STATE_CHANGED,J({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"network-quality":this.quality=J({},r);let{uplinkLoss:s,uplinkRTT:a,uplinkInfo:d,downlinkInfo:h,msg_down_stream_info:m}=r,T={str_sdk_version:Ke,uint64_datetime:Date.now(),msg_user_info:{str_identifier:this.userId,uint64_tinyid:this.tinyid},msg_device_info:{uint32_terminal_type:15,str_device_name:navigator.platform,str_os_version:"",uint32_net_type:uo[kn()]},msg_event_msg:V_(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:d,msg_down_stream_info:m};F.emit(P.HEARTBEAT_REPORT,{room:this,report:T}),this.emit("heartbeat-report",T),F.emit(P.NETWORK_QUALITY,{room:this,uplink:{rtt:a,loss:s},downlinks:h}),delete r.downlinkInfo;break;case"signal-connection-state-changed":F.emit(P.SIGNAL_CONNECTION_STATE_CHANGED,J({room:this},r));return}this.emit(e,r)}sendStartPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("publishCdn",e)}sendStopPublishCDN(e,r){return e.roomid=this.roomId,e.sdkAppID=String(this.sdkAppId),e.socketid=this.socketid,r&&(e.request_time=e.pushRequestTime),this.sendMessage("stopPublishCdn",e)}sendStartMixTranscode(e){return this.sendMessage("startMcuMix",e)}sendStopMixTranscode(e){return this.sendMessage("stopMcuMix",e)}publish(...e){return A(this,null,function*(){let r=e.reduce((d,h)=>h.mediaType|d,0),o=this.sendMessage("publish",r).then(d=>d.err!==0?Promise.reject(d.err):d),s=0,a=d=>A(this,null,function*(){switch(yield o,d.muted&&(s|=d.mediaType),vt(d,d).add("mute",()=>{this.postMessage("mute",{mediaType:d.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:d.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),d.mediaType){case 1:Og.call(this,d);break;default:yield Pg.call(this,d)}});yield Promise.all(e.map(a)),s&&this.postMessage("mute",{mediaType:s,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(...e){return A(this,null,function*(){e.forEach(at)})}subscribe(...e){return A(this,null,function*(){let r=e.reduce((I,v)=>v.mediaType|I,0),{userId:o,tinyId:s,streamType:a}=e[0],d=this.remotePublishedUserMap.get(o),h=J({},d.subscribeState),m=Object.assign(new oa,h);m.mediaType|=r,F.emit(P.SUBSCRIBE_START,{room:this,streamType:a,remotePublishedUser:d,subscribeState:m});let T=yield this.sendMessage("subscribe",{mediaType:m.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(I=>m.mediaType&I).map(I=>({mediaType:I,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",T),yield Promise.all(e.filter(I=>!I.isSubscribed).map(I=>{switch(I.mediaType){case 1:return Ng.call(this,I);default:return wg.call(this,I)}})),F.emit(P.SUBSCRIBE_SUCCESS,{room:this,streamType:a,remotePublishedUser:d})})}unsubscribe(...e){return A(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType,o.unsubscribe();if(e.length){let{userId:o,streamType:s,tinyId:a}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:a,userId:o}),F.emit(P.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return A(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Lu.call(this,o,{profile:o.small,type:3,trackType:"camera"});let s=new MediaStreamTrackProcessor({track:this.videoManager.smallTrack}).readable;this.smallEncoder.track=this.videoManager.smallTrack,this.smallEncoder.label="small",this.smallAbortCtrl=new AbortController,this.smallEncoder.start(s,this.smallAbortCtrl,this),this._log.info("push small")}}else(r=this.smallAbortCtrl)==null||r.abort("stop"),this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder)})}changeType(e,r){let o=this.remotePublishedUserMap.get(r.userId),s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let a={srctinyid:r.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(d=>s&d).map(d=>({mediaType:d,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=a.mediaType,this.postMessage("changetype",a)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};G([Bi(Yi.prototype.afterJoin),be(["left",Z.INIT],"joined"),ug()],Yi.prototype,"join",1),G([be("joined","left",{ignoreError:!0}),lg()],Yi.prototype,"_leave",1),G([Vd((...e)=>0),mg()],Yi.prototype,"publish",1),G([Vd((...e)=>0),pg()],Yi.prototype,"unpublish",1),G([Vd((...e)=>e[0].userId),hg()],Yi.prototype,"subscribe",1);var Vu=Yi;Js.frameWorkType=37;Js.create=function(i){let t=Js._create.call(this,Vu,i);return t._use(wa,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(St.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",Ke,"created",St),t};Object.assign(Js.prototype,{_setCurrentSpeaker(i){let t=lt("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return A(this,null,function*(){return this.startPlugin(wa.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.420028"},fallback:"wasm"}),new Promise((e,r)=>{Ie(Se(i,"decode-downgrade-state-changed"),gi(o=>o.state==="STARTED"),Sr(1),Bp(1e4),Ge(Se(i,Z.INIT)),Pe(e,r))})})}});var JB=Js;export{JB as default};