trtc-sdk-v5 5.14.1-wasm.1 → 5.14.1-wasm.2
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/assets/debug-dialog.js +1 -1
- package/package.json +1 -1
- package/plugins/cdn-streaming/package.json +1 -1
- package/plugins/chorus/package.json +1 -1
- package/plugins/cross-room/package.json +1 -1
- package/plugins/custom-encryption/package.json +1 -1
- package/plugins/device-detector/package.json +1 -1
- package/plugins/small-stream-auto-switcher/package.json +1 -1
- package/plugins/video-decoder/package.json +1 -1
- package/plugins/video-effect/basic-beauty/package.json +1 -1
- package/plugins/video-effect/beauty/package.json +1 -1
- package/plugins/video-effect/video-mixer/package.json +1 -1
- package/plugins/video-effect/virtual-background/package.json +1 -1
- package/plugins/video-effect/watermark/package.json +1 -1
- package/plugins/voice-changer/package.json +1 -1
- package/trtc.esm.js +101 -64
- package/trtc.js +17 -1
package/trtc.esm.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
var QT=Object.create;var ua=Object.defineProperty,YT=Object.defineProperties,Lf=Object.getOwnPropertyDescriptor,ZT=Object.getOwnPropertyDescriptors,KT=Object.getOwnPropertyNames,ud=Object.getOwnPropertySymbols,kf=Object.getPrototypeOf,rm=Object.prototype.hasOwnProperty,Uf=Object.prototype.propertyIsEnumerable,eI=Reflect.get;var ri=Math.pow,tm=(i,t,e)=>t in i?ua(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Y=(i,t)=>{for(var e in t||(t={}))rm.call(t,e)&&tm(i,e,t[e]);if(ud)for(var e of ud(t))Uf.call(t,e)&&tm(i,e,t[e]);return i},_e=(i,t)=>YT(i,ZT(t));var Vf=(i,t)=>{var e={};for(var r in i)rm.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&ud)for(var r of ud(i))t.indexOf(r)<0&&Uf.call(i,r)&&(e[r]=i[r]);return e};var la=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Ai=(i,t)=>{for(var e in t)ua(i,e,{get:t[e],enumerable:!0})},tI=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of KT(t))!rm.call(i,o)&&o!==e&&ua(i,o,{get:()=>t[o],enumerable:!(r=Lf(t,o))||r.enumerable});return i};var bi=(i,t,e)=>(e=i!=null?QT(kf(i)):{},tI(t||!i||!i.__esModule?ua(e,"default",{value:i,enumerable:!0}):e,i));var Z=(i,t,e,r)=>{for(var o=r>1?void 0:r?Lf(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&ua(t,e,o),o};var m=(i,t,e)=>tm(i,typeof t!="symbol"?t+"":t,e);var Ut=(i,t,e)=>eI(kf(i),e,t);var A=(i,t,e)=>new Promise((r,o)=>{var s=d=>{try{a(e.next(d))}catch(l){o(l)}},n=d=>{try{a(e.throw(d))}catch(l){o(l)}},a=d=>d.done?r(d.value):Promise.resolve(d.value).then(s,n);a((e=e.apply(i,t)).next())});var ki=la((gC,jm)=>{"use strict";var gS=Object.prototype.hasOwnProperty,Zt="~";function Ua(){}Object.create&&(Ua.prototype=Object.create(null),new Ua().__proto__||(Zt=!1));function ES(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function vg(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new ES(e,r||i,o),n=Zt?Zt+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function eu(i,t){--i._eventsCount===0?i._events=new Ua:delete i._events[t]}function Qt(){this._events=new Ua,this._eventsCount=0}Qt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)gS.call(e,r)&&t.push(Zt?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Qt.prototype.listeners=function(t){var e=Zt?Zt+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Qt.prototype.listenerCount=function(t){var e=Zt?Zt+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Qt.prototype.emit=function(t,e,r,o,s,n){var a=Zt?Zt+t:t;if(!this._events[a])return!1;var d=this._events[a],l=arguments.length,p,f;if(d.fn){switch(d.once&&this.removeListener(t,d.fn,void 0,!0),l){case 1:return d.fn.call(d.context),!0;case 2:return d.fn.call(d.context,e),!0;case 3:return d.fn.call(d.context,e,r),!0;case 4:return d.fn.call(d.context,e,r,o),!0;case 5:return d.fn.call(d.context,e,r,o,s),!0;case 6:return d.fn.call(d.context,e,r,o,s,n),!0}for(f=1,p=new Array(l-1);f<l;f++)p[f-1]=arguments[f];d.fn.apply(d.context,p)}else{var g=d.length,y;for(f=0;f<g;f++)switch(d[f].once&&this.removeListener(t,d[f].fn,void 0,!0),l){case 1:d[f].fn.call(d[f].context);break;case 2:d[f].fn.call(d[f].context,e);break;case 3:d[f].fn.call(d[f].context,e,r);break;case 4:d[f].fn.call(d[f].context,e,r,o);break;default:if(!p)for(y=1,p=new Array(l-1);y<l;y++)p[y-1]=arguments[y];d[f].fn.apply(d[f].context,p)}}return!0};Qt.prototype.on=function(t,e,r){return vg(this,t,e,r,!1)};Qt.prototype.once=function(t,e,r){return vg(this,t,e,r,!0)};Qt.prototype.removeListener=function(t,e,r,o){var s=Zt?Zt+t:t;if(!this._events[s])return this;if(!e)return eu(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&eu(this,s);else{for(var a=0,d=[],l=n.length;a<l;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&d.push(n[a]);d.length?this._events[s]=d.length===1?d[0]:d:eu(this,s)}return this};Qt.prototype.removeAllListeners=function(t){var e;return t?(e=Zt?Zt+t:t,this._events[e]&&eu(this,e)):(this._events=new Ua,this._eventsCount=0),this};Qt.prototype.off=Qt.prototype.removeListener;Qt.prototype.addListener=Qt.prototype.on;Qt.prefixed=Zt;Qt.EventEmitter=Qt;typeof jm!="undefined"&&(jm.exports=Qt)});var cu=la((KC,Fg)=>{"use strict";var Vg=Fg.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(Vg).forEach(function(i){var t=Vg[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var Hg=la($i=>{"use strict";var Cn=function(i){return String(Number(i))===i?Number(i):i},RS=function(i,t,e,r){if(r&&!e)t[r]=Cn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=Cn(i[o+1]))},vS=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;RS(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},Bg=cu(),CS=RegExp.prototype.test.bind(/^([a-z])=(.*)/);$i.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(CS).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var a=0;a<(Bg[s]||[]).length;a+=1){var d=Bg[s][a];if(d.reg.test(n))return vS(d,r,n)}}),t.media=e,t};var $g=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=Cn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};$i.parseParams=function(i){return i.split(/;\s?/).reduce($g,{})};$i.parseFmtpConfig=$i.parseParams;$i.parsePayloads=function(i){return i.toString().split(" ").map(Number)};$i.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(Cn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};$i.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce($g,{})})};$i.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=Cn(e):(r=Cn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var Gg=la((tN,Wg)=>{"use strict";var ch=cu(),NS=/%[sdv%]/g,DS=function(i){var t=1,e=arguments,r=e.length;return i.replace(NS,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""}})},qa=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 n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return DS.apply(null,o)},wS=["v","o","s","i","u","e","p","c","b","t","r","z","a"],OS=["i","c","b","a"];Wg.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||wS,r=t.innerOrder||OS,o=[];return e.forEach(function(s){ch[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(qa(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(qa(s,n,a))})})}),i.media.forEach(function(s){o.push(qa("m",ch.m[0],s)),r.forEach(function(n){ch[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(qa(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(d){o.push(qa(n,a,d))})})})}),o.join(`\r
|
|
1
|
+
var eS=Object.create;var Da=Object.defineProperty,tS=Object.defineProperties,bg=Object.getOwnPropertyDescriptor,rS=Object.getOwnPropertyDescriptors,iS=Object.getOwnPropertyNames,xd=Object.getOwnPropertySymbols,Ag=Object.getPrototypeOf,Lh=Object.prototype.hasOwnProperty,vg=Object.prototype.propertyIsEnumerable,oS=Reflect.get;var ki=Math.pow,kh=(i,t,e)=>t in i?Da(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,be=(i,t)=>{for(var e in t||(t={}))Lh.call(t,e)&&kh(i,e,t[e]);if(xd)for(var e of xd(t))vg.call(t,e)&&kh(i,e,t[e]);return i},qe=(i,t)=>tS(i,rS(t));var Oa=(i=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(i,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):i)(function(i){if(typeof require!="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+i+'" is not supported')});var Rg=(i,t)=>{var e={};for(var r in i)Lh.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&xd)for(var r of xd(i))t.indexOf(r)<0&&vg.call(i,r)&&(e[r]=i[r]);return e};var vn=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),eo=(i,t)=>{for(var e in t)Da(i,e,{get:t[e],enumerable:!0})},sS=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of iS(t))!Lh.call(i,o)&&o!==e&&Da(i,o,{get:()=>t[o],enumerable:!(r=bg(t,o))||r.enumerable});return i};var Li=(i,t,e)=>(e=i!=null?eS(Ag(i)):{},sS(t||!i||!i.__esModule?Da(e,"default",{value:i,enumerable:!0}):e,i));var Ie=(i,t,e,r)=>{for(var o=r>1?void 0:r?bg(t,e):t,s=i.length-1,n;s>=0;s--)(n=i[s])&&(o=(r?n(t,e,o):n(o))||o);return r&&o&&Da(t,e,o),o};var p=(i,t,e)=>kh(i,typeof t!="symbol"?t+"":t,e);var Er=(i,t,e)=>oS(Ag(i),e,t);var D=(i,t,e)=>new Promise((r,o)=>{var s=c=>{try{a(e.next(c))}catch(d){o(d)}},n=c=>{try{a(e.throw(c))}catch(d){o(d)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(s,n);a((e=e.apply(i,t)).next())});var mo=vn((yC,Am)=>{"use strict";var yI=Object.prototype.hasOwnProperty,Lr="~";function ic(){}Object.create&&(ic.prototype=Object.create(null),new ic().__proto__||(Lr=!1));function SI(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function p_(i,t,e,r,o){if(typeof e!="function")throw new TypeError("The listener must be a function");var s=new SI(e,r||i,o),n=Lr?Lr+t:t;return i._events[n]?i._events[n].fn?i._events[n]=[i._events[n],s]:i._events[n].push(s):(i._events[n]=s,i._eventsCount++),i}function bu(i,t){--i._eventsCount===0?i._events=new ic:delete i._events[t]}function Dr(){this._events=new ic,this._eventsCount=0}Dr.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)yI.call(e,r)&&t.push(Lr?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Dr.prototype.listeners=function(t){var e=Lr?Lr+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var o=0,s=r.length,n=new Array(s);o<s;o++)n[o]=r[o].fn;return n};Dr.prototype.listenerCount=function(t){var e=Lr?Lr+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Dr.prototype.emit=function(t,e,r,o,s,n){var a=Lr?Lr+t:t;if(!this._events[a])return!1;var c=this._events[a],d=arguments.length,m,l;if(c.fn){switch(c.once&&this.removeListener(t,c.fn,void 0,!0),d){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,e),!0;case 3:return c.fn.call(c.context,e,r),!0;case 4:return c.fn.call(c.context,e,r,o),!0;case 5:return c.fn.call(c.context,e,r,o,s),!0;case 6:return c.fn.call(c.context,e,r,o,s,n),!0}for(l=1,m=new Array(d-1);l<d;l++)m[l-1]=arguments[l];c.fn.apply(c.context,m)}else{var f=c.length,g;for(l=0;l<f;l++)switch(c[l].once&&this.removeListener(t,c[l].fn,void 0,!0),d){case 1:c[l].fn.call(c[l].context);break;case 2:c[l].fn.call(c[l].context,e);break;case 3:c[l].fn.call(c[l].context,e,r);break;case 4:c[l].fn.call(c[l].context,e,r,o);break;default:if(!m)for(g=1,m=new Array(d-1);g<d;g++)m[g-1]=arguments[g];c[l].fn.apply(c[l].context,m)}}return!0};Dr.prototype.on=function(t,e,r){return p_(this,t,e,r,!1)};Dr.prototype.once=function(t,e,r){return p_(this,t,e,r,!0)};Dr.prototype.removeListener=function(t,e,r,o){var s=Lr?Lr+t:t;if(!this._events[s])return this;if(!e)return bu(this,s),this;var n=this._events[s];if(n.fn)n.fn===e&&(!o||n.once)&&(!r||n.context===r)&&bu(this,s);else{for(var a=0,c=[],d=n.length;a<d;a++)(n[a].fn!==e||o&&!n[a].once||r&&n[a].context!==r)&&c.push(n[a]);c.length?this._events[s]=c.length===1?c[0]:c:bu(this,s)}return this};Dr.prototype.removeAllListeners=function(t){var e;return t?(e=Lr?Lr+t:t,this._events[e]&&bu(this,e)):(this._events=new ic,this._eventsCount=0),this};Dr.prototype.off=Dr.prototype.removeListener;Dr.prototype.addListener=Dr.prototype.on;Dr.prefixed=Lr;Dr.EventEmitter=Dr;typeof Am!="undefined"&&(Am.exports=Dr)});var Ou=vn((iw,C_)=>{"use strict";var R_=C_.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(R_).forEach(function(i){var t=R_[i];t.forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})})});var D_=vn(_o=>{"use strict";var Zn=function(i){return String(Number(i))===i?Number(i):i},NI=function(i,t,e,r){if(r&&!e)t[r]=Zn(i[1]);else for(var o=0;o<e.length;o+=1)i[o+1]!=null&&(t[e[o]]=Zn(i[o+1]))},DI=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;NI(e.match(i.reg),o,i.names,i.name),i.push&&t[i.push].push(o)},w_=Ou(),OI=RegExp.prototype.test.bind(/^([a-z])=(.*)/);_o.parse=function(i){var t={},e=[],r=t;return i.split(/(\r\n|\r|\n)/).filter(OI).forEach(function(o){var s=o[0],n=o.slice(2);s==="m"&&(e.push({rtp:[],fmtp:[]}),r=e[e.length-1]);for(var a=0;a<(w_[s]||[]).length;a+=1){var c=w_[s][a];if(c.reg.test(n))return DI(c,r,n)}}),t.media=e,t};var N_=function(i,t){var e=t.split(/=(.+)/,2);return e.length===2?i[e[0]]=Zn(e[1]):e.length===1&&t.length>1&&(i[e[0]]=void 0),i};_o.parseParams=function(i){return i.split(/;\s?/).reduce(N_,{})};_o.parseFmtpConfig=_o.parseParams;_o.parsePayloads=function(i){return i.toString().split(" ").map(Number)};_o.parseRemoteCandidates=function(i){for(var t=[],e=i.split(" ").map(Zn),r=0;r<e.length;r+=3)t.push({component:e[r],ip:e[r+1],port:e[r+2]});return t};_o.parseImageAttributes=function(i){return i.split(" ").map(function(t){return t.substring(1,t.length-1).split(",").reduce(N_,{})})};_o.parseSimulcastStreamList=function(i){return i.split(";").map(function(t){return t.split(",").map(function(e){var r,o=!1;return e[0]!=="~"?r=Zn(e):(r=Zn(e.substring(1,e.length)),o=!0),{scid:r,paused:o}})})}});var M_=vn((sw,O_)=>{"use strict";var Fm=Ou(),MI=/%[sdv%]/g,xI=function(i){var t=1,e=arguments,r=e.length;return i.replace(MI,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""}})},hc=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 n=t.names[s];t.name?o.push(e[t.name][n]):o.push(e[t.names[s]])}else o.push(e[t.name]);return xI.apply(null,o)},kI=["v","o","s","i","u","e","p","c","b","t","r","z","a"],LI=["i","c","b","a"];O_.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||kI,r=t.innerOrder||LI,o=[];return e.forEach(function(s){Fm[s].forEach(function(n){n.name in i&&i[n.name]!=null?o.push(hc(s,n,i)):n.push in i&&i[n.push]!=null&&i[n.push].forEach(function(a){o.push(hc(s,n,a))})})}),i.media.forEach(function(s){o.push(hc("m",Fm.m[0],s)),r.forEach(function(n){Fm[n].forEach(function(a){a.name in s&&s[a.name]!=null?o.push(hc(n,a,s)):a.push in s&&s[a.push]!=null&&s[a.push].forEach(function(c){o.push(hc(n,a,c))})})})}),o.join(`\r
|
|
2
2
|
`)+`\r
|
|
3
|
-
`}});var jg=la(ci=>{"use strict";var _s=Hg(),MS=Gg(),xS=cu();ci.grammar=xS;ci.write=MS;ci.parse=_s.parse;ci.parseParams=_s.parseParams;ci.parseFmtpConfig=_s.parseFmtpConfig;ci.parsePayloads=_s.parsePayloads;ci.parseRemoteCandidates=_s.parseRemoteCandidates;ci.parseImageAttributes=_s.parseImageAttributes;ci.parseSimulcastStreamList=_s.parseSimulcastStreamList});var Ff=(re=>(re[re.INVALID_PARAMETER=4096]="INVALID_PARAMETER",re[re.INVALID_OPERATION=4097]="INVALID_OPERATION",re[re.NOT_SUPPORTED=4098]="NOT_SUPPORTED",re[re.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",re[re.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",re[re.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",re[re.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",re[re.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",re[re.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",re[re.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",re[re.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",re[re.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",re[re.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",re[re.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",re[re.CLIENT_BANNED=16448]="CLIENT_BANNED",re[re.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",re[re.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",re[re.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",re[re.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",re[re.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",re[re.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",re[re.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",re[re.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",re[re.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",re[re.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",re[re.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",re[re.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",re[re.API_CALL_ABORTED=16461]="API_CALL_ABORTED",re[re.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",re[re.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",re[re.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",re[re.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",re[re.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",re[re.UNKNOWN=65535]="UNKNOWN",re))(Ff||{}),q=Ff;var rI=function(i){for(let t in q)if(q[t]===i)return t;return"UNKNOWN"},ma=class extends Error{constructor({name:e="RtcError",message:r,code:o=q.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${rI(o)} 0x${o.toString(16)}>`,d=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(d);m(this,"code");m(this,"extraCode");m(this,"message");m(this,"originMessage");m(this,"name");m(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=d,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},se=ma;var Bf=0;var $f=function(){return Bf},Ri=function(){return Date.now()+Bf},ld=function(){let i=new Date;return i.setTime(Ri()),i.toLocaleString()},Ks=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var si={};Ai(si,{REPORT_TYPE:()=>pn,buildSSOPackage:()=>Di,bytes2ms:()=>eg,calculateScaleResolutionDownNumber:()=>Od,concatArrayBuffers:()=>mg,convertObjectNumberToInt:()=>Aa,copyProperties:()=>Kf,deepClone:()=>ss,deepCloneBasic:()=>Rd,deepMerge:()=>Br,delay:()=>$r,fibonacci:()=>ns,formatedTime:()=>Cd,getConstructorName:()=>dn,getContainerFromElement:()=>dg,getEnv:()=>Xf,getFirst16Bits:()=>pg,getInternalVersion:()=>ag,getLast16Bits:()=>hg,getLoggerUrl:()=>Ni,getMediaStreamTrackInfo:()=>wd,getMuteStateFromFlag:()=>cs,getNetworkType:()=>cn,getNumNetworkType:()=>vd,getReconnectionTimeout:()=>rg,getStringByteLength:()=>ug,getTurnServer:()=>cg,getUint32Version:()=>Nd,getValueType:()=>pt,getViewListFromView:()=>mn,glog:()=>Ia,ipv4ToUint32:()=>ln,isArray:()=>ut,isAudioWorkletSupported:()=>sg,isBoolean:()=>Ye,isConstructor:()=>as,isEmpty:()=>un,isFunction:()=>Xe,isLangChinese:()=>Fr,isMediaStreamTrack:()=>ig,isNumber:()=>Fe,isObject:()=>hr,isOverseaSdkAppId:()=>Rr,isPlainObject:()=>Xt,isPortrait:()=>bm,isPromise:()=>fo,isRemoteTrack:()=>og,isRotate90Or270:()=>pr,isSetSinkIdSupported:()=>ng,isString:()=>Oe,isUndefined:()=>O,loadImage:()=>hn,loadVideo:()=>lg,ms2bytes:()=>tg,ms2samples:()=>Am,normalizeUrl:()=>ds,performanceNow:()=>Te,promiseAny:()=>Sa,samples2ms:()=>ym,setNetworkTypeFromWebRTC:()=>Zf,stringify:()=>br,stringifyIncludeValue:()=>ya,throttlePromise:()=>Dd});var mm={};Ai(mm,{AUDIO_MUTE_BIT:()=>_d,AUDIO_STAT_BIT:()=>rn,AUX_STAT_BIT:()=>ga,AUX_STREAM_MSID:()=>pI,BACKEND_ENV:()=>Ed,BASE_DOC_URL:()=>ir,BASE_HOST:()=>Hf,CAPABILITIES_KEYS:()=>Sd,CLASS_NAME:()=>VI,CLOUD_CONSOLE_URL:()=>nI,CROSS_ROOM_BIT:()=>mI,DATA_FREEZE_TIMING:()=>Id,DOC_BILLING_CN:()=>md,DOC_BILLING_OVERSEA:()=>hd,DOC_URL:()=>aI,DTLS_STATE_UNKNOWN:()=>bI,ENV_NAME:()=>vi,EXCHANGE_SDP_TIMEOUT:()=>wI,IS_WORKER:()=>en,IS_WORKLET:()=>ha,KIBANA_EVENT:()=>Ar,LOCAL_STREAM_PUBLISH_STATE:()=>Gf,LOGGER_CMD_TYPE:()=>po,LOGGER_DOMAIN:()=>sm,LOGGER_DOMAIN_OVERSEA:()=>nm,LOG_LEVEL:()=>Ur,LOG_LEVEL_NAME:()=>BI,MAIN_STREAM_MSID:()=>hI,MAX_RTT:()=>_a,MICROPHONE_COMMUNICATIONS:()=>FI,MICROPHONE_DEFAULT:()=>os,MUTE_ALL_BIT:()=>lI,NAME:()=>M,NETWORK_TYPE:()=>rs,NOT_SUPPORTED_H264:()=>MI,PAUSED_RETRY_COUNT:()=>is,PEERCONNECTION_CONNECTING_TIMEOUT:()=>kI,PEER_CONNECTION_STATE:()=>RI,PEER_LEAVE_REASON:()=>jf,RECOVER_CAPTURE_INTERVAL:()=>on,REMOTE_STREAM_TYPE_AUX:()=>gI,REMOTE_STREAM_TYPE_MAIN:()=>fI,RENDER_FREEZE_TIMING:()=>xI,SCHEDULE_DOMAIN:()=>Ci,SCHEDULE_TIMEOUT:()=>UI,SDP_SEMANTICS_PLAN_B:()=>OI,SDP_SEMANTICS_UNIFIED_PLAN:()=>lm,SECOND_HOST:()=>oI,SIGNAL_PING_PONG_INTERVAL:()=>dI,SIGNAL_PING_TIMEOUT:()=>cI,SIGNAL_RECONNECTION_COUNT:()=>CI,SMALL_STAT_BIT:()=>dm,SPEAKER_DEFAULT:()=>Ea,STORAGE_EXPIRES_TIME:()=>pd,STREAM_TYPE_BIG:()=>PI,STREAM_TYPE_SMALL:()=>LI,SUBSCRIBE_SMALL_RETRY_COUNT:()=>$I,SYNC_USER_LIST_INTERVAL:()=>NI,Scene:()=>ii,THIRD_HOST:()=>sI,TRANSPORT_DIRECTION:()=>uI,TRTC_ERROR_ASSISTANCE:()=>am,TRTC_QUALITY_BAD:()=>SI,TRTC_QUALITY_DISCONNECTED:()=>AI,TRTC_QUALITY_EXCELLENT:()=>_I,TRTC_QUALITY_GOOD:()=>TI,TRTC_QUALITY_POOR:()=>II,TRTC_QUALITY_UNKNOWN:()=>EI,TRTC_QUALITY_VERY_BAD:()=>yI,UPDATE_OFFER_TIMEOUT:()=>DI,VIDEO_MUTE_BIT:()=>Td,VIDEO_STAT_BIT:()=>tn,audioProfileMap:()=>fd,defaultBigVideoProfile:()=>fa,defaultSmallVideoProfile:()=>cm,getRetryCount:()=>vI,getScriptDir:()=>iI,innerVersion:()=>im,loggerProxy:()=>pa,screenProfileMap:()=>gd,setLoggerProxy:()=>ts,setRetryCount:()=>um,setVersion:()=>om,version:()=>ht,videoProfileMap:()=>Vr});var im="4.15.00.1600",ht="5.0.0";function om(i){ht=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));im=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var en=typeof importScripts!="undefined",ha=typeof registerProcessor!="undefined",iI=()=>{let i=en?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},pa="",ts=i=>pa=i,Hf="web.sdk.qcloud.com",oI="web.sdk.tencent.cn",sI="web.sdk.cloud.tencent.cn",nI="https://console.cloud.tencent.com/trtc",ir=`https://${Hf}/trtc/webrtc/doc`,aI=`${ir}/zh-cn/`,md="https://cloud.tencent.com/document/product/647/85386",hd="https://trtc.io/document/56025",sm="https://yun.tim.qq.com",nm="https://apisgp.my-imcloud.com",am="trtc_error_assistance",po={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},vi={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},Ur=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(Ur||{}),cI=18e3,dI=2e3,rs={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},pd=7*24*3600*1e3,fd={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}},Vr={"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}},fa=Vr["480p_2"],cm=Vr["120p_2"],gd={"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}},M={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",RESIZE:"resize",TIME_UPDATE:"timeupdate"},uI={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},Ed={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},ii=(e=>(e.LIVE="live",e.RTC="rtc",e))(ii||{}),tn=1,dm=2,ga=4,rn=8,_d=64,Td=16,lI=112,mI=128,hI="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",pI="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",fI=M.MAIN,gI=M.AUXILIARY,EI=0,_I=1,TI=2,II=3,SI=4,yI=5,AI=6,bI="unknown",RI={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Wf=1/0;function um(i){Wf=i}function vI(){return Wf}var CI=30,Ar={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",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call"},NI=1e4,DI=1e4,wI=1e4,lm="unified-plan",OI="plan-b",MI=1028,Gf=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Gf||{}),Id=500,xI=1e3,PI=M.BIG,LI=M.SMALL,kI=10*1e3,Ci={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"},UI=2e3,VI={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},is=5,os="default",Ea=os,FI="communications",BI=Object.keys(Ur),jf=["normal leave","timeout leave","kick","role change"],$I=10,on=2e3,Sd=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],_a=10*1e3;var HI=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{l(r.next(p))}catch(f){n(f)}}function d(p){try{l(r.throw(p))}catch(f){n(f)}}function l(p){p.done?s(p.value):o(p.value).then(a,d)}l((r=r.apply(i,t||[])).next())})},hm=Symbol(32),pm=Symbol(16),fm=Symbol(8),oi=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(t,e){return e&&this.consume(),this.need=t,this.flush()}read(t){return HI(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,r)=>{var o;this.reject=r,this.resolve=n=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(n)},this.demand(t,!0)||(o=this.pull)===null||o===void 0||o.call(this,t)})})}readU32(){return this.read(hm)}readU16(){return this.read(pm)}readU8(){return this.read(fm)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null,e=this.buffer.subarray(this.consumed),r=0,o=s=>e.length<(r=s);if(typeof this.need=="number"){if(o(this.need))return;t=e.subarray(0,r)}else if(this.need===hm){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===pm){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===fm){if(o(1))return;t=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(o(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,r)),t=this.need}else if(this.g){this.g.throw(new Error("Unsupported type"));return}}else{if(o(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),this.g||this.resolve)this.flush();else return new Promise(e=>this.pull=e)}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,t&255]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,t&255]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){let e=this.buffer.length,r=e+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{let o=new Uint8Array(r);o.set(this.buffer),this.buffer=o}return this.buffer.subarray(e,r)}else return this.buffer=new Uint8Array(t),this.buffer}};oi.U32=hm;oi.U16=pm;oi.U8=fm;var WI=128,GI=127,Lv=~GI,kv=Math.pow(2,31);function gm(i){let t=new oi;for(;i>=128;)t.malloc(1)[0]=i&255|WI,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function yd(i,t=0){let e=new oi,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(gm(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(gm(s.length));let n=e.malloc(s.length);for(let d=0;d<s.length;d++)n[d]=s[d];break;case"object":let a=new oi;if(Array.isArray(i))for(let d=0;d<i.length;d++){let l=yd(i[d],d+1);l&&a.write(l)}else{let d=1;for(let l in i){let p=yd(i[l],d++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(gm(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var Ta=class{constructor(){m(this,"buffer");this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeByte(t){this.buffer.push(t&255)}writeBytes(t){for(let e=0;e<t.length;e++)this.buffer.push(t[e])}};function Em(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=t&255}function Jt(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function _m(i,t){return i[t]}function sn(i,t,e){return new TextDecoder().decode(jI(i,t,e))}function jI(i,t,e){return i.slice(t,t+e)}var Tm=0,Ad=2654435769,bd=16,Sm=4,nn=2,an=7;function qI(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function qf(i,t){let e=new Ta,r=qI(t,i,Tm);Tm=Tm+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new Ta;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(r.reqHead.appId&255);for(let X=4;X<16;X++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let d=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let l=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);let g=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(g.length+2),g.length&&n.writeBytes(g);let y=n.length;n.data[0]=y>>>24&255,n.data[1]=y>>>16&255,n.data[2]=y>>>8&255,n.data[3]=y&255,Oe(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let R=new Uint8Array(n.data),N=null;r.encryption===1?N=new TextEncoder().encode(r.uin):r.encryption===2&&(N=new Uint8Array(16)),N&&(R=zI(R,N)),e.writeBytes(R);let C=new Uint8Array(e.data),P=C.length;return C[0]=P>>>24&255,C[1]=P>>>16&255,C[2]=P>>>8&255,C[3]=P&255,C}function zI(i,t){let e=i.length,o=(e+1+nn+an)%8;o&&(o=8-o);let s=e+1+nn+an+o,n=new Uint8Array(s),a=0,d=new Uint8Array(8),l=new Uint8Array(8),p=new Uint8Array(8),f=0;d[0]=Math.floor(Math.random()*256)&248|o,f=1;for(let y=0;y<o;y++)d[f]=Math.floor(Math.random()*256)&255,f+=1;for(let y=0;y<nn;)if(f<8&&(d[f]=Math.floor(Math.random()*256)&255,f+=1,y+=1),f===8){Im(d,t,l,p,n,a),a+=8,f=0;for(let R=0;R<8;R++)p[R]=n[a-8+R]}let g=0;for(;g<e;)if(f<8&&(d[f]=i[g],f+=1,g+=1),f===8){Im(d,t,l,p,n,a),a+=8,f=0;for(let y=0;y<8;y++)p[y]=n[a-8+y]}for(let y=0;y<an;)if(f<8&&(d[f]=0,f+=1,y+=1),f===8){Im(d,t,l,p,n,a),a+=8,f=0;for(let R=0;R<8;R++)p[R]=n[a-8+R]}return n}function Im(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];JI(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function JI(i,t,e,r){let o=Jt(i,0),s=Jt(i,4),n=[];for(let d=0;d<4;d++)n[d]=Jt(t,d*4);let a=0;for(let d=0;d<bd;d++)a+=Ad,a=a>>>0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o=o>>>0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s=s>>>0;Em(e,o,r),Em(e,s,r+4)}var Xf=function(){return new URLSearchParams(location.search).get("trtc_env")||""},Rr=i=>Number(i)<14e8,Ni=function(i,t){let e;pa?e=pa:e=Rr(i)?nm:sm;let r=Math.floor(Math.random()*ri(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Qf="unknown";function cn(){QI();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?Yf(r,o):Qf}function XI(){F.warn("netType changed",cn())}var zf=!1;function QI(){var i;zf||(zf=!0,(i=navigator.connection)==null||i.addEventListener("typechange",XI))}function Yf(i,t){if(rs[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function Zf(i){Qf=Yf(i)}function vd(){return rs[cn()]}function Kf(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 eg(i,t=48e3){return ym(i/4,t)}function ym(i,t=48e3){return i*1e3/t}function tg(i,t=48e3){return Am(i,t)*4}function Am(i,t=48e3){return i*t/1e3}var Ia=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},Fr=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Xt=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 ns(i,t=1,e=1){return i<=1?e:ns(i-1,e,t+e)}function rg(i){return i>8?30*1e3:ns(i)*1e3}function pt(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Xe=i=>typeof i=="function",O=i=>typeof i=="undefined",Oe=i=>typeof i=="string",Fe=i=>typeof i=="number",Ye=i=>typeof i=="boolean",hr=i=>pt(i)==="object",ut=i=>pt(i)==="array",ig=i=>pt(i)==="MediaStreamTrack".toLowerCase(),og=i=>i.isRemote,fo=i=>pt(i)==="promise",as=i=>Xe(i)&&i.prototype.constructor===i,dn=i=>as(i)?i.prototype.constructor.name:"",sg=typeof AudioWorkletNode!="undefined",ng=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function Sa(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 Te(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Jf=i=>+i<10?`0${i}`:i,ag=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Jf(e[1])+Jf(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},YI=Object.prototype.hasOwnProperty,{toString:Xv}=Object.prototype;function un(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(Xt(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(YI.call(i,t))return!1;return!0}}return!1}function cs(i,t){return{userId:t,hasAudio:!!(i&rn),hasVideo:!!(i&tn),hasAuxiliary:!!(i&ga),hasSmall:!!(i&dm),audioMuted:!!(i&_d),videoMuted:!!(i&Td),audioAvailable:!!(i&rn)&&!(i&_d),videoAvailable:!!(i&tn)&&!(i&Td)}}function cg(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!O(i.username)&&!O(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",O(i.credentialType)||(t.credentialType=i.credentialType)),t}function ln(i,t=!0){if(!Oe(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 Br=function(i,t,e,r){if(!(hr(i)&&hr(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,d=s.length;a<d;a++)if(n=s[a],!(O(t[n])||e&&e.includes(n)))if(hr(i[n])&&hr(t[n]))o+=Br(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=ss(t[n]),o+=1)}return o};function ss(i){if(ut(i)){let t=[];return i.forEach((e,r)=>{t[r]=ss(e)}),t}if(hr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=ss(i[e])}),t}return i}var mn=i=>{let t=[];if(ut(i))t=[...i];else if(Oe(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},dg=i=>Oe(i)?document.getElementById(i):i,ZI=i=>{let t=d=>d<10?`0${d}`:`${d}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),a=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${a}`},Cd=()=>ZI(new Date);function br(i,{keysToInclude:t,keysToExclude:e}){try{if(ut(i))return`[${i.map(n=>br(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Xt(i)||!ut(t)&&!ut(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Xt(i[n])||ut(i[n])?JSON.parse(br(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function ya(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),br(i,{keysToInclude:e})}function ug(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var bm=()=>{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},hn=i=>A(void 0,null,function*(){return new Promise((t,e)=>{let r;if(Oe(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 se({code:q.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Nd=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Aa=i=>(Object.keys(i).forEach(t=>{Fe(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Xt(i[t])||ut(i[t]))&&Aa(i[t])}),i);function $r(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function Dd(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function ds(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function wd(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:a}=(t=i.getSettings)==null?void 0:t.call(i),d=i.kind===M.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,l=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${d}${l}`}catch(e){return""}}function Od(i,t){return i.width*i.height===t.width*t.height?1:bm()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function pr(i){return i===90||i===270}function lg(i){return A(this,null,function*(){return new Promise((t,e)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=i,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{e(r.error)}})})}function Rd(i,t=new WeakMap){if(typeof i!="object"||i===null)return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((r,o)=>{e[o]=Rd(r,t)}),e}if(Object.prototype.toString.call(i)==="[object Object]"){let e={};return t.set(i,e),Reflect.ownKeys(i).forEach(r=>{e[r]=Rd(i[r],t)}),e}return i}var pn=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))(pn||{});function KI(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return O(r)||(o=_e(Y({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function Di(i,t,e,r){try{let o=KI(i,t,e,r),s=yd(o);return qf(s,e)}catch(o){return JSON.stringify(i)}}function mg(i,t){let e=new Uint8Array(i.byteLength+t.byteLength);return e.set(new Uint8Array(i),0),e.set(new Uint8Array(t),i.byteLength),e.buffer}function hg(i){return(i&65535)>>>0}function pg(i){return(i&4294901760)>>>0}function fg(i){let t=eS(i);return t==null?void 0:t.busiBuff}function eS(i){try{let t={},e=0;t.totalLength=Jt(i,e),e+=4,t.version=Jt(i,e),e+=4,t.encryption=_m(i,e),e+=1,t.uinType=_m(i,e),e+=1,t.uinLength=Jt(i,e),e+=4,t.uin=t.uinLength>4?sn(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=tS(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=Jt(i,e),e+=4,t.seqNo=Jt(i,e),e+=4,t.retCode=Jt(i,e),e+=4,t.retStrLength=Jt(i,e),e+=4,t.retStr=t.retStrLength?sn(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=Jt(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?sn(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=Jt(i,e),e+=4,t.cookie=t.cookieLength?sn(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=Jt(i,e),e+=4,t.busiBuffLength=Jt(i,e),e+=4,t.busiBuff=t.busiBuffLength?sn(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function gg(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e=e>>>0,r=r>>>0;let o=Ad*bd>>>0;for(let s=0;s<bd;s++)r-=(e<<Sm)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<Sm)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=Ad,o=o>>>0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255])}function tS(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=gg(o,t),n=s[0]&7,a=i.length-1-n-nn-an,d=new Uint8Array(a),l=0,p=r,f=i.slice(0,8);e=8;let g=1;g+=n;for(let R=1;R<=nn;)if(g<8)g++,R++;else if(g===8){let N=Rm(i,e,p,f,s,t);p=N.ivPreCrypt,f=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,g=0}let y=a;for(;y>0;)if(g<8)d[l++]=s[g]^p[g],g++,y--;else if(g===8){let R=Rm(i,e,p,f,s,t);p=R.ivPreCrypt,f=R.ivCurCrypt,s=R.debiBuf,e=R.bufPos,g=0}for(let R=1;R<=an;)if(g<8)s[g]^p[g],g++,R++;else if(g===8){if(e>=i.length)break;let N=Rm(i,e,p,f,s,t);if(!N.success)break;p=N.ivPreCrypt,f=N.ivCurCrypt,s=N.debiBuf,e=N.bufPos,g=0}return d}function Rm(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),d=new Uint8Array(8);for(let p=0;p<8;p++)d[p]=o[p]^a[p];let l=gg(d,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:l,bufPos:t+8}}var Eg=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function wi({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(d=>d.clone().json().then(l=>({data:l}),()=>d.arrayBuffer().then(l=>({data:fg(new Uint8Array(l))||(Eg?Eg.decode(l):l)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);s({data:d})}catch(d){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}function vm(i){return A(this,null,function*(){let t=Te(),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")),a=yield(yield(yield new Response(o)).blob()).arrayBuffer();return F.debug(`compressJSON ${e.length} -> ${a.byteLength} ${Te()-t}ms`),a}catch(r){return e}})}var rS=Object.prototype.hasOwnProperty;var go=i=>typeof i=="function",us=i=>typeof i=="undefined";var _g=i=>typeof i=="boolean";var Cm=i=>i.isRemote;var Nm=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 Tg(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(Nm(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(rS.call(i,t))return!1;return!0}}return!1}var iS=0,oS=1,Ig=2;function sS({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=t,p=0,f=-1,g=iS,y=(R,N)=>A(this,null,function*(){let C=n||this;try{let P=yield i.apply(C,a);p>0&&s&&s.call(this,p),p=0,R(P)}catch(P){let X=()=>{clearTimeout(f),p=0,g=Ig,N(P)},H=()=>{g!==Ig&&p<(go(d)?d():d)?(p++,g=oS,go(r)&&r.call(this,p,X),f=window.setTimeout(()=>{f=-1,y(R,N)},go(l)?l(p):l)):(X(),go(o)&&o.call(this,P))};go(e)?e.call(this,{error:P,retry:H,reject:N,retryFuncArgs:a,retriedCount:p}):H()}});return new Promise(y)}}var Eo=sS;var _o=class i{constructor(t){m(this,"_parentPath");m(this,"userId");m(this,"remoteUserId");m(this,"id");m(this,"sdkAppId");m(this,"type");m(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=_g(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new i({id:t.id,userId:us(t.userId)?this.userId:t.userId,sdkAppId:us(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:us(t.type)?this.type:t.type,isLocal:us(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:us(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),F.log(t,e,us(this.userId)||Tg(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 bn={};Ai(bn,{ANDROID_VERSION:()=>xd,CHROME_MAJOR_VERSION:()=>sr,CHROME_VERSION:()=>Zd,EDGE_VERSION:()=>kd,EDG_MAJOR_VERSION:()=>wm,EDG_VERSION:()=>Ud,ELECTRON_MAJOR_VERSION:()=>Lm,FIREFOX_MAJOR_VERSION:()=>Ld,FIREFOX_VERSION:()=>Pd,HUAWEI_VERSION:()=>zd,IE_VERSION:()=>uS,IOS_MAIN_VERSION:()=>Vt,IOS_VERSION:()=>Cr,IPADQQB_VERSION:()=>jd,IS_ANDROID:()=>nt,IS_ANDROID_WEBVIEW:()=>pS,IS_ANY_SAFARI:()=>vr,IS_CHROME:()=>yn,IS_CHROME_OS:()=>Om,IS_CHROMIUM_BASE:()=>fr,IS_DESKTOP_IOS_CHROME:()=>Bm,IS_EDG:()=>En,IS_EDGE:()=>ls,IS_ELECTRON:()=>mS,IS_FIREFOX:()=>lt,IS_HEADLESS_CHROME:()=>Pm,IS_HONOR:()=>xm,IS_HUAWEI:()=>xa,IS_HUAWEIBROWSER:()=>Ma,IS_IE:()=>bg,IS_IE8:()=>dS,IS_IOS:()=>ot,IS_IOS_13_OR_14:()=>Fm,IS_IOS_15_1:()=>Vm,IS_IOS_CHROME:()=>ba,IS_IPAD:()=>gn,IS_IPADQQB:()=>Da,IS_IPAD_PRO:()=>Dm,IS_IPHONE:()=>To,IS_IPOD:()=>Ag,IS_LINUX:()=>wa,IS_LOCAL:()=>jr,IS_MAC:()=>Gr,IS_MACQQB:()=>Na,IS_MIBROWSER:()=>Oa,IS_MQQB:()=>Tn,IS_NATIVE_ANDROID:()=>cS,IS_OLD_ANDROID:()=>aS,IS_OPENHARMONY:()=>Sn,IS_OPPOBROWSER:()=>In,IS_SAFARI:()=>_t,IS_SAFARI_15_1:()=>fS,IS_SAMSUNGBROWSER:()=>Pa,IS_SOGOU:()=>va,IS_SOGOUM:()=>Ra,IS_TBS:()=>Wr,IS_UCBROWSER:()=>Mm,IS_VIVOBROWSER:()=>La,IS_WECHAT:()=>Mi,IS_WIN:()=>ms,IS_WQQB:()=>Ca,IS_WX:()=>lS,IS_X5MQQB:()=>_n,IS_XWEB:()=>Oi,MACQQB_VERSION:()=>Gd,MI_VERSION:()=>qd,MQQB_VERSION:()=>fn,OPENHARMONY_VERSION:()=>hS,OPPO_VERSION:()=>Xd,SAFARI_VERSION:()=>xi,SAMSUNG_VERSION:()=>Jd,SOGOUM_VERSION:()=>Vd,SOGOU_VERSION:()=>Fd,TBS_VERSION:()=>Bd,UA_DATA_STRING:()=>Hr,USER_AGENT:()=>or,VIVO_VERSION:()=>Qd,WECHAT_VERSION:()=>Hd,WQQB_VERSION:()=>Wd,XWEB_VERSION:()=>$d,browserInfo:()=>ni,getBrowserCoreNumber:()=>Hm,getBrowserInfo:()=>Rg,getChromeMajorVersion:()=>Yd,getDeviceModel:()=>ps,getDeviceModelFromUA:()=>Kd,getGPUInfo:()=>$m,getOSName:()=>An,getOSNumber:()=>fs,getOSString:()=>Li,getOSType:()=>Gm,getTerminalType:()=>Wm,getUserAgentData:()=>hs,isLocalStorageEnabled:()=>Pi,isMobile:()=>ka,isVersionLargerThan:()=>Um,isVersionSmallerThan:()=>km});var or=typeof navigator=="undefined"?"":navigator.userAgent,be=i=>new RegExp(i,"i").test(or),It=i=>{if(be(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=or.match(t);if(e&&e[1])return e[1]}return""},Md=i=>{if(be(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=or.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},Sg=/AppleWebKit\/([\d.]+)/i.exec(or),nS=Sg?parseFloat(Sg[1]):NaN,gn=be("iPad"),Dm=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&be("Macintosh"),To=be("iPhone")&&!gn,Ag=be("iPod"),ot=To||gn||Ag||Dm,nt=be("Android"),xd=function(){if(nt){let i=or.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}(),aS=nt&&be("webkit")&&xd<2.3,cS=nt&&xd<5&&nS<537,lt=be("Firefox"),Pd=It("Firefox"),Ld=Md("Firefox"),ls=be("Edge"),kd=It("Edge"),En=be("Edg"),Ud=It("Edg"),wm=Md("Edg"),Ra=be("SogouMobileBrowser"),Vd=It("SogouMobileBrowser"),va=be("MetaSr\\s"),Fd=It("MetaSr\\s"),Wr=be("TBS"),Bd=It("TBS"),Oi=be("XWEB"),$d=It("XWEB"),dS=be("MSIE\\s8\\.0"),bg=be("MSIE\\/\\d+"),uS=function(){if(bg){let i=/MSIE\s(\d+)\.\d/.exec(or),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(or)&&/rv:11.0/.test(or)&&(t=11),t}return NaN}(),Mi=be("(micromessenger|webbrowser)"),Hd=It("MicroMessenger"),_n=!Wr&&be("MQQBrowser")&&be("COVC"),Tn=!Wr&&be("MQQBrowser")&&!be("COVC"),fn=Tn||_n?It("MQQBrowser"):"",Ca=!Wr&&be(" QQBrowser"),Wd=It(" QQBrowser"),Na=!Wr&&be("QQBrowserLite"),Gd=It("QQBrowserLite"),Da=!Wr&&be("MQBHD"),jd=It("MQBHD"),ms=be("Windows"),Gr=!ot&&be("MAC OS X"),wa=!nt&&be("Linux"),Om=be("CrOS"),lS=be("MicroMessenger"),Mm=be("UCBrowser"),mS=be("Electron"),Oa=be("MiuiBrowser"),qd=It("MiuiBrowser"),Ma=be("HuaweiBrowser"),xa=be("Huawei")||be("HUAWEI"),xm=be("Honor")||be("HONOR"),zd=It("HuaweiBrowser"),Pa=be("SamsungBrowser"),Jd=It("SamsungBrowser"),In=be("HeyTapBrowser"),Xd=It("HeyTapBrowser"),La=be("VivoBrowser"),Qd=It("VivoBrowser"),Sn=be("OpenHarmony"),hS=It("OpenHarmony"),Yd=()=>Md("Chrome"),ba=be("CriOS"),fr=be("Chrome"),yn=!ls&&!va&&!Ra&&!Wr&&!Oi&&!En&&!Ca&&!Oa&&!Ma&&!Pa&&!In&&!La&&fr,Pm=be("HeadlessChrome"),sr=Yd(),Zd=It("Chrome"),Lm=Md("Electron"),_t=!fr&&!Tn&&!_n&&!Na&&!Da&&be("Safari"),vr=_t||ot,xi=It("Version"),pS=/Android.*(wv|.0.0.0)/.test(or),Cr=(()=>{if(Dm)return xi;if(ot){let i=or.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function km(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function Um(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,a=o[s]||0;if(n>a)return!0;if(n<a)return!1}return e}var Vt=Number(Cr.split(".")[0]),fS=xi==="15.1",Vm=Cr==="15.1",Fm=(()=>{let i=Number(Cr.split(".")[0]);return i===14||i===13})(),Bm=ba&&xi==="11.1.1",jr=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",Pi=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),ni=Rg();function Rg(){let i=new Map([[lt,["Firefox",Pd]],[En,["Edg",Ud]],[yn,["Chrome",Zd]],[ba,["ChiOS",It("CriOS")]],[_t&&!ba,["Safari",xi]],[Wr,["TBS",Bd]],[Oi,["XWEB",$d]],[Mi&&To,["WeChat",Hd]],[Ca,["QQ(Win)",Wd]],[Tn,["QQ(Mobile)",fn]],[_n,["QQ(Mobile X5)",fn]],[Na,["QQ(Mac)",Gd]],[Da,["QQ(iPad)",jd]],[Oa,["MI",qd]],[Ma,["HW",zd]],[Pa,["Samsung",Jd]],[In,["OPPO",Xd]],[La,["VIVO",Qd]],[ls,["EDGE",kd]],[Ra,["SogouMobile",Vd]],[va,["Sogou",Fd]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Qe=null;function ka(){return Qe&&typeof Qe.mobile=="boolean"?Qe.mobile:nt||ot||To||gn||Sn}var Hr="";function hs(){return A(this,null,function*(){if(Qe)return Qe;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Qe=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Qe&&!Hr&&(Hr=`UAData: ${Qe.platform}/${Qe.platformVersion}`,Qe.architecture&&Qe.bitness&&(Hr+=` ${Qe.architecture}/${Qe.bitness}`),Qe.mobile&&(Hr+=" mobile"),Qe.model&&(Hr+=` model: ${Qe.model.replace(/\s+/g,"/")}`),Qe.fullVersionList&&(Hr+=` ${Qe.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Qe}catch(i){return null}})}function $m(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function ps(){return(Qe==null?void 0:Qe.model)||Kd()||""}function Kd(){let i=/;\s*([^;)]+)\s+Build\//,t=or.match(i);return t!=null&&t[1]?t[1].trim():null}var yg=new Map([[nt,"Android"],[ot,"iOS"],[ms,"Windows"],[Gr,"MacOS"],[wa,"Linux"],[Om,"ChromeOS"]]),An=function(){return yg.get(!0)?yg.get(!0):Qe?Qe.platform:"unknown"};function fs(){return ms?1:nt?2:Gr?3:ot?4:wa?5:Om?6:Sn?7:0}function Hm(){return Mi||Oi?4:fr?1:_t?2:lt?3:0}var Li=()=>{let i=An();return Qe!=null&&Qe.platformVersion?i+=`/${Qe.platformVersion}`:ot?i+=`/${Cr}`:nt&&(i+=`/${xd}`),i+=`/${ni.name}/${_t&&!ba?ni.version:ni.version.split(".")[0]}`,Qe!=null&&Qe.architecture&&(i+=`/${Qe.architecture}`),i};function Wm(){return nt?4:To?2:gn?3:Gr?12:ms?5:wa?13:Sn?22:1}function Gm(){return nt?"Android":To?"iPhone":gn?"iPad":Gr?"Mac":ms?"Windows":wa?"Linux":"unknown"}var Cg=bi(ki(),1),_S=new Cg.default,U=_S;var gr=(le=>(le.ROOM_DESTROY="1",le.JOIN_START="21",le.JOIN_SCHEDULE_SUCCESS="22",le.JOIN_SIGNAL_CONNECTION_START="23",le.JOIN_SIGNAL_CONNECTION_END="24",le.JOIN_SEND_CMD="25",le.JOIN_RECEIVED_CMD_RES="26",le.JOIN_SUCCESS="27",le.JOIN_FAILED="28",le.LEAVE_START="51",le.LEAVE_SEND_CMD="52",le.LEAVE_SUCCESS="53",le.PUBLISH_START="61",le.SEND_FIRST_VIDEO_FRAME="62",le.PUBLISH_FAILED="63",le.SUBSCRIBE_START="81",le.SUBSCRIBE_SUCCESS="82",le.SUBSCRIBE_FAILED="84",le.UNSUBSCRIBE_SUCCESS="83",le.LOCAL_TRACK_CAPTURE_START="101",le.LOCAL_TRACK_CAPTURE_SUCCESS="102",le.LOCAL_TRACK_CAPTURE_FAILED="103",le.LOCAL_TRACK_PUBLISHED="104",le.LOCAL_TRACK_UNPUBLISHED="105",le.LOCAL_TRACK_REPLACED="106",le.SWITCH_DEVICE_SUCCESS="107",le.TRACK_MUTED="108",le.TRACK_UNMUTED="109",le.REMOTE_TRACK_SUBSCRIBED="110",le.REMOTE_TRACK_UNSUBSCRIBED="111",le.LOCAL_TRACK_RECAPTURE="112",le.LOCAL_AUDIO_STARTED="113",le.LOCAL_AUDIO_STOPPED="114",le.REMOTE_AUDIO_STARTED="115",le.REMOTE_AUDIO_STOPPED="116",le.PLAY_TRACK_START="151",le.PLAYER_STATE_CHANGED="152",le.VIDEO_LOADED_DATA="153",le.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",le.AUDIO_CONTEXT_LONG_SUSPENDED="155",le.REMOTE_VIDEO_PLAY_START="156",le.REMOTE_VIDEO_PLAY_FINISH="157",le.SIGNAL_CONNECTION_STATE_CHANGED="201",le.PEER_CONNECTION_STATE_CHANGED="202",le.SINGLE_CONNECTION_STAT="203",le.SPC_RECONNECTED="204",le.HEARTBEAT_REPORT="251",le.RECEIVED_PUBLISHED_USER_LIST="252",le.REMOTE_PUBLISH_STATE_CHANGED="253",le.AUDIO_LEVEL_INTERVAL="260",le.NETWORK_QUALITY="261",le.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",le.QUALITY_LIMITATION_CHANGED="263",le.LOG="264",le.AUDIO_PROCESSOR_DEBUG="265",le.SSO_SWITCH="266",le.SWITCH_ROOM_START="401",le.SWITCH_ROOM_SUCCESS="407",le.SWITCH_ROOM_FAILED="408",le))(gr||{});var B=gr;var qm=class{constructor(){m(this,"enable",!1);m(this,"ssoFailCount",0);U.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&U.emit("266",{enable:!0})}),U.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&U.emit("266",{enable:!1})}},Io=new qm;var TS="%cTRTC%c%s",IS="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",SS="display: inline",tu=class tu{constructor(){m(this,"_isEnableUploadLog",!0);m(this,"_localJoinedUser",new Map);m(this,"_queue",[]);m(this,"_timeoutId",-1);m(this,"_logLevel",1);m(this,"_logLevelToUpload",2);!en&&!ha&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){U.on(B.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&Ur[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),U.on(B.JOIN_START,({params:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),U.on(B.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(Oe(r.userId)&&Fe(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:n,sdkAppId:a,logs:d}=o[s],l={timestamp:ld(),sdkAppId:String(a),userId:n,version:ht,log:d.map(g=>g.log).join(`
|
|
4
|
-
`)},p=JSON.stringify(l),f=Io.enable?Di(l,2002,a):p;yield this.uploadLogWithRetry(f,a,f instanceof Uint8Array,p),d.forEach(g=>g.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Eo({retryFunction:()=>wi({url:Ni(e,po.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(Io.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(Ri()),`[${Ks(e)}] <${Ur[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){O(Ur[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(Oe(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,d)=>`${a} ${this.logChunkToString(d)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};U.emit(B.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var a;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let n=((a=Ur[t])==null?void 0:a.toLowerCase())||"info";tu.PRINT_LOG_TAG?console[n](TS,IS,SS,...e):console[n](...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){if(t.parent instanceof _o){let e=t,{parent:r}=e,o=Vf(e,["parent"]),s=new _o(o);return s.bindParent(r),s}return new _o(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;Ur[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};m(tu,"PRINT_LOG_TAG",!(ot||nt||Pm));var zm=tu,F=new zm;var yS=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)})},Va=yS;var Jm=class{constructor(){m(this,"_prefix","TRTC");m(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!Pi())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(Pi())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){F.warn(t)}}getItem(t){if(!Pi())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){F.warn(e)}}setItem(t,e){if(Pi())try{let r={expiresIn:Date.now()+pd,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){F.warn(r)}}deleteItem(t){if(!Pi())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return F.warn(e),!1}}clear(){if(Pi())try{localStorage.clear()}catch(t){F.warn(t)}}},Rn=new Jm;var bo={};Ai(bo,{HTTPS_API:()=>GS,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>_h,IS_GET_CAPABILITIES_SUPPORTED:()=>Eh,IS_GET_SETTINGS_SUPPORTED:()=>Dn,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>KS,IS_INSERTABLE_STREAM_SUPPORTED:()=>Is,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>ry,IS_RTC_RTP_SENDER_SUPPORTED:()=>Ja,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>sE,IS_SEI_SUPPORTED:()=>Xa,IS_SPC_SUPPORTED:()=>XS,basis:()=>ey,capabilityCheck:()=>Sh,checkSystemRequirementsInternal:()=>fu,decodeSupportStatus:()=>Yg,detectVideoCodecCapabilities:()=>yh,detectVideoDecoderCapabilities:()=>uE,detectVideoEncoderCapabilities:()=>dE,encodeSupportStatus:()=>gh,getBrowserInfo:()=>hu,getDisplayResolution:()=>Zg,getH264ProfileLevelIds:()=>lE,isAddTransceiverSupported:()=>Eu,isBrowserSupported:()=>hh,isCanvasCaptureStreamAPISupported:()=>tE,isCanvasSmallStreamSupported:()=>rE,isGetReceiversSupported:()=>zS,isGetSendersSupported:()=>oE,isGetTransceiversSupported:()=>JS,isGetUserMediaSupported:()=>Kg,isMediaDevicesSupported:()=>pu,isMediaSessionSupported:()=>nE,isMediaStreamTrackGeneratorSupported:()=>VS,isMediaStreamTrackProcessorSupported:()=>fh,isReplaceTrackSupported:()=>YS,isRequestVideoFrameCallbackSupported:()=>zr,isSIMDSupported:()=>Ih,isScaleResolutionDownBySupported:()=>iE,isScreenCaptureApiAvailable:()=>za,isSelectedCandidatePair:()=>jS,isSetParametersSupported:()=>ZS,isSetSinkIdSupported:()=>$S,isSmallStreamSupported:()=>gu,isStopTransceiverSupported:()=>QS,isTRTCSupported:()=>BS,isUnifiedPlanDefault:()=>qS,isUsedInHttpProtocol:()=>Hi,isWebAudioSupported:()=>eE,isWebCodecSupported:()=>_u,isWebCodecsSupported:()=>ph,isWebRTCSupported:()=>Th,isWebTransportSupported:()=>aE});var ah={};Ai(ah,{AUDIO_LEVEL_SCALE:()=>Fi,AlphaStitchingType:()=>ja,AudioCodecPipelineType:()=>vn,AudioDecoderDowngradeState:()=>Ym,AudioPlayerMode:()=>th,AudioType:()=>Km,BASIC_TYPE:()=>Bi,BannedReason:()=>rh,CONNECTION_CLOSED_REASON:()=>Dg,CheckPermissionType:()=>nh,ClientEvent:()=>Xm,CodecType:()=>kg,ConnectionEvent:()=>Ng,ConnectionState:()=>iu,DECODE_FAILED_ERROR_CODE:()=>sh,DenoiserMode:()=>oh,DeviceType:()=>au,FacingMode:()=>ou,FrameWorkType:()=>ru,LeaveReason:()=>ih,LocalTrackEvent:()=>So,MULTI_VIDEO_DATA_TYPE:()=>Vi,MediaType:()=>wt,MediaTypeLabel:()=>AS,MonitorEventId:()=>$a,MutedFlag:()=>Og,NetworkQualityValue:()=>Pg,PlayerState:()=>yo,ReceiveMode:()=>Lg,RemoteStreamType:()=>ai,RemoteTrackEvent:()=>gs,RoomEvent:()=>Ui,SMALL_MODE:()=>nu,SceneNumber:()=>Qm,StreamEvent:()=>wg,StreamType:()=>xg,SubscribeMediaType:()=>Fa,TIMER_TYPE:()=>Ao,TRACK_ACTION:()=>Mg,TRACK_KIND:()=>Zm,TrackEvent:()=>qr,UserRole:()=>Kt,UserRoleNumber:()=>Es,VideoCodec:()=>su,VideoCodecPipelineType:()=>Wa,VideoContentHint:()=>Ga,VideoDecoderDowngradeState:()=>Ba,VideoPlayerMode:()=>Ha,VideoType:()=>eh});var ru=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(ru||{}),Ng=(N=>(N.TRACK_ADDED="track-added",N.TRACK_UPDATED="track-updated",N.TRACK_SUBSCRIBED="track-subscribed",N.STREAM_ADDED="stream-added",N.STREAM_REMOVED="stream-removed",N.STREAM_UPDATED="stream-updated",N.STREAM_PUBLISHED="stream-published",N.STREAM_SUBSCRIBED="stream-subscribed",N.STREAM_UNSUBSCRIBED="stream-unsubscribed",N.STATE_CHANGED="state-changed",N.ERROR="error",N.CONNECTION_STATE_CHANGED="connection-state-changed",N.FIREWALL_RESTRICTION="firewall-restriction",N.SEI_MESSAGE="sei-message",N.CLOSED="closed",N))(Ng||{}),Dg=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(Dg||{}),Xm=(C=>(C.STREAM_ADDED="stream-added",C.STREAM_REMOVED="stream-removed",C.STREAM_UPDATED="stream-updated",C.STREAM_SUBSCRIBED="stream-subscribed",C.CONNECTION_STATE_CHANGED="connection-state-changed",C.PEER_JOIN="peer-join",C.PEER_LEAVE="peer-leave",C.MUTE_AUDIO="mute-audio",C.MUTE_VIDEO="mute-video",C.UNMUTE_AUDIO="unmute-audio",C.UNMUTE_VIDEO="unmute-video",C.CLIENT_BANNED="client-banned",C.NETWORK_QUALITY="network-quality",C.AUDIO_VOLUME="audio-volume",C.SEI_MESSAGE="sei-message",C.ERROR="error",C))(Xm||{}),wg=(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))(wg||{}),So=(d=>(d.DEVICE_AUTO_RECOVERED="1",d.DEVICE_RECOVER_FAILED="5",d.DEVICE_CHANGED="2",d.ERROR="3",d.PUBLISH_STATE_CHANGED="4",d.ENCODE_FAILED="6",d.TRACK_ENDED="7",d.RENDER="render",d))(So||{}),yo=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(yo||{}),Ui=(W=>(W.PEER_JOIN="peer-join",W.PEER_LEAVE="peer-leave",W.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",W.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",W.BANNED="banned",W.NETWORK_QUALITY="network-quality",W.AUDIO_VOLUME="audio-volume",W.SEI_MESSAGE="sei-message",W.ERROR="error",W.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",W.REMOTE_PUBLISHED="remote-published",W.REMOTE_UNPUBLISHED="remote-unpublished",W.FIREWALL_RESTRICTION="firewall-restriction",W.HEARTBEAT_REPORT="heartbeat-report",W.CUSTOM_MESSAGE="custom-message",W.LAYER_DATA="layerData",W.FIRST_VIDEO_FRAME="first-video-frame",W.DUMP="dump",W.AUDIO_FRAME="audio-frame",W.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",W.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",W.NTP_TIME_UPDATED="ntp-time-updated",W))(Ui||{}),qr=(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.VIDEO_SIZE_CHANGED="video-size-changed",d))(qr||{}),gs=(o=>(o.DECODE_FAILED="decode-failed",o.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",o.REMOTE_PUBLISH_CHANGED="remote-publish-changed",o.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",o))(gs||{}),Og=(a=>(a[a.VIDEO=1]="VIDEO",a[a.SMALL=2]="SMALL",a[a.AUX=4]="AUX",a[a.AUDIO=8]="AUDIO",a[a.VIDEO_MUTE=16]="VIDEO_MUTE",a[a.AUX_MUTE=32]="AUX_MUTE",a[a.AUDIO_MUTE=64]="AUDIO_MUTE",a))(Og||{}),Qm=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Qm||{}),Es=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Es||{}),Kt=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Kt||{}),iu=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(iu||{}),Ym=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Ym||{}),Ba=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Ba||{}),Zm=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Zm||{}),Mg=(e=>(e.ADD="add",e.REMOVE="remove",e))(Mg||{}),wt=(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))(wt||{}),AS={1:"audio",2:"auxVideo",4:"video"},Km=(t=>(t[t.opus=111]="opus",t))(Km||{}),eh=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(eh||{}),xg=(e=>(e.Big="big",e.Small="small",e))(xg||{}),ai=(e=>(e.Main="main",e.Aux="auxiliary",e))(ai||{}),Vi=(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))(Vi||{}),$a=(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))($a||{}),Pg=(a=>(a[a.UNKNOWN=0]="UNKNOWN",a[a.EXCELLENT=1]="EXCELLENT",a[a.GOOD=2]="GOOD",a[a.POOR=3]="POOR",a[a.BAD=4]="BAD",a[a.VERY_BAD=5]="VERY_BAD",a[a.DISCONNECTED=6]="DISCONNECTED",a))(Pg||{}),Lg=(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))(Lg||{}),ou=(e=>(e.user="user",e.environment="environment",e))(ou||{}),Ha=(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))(Ha||{}),th=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(th||{}),rh=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(rh||{}),ih=(l=>(l[l.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",l[l.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",l[l.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",l[l.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",l[l.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",l[l.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",l[l.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",l[l.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",l[l.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",l))(ih||{}),Fi=1e8,oh=(e=>(e[e.NORMAL=0]="NORMAL",e[e.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",e))(oh||{}),Fa=class{constructor(){m(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)}},Bi=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(Bi||{}),su=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(su||{}),Wa=(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))(Wa||{}),vn=(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))(vn||{}),kg=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(kg||{}),sh=(g=>(g[g.SUCCESS=0]="SUCCESS",g[g.FAILED=1]="FAILED",g[g.WEBCODEC_INIT=2]="WEBCODEC_INIT",g[g.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",g[g.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",g[g.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",g[g.WASM_INIT=6]="WASM_INIT",g[g.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",g[g.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",g[g.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",g[g.TEST=10]="TEST",g[g.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",g))(sh||{}),Ga=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(Ga||{}),Ao=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(Ao||{}),nu=(e=>(e.CANVAS="canvas",e.API="api",e))(nu||{}),nh=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(nh||{}),au=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(au||{}),ja=(r=>(r[r.none=0]="none",r[r.horizontal=1]="horizontal",r[r.vertical=2]="vertical",r))(ja||{});var He={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"},nr={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: ${pt(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: ${pt(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 Ug=(i,t)=>t?`${ir}/${i}/${t}`:`${ir}/${i}/index.html`;var bS=()=>{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(am);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 We(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Xe(nr[t])?s=nr[t](e):Oe(nr[t])&&(s=nr[t]);let{TRTC_ERROR_INFO:d,TRTC_ERROR_LINK:l}=bS();r?a=`${r.className}.html#${r.fnName}`:l&&l[t]&&(Xe(l[t])?a=l[t](e):Oe(l[t])&&(a=l[t]));let p=s;return Fr()&&(d&&d[t]&&(Xe(d[t])?n=d[t](e):Oe(d[t])&&(n=d[t])),n&&(o?p=`${n}
|
|
5
|
-
\u8BF7\u67E5\u770B\u6587\u6863: ${Ug("zh-cn",a)}
|
|
3
|
+
`}});var x_=vn(Fi=>{"use strict";var Ws=D_(),PI=M_(),UI=Ou();Fi.grammar=UI;Fi.write=PI;Fi.parse=Ws.parse;Fi.parseParams=Ws.parseParams;Fi.parseFmtpConfig=Ws.parseFmtpConfig;Fi.parsePayloads=Ws.parsePayloads;Fi.parseRemoteCandidates=Ws.parseRemoteCandidates;Fi.parseImageAttributes=Ws.parseImageAttributes;Fi.parseSimulcastStreamList=Ws.parseSimulcastStreamList});var hy=vn((ly,Zf)=>{"use strict";(function(i){typeof ly=="object"&&typeof Zf!="undefined"?Zf.exports=i():typeof define=="function"&&define.amd?define([],i):(typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:this).JSZip=i()})(function(){return function i(t,e,r){function o(a,c){if(!e[a]){if(!t[a]){var d=typeof Oa=="function"&&Oa;if(!c&&d)return d(a,!0);if(s)return s(a,!0);var m=new Error("Cannot find module '"+a+"'");throw m.code="MODULE_NOT_FOUND",m}var l=e[a]={exports:{}};t[a][0].call(l.exports,function(f){var g=t[a][1][f];return o(g||f)},l,l.exports,i,t,e,r)}return e[a].exports}for(var s=typeof Oa=="function"&&Oa,n=0;n<r.length;n++)o(r[n]);return o}({1:[function(i,t,e){"use strict";var r=i("./utils"),o=i("./support"),s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";e.encode=function(n){for(var a,c,d,m,l,f,g,T=[],E=0,y=n.length,v=y,M=r.getTypeOf(n)!=="string";E<n.length;)v=y-E,d=M?(a=n[E++],c=E<y?n[E++]:0,E<y?n[E++]:0):(a=n.charCodeAt(E++),c=E<y?n.charCodeAt(E++):0,E<y?n.charCodeAt(E++):0),m=a>>2,l=(3&a)<<4|c>>4,f=1<v?(15&c)<<2|d>>6:64,g=2<v?63&d:64,T.push(s.charAt(m)+s.charAt(l)+s.charAt(f)+s.charAt(g));return T.join("")},e.decode=function(n){var a,c,d,m,l,f,g=0,T=0,E="data:";if(n.substr(0,E.length)===E)throw new Error("Invalid base64 input, it looks like a data url.");var y,v=3*(n=n.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(n.charAt(n.length-1)===s.charAt(64)&&v--,n.charAt(n.length-2)===s.charAt(64)&&v--,v%1!=0)throw new Error("Invalid base64 input, bad content length.");for(y=o.uint8array?new Uint8Array(0|v):new Array(0|v);g<n.length;)a=s.indexOf(n.charAt(g++))<<2|(m=s.indexOf(n.charAt(g++)))>>4,c=(15&m)<<4|(l=s.indexOf(n.charAt(g++)))>>2,d=(3&l)<<6|(f=s.indexOf(n.charAt(g++))),y[T++]=a,l!==64&&(y[T++]=c),f!==64&&(y[T++]=d);return y}},{"./support":30,"./utils":32}],2:[function(i,t,e){"use strict";var r=i("./external"),o=i("./stream/DataWorker"),s=i("./stream/Crc32Probe"),n=i("./stream/DataLengthProbe");function a(c,d,m,l,f){this.compressedSize=c,this.uncompressedSize=d,this.crc32=m,this.compression=l,this.compressedContent=f}a.prototype={getContentWorker:function(){var c=new o(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new n("data_length")),d=this;return c.on("end",function(){if(this.streamInfo.data_length!==d.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),c},getCompressedWorker:function(){return new o(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},a.createWorkerFrom=function(c,d,m){return c.pipe(new s).pipe(new n("uncompressedSize")).pipe(d.compressWorker(m)).pipe(new n("compressedSize")).withStreamInfo("compression",d)},t.exports=a},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(i,t,e){"use strict";var r=i("./stream/GenericWorker");e.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},e.DEFLATE=i("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(i,t,e){"use strict";var r=i("./utils"),o=function(){for(var s,n=[],a=0;a<256;a++){s=a;for(var c=0;c<8;c++)s=1&s?3988292384^s>>>1:s>>>1;n[a]=s}return n}();t.exports=function(s,n){return s!==void 0&&s.length?r.getTypeOf(s)!=="string"?function(a,c,d,m){var l=o,f=m+d;a^=-1;for(var g=m;g<f;g++)a=a>>>8^l[255&(a^c[g])];return-1^a}(0|n,s,s.length,0):function(a,c,d,m){var l=o,f=m+d;a^=-1;for(var g=m;g<f;g++)a=a>>>8^l[255&(a^c.charCodeAt(g))];return-1^a}(0|n,s,s.length,0):0}},{"./utils":32}],5:[function(i,t,e){"use strict";e.base64=!1,e.binary=!1,e.dir=!1,e.createFolders=!0,e.date=null,e.compression=null,e.compressionOptions=null,e.comment=null,e.unixPermissions=null,e.dosPermissions=null},{}],6:[function(i,t,e){"use strict";var r=null;r=typeof Promise!="undefined"?Promise:i("lie"),t.exports={Promise:r}},{lie:37}],7:[function(i,t,e){"use strict";var r=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Uint32Array!="undefined",o=i("pako"),s=i("./utils"),n=i("./stream/GenericWorker"),a=r?"uint8array":"array";function c(d,m){n.call(this,"FlateWorker/"+d),this._pako=null,this._pakoAction=d,this._pakoOptions=m,this.meta={}}e.magic="\b\0",s.inherits(c,n),c.prototype.processChunk=function(d){this.meta=d.meta,this._pako===null&&this._createPako(),this._pako.push(s.transformTo(a,d.data),!1)},c.prototype.flush=function(){n.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},c.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this._pako=null},c.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var d=this;this._pako.onData=function(m){d.push({data:m,meta:d.meta})}},e.compressWorker=function(d){return new c("Deflate",d)},e.uncompressWorker=function(){return new c("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(i,t,e){"use strict";function r(l,f){var g,T="";for(g=0;g<f;g++)T+=String.fromCharCode(255&l),l>>>=8;return T}function o(l,f,g,T,E,y){var v,M,w=l.file,H=l.compression,B=y!==a.utf8encode,P=s.transformTo("string",y(w.name)),$=s.transformTo("string",a.utf8encode(w.name)),de=w.comment,Ae=s.transformTo("string",y(de)),L=s.transformTo("string",a.utf8encode(de)),te=$.length!==w.name.length,A=L.length!==de.length,le="",He="",ge="",ze=w.dir,me=w.date,re={crc32:0,compressedSize:0,uncompressedSize:0};f&&!g||(re.crc32=l.crc32,re.compressedSize=l.compressedSize,re.uncompressedSize=l.uncompressedSize);var Q=0;f&&(Q|=8),B||!te&&!A||(Q|=2048);var q=0,Be=0;ze&&(q|=16),E==="UNIX"?(Be=798,q|=function(ne,Ze){var yt=ne;return ne||(yt=Ze?16893:33204),(65535&yt)<<16}(w.unixPermissions,ze)):(Be=20,q|=function(ne){return 63&(ne||0)}(w.dosPermissions)),v=me.getUTCHours(),v<<=6,v|=me.getUTCMinutes(),v<<=5,v|=me.getUTCSeconds()/2,M=me.getUTCFullYear()-1980,M<<=4,M|=me.getUTCMonth()+1,M<<=5,M|=me.getUTCDate(),te&&(He=r(1,1)+r(c(P),4)+$,le+="up"+r(He.length,2)+He),A&&(ge=r(1,1)+r(c(Ae),4)+L,le+="uc"+r(ge.length,2)+ge);var De="";return De+=`
|
|
4
|
+
\0`,De+=r(Q,2),De+=H.magic,De+=r(v,2),De+=r(M,2),De+=r(re.crc32,4),De+=r(re.compressedSize,4),De+=r(re.uncompressedSize,4),De+=r(P.length,2),De+=r(le.length,2),{fileRecord:d.LOCAL_FILE_HEADER+De+P+le,dirRecord:d.CENTRAL_FILE_HEADER+r(Be,2)+De+r(Ae.length,2)+"\0\0\0\0"+r(q,4)+r(T,4)+P+le+Ae}}var s=i("../utils"),n=i("../stream/GenericWorker"),a=i("../utf8"),c=i("../crc32"),d=i("../signature");function m(l,f,g,T){n.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=f,this.zipPlatform=g,this.encodeFileName=T,this.streamFiles=l,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}s.inherits(m,n),m.prototype.push=function(l){var f=l.meta.percent||0,g=this.entriesCount,T=this._sources.length;this.accumulate?this.contentBuffer.push(l):(this.bytesWritten+=l.data.length,n.prototype.push.call(this,{data:l.data,meta:{currentFile:this.currentFile,percent:g?(f+100*(g-T-1))/g:100}}))},m.prototype.openedSource=function(l){this.currentSourceOffset=this.bytesWritten,this.currentFile=l.file.name;var f=this.streamFiles&&!l.file.dir;if(f){var g=o(l,f,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:g.fileRecord,meta:{percent:0}})}else this.accumulate=!0},m.prototype.closedSource=function(l){this.accumulate=!1;var f=this.streamFiles&&!l.file.dir,g=o(l,f,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(g.dirRecord),f)this.push({data:function(T){return d.DATA_DESCRIPTOR+r(T.crc32,4)+r(T.compressedSize,4)+r(T.uncompressedSize,4)}(l),meta:{percent:100}});else for(this.push({data:g.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},m.prototype.flush=function(){for(var l=this.bytesWritten,f=0;f<this.dirRecords.length;f++)this.push({data:this.dirRecords[f],meta:{percent:100}});var g=this.bytesWritten-l,T=function(E,y,v,M,w){var H=s.transformTo("string",w(M));return d.CENTRAL_DIRECTORY_END+"\0\0\0\0"+r(E,2)+r(E,2)+r(y,4)+r(v,4)+r(H.length,2)+H}(this.dirRecords.length,g,l,this.zipComment,this.encodeFileName);this.push({data:T,meta:{percent:100}})},m.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},m.prototype.registerPrevious=function(l){this._sources.push(l);var f=this;return l.on("data",function(g){f.processChunk(g)}),l.on("end",function(){f.closedSource(f.previous.streamInfo),f._sources.length?f.prepareNextSource():f.end()}),l.on("error",function(g){f.error(g)}),this},m.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},m.prototype.error=function(l){var f=this._sources;if(!n.prototype.error.call(this,l))return!1;for(var g=0;g<f.length;g++)try{f[g].error(l)}catch(T){}return!0},m.prototype.lock=function(){n.prototype.lock.call(this);for(var l=this._sources,f=0;f<l.length;f++)l[f].lock()},t.exports=m},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(i,t,e){"use strict";var r=i("../compressions"),o=i("./ZipFileWorker");e.generateWorker=function(s,n,a){var c=new o(n.streamFiles,a,n.platform,n.encodeFileName),d=0;try{s.forEach(function(m,l){d++;var f=function(y,v){var M=y||v,w=r[M];if(!w)throw new Error(M+" is not a valid compression method !");return w}(l.options.compression,n.compression),g=l.options.compressionOptions||n.compressionOptions||{},T=l.dir,E=l.date;l._compressWorker(f,g).withStreamInfo("file",{name:m,dir:T,date:E,comment:l.comment||"",unixPermissions:l.unixPermissions,dosPermissions:l.dosPermissions}).pipe(c)}),c.entriesCount=d}catch(m){c.error(m)}return c}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(i,t,e){"use strict";function r(){if(!(this instanceof r))return new r;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var o=new r;for(var s in this)typeof this[s]!="function"&&(o[s]=this[s]);return o}}(r.prototype=i("./object")).loadAsync=i("./load"),r.support=i("./support"),r.defaults=i("./defaults"),r.version="3.10.1",r.loadAsync=function(o,s){return new r().loadAsync(o,s)},r.external=i("./external"),t.exports=r},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(i,t,e){"use strict";var r=i("./utils"),o=i("./external"),s=i("./utf8"),n=i("./zipEntries"),a=i("./stream/Crc32Probe"),c=i("./nodejsUtils");function d(m){return new o.Promise(function(l,f){var g=m.decompressed.getContentWorker().pipe(new a);g.on("error",function(T){f(T)}).on("end",function(){g.streamInfo.crc32!==m.decompressed.crc32?f(new Error("Corrupted zip : CRC32 mismatch")):l()}).resume()})}t.exports=function(m,l){var f=this;return l=r.extend(l||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:s.utf8decode}),c.isNode&&c.isStream(m)?o.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):r.prepareContent("the loaded zip file",m,!0,l.optimizedBinaryString,l.base64).then(function(g){var T=new n(l);return T.load(g),T}).then(function(g){var T=[o.Promise.resolve(g)],E=g.files;if(l.checkCRC32)for(var y=0;y<E.length;y++)T.push(d(E[y]));return o.Promise.all(T)}).then(function(g){for(var T=g.shift(),E=T.files,y=0;y<E.length;y++){var v=E[y],M=v.fileNameStr,w=r.resolve(v.fileNameStr);f.file(w,v.decompressed,{binary:!0,optimizedBinaryString:!0,date:v.date,dir:v.dir,comment:v.fileCommentStr.length?v.fileCommentStr:null,unixPermissions:v.unixPermissions,dosPermissions:v.dosPermissions,createFolders:l.createFolders}),v.dir||(f.file(w).unsafeOriginalName=M)}return T.zipComment.length&&(f.comment=T.zipComment),f})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(i,t,e){"use strict";var r=i("../utils"),o=i("../stream/GenericWorker");function s(n,a){o.call(this,"Nodejs stream input adapter for "+n),this._upstreamEnded=!1,this._bindStream(a)}r.inherits(s,o),s.prototype._bindStream=function(n){var a=this;(this._stream=n).pause(),n.on("data",function(c){a.push({data:c,meta:{percent:0}})}).on("error",function(c){a.isPaused?this.generatedError=c:a.error(c)}).on("end",function(){a.isPaused?a._upstreamEnded=!0:a.end()})},s.prototype.pause=function(){return!!o.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{"../stream/GenericWorker":28,"../utils":32}],13:[function(i,t,e){"use strict";var r=i("readable-stream").Readable;function o(s,n,a){r.call(this,n),this._helper=s;var c=this;s.on("data",function(d,m){c.push(d)||c._helper.pause(),a&&a(m)}).on("error",function(d){c.emit("error",d)}).on("end",function(){c.push(null)})}i("../utils").inherits(o,r),o.prototype._read=function(){this._helper.resume()},t.exports=o},{"../utils":32,"readable-stream":16}],14:[function(i,t,e){"use strict";t.exports={isNode:typeof Buffer!="undefined",newBufferFrom:function(r,o){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(r,o);if(typeof r=="number")throw new Error('The "data" argument must not be a number');return new Buffer(r,o)},allocBuffer:function(r){if(Buffer.alloc)return Buffer.alloc(r);var o=new Buffer(r);return o.fill(0),o},isBuffer:function(r){return Buffer.isBuffer(r)},isStream:function(r){return r&&typeof r.on=="function"&&typeof r.pause=="function"&&typeof r.resume=="function"}}},{}],15:[function(i,t,e){"use strict";function r(w,H,B){var P,$=s.getTypeOf(H),de=s.extend(B||{},c);de.date=de.date||new Date,de.compression!==null&&(de.compression=de.compression.toUpperCase()),typeof de.unixPermissions=="string"&&(de.unixPermissions=parseInt(de.unixPermissions,8)),de.unixPermissions&&16384&de.unixPermissions&&(de.dir=!0),de.dosPermissions&&16&de.dosPermissions&&(de.dir=!0),de.dir&&(w=E(w)),de.createFolders&&(P=T(w))&&y.call(this,P,!0);var Ae=$==="string"&&de.binary===!1&&de.base64===!1;B&&B.binary!==void 0||(de.binary=!Ae),(H instanceof d&&H.uncompressedSize===0||de.dir||!H||H.length===0)&&(de.base64=!1,de.binary=!0,H="",de.compression="STORE",$="string");var L=null;L=H instanceof d||H instanceof n?H:f.isNode&&f.isStream(H)?new g(w,H):s.prepareContent(w,H,de.binary,de.optimizedBinaryString,de.base64);var te=new m(w,L,de);this.files[w]=te}var o=i("./utf8"),s=i("./utils"),n=i("./stream/GenericWorker"),a=i("./stream/StreamHelper"),c=i("./defaults"),d=i("./compressedObject"),m=i("./zipObject"),l=i("./generate"),f=i("./nodejsUtils"),g=i("./nodejs/NodejsStreamInputAdapter"),T=function(w){w.slice(-1)==="/"&&(w=w.substring(0,w.length-1));var H=w.lastIndexOf("/");return 0<H?w.substring(0,H):""},E=function(w){return w.slice(-1)!=="/"&&(w+="/"),w},y=function(w,H){return H=H!==void 0?H:c.createFolders,w=E(w),this.files[w]||r.call(this,w,null,{dir:!0,createFolders:H}),this.files[w]};function v(w){return Object.prototype.toString.call(w)==="[object RegExp]"}var M={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(w){var H,B,P;for(H in this.files)P=this.files[H],(B=H.slice(this.root.length,H.length))&&H.slice(0,this.root.length)===this.root&&w(B,P)},filter:function(w){var H=[];return this.forEach(function(B,P){w(B,P)&&H.push(P)}),H},file:function(w,H,B){if(arguments.length!==1)return w=this.root+w,r.call(this,w,H,B),this;if(v(w)){var P=w;return this.filter(function(de,Ae){return!Ae.dir&&P.test(de)})}var $=this.files[this.root+w];return $&&!$.dir?$:null},folder:function(w){if(!w)return this;if(v(w))return this.filter(function($,de){return de.dir&&w.test($)});var H=this.root+w,B=y.call(this,H),P=this.clone();return P.root=B.name,P},remove:function(w){w=this.root+w;var H=this.files[w];if(H||(w.slice(-1)!=="/"&&(w+="/"),H=this.files[w]),H&&!H.dir)delete this.files[w];else for(var B=this.filter(function($,de){return de.name.slice(0,w.length)===w}),P=0;P<B.length;P++)delete this.files[B[P].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(w){var H,B={};try{if((B=s.extend(w||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:o.utf8encode})).type=B.type.toLowerCase(),B.compression=B.compression.toUpperCase(),B.type==="binarystring"&&(B.type="string"),!B.type)throw new Error("No output type specified.");s.checkSupport(B.type),B.platform!=="darwin"&&B.platform!=="freebsd"&&B.platform!=="linux"&&B.platform!=="sunos"||(B.platform="UNIX"),B.platform==="win32"&&(B.platform="DOS");var P=B.comment||this.comment||"";H=l.generateWorker(this,B,P)}catch($){(H=new n("error")).error($)}return new a(H,B.type||"string",B.mimeType)},generateAsync:function(w,H){return this.generateInternalStream(w).accumulate(H)},generateNodeStream:function(w,H){return(w=w||{}).type||(w.type="nodebuffer"),this.generateInternalStream(w).toNodejsStream(H)}};t.exports=M},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(i,t,e){"use strict";t.exports=i("stream")},{stream:void 0}],17:[function(i,t,e){"use strict";var r=i("./DataReader");function o(s){r.call(this,s);for(var n=0;n<this.data.length;n++)s[n]=255&s[n]}i("../utils").inherits(o,r),o.prototype.byteAt=function(s){return this.data[this.zero+s]},o.prototype.lastIndexOfSignature=function(s){for(var n=s.charCodeAt(0),a=s.charCodeAt(1),c=s.charCodeAt(2),d=s.charCodeAt(3),m=this.length-4;0<=m;--m)if(this.data[m]===n&&this.data[m+1]===a&&this.data[m+2]===c&&this.data[m+3]===d)return m-this.zero;return-1},o.prototype.readAndCheckSignature=function(s){var n=s.charCodeAt(0),a=s.charCodeAt(1),c=s.charCodeAt(2),d=s.charCodeAt(3),m=this.readData(4);return n===m[0]&&a===m[1]&&c===m[2]&&d===m[3]},o.prototype.readData=function(s){if(this.checkOffset(s),s===0)return[];var n=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,n},t.exports=o},{"../utils":32,"./DataReader":18}],18:[function(i,t,e){"use strict";var r=i("../utils");function o(s){this.data=s,this.length=s.length,this.index=0,this.zero=0}o.prototype={checkOffset:function(s){this.checkIndex(this.index+s)},checkIndex:function(s){if(this.length<this.zero+s||s<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+s+"). Corrupted zip ?")},setIndex:function(s){this.checkIndex(s),this.index=s},skip:function(s){this.setIndex(this.index+s)},byteAt:function(){},readInt:function(s){var n,a=0;for(this.checkOffset(s),n=this.index+s-1;n>=this.index;n--)a=(a<<8)+this.byteAt(n);return this.index+=s,a},readString:function(s){return r.transformTo("string",this.readData(s))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var s=this.readInt(4);return new Date(Date.UTC(1980+(s>>25&127),(s>>21&15)-1,s>>16&31,s>>11&31,s>>5&63,(31&s)<<1))}},t.exports=o},{"../utils":32}],19:[function(i,t,e){"use strict";var r=i("./Uint8ArrayReader");function o(s){r.call(this,s)}i("../utils").inherits(o,r),o.prototype.readData=function(s){this.checkOffset(s);var n=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,n},t.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(i,t,e){"use strict";var r=i("./DataReader");function o(s){r.call(this,s)}i("../utils").inherits(o,r),o.prototype.byteAt=function(s){return this.data.charCodeAt(this.zero+s)},o.prototype.lastIndexOfSignature=function(s){return this.data.lastIndexOf(s)-this.zero},o.prototype.readAndCheckSignature=function(s){return s===this.readData(4)},o.prototype.readData=function(s){this.checkOffset(s);var n=this.data.slice(this.zero+this.index,this.zero+this.index+s);return this.index+=s,n},t.exports=o},{"../utils":32,"./DataReader":18}],21:[function(i,t,e){"use strict";var r=i("./ArrayReader");function o(s){r.call(this,s)}i("../utils").inherits(o,r),o.prototype.readData=function(s){if(this.checkOffset(s),s===0)return new Uint8Array(0);var n=this.data.subarray(this.zero+this.index,this.zero+this.index+s);return this.index+=s,n},t.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(i,t,e){"use strict";var r=i("../utils"),o=i("../support"),s=i("./ArrayReader"),n=i("./StringReader"),a=i("./NodeBufferReader"),c=i("./Uint8ArrayReader");t.exports=function(d){var m=r.getTypeOf(d);return r.checkSupport(m),m!=="string"||o.uint8array?m==="nodebuffer"?new a(d):o.uint8array?new c(r.transformTo("uint8array",d)):new s(r.transformTo("array",d)):new n(d)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(i,t,e){"use strict";e.LOCAL_FILE_HEADER="PK",e.CENTRAL_FILE_HEADER="PK",e.CENTRAL_DIRECTORY_END="PK",e.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",e.ZIP64_CENTRAL_DIRECTORY_END="PK",e.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(i,t,e){"use strict";var r=i("./GenericWorker"),o=i("../utils");function s(n){r.call(this,"ConvertWorker to "+n),this.destType=n}o.inherits(s,r),s.prototype.processChunk=function(n){this.push({data:o.transformTo(this.destType,n.data),meta:n.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(i,t,e){"use strict";var r=i("./GenericWorker"),o=i("../crc32");function s(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}i("../utils").inherits(s,r),s.prototype.processChunk=function(n){this.streamInfo.crc32=o(n.data,this.streamInfo.crc32||0),this.push(n)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(i,t,e){"use strict";var r=i("../utils"),o=i("./GenericWorker");function s(n){o.call(this,"DataLengthProbe for "+n),this.propName=n,this.withStreamInfo(n,0)}r.inherits(s,o),s.prototype.processChunk=function(n){if(n){var a=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=a+n.data.length}o.prototype.processChunk.call(this,n)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(i,t,e){"use strict";var r=i("../utils"),o=i("./GenericWorker");function s(n){o.call(this,"DataWorker");var a=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,n.then(function(c){a.dataIsReady=!0,a.data=c,a.max=c&&c.length||0,a.type=r.getTypeOf(c),a.isPaused||a._tickAndRepeat()},function(c){a.error(c)})}r.inherits(s,o),s.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var n=null,a=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":n=this.data.substring(this.index,a);break;case"uint8array":n=this.data.subarray(this.index,a);break;case"array":case"nodebuffer":n=this.data.slice(this.index,a)}return this.index=a,this.push({data:n,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(i,t,e){"use strict";function r(o){this.name=o||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(o){this.emit("data",o)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(o){this.emit("error",o)}return!0},error:function(o){return!this.isFinished&&(this.isPaused?this.generatedError=o:(this.isFinished=!0,this.emit("error",o),this.previous&&this.previous.error(o),this.cleanUp()),!0)},on:function(o,s){return this._listeners[o].push(s),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(o,s){if(this._listeners[o])for(var n=0;n<this._listeners[o].length;n++)this._listeners[o][n].call(this,s)},pipe:function(o){return o.registerPrevious(this)},registerPrevious:function(o){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=o.streamInfo,this.mergeStreamInfo(),this.previous=o;var s=this;return o.on("data",function(n){s.processChunk(n)}),o.on("end",function(){s.end()}),o.on("error",function(n){s.error(n)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var o=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),o=!0),this.previous&&this.previous.resume(),!o},flush:function(){},processChunk:function(o){this.push(o)},withStreamInfo:function(o,s){return this.extraStreamInfo[o]=s,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var o in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,o)&&(this.streamInfo[o]=this.extraStreamInfo[o])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var o="Worker "+this.name;return this.previous?this.previous+" -> "+o:o}},t.exports=r},{}],29:[function(i,t,e){"use strict";var r=i("../utils"),o=i("./ConvertWorker"),s=i("./GenericWorker"),n=i("../base64"),a=i("../support"),c=i("../external"),d=null;if(a.nodestream)try{d=i("../nodejs/NodejsStreamOutputAdapter")}catch(f){}function m(f,g){return new c.Promise(function(T,E){var y=[],v=f._internalType,M=f._outputType,w=f._mimeType;f.on("data",function(H,B){y.push(H),g&&g(B)}).on("error",function(H){y=[],E(H)}).on("end",function(){try{var H=function(B,P,$){switch(B){case"blob":return r.newBlob(r.transformTo("arraybuffer",P),$);case"base64":return n.encode(P);default:return r.transformTo(B,P)}}(M,function(B,P){var $,de=0,Ae=null,L=0;for($=0;$<P.length;$++)L+=P[$].length;switch(B){case"string":return P.join("");case"array":return Array.prototype.concat.apply([],P);case"uint8array":for(Ae=new Uint8Array(L),$=0;$<P.length;$++)Ae.set(P[$],de),de+=P[$].length;return Ae;case"nodebuffer":return Buffer.concat(P);default:throw new Error("concat : unsupported type '"+B+"'")}}(v,y),w);T(H)}catch(B){E(B)}y=[]}).resume()})}function l(f,g,T){var E=g;switch(g){case"blob":case"arraybuffer":E="uint8array";break;case"base64":E="string"}try{this._internalType=E,this._outputType=g,this._mimeType=T,r.checkSupport(E),this._worker=f.pipe(new o(E)),f.lock()}catch(y){this._worker=new s("error"),this._worker.error(y)}}l.prototype={accumulate:function(f){return m(this,f)},on:function(f,g){var T=this;return f==="data"?this._worker.on(f,function(E){g.call(T,E.data,E.meta)}):this._worker.on(f,function(){r.delay(g,arguments,T)}),this},resume:function(){return r.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(f){if(r.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new d(this,{objectMode:this._outputType!=="nodebuffer"},f)}},t.exports=l},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(i,t,e){"use strict";if(e.base64=!0,e.array=!0,e.string=!0,e.arraybuffer=typeof ArrayBuffer!="undefined"&&typeof Uint8Array!="undefined",e.nodebuffer=typeof Buffer!="undefined",e.uint8array=typeof Uint8Array!="undefined",typeof ArrayBuffer=="undefined")e.blob=!1;else{var r=new ArrayBuffer(0);try{e.blob=new Blob([r],{type:"application/zip"}).size===0}catch(s){try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(r),e.blob=o.getBlob("application/zip").size===0}catch(n){e.blob=!1}}}try{e.nodestream=!!i("readable-stream").Readable}catch(s){e.nodestream=!1}},{"readable-stream":16}],31:[function(i,t,e){"use strict";for(var r=i("./utils"),o=i("./support"),s=i("./nodejsUtils"),n=i("./stream/GenericWorker"),a=new Array(256),c=0;c<256;c++)a[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;a[254]=a[254]=1;function d(){n.call(this,"utf-8 decode"),this.leftOver=null}function m(){n.call(this,"utf-8 encode")}e.utf8encode=function(l){return o.nodebuffer?s.newBufferFrom(l,"utf-8"):function(f){var g,T,E,y,v,M=f.length,w=0;for(y=0;y<M;y++)(64512&(T=f.charCodeAt(y)))==55296&&y+1<M&&(64512&(E=f.charCodeAt(y+1)))==56320&&(T=65536+(T-55296<<10)+(E-56320),y++),w+=T<128?1:T<2048?2:T<65536?3:4;for(g=o.uint8array?new Uint8Array(w):new Array(w),y=v=0;v<w;y++)(64512&(T=f.charCodeAt(y)))==55296&&y+1<M&&(64512&(E=f.charCodeAt(y+1)))==56320&&(T=65536+(T-55296<<10)+(E-56320),y++),T<128?g[v++]=T:(T<2048?g[v++]=192|T>>>6:(T<65536?g[v++]=224|T>>>12:(g[v++]=240|T>>>18,g[v++]=128|T>>>12&63),g[v++]=128|T>>>6&63),g[v++]=128|63&T);return g}(l)},e.utf8decode=function(l){return o.nodebuffer?r.transformTo("nodebuffer",l).toString("utf-8"):function(f){var g,T,E,y,v=f.length,M=new Array(2*v);for(g=T=0;g<v;)if((E=f[g++])<128)M[T++]=E;else if(4<(y=a[E]))M[T++]=65533,g+=y-1;else{for(E&=y===2?31:y===3?15:7;1<y&&g<v;)E=E<<6|63&f[g++],y--;1<y?M[T++]=65533:E<65536?M[T++]=E:(E-=65536,M[T++]=55296|E>>10&1023,M[T++]=56320|1023&E)}return M.length!==T&&(M.subarray?M=M.subarray(0,T):M.length=T),r.applyFromCharCode(M)}(l=r.transformTo(o.uint8array?"uint8array":"array",l))},r.inherits(d,n),d.prototype.processChunk=function(l){var f=r.transformTo(o.uint8array?"uint8array":"array",l.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var g=f;(f=new Uint8Array(g.length+this.leftOver.length)).set(this.leftOver,0),f.set(g,this.leftOver.length)}else f=this.leftOver.concat(f);this.leftOver=null}var T=function(y,v){var M;for((v=v||y.length)>y.length&&(v=y.length),M=v-1;0<=M&&(192&y[M])==128;)M--;return M<0||M===0?v:M+a[y[M]]>v?M:v}(f),E=f;T!==f.length&&(o.uint8array?(E=f.subarray(0,T),this.leftOver=f.subarray(T,f.length)):(E=f.slice(0,T),this.leftOver=f.slice(T,f.length))),this.push({data:e.utf8decode(E),meta:l.meta})},d.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:e.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},e.Utf8DecodeWorker=d,r.inherits(m,n),m.prototype.processChunk=function(l){this.push({data:e.utf8encode(l.data),meta:l.meta})},e.Utf8EncodeWorker=m},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(i,t,e){"use strict";var r=i("./support"),o=i("./base64"),s=i("./nodejsUtils"),n=i("./external");function a(g){return g}function c(g,T){for(var E=0;E<g.length;++E)T[E]=255&g.charCodeAt(E);return T}i("setimmediate"),e.newBlob=function(g,T){e.checkSupport("blob");try{return new Blob([g],{type:T})}catch(y){try{var E=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return E.append(g),E.getBlob(T)}catch(v){throw new Error("Bug : can't construct the Blob.")}}};var d={stringifyByChunk:function(g,T,E){var y=[],v=0,M=g.length;if(M<=E)return String.fromCharCode.apply(null,g);for(;v<M;)T==="array"||T==="nodebuffer"?y.push(String.fromCharCode.apply(null,g.slice(v,Math.min(v+E,M)))):y.push(String.fromCharCode.apply(null,g.subarray(v,Math.min(v+E,M)))),v+=E;return y.join("")},stringifyByChar:function(g){for(var T="",E=0;E<g.length;E++)T+=String.fromCharCode(g[E]);return T},applyCanBeUsed:{uint8array:function(){try{return r.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch(g){return!1}}(),nodebuffer:function(){try{return r.nodebuffer&&String.fromCharCode.apply(null,s.allocBuffer(1)).length===1}catch(g){return!1}}()}};function m(g){var T=65536,E=e.getTypeOf(g),y=!0;if(E==="uint8array"?y=d.applyCanBeUsed.uint8array:E==="nodebuffer"&&(y=d.applyCanBeUsed.nodebuffer),y)for(;1<T;)try{return d.stringifyByChunk(g,E,T)}catch(v){T=Math.floor(T/2)}return d.stringifyByChar(g)}function l(g,T){for(var E=0;E<g.length;E++)T[E]=g[E];return T}e.applyFromCharCode=m;var f={};f.string={string:a,array:function(g){return c(g,new Array(g.length))},arraybuffer:function(g){return f.string.uint8array(g).buffer},uint8array:function(g){return c(g,new Uint8Array(g.length))},nodebuffer:function(g){return c(g,s.allocBuffer(g.length))}},f.array={string:m,array:a,arraybuffer:function(g){return new Uint8Array(g).buffer},uint8array:function(g){return new Uint8Array(g)},nodebuffer:function(g){return s.newBufferFrom(g)}},f.arraybuffer={string:function(g){return m(new Uint8Array(g))},array:function(g){return l(new Uint8Array(g),new Array(g.byteLength))},arraybuffer:a,uint8array:function(g){return new Uint8Array(g)},nodebuffer:function(g){return s.newBufferFrom(new Uint8Array(g))}},f.uint8array={string:m,array:function(g){return l(g,new Array(g.length))},arraybuffer:function(g){return g.buffer},uint8array:a,nodebuffer:function(g){return s.newBufferFrom(g)}},f.nodebuffer={string:m,array:function(g){return l(g,new Array(g.length))},arraybuffer:function(g){return f.nodebuffer.uint8array(g).buffer},uint8array:function(g){return l(g,new Uint8Array(g.length))},nodebuffer:a},e.transformTo=function(g,T){if(T=T||"",!g)return T;e.checkSupport(g);var E=e.getTypeOf(T);return f[E][g](T)},e.resolve=function(g){for(var T=g.split("/"),E=[],y=0;y<T.length;y++){var v=T[y];v==="."||v===""&&y!==0&&y!==T.length-1||(v===".."?E.pop():E.push(v))}return E.join("/")},e.getTypeOf=function(g){return typeof g=="string"?"string":Object.prototype.toString.call(g)==="[object Array]"?"array":r.nodebuffer&&s.isBuffer(g)?"nodebuffer":r.uint8array&&g instanceof Uint8Array?"uint8array":r.arraybuffer&&g instanceof ArrayBuffer?"arraybuffer":void 0},e.checkSupport=function(g){if(!r[g.toLowerCase()])throw new Error(g+" is not supported by this platform")},e.MAX_VALUE_16BITS=65535,e.MAX_VALUE_32BITS=-1,e.pretty=function(g){var T,E,y="";for(E=0;E<(g||"").length;E++)y+="\\x"+((T=g.charCodeAt(E))<16?"0":"")+T.toString(16).toUpperCase();return y},e.delay=function(g,T,E){setImmediate(function(){g.apply(E||null,T||[])})},e.inherits=function(g,T){function E(){}E.prototype=T.prototype,g.prototype=new E},e.extend=function(){var g,T,E={};for(g=0;g<arguments.length;g++)for(T in arguments[g])Object.prototype.hasOwnProperty.call(arguments[g],T)&&E[T]===void 0&&(E[T]=arguments[g][T]);return E},e.prepareContent=function(g,T,E,y,v){return n.Promise.resolve(T).then(function(M){return r.blob&&(M instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(M))!==-1)&&typeof FileReader!="undefined"?new n.Promise(function(w,H){var B=new FileReader;B.onload=function(P){w(P.target.result)},B.onerror=function(P){H(P.target.error)},B.readAsArrayBuffer(M)}):M}).then(function(M){var w=e.getTypeOf(M);return w?(w==="arraybuffer"?M=e.transformTo("uint8array",M):w==="string"&&(v?M=o.decode(M):E&&y!==!0&&(M=function(H){return c(H,r.uint8array?new Uint8Array(H.length):new Array(H.length))}(M))),M):n.Promise.reject(new Error("Can't read the data of '"+g+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(i,t,e){"use strict";var r=i("./reader/readerFor"),o=i("./utils"),s=i("./signature"),n=i("./zipEntry"),a=i("./support");function c(d){this.files=[],this.loadOptions=d}c.prototype={checkSignature:function(d){if(!this.reader.readAndCheckSignature(d)){this.reader.index-=4;var m=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+o.pretty(m)+", expected "+o.pretty(d)+")")}},isSignature:function(d,m){var l=this.reader.index;this.reader.setIndex(d);var f=this.reader.readString(4)===m;return this.reader.setIndex(l),f},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var d=this.reader.readData(this.zipCommentLength),m=a.uint8array?"uint8array":"array",l=o.transformTo(m,d);this.zipComment=this.loadOptions.decodeFileName(l)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var d,m,l,f=this.zip64EndOfCentralSize-44;0<f;)d=this.reader.readInt(2),m=this.reader.readInt(4),l=this.reader.readData(m),this.zip64ExtensibleData[d]={id:d,length:m,value:l}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var d,m;for(d=0;d<this.files.length;d++)m=this.files[d],this.reader.setIndex(m.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),m.readLocalPart(this.reader),m.handleUTF8(),m.processAttributes()},readCentralDir:function(){var d;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(d=new n({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(d);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var d=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(d<0)throw this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(d);var m=d;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===o.MAX_VALUE_16BITS||this.diskWithCentralDirStart===o.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===o.MAX_VALUE_16BITS||this.centralDirRecords===o.MAX_VALUE_16BITS||this.centralDirSize===o.MAX_VALUE_32BITS||this.centralDirOffset===o.MAX_VALUE_32BITS){if(this.zip64=!0,(d=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(d),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var l=this.centralDirOffset+this.centralDirSize;this.zip64&&(l+=20,l+=12+this.zip64EndOfCentralSize);var f=m-l;if(0<f)this.isSignature(m,s.CENTRAL_FILE_HEADER)||(this.reader.zero=f);else if(f<0)throw new Error("Corrupted zip: missing "+Math.abs(f)+" bytes.")},prepareReader:function(d){this.reader=r(d)},load:function(d){this.prepareReader(d),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=c},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(i,t,e){"use strict";var r=i("./reader/readerFor"),o=i("./utils"),s=i("./compressedObject"),n=i("./crc32"),a=i("./utf8"),c=i("./compressions"),d=i("./support");function m(l,f){this.options=l,this.loadOptions=f}m.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(l){var f,g;if(l.skip(22),this.fileNameLength=l.readInt(2),g=l.readInt(2),this.fileName=l.readData(this.fileNameLength),l.skip(g),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((f=function(T){for(var E in c)if(Object.prototype.hasOwnProperty.call(c,E)&&c[E].magic===T)return c[E];return null}(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+o.transformTo("string",this.fileName)+")");this.decompressed=new s(this.compressedSize,this.uncompressedSize,this.crc32,f,l.readData(this.compressedSize))},readCentralPart:function(l){this.versionMadeBy=l.readInt(2),l.skip(2),this.bitFlag=l.readInt(2),this.compressionMethod=l.readString(2),this.date=l.readDate(),this.crc32=l.readInt(4),this.compressedSize=l.readInt(4),this.uncompressedSize=l.readInt(4);var f=l.readInt(2);if(this.extraFieldsLength=l.readInt(2),this.fileCommentLength=l.readInt(2),this.diskNumberStart=l.readInt(2),this.internalFileAttributes=l.readInt(2),this.externalFileAttributes=l.readInt(4),this.localHeaderOffset=l.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");l.skip(f),this.readExtraFields(l),this.parseZIP64ExtraField(l),this.fileComment=l.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var l=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),l==0&&(this.dosPermissions=63&this.externalFileAttributes),l==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var l=r(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=l.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=l.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=l.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=l.readInt(4))}},readExtraFields:function(l){var f,g,T,E=l.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});l.index+4<E;)f=l.readInt(2),g=l.readInt(2),T=l.readData(g),this.extraFields[f]={id:f,length:g,value:T};l.setIndex(E)},handleUTF8:function(){var l=d.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=a.utf8decode(this.fileName),this.fileCommentStr=a.utf8decode(this.fileComment);else{var f=this.findExtraFieldUnicodePath();if(f!==null)this.fileNameStr=f;else{var g=o.transformTo(l,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(g)}var T=this.findExtraFieldUnicodeComment();if(T!==null)this.fileCommentStr=T;else{var E=o.transformTo(l,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(E)}}},findExtraFieldUnicodePath:function(){var l=this.extraFields[28789];if(l){var f=r(l.value);return f.readInt(1)!==1||n(this.fileName)!==f.readInt(4)?null:a.utf8decode(f.readData(l.length-5))}return null},findExtraFieldUnicodeComment:function(){var l=this.extraFields[25461];if(l){var f=r(l.value);return f.readInt(1)!==1||n(this.fileComment)!==f.readInt(4)?null:a.utf8decode(f.readData(l.length-5))}return null}},t.exports=m},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(i,t,e){"use strict";function r(f,g,T){this.name=f,this.dir=T.dir,this.date=T.date,this.comment=T.comment,this.unixPermissions=T.unixPermissions,this.dosPermissions=T.dosPermissions,this._data=g,this._dataBinary=T.binary,this.options={compression:T.compression,compressionOptions:T.compressionOptions}}var o=i("./stream/StreamHelper"),s=i("./stream/DataWorker"),n=i("./utf8"),a=i("./compressedObject"),c=i("./stream/GenericWorker");r.prototype={internalStream:function(f){var g=null,T="string";try{if(!f)throw new Error("No output type specified.");var E=(T=f.toLowerCase())==="string"||T==="text";T!=="binarystring"&&T!=="text"||(T="string"),g=this._decompressWorker();var y=!this._dataBinary;y&&!E&&(g=g.pipe(new n.Utf8EncodeWorker)),!y&&E&&(g=g.pipe(new n.Utf8DecodeWorker))}catch(v){(g=new c("error")).error(v)}return new o(g,T,"")},async:function(f,g){return this.internalStream(f).accumulate(g)},nodeStream:function(f,g){return this.internalStream(f||"nodebuffer").toNodejsStream(g)},_compressWorker:function(f,g){if(this._data instanceof a&&this._data.compression.magic===f.magic)return this._data.getCompressedWorker();var T=this._decompressWorker();return this._dataBinary||(T=T.pipe(new n.Utf8EncodeWorker)),a.createWorkerFrom(T,f,g)},_decompressWorker:function(){return this._data instanceof a?this._data.getContentWorker():this._data instanceof c?this._data:new s(this._data)}};for(var d=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],m=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},l=0;l<d.length;l++)r.prototype[d[l]]=m;t.exports=r},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(i,t,e){(function(r){"use strict";var o,s,n=r.MutationObserver||r.WebKitMutationObserver;if(n){var a=0,c=new n(f),d=r.document.createTextNode("");c.observe(d,{characterData:!0}),o=function(){d.data=a=++a%2}}else if(r.setImmediate||r.MessageChannel===void 0)o="document"in r&&"onreadystatechange"in r.document.createElement("script")?function(){var g=r.document.createElement("script");g.onreadystatechange=function(){f(),g.onreadystatechange=null,g.parentNode.removeChild(g),g=null},r.document.documentElement.appendChild(g)}:function(){setTimeout(f,0)};else{var m=new r.MessageChannel;m.port1.onmessage=f,o=function(){m.port2.postMessage(0)}}var l=[];function f(){var g,T;s=!0;for(var E=l.length;E;){for(T=l,l=[],g=-1;++g<E;)T[g]();E=l.length}s=!1}t.exports=function(g){l.push(g)!==1||s||o()}}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}],37:[function(i,t,e){"use strict";var r=i("immediate");function o(){}var s={},n=["REJECTED"],a=["FULFILLED"],c=["PENDING"];function d(E){if(typeof E!="function")throw new TypeError("resolver must be a function");this.state=c,this.queue=[],this.outcome=void 0,E!==o&&g(this,E)}function m(E,y,v){this.promise=E,typeof y=="function"&&(this.onFulfilled=y,this.callFulfilled=this.otherCallFulfilled),typeof v=="function"&&(this.onRejected=v,this.callRejected=this.otherCallRejected)}function l(E,y,v){r(function(){var M;try{M=y(v)}catch(w){return s.reject(E,w)}M===E?s.reject(E,new TypeError("Cannot resolve promise with itself")):s.resolve(E,M)})}function f(E){var y=E&&E.then;if(E&&(typeof E=="object"||typeof E=="function")&&typeof y=="function")return function(){y.apply(E,arguments)}}function g(E,y){var v=!1;function M(B){v||(v=!0,s.reject(E,B))}function w(B){v||(v=!0,s.resolve(E,B))}var H=T(function(){y(w,M)});H.status==="error"&&M(H.value)}function T(E,y){var v={};try{v.value=E(y),v.status="success"}catch(M){v.status="error",v.value=M}return v}(t.exports=d).prototype.finally=function(E){if(typeof E!="function")return this;var y=this.constructor;return this.then(function(v){return y.resolve(E()).then(function(){return v})},function(v){return y.resolve(E()).then(function(){throw v})})},d.prototype.catch=function(E){return this.then(null,E)},d.prototype.then=function(E,y){if(typeof E!="function"&&this.state===a||typeof y!="function"&&this.state===n)return this;var v=new this.constructor(o);return this.state!==c?l(v,this.state===a?E:y,this.outcome):this.queue.push(new m(v,E,y)),v},m.prototype.callFulfilled=function(E){s.resolve(this.promise,E)},m.prototype.otherCallFulfilled=function(E){l(this.promise,this.onFulfilled,E)},m.prototype.callRejected=function(E){s.reject(this.promise,E)},m.prototype.otherCallRejected=function(E){l(this.promise,this.onRejected,E)},s.resolve=function(E,y){var v=T(f,y);if(v.status==="error")return s.reject(E,v.value);var M=v.value;if(M)g(E,M);else{E.state=a,E.outcome=y;for(var w=-1,H=E.queue.length;++w<H;)E.queue[w].callFulfilled(y)}return E},s.reject=function(E,y){E.state=n,E.outcome=y;for(var v=-1,M=E.queue.length;++v<M;)E.queue[v].callRejected(y);return E},d.resolve=function(E){return E instanceof this?E:s.resolve(new this(o),E)},d.reject=function(E){var y=new this(o);return s.reject(y,E)},d.all=function(E){var y=this;if(Object.prototype.toString.call(E)!=="[object Array]")return this.reject(new TypeError("must be an array"));var v=E.length,M=!1;if(!v)return this.resolve([]);for(var w=new Array(v),H=0,B=-1,P=new this(o);++B<v;)$(E[B],B);return P;function $(de,Ae){y.resolve(de).then(function(L){w[Ae]=L,++H!==v||M||(M=!0,s.resolve(P,w))},function(L){M||(M=!0,s.reject(P,L))})}},d.race=function(E){var y=this;if(Object.prototype.toString.call(E)!=="[object Array]")return this.reject(new TypeError("must be an array"));var v=E.length,M=!1;if(!v)return this.resolve([]);for(var w=-1,H=new this(o);++w<v;)B=E[w],y.resolve(B).then(function(P){M||(M=!0,s.resolve(H,P))},function(P){M||(M=!0,s.reject(H,P))});var B;return H}},{immediate:36}],38:[function(i,t,e){"use strict";var r={};(0,i("./lib/utils/common").assign)(r,i("./lib/deflate"),i("./lib/inflate"),i("./lib/zlib/constants")),t.exports=r},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(i,t,e){"use strict";var r=i("./zlib/deflate"),o=i("./utils/common"),s=i("./utils/strings"),n=i("./zlib/messages"),a=i("./zlib/zstream"),c=Object.prototype.toString,d=0,m=-1,l=0,f=8;function g(E){if(!(this instanceof g))return new g(E);this.options=o.assign({level:m,method:f,chunkSize:16384,windowBits:15,memLevel:8,strategy:l,to:""},E||{});var y=this.options;y.raw&&0<y.windowBits?y.windowBits=-y.windowBits:y.gzip&&0<y.windowBits&&y.windowBits<16&&(y.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new a,this.strm.avail_out=0;var v=r.deflateInit2(this.strm,y.level,y.method,y.windowBits,y.memLevel,y.strategy);if(v!==d)throw new Error(n[v]);if(y.header&&r.deflateSetHeader(this.strm,y.header),y.dictionary){var M;if(M=typeof y.dictionary=="string"?s.string2buf(y.dictionary):c.call(y.dictionary)==="[object ArrayBuffer]"?new Uint8Array(y.dictionary):y.dictionary,(v=r.deflateSetDictionary(this.strm,M))!==d)throw new Error(n[v]);this._dict_set=!0}}function T(E,y){var v=new g(y);if(v.push(E,!0),v.err)throw v.msg||n[v.err];return v.result}g.prototype.push=function(E,y){var v,M,w=this.strm,H=this.options.chunkSize;if(this.ended)return!1;M=y===~~y?y:y===!0?4:0,typeof E=="string"?w.input=s.string2buf(E):c.call(E)==="[object ArrayBuffer]"?w.input=new Uint8Array(E):w.input=E,w.next_in=0,w.avail_in=w.input.length;do{if(w.avail_out===0&&(w.output=new o.Buf8(H),w.next_out=0,w.avail_out=H),(v=r.deflate(w,M))!==1&&v!==d)return this.onEnd(v),!(this.ended=!0);w.avail_out!==0&&(w.avail_in!==0||M!==4&&M!==2)||(this.options.to==="string"?this.onData(s.buf2binstring(o.shrinkBuf(w.output,w.next_out))):this.onData(o.shrinkBuf(w.output,w.next_out)))}while((0<w.avail_in||w.avail_out===0)&&v!==1);return M===4?(v=r.deflateEnd(this.strm),this.onEnd(v),this.ended=!0,v===d):M!==2||(this.onEnd(d),!(w.avail_out=0))},g.prototype.onData=function(E){this.chunks.push(E)},g.prototype.onEnd=function(E){E===d&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=E,this.msg=this.strm.msg},e.Deflate=g,e.deflate=T,e.deflateRaw=function(E,y){return(y=y||{}).raw=!0,T(E,y)},e.gzip=function(E,y){return(y=y||{}).gzip=!0,T(E,y)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(i,t,e){"use strict";var r=i("./zlib/inflate"),o=i("./utils/common"),s=i("./utils/strings"),n=i("./zlib/constants"),a=i("./zlib/messages"),c=i("./zlib/zstream"),d=i("./zlib/gzheader"),m=Object.prototype.toString;function l(g){if(!(this instanceof l))return new l(g);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},g||{});var T=this.options;T.raw&&0<=T.windowBits&&T.windowBits<16&&(T.windowBits=-T.windowBits,T.windowBits===0&&(T.windowBits=-15)),!(0<=T.windowBits&&T.windowBits<16)||g&&g.windowBits||(T.windowBits+=32),15<T.windowBits&&T.windowBits<48&&(15&T.windowBits)==0&&(T.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var E=r.inflateInit2(this.strm,T.windowBits);if(E!==n.Z_OK)throw new Error(a[E]);this.header=new d,r.inflateGetHeader(this.strm,this.header)}function f(g,T){var E=new l(T);if(E.push(g,!0),E.err)throw E.msg||a[E.err];return E.result}l.prototype.push=function(g,T){var E,y,v,M,w,H,B=this.strm,P=this.options.chunkSize,$=this.options.dictionary,de=!1;if(this.ended)return!1;y=T===~~T?T:T===!0?n.Z_FINISH:n.Z_NO_FLUSH,typeof g=="string"?B.input=s.binstring2buf(g):m.call(g)==="[object ArrayBuffer]"?B.input=new Uint8Array(g):B.input=g,B.next_in=0,B.avail_in=B.input.length;do{if(B.avail_out===0&&(B.output=new o.Buf8(P),B.next_out=0,B.avail_out=P),(E=r.inflate(B,n.Z_NO_FLUSH))===n.Z_NEED_DICT&&$&&(H=typeof $=="string"?s.string2buf($):m.call($)==="[object ArrayBuffer]"?new Uint8Array($):$,E=r.inflateSetDictionary(this.strm,H)),E===n.Z_BUF_ERROR&&de===!0&&(E=n.Z_OK,de=!1),E!==n.Z_STREAM_END&&E!==n.Z_OK)return this.onEnd(E),!(this.ended=!0);B.next_out&&(B.avail_out!==0&&E!==n.Z_STREAM_END&&(B.avail_in!==0||y!==n.Z_FINISH&&y!==n.Z_SYNC_FLUSH)||(this.options.to==="string"?(v=s.utf8border(B.output,B.next_out),M=B.next_out-v,w=s.buf2string(B.output,v),B.next_out=M,B.avail_out=P-M,M&&o.arraySet(B.output,B.output,v,M,0),this.onData(w)):this.onData(o.shrinkBuf(B.output,B.next_out)))),B.avail_in===0&&B.avail_out===0&&(de=!0)}while((0<B.avail_in||B.avail_out===0)&&E!==n.Z_STREAM_END);return E===n.Z_STREAM_END&&(y=n.Z_FINISH),y===n.Z_FINISH?(E=r.inflateEnd(this.strm),this.onEnd(E),this.ended=!0,E===n.Z_OK):y!==n.Z_SYNC_FLUSH||(this.onEnd(n.Z_OK),!(B.avail_out=0))},l.prototype.onData=function(g){this.chunks.push(g)},l.prototype.onEnd=function(g){g===n.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=g,this.msg=this.strm.msg},e.Inflate=l,e.inflate=f,e.inflateRaw=function(g,T){return(T=T||{}).raw=!0,f(g,T)},e.ungzip=f},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(i,t,e){"use strict";var r=typeof Uint8Array!="undefined"&&typeof Uint16Array!="undefined"&&typeof Int32Array!="undefined";e.assign=function(n){for(var a=Array.prototype.slice.call(arguments,1);a.length;){var c=a.shift();if(c){if(typeof c!="object")throw new TypeError(c+"must be non-object");for(var d in c)c.hasOwnProperty(d)&&(n[d]=c[d])}}return n},e.shrinkBuf=function(n,a){return n.length===a?n:n.subarray?n.subarray(0,a):(n.length=a,n)};var o={arraySet:function(n,a,c,d,m){if(a.subarray&&n.subarray)n.set(a.subarray(c,c+d),m);else for(var l=0;l<d;l++)n[m+l]=a[c+l]},flattenChunks:function(n){var a,c,d,m,l,f;for(a=d=0,c=n.length;a<c;a++)d+=n[a].length;for(f=new Uint8Array(d),a=m=0,c=n.length;a<c;a++)l=n[a],f.set(l,m),m+=l.length;return f}},s={arraySet:function(n,a,c,d,m){for(var l=0;l<d;l++)n[m+l]=a[c+l]},flattenChunks:function(n){return[].concat.apply([],n)}};e.setTyped=function(n){n?(e.Buf8=Uint8Array,e.Buf16=Uint16Array,e.Buf32=Int32Array,e.assign(e,o)):(e.Buf8=Array,e.Buf16=Array,e.Buf32=Array,e.assign(e,s))},e.setTyped(r)},{}],42:[function(i,t,e){"use strict";var r=i("./common"),o=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(d){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(d){s=!1}for(var n=new r.Buf8(256),a=0;a<256;a++)n[a]=252<=a?6:248<=a?5:240<=a?4:224<=a?3:192<=a?2:1;function c(d,m){if(m<65537&&(d.subarray&&s||!d.subarray&&o))return String.fromCharCode.apply(null,r.shrinkBuf(d,m));for(var l="",f=0;f<m;f++)l+=String.fromCharCode(d[f]);return l}n[254]=n[254]=1,e.string2buf=function(d){var m,l,f,g,T,E=d.length,y=0;for(g=0;g<E;g++)(64512&(l=d.charCodeAt(g)))==55296&&g+1<E&&(64512&(f=d.charCodeAt(g+1)))==56320&&(l=65536+(l-55296<<10)+(f-56320),g++),y+=l<128?1:l<2048?2:l<65536?3:4;for(m=new r.Buf8(y),g=T=0;T<y;g++)(64512&(l=d.charCodeAt(g)))==55296&&g+1<E&&(64512&(f=d.charCodeAt(g+1)))==56320&&(l=65536+(l-55296<<10)+(f-56320),g++),l<128?m[T++]=l:(l<2048?m[T++]=192|l>>>6:(l<65536?m[T++]=224|l>>>12:(m[T++]=240|l>>>18,m[T++]=128|l>>>12&63),m[T++]=128|l>>>6&63),m[T++]=128|63&l);return m},e.buf2binstring=function(d){return c(d,d.length)},e.binstring2buf=function(d){for(var m=new r.Buf8(d.length),l=0,f=m.length;l<f;l++)m[l]=d.charCodeAt(l);return m},e.buf2string=function(d,m){var l,f,g,T,E=m||d.length,y=new Array(2*E);for(l=f=0;l<E;)if((g=d[l++])<128)y[f++]=g;else if(4<(T=n[g]))y[f++]=65533,l+=T-1;else{for(g&=T===2?31:T===3?15:7;1<T&&l<E;)g=g<<6|63&d[l++],T--;1<T?y[f++]=65533:g<65536?y[f++]=g:(g-=65536,y[f++]=55296|g>>10&1023,y[f++]=56320|1023&g)}return c(y,f)},e.utf8border=function(d,m){var l;for((m=m||d.length)>d.length&&(m=d.length),l=m-1;0<=l&&(192&d[l])==128;)l--;return l<0||l===0?m:l+n[d[l]]>m?l:m}},{"./common":41}],43:[function(i,t,e){"use strict";t.exports=function(r,o,s,n){for(var a=65535&r|0,c=r>>>16&65535|0,d=0;s!==0;){for(s-=d=2e3<s?2e3:s;c=c+(a=a+o[n++]|0)|0,--d;);a%=65521,c%=65521}return a|c<<16|0}},{}],44:[function(i,t,e){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(i,t,e){"use strict";var r=function(){for(var o,s=[],n=0;n<256;n++){o=n;for(var a=0;a<8;a++)o=1&o?3988292384^o>>>1:o>>>1;s[n]=o}return s}();t.exports=function(o,s,n,a){var c=r,d=a+n;o^=-1;for(var m=a;m<d;m++)o=o>>>8^c[255&(o^s[m])];return-1^o}},{}],46:[function(i,t,e){"use strict";var r,o=i("../utils/common"),s=i("./trees"),n=i("./adler32"),a=i("./crc32"),c=i("./messages"),d=0,m=4,l=0,f=-2,g=-1,T=4,E=2,y=8,v=9,M=286,w=30,H=19,B=2*M+1,P=15,$=3,de=258,Ae=de+$+1,L=42,te=113,A=1,le=2,He=3,ge=4;function ze(S,ue){return S.msg=c[ue],ue}function me(S){return(S<<1)-(4<S?9:0)}function re(S){for(var ue=S.length;0<=--ue;)S[ue]=0}function Q(S){var ue=S.state,Y=ue.pending;Y>S.avail_out&&(Y=S.avail_out),Y!==0&&(o.arraySet(S.output,ue.pending_buf,ue.pending_out,Y,S.next_out),S.next_out+=Y,ue.pending_out+=Y,S.total_out+=Y,S.avail_out-=Y,ue.pending-=Y,ue.pending===0&&(ue.pending_out=0))}function q(S,ue){s._tr_flush_block(S,0<=S.block_start?S.block_start:-1,S.strstart-S.block_start,ue),S.block_start=S.strstart,Q(S.strm)}function Be(S,ue){S.pending_buf[S.pending++]=ue}function De(S,ue){S.pending_buf[S.pending++]=ue>>>8&255,S.pending_buf[S.pending++]=255&ue}function ne(S,ue){var Y,x,O=S.max_chain_length,F=S.strstart,pe=S.prev_length,fe=S.nice_match,X=S.strstart>S.w_size-Ae?S.strstart-(S.w_size-Ae):0,oe=S.window,xe=S.w_mask,Z=S.prev,$e=S.strstart+de,b=oe[F+pe-1],it=oe[F+pe];S.prev_length>=S.good_match&&(O>>=2),fe>S.lookahead&&(fe=S.lookahead);do if(oe[(Y=ue)+pe]===it&&oe[Y+pe-1]===b&&oe[Y]===oe[F]&&oe[++Y]===oe[F+1]){F+=2,Y++;do;while(oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&oe[++F]===oe[++Y]&&F<$e);if(x=de-($e-F),F=$e-de,pe<x){if(S.match_start=ue,fe<=(pe=x))break;b=oe[F+pe-1],it=oe[F+pe]}}while((ue=Z[ue&xe])>X&&--O!=0);return pe<=S.lookahead?pe:S.lookahead}function Ze(S){var ue,Y,x,O,F,pe,fe,X,oe,xe,Z=S.w_size;do{if(O=S.window_size-S.lookahead-S.strstart,S.strstart>=Z+(Z-Ae)){for(o.arraySet(S.window,S.window,Z,Z,0),S.match_start-=Z,S.strstart-=Z,S.block_start-=Z,ue=Y=S.hash_size;x=S.head[--ue],S.head[ue]=Z<=x?x-Z:0,--Y;);for(ue=Y=Z;x=S.prev[--ue],S.prev[ue]=Z<=x?x-Z:0,--Y;);O+=Z}if(S.strm.avail_in===0)break;if(pe=S.strm,fe=S.window,X=S.strstart+S.lookahead,oe=O,xe=void 0,xe=pe.avail_in,oe<xe&&(xe=oe),Y=xe===0?0:(pe.avail_in-=xe,o.arraySet(fe,pe.input,pe.next_in,xe,X),pe.state.wrap===1?pe.adler=n(pe.adler,fe,xe,X):pe.state.wrap===2&&(pe.adler=a(pe.adler,fe,xe,X)),pe.next_in+=xe,pe.total_in+=xe,xe),S.lookahead+=Y,S.lookahead+S.insert>=$)for(F=S.strstart-S.insert,S.ins_h=S.window[F],S.ins_h=(S.ins_h<<S.hash_shift^S.window[F+1])&S.hash_mask;S.insert&&(S.ins_h=(S.ins_h<<S.hash_shift^S.window[F+$-1])&S.hash_mask,S.prev[F&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=F,F++,S.insert--,!(S.lookahead+S.insert<$)););}while(S.lookahead<Ae&&S.strm.avail_in!==0)}function yt(S,ue){for(var Y,x;;){if(S.lookahead<Ae){if(Ze(S),S.lookahead<Ae&&ue===d)return A;if(S.lookahead===0)break}if(Y=0,S.lookahead>=$&&(S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+$-1])&S.hash_mask,Y=S.prev[S.strstart&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=S.strstart),Y!==0&&S.strstart-Y<=S.w_size-Ae&&(S.match_length=ne(S,Y)),S.match_length>=$)if(x=s._tr_tally(S,S.strstart-S.match_start,S.match_length-$),S.lookahead-=S.match_length,S.match_length<=S.max_lazy_match&&S.lookahead>=$){for(S.match_length--;S.strstart++,S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+$-1])&S.hash_mask,Y=S.prev[S.strstart&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=S.strstart,--S.match_length!=0;);S.strstart++}else S.strstart+=S.match_length,S.match_length=0,S.ins_h=S.window[S.strstart],S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+1])&S.hash_mask;else x=s._tr_tally(S,0,S.window[S.strstart]),S.lookahead--,S.strstart++;if(x&&(q(S,!1),S.strm.avail_out===0))return A}return S.insert=S.strstart<$-1?S.strstart:$-1,ue===m?(q(S,!0),S.strm.avail_out===0?He:ge):S.last_lit&&(q(S,!1),S.strm.avail_out===0)?A:le}function ae(S,ue){for(var Y,x,O;;){if(S.lookahead<Ae){if(Ze(S),S.lookahead<Ae&&ue===d)return A;if(S.lookahead===0)break}if(Y=0,S.lookahead>=$&&(S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+$-1])&S.hash_mask,Y=S.prev[S.strstart&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=S.strstart),S.prev_length=S.match_length,S.prev_match=S.match_start,S.match_length=$-1,Y!==0&&S.prev_length<S.max_lazy_match&&S.strstart-Y<=S.w_size-Ae&&(S.match_length=ne(S,Y),S.match_length<=5&&(S.strategy===1||S.match_length===$&&4096<S.strstart-S.match_start)&&(S.match_length=$-1)),S.prev_length>=$&&S.match_length<=S.prev_length){for(O=S.strstart+S.lookahead-$,x=s._tr_tally(S,S.strstart-1-S.prev_match,S.prev_length-$),S.lookahead-=S.prev_length-1,S.prev_length-=2;++S.strstart<=O&&(S.ins_h=(S.ins_h<<S.hash_shift^S.window[S.strstart+$-1])&S.hash_mask,Y=S.prev[S.strstart&S.w_mask]=S.head[S.ins_h],S.head[S.ins_h]=S.strstart),--S.prev_length!=0;);if(S.match_available=0,S.match_length=$-1,S.strstart++,x&&(q(S,!1),S.strm.avail_out===0))return A}else if(S.match_available){if((x=s._tr_tally(S,0,S.window[S.strstart-1]))&&q(S,!1),S.strstart++,S.lookahead--,S.strm.avail_out===0)return A}else S.match_available=1,S.strstart++,S.lookahead--}return S.match_available&&(x=s._tr_tally(S,0,S.window[S.strstart-1]),S.match_available=0),S.insert=S.strstart<$-1?S.strstart:$-1,ue===m?(q(S,!0),S.strm.avail_out===0?He:ge):S.last_lit&&(q(S,!1),S.strm.avail_out===0)?A:le}function at(S,ue,Y,x,O){this.good_length=S,this.max_lazy=ue,this.nice_length=Y,this.max_chain=x,this.func=O}function Lt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=y,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new o.Buf16(2*B),this.dyn_dtree=new o.Buf16(2*(2*w+1)),this.bl_tree=new o.Buf16(2*(2*H+1)),re(this.dyn_ltree),re(this.dyn_dtree),re(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new o.Buf16(P+1),this.heap=new o.Buf16(2*M+1),re(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new o.Buf16(2*M+1),re(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function wt(S){var ue;return S&&S.state?(S.total_in=S.total_out=0,S.data_type=E,(ue=S.state).pending=0,ue.pending_out=0,ue.wrap<0&&(ue.wrap=-ue.wrap),ue.status=ue.wrap?L:te,S.adler=ue.wrap===2?0:1,ue.last_flush=d,s._tr_init(ue),l):ze(S,f)}function we(S){var ue=wt(S);return ue===l&&function(Y){Y.window_size=2*Y.w_size,re(Y.head),Y.max_lazy_match=r[Y.level].max_lazy,Y.good_match=r[Y.level].good_length,Y.nice_match=r[Y.level].nice_length,Y.max_chain_length=r[Y.level].max_chain,Y.strstart=0,Y.block_start=0,Y.lookahead=0,Y.insert=0,Y.match_length=Y.prev_length=$-1,Y.match_available=0,Y.ins_h=0}(S.state),ue}function fr(S,ue,Y,x,O,F){if(!S)return f;var pe=1;if(ue===g&&(ue=6),x<0?(pe=0,x=-x):15<x&&(pe=2,x-=16),O<1||v<O||Y!==y||x<8||15<x||ue<0||9<ue||F<0||T<F)return ze(S,f);x===8&&(x=9);var fe=new Lt;return(S.state=fe).strm=S,fe.wrap=pe,fe.gzhead=null,fe.w_bits=x,fe.w_size=1<<fe.w_bits,fe.w_mask=fe.w_size-1,fe.hash_bits=O+7,fe.hash_size=1<<fe.hash_bits,fe.hash_mask=fe.hash_size-1,fe.hash_shift=~~((fe.hash_bits+$-1)/$),fe.window=new o.Buf8(2*fe.w_size),fe.head=new o.Buf16(fe.hash_size),fe.prev=new o.Buf16(fe.w_size),fe.lit_bufsize=1<<O+6,fe.pending_buf_size=4*fe.lit_bufsize,fe.pending_buf=new o.Buf8(fe.pending_buf_size),fe.d_buf=1*fe.lit_bufsize,fe.l_buf=3*fe.lit_bufsize,fe.level=ue,fe.strategy=F,fe.method=Y,we(S)}r=[new at(0,0,0,0,function(S,ue){var Y=65535;for(Y>S.pending_buf_size-5&&(Y=S.pending_buf_size-5);;){if(S.lookahead<=1){if(Ze(S),S.lookahead===0&&ue===d)return A;if(S.lookahead===0)break}S.strstart+=S.lookahead,S.lookahead=0;var x=S.block_start+Y;if((S.strstart===0||S.strstart>=x)&&(S.lookahead=S.strstart-x,S.strstart=x,q(S,!1),S.strm.avail_out===0)||S.strstart-S.block_start>=S.w_size-Ae&&(q(S,!1),S.strm.avail_out===0))return A}return S.insert=0,ue===m?(q(S,!0),S.strm.avail_out===0?He:ge):(S.strstart>S.block_start&&(q(S,!1),S.strm.avail_out),A)}),new at(4,4,8,4,yt),new at(4,5,16,8,yt),new at(4,6,32,32,yt),new at(4,4,16,16,ae),new at(8,16,32,32,ae),new at(8,16,128,128,ae),new at(8,32,128,256,ae),new at(32,128,258,1024,ae),new at(32,258,258,4096,ae)],e.deflateInit=function(S,ue){return fr(S,ue,y,15,8,0)},e.deflateInit2=fr,e.deflateReset=we,e.deflateResetKeep=wt,e.deflateSetHeader=function(S,ue){return S&&S.state?S.state.wrap!==2?f:(S.state.gzhead=ue,l):f},e.deflate=function(S,ue){var Y,x,O,F;if(!S||!S.state||5<ue||ue<0)return S?ze(S,f):f;if(x=S.state,!S.output||!S.input&&S.avail_in!==0||x.status===666&&ue!==m)return ze(S,S.avail_out===0?-5:f);if(x.strm=S,Y=x.last_flush,x.last_flush=ue,x.status===L)if(x.wrap===2)S.adler=0,Be(x,31),Be(x,139),Be(x,8),x.gzhead?(Be(x,(x.gzhead.text?1:0)+(x.gzhead.hcrc?2:0)+(x.gzhead.extra?4:0)+(x.gzhead.name?8:0)+(x.gzhead.comment?16:0)),Be(x,255&x.gzhead.time),Be(x,x.gzhead.time>>8&255),Be(x,x.gzhead.time>>16&255),Be(x,x.gzhead.time>>24&255),Be(x,x.level===9?2:2<=x.strategy||x.level<2?4:0),Be(x,255&x.gzhead.os),x.gzhead.extra&&x.gzhead.extra.length&&(Be(x,255&x.gzhead.extra.length),Be(x,x.gzhead.extra.length>>8&255)),x.gzhead.hcrc&&(S.adler=a(S.adler,x.pending_buf,x.pending,0)),x.gzindex=0,x.status=69):(Be(x,0),Be(x,0),Be(x,0),Be(x,0),Be(x,0),Be(x,x.level===9?2:2<=x.strategy||x.level<2?4:0),Be(x,3),x.status=te);else{var pe=y+(x.w_bits-8<<4)<<8;pe|=(2<=x.strategy||x.level<2?0:x.level<6?1:x.level===6?2:3)<<6,x.strstart!==0&&(pe|=32),pe+=31-pe%31,x.status=te,De(x,pe),x.strstart!==0&&(De(x,S.adler>>>16),De(x,65535&S.adler)),S.adler=1}if(x.status===69)if(x.gzhead.extra){for(O=x.pending;x.gzindex<(65535&x.gzhead.extra.length)&&(x.pending!==x.pending_buf_size||(x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),Q(S),O=x.pending,x.pending!==x.pending_buf_size));)Be(x,255&x.gzhead.extra[x.gzindex]),x.gzindex++;x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),x.gzindex===x.gzhead.extra.length&&(x.gzindex=0,x.status=73)}else x.status=73;if(x.status===73)if(x.gzhead.name){O=x.pending;do{if(x.pending===x.pending_buf_size&&(x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),Q(S),O=x.pending,x.pending===x.pending_buf_size)){F=1;break}F=x.gzindex<x.gzhead.name.length?255&x.gzhead.name.charCodeAt(x.gzindex++):0,Be(x,F)}while(F!==0);x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),F===0&&(x.gzindex=0,x.status=91)}else x.status=91;if(x.status===91)if(x.gzhead.comment){O=x.pending;do{if(x.pending===x.pending_buf_size&&(x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),Q(S),O=x.pending,x.pending===x.pending_buf_size)){F=1;break}F=x.gzindex<x.gzhead.comment.length?255&x.gzhead.comment.charCodeAt(x.gzindex++):0,Be(x,F)}while(F!==0);x.gzhead.hcrc&&x.pending>O&&(S.adler=a(S.adler,x.pending_buf,x.pending-O,O)),F===0&&(x.status=103)}else x.status=103;if(x.status===103&&(x.gzhead.hcrc?(x.pending+2>x.pending_buf_size&&Q(S),x.pending+2<=x.pending_buf_size&&(Be(x,255&S.adler),Be(x,S.adler>>8&255),S.adler=0,x.status=te)):x.status=te),x.pending!==0){if(Q(S),S.avail_out===0)return x.last_flush=-1,l}else if(S.avail_in===0&&me(ue)<=me(Y)&&ue!==m)return ze(S,-5);if(x.status===666&&S.avail_in!==0)return ze(S,-5);if(S.avail_in!==0||x.lookahead!==0||ue!==d&&x.status!==666){var fe=x.strategy===2?function(X,oe){for(var xe;;){if(X.lookahead===0&&(Ze(X),X.lookahead===0)){if(oe===d)return A;break}if(X.match_length=0,xe=s._tr_tally(X,0,X.window[X.strstart]),X.lookahead--,X.strstart++,xe&&(q(X,!1),X.strm.avail_out===0))return A}return X.insert=0,oe===m?(q(X,!0),X.strm.avail_out===0?He:ge):X.last_lit&&(q(X,!1),X.strm.avail_out===0)?A:le}(x,ue):x.strategy===3?function(X,oe){for(var xe,Z,$e,b,it=X.window;;){if(X.lookahead<=de){if(Ze(X),X.lookahead<=de&&oe===d)return A;if(X.lookahead===0)break}if(X.match_length=0,X.lookahead>=$&&0<X.strstart&&(Z=it[$e=X.strstart-1])===it[++$e]&&Z===it[++$e]&&Z===it[++$e]){b=X.strstart+de;do;while(Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&Z===it[++$e]&&$e<b);X.match_length=de-(b-$e),X.match_length>X.lookahead&&(X.match_length=X.lookahead)}if(X.match_length>=$?(xe=s._tr_tally(X,1,X.match_length-$),X.lookahead-=X.match_length,X.strstart+=X.match_length,X.match_length=0):(xe=s._tr_tally(X,0,X.window[X.strstart]),X.lookahead--,X.strstart++),xe&&(q(X,!1),X.strm.avail_out===0))return A}return X.insert=0,oe===m?(q(X,!0),X.strm.avail_out===0?He:ge):X.last_lit&&(q(X,!1),X.strm.avail_out===0)?A:le}(x,ue):r[x.level].func(x,ue);if(fe!==He&&fe!==ge||(x.status=666),fe===A||fe===He)return S.avail_out===0&&(x.last_flush=-1),l;if(fe===le&&(ue===1?s._tr_align(x):ue!==5&&(s._tr_stored_block(x,0,0,!1),ue===3&&(re(x.head),x.lookahead===0&&(x.strstart=0,x.block_start=0,x.insert=0))),Q(S),S.avail_out===0))return x.last_flush=-1,l}return ue!==m?l:x.wrap<=0?1:(x.wrap===2?(Be(x,255&S.adler),Be(x,S.adler>>8&255),Be(x,S.adler>>16&255),Be(x,S.adler>>24&255),Be(x,255&S.total_in),Be(x,S.total_in>>8&255),Be(x,S.total_in>>16&255),Be(x,S.total_in>>24&255)):(De(x,S.adler>>>16),De(x,65535&S.adler)),Q(S),0<x.wrap&&(x.wrap=-x.wrap),x.pending!==0?l:1)},e.deflateEnd=function(S){var ue;return S&&S.state?(ue=S.state.status)!==L&&ue!==69&&ue!==73&&ue!==91&&ue!==103&&ue!==te&&ue!==666?ze(S,f):(S.state=null,ue===te?ze(S,-3):l):f},e.deflateSetDictionary=function(S,ue){var Y,x,O,F,pe,fe,X,oe,xe=ue.length;if(!S||!S.state||(F=(Y=S.state).wrap)===2||F===1&&Y.status!==L||Y.lookahead)return f;for(F===1&&(S.adler=n(S.adler,ue,xe,0)),Y.wrap=0,xe>=Y.w_size&&(F===0&&(re(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0),oe=new o.Buf8(Y.w_size),o.arraySet(oe,ue,xe-Y.w_size,Y.w_size,0),ue=oe,xe=Y.w_size),pe=S.avail_in,fe=S.next_in,X=S.input,S.avail_in=xe,S.next_in=0,S.input=ue,Ze(Y);Y.lookahead>=$;){for(x=Y.strstart,O=Y.lookahead-($-1);Y.ins_h=(Y.ins_h<<Y.hash_shift^Y.window[x+$-1])&Y.hash_mask,Y.prev[x&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=x,x++,--O;);Y.strstart=x,Y.lookahead=$-1,Ze(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=$-1,Y.match_available=0,S.next_in=fe,S.input=X,S.avail_in=pe,Y.wrap=F,l},e.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(i,t,e){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(i,t,e){"use strict";t.exports=function(r,o){var s,n,a,c,d,m,l,f,g,T,E,y,v,M,w,H,B,P,$,de,Ae,L,te,A,le;s=r.state,n=r.next_in,A=r.input,a=n+(r.avail_in-5),c=r.next_out,le=r.output,d=c-(o-r.avail_out),m=c+(r.avail_out-257),l=s.dmax,f=s.wsize,g=s.whave,T=s.wnext,E=s.window,y=s.hold,v=s.bits,M=s.lencode,w=s.distcode,H=(1<<s.lenbits)-1,B=(1<<s.distbits)-1;e:do{v<15&&(y+=A[n++]<<v,v+=8,y+=A[n++]<<v,v+=8),P=M[y&H];t:for(;;){if(y>>>=$=P>>>24,v-=$,($=P>>>16&255)===0)le[c++]=65535&P;else{if(!(16&$)){if((64&$)==0){P=M[(65535&P)+(y&(1<<$)-1)];continue t}if(32&$){s.mode=12;break e}r.msg="invalid literal/length code",s.mode=30;break e}de=65535&P,($&=15)&&(v<$&&(y+=A[n++]<<v,v+=8),de+=y&(1<<$)-1,y>>>=$,v-=$),v<15&&(y+=A[n++]<<v,v+=8,y+=A[n++]<<v,v+=8),P=w[y&B];r:for(;;){if(y>>>=$=P>>>24,v-=$,!(16&($=P>>>16&255))){if((64&$)==0){P=w[(65535&P)+(y&(1<<$)-1)];continue r}r.msg="invalid distance code",s.mode=30;break e}if(Ae=65535&P,v<($&=15)&&(y+=A[n++]<<v,(v+=8)<$&&(y+=A[n++]<<v,v+=8)),l<(Ae+=y&(1<<$)-1)){r.msg="invalid distance too far back",s.mode=30;break e}if(y>>>=$,v-=$,($=c-d)<Ae){if(g<($=Ae-$)&&s.sane){r.msg="invalid distance too far back",s.mode=30;break e}if(te=E,(L=0)===T){if(L+=f-$,$<de){for(de-=$;le[c++]=E[L++],--$;);L=c-Ae,te=le}}else if(T<$){if(L+=f+T-$,($-=T)<de){for(de-=$;le[c++]=E[L++],--$;);if(L=0,T<de){for(de-=$=T;le[c++]=E[L++],--$;);L=c-Ae,te=le}}}else if(L+=T-$,$<de){for(de-=$;le[c++]=E[L++],--$;);L=c-Ae,te=le}for(;2<de;)le[c++]=te[L++],le[c++]=te[L++],le[c++]=te[L++],de-=3;de&&(le[c++]=te[L++],1<de&&(le[c++]=te[L++]))}else{for(L=c-Ae;le[c++]=le[L++],le[c++]=le[L++],le[c++]=le[L++],2<(de-=3););de&&(le[c++]=le[L++],1<de&&(le[c++]=le[L++]))}break}}break}}while(n<a&&c<m);n-=de=v>>3,y&=(1<<(v-=de<<3))-1,r.next_in=n,r.next_out=c,r.avail_in=n<a?a-n+5:5-(n-a),r.avail_out=c<m?m-c+257:257-(c-m),s.hold=y,s.bits=v}},{}],49:[function(i,t,e){"use strict";var r=i("../utils/common"),o=i("./adler32"),s=i("./crc32"),n=i("./inffast"),a=i("./inftrees"),c=1,d=2,m=0,l=-2,f=1,g=852,T=592;function E(L){return(L>>>24&255)+(L>>>8&65280)+((65280&L)<<8)+((255&L)<<24)}function y(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function v(L){var te;return L&&L.state?(te=L.state,L.total_in=L.total_out=te.total=0,L.msg="",te.wrap&&(L.adler=1&te.wrap),te.mode=f,te.last=0,te.havedict=0,te.dmax=32768,te.head=null,te.hold=0,te.bits=0,te.lencode=te.lendyn=new r.Buf32(g),te.distcode=te.distdyn=new r.Buf32(T),te.sane=1,te.back=-1,m):l}function M(L){var te;return L&&L.state?((te=L.state).wsize=0,te.whave=0,te.wnext=0,v(L)):l}function w(L,te){var A,le;return L&&L.state?(le=L.state,te<0?(A=0,te=-te):(A=1+(te>>4),te<48&&(te&=15)),te&&(te<8||15<te)?l:(le.window!==null&&le.wbits!==te&&(le.window=null),le.wrap=A,le.wbits=te,M(L))):l}function H(L,te){var A,le;return L?(le=new y,(L.state=le).window=null,(A=w(L,te))!==m&&(L.state=null),A):l}var B,P,$=!0;function de(L){if($){var te;for(B=new r.Buf32(512),P=new r.Buf32(32),te=0;te<144;)L.lens[te++]=8;for(;te<256;)L.lens[te++]=9;for(;te<280;)L.lens[te++]=7;for(;te<288;)L.lens[te++]=8;for(a(c,L.lens,0,288,B,0,L.work,{bits:9}),te=0;te<32;)L.lens[te++]=5;a(d,L.lens,0,32,P,0,L.work,{bits:5}),$=!1}L.lencode=B,L.lenbits=9,L.distcode=P,L.distbits=5}function Ae(L,te,A,le){var He,ge=L.state;return ge.window===null&&(ge.wsize=1<<ge.wbits,ge.wnext=0,ge.whave=0,ge.window=new r.Buf8(ge.wsize)),le>=ge.wsize?(r.arraySet(ge.window,te,A-ge.wsize,ge.wsize,0),ge.wnext=0,ge.whave=ge.wsize):(le<(He=ge.wsize-ge.wnext)&&(He=le),r.arraySet(ge.window,te,A-le,He,ge.wnext),(le-=He)?(r.arraySet(ge.window,te,A-le,le,0),ge.wnext=le,ge.whave=ge.wsize):(ge.wnext+=He,ge.wnext===ge.wsize&&(ge.wnext=0),ge.whave<ge.wsize&&(ge.whave+=He))),0}e.inflateReset=M,e.inflateReset2=w,e.inflateResetKeep=v,e.inflateInit=function(L){return H(L,15)},e.inflateInit2=H,e.inflate=function(L,te){var A,le,He,ge,ze,me,re,Q,q,Be,De,ne,Ze,yt,ae,at,Lt,wt,we,fr,S,ue,Y,x,O=0,F=new r.Buf8(4),pe=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!L||!L.state||!L.output||!L.input&&L.avail_in!==0)return l;(A=L.state).mode===12&&(A.mode=13),ze=L.next_out,He=L.output,re=L.avail_out,ge=L.next_in,le=L.input,me=L.avail_in,Q=A.hold,q=A.bits,Be=me,De=re,ue=m;e:for(;;)switch(A.mode){case f:if(A.wrap===0){A.mode=13;break}for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(2&A.wrap&&Q===35615){F[A.check=0]=255&Q,F[1]=Q>>>8&255,A.check=s(A.check,F,2,0),q=Q=0,A.mode=2;break}if(A.flags=0,A.head&&(A.head.done=!1),!(1&A.wrap)||(((255&Q)<<8)+(Q>>8))%31){L.msg="incorrect header check",A.mode=30;break}if((15&Q)!=8){L.msg="unknown compression method",A.mode=30;break}if(q-=4,S=8+(15&(Q>>>=4)),A.wbits===0)A.wbits=S;else if(S>A.wbits){L.msg="invalid window size",A.mode=30;break}A.dmax=1<<S,L.adler=A.check=1,A.mode=512&Q?10:12,q=Q=0;break;case 2:for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(A.flags=Q,(255&A.flags)!=8){L.msg="unknown compression method",A.mode=30;break}if(57344&A.flags){L.msg="unknown header flags set",A.mode=30;break}A.head&&(A.head.text=Q>>8&1),512&A.flags&&(F[0]=255&Q,F[1]=Q>>>8&255,A.check=s(A.check,F,2,0)),q=Q=0,A.mode=3;case 3:for(;q<32;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.head&&(A.head.time=Q),512&A.flags&&(F[0]=255&Q,F[1]=Q>>>8&255,F[2]=Q>>>16&255,F[3]=Q>>>24&255,A.check=s(A.check,F,4,0)),q=Q=0,A.mode=4;case 4:for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.head&&(A.head.xflags=255&Q,A.head.os=Q>>8),512&A.flags&&(F[0]=255&Q,F[1]=Q>>>8&255,A.check=s(A.check,F,2,0)),q=Q=0,A.mode=5;case 5:if(1024&A.flags){for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.length=Q,A.head&&(A.head.extra_len=Q),512&A.flags&&(F[0]=255&Q,F[1]=Q>>>8&255,A.check=s(A.check,F,2,0)),q=Q=0}else A.head&&(A.head.extra=null);A.mode=6;case 6:if(1024&A.flags&&(me<(ne=A.length)&&(ne=me),ne&&(A.head&&(S=A.head.extra_len-A.length,A.head.extra||(A.head.extra=new Array(A.head.extra_len)),r.arraySet(A.head.extra,le,ge,ne,S)),512&A.flags&&(A.check=s(A.check,le,ne,ge)),me-=ne,ge+=ne,A.length-=ne),A.length))break e;A.length=0,A.mode=7;case 7:if(2048&A.flags){if(me===0)break e;for(ne=0;S=le[ge+ne++],A.head&&S&&A.length<65536&&(A.head.name+=String.fromCharCode(S)),S&&ne<me;);if(512&A.flags&&(A.check=s(A.check,le,ne,ge)),me-=ne,ge+=ne,S)break e}else A.head&&(A.head.name=null);A.length=0,A.mode=8;case 8:if(4096&A.flags){if(me===0)break e;for(ne=0;S=le[ge+ne++],A.head&&S&&A.length<65536&&(A.head.comment+=String.fromCharCode(S)),S&&ne<me;);if(512&A.flags&&(A.check=s(A.check,le,ne,ge)),me-=ne,ge+=ne,S)break e}else A.head&&(A.head.comment=null);A.mode=9;case 9:if(512&A.flags){for(;q<16;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(Q!==(65535&A.check)){L.msg="header crc mismatch",A.mode=30;break}q=Q=0}A.head&&(A.head.hcrc=A.flags>>9&1,A.head.done=!0),L.adler=A.check=0,A.mode=12;break;case 10:for(;q<32;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}L.adler=A.check=E(Q),q=Q=0,A.mode=11;case 11:if(A.havedict===0)return L.next_out=ze,L.avail_out=re,L.next_in=ge,L.avail_in=me,A.hold=Q,A.bits=q,2;L.adler=A.check=1,A.mode=12;case 12:if(te===5||te===6)break e;case 13:if(A.last){Q>>>=7&q,q-=7&q,A.mode=27;break}for(;q<3;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}switch(A.last=1&Q,q-=1,3&(Q>>>=1)){case 0:A.mode=14;break;case 1:if(de(A),A.mode=20,te!==6)break;Q>>>=2,q-=2;break e;case 2:A.mode=17;break;case 3:L.msg="invalid block type",A.mode=30}Q>>>=2,q-=2;break;case 14:for(Q>>>=7&q,q-=7&q;q<32;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if((65535&Q)!=(Q>>>16^65535)){L.msg="invalid stored block lengths",A.mode=30;break}if(A.length=65535&Q,q=Q=0,A.mode=15,te===6)break e;case 15:A.mode=16;case 16:if(ne=A.length){if(me<ne&&(ne=me),re<ne&&(ne=re),ne===0)break e;r.arraySet(He,le,ge,ne,ze),me-=ne,ge+=ne,re-=ne,ze+=ne,A.length-=ne;break}A.mode=12;break;case 17:for(;q<14;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(A.nlen=257+(31&Q),Q>>>=5,q-=5,A.ndist=1+(31&Q),Q>>>=5,q-=5,A.ncode=4+(15&Q),Q>>>=4,q-=4,286<A.nlen||30<A.ndist){L.msg="too many length or distance symbols",A.mode=30;break}A.have=0,A.mode=18;case 18:for(;A.have<A.ncode;){for(;q<3;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.lens[pe[A.have++]]=7&Q,Q>>>=3,q-=3}for(;A.have<19;)A.lens[pe[A.have++]]=0;if(A.lencode=A.lendyn,A.lenbits=7,Y={bits:A.lenbits},ue=a(0,A.lens,0,19,A.lencode,0,A.work,Y),A.lenbits=Y.bits,ue){L.msg="invalid code lengths set",A.mode=30;break}A.have=0,A.mode=19;case 19:for(;A.have<A.nlen+A.ndist;){for(;at=(O=A.lencode[Q&(1<<A.lenbits)-1])>>>16&255,Lt=65535&O,!((ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(Lt<16)Q>>>=ae,q-=ae,A.lens[A.have++]=Lt;else{if(Lt===16){for(x=ae+2;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(Q>>>=ae,q-=ae,A.have===0){L.msg="invalid bit length repeat",A.mode=30;break}S=A.lens[A.have-1],ne=3+(3&Q),Q>>>=2,q-=2}else if(Lt===17){for(x=ae+3;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}q-=ae,S=0,ne=3+(7&(Q>>>=ae)),Q>>>=3,q-=3}else{for(x=ae+7;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}q-=ae,S=0,ne=11+(127&(Q>>>=ae)),Q>>>=7,q-=7}if(A.have+ne>A.nlen+A.ndist){L.msg="invalid bit length repeat",A.mode=30;break}for(;ne--;)A.lens[A.have++]=S}}if(A.mode===30)break;if(A.lens[256]===0){L.msg="invalid code -- missing end-of-block",A.mode=30;break}if(A.lenbits=9,Y={bits:A.lenbits},ue=a(c,A.lens,0,A.nlen,A.lencode,0,A.work,Y),A.lenbits=Y.bits,ue){L.msg="invalid literal/lengths set",A.mode=30;break}if(A.distbits=6,A.distcode=A.distdyn,Y={bits:A.distbits},ue=a(d,A.lens,A.nlen,A.ndist,A.distcode,0,A.work,Y),A.distbits=Y.bits,ue){L.msg="invalid distances set",A.mode=30;break}if(A.mode=20,te===6)break e;case 20:A.mode=21;case 21:if(6<=me&&258<=re){L.next_out=ze,L.avail_out=re,L.next_in=ge,L.avail_in=me,A.hold=Q,A.bits=q,n(L,De),ze=L.next_out,He=L.output,re=L.avail_out,ge=L.next_in,le=L.input,me=L.avail_in,Q=A.hold,q=A.bits,A.mode===12&&(A.back=-1);break}for(A.back=0;at=(O=A.lencode[Q&(1<<A.lenbits)-1])>>>16&255,Lt=65535&O,!((ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(at&&(240&at)==0){for(wt=ae,we=at,fr=Lt;at=(O=A.lencode[fr+((Q&(1<<wt+we)-1)>>wt)])>>>16&255,Lt=65535&O,!(wt+(ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}Q>>>=wt,q-=wt,A.back+=wt}if(Q>>>=ae,q-=ae,A.back+=ae,A.length=Lt,at===0){A.mode=26;break}if(32&at){A.back=-1,A.mode=12;break}if(64&at){L.msg="invalid literal/length code",A.mode=30;break}A.extra=15&at,A.mode=22;case 22:if(A.extra){for(x=A.extra;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.length+=Q&(1<<A.extra)-1,Q>>>=A.extra,q-=A.extra,A.back+=A.extra}A.was=A.length,A.mode=23;case 23:for(;at=(O=A.distcode[Q&(1<<A.distbits)-1])>>>16&255,Lt=65535&O,!((ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if((240&at)==0){for(wt=ae,we=at,fr=Lt;at=(O=A.distcode[fr+((Q&(1<<wt+we)-1)>>wt)])>>>16&255,Lt=65535&O,!(wt+(ae=O>>>24)<=q);){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}Q>>>=wt,q-=wt,A.back+=wt}if(Q>>>=ae,q-=ae,A.back+=ae,64&at){L.msg="invalid distance code",A.mode=30;break}A.offset=Lt,A.extra=15&at,A.mode=24;case 24:if(A.extra){for(x=A.extra;q<x;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}A.offset+=Q&(1<<A.extra)-1,Q>>>=A.extra,q-=A.extra,A.back+=A.extra}if(A.offset>A.dmax){L.msg="invalid distance too far back",A.mode=30;break}A.mode=25;case 25:if(re===0)break e;if(ne=De-re,A.offset>ne){if((ne=A.offset-ne)>A.whave&&A.sane){L.msg="invalid distance too far back",A.mode=30;break}Ze=ne>A.wnext?(ne-=A.wnext,A.wsize-ne):A.wnext-ne,ne>A.length&&(ne=A.length),yt=A.window}else yt=He,Ze=ze-A.offset,ne=A.length;for(re<ne&&(ne=re),re-=ne,A.length-=ne;He[ze++]=yt[Ze++],--ne;);A.length===0&&(A.mode=21);break;case 26:if(re===0)break e;He[ze++]=A.length,re--,A.mode=21;break;case 27:if(A.wrap){for(;q<32;){if(me===0)break e;me--,Q|=le[ge++]<<q,q+=8}if(De-=re,L.total_out+=De,A.total+=De,De&&(L.adler=A.check=A.flags?s(A.check,He,De,ze-De):o(A.check,He,De,ze-De)),De=re,(A.flags?Q:E(Q))!==A.check){L.msg="incorrect data check",A.mode=30;break}q=Q=0}A.mode=28;case 28:if(A.wrap&&A.flags){for(;q<32;){if(me===0)break e;me--,Q+=le[ge++]<<q,q+=8}if(Q!==(4294967295&A.total)){L.msg="incorrect length check",A.mode=30;break}q=Q=0}A.mode=29;case 29:ue=1;break e;case 30:ue=-3;break e;case 31:return-4;case 32:default:return l}return L.next_out=ze,L.avail_out=re,L.next_in=ge,L.avail_in=me,A.hold=Q,A.bits=q,(A.wsize||De!==L.avail_out&&A.mode<30&&(A.mode<27||te!==4))&&Ae(L,L.output,L.next_out,De-L.avail_out)?(A.mode=31,-4):(Be-=L.avail_in,De-=L.avail_out,L.total_in+=Be,L.total_out+=De,A.total+=De,A.wrap&&De&&(L.adler=A.check=A.flags?s(A.check,He,De,L.next_out-De):o(A.check,He,De,L.next_out-De)),L.data_type=A.bits+(A.last?64:0)+(A.mode===12?128:0)+(A.mode===20||A.mode===15?256:0),(Be==0&&De===0||te===4)&&ue===m&&(ue=-5),ue)},e.inflateEnd=function(L){if(!L||!L.state)return l;var te=L.state;return te.window&&(te.window=null),L.state=null,m},e.inflateGetHeader=function(L,te){var A;return L&&L.state?(2&(A=L.state).wrap)==0?l:((A.head=te).done=!1,m):l},e.inflateSetDictionary=function(L,te){var A,le=te.length;return L&&L.state?(A=L.state).wrap!==0&&A.mode!==11?l:A.mode===11&&o(1,te,le,0)!==A.check?-3:Ae(L,te,le,le)?(A.mode=31,-4):(A.havedict=1,m):l},e.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(i,t,e){"use strict";var r=i("../utils/common"),o=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],s=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],n=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],a=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(c,d,m,l,f,g,T,E){var y,v,M,w,H,B,P,$,de,Ae=E.bits,L=0,te=0,A=0,le=0,He=0,ge=0,ze=0,me=0,re=0,Q=0,q=null,Be=0,De=new r.Buf16(16),ne=new r.Buf16(16),Ze=null,yt=0;for(L=0;L<=15;L++)De[L]=0;for(te=0;te<l;te++)De[d[m+te]]++;for(He=Ae,le=15;1<=le&&De[le]===0;le--);if(le<He&&(He=le),le===0)return f[g++]=20971520,f[g++]=20971520,E.bits=1,0;for(A=1;A<le&&De[A]===0;A++);for(He<A&&(He=A),L=me=1;L<=15;L++)if(me<<=1,(me-=De[L])<0)return-1;if(0<me&&(c===0||le!==1))return-1;for(ne[1]=0,L=1;L<15;L++)ne[L+1]=ne[L]+De[L];for(te=0;te<l;te++)d[m+te]!==0&&(T[ne[d[m+te]]++]=te);if(B=c===0?(q=Ze=T,19):c===1?(q=o,Be-=257,Ze=s,yt-=257,256):(q=n,Ze=a,-1),L=A,H=g,ze=te=Q=0,M=-1,w=(re=1<<(ge=He))-1,c===1&&852<re||c===2&&592<re)return 1;for(;;){for(P=L-ze,de=T[te]<B?($=0,T[te]):T[te]>B?($=Ze[yt+T[te]],q[Be+T[te]]):($=96,0),y=1<<L-ze,A=v=1<<ge;f[H+(Q>>ze)+(v-=y)]=P<<24|$<<16|de|0,v!==0;);for(y=1<<L-1;Q&y;)y>>=1;if(y!==0?(Q&=y-1,Q+=y):Q=0,te++,--De[L]==0){if(L===le)break;L=d[m+T[te]]}if(He<L&&(Q&w)!==M){for(ze===0&&(ze=He),H+=A,me=1<<(ge=L-ze);ge+ze<le&&!((me-=De[ge+ze])<=0);)ge++,me<<=1;if(re+=1<<ge,c===1&&852<re||c===2&&592<re)return 1;f[M=Q&w]=He<<24|ge<<16|H-g|0}}return Q!==0&&(f[H+Q]=L-ze<<24|64<<16|0),E.bits=He,0}},{"../utils/common":41}],51:[function(i,t,e){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(i,t,e){"use strict";var r=i("../utils/common"),o=0,s=1;function n(O){for(var F=O.length;0<=--F;)O[F]=0}var a=0,c=29,d=256,m=d+1+c,l=30,f=19,g=2*m+1,T=15,E=16,y=7,v=256,M=16,w=17,H=18,B=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],P=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],$=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],de=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Ae=new Array(2*(m+2));n(Ae);var L=new Array(2*l);n(L);var te=new Array(512);n(te);var A=new Array(256);n(A);var le=new Array(c);n(le);var He,ge,ze,me=new Array(l);function re(O,F,pe,fe,X){this.static_tree=O,this.extra_bits=F,this.extra_base=pe,this.elems=fe,this.max_length=X,this.has_stree=O&&O.length}function Q(O,F){this.dyn_tree=O,this.max_code=0,this.stat_desc=F}function q(O){return O<256?te[O]:te[256+(O>>>7)]}function Be(O,F){O.pending_buf[O.pending++]=255&F,O.pending_buf[O.pending++]=F>>>8&255}function De(O,F,pe){O.bi_valid>E-pe?(O.bi_buf|=F<<O.bi_valid&65535,Be(O,O.bi_buf),O.bi_buf=F>>E-O.bi_valid,O.bi_valid+=pe-E):(O.bi_buf|=F<<O.bi_valid&65535,O.bi_valid+=pe)}function ne(O,F,pe){De(O,pe[2*F],pe[2*F+1])}function Ze(O,F){for(var pe=0;pe|=1&O,O>>>=1,pe<<=1,0<--F;);return pe>>>1}function yt(O,F,pe){var fe,X,oe=new Array(T+1),xe=0;for(fe=1;fe<=T;fe++)oe[fe]=xe=xe+pe[fe-1]<<1;for(X=0;X<=F;X++){var Z=O[2*X+1];Z!==0&&(O[2*X]=Ze(oe[Z]++,Z))}}function ae(O){var F;for(F=0;F<m;F++)O.dyn_ltree[2*F]=0;for(F=0;F<l;F++)O.dyn_dtree[2*F]=0;for(F=0;F<f;F++)O.bl_tree[2*F]=0;O.dyn_ltree[2*v]=1,O.opt_len=O.static_len=0,O.last_lit=O.matches=0}function at(O){8<O.bi_valid?Be(O,O.bi_buf):0<O.bi_valid&&(O.pending_buf[O.pending++]=O.bi_buf),O.bi_buf=0,O.bi_valid=0}function Lt(O,F,pe,fe){var X=2*F,oe=2*pe;return O[X]<O[oe]||O[X]===O[oe]&&fe[F]<=fe[pe]}function wt(O,F,pe){for(var fe=O.heap[pe],X=pe<<1;X<=O.heap_len&&(X<O.heap_len&&Lt(F,O.heap[X+1],O.heap[X],O.depth)&&X++,!Lt(F,fe,O.heap[X],O.depth));)O.heap[pe]=O.heap[X],pe=X,X<<=1;O.heap[pe]=fe}function we(O,F,pe){var fe,X,oe,xe,Z=0;if(O.last_lit!==0)for(;fe=O.pending_buf[O.d_buf+2*Z]<<8|O.pending_buf[O.d_buf+2*Z+1],X=O.pending_buf[O.l_buf+Z],Z++,fe===0?ne(O,X,F):(ne(O,(oe=A[X])+d+1,F),(xe=B[oe])!==0&&De(O,X-=le[oe],xe),ne(O,oe=q(--fe),pe),(xe=P[oe])!==0&&De(O,fe-=me[oe],xe)),Z<O.last_lit;);ne(O,v,F)}function fr(O,F){var pe,fe,X,oe=F.dyn_tree,xe=F.stat_desc.static_tree,Z=F.stat_desc.has_stree,$e=F.stat_desc.elems,b=-1;for(O.heap_len=0,O.heap_max=g,pe=0;pe<$e;pe++)oe[2*pe]!==0?(O.heap[++O.heap_len]=b=pe,O.depth[pe]=0):oe[2*pe+1]=0;for(;O.heap_len<2;)oe[2*(X=O.heap[++O.heap_len]=b<2?++b:0)]=1,O.depth[X]=0,O.opt_len--,Z&&(O.static_len-=xe[2*X+1]);for(F.max_code=b,pe=O.heap_len>>1;1<=pe;pe--)wt(O,oe,pe);for(X=$e;pe=O.heap[1],O.heap[1]=O.heap[O.heap_len--],wt(O,oe,1),fe=O.heap[1],O.heap[--O.heap_max]=pe,O.heap[--O.heap_max]=fe,oe[2*X]=oe[2*pe]+oe[2*fe],O.depth[X]=(O.depth[pe]>=O.depth[fe]?O.depth[pe]:O.depth[fe])+1,oe[2*pe+1]=oe[2*fe+1]=X,O.heap[1]=X++,wt(O,oe,1),2<=O.heap_len;);O.heap[--O.heap_max]=O.heap[1],function(it,vt){var Mr,xr,Ft,G,gr,Di,lr=vt.dyn_tree,pt=vt.max_code,_n=vt.stat_desc.static_tree,kr=vt.stat_desc.has_stree,ei=vt.stat_desc.extra_bits,vr=vt.stat_desc.extra_base,Oi=vt.stat_desc.max_length,Mi=0;for(G=0;G<=T;G++)it.bl_count[G]=0;for(lr[2*it.heap[it.heap_max]+1]=0,Mr=it.heap_max+1;Mr<g;Mr++)Oi<(G=lr[2*lr[2*(xr=it.heap[Mr])+1]+1]+1)&&(G=Oi,Mi++),lr[2*xr+1]=G,pt<xr||(it.bl_count[G]++,gr=0,vr<=xr&&(gr=ei[xr-vr]),Di=lr[2*xr],it.opt_len+=Di*(G+gr),kr&&(it.static_len+=Di*(_n[2*xr+1]+gr)));if(Mi!==0){do{for(G=Oi-1;it.bl_count[G]===0;)G--;it.bl_count[G]--,it.bl_count[G+1]+=2,it.bl_count[Oi]--,Mi-=2}while(0<Mi);for(G=Oi;G!==0;G--)for(xr=it.bl_count[G];xr!==0;)pt<(Ft=it.heap[--Mr])||(lr[2*Ft+1]!==G&&(it.opt_len+=(G-lr[2*Ft+1])*lr[2*Ft],lr[2*Ft+1]=G),xr--)}}(O,F),yt(oe,b,O.bl_count)}function S(O,F,pe){var fe,X,oe=-1,xe=F[1],Z=0,$e=7,b=4;for(xe===0&&($e=138,b=3),F[2*(pe+1)+1]=65535,fe=0;fe<=pe;fe++)X=xe,xe=F[2*(fe+1)+1],++Z<$e&&X===xe||(Z<b?O.bl_tree[2*X]+=Z:X!==0?(X!==oe&&O.bl_tree[2*X]++,O.bl_tree[2*M]++):Z<=10?O.bl_tree[2*w]++:O.bl_tree[2*H]++,oe=X,b=(Z=0)===xe?($e=138,3):X===xe?($e=6,3):($e=7,4))}function ue(O,F,pe){var fe,X,oe=-1,xe=F[1],Z=0,$e=7,b=4;for(xe===0&&($e=138,b=3),fe=0;fe<=pe;fe++)if(X=xe,xe=F[2*(fe+1)+1],!(++Z<$e&&X===xe)){if(Z<b)for(;ne(O,X,O.bl_tree),--Z!=0;);else X!==0?(X!==oe&&(ne(O,X,O.bl_tree),Z--),ne(O,M,O.bl_tree),De(O,Z-3,2)):Z<=10?(ne(O,w,O.bl_tree),De(O,Z-3,3)):(ne(O,H,O.bl_tree),De(O,Z-11,7));oe=X,b=(Z=0)===xe?($e=138,3):X===xe?($e=6,3):($e=7,4)}}n(me);var Y=!1;function x(O,F,pe,fe){De(O,(a<<1)+(fe?1:0),3),function(X,oe,xe,Z){at(X),Z&&(Be(X,xe),Be(X,~xe)),r.arraySet(X.pending_buf,X.window,oe,xe,X.pending),X.pending+=xe}(O,F,pe,!0)}e._tr_init=function(O){Y||(function(){var F,pe,fe,X,oe,xe=new Array(T+1);for(X=fe=0;X<c-1;X++)for(le[X]=fe,F=0;F<1<<B[X];F++)A[fe++]=X;for(A[fe-1]=X,X=oe=0;X<16;X++)for(me[X]=oe,F=0;F<1<<P[X];F++)te[oe++]=X;for(oe>>=7;X<l;X++)for(me[X]=oe<<7,F=0;F<1<<P[X]-7;F++)te[256+oe++]=X;for(pe=0;pe<=T;pe++)xe[pe]=0;for(F=0;F<=143;)Ae[2*F+1]=8,F++,xe[8]++;for(;F<=255;)Ae[2*F+1]=9,F++,xe[9]++;for(;F<=279;)Ae[2*F+1]=7,F++,xe[7]++;for(;F<=287;)Ae[2*F+1]=8,F++,xe[8]++;for(yt(Ae,m+1,xe),F=0;F<l;F++)L[2*F+1]=5,L[2*F]=Ze(F,5);He=new re(Ae,B,d+1,m,T),ge=new re(L,P,0,l,T),ze=new re(new Array(0),$,0,f,y)}(),Y=!0),O.l_desc=new Q(O.dyn_ltree,He),O.d_desc=new Q(O.dyn_dtree,ge),O.bl_desc=new Q(O.bl_tree,ze),O.bi_buf=0,O.bi_valid=0,ae(O)},e._tr_stored_block=x,e._tr_flush_block=function(O,F,pe,fe){var X,oe,xe=0;0<O.level?(O.strm.data_type===2&&(O.strm.data_type=function(Z){var $e,b=4093624447;for($e=0;$e<=31;$e++,b>>>=1)if(1&b&&Z.dyn_ltree[2*$e]!==0)return o;if(Z.dyn_ltree[18]!==0||Z.dyn_ltree[20]!==0||Z.dyn_ltree[26]!==0)return s;for($e=32;$e<d;$e++)if(Z.dyn_ltree[2*$e]!==0)return s;return o}(O)),fr(O,O.l_desc),fr(O,O.d_desc),xe=function(Z){var $e;for(S(Z,Z.dyn_ltree,Z.l_desc.max_code),S(Z,Z.dyn_dtree,Z.d_desc.max_code),fr(Z,Z.bl_desc),$e=f-1;3<=$e&&Z.bl_tree[2*de[$e]+1]===0;$e--);return Z.opt_len+=3*($e+1)+5+5+4,$e}(O),X=O.opt_len+3+7>>>3,(oe=O.static_len+3+7>>>3)<=X&&(X=oe)):X=oe=pe+5,pe+4<=X&&F!==-1?x(O,F,pe,fe):O.strategy===4||oe===X?(De(O,2+(fe?1:0),3),we(O,Ae,L)):(De(O,4+(fe?1:0),3),function(Z,$e,b,it){var vt;for(De(Z,$e-257,5),De(Z,b-1,5),De(Z,it-4,4),vt=0;vt<it;vt++)De(Z,Z.bl_tree[2*de[vt]+1],3);ue(Z,Z.dyn_ltree,$e-1),ue(Z,Z.dyn_dtree,b-1)}(O,O.l_desc.max_code+1,O.d_desc.max_code+1,xe+1),we(O,O.dyn_ltree,O.dyn_dtree)),ae(O),fe&&at(O)},e._tr_tally=function(O,F,pe){return O.pending_buf[O.d_buf+2*O.last_lit]=F>>>8&255,O.pending_buf[O.d_buf+2*O.last_lit+1]=255&F,O.pending_buf[O.l_buf+O.last_lit]=255&pe,O.last_lit++,F===0?O.dyn_ltree[2*pe]++:(O.matches++,F--,O.dyn_ltree[2*(A[pe]+d+1)]++,O.dyn_dtree[2*q(F)]++),O.last_lit===O.lit_bufsize-1},e._tr_align=function(O){De(O,2,3),ne(O,v,Ae),function(F){F.bi_valid===16?(Be(F,F.bi_buf),F.bi_buf=0,F.bi_valid=0):8<=F.bi_valid&&(F.pending_buf[F.pending++]=255&F.bi_buf,F.bi_buf>>=8,F.bi_valid-=8)}(O)}},{"../utils/common":41}],53:[function(i,t,e){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(i,t,e){(function(r){(function(o,s){"use strict";if(!o.setImmediate){var n,a,c,d,m=1,l={},f=!1,g=o.document,T=Object.getPrototypeOf&&Object.getPrototypeOf(o);T=T&&T.setTimeout?T:o,n={}.toString.call(o.process)==="[object process]"?function(M){process.nextTick(function(){y(M)})}:function(){if(o.postMessage&&!o.importScripts){var M=!0,w=o.onmessage;return o.onmessage=function(){M=!1},o.postMessage("","*"),o.onmessage=w,M}}()?(d="setImmediate$"+Math.random()+"$",o.addEventListener?o.addEventListener("message",v,!1):o.attachEvent("onmessage",v),function(M){o.postMessage(d+M,"*")}):o.MessageChannel?((c=new MessageChannel).port1.onmessage=function(M){y(M.data)},function(M){c.port2.postMessage(M)}):g&&"onreadystatechange"in g.createElement("script")?(a=g.documentElement,function(M){var w=g.createElement("script");w.onreadystatechange=function(){y(M),w.onreadystatechange=null,a.removeChild(w),w=null},a.appendChild(w)}):function(M){setTimeout(y,0,M)},T.setImmediate=function(M){typeof M!="function"&&(M=new Function(""+M));for(var w=new Array(arguments.length-1),H=0;H<w.length;H++)w[H]=arguments[H+1];var B={callback:M,args:w};return l[m]=B,n(m),m++},T.clearImmediate=E}function E(M){delete l[M]}function y(M){if(f)setTimeout(y,0,M);else{var w=l[M];if(w){f=!0;try{(function(H){var B=H.callback,P=H.args;switch(P.length){case 0:B();break;case 1:B(P[0]);break;case 2:B(P[0],P[1]);break;case 3:B(P[0],P[1],P[2]);break;default:B.apply(s,P)}})(w)}finally{E(M),f=!1}}}}function v(M){M.source===o&&typeof M.data=="string"&&M.data.indexOf(d)===0&&y(+M.data.slice(d.length))}})(typeof self=="undefined"?r===void 0?this:r:self)}).call(this,typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{})},{}]},{},[10])(10)})});var Cg=(re=>(re[re.INVALID_PARAMETER=4096]="INVALID_PARAMETER",re[re.INVALID_OPERATION=4097]="INVALID_OPERATION",re[re.NOT_SUPPORTED=4098]="NOT_SUPPORTED",re[re.DEVICE_NOT_FOUND=4099]="DEVICE_NOT_FOUND",re[re.INITIALIZE_FAILED=4100]="INITIALIZE_FAILED",re[re.SIGNAL_CHANNEL_SETUP_FAILED=16385]="SIGNAL_CHANNEL_SETUP_FAILED",re[re.SIGNAL_CHANNEL_ERROR=16386]="SIGNAL_CHANNEL_ERROR",re[re.ICE_TRANSPORT_ERROR=16387]="ICE_TRANSPORT_ERROR",re[re.JOIN_ROOM_FAILED=16388]="JOIN_ROOM_FAILED",re[re.CREATE_OFFER_FAILED=16389]="CREATE_OFFER_FAILED",re[re.SIGNAL_CHANNEL_RECONNECTION_FAILED=16390]="SIGNAL_CHANNEL_RECONNECTION_FAILED",re[re.UPLINK_RECONNECTION_FAILED=16391]="UPLINK_RECONNECTION_FAILED",re[re.DOWNLINK_RECONNECTION_FAILED=16392]="DOWNLINK_RECONNECTION_FAILED",re[re.REMOTE_STREAM_NOT_EXIST=16400]="REMOTE_STREAM_NOT_EXIST",re[re.CLIENT_BANNED=16448]="CLIENT_BANNED",re[re.SERVER_TIMEOUT=16449]="SERVER_TIMEOUT",re[re.SUBSCRIPTION_TIMEOUT=16450]="SUBSCRIPTION_TIMEOUT",re[re.PLAY_NOT_ALLOWED=16451]="PLAY_NOT_ALLOWED",re[re.DEVICE_AUTO_RECOVER_FAILED=16452]="DEVICE_AUTO_RECOVER_FAILED",re[re.START_PUBLISH_CDN_FAILED=16453]="START_PUBLISH_CDN_FAILED",re[re.STOP_PUBLISH_CDN_FAILED=16454]="STOP_PUBLISH_CDN_FAILED",re[re.START_MIX_TRANSCODE_FAILED=16455]="START_MIX_TRANSCODE_FAILED",re[re.STOP_MIX_TRANSCODE_FAILED=16456]="STOP_MIX_TRANSCODE_FAILED",re[re.NOT_SUPPORTED_H264=16457]="NOT_SUPPORTED_H264",re[re.SWITCH_ROLE_FAILED=16458]="SWITCH_ROLE_FAILED",re[re.API_CALL_TIMEOUT=16459]="API_CALL_TIMEOUT",re[re.SCHEDULE_FAILED=16460]="SCHEDULE_FAILED",re[re.API_CALL_ABORTED=16461]="API_CALL_ABORTED",re[re.SPC_INITIALIZED_FAILED=16462]="SPC_INITIALIZED_FAILED",re[re.VIDEO_MANAGER_ERROR=16463]="VIDEO_MANAGER_ERROR",re[re.SWITCH_ROOM_FAILED=16464]="SWITCH_ROOM_FAILED",re[re.VIDEO_ENCODE_FAILED=16465]="VIDEO_ENCODE_FAILED",re[re.AUDIO_ENCODE_FAILED=16466]="AUDIO_ENCODE_FAILED",re[re.UNKNOWN=65535]="UNKNOWN",re))(Cg||{}),Te=Cg;var nS=function(i){for(let t in Te)if(Te[t]===i)return t;return"UNKNOWN"},Ma=class extends Error{constructor({name:e="RtcError",message:r,code:o=Te.UNKNOWN,extraCode:s=0,constraint:n}){let a=`<${nS(o)} 0x${o.toString(16)}>`,c=`${r}${n?` constraint: ${n}`:""}${r!=null&&r.includes(a)?"":` ${a}`}`;super(c);p(this,"code");p(this,"extraCode");p(this,"message");p(this,"originMessage");p(this,"name");p(this,"constraint");this.code=o,this.extraCode=s,this.name=e,this.message=c,this.constraint=n,this.originMessage=r}getCode(){return this.code}getExtraCode(){return this.extraCode}toString(){return this.originMessage}},Me=Ma;var wg=0;var Ng=function(){return wg},to=function(){return Date.now()+wg},kd=function(){let i=new Date;return i.setTime(to()),i.toLocaleString()},Rn=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};var Vi={};eo(Vi,{REPORT_TYPE:()=>$n,buildSSOPackage:()=>so,bytes2ms:()=>Hg,calculateScaleResolutionDownNumber:()=>eu,concatArrayBuffers:()=>e_,convertObjectNumberToInt:()=>Wa,copyProperties:()=>Fg,deepClone:()=>Ns,deepCloneBasic:()=>Xd,deepMerge:()=>Ei,delay:()=>Ti,fibonacci:()=>Ds,formatedTime:()=>Qd,getConstructorName:()=>Ln,getContainerFromElement:()=>Yg,getEnv:()=>Ug,getFirst16Bits:()=>r_,getInternalVersion:()=>Jg,getLast16Bits:()=>t_,getLoggerUrl:()=>oo,getMediaStreamTrackInfo:()=>Kd,getMuteStateFromFlag:()=>Ms,getNetworkType:()=>kn,getNumNetworkType:()=>Jd,getReconnectionTimeout:()=>Gg,getStringByteLength:()=>Zg,getTurnServer:()=>Qg,getUint32Version:()=>Yd,getValueType:()=>Xt,getViewListFromView:()=>Vn,glog:()=>$a,ipv4ToUint32:()=>Un,isArray:()=>Gt,isAudioWorkletSupported:()=>qg,isBoolean:()=>Nt,isConstructor:()=>Os,isEmpty:()=>Pn,isFunction:()=>Rt,isLangChinese:()=>_i,isMediaStreamTrack:()=>zg,isNumber:()=>ft,isObject:()=>Xr,isOverseaSdkAppId:()=>si,isPlainObject:()=>Nr,isPortrait:()=>im,isPromise:()=>$o,isRemoteTrack:()=>jg,isRotate90Or270:()=>Jr,isSetSinkIdSupported:()=>Xg,isString:()=>nt,isUndefined:()=>z,loadImage:()=>Bn,loadVideo:()=>Kg,ms2bytes:()=>Wg,ms2samples:()=>rm,normalizeUrl:()=>xs,performanceNow:()=>Xe,promiseAny:()=>Fa,samples2ms:()=>tm,setNetworkTypeFromWebRTC:()=>$g,stringify:()=>oi,stringifyIncludeValue:()=>Ha,throttlePromise:()=>Zd});var zh={};eo(zh,{AUDIO_MUTE_BIT:()=>Fd,AUDIO_STAT_BIT:()=>Nn,AUX_STAT_BIT:()=>Pa,AUX_STREAM_MSID:()=>ES,BACKEND_ENV:()=>$d,BASE_DOC_URL:()=>Br,BASE_HOST:()=>Dg,CAPABILITIES_KEYS:()=>Gd,CLASS_NAME:()=>HS,CLOUD_CONSOLE_URL:()=>uS,CROSS_ROOM_BIT:()=>gS,DATA_FREEZE_TIMING:()=>Wd,DOC_BILLING_CN:()=>Ld,DOC_BILLING_OVERSEA:()=>Pd,DOC_URL:()=>lS,DTLS_STATE_UNKNOWN:()=>wS,ENV_NAME:()=>ro,EXCHANGE_SDP_TIMEOUT:()=>kS,IS_WORKER:()=>Cn,IS_WORKLET:()=>xa,KIBANA_EVENT:()=>ii,LOCAL_STREAM_PUBLISH_STATE:()=>Mg,LOGGER_CMD_TYPE:()=>Bo,LOGGER_DOMAIN:()=>Vh,LOGGER_DOMAIN_OVERSEA:()=>Bh,LOG_LEVEL:()=>ri,LOG_LEVEL_NAME:()=>GS,MAIN_STREAM_MSID:()=>_S,MAX_RTT:()=>Va,MICROPHONE_COMMUNICATIONS:()=>WS,MICROPHONE_DEFAULT:()=>ws,MUTE_ALL_BIT:()=>fS,NAME:()=>j,NETWORK_TYPE:()=>Rs,NOT_SUPPORTED_H264:()=>PS,PAUSED_RETRY_COUNT:()=>Cs,PEERCONNECTION_CONNECTING_TIMEOUT:()=>$S,PEER_CONNECTION_STATE:()=>NS,PEER_LEAVE_REASON:()=>xg,RECOVER_CAPTURE_INTERVAL:()=>Dn,REMOTE_STREAM_TYPE_AUX:()=>yS,REMOTE_STREAM_TYPE_MAIN:()=>TS,RENDER_FREEZE_TIMING:()=>US,SCHEDULE_DOMAIN:()=>io,SCHEDULE_TIMEOUT:()=>FS,SDP_SEMANTICS_PLAN_B:()=>LS,SDP_SEMANTICS_UNIFIED_PLAN:()=>Gh,SECOND_HOST:()=>cS,SIGNAL_PING_PONG_INTERVAL:()=>mS,SIGNAL_PING_TIMEOUT:()=>hS,SIGNAL_RECONNECTION_COUNT:()=>OS,SMALL_STAT_BIT:()=>Hh,SPEAKER_DEFAULT:()=>Ua,STORAGE_EXPIRES_TIME:()=>Ud,STREAM_TYPE_BIG:()=>VS,STREAM_TYPE_SMALL:()=>BS,SUBSCRIBE_SMALL_RETRY_COUNT:()=>zS,SYNC_USER_LIST_INTERVAL:()=>MS,Scene:()=>Pi,THIRD_HOST:()=>dS,TRANSPORT_DIRECTION:()=>pS,TRTC_ERROR_ASSISTANCE:()=>$h,TRTC_QUALITY_BAD:()=>vS,TRTC_QUALITY_DISCONNECTED:()=>CS,TRTC_QUALITY_EXCELLENT:()=>IS,TRTC_QUALITY_GOOD:()=>bS,TRTC_QUALITY_POOR:()=>AS,TRTC_QUALITY_UNKNOWN:()=>SS,TRTC_QUALITY_VERY_BAD:()=>RS,UPDATE_OFFER_TIMEOUT:()=>xS,VIDEO_MUTE_BIT:()=>Hd,VIDEO_STAT_BIT:()=>wn,audioProfileMap:()=>Vd,defaultBigVideoProfile:()=>La,defaultSmallVideoProfile:()=>Fh,getRetryCount:()=>DS,getScriptDir:()=>aS,innerVersion:()=>Ph,loggerProxy:()=>ka,screenProfileMap:()=>Bd,setLoggerProxy:()=>vs,setRetryCount:()=>Wh,setVersion:()=>Uh,version:()=>qt,videoProfileMap:()=>gi});var Ph="4.15.00.1600",qt="5.0.0";function Uh(i){qt=i;let[t,e,r]=i.split(".").map(o=>parseInt(o,10));Ph=`${t}.${Math.min(15,e)}.${Math.min(15,r)}.${e.toString().padStart(2,"0")}${r.toString().padStart(2,"0")}`}var Cn=typeof importScripts!="undefined",xa=typeof registerProcessor!="undefined",aS=()=>{let i=Cn?self.location.href:document.currentScript.src;return i.substring(0,i.lastIndexOf("/")+1)},ka="",vs=i=>ka=i,Dg="web.sdk.qcloud.com",cS="web.sdk.tencent.cn",dS="web.sdk.cloud.tencent.cn",uS="https://console.cloud.tencent.com/trtc",Br=`https://${Dg}/trtc/webrtc/doc`,lS=`${Br}/zh-cn/`,Ld="https://cloud.tencent.com/document/product/647/85386",Pd="https://trtc.io/document/56025",Vh="https://yun.tim.qq.com",Bh="https://apisgp.my-imcloud.com",$h="trtc_error_assistance",Bo={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ro={QCLOUD:"qcloud",OLD_CLOUD_LADDER:"trtc",WEBRTC:"webrtc"},ri=(n=>(n[n.TRACE=0]="TRACE",n[n.DEBUG=1]="DEBUG",n[n.INFO=2]="INFO",n[n.WARN=3]="WARN",n[n.ERROR=4]="ERROR",n[n.NONE=5]="NONE",n))(ri||{}),hS=18e3,mS=2e3,Rs={unknown:0,wifi:1,"4g":2,"3g":3,"2g":4,wired:5,"5g":6},Ud=7*24*3600*1e3,Vd={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}},gi={"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}},La=gi["480p_2"],Fh=gi["120p_2"],Bd={"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}},j={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",RESIZE:"resize",TIME_UPDATE:"timeupdate"},pS={INACTIVE:"inactive",SENDONLY:"sendonly",RECVONLY:"recvonly"},$d={OLD_CLOUD_LADDER:"wss://trtc.rtc.qq.com",WEBRTC:"wss://webrtc.qq.com"},Pi=(e=>(e.LIVE="live",e.RTC="rtc",e))(Pi||{}),wn=1,Hh=2,Pa=4,Nn=8,Fd=64,Hd=16,fS=112,gS=128,_S="5Y2wZK8nANNAoVw6dSAHVjNxrD1ObBM2kBPV",ES="224d130c-7b5c-415b-aaa2-79c2eb5a6df2",TS=j.MAIN,yS=j.AUXILIARY,SS=0,IS=1,bS=2,AS=3,vS=4,RS=5,CS=6,wS="unknown",NS={NEW:"new",CONNECTING:"connecting",FAILED:"failed",CLOSED:"closed",DISCONNECTED:"disconnected",CONNECTED:"connected",COMPLETED:"completed"},Og=1/0;function Wh(i){Og=i}function DS(){return Og}var OS=30,ii={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",VIDEO_ENCODE_FAILED_DURING_CALL:"video-encode-failed-during-call",AUDIO_ENCODE_FAILED_DURING_CALL:"audio-encode-failed-during-call"},MS=1e4,xS=1e4,kS=1e4,Gh="unified-plan",LS="plan-b",PS=1028,Mg=(r=>(r[r.UNPUBLISH=-1]="UNPUBLISH",r[r.PUBLISHING=0]="PUBLISHING",r[r.PUBLISHED=1]="PUBLISHED",r))(Mg||{}),Wd=500,US=1e3,VS=j.BIG,BS=j.SMALL,$S=10*1e3,io={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"},FS=2e3,HS={TRTC:"TRTC",CLIENT:"Client",LOCAL_STREAM:"LocalStream",REMOTE_STREAM:"RemoteStream",STREAM:"Stream"},Cs=5,ws="default",Ua=ws,WS="communications",GS=Object.keys(ri),xg=["normal leave","timeout leave","kick","role change"],zS=10,Dn=2e3,Gd=["width","height","frameRate","facingMode","sampleRate","sampleSize","channelCount","deviceId","min","max"],Va=10*1e3;var jS=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(m){try{d(r.next(m))}catch(l){n(l)}}function c(m){try{d(r.throw(m))}catch(l){n(l)}}function d(m){m.done?s(m.value):o(m.value).then(a,c)}d((r=r.apply(i,t||[])).next())})},jh=Symbol(32),qh=Symbol(16),Xh=Symbol(8),Ui=class{constructor(t){this.g=t,this.consumed=0,t&&(this.need=t.next().value)}setG(t){this.g=t,this.demand(t.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(t,e){return e&&this.consume(),this.need=t,this.flush()}read(t){return jS(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((e,r)=>{var o;this.reject=r,this.resolve=n=>{delete this.lastReadPromise,delete this.resolve,delete this.need,e(n)},this.demand(t,!0)||(o=this.pull)===null||o===void 0||o.call(this,t)})})}readU32(){return this.read(jh)}readU16(){return this.read(qh)}readU8(){return this.read(Xh)}close(){var t;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(t=this.reject)===null||t===void 0||t.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let t=null,e=this.buffer.subarray(this.consumed),r=0,o=s=>e.length<(r=s);if(typeof this.need=="number"){if(o(this.need))return;t=e.subarray(0,r)}else if(this.need===jh){if(o(4))return;t=e[0]<<24|e[1]<<16|e[2]<<8|e[3]}else if(this.need===qh){if(o(2))return;t=e[0]<<8|e[1]}else if(this.need===Xh){if(o(1))return;t=e[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(o(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(e.subarray(0,r)),t=this.need}else if(this.g){this.g.throw(new Error("Unsupported type"));return}}else{if(o(this.need.byteLength))return;new Uint8Array(this.need).set(e.subarray(0,r)),t=this.need}return this.consumed+=r,this.g?this.demand(this.g.next(t).value,!0):this.resolve&&this.resolve(t),t}write(t){if(t instanceof Uint8Array?this.malloc(t.length).set(t):"buffer"in t?this.malloc(t.byteLength).set(new Uint8Array(t.buffer,t.byteOffset,t.byteLength)):this.malloc(t.byteLength).set(new Uint8Array(t)),this.g||this.resolve)this.flush();else return new Promise(e=>this.pull=e)}writeU32(t){this.malloc(4).set([t>>24&255,t>>16&255,t>>8&255,t&255]),this.flush()}writeU16(t){this.malloc(2).set([t>>8&255,t&255]),this.flush()}writeU8(t){this.malloc(1)[0]=t,this.flush()}malloc(t){if(this.buffer){let e=this.buffer.length,r=e+t;if(r<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,r);else{let o=new Uint8Array(r);o.set(this.buffer),this.buffer=o}return this.buffer.subarray(e,r)}else return this.buffer=new Uint8Array(t),this.buffer}};Ui.U32=jh;Ui.U16=qh;Ui.U8=Xh;var qS=128,XS=127,B0=~XS,$0=Math.pow(2,31);function Jh(i){let t=new Ui;for(;i>=128;)t.malloc(1)[0]=i&255|qS,i>>>=7;return t.malloc(1)[0]=i&255,t.buffer||new Uint8Array(0)}function zd(i,t=0){let e=new Ui,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(Jh(i));break;case"string":e.malloc(1)[0]=r|2;let s=new TextEncoder().encode(i);e.write(Jh(s.length));let n=e.malloc(s.length);for(let c=0;c<s.length;c++)n[c]=s[c];break;case"object":let a=new Ui;if(Array.isArray(i))for(let c=0;c<i.length;c++){let d=zd(i[c],c+1);d&&a.write(d)}else{let c=1;for(let d in i){let m=zd(i[d],c++);m&&a.write(m)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=r|2,a.buffer&&(e.write(Jh(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var Ba=class{constructor(){p(this,"buffer");this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(t){this.buffer.push(t>>>24&255),this.buffer.push(t>>>16&255),this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeInt16(t){this.buffer.push(t>>>8&255),this.buffer.push(t&255)}writeByte(t){this.buffer.push(t&255)}writeBytes(t){for(let e=0;e<t.length;e++)this.buffer.push(t[e])}};function Qh(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=t&255}function wr(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function Yh(i,t){return i[t]}function On(i,t,e){return new TextDecoder().decode(JS(i,t,e))}function JS(i,t,e){return i.slice(t,t+e)}var Zh=0,jd=2654435769,qd=16,em=4,Mn=2,xn=7;function QS(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function kg(i,t){let e=new Ba,r=QS(t,i,Zh);Zh=Zh+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new Ba;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(r.reqHead.appId&255);for(let M=4;M<16;M++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let c=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(c.length+4),c.length&&n.writeBytes(c);let d=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let m=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(m.length+4),m.length&&n.writeBytes(m);let l=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let f=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(f.length+2),f.length&&n.writeBytes(f);let g=n.length;n.data[0]=g>>>24&255,n.data[1]=g>>>16&255,n.data[2]=g>>>8&255,n.data[3]=g&255,nt(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let T=new Uint8Array(n.data),E=null;r.encryption===1?E=new TextEncoder().encode(r.uin):r.encryption===2&&(E=new Uint8Array(16)),E&&(T=YS(T,E)),e.writeBytes(T);let y=new Uint8Array(e.data),v=y.length;return y[0]=v>>>24&255,y[1]=v>>>16&255,y[2]=v>>>8&255,y[3]=v&255,y}function YS(i,t){let e=i.length,o=(e+1+Mn+xn)%8;o&&(o=8-o);let s=e+1+Mn+xn+o,n=new Uint8Array(s),a=0,c=new Uint8Array(8),d=new Uint8Array(8),m=new Uint8Array(8),l=0;c[0]=Math.floor(Math.random()*256)&248|o,l=1;for(let g=0;g<o;g++)c[l]=Math.floor(Math.random()*256)&255,l+=1;for(let g=0;g<Mn;)if(l<8&&(c[l]=Math.floor(Math.random()*256)&255,l+=1,g+=1),l===8){Kh(c,t,d,m,n,a),a+=8,l=0;for(let T=0;T<8;T++)m[T]=n[a-8+T]}let f=0;for(;f<e;)if(l<8&&(c[l]=i[f],l+=1,f+=1),l===8){Kh(c,t,d,m,n,a),a+=8,l=0;for(let g=0;g<8;g++)m[g]=n[a-8+g]}for(let g=0;g<xn;)if(l<8&&(c[l]=0,l+=1,g+=1),l===8){Kh(c,t,d,m,n,a),a+=8,l=0;for(let T=0;T<8;T++)m[T]=n[a-8+T]}return n}function Kh(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];ZS(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function ZS(i,t,e,r){let o=wr(i,0),s=wr(i,4),n=[];for(let c=0;c<4;c++)n[c]=wr(t,c*4);let a=0;for(let c=0;c<qd;c++)a+=jd,a=a>>>0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o=o>>>0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s=s>>>0;Qh(e,o,r),Qh(e,s,r+4)}var Ug=function(){return new URLSearchParams(location.search).get("trtc_env")||""},si=i=>Number(i)<14e8,oo=function(i,t){let e;ka?e=ka:e=si(i)?Bh:Vh;let r=Math.floor(Math.random()*ki(2,31));return`${e}/v5/AVQualityReportSvc/C2S?random=${r}&sdkappid=${i}&cmdtype=${t}`},Vg="unknown";function kn(){eI();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?Bg(r,o):Vg}function KS(){se.warn("netType changed",kn())}var Lg=!1;function eI(){var i;Lg||(Lg=!0,(i=navigator.connection)==null||i.addEventListener("typechange",KS))}function Bg(i,t){if(Rs[i])return i;switch(i){case"cellular":case"wimax":return t||"unknown";case"ethernet":return"wired";case"none":case"other":default:return"unknown"}}function $g(i){Vg=Bg(i)}function Jd(){return Rs[kn()]}function Fg(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 Hg(i,t=48e3){return tm(i/4,t)}function tm(i,t=48e3){return i*1e3/t}function Wg(i,t=48e3){return rm(i,t)*4}function rm(i,t=48e3){return i*t/1e3}var $a=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},_i=()=>{let i=navigator.language;return i=i.substring(0,2),i==="zh"},Nr=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 Ds(i,t=1,e=1){return i<=1?e:Ds(i-1,e,t+e)}function Gg(i){return i>8?30*1e3:Ds(i)*1e3}function Xt(i){return Reflect.apply(Object.prototype.toString,i,[]).replace(/^\[object\s(\w+)\]$/,"$1").toLowerCase()}var Rt=i=>typeof i=="function",z=i=>typeof i=="undefined",nt=i=>typeof i=="string",ft=i=>typeof i=="number",Nt=i=>typeof i=="boolean",Xr=i=>Xt(i)==="object",Gt=i=>Xt(i)==="array",zg=i=>Xt(i)==="MediaStreamTrack".toLowerCase(),jg=i=>i.isRemote,$o=i=>Xt(i)==="promise",Os=i=>Rt(i)&&i.prototype.constructor===i,Ln=i=>Os(i)?i.prototype.constructor.name:"",qg=typeof AudioWorkletNode!="undefined",Xg=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function Fa(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 Xe(){return!performance||!performance.now?Date.now():Math.floor(performance.now())}var Pg=i=>+i<10?`0${i}`:i,Jg=i=>{let t=i.match(/^\d+\.\d+\.\d+/)[0];if(!t)return i;let e=t.split("."),r=Pg(e[1])+Pg(e[2]);return e[1]-15>0&&(e[1]="15"),e[2]-15>0&&(e[2]="15"),`${e.join(".")}.${r}`},tI=Object.prototype.hasOwnProperty,{toString:K0}=Object.prototype;function Pn(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(Nr(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(tI.call(i,t))return!1;return!0}}return!1}function Ms(i,t){return{userId:t,hasAudio:!!(i&Nn),hasVideo:!!(i&wn),hasAuxiliary:!!(i&Pa),hasSmall:!!(i&Hh),audioMuted:!!(i&Fd),videoMuted:!!(i&Hd),audioAvailable:!!(i&Nn)&&!(i&Fd),videoAvailable:!!(i&wn)&&!(i&Hd)}}function Qg(i){let t={urls:i.url.startsWith("turn:")||i.url.startsWith("turns:")?i.url:`turn:${i.url}`};return!z(i.username)&&!z(i.credential)&&(t.username=i.username,t.credential=i.credential,t.credentialType="password",z(i.credentialType)||(t.credentialType=i.credentialType)),t}function Un(i,t=!0){if(!nt(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 Ei=function(i,t,e,r){if(!(Xr(i)&&Xr(t)))return 0;let o=0,s=Object.keys(t),n;for(let a=0,c=s.length;a<c;a++)if(n=s[a],!(z(t[n])||e&&e.includes(n)))if(Xr(i[n])&&Xr(t[n]))o+=Ei(i[n],t[n],e,r);else{if(r&&r.includes(t[n]))continue;i[n]!==t[n]&&(i[n]=Ns(t[n]),o+=1)}return o};function Ns(i){if(Gt(i)){let t=[];return i.forEach((e,r)=>{t[r]=Ns(e)}),t}if(Xr(i)){let t={};return Object.keys(i).forEach(e=>{t[e]=Ns(i[e])}),t}return i}var Vn=i=>{let t=[];if(Gt(i))t=[...i];else if(nt(i)){let e=document.getElementById(i);e&&t.push(e)}else i&&t.push(i);return t},Yg=i=>nt(i)?document.getElementById(i):i,rI=i=>{let t=c=>c<10?`0${c}`:`${c}`,e=i.getFullYear(),r=i.getMonth()+1,o=i.getDate(),s=t(i.getHours()),n=t(i.getMinutes()),a=t(i.getSeconds());return`${e}/${r}/${o} ${s}:${n}:${a}`},Qd=()=>rI(new Date);function oi(i,{keysToInclude:t,keysToExclude:e}){try{if(Gt(i))return`[${i.map(n=>oi(n,{keysToInclude:t,keysToExclude:e})).join(",")}]`;if(!Nr(i)||!Gt(t)&&!Gt(e))return JSON.stringify(i);let r={},o=new Set(t),s=new Set(e);return Object.keys(i).forEach(n=>{(s.size===0&&o.has(n)||o.size===0&&!s.has(n))&&(r[n]=Nr(i[n])||Gt(i[n])?JSON.parse(oi(i[n],{keysToExclude:e,keysToInclude:t})):i[n])}),JSON.stringify(r)}catch(r){return"{}"}}function Ha(i,t=!1){let e=[];return Object.keys(i).forEach(r=>{t===i[r]&&e.push(r)}),oi(i,{keysToInclude:e})}function Zg(i){return i.replace(/[\u4e00-\u9fa5]/g,"aa").length}var im=()=>{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},Bn=i=>D(void 0,null,function*(){return new Promise((t,e)=>{let r;if(nt(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 Me({code:Te.INVALID_PARAMETER,message:`load image failed, url: ${i}`}))}})}),Yd=i=>{let t=i.split(".");return+t[0]<<24|+t[1]<<16|+t[2]<<8|+t[3]<<0},Wa=i=>(Object.keys(i).forEach(t=>{ft(i[t])&&(t.startsWith("uint")||t.startsWith("int"))?i[t]=Math.floor(i[t]):(Nr(i[t])||Gt(i[t]))&&Wa(i[t])}),i);function Ti(i,t){return new Promise(e=>{let r=setTimeout(e,i);t&&t(r)})}function Zd(i,t){let e=null;return function(...r){return e||(e=i.apply(t||this,r),e.finally(()=>e=null),e)}}function xs(i){return i.replace(/(^|[^:])\/{2,}/g,"$1/")}function Kd(i){var t;try{let{width:e,height:r,frameRate:o,sampleRate:s,sampleSize:n,channelCount:a}=(t=i.getSettings)==null?void 0:t.call(i),c=i.kind===j.AUDIO?`${s}x${n}@${a}`:`${e}x${r}@${o}`,d=i.stats?` stats: ${JSON.stringify(i.stats).replaceAll('"',"")}`:"";return`${i.id} ${i.readyState} muted:${i.muted} ${i.kind} ${i.label} ${c}${d}`}catch(e){return""}}function eu(i,t){return i.width*i.height===t.width*t.height?1:im()&&t.width>t.height&&i.height>t.width?Math.max(i.width/t.height,i.height/t.width,1):Math.max(i.width/t.width,i.height/t.height,1)}function Jr(i){return i===90||i===270}function Kg(i){return D(this,null,function*(){return new Promise((t,e)=>{let r=document.createElement("video");r.crossOrigin="anonymous",r.src=i,r.muted=!0,r.loop=!0,r.playsInline=!0,r.play().then(()=>t(r)),r.onerror=()=>{e(r.error)}})})}function Xd(i,t=new WeakMap){if(typeof i!="object"||i===null)return i;if(t.has(i))return t.get(i);if(Array.isArray(i)){let e=[];return t.set(i,e),i.forEach((r,o)=>{e[o]=Xd(r,t)}),e}if(Object.prototype.toString.call(i)==="[object Object]"){let e={};return t.set(i,e),Reflect.ownKeys(i).forEach(r=>{e[r]=Xd(i[r],t)}),e}return i}var $n=(r=>(r[r.END_REPORT=2001]="END_REPORT",r[r.LOG=2002]="LOG",r[r.KEY_METRIC_REPORT=2003]="KEY_METRIC_REPORT",r))($n||{});function iI(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return z(r)||(o=qe(be({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function so(i,t,e,r){try{let o=iI(i,t,e,r),s=zd(o);return kg(s,e)}catch(o){return JSON.stringify(i)}}function e_(i,t){let e=new Uint8Array(i.byteLength+t.byteLength);return e.set(new Uint8Array(i),0),e.set(new Uint8Array(t),i.byteLength),e.buffer}function t_(i){return(i&65535)>>>0}function r_(i){return(i&4294901760)>>>0}function i_(i){let t=oI(i);return t==null?void 0:t.busiBuff}function oI(i){try{let t={},e=0;t.totalLength=wr(i,e),e+=4,t.version=wr(i,e),e+=4,t.encryption=Yh(i,e),e+=1,t.uinType=Yh(i,e),e+=1,t.uinLength=wr(i,e),e+=4,t.uin=t.uinLength>4?On(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=sI(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=wr(i,e),e+=4,t.seqNo=wr(i,e),e+=4,t.retCode=wr(i,e),e+=4,t.retStrLength=wr(i,e),e+=4,t.retStr=t.retStrLength?On(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=wr(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?On(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=wr(i,e),e+=4,t.cookie=t.cookieLength?On(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=wr(i,e),e+=4,t.busiBuffLength=wr(i,e),e+=4,t.busiBuff=t.busiBuffLength?On(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function o_(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e=e>>>0,r=r>>>0;let o=jd*qd>>>0;for(let s=0;s<qd;s++)r-=(e<<em)+t[2]^e+o^(e>>>5)+t[3],r=r>>>0,e-=(r<<em)+t[0]^r+o^(r>>>5)+t[1],e=e>>>0,o-=jd,o=o>>>0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,e&255,r>>>24&255,r>>>16&255,r>>>8&255,r&255])}function sI(i,t){let e=0,r=new Uint8Array(8).fill(0),o=new Uint8Array(i.slice(0,8)),s=o_(o,t),n=s[0]&7,a=i.length-1-n-Mn-xn,c=new Uint8Array(a),d=0,m=r,l=i.slice(0,8);e=8;let f=1;f+=n;for(let T=1;T<=Mn;)if(f<8)f++,T++;else if(f===8){let E=om(i,e,m,l,s,t);m=E.ivPreCrypt,l=E.ivCurCrypt,s=E.debiBuf,e=E.bufPos,f=0}let g=a;for(;g>0;)if(f<8)c[d++]=s[f]^m[f],f++,g--;else if(f===8){let T=om(i,e,m,l,s,t);m=T.ivPreCrypt,l=T.ivCurCrypt,s=T.debiBuf,e=T.bufPos,f=0}for(let T=1;T<=xn;)if(f<8)s[f]^m[f],f++,T++;else if(f===8){if(e>=i.length)break;let E=om(i,e,m,l,s,t);if(!E.success)break;m=E.ivPreCrypt,l=E.ivCurCrypt,s=E.debiBuf,e=E.bufPos,f=0}return c}function om(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),c=new Uint8Array(8);for(let m=0;m<8;m++)c[m]=o[m]^a[m];let d=o_(c,s);return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:d,bufPos:t+8}}var s_=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function no({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(c=>c.clone().json().then(d=>({data:d}),()=>c.arrayBuffer().then(d=>({data:i_(new Uint8Array(d))||(s_?s_.decode(d):d)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let c=JSON.parse(a.response);s({data:c})}catch(c){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}function sm(i){return D(this,null,function*(){let t=Xe(),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")),a=yield(yield(yield new Response(o)).blob()).arrayBuffer();return se.debug(`compressJSON ${e.length} -> ${a.byteLength} ${Xe()-t}ms`),a}catch(r){return e}})}var nI=Object.prototype.hasOwnProperty;var Fo=i=>typeof i=="function",ks=i=>typeof i=="undefined";var n_=i=>typeof i=="boolean";var nm=i=>i.isRemote;var am=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 a_(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(am(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(nI.call(i,t))return!1;return!0}}return!1}var aI=0,cI=1,c_=2;function dI({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:c=5,timeout:d=1e3}=t,m=0,l=-1,f=aI,g=(T,E)=>D(this,null,function*(){let y=n||this;try{let v=yield i.apply(y,a);m>0&&s&&s.call(this,m),m=0,T(v)}catch(v){let M=()=>{clearTimeout(l),m=0,f=c_,E(v)},w=()=>{f!==c_&&m<(Fo(c)?c():c)?(m++,f=cI,Fo(r)&&r.call(this,m,M),l=window.setTimeout(()=>{l=-1,g(T,E)},Fo(d)?d(m):d)):(M(),Fo(o)&&o.call(this,v))};Fo(e)?e.call(this,{error:v,retry:w,reject:E,retryFuncArgs:a,retriedCount:m}):w()}});return new Promise(g)}}var Ho=dI;var Wo=class i{constructor(t){p(this,"_parentPath");p(this,"userId");p(this,"remoteUserId");p(this,"id");p(this,"sdkAppId");p(this,"type");p(this,"isLocal");this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=n_(t.isLocal)?t.isLocal:!0,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new i({id:t.id,userId:ks(t.userId)?this.userId:t.userId,sdkAppId:ks(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:ks(t.type)?this.type:t.type,isLocal:ks(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:ks(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),se.log(t,e,ks(this.userId)||a_(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 Qn={};eo(Qn,{ANDROID_VERSION:()=>ru,CHROME_MAJOR_VERSION:()=>Fr,CHROME_VERSION:()=>Su,EDGE_VERSION:()=>su,EDG_MAJOR_VERSION:()=>dm,EDG_VERSION:()=>nu,ELECTRON_MAJOR_VERSION:()=>pm,FIREFOX_MAJOR_VERSION:()=>ou,FIREFOX_VERSION:()=>iu,HUAWEI_VERSION:()=>gu,IE_VERSION:()=>pI,IOS_MAIN_VERSION:()=>Tr,IOS_VERSION:()=>ai,IPADQQB_VERSION:()=>pu,IS_ANDROID:()=>Bt,IS_ANDROID_WEBVIEW:()=>EI,IS_ANY_SAFARI:()=>ni,IS_CHROME:()=>Xn,IS_CHROME_OS:()=>um,IS_CHROMIUM_BASE:()=>Qr,IS_DESKTOP_IOS_CHROME:()=>Tm,IS_EDG:()=>Wn,IS_EDGE:()=>Ls,IS_ELECTRON:()=>gI,IS_FIREFOX:()=>zt,IS_HEADLESS_CHROME:()=>mm,IS_HONOR:()=>hm,IS_HUAWEI:()=>Ka,IS_HUAWEIBROWSER:()=>Za,IS_IE:()=>h_,IS_IE8:()=>mI,IS_IOS:()=>Ut,IS_IOS_13_OR_14:()=>Em,IS_IOS_15_1:()=>_m,IS_IOS_CHROME:()=>Ga,IS_IPAD:()=>Hn,IS_IPADQQB:()=>Ja,IS_IPAD_PRO:()=>cm,IS_IPHONE:()=>Go,IS_IPOD:()=>l_,IS_LINUX:()=>Qa,IS_LOCAL:()=>bi,IS_MAC:()=>Ii,IS_MACQQB:()=>Xa,IS_MIBROWSER:()=>Ya,IS_MQQB:()=>zn,IS_NATIVE_ANDROID:()=>hI,IS_OLD_ANDROID:()=>lI,IS_OPENHARMONY:()=>qn,IS_OPPOBROWSER:()=>jn,IS_SAFARI:()=>Zt,IS_SAFARI_15_1:()=>TI,IS_SAMSUNGBROWSER:()=>ec,IS_SOGOU:()=>ja,IS_SOGOUM:()=>za,IS_TBS:()=>Si,IS_UCBROWSER:()=>lm,IS_VIVOBROWSER:()=>tc,IS_WECHAT:()=>co,IS_WIN:()=>Ps,IS_WQQB:()=>qa,IS_WX:()=>fI,IS_X5MQQB:()=>Gn,IS_XWEB:()=>ao,MACQQB_VERSION:()=>mu,MI_VERSION:()=>fu,MQQB_VERSION:()=>Fn,OPENHARMONY_VERSION:()=>_I,OPPO_VERSION:()=>Eu,SAFARI_VERSION:()=>uo,SAMSUNG_VERSION:()=>_u,SOGOUM_VERSION:()=>au,SOGOU_VERSION:()=>cu,TBS_VERSION:()=>du,UA_DATA_STRING:()=>yi,USER_AGENT:()=>$r,VIVO_VERSION:()=>Tu,WECHAT_VERSION:()=>lu,WQQB_VERSION:()=>hu,XWEB_VERSION:()=>uu,browserInfo:()=>Bi,getBrowserCoreNumber:()=>Sm,getBrowserInfo:()=>m_,getChromeMajorVersion:()=>yu,getDeviceModel:()=>Vs,getDeviceModelFromUA:()=>Iu,getGPUInfo:()=>ym,getOSName:()=>Jn,getOSNumber:()=>Bs,getOSString:()=>ho,getOSType:()=>bm,getTerminalType:()=>Im,getUserAgentData:()=>Us,isLocalStorageEnabled:()=>lo,isMobile:()=>rc,isVersionLargerThan:()=>gm,isVersionSmallerThan:()=>fm});var $r=typeof navigator=="undefined"?"":navigator.userAgent,et=i=>new RegExp(i,"i").test($r),er=i=>{if(et(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=$r.match(t);if(e&&e[1])return e[1]}return""},tu=i=>{if(et(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=$r.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},d_=/AppleWebKit\/([\d.]+)/i.exec($r),uI=d_?parseFloat(d_[1]):NaN,Hn=et("iPad"),cm=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&et("Macintosh"),Go=et("iPhone")&&!Hn,l_=et("iPod"),Ut=Go||Hn||l_||cm,Bt=et("Android"),ru=function(){if(Bt){let i=$r.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}(),lI=Bt&&et("webkit")&&ru<2.3,hI=Bt&&ru<5&&uI<537,zt=et("Firefox"),iu=er("Firefox"),ou=tu("Firefox"),Ls=et("Edge"),su=er("Edge"),Wn=et("Edg"),nu=er("Edg"),dm=tu("Edg"),za=et("SogouMobileBrowser"),au=er("SogouMobileBrowser"),ja=et("MetaSr\\s"),cu=er("MetaSr\\s"),Si=et("TBS"),du=er("TBS"),ao=et("XWEB"),uu=er("XWEB"),mI=et("MSIE\\s8\\.0"),h_=et("MSIE\\/\\d+"),pI=function(){if(h_){let i=/MSIE\s(\d+)\.\d/.exec($r),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test($r)&&/rv:11.0/.test($r)&&(t=11),t}return NaN}(),co=et("(micromessenger|webbrowser)"),lu=er("MicroMessenger"),Gn=!Si&&et("MQQBrowser")&&et("COVC"),zn=!Si&&et("MQQBrowser")&&!et("COVC"),Fn=zn||Gn?er("MQQBrowser"):"",qa=!Si&&et(" QQBrowser"),hu=er(" QQBrowser"),Xa=!Si&&et("QQBrowserLite"),mu=er("QQBrowserLite"),Ja=!Si&&et("MQBHD"),pu=er("MQBHD"),Ps=et("Windows"),Ii=!Ut&&et("MAC OS X"),Qa=!Bt&&et("Linux"),um=et("CrOS"),fI=et("MicroMessenger"),lm=et("UCBrowser"),gI=et("Electron"),Ya=et("MiuiBrowser"),fu=er("MiuiBrowser"),Za=et("HuaweiBrowser"),Ka=et("Huawei")||et("HUAWEI"),hm=et("Honor")||et("HONOR"),gu=er("HuaweiBrowser"),ec=et("SamsungBrowser"),_u=er("SamsungBrowser"),jn=et("HeyTapBrowser"),Eu=er("HeyTapBrowser"),tc=et("VivoBrowser"),Tu=er("VivoBrowser"),qn=et("OpenHarmony"),_I=er("OpenHarmony"),yu=()=>tu("Chrome"),Ga=et("CriOS"),Qr=et("Chrome"),Xn=!Ls&&!ja&&!za&&!Si&&!ao&&!Wn&&!qa&&!Ya&&!Za&&!ec&&!jn&&!tc&&Qr,mm=et("HeadlessChrome"),Fr=yu(),Su=er("Chrome"),pm=tu("Electron"),Zt=!Qr&&!zn&&!Gn&&!Xa&&!Ja&&et("Safari"),ni=Zt||Ut,uo=er("Version"),EI=/Android.*(wv|.0.0.0)/.test($r),ai=(()=>{if(cm)return uo;if(Ut){let i=$r.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})();function fm(i,t){let e=i.split(".").map(o=>Number(o)),r=t.split(".").map(o=>Number(o));for(let o=0;o<Math.max(e.length,r.length);o++){let s=e[o]||0,n=r[o]||0;if(s<n)return!0;if(s>n)return!1}return!1}function gm(i,t,e=!1){let r=i.split(".").map(s=>Number(s)),o=t.split(".").map(s=>Number(s));for(let s=0;s<Math.max(r.length,o.length);s++){let n=r[s]||0,a=o[s]||0;if(n>a)return!0;if(n<a)return!1}return e}var Tr=Number(ai.split(".")[0]),TI=uo==="15.1",_m=ai==="15.1",Em=(()=>{let i=Number(ai.split(".")[0]);return i===14||i===13})(),Tm=Ga&&uo==="11.1.1",bi=typeof location=="undefined"?!1:location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1",lo=(()=>{let i;return()=>{if(typeof i=="undefined")try{i=!!window.localStorage}catch(t){i=!1}return i}})(),Bi=m_();function m_(){let i=new Map([[zt,["Firefox",iu]],[Wn,["Edg",nu]],[Xn,["Chrome",Su]],[Ga,["ChiOS",er("CriOS")]],[Zt&&!Ga,["Safari",uo]],[Si,["TBS",du]],[ao,["XWEB",uu]],[co&&Go,["WeChat",lu]],[qa,["QQ(Win)",hu]],[zn,["QQ(Mobile)",Fn]],[Gn,["QQ(Mobile X5)",Fn]],[Xa,["QQ(Mac)",mu]],[Ja,["QQ(iPad)",pu]],[Ya,["MI",fu]],[Za,["HW",gu]],[ec,["Samsung",_u]],[jn,["OPPO",Eu]],[tc,["VIVO",Tu]],[Ls,["EDGE",su]],[za,["SogouMobile",au]],[ja,["Sogou",cu]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var Ct=null;function rc(){return Ct&&typeof Ct.mobile=="boolean"?Ct.mobile:Bt||Ut||Go||Hn||qn}var yi="";function Us(){return D(this,null,function*(){if(Ct)return Ct;if(!navigator.userAgentData||typeof navigator.userAgentData.getHighEntropyValues!="function")return null;try{return Ct=yield navigator.userAgentData.getHighEntropyValues(["architecture","bitness","model","platformVersion","fullVersionList"]),Ct&&!yi&&(yi=`UAData: ${Ct.platform}/${Ct.platformVersion}`,Ct.architecture&&Ct.bitness&&(yi+=` ${Ct.architecture}/${Ct.bitness}`),Ct.mobile&&(yi+=" mobile"),Ct.model&&(yi+=` model: ${Ct.model.replace(/\s+/g,"/")}`),Ct.fullVersionList&&(yi+=` ${Ct.fullVersionList.filter(i=>i.brand!=="Not/A)Brand").map(i=>`${i.brand}/${i.version}`).join(",")}`)),Ct}catch(i){return null}})}function ym(){try{let i=document.createElement("canvas"),t=i.getContext("webgl")||i.getContext("experimental-webgl");if(!t)return"";let e=t.getExtension("WEBGL_debug_renderer_info");if(e){let r=t.getParameter(e.UNMASKED_VENDOR_WEBGL),o=t.getParameter(e.UNMASKED_RENDERER_WEBGL);return`${r} ${o}`}return""}catch(i){return""}}function Vs(){return(Ct==null?void 0:Ct.model)||Iu()||""}function Iu(){let i=/;\s*([^;)]+)\s+Build\//,t=$r.match(i);return t!=null&&t[1]?t[1].trim():null}var u_=new Map([[Bt,"Android"],[Ut,"iOS"],[Ps,"Windows"],[Ii,"MacOS"],[Qa,"Linux"],[um,"ChromeOS"]]),Jn=function(){return u_.get(!0)?u_.get(!0):Ct?Ct.platform:"unknown"};function Bs(){return Ps?1:Bt?2:Ii?3:Ut?4:Qa?5:um?6:qn?7:0}function Sm(){return co||ao?4:Qr?1:Zt?2:zt?3:0}var ho=()=>{let i=Jn();return Ct!=null&&Ct.platformVersion?i+=`/${Ct.platformVersion}`:Ut?i+=`/${ai}`:Bt&&(i+=`/${ru}`),i+=`/${Bi.name}/${Zt&&!Ga?Bi.version:Bi.version.split(".")[0]}`,Ct!=null&&Ct.architecture&&(i+=`/${Ct.architecture}`),i};function Im(){return Bt?4:Go?2:Hn?3:Ii?12:Ps?5:Qa?13:qn?22:1}function bm(){return Bt?"Android":Go?"iPhone":Hn?"iPad":Ii?"Mac":Ps?"Windows":Qa?"Linux":"unknown"}var f_=Li(mo(),1),II=new f_.default,ee=II;var Hr=(Z=>(Z.ROOM_DESTROY="1",Z.JOIN_START="21",Z.JOIN_SCHEDULE_SUCCESS="22",Z.JOIN_SIGNAL_CONNECTION_START="23",Z.JOIN_SIGNAL_CONNECTION_END="24",Z.JOIN_SEND_CMD="25",Z.JOIN_RECEIVED_CMD_RES="26",Z.JOIN_SUCCESS="27",Z.JOIN_FAILED="28",Z.LEAVE_START="51",Z.LEAVE_SEND_CMD="52",Z.LEAVE_SUCCESS="53",Z.PUBLISH_START="61",Z.SEND_FIRST_VIDEO_FRAME="62",Z.PUBLISH_FAILED="63",Z.SUBSCRIBE_START="81",Z.SUBSCRIBE_SUCCESS="82",Z.SUBSCRIBE_FAILED="84",Z.UNSUBSCRIBE_SUCCESS="83",Z.LOCAL_TRACK_CAPTURE_START="101",Z.LOCAL_TRACK_CAPTURE_SUCCESS="102",Z.LOCAL_TRACK_CAPTURE_FAILED="103",Z.LOCAL_TRACK_PUBLISHED="104",Z.LOCAL_TRACK_UNPUBLISHED="105",Z.LOCAL_TRACK_REPLACED="106",Z.SWITCH_DEVICE_SUCCESS="107",Z.TRACK_MUTED="108",Z.TRACK_UNMUTED="109",Z.REMOTE_TRACK_SUBSCRIBED="110",Z.REMOTE_TRACK_UNSUBSCRIBED="111",Z.LOCAL_TRACK_RECAPTURE="112",Z.LOCAL_AUDIO_STARTED="113",Z.LOCAL_AUDIO_STOPPED="114",Z.REMOTE_AUDIO_STARTED="115",Z.REMOTE_AUDIO_STOPPED="116",Z.PLAY_TRACK_START="151",Z.PLAYER_STATE_CHANGED="152",Z.VIDEO_LOADED_DATA="153",Z.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",Z.AUDIO_CONTEXT_LONG_SUSPENDED="155",Z.REMOTE_VIDEO_PLAY_START="156",Z.REMOTE_VIDEO_PLAY_FINISH="157",Z.SIGNAL_CONNECTION_STATE_CHANGED="201",Z.PEER_CONNECTION_STATE_CHANGED="202",Z.SINGLE_CONNECTION_STAT="203",Z.SPC_RECONNECTED="204",Z.HEARTBEAT_REPORT="251",Z.RECEIVED_PUBLISHED_USER_LIST="252",Z.REMOTE_PUBLISH_STATE_CHANGED="253",Z.AUDIO_LEVEL_INTERVAL="260",Z.NETWORK_QUALITY="261",Z.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",Z.QUALITY_LIMITATION_CHANGED="263",Z.LOG="264",Z.AUDIO_PROCESSOR_DEBUG="265",Z.SSO_SWITCH="266",Z.SWITCH_ROOM_START="401",Z.SWITCH_ROOM_SUCCESS="407",Z.SWITCH_ROOM_FAILED="408",Z))(Hr||{});var ce=Hr;var vm=class{constructor(){p(this,"enable",!1);p(this,"ssoFailCount",0);ee.on("22",({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.sso&&ee.emit("266",{enable:!0})}),ee.on("266",({enable:t})=>{this.enable=t})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&ee.emit("266",{enable:!1})}},zo=new vm;var bI="%cTRTC%c%s",AI="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",vI="display: inline",Au=class Au{constructor(){p(this,"_isEnableUploadLog",!0);p(this,"_localJoinedUser",new Map);p(this,"_queue",[]);p(this,"_timeoutId",-1);p(this,"_logLevel",1);p(this,"_logLevelToUpload",2);!Cn&&!xa&&(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){ee.on(ce.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&ri[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),ee.on(ce.JOIN_START,({params:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),ee.on(ce.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(nt(r.userId)&&ft(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 D(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:n,sdkAppId:a,logs:c}=o[s],d={timestamp:kd(),sdkAppId:String(a),userId:n,version:qt,log:c.map(f=>f.log).join(`
|
|
5
|
+
`)},m=JSON.stringify(d),l=zo.enable?so(d,2002,a):m;yield this.uploadLogWithRetry(l,a,l instanceof Uint8Array,m),c.forEach(f=>f.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Ho({retryFunction:()=>no({url:oo(e,Bo.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(zo.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(to()),`[${Rn(e)}] <${ri[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){z(ri[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(nt(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,c)=>`${a} ${this.logChunkToString(c)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};ee.emit(ce.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var a;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let n=((a=ri[t])==null?void 0:a.toLowerCase())||"info";Au.PRINT_LOG_TAG?console[n](bI,AI,vI,...e):console[n](...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){if(t.parent instanceof Wo){let e=t,{parent:r}=e,o=Rg(e,["parent"]),s=new Wo(o);return s.bindParent(r),s}return new Wo(t)}checkURLParam(){let e=new URLSearchParams(location.search).get("logLevelToUpload"),r=e?Number(e):-1;ri[r]&&(this._logLevelToUpload=r)}getQueue(){return this._queue}};p(Au,"PRINT_LOG_TAG",!(Ut||Bt||mm));var Rm=Au,se=new Rm;var RI=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)})},oc=RI;var Cm=class{constructor(){p(this,"_prefix","TRTC");p(this,"_queue",new Map)}getRealKey(t){return`${this._prefix}_${t}`}checkStorage(){if(!lo())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(lo())try{for(let[t,e]of this._queue)localStorage.setItem(t,JSON.stringify(e))}catch(t){se.warn(t)}}getItem(t){if(!lo())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){se.warn(e)}}setItem(t,e){if(lo())try{let r={expiresIn:Date.now()+Ud,value:e};this._queue.set(this.getRealKey(t),r)}catch(r){se.warn(r)}}deleteItem(t){if(!lo())return!1;try{return t=this.getRealKey(t),this._queue.delete(t),localStorage.removeItem(t),!0}catch(e){return se.warn(e),!1}}clear(){if(lo())try{localStorage.clear()}catch(t){se.warn(t)}}},Yn=new Cm;var Jo={};eo(Jo,{HTTPS_API:()=>XI,IS_GET_CAPABILITIES_FROM_INPUTDEVICE_SUPPORTED:()=>Ym,IS_GET_CAPABILITIES_SUPPORTED:()=>Qm,IS_GET_SETTINGS_SUPPORTED:()=>ea,IS_GET_SYNCHRONIZATION_SOURCES_SUPPORTED:()=>ib,IS_INSERTABLE_STREAM_SUPPORTED:()=>zs,IS_JITTER_BUFFER_TARGET_SUPPORTED:()=>nb,IS_RTC_RTP_SENDER_SUPPORTED:()=>pc,IS_SCRIPT_TRANSFORM_SUPPORTED:()=>q_,IS_SEI_SUPPORTED:()=>fc,IS_SPC_SUPPORTED:()=>KI,basis:()=>ob,capabilityCheck:()=>ep,checkSystemRequirementsInternal:()=>Vu,decodeSupportStatus:()=>B_,detectVideoCodecCapabilities:()=>tp,detectVideoDecoderCapabilities:()=>Z_,detectVideoEncoderCapabilities:()=>Y_,encodeSupportStatus:()=>Jm,getBrowserInfo:()=>Pu,getDisplayResolution:()=>$_,getH264ProfileLevelIds:()=>K_,isAddTransceiverSupported:()=>$u,isBrowserSupported:()=>jm,isCanvasCaptureStreamAPISupported:()=>W_,isCanvasSmallStreamSupported:()=>G_,isGetReceiversSupported:()=>YI,isGetSendersSupported:()=>j_,isGetTransceiversSupported:()=>ZI,isGetUserMediaSupported:()=>F_,isMediaDevicesSupported:()=>Uu,isMediaSessionSupported:()=>X_,isMediaStreamTrackGeneratorSupported:()=>HI,isMediaStreamTrackProcessorSupported:()=>Xm,isReplaceTrackSupported:()=>tb,isRequestVideoFrameCallbackSupported:()=>Ri,isSIMDSupported:()=>Km,isScaleResolutionDownBySupported:()=>z_,isScreenCaptureApiAvailable:()=>mc,isSelectedCandidatePair:()=>JI,isSetParametersSupported:()=>rb,isSetSinkIdSupported:()=>zI,isSmallStreamSupported:()=>Bu,isStopTransceiverSupported:()=>eb,isTRTCSupported:()=>GI,isUnifiedPlanDefault:()=>QI,isUsedInHttpProtocol:()=>Eo,isWebAudioSupported:()=>H_,isWebCodecSupported:()=>Fu,isWebCodecsSupported:()=>qm,isWebRTCSupported:()=>Zm,isWebTransportSupported:()=>J_});var $m={};eo($m,{AUDIO_LEVEL_SCALE:()=>fo,AlphaStitchingType:()=>lc,AudioCodecPipelineType:()=>Hs,AudioDecoderDowngradeState:()=>Dm,AudioPlayerMode:()=>km,AudioType:()=>Mm,BASIC_TYPE:()=>go,BannedReason:()=>Lm,CONNECTION_CLOSED_REASON:()=>__,CheckPermissionType:()=>Bm,ClientEvent:()=>wm,CodecType:()=>A_,ConnectionEvent:()=>g_,ConnectionState:()=>Ru,DECODE_FAILED_ERROR_CODE:()=>Vm,DenoiserMode:()=>Um,DeviceType:()=>Du,FacingMode:()=>Cu,FrameWorkType:()=>vu,LeaveReason:()=>Pm,LocalTrackEvent:()=>jo,MULTI_VIDEO_DATA_TYPE:()=>po,MediaType:()=>dr,MediaTypeLabel:()=>CI,MonitorEventId:()=>ac,MutedFlag:()=>T_,NetworkQualityValue:()=>I_,PlayerState:()=>qo,ReceiveMode:()=>b_,RemoteStreamType:()=>vi,RemoteTrackEvent:()=>$s,RoomEvent:()=>$i,SMALL_MODE:()=>Nu,SceneNumber:()=>Nm,StreamEvent:()=>E_,StreamType:()=>S_,SubscribeMediaType:()=>sc,TIMER_TYPE:()=>Xo,TRACK_ACTION:()=>y_,TRACK_KIND:()=>Om,TrackEvent:()=>Ai,UserRole:()=>Pr,UserRoleNumber:()=>Fs,VideoCodec:()=>wu,VideoCodecPipelineType:()=>dc,VideoContentHint:()=>uc,VideoDecoderDowngradeState:()=>nc,VideoPlayerMode:()=>cc,VideoType:()=>xm});var vu=(e=>(e[e.WEBRTC=30]="WEBRTC",e[e.WASM=37]="WASM",e))(vu||{}),g_=(E=>(E.TRACK_ADDED="track-added",E.TRACK_UPDATED="track-updated",E.TRACK_SUBSCRIBED="track-subscribed",E.STREAM_ADDED="stream-added",E.STREAM_REMOVED="stream-removed",E.STREAM_UPDATED="stream-updated",E.STREAM_PUBLISHED="stream-published",E.STREAM_SUBSCRIBED="stream-subscribed",E.STREAM_UNSUBSCRIBED="stream-unsubscribed",E.STATE_CHANGED="state-changed",E.ERROR="error",E.CONNECTION_STATE_CHANGED="connection-state-changed",E.FIREWALL_RESTRICTION="firewall-restriction",E.SEI_MESSAGE="sei-message",E.CLOSED="closed",E))(g_||{}),__=(n=>(n.REMOTE_LEAVE="remote user exitRoom",n.REMOTE_UNPUBLISH="remote user unpublished",n.LOCAL_LEAVE="you exitRoom",n.LOCAL_UNPUBLISH="you unpublished",n.LOCAL_UNSUBSCRIBE="you unsubscribed",n.SWITCH_ROLE="you switch role to audience",n))(__||{}),wm=(y=>(y.STREAM_ADDED="stream-added",y.STREAM_REMOVED="stream-removed",y.STREAM_UPDATED="stream-updated",y.STREAM_SUBSCRIBED="stream-subscribed",y.CONNECTION_STATE_CHANGED="connection-state-changed",y.PEER_JOIN="peer-join",y.PEER_LEAVE="peer-leave",y.MUTE_AUDIO="mute-audio",y.MUTE_VIDEO="mute-video",y.UNMUTE_AUDIO="unmute-audio",y.UNMUTE_VIDEO="unmute-video",y.CLIENT_BANNED="client-banned",y.NETWORK_QUALITY="network-quality",y.AUDIO_VOLUME="audio-volume",y.SEI_MESSAGE="sei-message",y.ERROR="error",y))(wm||{}),E_=(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))(E_||{}),jo=(c=>(c.DEVICE_AUTO_RECOVERED="1",c.DEVICE_RECOVER_FAILED="5",c.DEVICE_CHANGED="2",c.ERROR="3",c.PUBLISH_STATE_CHANGED="4",c.ENCODE_FAILED="6",c.TRACK_ENDED="7",c.RENDER="render",c))(jo||{}),qo=(r=>(r.PAUSED="PAUSED",r.PLAYING="PLAYING",r.STOPPED="STOPPED",r))(qo||{}),$i=(P=>(P.PEER_JOIN="peer-join",P.PEER_LEAVE="peer-leave",P.SIGNAL_CONNECTION_STATE_CHANGED="signal-connection-state-changed",P.MEDIA_CONNECTION_STATE_CHANGED="media-connection-state-changed",P.BANNED="banned",P.NETWORK_QUALITY="network-quality",P.AUDIO_VOLUME="audio-volume",P.SEI_MESSAGE="sei-message",P.ERROR="error",P.REMOTE_PUBLISH_STATE_CHANGED="remote-publish-state-changed",P.REMOTE_PUBLISHED="remote-published",P.REMOTE_UNPUBLISHED="remote-unpublished",P.FIREWALL_RESTRICTION="firewall-restriction",P.HEARTBEAT_REPORT="heartbeat-report",P.CUSTOM_MESSAGE="custom-message",P.LAYER_DATA="layerData",P.FIRST_VIDEO_FRAME="first-video-frame",P.DUMP="dump",P.AUDIO_FRAME="audio-frame",P.SUBSCRIBE_SMALL_VIDEO_CHANGED="subscribe-small-video-changed",P.LOCAL_PUBLISH_FLAG_CHANGED="local-publish-flag-changed",P.NTP_TIME_UPDATED="ntp-time-updated",P))($i||{}),Ai=(c=>(c.PLAYER_STATE_CHANGED="player-state-changed",c.MUTE="mute",c.UNMUTE="unmute",c.ERROR="error",c.INPUT_MEDIA_TRACK_CHANGED="input-media-track-changed",c.OUTPUT_MEDIA_TRACK_CHANGED="output-media-track-changed",c.FIRST_VIDEO_FRAME="first-video-frame",c.VIDEO_SIZE_CHANGED="video-size-changed",c))(Ai||{}),$s=(o=>(o.DECODE_FAILED="decode-failed",o.DECODE_DOWNGRADE_STATE_CHANGED="decode-downgrade-state-changed",o.REMOTE_PUBLISH_CHANGED="remote-publish-changed",o.AUDIO_FRAME_WITH_NTP="audio-frame-with-ntp",o))($s||{}),T_=(a=>(a[a.VIDEO=1]="VIDEO",a[a.SMALL=2]="SMALL",a[a.AUX=4]="AUX",a[a.AUDIO=8]="AUDIO",a[a.VIDEO_MUTE=16]="VIDEO_MUTE",a[a.AUX_MUTE=32]="AUX_MUTE",a[a.AUDIO_MUTE=64]="AUDIO_MUTE",a))(T_||{}),Nm=(e=>(e[e.RTC=1]="RTC",e[e.LIVE=2]="LIVE",e))(Nm||{}),Fs=(e=>(e[e.ANCHOR=20]="ANCHOR",e[e.AUDIENCE=21]="AUDIENCE",e))(Fs||{}),Pr=(e=>(e.ANCHOR="anchor",e.AUDIENCE="audience",e))(Pr||{}),Ru=(s=>(s.CONNECTED="CONNECTED",s.DISCONNECTED="DISCONNECTED",s.CONNECTING="CONNECTING",s.RECONNECTED="RECONNECTED",s.RECONNECTING="RECONNECTING",s))(Ru||{}),Dm=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(Dm||{}),nc=(o=>(o.INITIALIZED="INITIALIZED",o.STARTING="STARTING",o.STARTED="STARTED",o.FAILED="FAILED",o))(nc||{}),Om=(r=>(r.AUDIO="audio",r.VIDEO="video",r.AUXILIARY="auxVideo",r))(Om||{}),y_=(e=>(e.ADD="add",e.REMOVE="remove",e))(y_||{}),dr=(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))(dr||{}),CI={1:"audio",2:"auxVideo",4:"video"},Mm=(t=>(t[t.opus=111]="opus",t))(Mm||{}),xm=(e=>(e[e.h264=100]="h264",e[e.vp8=101]="vp8",e))(xm||{}),S_=(e=>(e.Big="big",e.Small="small",e))(S_||{}),vi=(e=>(e.Main="main",e.Aux="auxiliary",e))(vi||{}),po=(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))(po||{}),ac=(ae=>(ae[ae.PUBLISH_VIDEO=32768]="PUBLISH_VIDEO",ae[ae.PUBLISH_AUDIO=32769]="PUBLISH_AUDIO",ae[ae.UNPUBLISH_VIDEO=32770]="UNPUBLISH_VIDEO",ae[ae.UNPUBLISH_AUDIO=32771]="UNPUBLISH_AUDIO",ae[ae.MUTE_AUDIO=32772]="MUTE_AUDIO",ae[ae.MUTE_VIDEO=32773]="MUTE_VIDEO",ae[ae.UNMUTE_AUDIO=32774]="UNMUTE_AUDIO",ae[ae.UNMUTE_VIDEO=32775]="UNMUTE_VIDEO",ae[ae.SUBSCRIBE_VIDEO=32776]="SUBSCRIBE_VIDEO",ae[ae.SUBSCRIBE_AUDIO=32777]="SUBSCRIBE_AUDIO",ae[ae.UNSUBSCRIBE_VIDEO=32778]="UNSUBSCRIBE_VIDEO",ae[ae.UNSUBSCRIBE_AUDIO=32779]="UNSUBSCRIBE_AUDIO",ae[ae.SWITCH_CAMERA=32780]="SWITCH_CAMERA",ae[ae.SWITCH_MICROPHONE=32781]="SWITCH_MICROPHONE",ae[ae.REPLACE_VIDEO=32782]="REPLACE_VIDEO",ae[ae.REPLACE_AUDIO=32783]="REPLACE_AUDIO",ae[ae.MUTE_REMOTE_VIDEO=32784]="MUTE_REMOTE_VIDEO",ae[ae.MUTE_REMOTE_AUDIO=32785]="MUTE_REMOTE_AUDIO",ae[ae.UNMUTE_REMOTE_VIDEO=32786]="UNMUTE_REMOTE_VIDEO",ae[ae.UNMUTE_REMOTE_AUDIO=32787]="UNMUTE_REMOTE_AUDIO",ae[ae.JOIN=32788]="JOIN",ae[ae.LEAVE=32789]="LEAVE",ae[ae.SIGNAL_DISCONNECTED=32790]="SIGNAL_DISCONNECTED",ae[ae.SIGNAL_CONNECTED=32791]="SIGNAL_CONNECTED",ae[ae.TRANSPORT_UPLINK_CONNECTED=32792]="TRANSPORT_UPLINK_CONNECTED",ae[ae.TRANSPORT_DOWNLINK_CONNECTED=32793]="TRANSPORT_DOWNLINK_CONNECTED",ae[ae.SIGNAl_RECONNECTING=32794]="SIGNAl_RECONNECTING",ae[ae.SIGNAL_RECONNECT_SUCCESS=32795]="SIGNAL_RECONNECT_SUCCESS",ae[ae.SIGNAL_RECONNECT_FAIL=32796]="SIGNAL_RECONNECT_FAIL",ae[ae.TRANSPORT_UPLINK_RECONNECTING=32797]="TRANSPORT_UPLINK_RECONNECTING",ae[ae.TRANSPORT_UPLINK_RECONNECT_SUCCESS=32798]="TRANSPORT_UPLINK_RECONNECT_SUCCESS",ae[ae.TRANSPORT_UPLINK_RECONNECT_FAIL=32799]="TRANSPORT_UPLINK_RECONNECT_FAIL",ae[ae.TRANSPORT_DOWNLINK_RECONNECTING=32800]="TRANSPORT_DOWNLINK_RECONNECTING",ae[ae.TRANSPORT_DOWNLINK_RECONNECT_SUCCESS=32801]="TRANSPORT_DOWNLINK_RECONNECT_SUCCESS",ae[ae.TRANSPORT_DOWNLINK_RECONNECT_FAIL=32802]="TRANSPORT_DOWNLINK_RECONNECT_FAIL",ae[ae.SUBSCRIBE_SMALL_VIDEO=32803]="SUBSCRIBE_SMALL_VIDEO",ae[ae.UNSUBSCRIBE_SMALL_VIDEO=32804]="UNSUBSCRIBE_SMALL_VIDEO",ae[ae.PUBLISH_AUX=32805]="PUBLISH_AUX",ae[ae.UNPUBLISH_AUX=32806]="UNPUBLISH_AUX",ae[ae.DEVICE_CAPTURE=2003]="DEVICE_CAPTURE",ae[ae.VIDEO_ENCODER=4004]="VIDEO_ENCODER",ae[ae.VIDEO_DECODER=4005]="VIDEO_DECODER",ae))(ac||{}),I_=(a=>(a[a.UNKNOWN=0]="UNKNOWN",a[a.EXCELLENT=1]="EXCELLENT",a[a.GOOD=2]="GOOD",a[a.POOR=3]="POOR",a[a.BAD=4]="BAD",a[a.VERY_BAD=5]="VERY_BAD",a[a.DISCONNECTED=6]="DISCONNECTED",a))(I_||{}),b_=(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))(b_||{}),Cu=(e=>(e.user="user",e.environment="environment",e))(Cu||{}),cc=(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))(cc||{}),km=(e=>(e[e.ELEMENT=0]="ELEMENT",e[e.CONTEXT=1]="CONTEXT",e))(km||{}),Lm=(o=>(o.BANNED="banned",o.KICK="kick",o.USER_TIME_OUT="user_time_out",o.ROOM_DISBAND="room_disband",o))(Lm||{}),Pm=(d=>(d[d.USER_EXIT_REASON_TC_USER_EXIT_NORMAL=0]="USER_EXIT_REASON_TC_USER_EXIT_NORMAL",d[d.USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT=1]="USER_EXIT_REASON_TC_USER_EXIT_TIMEOUT",d[d.USER_EXIT_REASON_TC_USER_EXIT_KICKED=2]="USER_EXIT_REASON_TC_USER_EXIT_KICKED",d[d.USER_EXIT_REASON_TC_USER_EXIT_CHANGED=3]="USER_EXIT_REASON_TC_USER_EXIT_CHANGED",d[d.USER_KICK_OUT_CODE_BUSINESS_USER=4]="USER_KICK_OUT_CODE_BUSINESS_USER",d[d.USER_KICK_OUT_CODE_BUSINESS_ROOM=5]="USER_KICK_OUT_CODE_BUSINESS_ROOM",d[d.USER_KICK_OUT_CODE_SERVER_USER=6]="USER_KICK_OUT_CODE_SERVER_USER",d[d.USER_KICK_OUT_CODE_SERVER_ROOM=7]="USER_KICK_OUT_CODE_SERVER_ROOM",d[d.USER_KICK_SESS_EXSIT=8]="USER_KICK_SESS_EXSIT",d))(Pm||{}),fo=1e8,Um=(e=>(e[e.NORMAL=0]="NORMAL",e[e.FAR_FIELD_REDUCTION=1]="FAR_FIELD_REDUCTION",e))(Um||{}),sc=class{constructor(){p(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)}},go=(s=>(s.String="string",s.Number="number",s.Boolean="boolean",s.Array="array",s.Object="object",s))(go||{}),wu=(s=>(s.H264="h264",s.H265="h265",s.VP8="vp8",s.VP9="vp9",s.AV1="av1",s))(wu||{}),dc=(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))(dc||{}),Hs=(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))(Hs||{}),A_=(r=>(r.WebRTC="webrtc",r.WebCodecs="webcodecs",r.WebAssembly="webassembly",r))(A_||{}),Vm=(f=>(f[f.SUCCESS=0]="SUCCESS",f[f.FAILED=1]="FAILED",f[f.WEBCODEC_INIT=2]="WEBCODEC_INIT",f[f.WEBCODEC_CONFIG_NOT_SUPPORT=3]="WEBCODEC_CONFIG_NOT_SUPPORT",f[f.WEBCODEC_DECODER_ERROR=4]="WEBCODEC_DECODER_ERROR",f[f.WEBCODEC_TRACK_MUTE=5]="WEBCODEC_TRACK_MUTE",f[f.WASM_INIT=6]="WASM_INIT",f[f.WASM_WEBGL_UNAVALIABLE=7]="WASM_WEBGL_UNAVALIABLE",f[f.WASM_DECODER_ERROR=8]="WASM_DECODER_ERROR",f[f.WASM_TRACK_MUTE=9]="WASM_TRACK_MUTE",f[f.TEST=10]="TEST",f[f.RENDER_2D_ERROR=11]="RENDER_2D_ERROR",f))(Vm||{}),uc=(o=>(o.NONE="",o.DETAIL="detail",o.MOTION="motion",o.TEXT="text",o))(uc||{}),Xo=(s=>(s.INTERVAL="interval",s.TIMEOUT="timeout",s.RAF="raf",s.RIC="ric",s.INTERVAL_IN_WORKER="intervalInWorker",s))(Xo||{}),Nu=(e=>(e.CANVAS="canvas",e.API="api",e))(Nu||{}),Bm=(o=>(o[o.NONE=0]="NONE",o[o.MICROPHONE=1]="MICROPHONE",o[o.CAMERA=2]="CAMERA",o[o.BOTH=3]="BOTH",o))(Bm||{}),Du=(e=>(e.CAMERA="camera",e.MICROPHONE="microphone",e))(Du||{}),lc=(r=>(r[r.none=0]="none",r[r.horizontal=1]="horizontal",r[r.vertical=2]="vertical",r))(lc||{});var _t={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"},Wr={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: ${Xt(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: ${Xt(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 v_=(i,t)=>t?`${Br}/${i}/${t}`:`${Br}/${i}/index.html`;var wI=()=>{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($h);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 Et(i){let{key:t,data:e,link:r,addDocLink:o=!0}=i,s="",n="",a="";Rt(Wr[t])?s=Wr[t](e):nt(Wr[t])&&(s=Wr[t]);let{TRTC_ERROR_INFO:c,TRTC_ERROR_LINK:d}=wI();r?a=`${r.className}.html#${r.fnName}`:d&&d[t]&&(Rt(d[t])?a=d[t](e):nt(d[t])&&(a=d[t]));let m=s;return _i()&&(c&&c[t]&&(Rt(c[t])?n=c[t](e):nt(c[t])&&(n=c[t])),n&&(o?m=`${n}
|
|
6
|
+
\u8BF7\u67E5\u770B\u6587\u6863: ${v_("zh-cn",a)}
|
|
6
7
|
|
|
7
|
-
`:
|
|
8
|
+
`:m=`${n}
|
|
8
9
|
|
|
9
|
-
`,
|
|
10
|
-
Refer to: ${
|
|
11
|
-
`),p}var mh=bi(jg(),1);var PS=1,LS=0,du=class{constructor(t=!0){m(this,"countMap",new Map);m(this,"distributionMap",new Map);m(this,"version");m(this,"log",F.createLogger({id:"kv"}));t&&(U.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===M.AUDIO?501700:511700,cost:r})}),U.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===M.AUDIO?501700:511700,error:r})}),U.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(t,e){let r={msg_sdk_basic_info:{uint32_sdk_version:Nd(this.version||ht),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([o,s])=>({uint32_key:o,uint32_count:s})),stats_distribution:[...this.distributionMap.entries()].map(([o,s])=>({uint32_key:o,distribution_items:[...s.entries()].map(([n,a])=>({uint32_item_key:n,uint32_item_value:a}))})),str_user_sig:t,bytes_report_token:e};return this.countMap.clear(),this.distributionMap.clear(),r}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,max:s=5e3}){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;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((d=this.distributionMap)==null?void 0:d.get(t))||new Map,a=0;if(Fe(r))a=Math.floor(e/r);else for(let l=r.length-1;l>0;l--)if(e>r[l]){a=l;break}n.set(a,(n.get(a)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:PS,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=q.UNKNOWN;e&&(Fe(e)?r=e:(!O(e.extraCode)||!O(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:LS,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},uu=(W=>(W[W.enterRoom=500700]="enterRoom",W[W.exitRoom=500701]="exitRoom",W[W.switchRole=500702]="switchRole",W[W.destroy=500703]="destroy",W[W.startLocalAudio=500704]="startLocalAudio",W[W.updateLocalAudio=500705]="updateLocalAudio",W[W.stopLocalAudio=500706]="stopLocalAudio",W[W.startLocalVideo=500707]="startLocalVideo",W[W.updateLocalVideo=500708]="updateLocalVideo",W[W.stopLocalVideo=500709]="stopLocalVideo",W[W.startScreenShare=500710]="startScreenShare",W[W.updateScreenShare=500711]="updateScreenShare",W[W.stopScreenShare=500712]="stopScreenShare",W[W.startRemoteVideo=500713]="startRemoteVideo",W[W.updateRemoteVideo=500714]="updateRemoteVideo",W[W.stopRemoteVideo=500715]="stopRemoteVideo",W[W.muteRemoteAudio=500716]="muteRemoteAudio",W[W.setRemoteAudioVolume=500717]="setRemoteAudioVolume",W[W.use=500718]="use",W[W.switchRoom=500719]="switchRoom",W[W.sendSEIMessage=5e5]="sendSEIMessage",W[W.sendCustomMessage=500001]="sendCustomMessage",W))(uu||{}),dh=(g=>(g[g.AudioMixer=550700]="AudioMixer",g[g.AIDenoiser=551700]="AIDenoiser",g[g.VirtualBackground=570700]="VirtualBackground",g[g.Beauty=571700]="Beauty",g[g.Watermark=572700]="Watermark",g[g.BasicBeauty=574700]="BasicBeauty",g[g.CDNStreaming=590700]="CDNStreaming",g[g.DeviceDetector=591700]="DeviceDetector",g[g.Debug=592700]="Debug",g[g.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",g[g.VideoMixer=594700]="VideoMixer",g[g.AudioProcessor=595700]="AudioProcessor",g))(dh||{}),uh=(g=>(g[g.AudioMixer=550701]="AudioMixer",g[g.AIDenoiser=551701]="AIDenoiser",g[g.VirtualBackground=570701]="VirtualBackground",g[g.Beauty=571701]="Beauty",g[g.Watermark=572701]="Watermark",g[g.BasicBeauty=574701]="BasicBeauty",g[g.CDNStreaming=590701]="CDNStreaming",g[g.DeviceDetector=591701]="DeviceDetector",g[g.Debug=592701]="Debug",g[g.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",g[g.VideoMixer=594701]="VideoMixer",g[g.AudioProcessor=595701]="AudioProcessor",g))(uh||{}),lh=(g=>(g[g.AudioMixer=550702]="AudioMixer",g[g.AIDenoiser=551702]="AIDenoiser",g[g.VirtualBackground=570702]="VirtualBackground",g[g.Beauty=571702]="Beauty",g[g.Watermark=572702]="Watermark",g[g.BasicBeauty=574702]="BasicBeauty",g[g.CDNStreaming=590702]="CDNStreaming",g[g.DeviceDetector=591702]="DeviceDetector",g[g.Debug=592702]="Debug",g[g.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",g[g.VideoMixer=594702]="VideoMixer",g[g.AudioProcessor=595702]="AudioProcessor",g))(lh||{});var Nn=(H=>(H[H.DECODER_TYPE=514700]="DECODER_TYPE",H[H.DECODER_HW_SW=514701]="DECODER_HW_SW",H[H.DECODE_RESULT=514702]="DECODE_RESULT",H[H.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",H[H.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",H[H.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",H[H.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",H[H.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",H[H.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",H[H.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",H[H.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",H[H.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",H[H.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",H[H.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",H[H.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",H[H.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",H[H.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",H[H.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",H[H.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",H))(Nn||{});var kS=new du(!0),Ts=new du(!1);var J=kS;var Ce={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},US=new Map([[lt,["Firefox",Pd]],[En,["Edg",Ud]],[yn,["Chrome",Zd]],[_t,["Safari",xi]],[Wr,["TBS",Bd]],[Oi,["XWEB",$d]],[Mi&&To,["WeChat",Hd]],[Ca,["QQ(Win)",Wd]],[Tn,["QQ(Mobile)",fn]],[_n,["QQ(Mobile X5)",fn]],[Na,["QQ(Mac)",Gd]],[Da,["QQ(iPad)",jd]],[Oa,["MI",qd]],[Ma,["HW",zd]],[Pa,["Samsung",Jd]],[In,["OPPO",Xd]],[La,["VIVO",Qd]],[ls,["EDGE",kd]],[Ra,["SogouMobile",Vd]],[va,["Sogou",Fd]]]);function hu(){let i=US.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var hh=function(){return!(Mm||ls||En&&wm<80||lt&&Ld<56)},ph=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},pu=function(){if(!navigator.mediaDevices)return Hi()||F.error(nr.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},qg=!1;function Hi(){return location.protocol==="http:"&&!jr?(qg||F.error(We({key:He.NOT_SUPPORTED_HTTP})),qg=!0,!0):!1}var fh=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},VS=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},gh=function(){return A(this,null,function*(){var o,s,n;if(Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported)return{isH264EncodeSupported:Ce.detail.isH264EncodeSupported,isVp8EncodeSupported:Ce.detail.isVp8EncodeSupported,isH265EncodeSupported:Ce.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,d=document.createElement(M.CANVAS);d.getContext("2d");let l=d.captureStream(0);return a.addTrack(l.getVideoTracks()[0],l),i=yield a.createOffer(),t=((o=i.sdp)==null?void 0:o.toLowerCase().indexOf("h264"))!==-1,e=((s=i.sdp)==null?void 0:s.toLowerCase().indexOf("vp8"))!==-1,r=((n=i.sdp)==null?void 0:n.toLowerCase().indexOf("h265"))!==-1,a.close(),{isH264EncodeSupported:t,isVp8EncodeSupported:e,isH265EncodeSupported:r}}catch(a){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},Yg=function(){return A(this,null,function*(){var r;if(Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported)return{isH264DecodeSupported:Ce.detail.isH264DecodeSupported,isVp8DecodeSupported:Ce.detail.isVp8DecodeSupported,isH265DecodeSupported:Ce.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;Eu()?(o.addTransceiver(M.VIDEO,{direction:"recvonly"}),i=yield o.createOffer()):i=yield o.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0);let s=((r=i.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e,isH265DecodeSupported:s}}catch(o){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};function FS(){return A(this,null,function*(){let[i,t]=yield Promise.all([gh(),Yg()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var fu=Dd(i=>A(void 0,null,function*(){let t=Date.now(),e=Th(),r=pu(),o=ph();if(Ce.detail.isWebRTCSupported=e,Ce.detail.isMediaDevicesSupported=r,Ce.detail.isWebCodecsSupported=o,Ce.detail.isScreenShareSupported=za(),Ce.detail.isSmallStreamSupported=gu(),i===37)return Object.assign(Ce.detail,yield WS()),Ce.detail.isBrowserSupported=o,Ce.result=r&&o,Ce.result||F.error(`${navigator.userAgent} ${ya(Ce.detail,!1)}`),zg(i),J.addNumber({key:523800,value:Date.now()-t}),Ce;if(Ce.result&&Ce.detail.isH264EncodeSupported&&Ce.detail.isVp8EncodeSupported&&Ce.detail.isH265EncodeSupported&&Ce.detail.isH264DecodeSupported&&Ce.detail.isVp8DecodeSupported&&Ce.detail.isH265DecodeSupported)return Ce;let s=hh(),{encode:n,decode:a}=yield FS(),{h264:d,vp8:l}=n,{h264:p}=a,{h265:f}=n,{vp8:g,h265:y}=a;if(!d||!l){let R=yield gh();F.warn(`detect encode again h264:${d} vp8:${l} result: ${JSON.stringify(R)}`),d=R.isH264EncodeSupported,l=R.isVp8EncodeSupported}if(d&&p&&nt&&fr&&!Oi&&!Wr&&!(In&&sr===115)){let{encode:R,decode:N}=yield HS();d=R,p=N}return Ce.result=s&&e&&r&&(d||l)&&(p||g),Ce.detail.isBrowserSupported=s,Ce.detail.isWebRTCSupported=e,Ce.detail.isH264EncodeSupported=d,Ce.detail.isVp8EncodeSupported=l,Ce.detail.isH265EncodeSupported=f,Ce.detail.isH264DecodeSupported=p,Ce.detail.isVp8DecodeSupported=g,Ce.detail.isH265DecodeSupported=y,Ce.result||F.error(`${navigator.userAgent} ${ya(Ce.detail,!1)}`),zg(),J.addNumber({key:523800,value:Date.now()-t}),Ce})),BS=function(){return Ce.result},za=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},$S=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,lu=null;function HS(){return A(this,null,function*(){return lu||(lu=new Promise(i=>A(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=640,r.height=480;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*640),Math.floor(Math.random()*480))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),l.close(),p.close(),d.getTracks().forEach(N=>N.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let d=r.captureStream(),l=new RTCPeerConnection({}),p=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});l.addEventListener("icecandidate",N=>p.addIceCandidate(N.candidate)),p.addEventListener("icecandidate",N=>l.addIceCandidate(N.candidate)),l.addTrack(d.getVideoTracks()[0],d);let f=yield l.createOffer();yield l.setLocalDescription(f),yield p.setRemoteDescription(f);let g=yield p.createAnswer(),y=mh.default.parse(g.sdp),R=y.media[0].rtp.findIndex(N=>N.codec==="H264");y.media[0].rtp=[y.media[0].rtp[R]],y.media[0].fmtp=y.media[0].fmtp.filter(N=>N.payload===y.media[0].rtp[0].payload),y.media[0].rtcpFb&&(y.media[0].rtcpFb=y.media[0].rtcpFb.filter(N=>N.payload===y.media[0].rtp[0].payload)),g.sdp=mh.default.write(y),yield p.setLocalDescription(g),yield l.setRemoteDescription(g),n=setInterval(()=>A(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[N,C]=yield Promise.all([l.getSenders()[0].getStats(),p.getReceivers()[0].getStats()]);t.encode||N.forEach(P=>{P.type==="outbound-rtp"&&P.mediaType===M.VIDEO&&P.bytesSent>0&&(t.encode=!0)}),t.decode||C.forEach(P=>{P.type==="inbound-rtp"&&P.mediaType===M.VIDEO&&P.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),F.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&F.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${Hr}`),i)),lu)})}var mu=null;function WS(){return A(this,null,function*(){return mu||(mu=new Promise(i=>A(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!ph()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,a=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let d=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(d.map(p=>A(this,null,function*(){let f={type:p.type,encodeSupported:!1,decodeSupported:!1},g;try{g=yield new Promise((y,R)=>A(this,null,function*(){try{let N=new VideoEncoder({output:P=>{y(P),f.encodeSupported=!0},error:R});N.configure(p.encodeConfig),a();let C=new VideoFrame(e,{timestamp:0});N.encode(C,{keyFrame:!0}),C.close(),yield N.flush(),N.close()}catch(N){R(N)}}))}catch(y){return F.warn(`${p.type} encoder error:`,y),f}try{yield new Promise((y,R)=>A(this,null,function*(){try{let N=new VideoDecoder({output:C=>{f.decodeSupported=!0,y(0),C.close()},error:R});N.configure(p.decodeConfig),N.decode(g),yield N.flush(),N.close()}catch(N){R(N)}}))}catch(y){F.warn(`${p.type} decoder error:`,y)}return f})))).forEach(p=>{p.type==="h264"?(t.isH264EncodeSupported=p.encodeSupported,t.isH264DecodeSupported=p.decodeSupported):p.type==="vp8"&&(t.isVp8EncodeSupported=p.encodeSupported,t.isVp8DecodeSupported=p.decodeSupported)}),s(),i(t)}catch(n){s(),F.warn("detectWebCodecsSupported failed:",n),i(t)}})),mu)})}var GS=(i,t,e)=>{location.protocol==="http:"&&!jr&&(i[t]=()=>{throw new se({code:q.INVALID_OPERATION,message:nr.NOT_SUPPORTED_HTTP})})},jS=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Ye(i.selected)&&!i.selected):!1};function Zg(){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 Kg(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function eE(){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 tE(){return"captureStream"in HTMLCanvasElement.prototype}function rE(){return Mi||ot||sr&&sr<63?!1:!!(hh()&&tE())}function iE(){return!(sr<74||ls||Vt<11||Ld<46)}function gu(){return rE()||iE()}var qS=function(){if(O(window.RTCRtpTransceiver)||!Eu()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:lm}),i.addTransceiver(M.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function zS(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function oE(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function JS(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function Eu(){return Vt===11&&!Bm?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var XS=!(!Eu()||fr&&sr<86);function QS(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var Ja="RTCRtpSender"in window;function YS(){return Ja&&"replaceTrack"in window.RTCRtpSender.prototype}function ZS(){return Ja&&"setParameters"in window.RTCRtpSender.prototype&&oE()}var KS="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,Dn=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Eh=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,_h=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,Is=Ja&&"createEncodedStreams"in window.RTCRtpSender.prototype&&Yd()>=86,sE="RTCRtpScriptTransform"in window,Xa=Ja&&(Is||sE),Th=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function _u(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return O(window.AudioDecoder)||(i.AudioDecoder=!0),O(window.AudioEncoder)||(i.AudioEncoder=!0),O(window.VideoDecoder)||(i.VideoDecoder=!0),O(window.VideoEncoder)||(i.VideoEncoder=!0),O(window.ImageDecoder)||(i.ImageDecoder=!0),i}function nE(){return"mediaSession"in navigator&&!O(navigator.mediaSession.setActionHandler)}function aE(){return!O(window.WebTransport)}function Ih(){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 ey(){let i={browser:`${ni.name}/${ni.version}`,os:An(),displayResolution:Zg(),isScreenShareSupported:za(),isWebRTCSupported:Th(),isGetUserMediaSupported:Kg(),isWebAudioSupported:eE(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:_u(),isMediaSessionSupported:nE(),isWebTransportSupported:aE()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var cE="checkResult";function zg(i=30){Rn.setItem(cE+i,{ua:navigator.userAgent,checkResult:Ce})}function Sh(i){Hi();let t=Rn.getItem(cE+i);t&&t.ua===navigator.userAgent&&t.checkResult&&ty(t.checkResult.detail,Ce.detail)&&(Ce=t.checkResult),fu(i)}function ty(i,t){return hr(i)?Object.keys(t).every(e=>e in i):!1}function zr(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var ry="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function Jg(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var Xg=!1;function yh(){return A(this,null,function*(){var i;try{if(Xg||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=fs(),e=Hm();if(t===0||e===0)return;Xg=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([dE(r),uE(r)]);o&&Object.keys(o).forEach(d=>{let l=Jg(d.toLowerCase());J.addEnum({key:513707,value:+`${l}${+o[d].supported}${+o[d].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(d=>{let l=Jg(d.toLowerCase());J.addEnum({key:514713,value:+`${l}${+s[d].supported}${+s[d].powerEfficient}${t}${e}`,useUV:!1})});let{sender:n,receiver:a}=lE();J.addEnum({key:513708,value:+`${t}${e}${+n.high}`,useUV:!1}),J.addEnum({key:513709,value:+`${t}${e}${+n.main}`,useUV:!1}),J.addEnum({key:514714,value:+`${t}${e}${+a.high}`,useUV:!1}),J.addEnum({key:514715,value:+`${t}${e}${+a.main}`,useUV:!1})}catch(t){F.info("detectVideoCodecCapabilities failed",t)}})}function dE(i,t=1920,e=1080,r=30,o=3e3){return A(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function uE(i,t=1920,e=1080,r=30,o=3e3){return A(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function lE(){let i={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){let t=RTCRtpSender.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.sender.base=!0;break;case"4d":i.sender.main=!0;break;case"64":i.sender.high=!0;break}}})}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){let t=RTCRtpReceiver.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.receiver.base=!0;break;case"4d":i.receiver.main=!0;break;case"64":i.receiver.high=!0;break}}})}}catch(t){F.warn("get H264 profile levelId failed",t)}return i}var hE=bi(ki(),1);var mE=Symbol("instance"),RN=Symbol("abortCtrl"),Tu=Symbol("cacheResult"),Qa=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Ka.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},Ya=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function iy(i){return typeof i=="object"&&i&&"then"in i}var Za=new Map;function et(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let d=Za.get(r)||[];Za.has(r)||Za.set(r,d),d.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...d){let l=this;if(e.context&&(l=ue.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===t)return e.sync?l[Tu]:Promise.resolve(l[Tu]);l.state instanceof Qa&&l.state.action==e.abortAction&&l.state.abort(l);let p=null;Array.isArray(i)?i.length==0?l.state instanceof Qa&&l.state.abort(l):(typeof l.state!="string"||!i.includes(l.state))&&(p=new Ya(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i.join("|")}`)):i!==l.state&&(p=new Ya(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i}`));let f=C=>{if(e.fail&&e.fail.call(this,C),e.sync){if(e.ignoreError)return C;throw C}else return e.ignoreError?Promise.resolve(C):Promise.reject(C)};if(p)return f(p);let g=l.state,y=new Qa(g,t,n);Ka.call(l,y);let R=C=>{var P;return l[Tu]=C,y.aborted||(Ka.call(l,t),(P=e.success)===null||P===void 0||P.call(this,l[Tu])),C},N=C=>(Ka.call(l,g,C),f(C));try{let C=a.apply(this,d);return iy(C)?C.then(R).catch(N):e.sync?R(C):Promise.resolve(R(C))}catch(C){return N(new Ya(l._state,`${l.name} ${n} from ${i} to ${t} failed: ${C}`,C instanceof Error?C:new Error(String(C))))}}}}var oy=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 Ka(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(ue.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var ue=class i extends hE.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[mE];o?this.name=o.name+"-"+o.count++:r[mE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Za.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Za.has(a)&&(a.stateDiagram.forEach(l=>r.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:p,action:f})=>{typeof l=="string"?o.push({from:l,to:p,action:f}):l.length?l.forEach(g=>{o.push({from:g,to:p,action:f})}):s.push({to:p,action:f})}),o.forEach(({from:l,to:p,action:f})=>{n.add(l),n.add(p),n.add(f+"ing"),r.add(`${l} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${p} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${l} : ${f} \u{1F534}`)}),s.forEach(({to:l,action:p})=>{r.add(`${p}ing --> ${l} : ${p} \u{1F7E2}`),n.forEach(f=>{f!==l&&r.add(`${f} --> ${p}ing : ${p}`)})});let d=[...r];return Object.defineProperties(t,{stateDiagram:{value:d},allStates:{value:n}}),d}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={}){oy(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Ka.call(this,t)}};ue.STATECHANGED="stateChanged";ue.UPDATEAFSM="updateAFSM";ue.INIT="[*]";ue.ON="on";ue.OFF="off";ue.instances=new Map;ue.instances2=new WeakMap;var bh=typeof window!="undefined",pE=bh&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},sy=bh&&window.cancelIdleCallback||function(i){clearTimeout(i)},fE=bh&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),Ct=class Ct{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=Y({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=Y({delay:1e4,count:0},r):t==="raf"?r=Y({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=Y({delay:2e3,count:0,backgroundTask:!0},r);let o=_e(Y({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,Ct.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){Ct.sharedWorker||(Ct.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
|
|
10
|
+
`,m+=s)),o&&(m+=`
|
|
11
|
+
Refer to: ${v_("en",a)}
|
|
12
|
+
`),m}var zm=Li(x_(),1);var VI=1,BI=0,Mu=class{constructor(t=!0){p(this,"countMap",new Map);p(this,"distributionMap",new Map);p(this,"version");p(this,"log",se.createLogger({id:"kv"}));t&&(ee.on("102",({track:e,cost:r})=>{this.addSuccessEvent({key:e.kind===j.AUDIO?501700:511700,cost:r})}),ee.on("103",({track:e,error:r})=>{this.addFailedEvent({key:e.kind===j.AUDIO?501700:511700,error:r})}),ee.on("266",({enable:e})=>{this.log.info(`${e?"enable":"disable"} sso`),e?this.addSuccessEvent({key:525701}):this.addFailedEvent({key:525701})}))}getReportData(t,e){let r={msg_sdk_basic_info:{uint32_sdk_version:Yd(this.version||qt),uint32_terminal_type:15,bytes_device_name:"",bytes_os_version:"",uint32_framework:30,uint32_network_type:0},stats_count:[...this.countMap.entries()].map(([o,s])=>({uint32_key:o,uint32_count:s})),stats_distribution:[...this.distributionMap.entries()].map(([o,s])=>({uint32_key:o,distribution_items:[...s.entries()].map(([n,a])=>({uint32_item_key:n,uint32_item_value:a}))})),str_user_sig:t,bytes_report_token:e};return this.countMap.clear(),this.distributionMap.clear(),r}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,max:s=5e3}){var c;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;e>s&&(e=s),this.countMap.set(t,(this.countMap.get(t)||0)+1);let n=((c=this.distributionMap)==null?void 0:c.get(t))||new Map,a=0;if(ft(r))a=Math.floor(e/r);else for(let d=r.length-1;d>0;d--)if(e>r[d]){a=d;break}n.set(a,(n.get(a)||0)+1),this.distributionMap.set(t,n)}addSuccessEvent({key:t,cost:e,timeKey:r,split:o}){if(t&&(this.addEnum({key:t,value:VI,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=Te.UNKNOWN;e&&(ft(e)?r=e:(!z(e.extraCode)||!z(e.code))&&(r=e.extraCode||e.code)),this.addEnum({key:t,value:BI,useUV:!1}),this.addEnum({key:t,value:Math.abs(r),useUV:!1})}},xu=(P=>(P[P.enterRoom=500700]="enterRoom",P[P.exitRoom=500701]="exitRoom",P[P.switchRole=500702]="switchRole",P[P.destroy=500703]="destroy",P[P.startLocalAudio=500704]="startLocalAudio",P[P.updateLocalAudio=500705]="updateLocalAudio",P[P.stopLocalAudio=500706]="stopLocalAudio",P[P.startLocalVideo=500707]="startLocalVideo",P[P.updateLocalVideo=500708]="updateLocalVideo",P[P.stopLocalVideo=500709]="stopLocalVideo",P[P.startScreenShare=500710]="startScreenShare",P[P.updateScreenShare=500711]="updateScreenShare",P[P.stopScreenShare=500712]="stopScreenShare",P[P.startRemoteVideo=500713]="startRemoteVideo",P[P.updateRemoteVideo=500714]="updateRemoteVideo",P[P.stopRemoteVideo=500715]="stopRemoteVideo",P[P.muteRemoteAudio=500716]="muteRemoteAudio",P[P.setRemoteAudioVolume=500717]="setRemoteAudioVolume",P[P.use=500718]="use",P[P.switchRoom=500719]="switchRoom",P[P.sendSEIMessage=5e5]="sendSEIMessage",P[P.sendCustomMessage=500001]="sendCustomMessage",P))(xu||{}),Hm=(f=>(f[f.AudioMixer=550700]="AudioMixer",f[f.AIDenoiser=551700]="AIDenoiser",f[f.VirtualBackground=570700]="VirtualBackground",f[f.Beauty=571700]="Beauty",f[f.Watermark=572700]="Watermark",f[f.BasicBeauty=574700]="BasicBeauty",f[f.CDNStreaming=590700]="CDNStreaming",f[f.DeviceDetector=591700]="DeviceDetector",f[f.Debug=592700]="Debug",f[f.SmallStreamAutoSwitcher=593700]="SmallStreamAutoSwitcher",f[f.VideoMixer=594700]="VideoMixer",f[f.AudioProcessor=595700]="AudioProcessor",f))(Hm||{}),Wm=(f=>(f[f.AudioMixer=550701]="AudioMixer",f[f.AIDenoiser=551701]="AIDenoiser",f[f.VirtualBackground=570701]="VirtualBackground",f[f.Beauty=571701]="Beauty",f[f.Watermark=572701]="Watermark",f[f.BasicBeauty=574701]="BasicBeauty",f[f.CDNStreaming=590701]="CDNStreaming",f[f.DeviceDetector=591701]="DeviceDetector",f[f.Debug=592701]="Debug",f[f.SmallStreamAutoSwitcher=593701]="SmallStreamAutoSwitcher",f[f.VideoMixer=594701]="VideoMixer",f[f.AudioProcessor=595701]="AudioProcessor",f))(Wm||{}),Gm=(f=>(f[f.AudioMixer=550702]="AudioMixer",f[f.AIDenoiser=551702]="AIDenoiser",f[f.VirtualBackground=570702]="VirtualBackground",f[f.Beauty=571702]="Beauty",f[f.Watermark=572702]="Watermark",f[f.BasicBeauty=574702]="BasicBeauty",f[f.CDNStreaming=590702]="CDNStreaming",f[f.DeviceDetector=591702]="DeviceDetector",f[f.Debug=592702]="Debug",f[f.SmallStreamAutoSwitcher=593702]="SmallStreamAutoSwitcher",f[f.VideoMixer=594702]="VideoMixer",f[f.AudioProcessor=595702]="AudioProcessor",f))(Gm||{});var Kn=(w=>(w[w.DECODER_TYPE=514700]="DECODER_TYPE",w[w.DECODER_HW_SW=514701]="DECODER_HW_SW",w[w.DECODE_RESULT=514702]="DECODE_RESULT",w[w.DECODE_FAILED_OS=514703]="DECODE_FAILED_OS",w[w.DOWNGRADE_RESULT=514704]="DOWNGRADE_RESULT",w[w.DOWNGRADE_WEBCODECS_VIDEO=514705]="DOWNGRADE_WEBCODECS_VIDEO",w[w.DOWNGRADE_WEBCODECS_2D=514706]="DOWNGRADE_WEBCODECS_2D",w[w.DOWNGRADE_WASM_WEGBL=514707]="DOWNGRADE_WASM_WEGBL",w[w.DOWNGRADE_WASM_VIDEO=514708]="DOWNGRADE_WASM_VIDEO",w[w.DOWNGRADE_WASM_2D=514709]="DOWNGRADE_WASM_2D",w[w.DECODE_H264_RESULT=514710]="DECODE_H264_RESULT",w[w.DECODE_H265_RESULT=514711]="DECODE_H265_RESULT",w[w.DECODE_VP8_RESULT=514712]="DECODE_VP8_RESULT",w[w.DECODE_CAPABILITIES=514713]="DECODE_CAPABILITIES",w[w.H264_PROFILE_LEVEL_ID_HIGH=514714]="H264_PROFILE_LEVEL_ID_HIGH",w[w.H264_PROFILE_LEVEL_ID_MAIN=514715]="H264_PROFILE_LEVEL_ID_MAIN",w[w.RENDER_FREEZE_RATE=514850]="RENDER_FREEZE_RATE",w[w.DATA_FREEZE_RATE=514851]="DATA_FREEZE_RATE",w[w.VIDEO_CONSUME_RENDER_RATE=514852]="VIDEO_CONSUME_RENDER_RATE",w))(Kn||{});var $I=new Mu(!0),Gs=new Mu(!1);var Se=$I;var rt={result:!1,detail:{isBrowserSupported:!1,isWebRTCSupported:!1,isWebCodecsSupported:!1,isMediaDevicesSupported:!1,isScreenShareSupported:!1,isSmallStreamSupported:!1,isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1,isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}},FI=new Map([[zt,["Firefox",iu]],[Wn,["Edg",nu]],[Xn,["Chrome",Su]],[Zt,["Safari",uo]],[Si,["TBS",du]],[ao,["XWEB",uu]],[co&&Go,["WeChat",lu]],[qa,["QQ(Win)",hu]],[zn,["QQ(Mobile)",Fn]],[Gn,["QQ(Mobile X5)",Fn]],[Xa,["QQ(Mac)",mu]],[Ja,["QQ(iPad)",pu]],[Ya,["MI",fu]],[Za,["HW",gu]],[ec,["Samsung",_u]],[jn,["OPPO",Eu]],[tc,["VIVO",Tu]],[Ls,["EDGE",su]],[za,["SogouMobile",au]],[ja,["Sogou",cu]]]);function Pu(){let i=FI.get(!0),t=i?i[0]:"unknown",e=i?i[1]:"unknown";return{browserName:t,browserVersion:e}}var jm=function(){return!(lm||Ls||Wn&&dm<80||zt&&ou<56)},qm=function(){return["VideoDecoder","VideoEncoder","AudioEncoder","AudioDecoder"].every(t=>t in window)},Uu=function(){if(!navigator.mediaDevices)return Eo()||se.error(Wr.NOT_SUPPORTED_MEDIA),!1;let i=["getUserMedia","enumerateDevices"];return i.filter(t=>t in navigator.mediaDevices).length===i.length},k_=!1;function Eo(){return location.protocol==="http:"&&!bi?(k_||se.error(Et({key:_t.NOT_SUPPORTED_HTTP})),k_=!0,!0):!1}var Xm=function(){return(window==null?void 0:window.OffscreenCanvas)&&(window==null?void 0:window.MediaStreamTrackProcessor)&&(window==null?void 0:window.MediaStreamTrackGenerator)},HI=function(){return!!(window!=null&&window.MediaStreamTrackGenerator)},Jm=function(){return D(this,null,function*(){var o,s,n;if(rt.detail.isH264EncodeSupported&&rt.detail.isVp8EncodeSupported)return{isH264EncodeSupported:rt.detail.isH264EncodeSupported,isVp8EncodeSupported:rt.detail.isVp8EncodeSupported,isH265EncodeSupported:rt.detail.isH265EncodeSupported};let i,t=!1,e=!1,r=!1;try{let a=new RTCPeerConnection,c=document.createElement(j.CANVAS);c.getContext("2d");let d=c.captureStream(0);return a.addTrack(d.getVideoTracks()[0],d),i=yield a.createOffer(),t=((o=i.sdp)==null?void 0:o.toLowerCase().indexOf("h264"))!==-1,e=((s=i.sdp)==null?void 0:s.toLowerCase().indexOf("vp8"))!==-1,r=((n=i.sdp)==null?void 0:n.toLowerCase().indexOf("h265"))!==-1,a.close(),{isH264EncodeSupported:t,isVp8EncodeSupported:e,isH265EncodeSupported:r}}catch(a){return{isH264EncodeSupported:!1,isVp8EncodeSupported:!1,isH265EncodeSupported:!1}}})},B_=function(){return D(this,null,function*(){var r;if(rt.detail.isH264DecodeSupported&&rt.detail.isVp8DecodeSupported)return{isH264DecodeSupported:rt.detail.isH264DecodeSupported,isVp8DecodeSupported:rt.detail.isVp8DecodeSupported,isH265DecodeSupported:rt.detail.isH265DecodeSupported};let i,t=!1,e=!1;try{let o=new RTCPeerConnection;$u()?(o.addTransceiver(j.VIDEO,{direction:"recvonly"}),i=yield o.createOffer()):i=yield o.createOffer({offerToReceiveVideo:!0}),i.sdp.toLowerCase().indexOf("h264")!==-1&&(t=!0),i.sdp.toLowerCase().indexOf("vp8")!==-1&&(e=!0);let s=((r=i.sdp)==null?void 0:r.toLowerCase().indexOf("h265"))!==-1;return o.close(),{isH264DecodeSupported:t,isVp8DecodeSupported:e,isH265DecodeSupported:s}}catch(o){return{isH264DecodeSupported:!1,isVp8DecodeSupported:!1,isH265DecodeSupported:!1}}})};function WI(){return D(this,null,function*(){let[i,t]=yield Promise.all([Jm(),B_()]);return{encode:{h264:i.isH264EncodeSupported,vp8:i.isVp8EncodeSupported,h265:i.isH265EncodeSupported},decode:{h264:t.isH264DecodeSupported,vp8:t.isVp8DecodeSupported,h265:t.isH265DecodeSupported}}})}var Vu=Zd(i=>D(void 0,null,function*(){let t=Date.now(),e=Zm(),r=Uu(),o=qm();if(rt.detail.isWebRTCSupported=e,rt.detail.isMediaDevicesSupported=r,rt.detail.isWebCodecsSupported=o,rt.detail.isScreenShareSupported=mc(),rt.detail.isSmallStreamSupported=Bu(),i===37)return Object.assign(rt.detail,yield qI()),rt.detail.isBrowserSupported=o,rt.result=r&&o,rt.result||se.error(`${navigator.userAgent} ${Ha(rt.detail,!1)}`),L_(i),Se.addNumber({key:523800,value:Date.now()-t}),rt;if(rt.result&&rt.detail.isH264EncodeSupported&&rt.detail.isVp8EncodeSupported&&rt.detail.isH265EncodeSupported&&rt.detail.isH264DecodeSupported&&rt.detail.isVp8DecodeSupported&&rt.detail.isH265DecodeSupported)return rt;let s=jm(),{encode:n,decode:a}=yield WI(),{h264:c,vp8:d}=n,{h264:m}=a,{h265:l}=n,{vp8:f,h265:g}=a;if(!c||!d){let T=yield Jm();se.warn(`detect encode again h264:${c} vp8:${d} result: ${JSON.stringify(T)}`),c=T.isH264EncodeSupported,d=T.isVp8EncodeSupported}if(c&&m&&Bt&&Qr&&!ao&&!Si&&!(jn&&Fr===115)){let{encode:T,decode:E}=yield jI();c=T,m=E}return rt.result=s&&e&&r&&(c||d)&&(m||f),rt.detail.isBrowserSupported=s,rt.detail.isWebRTCSupported=e,rt.detail.isH264EncodeSupported=c,rt.detail.isVp8EncodeSupported=d,rt.detail.isH265EncodeSupported=l,rt.detail.isH264DecodeSupported=m,rt.detail.isVp8DecodeSupported=f,rt.detail.isH265DecodeSupported=g,rt.result||se.error(`${navigator.userAgent} ${Ha(rt.detail,!1)}`),L_(),Se.addNumber({key:523800,value:Date.now()-t}),rt})),GI=function(){return rt.result},mc=function(){return!!(navigator.mediaDevices&&navigator.mediaDevices.getDisplayMedia)},zI=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype,ku=null;function jI(){return D(this,null,function*(){return ku||(ku=new Promise(i=>D(this,null,function*(){let t={encode:!1,decode:!1},e=()=>{};try{let r=document.createElement("canvas"),o=r.getContext("2d");r.width=640,r.height=480;let s=setInterval(()=>{o.fillText("test",Math.floor(Math.random()*640),Math.floor(Math.random()*480))},66),n=-1,a=-1;e=()=>{clearInterval(n),clearInterval(s),clearTimeout(a),d.close(),m.close(),c.getTracks().forEach(E=>E.stop())},a=setTimeout(()=>{e(),i(t)},2*1e3);let c=r.captureStream(),d=new RTCPeerConnection({}),m=new RTCPeerConnection({offerToReceiveAudio:!0,offerToReceiveVideo:!0});d.addEventListener("icecandidate",E=>m.addIceCandidate(E.candidate)),m.addEventListener("icecandidate",E=>d.addIceCandidate(E.candidate)),d.addTrack(c.getVideoTracks()[0],c);let l=yield d.createOffer();yield d.setLocalDescription(l),yield m.setRemoteDescription(l);let f=yield m.createAnswer(),g=zm.default.parse(f.sdp),T=g.media[0].rtp.findIndex(E=>E.codec==="H264");g.media[0].rtp=[g.media[0].rtp[T]],g.media[0].fmtp=g.media[0].fmtp.filter(E=>E.payload===g.media[0].rtp[0].payload),g.media[0].rtcpFb&&(g.media[0].rtcpFb=g.media[0].rtcpFb.filter(E=>E.payload===g.media[0].rtp[0].payload)),f.sdp=zm.default.write(g),yield m.setLocalDescription(f),yield d.setRemoteDescription(f),n=setInterval(()=>D(this,null,function*(){t.encode&&t.decode&&(e(),i(t));let[E,y]=yield Promise.all([d.getSenders()[0].getStats(),m.getReceivers()[0].getStats()]);t.encode||E.forEach(v=>{v.type==="outbound-rtp"&&v.mediaType===j.VIDEO&&v.bytesSent>0&&(t.encode=!0)}),t.decode||y.forEach(v=>{v.type==="inbound-rtp"&&v.mediaType===j.VIDEO&&v.bytesReceived>0&&(t.decode=!0)})}),100)}catch(r){e(),se.warn("detectH264Supported failed",r),i({encode:!0,decode:!0})}})).then(i=>(i.encode||(i.decode=!0),(!i.encode||!i.decode)&&se.warn(`detectH264Supported encode: ${i.encode} decode: ${i.decode} ${yi}`),i)),ku)})}var Lu=null;function qI(){return D(this,null,function*(){return Lu||(Lu=new Promise(i=>D(this,null,function*(){let t={isH264EncodeSupported:!1,isH264DecodeSupported:!1,isVp8EncodeSupported:!1,isVp8DecodeSupported:!1};if(!qm()){i(t);return}let e=null,r=null,o=null,s=()=>{o&&clearTimeout(o),e=null,r=null};try{e=document.createElement("canvas"),r=e.getContext("2d"),e.width=320,e.height=240;let n=0,a=()=>{!r||!e||(r.fillStyle=`hsl(${n%360}, 50%, 50%)`,r.fillRect(0,0,e.width,e.height),r.fillStyle="white",r.font="20px Arial",r.fillText(`Frame ${n}`,10,30),n++)};o=setTimeout(()=>{s(),i(t)},5e3);let c=[{type:"h264",encodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"},width:320,height:240,bitrate:1e6},decodeConfig:{codec:"avc1.42E01E",avc:{format:"annexb"}}},{type:"vp8",encodeConfig:{codec:"vp8",width:320,height:240,bitrate:1e6},decodeConfig:{codec:"vp8"}}];(yield Promise.all(c.map(m=>D(this,null,function*(){let l={type:m.type,encodeSupported:!1,decodeSupported:!1},f;try{f=yield new Promise((g,T)=>D(this,null,function*(){try{let E=new VideoEncoder({output:v=>{g(v),l.encodeSupported=!0},error:T});E.configure(m.encodeConfig),a();let y=new VideoFrame(e,{timestamp:0});E.encode(y,{keyFrame:!0}),y.close(),yield E.flush(),E.close()}catch(E){T(E)}}))}catch(g){return se.warn(`${m.type} encoder error:`,g),l}try{yield new Promise((g,T)=>D(this,null,function*(){try{let E=new VideoDecoder({output:y=>{l.decodeSupported=!0,g(0),y.close()},error:T});E.configure(m.decodeConfig),E.decode(f),yield E.flush(),E.close()}catch(E){T(E)}}))}catch(g){se.warn(`${m.type} decoder error:`,g)}return l})))).forEach(m=>{m.type==="h264"?(t.isH264EncodeSupported=m.encodeSupported,t.isH264DecodeSupported=m.decodeSupported):m.type==="vp8"&&(t.isVp8EncodeSupported=m.encodeSupported,t.isVp8DecodeSupported=m.decodeSupported)}),s(),i(t)}catch(n){s(),se.warn("detectWebCodecsSupported failed:",n),i(t)}})),Lu)})}var XI=(i,t,e)=>{location.protocol==="http:"&&!bi&&(i[t]=()=>{throw new Me({code:Te.INVALID_OPERATION,message:Wr.NOT_SUPPORTED_HTTP})})},JI=function(i){return i.type==="candidate-pair"&&i.nominated&&(i.state==="in-progress"||i.state==="succeeded")?!(Nt(i.selected)&&!i.selected):!1};function $_(){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 F_(){return navigator.getUserMedia||navigator.mediaDevices&&navigator.mediaDevices.getUserMedia}function H_(){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 W_(){return"captureStream"in HTMLCanvasElement.prototype}function G_(){return co||Ut||Fr&&Fr<63?!1:!!(jm()&&W_())}function z_(){return!(Fr<74||Ls||Tr<11||ou<46)}function Bu(){return G_()||z_()}var QI=function(){if(z(window.RTCRtpTransceiver)||!$u()||!("currentDirection"in RTCRtpTransceiver.prototype))return!1;let i=null,t=!1;try{i=new RTCPeerConnection({sdpSemantics:Gh}),i.addTransceiver(j.AUDIO),t=!0}catch(e){}return i==null||i.close(),t};function YI(){return"RTCPeerConnection"in window&&"getReceivers"in window.RTCPeerConnection.prototype}function j_(){return"RTCPeerConnection"in window&&"getSenders"in window.RTCPeerConnection.prototype}function ZI(){return"RTCPeerConnection"in window&&"getTransceivers"in window.RTCPeerConnection.prototype}function $u(){return Tr===11&&!Tm?!1:"RTCPeerConnection"in window&&"addTransceiver"in window.RTCPeerConnection.prototype}var KI=!(!$u()||Qr&&Fr<86);function eb(){return"RTCRtpTransceiver"in window&&"stop"in window.RTCRtpTransceiver.prototype}var pc="RTCRtpSender"in window;function tb(){return pc&&"replaceTrack"in window.RTCRtpSender.prototype}function rb(){return pc&&"setParameters"in window.RTCRtpSender.prototype&&j_()}var ib="RTCRtpReceiver"in window&&"getSynchronizationSources"in window.RTCRtpReceiver.prototype,ea=window.MediaStreamTrack&&"getSettings"in MediaStreamTrack.prototype,Qm=window.MediaStreamTrack&&"getCapabilities"in MediaStreamTrack.prototype,Ym=typeof InputDeviceInfo!="undefined"&&"getCapabilities"in InputDeviceInfo.prototype,zs=pc&&"createEncodedStreams"in window.RTCRtpSender.prototype&&yu()>=86,q_="RTCRtpScriptTransform"in window,fc=pc&&(zs||q_),Zm=function(){return["RTCPeerConnection","webkitRTCPeerConnection","RTCIceGatherer"].filter(t=>t in window).length>0};function Fu(){let i={AudioDecoder:!1,AudioEncoder:!1,VideoDecoder:!1,VideoEncoder:!1,ImageDecoder:!1};return z(window.AudioDecoder)||(i.AudioDecoder=!0),z(window.AudioEncoder)||(i.AudioEncoder=!0),z(window.VideoDecoder)||(i.VideoDecoder=!0),z(window.VideoEncoder)||(i.VideoEncoder=!0),z(window.ImageDecoder)||(i.ImageDecoder=!0),i}function X_(){return"mediaSession"in navigator&&!z(navigator.mediaSession.setActionHandler)}function J_(){return!z(window.WebTransport)}function Km(){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 ob(){let i={browser:`${Bi.name}/${Bi.version}`,os:Jn(),displayResolution:$_(),isScreenShareSupported:mc(),isWebRTCSupported:Zm(),isGetUserMediaSupported:F_(),isWebAudioSupported:H_(),isWebSocketsSupported:"WebSocket"in window&&window.WebSocket.CLOSING===2,isWebCodecSupported:Fu(),isMediaSessionSupported:X_(),isWebTransportSupported:J_()};return navigator.userAgent.includes("miniProgram")&&(i.browser=`mini/${i.browser}`),i}var Q_="checkResult";function L_(i=30){Yn.setItem(Q_+i,{ua:navigator.userAgent,checkResult:rt})}function ep(i){Eo();let t=Yn.getItem(Q_+i);t&&t.ua===navigator.userAgent&&t.checkResult&&sb(t.checkResult.detail,rt.detail)&&(rt=t.checkResult),Vu(i)}function sb(i,t){return Xr(i)?Object.keys(t).every(e=>e in i):!1}function Ri(){return"requestVideoFrameCallback"in HTMLVideoElement.prototype}var nb="RTCRtpReceiver"in window&&"jitterBufferTarget"in window.RTCRtpReceiver.prototype;function P_(i){return{h264:1,h265:2,vp8:3,vp9:4,av1:5}[i]}var U_=!1;function tp(){return D(this,null,function*(){var i;try{if(U_||!((i=navigator==null?void 0:navigator.mediaCapabilities)!=null&&i.encodingInfo))return;let t=Bs(),e=Sm();if(t===0||e===0)return;U_=!0;let r=["H264","VP8","VP9","AV1","H265"],[o,s]=yield Promise.all([Y_(r),Z_(r)]);o&&Object.keys(o).forEach(c=>{let d=P_(c.toLowerCase());Se.addEnum({key:513707,value:+`${d}${+o[c].supported}${+o[c].powerEfficient}${t}${e}`,useUV:!1})}),s&&Object.keys(s).forEach(c=>{let d=P_(c.toLowerCase());Se.addEnum({key:514713,value:+`${d}${+s[c].supported}${+s[c].powerEfficient}${t}${e}`,useUV:!1})});let{sender:n,receiver:a}=K_();Se.addEnum({key:513708,value:+`${t}${e}${+n.high}`,useUV:!1}),Se.addEnum({key:513709,value:+`${t}${e}${+n.main}`,useUV:!1}),Se.addEnum({key:514714,value:+`${t}${e}${+a.high}`,useUV:!1}),Se.addEnum({key:514715,value:+`${t}${e}${+a.main}`,useUV:!1})}catch(t){se.info("detectVideoCodecCapabilities failed",t)}})}function Y_(i,t=1920,e=1080,r=30,o=3e3){return D(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.encodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function Z_(i,t=1920,e=1080,r=30,o=3e3){return D(this,null,function*(){let s={};try{for(let n of i){let a=yield navigator.mediaCapabilities.decodingInfo({type:"webrtc",video:{contentType:`video/${n}`,width:t,height:e,bitrate:o,framerate:r}});s[n]=a}}catch(n){}return s})}function K_(){let i={sender:{base:!1,main:!1,high:!1},receiver:{base:!1,main:!1,high:!1}};try{if(RTCRtpSender&&typeof RTCRtpSender.getCapabilities=="function"){let t=RTCRtpSender.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.sender.base=!0;break;case"4d":i.sender.main=!0;break;case"64":i.sender.high=!0;break}}})}if(RTCRtpReceiver&&typeof RTCRtpReceiver.getCapabilities=="function"){let t=RTCRtpReceiver.getCapabilities("video");t&&t.codecs&&t.codecs.filter(r=>r.mimeType.toLowerCase()==="video/h264").forEach(r=>{if(r.sdpFmtpLine){let o=r.sdpFmtpLine.match(/profile-level-id=([0-9a-fA-F]+)/);if(o&&o[1])switch(o[1].slice(0,2)){case"42":i.receiver.base=!0;break;case"4d":i.receiver.main=!0;break;case"64":i.receiver.high=!0;break}}})}}catch(t){se.warn("get H264 profile levelId failed",t)}return i}var tE=Li(mo(),1);var eE=Symbol("instance"),Nw=Symbol("abortCtrl"),Hu=Symbol("cacheResult"),gc=class{constructor(t,e,r){this.oldState=t,this.newState=e,this.action=r,this.aborted=!1}abort(t){this.aborted=!0,Tc.call(t,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},_c=class extends Error{constructor(t,e,r){super(e),this.state=t,this.message=e,this.cause=r}};function ab(i){return typeof i=="object"&&i&&"then"in i}var Ec=new Map;function Mt(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let c=Ec.get(r)||[];Ec.has(r)||Ec.set(r,c),c.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...c){let d=this;if(e.context&&(d=Ve.get(typeof e.context=="function"?e.context.call(this,...c):e.context)),d.state===t)return e.sync?d[Hu]:Promise.resolve(d[Hu]);d.state instanceof gc&&d.state.action==e.abortAction&&d.state.abort(d);let m=null;Array.isArray(i)?i.length==0?d.state instanceof gc&&d.state.abort(d):(typeof d.state!="string"||!i.includes(d.state))&&(m=new _c(d._state,`${d.name} ${n} to ${t} failed: current state ${d._state} not from ${i.join("|")}`)):i!==d.state&&(m=new _c(d._state,`${d.name} ${n} to ${t} failed: current state ${d._state} not from ${i}`));let l=y=>{if(e.fail&&e.fail.call(this,y),e.sync){if(e.ignoreError)return y;throw y}else return e.ignoreError?Promise.resolve(y):Promise.reject(y)};if(m)return l(m);let f=d.state,g=new gc(f,t,n);Tc.call(d,g);let T=y=>{var v;return d[Hu]=y,g.aborted||(Tc.call(d,t),(v=e.success)===null||v===void 0||v.call(this,d[Hu])),y},E=y=>(Tc.call(d,f,y),l(y));try{let y=a.apply(this,c);return ab(y)?y.then(T).catch(E):e.sync?T(y):Promise.resolve(T(y))}catch(y){return E(new _c(d._state,`${d.name} ${n} from ${i} to ${t} failed: ${y}`,y instanceof Error?y:new Error(String(y))))}}}}var cb=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 Tc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Ve.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Ve=class i extends tE.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[eE];o?this.name=o.name+"-"+o.count++:r[eE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Ec.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Ec.has(a)&&(a.stateDiagram.forEach(d=>r.add(d)),a.allStates.forEach(d=>n.add(d))),e.forEach(({from:d,to:m,action:l})=>{typeof d=="string"?o.push({from:d,to:m,action:l}):d.length?d.forEach(f=>{o.push({from:f,to:m,action:l})}):s.push({to:m,action:l})}),o.forEach(({from:d,to:m,action:l})=>{n.add(d),n.add(m),n.add(l+"ing"),r.add(`${d} --> ${l}ing : ${l}`),r.add(`${l}ing --> ${m} : ${l} \u{1F7E2}`),r.add(`${l}ing --> ${d} : ${l} \u{1F534}`)}),s.forEach(({to:d,action:m})=>{r.add(`${m}ing --> ${d} : ${m} \u{1F7E2}`),n.forEach(l=>{l!==d&&r.add(`${l} --> ${m}ing : ${m}`)})});let c=[...r];return Object.defineProperties(t,{stateDiagram:{value:c},allStates:{value:n}}),c}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={}){cb(i.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Tc.call(this,t)}};Ve.STATECHANGED="stateChanged";Ve.UPDATEAFSM="updateAFSM";Ve.INIT="[*]";Ve.ON="on";Ve.OFF="off";Ve.instances=new Map;Ve.instances2=new WeakMap;var ip=typeof window!="undefined",rE=ip&&window.requestIdleCallback||function(i){let t=Date.now();return setTimeout(()=>{i({didTimeout:!1,timeRemaining(){return Math.max(0,50-(Date.now()-t))}})},1e3)},db=ip&&window.cancelIdleCallback||function(i){clearTimeout(i)},iE=ip&&(window.cancelAnimationFrame||window.mozCancelAnimationFrame),ar=class ar{static generateTaskID(){return this.currentTaskID++}static run(t,e,r){r!=null&&r.fps&&(r.delay=r.delay||Number((1e3/r.fps).toFixed(2))),t==="interval"?r=be({delay:2e3,count:0,backgroundTask:!0},r):t==="ric"?r=be({delay:1e4,count:0},r):t==="raf"?r=be({fps:60,delay:16.6,count:0,backgroundTask:!0},r):r=be({delay:2e3,count:0,backgroundTask:!0},r);let o=qe(be({taskID:this.generateTaskID(),loopCount:0,intervalID:null,timeoutID:null,rafID:null,ricID:null,taskName:t,callback:e},r),{delay:r.delay});return this.taskMap.set(o.taskID,o),this[t](o),o.taskID}static interval(t){let e=()=>{t.callback(),t.loopCount+=1,ar.isBreakLoop(t)};return t.intervalID=setInterval(e,t.delay)}static intervalInWorker(t){ar.sharedWorker||(ar.sharedWorker=new Worker(URL.createObjectURL(new Blob([`
|
|
12
13
|
const timers = new Map();
|
|
13
14
|
self.onmessage = function(e) {
|
|
14
15
|
const { taskId, delay, type } = e.data;
|
|
@@ -21,15 +22,15 @@ Refer to: ${Ug("en",a)}
|
|
|
21
22
|
timers.delete(taskId);
|
|
22
23
|
}
|
|
23
24
|
};
|
|
24
|
-
`],{type:"application/javascript"}))),
|
|
25
|
-
${r.stack}`));let s=Io.enable?Di(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(Ni(this._configs.sdkAppId,po.LOG),s)}sendRequest(t,e){setTimeout(()=>wi({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},qe=new Rh;var Ss=new WeakMap;function ys({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=Eo({retryFunction:n.value,settings:i,onError({error:d,retry:l,reject:p,retryFuncArgs:f}){var g;t?t.call(this,d,()=>{var y;(y=Ss.get(o))!=null&&y.has(s)?l():p(d)},p,f):(g=Ss.get(o))!=null&&g.has(s)?l():p(d)},onRetrying(d,l){var p;go(e)&&e.call(this,d,l),(p=Ss.get(o))!=null&&p.has(s)&&(Ss.get(o).get(s).stopRetry=l)},onRetryFailed:r});return n.value=function(...d){let l=Ss.get(o);return l?l.set(s,{args:d}):Ss.set(o,new Map([[s,{args:d}]])),a.apply(this,d).finally(()=>{var p;return(p=Ss.get(o))==null?void 0:p.delete(s)})},n}}var Jr=class extends ue{constructor(e,r){super(e.id,`${r}-player`);this.options=e;this.kind=r;m(this,"id");m(this,"element",null);m(this,"track");m(this,"url");m(this,"attr");m(this,"mode");m(this,"muted");m(this,"_log");m(this,"_isPausedByUserCall",!1);m(this,"_pausedRetryCount");m(this,"_isElementPlayingFired",!1);m(this,"_interval");m(this,"_delayDestroyTimeoutId",0);m(this,"_playSuccessResolve");m(this,"_isReplayByRecreateMediaStreamCalled",!1);m(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=is,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}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}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=We({key:He.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new se({code:q.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){var r;this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!vr?this._delayDestroyTimeoutId||((r=this.element)==null||r.remove(),this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(M.ENDED),this._interval>0&&ft.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this._log.info("pause"),(e=this.element)==null||e.pause(),this._isPausedByUserCall=!0,this instanceof Bt&&fr&&sr>=128&&this.setPoster(this.getVideoFrame())}resume(){return this._isPausedByUserCall=!1,this.doResume()}doResume(){return this._log.info("resume"),this._isPausedByUserCall||this.isPlaying?Promise.resolve():Vm?this.replay():(this.element&&this.track&&fr&&sr>=128&&(this.element.srcObject=new MediaStream([this.track])),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 Ft(this.element,this.element).add(M.PLAYING,e).add(M.ENDED,e).add(M.PAUSE,e).add(M.ERROR,e).add(M.LOADEDDATA,e).add(M.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);di==null||di.create(e,e).add(M.ENDED,r).add(M.MUTE,r).add(M.UNMUTE,r),e.readyState===M.ENDED&&this.handleTrackEvent({type:M.ENDED}),e.muted&&this.handleTrackEvent({type:M.MUTE})}}bindAutoPlayEvent(){U.on(B.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&St(e)}unbindEvents(){this.element&&St(this.element),this.unbindTrackEvents(),U.off(B.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case M.PLAYING:Ro()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(M.PLAYING),this._interval&&(ft.clearTask(this._interval),this._interval=-1);break;case M.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(M.ENDED);break;case M.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(M.PAUSE),ot&&(this._interval=ft.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.doResume()},{delay:3e3}));break;case M.ERROR:if(this.element&&this.element.error){this.handlePaused(M.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}`),qe.uploadEvent({log:`stat-${this.kind}-${Ar.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),xm||xa?this.emit(je.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case M.LOADEDDATA:this.kind===M.VIDEO&&this.emit(je.LOADED_DATA);break;case M.LOADEDMETADATA:this.kind===M.VIDEO&&this.emit(je.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),qe.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),J.addSuccessEvent({key:this.kind===M.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),qe.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),J.addFailedEvent({key:this.kind===M.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(je.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{$r(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,n,a;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((a=this.element)==null?void 0:a.error)}),$r(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return A(this,null,function*(){switch(e.type){case M.ENDED:this.handleStopped(M.ENDED);break;case M.MUTE:this.handlePaused(M.MUTE);break;case M.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.doResume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(M.UNMUTE));break}})}handlePlaying(e){var r;return this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),e}handlePaused(e){return this._log.debug("handlePaused",e),e}handleStopped(e){return this._log.debug("handleStopped",e),e}getElement(){return this.element}};m(Jr,"PlayerEvent",je),Z([ys({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Jr.prototype,"doReplayByRecreateMediaStream",1),Z([et([],"PLAYING",{sync:!0,success(e){this.emit(je.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],Jr.prototype,"handlePlaying",1),Z([et("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(je.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],Jr.prototype,"handlePaused",1),Z([et([],"STOPPED",{sync:!0,success(e){this.emit(je.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],Jr.prototype,"handleStopped",1);var Wi="trtc_autoplay",vh=`${Wi}_mask`,tc=`${Wi}_wrapper`,gE=`${Wi}_header`,Ch=`${Wi}_content`,Iu=`${Wi}_action_wrapper`,Nh=`${Wi}_question`,Dh=`${Wi}_collapse`,Su=`${Wi}_action_confirm`,EE=`${Wi}_detail`,_E="#2473E8",Mh="dialog",ay=`${Mh}-show`,cy=`${Mh}-1`,dy=`${Mh}-2`,TE=!1,wh=!1,Ro=()=>wh,SE=`${ir}/${Fr()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,IE=`<br><a href='${SE}' target='_blank'>${Fr()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,uy=`${Fr()?`\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${IE}`:`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. ${IE}`}`,Oh=class{constructor(){m(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");m(this,"_dialogNode",null);m(this,"_bodyPosition","");m(this,"_showDetail",!1);m(this,"_isCollapseClicked",!1);m(this,"_isQuestionClicked",!1);if(Fr()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!TE){let t=document.createElement("style");t.innerHTML=`.${vh}{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;}.${vh} div:not(.${Iu}){display:block !important;}.${tc}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${tc} a{color:${_E};}.${gE}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${Ch}{margin:8px 0;}.${Iu}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${Dh}{margin-right:auto;cursor:pointer}.${Nh}{height:100%;line-height:16px;cursor:pointer;}.${Su}{margin-left:8px;color:#fff;background:${_E};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Su}:hover{opacity:0.9;}.${Dh},.${Su},.${Ch},.${Nh}{font-size:14px;}@media screen and (max-width:750px){.${tc}{width:80vw;}}`,document.head.appendChild(t),TE=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${vh}"><div class='${tc}'><div class='${gE}'>${location.host}</div><div class='${Ch}'>${this.content}</div><div class='${EE}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${uy}</div><div class='${Iu}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Su,e.innerText=Fr()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=Nh,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
|
|
25
|
+
`],{type:"application/javascript"}))),ar.sharedWorker.onmessage=e=>{var r;if(e.data.type==="tick"){let o=ar.workerTasks.get(e.data.taskId);o&&(ar.isBreakLoop(o)?((r=ar.sharedWorker)==null||r.postMessage({type:"stop",taskId:o.taskID}),ar.workerTasks.delete(o.taskID)):(o.callback(),o.loopCount+=1))}}),ar.workerTasks.set(t.taskID,t),ar.sharedWorker.postMessage({taskId:t.taskID,delay:t.delay,type:"start"})}static timeout(t){let e=()=>{if(t.callback(),t.loopCount+=1,!ar.isBreakLoop(t))return t.timeoutID=setTimeout(e,t.delay)};return t.timeoutID=setTimeout(e,t.delay)}static ric(t){let e=Xe(),r,o=()=>{if(r=Xe()-e,r>=t.delay&&(e=Xe()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!ar.isBreakLoop(t))return t.ricID=rE(o,{timeout:t.delay})};return t.ricID=rE(o,{timeout:t.delay})}static raf(t){let e=Xe(),r,o=()=>{if(document.hidden&&t.backgroundTask)return r=Xe()-e,e=Xe(),t.callback(),t.loopCount+=1,ar.isBreakLoop(t)?void 0:t.timeoutID=setTimeout(o,t.delay-Math.floor(r%t.delay));if(r=Xe()-e,r>=t.delay&&(e=Xe()-Math.floor(r%t.delay),t.callback(),t.loopCount+=1),!ar.isBreakLoop(t))return t.rafID=requestAnimationFrame(o)};if(t.rafID=requestAnimationFrame(o),t.backgroundTask){let s=()=>{if(document.hidden){let n=Xe()-e;n>=t.delay?o():t.timeoutID=setTimeout(o,t.delay-n)}};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:n}=this.taskMap.get(t);return e&&clearInterval(e),r&&clearTimeout(r),o&&iE&&iE(o),s&&db(s),n&&document.removeEventListener("visibilitychange",n),this.taskMap.delete(t),!0}static isBreakLoop(t){return this.hasTask(t.taskID)?t.count!==0&&t.loopCount>=t.count?(this.clearTask(t.taskID),!0):!1:!0}};p(ar,"taskMap",new Map),p(ar,"currentTaskID",1),p(ar,"sharedWorker",null),p(ar,"workerTasks",new Map);var rp=ar,Jt=rp;var Bw={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:j.SEI_MESSAGE,ERROR:"error"};var St={LOADED_DATA:j.LOADEDDATA,LOADED_META_DATA:j.LOADEDMETADATA,MEDIA_TRACK_CHANGED:"media-track-changed",PLAYER_STATE_CHANGED:"player-state-changed",ERROR:"error",RESIZE:j.RESIZE,TIME_UPDATE:"time-update"};var Hi={};eo(Hi,{create:()=>yr,remove:()=>tr});var yc=new WeakMap;function yr(i,t){yc.has(i)||yc.set(i,[]);let e=yc.get(i),o={add:(s,n)=>("addEventListener"in t?(e.push(t.removeEventListener.bind(t,s,n)),t.addEventListener(s,n)):(e.push(t.off.bind(t,s,n)),t.on(s,n)),o)};return o}function tr(i){let t=yc.get(i);t&&(t.forEach(e=>e()),yc.delete(i))}var op=class{constructor(){p(this,"_roomIdMap",new Map);p(this,"_configs");typeof registerProcessor=="undefined"&&(this._configs={sdkAppId:"",userId:"",version:qt,env:ro.QCLOUD,browserVersion:Bi.name+Bi.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){bi||!se.isAbleToUpload||this._configs.env===ro.QCLOUD&&this.uploadEventToKibana(qe(be({},t),{result:"success"}))}logFailedEvent(t){if(bi||!se.isAbleToUpload)return;let{eventType:e,code:r,error:o,userId:s}=t,n={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)||Te.UNKNOWN};this._configs.env===ro.QCLOUD&&this.uploadEventToKibana(qe(be({},n),{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:kd(),sdkAppId:this._configs.sdkAppId,userId:e||this._configs.userId,version:qt,log:t};r&&(o.errorInfo=r.message,r.stack&&(o.errorInfo+=`
|
|
26
|
+
${r.stack}`));let s=zo.enable?so(o,2002,Number(this._configs.sdkAppId)):JSON.stringify(o);this.sendRequest(oo(this._configs.sdkAppId,Bo.LOG),s)}sendRequest(t,e){setTimeout(()=>no({url:t,body:e,priority:"low"}).catch(()=>{}),2e3)}},It=new op;var js=new WeakMap;function qs({settings:i={retries:5,timeout:2e3},onError:t,onRetrying:e,onRetryFailed:r}){return function(o,s,n){let a=Ho({retryFunction:n.value,settings:i,onError({error:c,retry:d,reject:m,retryFuncArgs:l}){var f;t?t.call(this,c,()=>{var g;(g=js.get(o))!=null&&g.has(s)?d():m(c)},m,l):(f=js.get(o))!=null&&f.has(s)?d():m(c)},onRetrying(c,d){var m;Fo(e)&&e.call(this,c,d),(m=js.get(o))!=null&&m.has(s)&&(js.get(o).get(s).stopRetry=d)},onRetryFailed:r});return n.value=function(...c){let d=js.get(o);return d?d.set(s,{args:c}):js.set(o,new Map([[s,{args:c}]])),a.apply(this,c).finally(()=>{var m;return(m=js.get(o))==null?void 0:m.delete(s)})},n}}var Ci=class extends Ve{constructor(e,r){super(e.id,`${r}-player`);this.options=e;this.kind=r;p(this,"id");p(this,"element",null);p(this,"track");p(this,"url");p(this,"attr");p(this,"mode");p(this,"muted");p(this,"_log");p(this,"_isPausedByUserCall",!1);p(this,"_pausedRetryCount");p(this,"_isElementPlayingFired",!1);p(this,"_interval");p(this,"_delayDestroyTimeoutId",0);p(this,"_playSuccessResolve");p(this,"_isReplayByRecreateMediaStreamCalled",!1);p(this,"isInAutoPlayFailedState",!1);this.id=e.id,this._log=e.log,this.track=e.track,this.muted=e.muted,this._pausedRetryCount=Cs,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}get isPaused(){var e;return this._state==="PAUSED"||((e=this.element)==null?void 0:e.paused)===!0}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 D(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=Et({key:_t.PLAY_FAILED,data:{media:this.kind,error:e}});if(this._log.warn(e),r.includes("NotAllowedError"))throw this.isInAutoPlayFailedState=!0,new Me({code:Te.PLAY_NOT_ALLOWED,message:r})}})}stop(e=0){var r;this._isElementPlayingFired=!1,this.unbindEvents(),e>0&&!ni?this._delayDestroyTimeoutId||((r=this.element)==null||r.remove(),this._log.info(`destroy element after 3 * ${e}`),this._delayDestroyTimeoutId=setTimeout(()=>this.destroyElement(),3*e)):this.destroyElement(),this.handleStopped(j.ENDED),this._interval>0&&Jt.clearTask(this._interval)}destroyElement(){this.element&&(this._log.debug("destroy element"),this.element.remove(),this.element.src="",this.element.srcObject=null,this.element=null),clearTimeout(this._delayDestroyTimeoutId),this._delayDestroyTimeoutId=0}pause(){var e;this._log.info("pause"),(e=this.element)==null||e.pause(),this._isPausedByUserCall=!0,this instanceof Sr&&Qr&&Fr>=128&&this.setPoster(this.getVideoFrame())}resume(){return this._isPausedByUserCall=!1,this.doResume()}doResume(){return this._log.info("resume"),this._isPausedByUserCall||this.isPlaying?Promise.resolve():_m?this.replay():(this.element&&this.track&&Qr&&Fr>=128&&(this.element.srcObject=new MediaStream([this.track])),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 yr(this.element,this.element).add(j.PLAYING,e).add(j.ENDED,e).add(j.PAUSE,e).add(j.ERROR,e).add(j.LOADEDDATA,e).add(j.LOADEDMETADATA,e)}}bindTrackEvents(e=this.track){if(e){let r=this.handleTrackEvent.bind(this);Hi==null||Hi.create(e,e).add(j.ENDED,r).add(j.MUTE,r).add(j.UNMUTE,r),e.readyState===j.ENDED&&this.handleTrackEvent({type:j.ENDED}),e.muted&&this.handleTrackEvent({type:j.MUTE})}}bindAutoPlayEvent(){ee.on(ce.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}unbindTrackEvents(e=this.track){e&&tr(e)}unbindEvents(){this.element&&tr(this.element),this.unbindTrackEvents(),ee.off(ce.AUTOPLAY_DIALOG_CLICK_CONFIRM,this.resume,this)}handleElementEvent(e){switch(e.type){case j.PLAYING:Qo()||(this.isInAutoPlayFailedState=!1),this._isElementPlayingFired=!0,this._log.info(`${this.kind} player is playing`),this.handlePlaying(j.PLAYING),this._interval&&(Jt.clearTask(this._interval),this._interval=-1);break;case j.ENDED:this._log.info(`${this.kind} player is ended`),this.handleStopped(j.ENDED);break;case j.PAUSE:this._log.info(`${this.kind} player is paused`),this.handlePaused(j.PAUSE),Ut&&(this._interval=Jt.run("timeout",()=>{this.element&&this._state==="PAUSED"&&this.doResume()},{delay:3e3}));break;case j.ERROR:if(this.element&&this.element.error){this.handlePaused(j.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}`),It.uploadEvent({log:`stat-${this.kind}-${ii.PLAYER_ERROR}-${o}-${navigator.userAgent}`,error:this.element.error}),hm||Ka?this.emit(St.ERROR,this.element.error):this.replayByRecreateMediaStream(this.element.error)}break;case j.LOADEDDATA:this.kind===j.VIDEO&&this.emit(St.LOADED_DATA);break;case j.LOADEDMETADATA:this.kind===j.VIDEO&&this.emit(St.LOADED_META_DATA);break}}replayByRecreateMediaStream(e){if(!this._isReplayByRecreateMediaStreamCalled)return this._isReplayByRecreateMediaStreamCalled=!0,this.doReplayByRecreateMediaStream(1e3).then(()=>{this._log.warn("replayByRecreateMediaStream success"),It.uploadEvent({log:"stat-replayByRecreateMediaStream-success"}),Se.addSuccessEvent({key:this.kind===j.AUDIO?506700:516700})}).catch(()=>{var r;this._log.error("replayByRecreateMediaStream failed"),It.uploadEvent({log:"stat-replayByRecreateMediaStream-failed"}),Se.addFailedEvent({key:this.kind===j.AUDIO?506700:516700,error:(r=this.element)==null?void 0:r.error}),this.emit(St.ERROR,e)})}doReplayByRecreateMediaStream(e){return this._log.warn(`delay ${e}ms to recreate mediaStream`),new Promise((r,o)=>{Ti(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,n,a;this._log.warn(`element onerror ${(n=(s=this.element)==null?void 0:s.error)==null?void 0:n.code} fired after recreated mediaStream`),o((a=this.element)==null?void 0:a.error)}),Ti(5e3).then(()=>{var s,n;(!this.isPlaying||(s=this.element)!=null&&s.error)&&o((n=this.element)==null?void 0:n.error),r()})})}).finally(()=>{this.element&&(this.element.onerror=null)})}handleTrackEvent(e){return D(this,null,function*(){switch(e.type){case j.ENDED:this.handleStopped(j.ENDED);break;case j.MUTE:this.handlePaused(j.MUTE);break;case j.UNMUTE:this.mode>0?this.handlePlaying(this.mode.toString()):this.element&&(this.element.paused&&(this._log.warn("track unmuted and element is paused, resume"),yield this.doResume()),!this.element.paused&&this._isElementPlayingFired&&this.handlePlaying(j.UNMUTE));break}})}handlePlaying(e){var r;return this._log.debug("handlePlaying",e),(r=this._playSuccessResolve)==null||r.call(this,e),e}handlePaused(e){return this._log.debug("handlePaused",e),e}handleStopped(e){return this._log.debug("handleStopped",e),e}getElement(){return this.element}};p(Ci,"PlayerEvent",St),Ie([qs({settings:{retries:2,timeout:0},onError(e,r,o,s){s[0]=(s[0]||1e3)+1e3,r()}})],Ci.prototype,"doReplayByRecreateMediaStream",1),Ie([Mt([],"PLAYING",{sync:!0,success(e){this.emit(St.PLAYER_STATE_CHANGED,{type:this.kind,state:"PLAYING",reason:e})}})],Ci.prototype,"handlePlaying",1),Ie([Mt("PLAYING","PAUSED",{ignoreError:!0,sync:!0,success(e){this.emit(St.PLAYER_STATE_CHANGED,{type:this.kind,state:"PAUSED",reason:e})}})],Ci.prototype,"handlePaused",1),Ie([Mt([],"STOPPED",{sync:!0,success(e){this.emit(St.PLAYER_STATE_CHANGED,{type:this.kind,state:"STOPPED",reason:e})}})],Ci.prototype,"handleStopped",1);var To="trtc_autoplay",sp=`${To}_mask`,Sc=`${To}_wrapper`,oE=`${To}_header`,np=`${To}_content`,Wu=`${To}_action_wrapper`,ap=`${To}_question`,cp=`${To}_collapse`,Gu=`${To}_action_confirm`,sE=`${To}_detail`,nE="#2473E8",lp="dialog",lb=`${lp}-show`,hb=`${lp}-1`,mb=`${lp}-2`,aE=!1,dp=!1,Qo=()=>dp,dE=`${Br}/${_i()?"zh-cn":"en"}/tutorial-21-advanced-auto-play-policy.html`,cE=`<br><a href='${dE}' target='_blank'>${_i()?"\u5176\u4ED6\u65B9\u6848\uFF1F":"Any other solution?"}</a>`,pb=`${_i()?`\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${cE}`:`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. ${cE}`}`,up=class{constructor(){p(this,"content","\u97F3\u89C6\u9891\u64AD\u653E\u88AB\u6D4F\u89C8\u5668\u62E6\u622A\uFF0C\u8BF7\u70B9\u51FB\u201C\u6062\u590D\u64AD\u653E\u201D\u3002");p(this,"_dialogNode",null);p(this,"_bodyPosition","");p(this,"_showDetail",!1);p(this,"_isCollapseClicked",!1);p(this,"_isQuestionClicked",!1);if(_i()||(this.content='Media playback failed. Click the "Resume" to resume playback.'),!aE){let t=document.createElement("style");t.innerHTML=`.${sp}{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;}.${sp} div:not(.${Wu}){display:block !important;}.${Sc}{padding:14px;background:#fff;border-radius:3px;box-shadow:0px 3px 15px #434343;border:1px solid #d1cfcf;max-width:500px;}.${Sc} a{color:${nE};}.${oE}{overflow:hidden;text-overflow:ellipsis;font-size:16px;font-weight:600;}.${np}{margin:8px 0;}.${Wu}{width:100%;display:flex !important;align-items:center;justify-content:right;float:right;}.${cp}{margin-right:auto;cursor:pointer}.${ap}{height:100%;line-height:16px;cursor:pointer;}.${Gu}{margin-left:8px;color:#fff;background:${nE};padding:4px 12px;outline:none;border:1px solid;border-radius:3px;font-weight:bold;}.${Gu}:hover{opacity:0.9;}.${cp},.${Gu},.${np},.${ap}{font-size:14px;}@media screen and (max-width:750px){.${Sc}{width:80vw;}}`,document.head.appendChild(t),aE=!0}this.addDiaLog()}createDiaLog(){let t=document.createElement("template");t.innerHTML=`<div class="${sp}"><div class='${Sc}'><div class='${oE}'>${location.host}</div><div class='${np}'>${this.content}</div><div class='${sE}' style="visibility:hidden;width:100%;height:0;font-size:12px;color:gray;">${pb}</div><div class='${Wu}'></div></div></div>`.trim();let e=document.createElement("button");e.className=Gu,e.innerText=_i()?"\u6062\u590D\u64AD\u653E":"Resume",e.onclick=this.onConfirm.bind(this);let r=document.createElement("div");r.className=ap,r.innerHTML=`<?xml version="1.0" encoding="UTF-8"?>
|
|
26
27
|
<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">
|
|
27
28
|
<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"/>
|
|
28
29
|
<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"/>
|
|
29
30
|
<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"/>
|
|
30
31
|
</svg>
|
|
31
|
-
`,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=Dh,o.innerText=`${Fr()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Iu}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){Ro()||(wh=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${tc}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",F.info("show autoplay dialog"),qe.uploadEvent({log:ay}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,wh=!1)}onConfirm(){F.warn("confirm clicked, try resume stream"),U.emit(B.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${EE}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||qe.uploadEvent({log:cy}),this._isCollapseClicked=!0}onQuestionClick(){window.open(SE,"_blank"),this._isQuestionClicked||qe.uploadEvent({log:dy}),this._isQuestionClicked=!0}},rc=null;function wn(){rc||(rc=new Oh)}function yE(){rc&&(rc.deleteDialog(),rc=null)}var Bt=class extends Jr{constructor(e){super(e,M.VIDEO);m(this,"stat",{});m(this,"_calculateTimeout",-1);m(this,"viewMirror",!1);m(this,"objectFit");m(this,"container");m(this,"canvas");m(this,"shouldRenderAlpha",!1);m(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,O(e.viewMirror)||(this.viewMirror=e.viewMirror),O(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(M.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,nt&&(e.poster="noposter"),(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};${this.shouldRenderAlpha?"":"background-color: black"};`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,this.track&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(M.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(M.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var r;return e.type===M.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var o,s,n,a,d,l;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===M.PAUSE&&(this.container&&!this.container.isConnected&&(this._log.warn(`${this.kind} player has been remove, element ID: ${this.container.id}`),$r(500).then(()=>{var p;(p=this.container)!=null&&p.isConnected&&(this._pausedRetryCount=is,this._log.info(`view container ${this.container.id} is in dom, reset pausedRetryCount`))})),this._pausedRetryCount>0&&!Ro()&&!this._isPausedByUserCall&&(this._log.info(`[${is-this._pausedRetryCount+1}/${is}] ${this.kind} player auto resume when paused`),this.doResume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let p=this.element.style.transform;r===M.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=p.replace("scaleX(-1)",""):r===M.LEAVE_PICTURE_IN_PICTURE&&!p.includes("scaleX")&&(this.element.style.transform=`${p} scaleX(-1)`)}r===M.RESIZE&&(this._preSize.height!==((o=this.element)==null?void 0:o.videoHeight)||this._preSize.width!==((s=this.element)==null?void 0:s.videoWidth))&&(this._log.info(`video size changed to ${(n=this.element)==null?void 0:n.videoWidth}x${(a=this.element)==null?void 0:a.videoHeight}`),this._preSize.height=((d=this.element)==null?void 0:d.videoHeight)||0,this._preSize.width=((l=this.element)==null?void 0:l.videoWidth)||0,this.emit(je.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e,r=1){var o,s,n,a;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(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.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}setPoster(e){this.element&&(this.element.poster=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(je.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(zr()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function Gi(i,t){return A(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),F.info("worklet addModule success")}catch(e){throw F.info(`worklet addModule catch error. ${e.message}`),e}})}var ic;typeof AudioContext!="undefined"?ic=AudioContext:typeof webkitAudioContext!="undefined"?ic=webkitAudioContext:typeof mozAudioContext!="undefined"&&(ic=mozAudioContext);var kh=1500,$t,AE=-1,yu=0,oc=-1,Lh=!1,bE=0,RE=-1,vE=-1;CE();function CE(){try{if($t)return;$t=new ic({sampleRate:48e3}),$t.onstatechange=()=>{F.info(`context state: ${$t.state}${$t.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),On()},clearTimeout(AE)}catch(i){F.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof ic}`),AE=setTimeout(CE,1e3)}}var On=()=>{$t.state==="suspended"?(yu=Te(),ly(),vo(),document.addEventListener("click",On)):$t.state==="interrupted"?vo():(yu&&(J.addNumber({key:507800,value:Te()-yu,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),yu=0),my(),document.removeEventListener("visibilitychange",On),document.removeEventListener("click",On))},xh=0,Ph=-1;function vo(){return new Promise((i,t)=>{if($t.state==="running")return i();Date.now()-xh<1e3?(clearTimeout(Ph),Ph=setTimeout(()=>{xh=Date.now(),$t.resume().then(i,t)},1e3)):(clearTimeout(Ph),xh=Date.now(),$t.resume().then(i,t))}).catch(i=>{F.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",On)})}document.addEventListener("click",On);function ly(){oc===-1&&(oc=setTimeout(()=>{$t.state==="suspended"&&(Lh=!0,U.emit("155",{isSuspended:!0}))},kh))}function my(){oc!==-1&&(clearTimeout(oc),oc=-1,Lh&&(Lh=!1,U.emit("155",{isSuspended:!1})))}function NE(){if(!ot||vE!==-1)return;let i=()=>{Te()-bE<500||($t&&$t.state==="running"&&$t.currentTime===RE&&(F.warn("context is fake running, auto resume"),$t.suspend().catch(t=>{F.warn(`context suspend failed: ${t}`)})),RE=$t.currentTime,bE=Te())};vE=setInterval(()=>{i()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&i()})}var ze=i=>$t;var yt=class{constructor(t){this.name=t;m(this,"node");m(this,"node2");m(this,"pre",new Set);m(this,"next",new Set);m(this,"context");m(this,"connectedNodes",new Set);m(this,"nextInputChannelMap",new Map);m(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){F.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),J.addSuccessEvent({key:502701})}catch(o){F.error(o),J.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),J.addSuccessEvent({key:502702})}catch(e){F.error(e),J.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},Au=class extends yt{constructor(e=256){super();this.fftSize=e;m(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,n=`M${o},${s}`;for(let a=0;a<e.length;a++)s=e[a]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},sc=class{constructor(){m(this,"source",new yt);m(this,"gain",new yt);m(this,"destination",new yt)}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(ze().createGain()),this.gain.node.gain.value=t}replaceSource(t){let e=nc(t);e&&this.source.replaceNode(e)}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}},Mn=class extends sc{constructor(e){super();this.context=e;m(this,"aec",new yt("aec"));m(this,"mixNode",new yt("mixNode"));m(this,"silentNode",new yt("silentNode"));m(this,"denoiser",new yt("denoiser"));m(this,"voiceChanger",new yt("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.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.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.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}},bu=class{constructor(){m(this,"audioContext",ze("audio-mixer"));m(this,"destination",this.audioContext.createMediaStreamDestination());m(this,"inputs",new Set);m(this,"mixWeight",0);this.destination.channelCount=1}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]}},DE=new WeakMap;function nc(i){try{let t=DE.get(i);if(t)return t;let e=ze();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return DE.set(i,t),t}catch(t){if(lt&&t instanceof Error&&t.name==="NotSupportedError")F.warn(t);else throw t}}var Er=class Er{constructor(t){m(this,"_volume",0);m(this,"_volumeDb",0);m(this,"_log");m(this,"_scriptProcessorNode",null);m(this,"_audioWorkletNode",null);m(this,"_interval",200);m(this,"ready",this.preload());let{log:e}=t;this._log=e,U.on(B.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Er.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Er.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,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Er.workletReady=Gi(Er.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Er.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Er.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Er.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||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}`),qe.logFailedEvent({userId:this._log.userId,eventType:Ar.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=ze("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Er.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,U.off(B.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};m(Er,"lastMessageTime",0),m(Er,"audioContext",ze("volume-meter")),m(Er,"workletReady");var Ru=Er,ac=class extends yt{constructor(e){super();m(this,"_volumeMeter");this._volumeMeter=new Ru(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()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}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()}}},vu=Ru;var xE=bi(ki(),1);var OE=i=>t=>t.deviceId===i;var cc=class{constructor(t,e){m(this,"kind");m(this,"type");m(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&&Pn(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(OE(o.deviceId))){let s=`${this.kind}${this.type}Added`;F.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(OE(o.deviceId))){let s=`${this.kind}${this.type}Removed`;F.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},Uh=class extends xE.EventEmitter{constructor(){super();m(this,"audioInputs",new cc(M.AUDIO,"Input"));m(this,"videoInputs",new cc(M.VIDEO,"Input"));m(this,"audioOutputs",new cc(M.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||ft.run("interval",()=>{this.update()},{delay:1e4}))}init(){xn().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 xn(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=ze())==null?void 0:r.outputLatency)*1e3>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))||this.audioInputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))}},at=ha||en?null:new Uh;function Pn(i){return i.deviceId===i.groupId&&i.groupId===""}function xn(){return A(this,arguments,function*(i=0){if(Hi()||!pu())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{Pn(r)&&(r.kind===M.AUDIO_INPUT?e.audio=!0:r.kind===M.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),e.audio&&vo()}catch(o){F.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&&Vh.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function ar(i=!1){return at.update(i?1:0).then(t=>t.audioInputs.devices)}function cr(i=!1){return at.update(i?2:0).then(t=>t.videoInputs.devices)}var ME=!1;function PE(){return A(this,null,function*(){try{ME||(ME=!0,F.info(`speakers:${(yield Co()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function Co(i=!1){return A(this,null,function*(){return(ot||_t)&&(i=!1),at.update(i?1:0).then(t=>t.audioOutputs.devices)})}var Vh=new Set;function LE(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}_${M.VIDEO_INPUT}`;return!!Vh.has(r)}function kE(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}_${M.AUDIO_INPUT}`;return!!Vh.has(r)}function Fh(i,t){return A(this,null,function*(){let r=(yield ar()).find(o=>o.deviceId===os);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function UE(s){return A(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===M.AUDIO&&i===os?yield Fh(e,r):!0})}var Cu,Bh=class extends sc{constructor(e){super();this.log=e;m(this,"volumeMeter");m(this,"volumeMeterAfter3A");m(this,"volumeDestination");m(this,"analyser",new Au);this.volumeMeter=new ac({log:this.log}),this.volumeMeterAfter3A=new ac({log:this.log}),this.volumeDestination=new yt,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},Ln=class i extends Jr{constructor(e){super(e,M.AUDIO);m(this,"_outputDeviceId");m(this,"_volume",1);m(this,"_destination",ze("player").createMediaStreamDestination());m(this,"pipeline");m(this,"volumeMeterMode","worklet");m(this,"enableVolumeControlInIOS");this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new Bh(this._log)}get duration(){var e;return Math.floor((((e=this.element)==null?void 0:e.duration)||0)*1e3)}get currentTime(){var e;return Math.floor((((e=this.element)==null?void 0:e.currentTime)||0)*1e3)}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((Cr==="15.2"||Cr==="15.3"||Cr==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Cu||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,Fe(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Cu&&(Cu=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(je.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return A(this,null,function*(){if(!(!this.track&&!this.url))return!this.pipeline.source.node&&this.track&&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.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(ze("player").createAnalyser()),PE(),Ut(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=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()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},Nu=class extends Ln{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(je.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},Du=class extends Ln{constructor(e){super(e);m(this,"_sourceElement");m(this,"_output",new yt);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(ze("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(je.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){if(this._volume=e,this.useDestination)this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`);else if(e<=1&&!ot)this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element");else{if(ot)if(this.enableVolumeControlInIOS)NE();else return;if(lt&&!this.pipeline.source.node){this._log.warn("set pipeline volume failed: no source node");return}this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),St(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&&vr&&(Cu=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var As=class extends ue{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Du:Bt}){var a;super();m(this,"id",Va());m(this,"userId","");m(this,"isRemote");m(this,"mediaType");m(this,"room");m(this,"user");m(this,"_log");m(this,"_inputTrack");m(this,"_outputTrack");m(this,"isPlayCalled");m(this,"container",null);m(this,"player");m(this,"subVideoPlayerMap");m(this,"muted",!1);m(this,"abortCtrl");m(this,"objectFit","cover");m(this,"mirror");m(this,"rotation");m(this,"isScreen",!1);m(this,"manager");m(this,"trackSettings");m(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=F.createLogger({parent:s==null?void 0:s.getLogger(),id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof Xr?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof Xr}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:s==null?void 0:s.enableVolumeControlInIOS}),this.player.on(je.PLAYER_STATE_CHANGED,d=>{if(U.emit(B.PLAYER_STATE_CHANGED,Y({track:this},d)),this.emit("player-state-changed",d),d.state==="PLAYING"&&this.room){let l=!0;for(let{remoteAudioTrack:p,remoteVideoTrack:f,remoteAuxiliaryTrack:g}of[...this.room.remotePublishedUserMap.values()])if(p.isAvailable&&!p.player.isPlaying||f.isAvailable&&!f.player.isPlaying||g.isAvailable&&!g.player.isPlaying){l=!1;break}l&&Ro()&&yE()}}),this.kind===M.VIDEO&&(this.player.on(je.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(je.LOADED_DATA),U.emit(B.VIDEO_LOADED_DATA,{track:this})}),this.player.on(je.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(je.LOADED_META_DATA)}),this.player.on(je.MEDIA_TRACK_CHANGED,d=>{var l;(l=this.subVideoPlayerMap)==null||l.forEach(p=>p.setTrack(d))}),this.player.on(je.RESIZE,d=>{this.emitFirstVideoFrameEvent(je.RESIZE),this.emit("video-size-changed",Y({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},d))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(je.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||F}get kind(){return this.mediaType===1?M.AUDIO:M.VIDEO}get isAudio(){return this.kind===M.AUDIO}get strMediaType(){return this.mediaType===4?M.VIDEO:this.mediaType===2?M.SCREEN:M.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=ut(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!O(r.muted)&&this.setPlayerMute(r.muted),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Bt&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),ut(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!O(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===M.VIDEO)&&this.setPlayerMute(!0),r&&!O(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Bt&&(this.player.setObjectFit(this.objectFit),r&&!O(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof Bt&&this.player.setContainer(o)),U.emit(B.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),ut(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!==M.VIDEO||O(e)||e===this.mirror)return;this.mirror=e;let o=this.player;r&&(o=r);let s=this.manager;if(Ye(this.mirror)){o.setViewMirror(this.mirror),!this.isRemote&&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===M.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var a;e.find(d=>n===d)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(O(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new Bt({id:this.userId||this.id,track:this.playerMediaTrack,container:n,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(Cm(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),U.emit(e?B.TRACK_MUTED:B.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){Ft(e,e).add(M.MUTE,this.onTrackMuted).add(M.UNMUTE,this.onTrackUnmuted).add(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){St(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(Cm(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){return A(this,null,function*(){var o;this.log.warn("handleAutoPlayFailed",e);let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};if(this.room&&this.room.enableAutoPlayDialog){if((Oi||Mi)&&(yield $r(100),(o=this.player)!=null&&o.isPlaying))return;wn()}else document.addEventListener("click",r,!0);U.once(B.LOCAL_TRACK_CAPTURE_SUCCESS,({track:s})=>{s.kind==="audio"&&Ro()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&r()}),this.emit("error",e)})}getVideoFrame(){return this.player instanceof Bt?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,d;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((a=this.player.element)==null?void 0:a.videoWidth)||0,s=(r==null?void 0:r.height)||((d=this.player.element)==null?void 0:d.videoHeight)||0;e===je.RESIZE&&!o&&!s||e===je.LOADED_META_DATA&&!o&&!s||(e===je.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,pr(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}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`)}};Z([et([],ue.INIT,{sync:!0})],As.prototype,"close",1);var hy=Object.prototype.hasOwnProperty,{toString:_0}=Object.prototype;function py(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(Xt(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(hy.call(i,t))return!1;return!0}}return!1}var dc=py;var fy=function(i){return A(this,null,function*(){let t=Ey(i);F.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];if(t.audio&&(e=yield ar(),F.info(`microphones: ${br(e.map(s=>_e(Y({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield cr(),F.info(`cameras: ${br(r,{keysToInclude:o})}`),!Ye(t.video)&&t.video.facingMode==="user"&&!t.video.deviceId)){let n=r.filter(a=>!a.label.includes("infrared")).find(a=>a.label.includes("facing front"));n&&(t.video.deviceId=n.deviceId,F.info(`exclude infrared camera: ${JSON.stringify(t)}`))}try{let s=yield navigator.mediaDevices.getUserMedia(t);return Eh&&s.getTracks().forEach(n=>{var d;let a=n.getCapabilities();F.info(`${n.kind} capabilities: ${br(a,{keysToInclude:Sd})}`),!O(i.echoCancellation)&&((d=a.echoCancellation)==null?void 0:d.indexOf(i.echoCancellation))===-1&&F.warn(`Invalid argument for 'echoCancellation'. Expected one of [${JSON.stringify(a.echoCancellation)}], but received '${i.echoCancellation}'`)}),t.audio&&vo(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=We({key:He.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=We({key:He.MICROPHONE_NOT_FOUND}))),new se({code:q.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},gy=Eo({retryFunction:fy,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"||i.name==="AbortError"?(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&&VE(r[0].microphoneId,!1),r[0].cameraId&&VE(r[0].cameraId,!0)},onRetrying:i=>{F.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{qe.logFailedEvent({eventType:Ar.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{qe.logSuccessEvent({eventType:Ar.GET_USER_MEDIA_RETRY}),qe.uploadEvent({log:`stat-${Ar.GET_USER_MEDIA_RETRY}-success-${i}`})}});function VE(i,t){return A(this,null,function*(){let r=(t?yield cr():yield ar()).find(o=>o.deviceId===i);r&&Xe(r.getCapabilities)&&F.warn(br(r.getCapabilities(),{keysToInclude:Sd}))})}function Ey(i){return{audio:_y(i),video:Ty(i)}}function _y(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!dc(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(Fe(i.channelCount)&&(t.channelCount=i.channelCount),(Ye(i.echoCancellation)||i.echoCancellation==="remote-only"||i.echoCancellation==="all")&&(t.echoCancellation=i.echoCancellation),Ye(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Ye(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),dc(t)?!0:t)}function Ty(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&&!dc(e)?e:(i.width&&(e.width={ideal:i.width},t&&!lt&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!lt&&(e.height.max=i.height)),lt&&Gr&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),dc(e)?!0:e)}var FE=gy;function No(i){return Pe((t,e)=>function(...r){return A(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function BE(i){return Pe((t,e)=>function(...r){return A(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function Pe(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&&F.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{F.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var Iy=0,wu=class{constructor(){m(this,"log",F.createLogger({id:`fq${++Iy}`}));m(this,"isRunning",!1);m(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,n;let r=Y({},t),o=new Promise((a,d)=>{r.resolve=a,r.reject=d});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.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()})}},HE=new WeakMap,WE=new WeakMap;function Ou(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=HE.get(this)||new wu;return HE.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function Mu(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=WE.get(this)||new Map,d=a.get(s(n))||new wu;return a.set(s(n),d),WE.set(this,a),d.push({fn:o,args:n,context:this})},r}}function xu(i,t){return Pe((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=Te();return fo(n)?n.then(d=>(t?J.addSuccessEvent({key:s,cost:Te()-a}):J.addSuccessEvent({key:s}),d)).catch(d=>{throw J.addFailedEvent({key:s,error:d}),d}):(J.addSuccessEvent({key:s}),n)}catch(n){throw J.addFailedEvent({key:s,error:n}),n}})}var Cp={};Ai(Cp,{Events:()=>gt,Inspect:()=>Nr,LastSink:()=>bs,Sink:()=>fe,Subscribe:()=>Rs,TimeoutError:()=>uc,audit:()=>iA,bindCallback:()=>Hy,bindNodeCallback:()=>Wy,buffer:()=>Dy,bufferCount:()=>Ny,bufferTime:()=>yA,call:()=>GE,catchError:()=>Ap,combineLatest:()=>qE,concat:()=>Ay,concatMap:()=>pA,concatMapTo:()=>fA,count:()=>qy,create:()=>Ve,debounce:()=>oA,debounceTime:()=>sA,defer:()=>zE,delay:()=>AA,deliver:()=>Ie,dispose:()=>Pu,elementAt:()=>nA,empty:()=>pc,every:()=>lA,exhaustMap:()=>_A,exhaustMapTo:()=>TA,expand:()=>bA,filter:()=>er,find:()=>aA,findIndex:()=>cA,first:()=>dA,fromAnimationFrame:()=>By,fromArray:()=>Py,fromEvent:()=>ye,fromEventPattern:()=>Ly,fromFetch:()=>ky,fromIterable:()=>Uy,fromPromise:()=>QE,fromReadableStream:()=>Fy,fromReader:()=>Vy,groupBy:()=>IA,identity:()=>Sy,ignoreElements:()=>Qy,iif:()=>Ry,inspect:()=>jE,interval:()=>zh,last:()=>uA,map:()=>wo,mapTo:()=>hA,max:()=>zy,merge:()=>lc,mergeMap:()=>gA,mergeMapTo:()=>EA,min:()=>Jy,never:()=>Gy,nothing:()=>Ge,of:()=>xy,pairwise:()=>mA,pipe:()=>Ae,race:()=>jh,range:()=>$y,reduce:()=>Jh,retry:()=>CA,scan:()=>yp,setAsapScheduler:()=>My,share:()=>ji,shareReplay:()=>by,skip:()=>Zy,skipUntil:()=>Ky,skipWhile:()=>Fu,startWith:()=>mc,subject:()=>At,subscribe:()=>Le,sum:()=>Xy,switchMap:()=>ui,switchMapTo:()=>qi,take:()=>Qr,takeLast:()=>Yy,takeUntil:()=>Je,takeWhile:()=>YE,tap:()=>Ds,throttle:()=>tA,throwError:()=>jy,timeInterval:()=>SA,timeout:()=>vp,timer:()=>hc,toPromise:()=>RA,toReadableStream:()=>vA,withLatestFrom:()=>Cy,zip:()=>vy});function Ge(...i){}var GE=i=>i(),Sy=i=>i;function Pu(){this.dispose()}var jE=()=>typeof __FASTRX_DEVTOOLS__!="undefined",yy=1,Nr=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new $h(t,this,this.streamId++);return gt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},bs=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=Ge,this.error=Ge,this.next=Ge,this.dispose=Ge,this.subscribe=Ge,this.doDefer()}subscribe(t){return t instanceof Nr?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(GE),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}},fe=class extends bs{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)}},Rs=class extends bs{constructor(t,e=Ge,r=Ge,o=Ge){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Ge,t instanceof Nr){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{gt.defer(s,0)}),gt.create(s),gt.pipe(s),this.sourceId=s.id,this.subscribe(t),gt.subscribe({id:s.id,end:!0}),e==Ge?this._next=n=>gt.next(s,0,n):this.next=n=>{gt.next(s,0,n),e(n)},o==Ge?this._complete=()=>gt.complete(s,0):this.complete=()=>{this.dispose(),gt.complete(s,0),o()},r==Ge?this._error=n=>gt.complete(s,0,n):this.error=n=>{this.dispose(),gt.complete(s,0,n),r(n)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Ae(i,...t){return t.reduce((e,r)=>r(e),i)}function Ve(i,t,e){if(jE()){let r=Object.defineProperties(Object.setPrototypeOf(i,Nr.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}});gt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof Nr&>.addSource(r,s)}return r}return i}function Ie(i,t){return function(...e){return r=>{if(r instanceof Nr){let o=Ve(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,gt.pipe(o),o}else return o=>r(new i(o,...e))}}}function Do(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var $h=class extends fe{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{gt.defer(this.source,this.id)})}next(t){gt.next(this.source,this.id,t),this.sink.next(t)}complete(){gt.complete(this.source,this.id),this.sink.complete()}error(t){gt.complete(this.source,this.id,t),this.sink.error(t)}},gt={addSource(i,t){Do("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){Do("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){Do("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){Do("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){Do("defer",{id:i.id,streamId:t})},pipe(i){Do("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){Do("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=yy++),Do("create",{name:i.toString(),id:i.id})}},uc=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var Lu=class extends bs{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 ji(){return i=>{let t=new Lu(i);if(i instanceof Nr){let e=Ve(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,gt.pipe(e),e}return Ve(t.add.bind(t),"share",arguments)}}function lc(...i){return Ve(t=>{let e=new fe(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function jh(...i){return Ve(t=>{let e=new Map;i.forEach(r=>{let o=new fe(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(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function Ay(...i){return Ve(t=>{let e=0,r=i.length,o=new fe(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function by(i){return t=>{let e=new Lu(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 Ry(i,t,e){return Ve(r=>i()?t(r):e(r),"iif",arguments)}function qE(...i){return Ve(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(d,l)=>{let p=new fe(t);p.next=f=>{r--,p.next=g=>{s[l]=g,r===0&&t.next(s)},p.next(f)},p.complete=n,p.subscribe(d)};i.forEach(a)},"combineLatest",arguments)}function vy(...i){return Ve(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,d)=>{let l=new fe(t),p=[];o[d]=p,l.next=f=>{p.push(f),o.every(g=>g.length)&&t.next(o.map(g=>g.shift()))},l.complete=s,l.subscribe(a)};i.forEach(n)},"zip",arguments)}function mc(...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 Hh=class extends fe{constructor(t,...e){super(t);let r=new fe(this.sink);r.next=o=>this.buffer=o,r.complete=Ge,r.subscribe(qE(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},Cy=Ie(Hh,"withLatestFrom"),Wh=class extends fe{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()}},Ny=Ie(Wh,"bufferCount"),Gh=class extends fe{constructor(t,e){super(t),this.buffer=[];let r=new fe(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Ge,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},Dy=Ie(Gh,"buffer");var wy=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(p){try{l(r.next(p))}catch(f){n(f)}}function d(p){try{l(r.throw(p))}catch(f){n(f)}}function l(p){p.done?s(p.value):o(p.value).then(a,d)}l((r=r.apply(i,t||[])).next())})};function At(i){let t=arguments,e=ji()(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=Ge,e.complete=Ge,e.error=Ge,e}function zE(i){return Ve(t=>t.subscribe(i()),"defer",arguments)}var kn={promise:i=>{Promise.resolve().then(i)},setImmediate:typeof setImmediate!="undefined"?i=>setImmediate(i):null,setTimeout:i=>setTimeout(i,0)},Oy=()=>typeof Promise!="undefined"?kn.promise:kn.setImmediate?kn.setImmediate:kn.setTimeout,qh=Oy(),JE=i=>t=>{qh(()=>i(t))},My=i=>{typeof i=="function"?qh=i:kn[i]&&(qh=kn[i])};var XE=i=>JE(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function xy(...i){return Ve(XE(i),"of",arguments)}function Py(i){return Ve(XE(i),"fromArray",arguments)}function zh(i){return Ve(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function hc(i,t){return Ve(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>clearTimeout(o);e.defer(s)},"timer",arguments)}function ku(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function Ly(i,t){return Ve(ku(i,t),"fromEventPattern",arguments)}function ye(i,t){if("on"in i&&"off"in i)return Ve(ku(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return Ve(ku(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return Ve(ku(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function QE(i){return Ve(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function ky(i,t){return Ve(zE(()=>QE(fetch(i,t))),"fromFetch",arguments)}function Uy(i){return Ve(JE(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function Vy(i){let t=e=>wy(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 Fy(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 By(){return Ve(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function $y(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 Hy(i,t,...e){return Ve(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function Wy(i,t,...e){return Ve(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function Gy(){return Ve(()=>{},"never",arguments)}function jy(i){return Ve(t=>t.error(i),"throwError",arguments)}function pc(){return Ve(i=>i.complete(),"empty",arguments)}var vs=class extends fe{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)}},Jh=Ie(vs,"reduce"),qy=i=>Ie(vs,"count")((t,e)=>i(e)?t+1:t,0),zy=()=>Ie(vs,"max")(Math.max),Jy=()=>Ie(vs,"min")(Math.min),Xy=()=>Ie(vs,"sum")((i,t)=>i+t,0);var Xh=class extends fe{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},er=Ie(Xh,"filter"),Qh=class extends fe{next(t){}},Qy=Ie(Qh,"ignoreElements"),Yh=class extends fe{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},Qr=Ie(Yh,"take"),Zh=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=Pu,r.subscribe(e)}},Je=Ie(Zh,"takeUntil"),Kh=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):(this.doDefer(),this.complete())}},YE=Ie(Kh,"takeWhile"),Yy=i=>Jh((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),ep=class extends fe{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},Zy=Ie(ep,"skip"),tp=class extends fe{constructor(t,e){super(t),t.next=Ge;let r=new fe(t);r.next=()=>{r.doDefer(),t.resetNext()},r.complete=Pu,r.subscribe(e)}},Ky=Ie(tp,"skipUntil"),rp=class extends fe{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},Fu=Ie(rp,"skipWhile"),eA={leading:!0,trailing:!1},ip=class extends fe{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)}},Uu=class extends fe{constructor(t,e,r=eA){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=Ge,this._throttle.complete(),super.complete()}},tA=Ie(Uu,"throttle"),rA={leading:!1,trailing:!0},iA=i=>Ie(Uu,"audit")(i,rA),op=class extends fe{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},Vu=class extends fe{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new op(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()}},oA=Ie(Vu,"debounce"),sA=i=>Ie(Vu,"debounceTime")(t=>hc(i)),sp=class extends fe{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.doDefer(),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()}},nA=Ie(sp,"elementAt"),aA=i=>t=>Qr(1)(Fu(e=>!i(e))(t)),np=class extends fe{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},cA=Ie(np,"findIndex"),ap=class extends fe{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.doDefer(),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()}},dA=Ie(ap,"first"),cp=class extends fe{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()}},uA=Ie(cp,"last"),dp=class extends fe{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.doDefer(),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()}},lA=Ie(dp,"every");var up=class extends fe{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))}},yp=Ie(up,"scan"),lp=class extends fe{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},mA=Ie(lp,"pairwise"),Bu=class extends fe{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},wo=Ie(Bu,"map"),hA=i=>Ie(Bu,"mapTo")(t=>i),Cs=class extends fe{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()}},Ns=class i extends fe{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===i.prototype.complete&&(this.complete=this.tryComplete),r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},$u=class extends Cs{},Hu=class extends Ns{next(t){this.subInner(t,$u),this.next=e=>{this.currentSink.dispose(),this.subInner(e,$u)}}},ui=Ie(Hu,"switchMap");function qu(i){return(t,e)=>i(()=>t,e)}var qi=qu(Ie(Hu,"switchMapTo")),mp=class extends Cs{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},Wu=class extends Ns{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(),mp),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},pA=Ie(Wu,"concatMap"),fA=qu(Ie(Wu,"concatMapTo")),hp=class extends Cs{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},Gu=class extends Ns{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,hp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},gA=Ie(Gu,"mergeMap"),EA=qu(Ie(Gu,"mergeMapTo")),pp=class extends Cs{dispose(){this.context.resetNext(),super.dispose()}},ju=class extends Ns{next(t){this.next=Ge,this.subInner(t,pp)}},_A=Ie(ju,"exhaustMap"),TA=qu(Ie(ju,"exhaustMapTo")),fp=class extends fe{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=At(),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)}},IA=Ie(fp,"groupBy"),gp=class extends fe{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}},SA=Ie(gp,"timeInterval"),Ep=class extends fe{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()}},yA=Ie(Ep,"bufferTime"),_p=class extends fe{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)}},AA=Ie(_p,"delay"),Tp=class extends fe{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},Ap=Ie(Tp,"catchError"),Ip=class extends Cs{tryComplete(){let t=this.context.inners.delete(this);super.dispose(),t&&this.context.checkComplete()}next(t){this.sink.next(t),this.context.expandValue(t)}},Sp=class extends Ns{constructor(t,e){super(t,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(t){this.sink.next(t),this.expandValue(t)}expandValue(t){let e=new Ip(this.sink,t,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(t,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},bA=Ie(Sp,"expand");var RA=()=>i=>new Promise((t,e)=>{let r;new Rs(i,o=>r=o,e,()=>t(r))}),vA=()=>i=>{let t;return new ReadableStream({start(e){t=new Rs(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},Le=(i=Ge,t=Ge,e=Ge)=>r=>new Rs(r,i,t,e),bp=class extends fe{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)}))}},Ds=Ie(bp,"tap"),Rp=class extends fe{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new uc(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},vp=Ie(Rp,"timeout"),CA=(i=1/0)=>t=>{if(t instanceof Nr){let e=Ve(r=>{let o=i,s=new fe(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,gt.pipe(e),e}else return e=>{let r=i,o=new fe(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var Un=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(Un||{}),ws=class ws extends As{constructor(e,r){super({mediaType:e,PlayerClass:r});m(this,"isRemote",!1);m(this,"deviceId");m(this,"groupId","");m(this,"label","");m(this,"sourceTrack");m(this,"enableAutoSwitchWhenRecapturing",!0);m(this,"_isRecapturing",!1);m(this,"_lastRecaptureTime",0);m(this,"_onMuteTimeoutId",-1);m(this,"_encodeCheckTimeoutId",-1);m(this,"recaptureMode",0);m(this,"profile");m(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){e.addEventListener(M.MUTE,this.onTrackMuted),e.addEventListener(M.UNMUTE,this.onTrackUnmuted),e.addEventListener(M.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===M.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(M.MUTE,this.onTrackMuted),e.removeEventListener(M.UNMUTE,this.onTrackUnmuted),e.removeEventListener(M.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e,r=!1){return A(this,null,function*(){var s;let o=this.sourceTrack;try{let n=Te();U.emit(B.LOCAL_TRACK_CAPTURE_START,{track:this});let a;e.customSource?(a=new MediaStream,a.addTrack(e.customSource)):(r||(s=this.sourceTrack)==null||s.stop(),a=yield FE(e));let d=a.getTracks()[0];return yield this.setInputMediaStreamTrack(d),e.customSource||(this.sourceTrack=d,this.updateDeviceIdInUse(),this.listenDeviceChange()),U.emit(B.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Te()-n}),a}catch(n){throw U.emit(B.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:n}),this.log.error(`getUserMedia error observed ${n}`),n}finally{r&&(o==null||o.stop())}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}get hasFlag(){var r,o;let e=cs(((r=this.room)==null?void 0:r.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&e.hasVideo||this.mediaType===1&&e.hasAudio||this.mediaType===2&&e.hasAuxiliary}publish(e,r){return A(this,null,function*(){return this.room=e,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.bindParent(e.getLogger()),yield r,this._checkPublishFlag(e)})}_checkPublishFlag(e){return new Promise((r,o)=>A(this,null,function*(){var l,p,f,g;let s=()=>o(new se({code:q.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?r():((this.state===ue.INIT||this.state==="ready")&&s(),Ae(ye(e,"local-publish-flag-changed"),er(()=>this.hasFlag),Je(lc(ye(this,ue.INIT),ye(this,"ready"))),Le(r,o,s))),(((p=(l=this.room)==null?void 0:l.networkQuality)==null?void 0:p.uplinkNetworkQuality)||0)>3)return r();let a=e.heartbeatCount,d=((g=(f=this.mediaTrack)==null?void 0:f.stats)==null?void 0:g.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout(()=>A(this,null,function*(){var R,N,C,P,X,H,ge;if((((N=(R=this.room)==null?void 0:R.networkQuality)==null?void 0:N.uplinkNetworkQuality)||0)>3||e.heartbeatCount-a<3)return r();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((C=this.mediaTrack)!=null&&C.stats){let we=this.mediaTrack.stats.totalFrames||0;we-d===0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",we)}let Ue=this.kind===M.AUDIO,W=this.stat.bytesSent>0;if(J[W?"addSuccessEvent":"addFailedEvent"]({key:Ue?503700:513702}),!Ue){let we=((X=(P=this.room)==null?void 0:P.videoCodec)==null?void 0:X.toUpperCase())||"H264",Ki={H264:513704,H265:513705,VP8:513706}[we];Ki&&J[W?"addSuccessEvent":"addFailedEvent"]({key:Ki})}if(!W){if(J.addEnum({key:Ue?503701:513703,value:fs()}),qe.uploadEvent({log:`stat-encode-failed-${this.kind}-${ps()||Li()}`,userId:this.userId}),this.log.warn(Ue?"encode failed":`${(ge=(H=this.room)==null?void 0:H.videoCodec)==null?void 0:ge.toUpperCase()} encode failed`),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield $r(5e3),this.stat.bytesSent>0||this.hasFlag)))return r();this.emit("6",this),o(new se({message:`${this.strMediaType} encode failed`,code:Ue?q.AUDIO_ENCODE_FAILED:q.VIDEO_ENCODE_FAILED}))}}}),1e4)}))}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),U.emit(B.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return A(this,null,function*(){if(this.sourceTrack&&Dn){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield UE({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),xn().then(n=>{let a=n.find(d=>{let l=d.deviceId===e;return r&&(l=l&&d.groupId===r),l});a&&this.emit("2",a)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.sourceTrack||this.kind===M.AUDIO&&!kE(this.sourceTrack)||this.kind===M.VIDEO&&!LE(this.sourceTrack)||this._isRecapturing||e&&Gr&&_t)}onTrackMuted(){if(super.onTrackMuted(),$E(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<on){setTimeout(()=>this.onTrackMuted(),on);return}this._onMuteTimeoutId=setTimeout(()=>A(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((ot||nt)&&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(Ut(ws.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<on){setTimeout(()=>this.onTrackEnded(),on);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e,r=!1){return A(this,null,function*(){var n;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let o=this.sourceTrack;r||(n=this.sourceTrack)==null||n.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let s={useExactDeviceId:!0};if(e==="user"||e==="environment")s.facingMode=e;else{let a;(this.kind==="audio"?yield ar():yield cr()).find(l=>l.deviceId===e)&&(a=e),s.deviceId=a}return this.capture(s,r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),U.emit(B.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(a=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${a.message}`),this.emit("5",a),U.emit(B.LOCAL_TRACK_RECAPTURE,{track:this,error:a})}).finally(()=>{r&&(o==null||o.stop())})})}getRecoverCaptureDeviceId(){return A(this,null,function*(){let e=this instanceof _r;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(fc.get(r)||0)+1;if(fc.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield cr()).find(n=>!fc.has(n.deviceId)):(yield ar()).find(n=>!fc.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Z([et(ue.INIT,"ready",{ignoreError:!0,sync:!0})],ws.prototype,"setStateToReady",1),Z([Ou()],ws.prototype,"capture",1),Z([et("ready","publish",{ignoreError:!0,success(){U.emit(B.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(e){var n;(n=this.room)==null||n.localTracks.delete(this);let r="error",o=e instanceof se?e:e.cause instanceof se?e.cause:e,s=!1;o instanceof se&&(o.message.includes("timeout")?r="timeout":o.code===q.API_CALL_ABORTED&&(s=!0,r="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:o}),this.log[s?"info":"error"]("publish failed",o)}}),xu(521714,!1)],ws.prototype,"publish",1),Z([Pe(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)})}),et([],"ready",{sync:!0})],ws.prototype,"unpublish",1);var Xr=ws,fc=new Map;U.on(B.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&fc.delete(i.track.deviceId)});var li=class i extends Xr{constructor(e){super(1,Nu);m(this,"mediaType",1);m(this,"volume",0);m(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});m(this,"playerMuted",!0);m(this,"pipeline");m(this,"earMonitorGainNode",new yt);m(this,"_output",new yt);m(this,"codecPipeline",[]);m(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});m(this,"mixedAudioReferenceMap",new Map);m(this,"isAudioContextLongSuspended",!1);m(this,"after3aSilenceStartTime",0);this.manager=e,this.pipeline=new Mn(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),U.on(B.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return vu.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.aec.node||this.pipeline.denoiser.node)return this.player.getInternalAudioLevelAfter3A()}updateAfter3aSilenceStartTime(e){O(e)||(e===0&&!this.after3aSilenceStartTime?this.after3aSilenceStartTime=Te():e>0&&(this.after3aSilenceStartTime=0))}setInputMediaStreamTrack(e){return A(this,null,function*(){let r=this.trackSettings||{};J.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),J.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),J.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 Ut(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(a){return A(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s},n=!1){let d=yield Ut(i.prototype,this,"capture").call(this,{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},n);return vo(),d})}switchDevice(e){return A(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===os){if(yield Fh(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),U.emit(B.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(){at&&!at.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&at.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${Un[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){mt(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield ar();o[0]?this.recapture(o[0].deviceId):r=!0}r&&at.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||(at.off("audioInputAdded",this.handleMicrophoneAdded,this),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 n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),d=!1;!O(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,d=!0),!O(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,d=!0),!O(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,d=!0),d&&(lt||_t?yield n.applyConstraints(a).catch(l=>this._log.warn("update3A failed: ",l)):this.deviceId&&(yield this.recapture(this.deviceId,!0)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&J.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),ot&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(ze().createGain()),this._output.setNode(ze().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(_t||ot))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(sr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}J.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=nc(e);if(!o)return;let s=new yt,n=ze().createGain();n.gain.value=1;let a=new yt;s.pipeTo(a).pipeTo(this.pipeline.mixNode),s.setNode(o),a.setNode(n),this.mixedAudioReferenceMap.set(r,[s,a])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),at.off("audioInputAdded",this.handleMicrophoneAdded,this),at.off("audioInputRemoved",this.handleMicrophoneRemoved,this),U.off(B.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e,r=!1){return A(this,null,function*(){try{yield Ut(i.prototype,this,"recapture").call(this,e,r)}catch(o){let s=(yield ar()).find(n=>n.deviceId!==e);if(s)yield Ut(i.prototype,this,"recapture").call(this,s.deviceId);else throw o}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r,ntp:Ri()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}get enableEncryptFrame(){return this.manager&&!!this.manager.encodePipeline[0]}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${kh/1e3} seconds, change to source audio${vr?"":", non-Safari"}`);let r=this.sourceTrack||this.mediaTrack;r&&this.setOutputMediaStreamTrack(r)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let r=this.sourceTrack||this.mediaTrack;r&&(e=r)}super.setOutputMediaStreamTrack(e)}};var Os=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 n=t;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),a==0?o++:o=0,r.push(a);break;default:o=0,r.push(a);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 n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),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 n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;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 zu=class{constructor(){m(this,"_seiMessageList",[]);m(this,"_smallSeiMessageList",[]);m(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 a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Os(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 n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((g,y)=>g+y.dataView.byteLength,0),d=new ArrayBuffer(a+t.data.byteLength),l=new DataView(d),p=new DataView(t.data),f=0;for(let g=0;g<n.length;g++)for(let y=0;y<n[g].dataView.byteLength;y++)l.setInt8(f++,n[g].dataView.getInt8(y));for(let g=0;g<t.data.byteLength;g++)l.setInt8(f++,p.getInt8(g));return t.data=d,n.length}return 0}};var Oo=class Oo extends Xr{constructor(e,r=4){super(r,Bt);m(this,"profile",Y({},fa));m(this,"avoidCropping",!1);m(this,"_scaleResolutionDownBy");m(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});m(this,"small");m(this,"isNeedToSetBandwidth");m(this,"muteImage");m(this,"manager");m(this,"_seiCodec",new zu);this.manager=e;let o=()=>{var s;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let n=Rr(((s=this.room)==null?void 0:s.sdkAppId)||0)?hd:md;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${n}`),this.setProfile(_e(Y({},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(!(!Dn||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}get hasSmall(){var e;return!!((e=this.manager)!=null&&e.hasSmall)}setMute(e){return A(this,null,function*(){var r,o,s;if(Oe(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,fillVideo:!0}),this.muteImage=e,Ut(Oo.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Ut(Oo.prototype,this,"setMute").call(this,e)})}capture(a){return A(this,arguments,function*({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){let d={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:n,customSource:s};if(d.facingMode==="environment"){let l=yield this.getDeviceIdWhenUsingBackCamera();l&&(d.cameraId=l)}return Ut(Oo.prototype,this,"capture").call(this,d)})}setProfile(e){var o;let r=this.fallbackProfile(e);if(r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(r);else{let s=Rr(((o=this.room)==null?void 0:o.sdkAppId)||0)?hd:md;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${s}`),super.setProfile(_e(Y({},this.profile),{width:1920,height:1080}))}}applyProfile(){return A(this,null,function*(){var a;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Vt===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(a=this.sourceTrack||this.mediaTrack)==null?void 0:a.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){this.isNeedToSetBandwidth=!1;let{width:d=0,height:l=0}=(this.sourceTrack||this.mediaTrack).getSettings(),p=d*l;if(n&&p&&o&&p===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:M.VIDEO,videoType:M.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return Dn&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:Od(this.settings,this.profile)}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)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),U.emit(B.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}})}getDeviceIdWhenUsingBackCamera(){return A(this,null,function*(){let e;try{if(xa&&!Sn&&_h){let o=(yield cr(!0)).map(n=>{var a;return _e(Y({},n),{capabilities:(a=n.getCapabilities)==null?void 0:a.call(n)})}).filter(n=>{var a,d;return(d=(a=n.capabilities)==null?void 0:a.facingMode)==null?void 0:d.includes("environment")}),s=o[0];o.forEach(n=>{var p,f,g,y;let{capabilities:a}=n,d=(p=a.width)!=null&&p.max&&((f=a.height)!=null&&f.max)?a.width.max*a.height.max:0,l=(g=s.capabilities.width)!=null&&g.max&&((y=s.capabilities.height)!=null&&y.max)?s.capabilities.width.max*s.capabilities.height.max:0;d>l&&(s=n)}),s!=null&&s.capabilities&&(this._log.info("use max resolution back camera",s),e=s.deviceId)}}catch(r){this._log.warn("get max res camera failed",r)}return e})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=Y({},e);return e.width*e.height<=160*120&&nt&&fr&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&Fm&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),km(Cr,"14.3")&&Um(Cr,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(fr||lt)&&!ka()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){at&&!at.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&at.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return A(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${Un[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){mt(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield cr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&at.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return A(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||(at.off("videoInputAdded",this.handleCameraAdded,this),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,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return O(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){at.off("videoInputAdded",this.handleCameraAdded,this),at.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return A(this,null,function*(){try{yield Ut(Oo.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield cr()).find(s=>s.deviceId!==e);if(o)yield Ut(Oo.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))}setRotation(e){this.manager&&(this.isScreen||O(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Z([No(function(e){this.setContentHint(e.contentHint||"motion")})],Oo.prototype,"capture",1);var _r=Oo;var wp={};Ai(wp,{REPORT_TYPE:()=>pn,buildSSOPackage:()=>Di,bytes2ms:()=>eg,calculateScaleResolutionDownNumber:()=>Od,concatArrayBuffers:()=>mg,convertObjectNumberToInt:()=>Aa,copyProperties:()=>Kf,deepClone:()=>ss,deepCloneBasic:()=>Rd,deepMerge:()=>Br,delay:()=>$r,fibonacci:()=>ns,formatedTime:()=>Cd,getConstructorName:()=>dn,getContainerFromElement:()=>dg,getEnv:()=>Xf,getFirst16Bits:()=>pg,getInternalVersion:()=>ag,getLast16Bits:()=>hg,getLoggerUrl:()=>Ni,getMediaStreamTrackInfo:()=>wd,getMuteStateFromFlag:()=>cs,getNetworkType:()=>cn,getNumNetworkType:()=>vd,getReconnectionTimeout:()=>rg,getStringByteLength:()=>ug,getTurnServer:()=>cg,getUint32Version:()=>Nd,getValueType:()=>pt,getViewListFromView:()=>mn,glog:()=>Ia,ipv4ToUint32:()=>ln,isArray:()=>ut,isAudioWorkletSupported:()=>sg,isBoolean:()=>Ye,isConstructor:()=>as,isEmpty:()=>un,isFunction:()=>Xe,isLangChinese:()=>Fr,isMediaStreamTrack:()=>ig,isNumber:()=>Fe,isObject:()=>hr,isOverseaSdkAppId:()=>Rr,isPlainObject:()=>Xt,isPortrait:()=>bm,isPromise:()=>fo,isRemoteTrack:()=>og,isRotate90Or270:()=>pr,isSetSinkIdSupported:()=>ng,isString:()=>Oe,isUndefined:()=>O,loadImage:()=>hn,loadVideo:()=>lg,ms2bytes:()=>tg,ms2samples:()=>Am,normalizeUrl:()=>ds,performanceNow:()=>Te,promiseAny:()=>Sa,samples2ms:()=>ym,setNetworkTypeFromWebRTC:()=>Zf,stringify:()=>br,stringifyIncludeValue:()=>ya,throttlePromise:()=>Dd});var DA=[-1,-1,1,-1,-1,1,1,1],wA=[0,0,1,0,0,1,1,1];var Mo=class Mo extends ue{constructor(e,r){super();this.context=e;m(this,"name");m(this,"input");m(this,"output");m(this,"texture");m(this,"ctx2d",null);m(this,"fbo");m(this,"width",0);m(this,"height",0);m(this,"x",0);m(this,"y",0);m(this,"program");m(this,"vertexShader");m(this,"fragmentShader");m(this,"totalFrames",0);m(this,"dropFrames",0);m(this,"matchInputSize",!0);m(this,"texCoordBuffer");m(this,"positionBuffer");m(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});m(this,"cost",0);m(this,"_canvas",null);m(this,"_image");m(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 Pt){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Vt!==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(wA),this.positionBuffer=this.createBuffer(DA),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.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 se({code:q.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 Nt&&this.render(e)||this.context instanceof Pt&&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 Nt){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,n,a,d,l,p){let f=!O(a)&&!O(d)&&!O(l)&&!O(p);return this.ctx2d&&e?(e instanceof ImageData?(f?this.ctx2d.putImageData(e,r,o,a,d,l,p):this.ctx2d.putImageData(e,r,o),this.emit(Mo.RENDER,this.ctx2d.canvas)):(f?this.ctx2d.drawImage(e,a,d,l,p,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(Mo.RENDER,e)),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close(),!0):!1}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var f;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:d}=this,l=Date.now(),p=(e-this.lastInfo.totalFrames)/((l-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:l,fps:p,name:a,cost:d},Y({parent:(f=this.input)==null?void 0:f.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.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};m(Mo,"RENDER","render"),Z([et(ue.INIT,"connected",{sync:!0})],Mo.prototype,"connect",1),Z([et("connected",ue.INIT,{ignoreError:!0,sync:!0})],Mo.prototype,"disconnect",1),Z([et([],"closed",{sync:!0})],Mo.prototype,"close",1);var bt=Mo;var KE=Ae(zh(250),wo(()=>performance.now()),ji()),e_=i=>t=>{let e=0,r=performance.now();Ae(KE,wo(o=>(o-r)/i>>0),er(o=>o!=e?(e=o,!0):!1))(t)},Ju=i=>t=>{let e=performance.now();Ae(KE,Fu(r=>r-e<i),Qr(1))(t)};var MA=[0,1,1,1,0,0,1,0],Ms=class extends bt{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));m(this,"_intervalId",0);m(this,"_sequence",0);m(this,"checkGLError",!1);m(this,"checkVisibilityChange");e instanceof Pt?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(MA)}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 Nt){let o=this.context.ctx.getError();o&&this.context.destroy(new se({code:q.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(),this.emit(bt.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this.state!=="closed"&&(this._intervalId&&(ft.clearTask(this._intervalId),this._intervalId=0,e===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),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)}},Vn=class extends Ms{constructor(e,r){super(e,r);m(this,"_videoTrack");m(this,"_muteOb");m(this,"_closedOb",ye(this,"closed"));m(this,"_subscription");m(this,"_canvasContainer");Number(xi)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e.canvas.captureStream().getVideoTracks(),this._muteOb=ye(this._videoTrack,"mute"),Ae(ye(this._videoTrack,"ended"),Je(this._closedOb),Le(()=>{this.context.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ae(this._muteOb,Je(this._closedOb),qi(Ju(5e3)),er(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),Le(()=>{this.context.destroy(new se({code:q.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()}},Xu=class extends Vn{render(t){var r;let e=!!((r=this.input)!=null&&r.requestFrame(t));if(this.context._canvas2d){let o=this.context._canvas2d.getContext("2d");o.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),o.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height)}return e}};var Qu=class extends Vn{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(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 gc=class extends bt{constructor(e,r){super(e,Y({name:"imageSource"},r));m(this,"_lastImage");m(this,"_totalFrames",0);m(this,"_autoResize",!1);m(this,"_canvasRendered");m(this,"videoCallbackId",0);m(this,"waitingFirstFrame",!0);m(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Vt===16&&(this._canvasRendered=At(),Ae(this._canvasRendered,mc(this._image),ui(o=>o instanceof HTMLCanvasElement?ye(o,"rendered"):pc()),Je(ye(this,"closed")),Le(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),zr()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var a;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!0}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let d=this.context.ctx;d.texSubImage2D(d.TEXTURE_2D,0,0,0,d.RGBA,d.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let d=this.context.ctx;d.texImage2D(d.TEXTURE_2D,0,d.RGBA,d.RGBA,d.UNSIGNED_BYTE,n)}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)}},Ec=class extends gc{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ae(ye(this._player,je.PLAYER_STATE_CHANGED),Je(ye(this,"closed")),er(({state:s})=>s==="PLAYING"),Le(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},Dr=class extends Ec{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new Bt({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},Yu=class extends bt{constructor(e,r,o){super(e,_e(Y({name:"textSource"},o),{create2d:!0}));m(this,"hasChange",!0);m(this,"content","");this.ctx2d.textBaseline="top",this.content=r.content||"",r.font&&(this.font=r.font),r.color&&(this.color=r.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return((e=this.ctx2d)==null?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return((e=this.ctx2d)==null?void 0:e.fillStyle)||""}render2d(e){return this.ctx2d&&this.hasChange?(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0):!1}render(e){return!1}resize(e,r){if(!this.ctx2d)return;let{color:o,font:s}=this;super.resize(e,r),this.color=o,this.font=s}drawMultilineText(e=0,r=0,o=1.2){if(!this.ctx2d)return;let s=this.ctx2d.measureText(this.content);r+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),d=(n?parseInt(n[1],10):16)*o,l=this.content.split(`
|
|
32
|
-
`);for(let
|
|
32
|
+
`,r.onclick=this.onQuestionClick.bind(this);let o=document.createElement("div");o.className=cp,o.innerText=`${_i()?"\u8BE6\u60C5 >":"Detail >"}`,o.onclick=this.onCollapseClick.bind(this);let s=t.content.firstChild,n=s.querySelector(`.${Wu}`);return n.appendChild(o),n.appendChild(r),n.appendChild(e),s}addDiaLog(){Qo()||(dp=!0,this._dialogNode=this.createDiaLog(),document.body.appendChild(this._dialogNode),this._dialogNode.onclick=this.onConfirm.bind(this),this._dialogNode.querySelector(`.${Sc}`).onclick=t=>t.stopPropagation(),this._bodyPosition=document.body.style.position,document.body.style.position="fixed",se.info("show autoplay dialog"),It.uploadEvent({log:lb}))}deleteDialog(){this._dialogNode&&(document.body.removeChild(this._dialogNode),document.body.style.position=this._bodyPosition,this._dialogNode=null,dp=!1)}onConfirm(){se.warn("confirm clicked, try resume stream"),ee.emit(ce.AUTOPLAY_DIALOG_CLICK_CONFIRM),this.deleteDialog()}onCollapseClick(){let t=this._dialogNode.querySelector(`.${sE}`);t.style.visibility=`${this._showDetail?"hidden":"visible"}`,t.style.height=`${this._showDetail?0:"fit-content"}`,this._showDetail=!this._showDetail,this._isCollapseClicked||It.uploadEvent({log:hb}),this._isCollapseClicked=!0}onQuestionClick(){window.open(dE,"_blank"),this._isQuestionClicked||It.uploadEvent({log:mb}),this._isQuestionClicked=!0}},Ic=null;function ta(){Ic||(Ic=new up)}function uE(){Ic&&(Ic.deleteDialog(),Ic=null)}var Sr=class extends Ci{constructor(e){super(e,j.VIDEO);p(this,"stat",{});p(this,"_calculateTimeout",-1);p(this,"viewMirror",!1);p(this,"objectFit");p(this,"container");p(this,"canvas");p(this,"shouldRenderAlpha",!1);p(this,"_preSize",{width:0,height:0});this.mode=e.canvas?1:0,this.container=e.container,this.canvas=e.canvas,z(e.viewMirror)||(this.viewMirror=e.viewMirror),z(e.objectFit)||(this.objectFit=e.objectFit),this.initializeElement()}get isPlaying(){var e;return this._state!=="PLAYING"||this.element&&this.element.paused?!1:((e=this.track)==null?void 0:e.readyState)==="live"&&!this.track.muted}initializeElement(){var r;let e=document.createElement(j.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,Bt&&(e.poster="noposter"),(r=this.container)==null||r.appendChild(this.elementToRender),this.bindElementEvents(),this.calculateStat()}get styleAttribute(){let e=`width: 100%; height: 100%; object-fit: ${this.objectFit};${this.shouldRenderAlpha?"":"background-color: black"};`;return this.viewMirror&&(e+="transform: scaleX(-1);"),e}setContainer(e){var r;this.container=e,this.track&&this.elementToRender&&((r=this.container)==null||r.appendChild(this.elementToRender))}bindElementEvents(){let e=super.bindElementEvents();this.handleElementEvent=this.handleElementEvent.bind(this),e&&e.add(j.ENTER_PICTURE_IN_PICTURE,this.handleElementEvent).add(j.LEAVE_PICTURE_IN_PICTURE,this.handleElementEvent).add(j.RESIZE,this.handleElementEvent)}handleTrackEvent(e){var r;return e.type===j.MUTE&&((r=this.stat)!=null&&r.fps)&&(this.stat.fps=0),super.handleTrackEvent(e)}handleElementEvent(e){var o,s,n,a,c,d;if(this.mode===2)return;super.handleElementEvent(e);let r=e.type;if(r===j.PAUSE&&(this.container&&!this.container.isConnected&&(this._log.warn(`${this.kind} player has been remove, element ID: ${this.container.id}`),Ti(500).then(()=>{var m;(m=this.container)!=null&&m.isConnected&&(this._pausedRetryCount=Cs,this._log.info(`view container ${this.container.id} is in dom, reset pausedRetryCount`))})),this._pausedRetryCount>0&&!Qo()&&!this._isPausedByUserCall&&(this._log.info(`[${Cs-this._pausedRetryCount+1}/${Cs}] ${this.kind} player auto resume when paused`),this.doResume(),this._pausedRetryCount--),this.stat.fps&&(this.stat.fps=0)),this.viewMirror&&this.element){let m=this.element.style.transform;r===j.ENTER_PICTURE_IN_PICTURE?this.element.style.transform=m.replace("scaleX(-1)",""):r===j.LEAVE_PICTURE_IN_PICTURE&&!m.includes("scaleX")&&(this.element.style.transform=`${m} scaleX(-1)`)}r===j.RESIZE&&(this._preSize.height!==((o=this.element)==null?void 0:o.videoHeight)||this._preSize.width!==((s=this.element)==null?void 0:s.videoWidth))&&(this._log.info(`video size changed to ${(n=this.element)==null?void 0:n.videoWidth}x${(a=this.element)==null?void 0:a.videoHeight}`),this._preSize.height=((c=this.element)==null?void 0:c.videoHeight)||0,this._preSize.width=((d=this.element)==null?void 0:d.videoWidth)||0,this.emit(St.RESIZE,{newWidth:this._preSize.width,newHeight:this._preSize.height}))}setCanvas(e,r=1){var o,s,n,a;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(),(n=this.container)==null||n.appendChild(e)):this.element&&((a=this.container)==null||a.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}setPoster(e){this.element&&(this.element.poster=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(St.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(Ri()&&this.element&&this._calculateTimeout<0){let e=0,r=null,o=(s,n)=>{this.stat.width=n.width,this.stat.height=n.height,r&&(this.stat.fps=Math.round((n.presentedFrames-r.presentedFrames)/(s-e)*1e3)),e=s,r=n,this._calculateTimeout=-1,this.element&&(this._calculateTimeout=setTimeout(()=>{var a;return(a=this.element)==null?void 0:a.requestVideoFrameCallback(o)},2e3))};this.element.requestVideoFrameCallback(o)}}catch(e){this._log.warn("init stat failed",e)}}};function yo(i,t){return D(this,null,function*(){if(!i.audioWorklet)return Promise.reject("audioWorklet is not supported");try{yield i.audioWorklet.addModule(t),se.info("worklet addModule success")}catch(e){throw se.info(`worklet addModule catch error. ${e.message}`),e}})}var bc;typeof AudioContext!="undefined"?bc=AudioContext:typeof webkitAudioContext!="undefined"?bc=webkitAudioContext:typeof mozAudioContext!="undefined"&&(bc=mozAudioContext);var fp=1500,Ir,lE=-1,zu=0,Ac=-1,pp=!1,hE=0,mE=-1,pE=-1;fE();function fE(){try{if(Ir)return;Ir=new bc({sampleRate:48e3}),Ir.onstatechange=()=>{se.info(`context state: ${Ir.state}${Ir.state!=="running"?` visibilityState: ${document.visibilityState}`:""}`),ra()},clearTimeout(lE)}catch(i){se.error(`initAudioContext failed: ${i} typeof AudioContextClass: ${typeof bc}`),lE=setTimeout(fE,1e3)}}var ra=()=>{Ir.state==="suspended"?(zu=Xe(),fb(),Yo(),document.addEventListener("click",ra)):Ir.state==="interrupted"?Yo():(zu&&(Se.addNumber({key:507800,value:Xe()-zu,split:[0,500,1e3,1500,2e3,3e3,4e3,5e3,1e4,3e4],max:6e4}),zu=0),gb(),document.removeEventListener("visibilitychange",ra),document.removeEventListener("click",ra))},hp=0,mp=-1;function Yo(){return new Promise((i,t)=>{if(Ir.state==="running")return i();Date.now()-hp<1e3?(clearTimeout(mp),mp=setTimeout(()=>{hp=Date.now(),Ir.resume().then(i,t)},1e3)):(clearTimeout(mp),hp=Date.now(),Ir.resume().then(i,t))}).catch(i=>{se.warn(`context resume failed: ${i}`),document.addEventListener("visibilitychange",ra)})}document.addEventListener("click",ra);function fb(){Ac===-1&&(Ac=setTimeout(()=>{Ir.state==="suspended"&&(pp=!0,ee.emit("155",{isSuspended:!0}))},fp))}function gb(){Ac!==-1&&(clearTimeout(Ac),Ac=-1,pp&&(pp=!1,ee.emit("155",{isSuspended:!1})))}function gE(){if(!Ut||pE!==-1)return;let i=()=>{Xe()-hE<500||(Ir&&Ir.state==="running"&&Ir.currentTime===mE&&(se.warn("context is fake running, auto resume"),Ir.suspend().catch(t=>{se.warn(`context suspend failed: ${t}`)})),mE=Ir.currentTime,hE=Xe())};pE=setInterval(()=>{i()},2e3),document.addEventListener("visibilitychange",()=>{document.visibilityState==="visible"&&i()})}var bt=i=>Ir;var rr=class{constructor(t){this.name=t;p(this,"node");p(this,"node2");p(this,"pre",new Set);p(this,"next",new Set);p(this,"context");p(this,"connectedNodes",new Set);p(this,"nextInputChannelMap",new Map);p(this,"_channelCount",1)}get channelCount(){return this._channelCount}set channelCount(t){this._channelCount=t,this.setChannelCount(this.node,t),this.setChannelCount(this.node2,t),this.next.forEach(e=>e.channelCount=t)}setChannelCount(t,e){!t||t instanceof ScriptProcessorNode||(t.channelCountMode="explicit",t.channelCount=e||this.channelCount||1)}setContext(t){this.context=t,this.node&&t.addMixWeight()}removeContext(){var t;this.node&&((t=this.context)==null||t.reduceMixWeight()),delete this.context}replaceNode(t){var e;if(t!==this.node)try{this.node?this._disconnect():(e=this.context)==null||e.addMixWeight(),this.node=t,this.setChannelCount(this.node),this.preNodeReconnect(),this.reconnect()}catch(r){se.error(r)}}setNode(t,e){var r;if(!this.node)try{(r=this.context)==null||r.addMixWeight(),this.node=t,this.setChannelCount(this.node),e&&(this.node2=e,this.setChannelCount(this.node2)),this.preNodeReconnect(),this.reconnect(),Se.addSuccessEvent({key:502701})}catch(o){se.error(o),Se.addFailedEvent({key:502701,error:o})}}deleteNode(){var t;if(this.node)try{this._disconnect(),delete this.node,delete this.node2,(t=this.context)==null||t.reduceMixWeight(),this.preNodeReconnect(),Se.addSuccessEvent({key:502702})}catch(e){se.error(e),Se.addFailedEvent({key:502702,error:e})}}preNodeReconnect(){this.pre.forEach(t=>{t.node?t.reconnect():t.preNodeReconnect()})}connectNext(t){this.next.forEach(e=>{let r=this.nextInputChannelMap.get(e);t._connect(e.node,r)||e.connectNext(t)})}_connect(t,e=0){return!this.node||!t?!1:((this.node2||this.node).connect(t,0,e),this.connectedNodes.add(t),!0)}_disconnect(){this.connectedNodes.forEach(t=>{var e;return(e=this.node2||this.node)==null?void 0:e.disconnect(t)}),this.connectedNodes.clear()}reconnect(){this._disconnect(),this.connectNext(this)}pipeTo(t,e=0){return this.next.add(t),t.pre.add(this),this.nextInputChannelMap.set(t,e),t}},ju=class extends rr{constructor(e=256){super();this.fftSize=e;p(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,n=`M${o},${s}`;for(let a=0;a<e.length;a++)s=e[a]/128*100/2,n+=`L${o},${s}`,o+=r;return n}},vc=class{constructor(){p(this,"source",new rr);p(this,"gain",new rr);p(this,"destination",new rr)}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(bt().createGain()),this.gain.node.gain.value=t}replaceSource(t){let e=Rc(t);e&&this.source.replaceNode(e)}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}},ia=class extends vc{constructor(e){super();this.context=e;p(this,"aec",new rr("aec"));p(this,"mixNode",new rr("mixNode"));p(this,"silentNode",new rr("silentNode"));p(this,"denoiser",new rr("denoiser"));p(this,"voiceChanger",new rr("voiceChanger"));this.source.pipeTo(this.aec).pipeTo(this.denoiser).pipeTo(this.voiceChanger).pipeTo(this.gain).pipeTo(this.destination),this.silentNode.pipeTo(this.mixNode).pipeTo(this.aec,1)}get isProcessEnabled(){return this.aec.node||this.denoiser.node||this.voiceChanger.node||this.gain.node}connect(){this.context.inputs.has(this)||(this.destination.setNode(this.context.destination),this.source.setContext(this.context),this.aec.setContext(this.context),this.silentNode.setContext(this.context),this.mixNode.setContext(this.context),this.denoiser.setContext(this.context),this.voiceChanger.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.aec.removeContext(),this.silentNode.removeContext(),this.mixNode.removeContext(),this.denoiser.removeContext(),this.voiceChanger.removeContext(),this.gain.removeContext(),this.context.inputs.delete(this))}remove(){this.gain.deleteNode(),this.aec.deleteNode(),this.silentNode.deleteNode(),this.mixNode.deleteNode(),this.denoiser.deleteNode(),this.voiceChanger.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}},qu=class{constructor(){p(this,"audioContext",bt("audio-mixer"));p(this,"destination",this.audioContext.createMediaStreamDestination());p(this,"inputs",new Set);p(this,"mixWeight",0);this.destination.channelCount=1}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]}},_E=new WeakMap;function Rc(i){try{let t=_E.get(i);if(t)return t;let e=bt();if(i instanceof HTMLAudioElement)t=e.createMediaElementSource(i);else if(i instanceof MediaStreamTrack)t=e.createMediaStreamSource(new MediaStream([i]));else return i;return _E.set(i,t),t}catch(t){if(zt&&t instanceof Error&&t.name==="NotSupportedError")se.warn(t);else throw t}}var Yr=class Yr{constructor(t){p(this,"_volume",0);p(this,"_volumeDb",0);p(this,"_log");p(this,"_scriptProcessorNode",null);p(this,"_audioWorkletNode",null);p(this,"_interval",200);p(this,"ready",this.preload());let{log:e}=t;this._log=e,ee.on(ce.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}static get isRunning(){return Date.now()-Yr.lastMessageTime<2e3}get node(){return this._audioWorkletNode||this._scriptProcessorNode}preload(){if(!Yr.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,s){t=t[0],s=s[0];if(t||s){if(this.isStop)return!1;var i=s&&s[0]?s[0].length:0,h=this.cache.length,a=(i<h?(s[0].set(this.cache.slice(0,i)),this.cache=this.cache.slice(i)):this.unmute&&s[0].set(t[0]),(i<h?s:t)[0]);if(a){let e=0;for(let t=0;t<a.length;++t)e=Math.max(Math.abs(a[t]),e);s=a.reduce((t,e)=>t+e*e,0)/a.length;this.volume=e,this.tick-=a.length,this.tick<0&&(this.tick+=this.intervalTime/1e3*sampleRate,this.port.postMessage({volume:this.volume,volumeDb:Math.max(10*Math.log10(s)+100,0)/100,cacheLen:h,outputLen:i}))}}return!0}}registerProcessor("volume-meter",VolumeMeterWorklet);';Yr.workletReady=yo(Yr.audioContext,URL.createObjectURL(new Blob([t],{type:"application/javascript"})))}return Yr.workletReady.then(()=>this.initAudioWorklet()).catch(t=>(this._log.error(`volumeMeter preload error: ${t}`),this.initScriptProcessor()))}initAudioWorklet(){if(!this._audioWorkletNode)try{this._audioWorkletNode=new AudioWorkletNode(Yr.audioContext,"volume-meter");let t=!1;this._audioWorkletNode.port.onmessage=e=>{Yr.lastMessageTime=Date.now(),this._volume=e.data.volume||0,this._volumeDb=e.data.volumeDb||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}`),It.logFailedEvent({userId:this._log.userId,eventType:ii.LOAD_WORKLET,error:t}),this.initScriptProcessor()}}initScriptProcessor(){if(!this._scriptProcessorNode)try{this._scriptProcessorNode=bt("volume-meter").createScriptProcessor(2048,1,1),this._scriptProcessorNode.onaudioprocess=t=>{Yr.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,ee.off(ce.AUDIO_LEVEL_INTERVAL,this.handleAudioLevelInterval,this)}getInternalAudioLevel(){return this._volume}getCalculatedVolume(){return parseFloat(this._volume.toFixed(2))}getVolumeDb(){return Math.floor(this._volumeDb*100)}handleAudioLevelInterval(t){var r;let{interval:e}=t;this._interval=e,(r=this._audioWorkletNode)==null||r.port.postMessage({name:"setIntervalTime",intervalTime:e})}};p(Yr,"lastMessageTime",0),p(Yr,"audioContext",bt("volume-meter")),p(Yr,"workletReady");var Xu=Yr,Cc=class extends rr{constructor(e){super();p(this,"_volumeMeter");this._volumeMeter=new Xu(e)}deleteNode(){super.deleteNode(),this._volumeMeter.destroy()}init(){return D(this,null,function*(){yield this._volumeMeter.preload(),this.setNode(this._volumeMeter.node)})}getCalculatedVolume(){return this._volumeMeter.getCalculatedVolume()}getInternalAudioLevel(){return this._volumeMeter.getInternalAudioLevel()}getVolumeDb(){return this._volumeMeter.getVolumeDb()}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()}}},Ju=Xu;var SE=Li(mo(),1);var TE=i=>t=>t.deviceId===i;var wc=class{constructor(t,e){p(this,"kind");p(this,"type");p(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&&sa(this.devices[0])){this.devices=r;return}e&&(r.forEach(o=>{if(o.deviceId&&!this.devices.find(TE(o.deviceId))){let s=`${this.kind}${this.type}Added`;se.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}}),this.devices.forEach(o=>{if(o.deviceId&&!r.find(TE(o.deviceId))){let s=`${this.kind}${this.type}Removed`;se.warn(`${s}: ${JSON.stringify(o)}`),e.emit(s,o)}})),this.devices=r}hasDevice(t){return!!this.devices.find(e=>e.deviceId===t)}},gp=class extends SE.EventEmitter{constructor(){super();p(this,"audioInputs",new wc(j.AUDIO,"Input"));p(this,"videoInputs",new wc(j.VIDEO,"Input"));p(this,"audioOutputs",new wc(j.AUDIO,"Output"));this.init(),navigator.mediaDevices&&(navigator.mediaDevices.addEventListener&&navigator.mediaDevices.addEventListener("devicechange",()=>this.update()),"ondevicechange"in navigator.mediaDevices||Jt.run("interval",()=>{this.update()},{delay:1e4}))}init(){oa().then(e=>{this.audioInputs.update(e),this.videoInputs.update(e),this.audioOutputs.update(e)})}update(){return D(this,arguments,function*(e=0){let r=yield oa(e);return this.audioInputs.update(r,this),this.videoInputs.update(r,this),this.audioOutputs.update(r,this),this})}hasBlueTooth(){var r;if(((r=bt())==null?void 0:r.outputLatency)*1e3>150)return!0;let e=["bluetooth","air","wireless","bt","tws","buds","headset","headphone"];return this.audioOutputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))||this.audioInputs.devices.some(o=>e.some(s=>o.label.toLowerCase().includes(s)))}},$t=xa||Cn?null:new gp;function sa(i){return i.deviceId===i.groupId&&i.groupId===""}function oa(){return D(this,arguments,function*(i=0){if(Eo()||!Uu())return[];let t=yield navigator.mediaDevices.enumerateDevices();if(i!==0){let e={audio:!1,video:!1};if(t.forEach(r=>{sa(r)&&(r.kind===j.AUDIO_INPUT?e.audio=!0:r.kind===j.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),e.audio&&Yo()}catch(o){se.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&&_p.add(`${e.deviceId}_${e.kind}`),e.getCapabilities&&(o.getCapabilities=()=>e.getCapabilities()),o})})}function Gr(i=!1){return $t.update(i?1:0).then(t=>t.audioInputs.devices)}function zr(i=!1){return $t.update(i?2:0).then(t=>t.videoInputs.devices)}var yE=!1;function IE(){return D(this,null,function*(){try{yE||(yE=!0,se.info(`speakers:${(yield Zo()).map(i=>` ${i.deviceId.slice(0,8)}: ${i.label}`)}`))}catch(i){}})}function Zo(i=!1){return D(this,null,function*(){return(Ut||Zt)&&(i=!1),$t.update(i?1:0).then(t=>t.audioOutputs.devices)})}var _p=new Set;function bE(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}_${j.VIDEO_INPUT}`;return!!_p.has(r)}function AE(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}_${j.AUDIO_INPUT}`;return!!_p.has(r)}function Ep(i,t){return D(this,null,function*(){let r=(yield Gr()).find(o=>o.deviceId===ws);return!t&&(r==null?void 0:r.groupId)===i||(r==null?void 0:r.groupId)===i&&r.label===t})}function vE(s){return D(this,arguments,function*({newDeviceId:i,oldDeviceId:t,oldGroupId:e,oldLabel:r,kind:o}){return i!==t?!1:o===j.AUDIO&&i===ws?yield Ep(e,r):!0})}var Qu,Tp=class extends vc{constructor(e){super();this.log=e;p(this,"volumeMeter");p(this,"volumeMeterAfter3A");p(this,"volumeDestination");p(this,"analyser",new ju);this.volumeMeter=new Cc({log:this.log}),this.volumeMeterAfter3A=new Cc({log:this.log}),this.volumeDestination=new rr,this.volumeMeter.pipeTo(this.volumeDestination)}destroy(){this.gain.deleteNode(),this.volumeMeter.deleteNode(),this.analyser.deleteNode(),this.source.deleteNode(),this.destination.deleteNode(),this.volumeDestination.deleteNode()}},na=class i extends Ci{constructor(e){super(e,j.AUDIO);p(this,"_outputDeviceId");p(this,"_volume",1);p(this,"_destination",bt("player").createMediaStreamDestination());p(this,"pipeline");p(this,"volumeMeterMode","worklet");p(this,"enableVolumeControlInIOS");this.enableVolumeControlInIOS=e.enableVolumeControlInIOS,this.mode=0,e.url&&(this.url=e.url),this.pipeline=new Tp(this._log)}get duration(){var e;return Math.floor((((e=this.element)==null?void 0:e.duration)||0)*1e3)}get currentTime(){var e;return Math.floor((((e=this.element)==null?void 0:e.currentTime)||0)*1e3)}set currentTime(e){this.element&&(this.element.currentTime=e/1e3)}getMediaStream(){return this.pipeline.stream||(this.track?new MediaStream([this.track]):null)}initializeElement(e){if((ai==="15.2"||ai==="15.3"||ai==="15.4")&&this.muted){this._log.info("audioElement is muted.");return}let o=Qu||new Audio;o.setAttribute("autoplay","autoplay"),o.srcObject=this.getMediaStream(),o.muted=this.muted,this.url&&(o.crossOrigin="anonymous",o.src=this.url),this.element=o,ft(e)&&(this.element.volume=Math.min(Math.max(e,0),1)),o===Qu&&(Qu=void 0),this.options.enableTimeupdateEvent&&(this.element.ontimeupdate=()=>this.emit(St.TIME_UPDATE,this.currentTime)),this.bindElementEvents()}play(e){return D(this,null,function*(){if(!(!this.track&&!this.url))return!this.pipeline.source.node&&this.track&&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.pipeline.volumeMeterAfter3A.init()):this.volumeMeterMode==="analyser"&&this.pipeline.analyser.setNode(bt("player").createAnalyser()),IE(),Er(i.prototype,this,"play").call(this)})}stop(e=0){this.pipeline.destroy(),super.stop(e)}setVolume(e){this._volume=e,this.element&&(this.element.volume=e)}setSinkId(e){return D(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()}getInternalAudioLevelAfter3A(){return this.pipeline.volumeMeterAfter3A.getInternalAudioLevel()}},Yu=class extends na{setTrack(t){this.track!==t&&(this.unbindTrackEvents(),this.track=t,this.emit(St.MEDIA_TRACK_CHANGED,t),t&&(this.bindTrackEvents(),this.element&&(this.element.srcObject=new MediaStream([t]))))}},Zu=class extends na{constructor(e){super(e);p(this,"_sourceElement");p(this,"_output",new rr);this.pipeline.source.pipeTo(this.pipeline.gain),this.pipeline.gain.pipeTo(this.pipeline.volumeMeter).pipeTo(this._output),this.pipeline.gain.pipeTo(this.pipeline.destination)}setOutput(){this.mode=1,this._output.setNode(bt("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(St.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){if(this._volume=e,this.useDestination)this.pipeline.setVolume(e),this._log.info(`set pipeline volume: ${e}`);else if(e<=1&&!Ut)this.element?(this._log.info(`set element volume: ${e}`),this.element.volume=e):this._log.info("set element volume: no element");else{if(Ut)if(this.enableVolumeControlInIOS)gE();else return;if(zt&&!this.pipeline.source.node){this._log.warn("set pipeline volume failed: no source node");return}this._log.info(`start set pipeline volume: ${e}`),this.pipeline.setVolume(e),this.element&&!this._sourceElement&&(this.pipeline.destination.setNode(this._destination),tr(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&&ni&&(Qu=r),this._sourceElement&&(this._sourceElement.srcObject=null,delete this._sourceElement),super.stop(e)}};var Xs=class extends Ve{constructor({userId:e,sdkAppId:r,mediaType:o,room:s,PlayerClass:n=o===1?Zu:Sr}){var a;super();p(this,"id",oc());p(this,"userId","");p(this,"isRemote");p(this,"mediaType");p(this,"room");p(this,"user");p(this,"_log");p(this,"_inputTrack");p(this,"_outputTrack");p(this,"isPlayCalled");p(this,"container",null);p(this,"player");p(this,"subVideoPlayerMap");p(this,"muted",!1);p(this,"abortCtrl");p(this,"objectFit","cover");p(this,"mirror");p(this,"rotation");p(this,"isScreen",!1);p(this,"manager");p(this,"trackSettings");p(this,"isFirstVideoFrameEmitted",!1);this.userId=e||"",this.mediaType=o,this._log=se.createLogger({parent:s==null?void 0:s.getLogger(),id:`${this.kind[0]}t`,userId:(a=s||this.room)==null?void 0:a.userId,remoteUserId:this instanceof wi?void 0:this.userId,sdkAppId:r,type:this.mediaType===2?"auxiliary":"main",isLocal:this instanceof wi}),this.player=new n({id:this.userId||this.id,track:null,muted:!1,container:null,log:this._log,enableVolumeControlInIOS:s==null?void 0:s.enableVolumeControlInIOS}),this.player.on(St.PLAYER_STATE_CHANGED,c=>{if(ee.emit(ce.PLAYER_STATE_CHANGED,be({track:this},c)),this.emit("player-state-changed",c),c.state==="PLAYING"&&this.room){let d=!0;for(let{remoteAudioTrack:m,remoteVideoTrack:l,remoteAuxiliaryTrack:f}of[...this.room.remotePublishedUserMap.values()])if(m.isAvailable&&!m.player.isPlaying||l.isAvailable&&!l.player.isPlaying||f.isAvailable&&!f.player.isPlaying){d=!1;break}d&&Qo()&&uE()}}),this.kind===j.VIDEO&&(this.player.on(St.LOADED_DATA,()=>{this.emitFirstVideoFrameEvent(St.LOADED_DATA),ee.emit(ce.VIDEO_LOADED_DATA,{track:this})}),this.player.on(St.LOADED_META_DATA,()=>{this.emitFirstVideoFrameEvent(St.LOADED_META_DATA)}),this.player.on(St.MEDIA_TRACK_CHANGED,c=>{var d;(d=this.subVideoPlayerMap)==null||d.forEach(m=>m.setTrack(c))}),this.player.on(St.RESIZE,c=>{this.emitFirstVideoFrameEvent(St.RESIZE),this.emit("video-size-changed",be({userId:this.userId,streamType:this.mediaType===2?"auxiliary":"main"},c))})),this.onTrackMuted=this.onTrackMuted.bind(this),this.onTrackUnmuted=this.onTrackUnmuted.bind(this),this.onTrackEnded=this.onTrackEnded.bind(this),this.onPlayerError&&this.player.on(St.ERROR,this.onPlayerError.bind(this))}get log(){return this._log||se}get kind(){return this.mediaType===1?j.AUDIO:j.VIDEO}get isAudio(){return this.kind===j.AUDIO}get strMediaType(){return this.mediaType===4?j.VIDEO:this.mediaType===2?j.SCREEN:j.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 D(this,null,function*(){let o=Gt(e)?e[0]:e;if(this.isPlayCalled){this.log.info(`play update options: ${JSON.stringify(r)}`),r&&!z(r.muted)&&this.setPlayerMute(r.muted),r&&!z(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Sr&&(this.player.setObjectFit(this.objectFit),this.container!==o&&o&&(this.container=o,this.player.setContainer(o)),Gt(e)&&e.length>=1&&(yield this.playSubContainer(e.slice(1),r)));return}if(r&&!z(r.muted)?this.setPlayerMute(r.muted):(!this.isRemote||this.kind===j.VIDEO)&&this.setPlayerMute(!0),r&&!z(r.objectFit)&&(this.objectFit=r.objectFit),this.player instanceof Sr&&(this.player.setObjectFit(this.objectFit),r&&!z(r.poster)&&this.player.setPoster(r.poster)),this.isPlayCalled=!0,o&&(this.container=o,this.player instanceof Sr&&this.player.setContainer(o)),ee.emit(ce.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),Gt(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!==j.VIDEO||z(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),!this.isRemote&&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 D(this,null,function*(){if(!this._outputTrack||this.kind===j.AUDIO)return;this.subVideoPlayerMap||(this.subVideoPlayerMap=new Map),this.subVideoPlayerMap.forEach((s,n)=>{var a;e.find(c=>n===c)||(s.stop(),(a=this.subVideoPlayerMap)==null||a.delete(n))});for(let[s,n]of e.entries()){let a=this.subVideoPlayerMap.get(n);a?r&&(z(r.objectFit)||a.setObjectFit(r.objectFit)):this.subVideoPlayerMap.set(n,new Sr({id:this.userId||this.id,track:this.playerMediaTrack,container:n,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(nm(this)&&!e?this.jitterBufferDelay:0)),this.subVideoPlayerMap&&this.subVideoPlayerMap.size>0&&this.subVideoPlayerMap.forEach(r=>{r.stop()}),this.container=null)}resume(){return D(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),ee.emit(e?ce.TRACK_MUTED:ce.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){yr(e,e).add(j.MUTE,this.onTrackMuted).add(j.UNMUTE,this.onTrackUnmuted).add(j.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===j.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){tr(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(nm(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){return D(this,null,function*(){var o;this.log.warn("handleAutoPlayFailed",e);let r=()=>{this.resume().then(()=>{document.removeEventListener("click",r,!0)})};if(this.room&&this.room.enableAutoPlayDialog){if((ao||co)&&(yield Ti(100),(o=this.player)!=null&&o.isPlaying))return;ta()}else document.addEventListener("click",r,!0);ee.once(ce.LOCAL_TRACK_CAPTURE_SUCCESS,({track:s})=>{s.kind==="audio"&&Qo()&&!this.player.isPlaying&&this.isRemote&&this.isAvailable&&r()}),this.emit("error",e)})}getVideoFrame(){return this.player instanceof Sr?this.player.getVideoFrame():""}emitFirstVideoFrameEvent(e){var n,a,c;if(this.isFirstVideoFrameEmitted)return;let r=(n=this.mediaTrack)==null?void 0:n.getSettings(),o=(r==null?void 0:r.width)||((a=this.player.element)==null?void 0:a.videoWidth)||0,s=(r==null?void 0:r.height)||((c=this.player.element)==null?void 0:c.videoHeight)||0;e===St.RESIZE&&!o&&!s||e===St.LOADED_META_DATA&&!o&&!s||(e===St.LOADED_DATA&&!o&&!s&&this._log.warn("the dimension of video is 0x0 in first-video-frame event"),this.isFirstVideoFrameEmitted=!0,Jr(this.rotation)&&([o,s]=[s,o]),this.emit("first-video-frame",{width:o,height:s,streamType:this.streamType,userId:this.isRemote?this.userId:""}))}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`)}};Ie([Mt([],Ve.INIT,{sync:!0})],Xs.prototype,"close",1);var _b=Object.prototype.hasOwnProperty,{toString:IO}=Object.prototype;function Eb(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(Nr(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(_b.call(i,t))return!1;return!0}}return!1}var Nc=Eb;var Tb=function(i){return D(this,null,function*(){let t=Sb(i);se.info(`getUserMedia with constraints: ${JSON.stringify(t)}`);let e=[],r=[],o=["label","deviceId","groupId"];if(t.audio&&(e=yield Gr(),se.info(`microphones: ${oi(e.map(s=>qe(be({},s),{groupId:s.groupId.substring(0,8)})),{keysToInclude:o})}`)),t.video&&(r=yield zr(),se.info(`cameras: ${oi(r,{keysToInclude:o})}`),!Nt(t.video)&&t.video.facingMode==="user"&&!t.video.deviceId)){let n=r.filter(a=>!a.label.includes("infrared")).find(a=>a.label.includes("facing front"));n&&(t.video.deviceId=n.deviceId,se.info(`exclude infrared camera: ${JSON.stringify(t)}`))}try{let s=yield navigator.mediaDevices.getUserMedia(t);return Qm&&s.getTracks().forEach(n=>{var c;let a=n.getCapabilities();se.info(`${n.kind} capabilities: ${oi(a,{keysToInclude:Gd})}`),!z(i.echoCancellation)&&((c=a.echoCancellation)==null?void 0:c.indexOf(i.echoCancellation))===-1&&se.warn(`Invalid argument for 'echoCancellation'. Expected one of [${JSON.stringify(a.echoCancellation)}], but received '${i.echoCancellation}'`)}),t.audio&&Yo(),s}catch(s){let{message:n}=s;throw s.name==="NotFoundError"&&(i.video&&r&&r.length===0&&(n=Et({key:_t.CAMERA_NOT_FOUND})),i.audio&&e&&e.length===0&&(n=Et({key:_t.MICROPHONE_NOT_FOUND}))),new Me({code:Te.INITIALIZE_FAILED,name:s.name,message:n,constraint:s.constraint})}})},yb=Ho({retryFunction:Tb,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"||i.name==="AbortError"?(s===1?(r[0].video&&(r[0].maxResolution=!1,(!Zt||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&&RE(r[0].microphoneId,!1),r[0].cameraId&&RE(r[0].cameraId,!0)},onRetrying:i=>{se.warn(`getUserMedia NotReadableError observed, retrying [${i}/3]`)},onRetryFailed:i=>{It.logFailedEvent({eventType:ii.GET_USER_MEDIA_RETRY,error:i})},onRetrySuccess:i=>{It.logSuccessEvent({eventType:ii.GET_USER_MEDIA_RETRY}),It.uploadEvent({log:`stat-${ii.GET_USER_MEDIA_RETRY}-success-${i}`})}});function RE(i,t){return D(this,null,function*(){let r=(t?yield zr():yield Gr()).find(o=>o.deviceId===i);r&&Rt(r.getCapabilities)&&se.warn(oi(r.getCapabilities(),{keysToInclude:Gd}))})}function Sb(i){return{audio:Ib(i),video:bb(i)}}function Ib(i){if(!i.audio)return!1;if(i.useTrueAsConstraint)return!0;let t={echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,sampleRate:i.sampleRate};return!Nc(i.microphoneId)&&(t.deviceId=i.useExactDeviceId?{exact:i.microphoneId}:i.microphoneId,i.useDeviceIdOnly)?t:(ft(i.channelCount)&&(t.channelCount=i.channelCount),(Nt(i.echoCancellation)||i.echoCancellation==="remote-only"||i.echoCancellation==="all")&&(t.echoCancellation=i.echoCancellation),Nt(i.noiseSuppression)&&!i.noiseSuppression&&(t.noiseSuppression=!1),Nt(i.autoGainControl)&&!i.autoGainControl&&(t.autoGainControl=!1),Nc(t)?!0:t)}function bb(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&&!Nc(e)?e:(i.width&&(e.width={ideal:i.width},t&&!zt&&(e.width.max=i.width)),i.height&&(e.height={ideal:i.height},t&&!zt&&(e.height.max=i.height)),zt&&Ii&&i.width&&i.height&&i.width*i.height<352*288&&(e.width=i.width,e.height=i.height),i.frameRate&&(e.frameRate=i.frameRate),Nc(e)?!0:e)}var CE=yb;function Ko(i){return ut((t,e)=>function(...r){return D(this,null,function*(){let o=yield t.apply(this,r);return yield i.call(this,...r),o})})}function wE(i){return ut((t,e)=>function(...r){return D(this,null,function*(){try{return yield t.apply(this,r)}catch(o){i.call(this,o)}})})}function ut(i){return function(t,e,r){return r.value=i(r.value,e),r}}var NE=(()=>{let i=!1,t=document.visibilityState;return()=>{document.visibilityState!==t&&se.info(`visibility change: ${document.visibilityState}`),!i&&(document.addEventListener("visibilitychange",()=>{se.info(`visibility change: ${document.visibilityState}`),t=document.visibilityState}),i=!0)}})();var Ab=0,Ku=class{constructor(){p(this,"log",se.createLogger({id:`fq${++Ab}`}));p(this,"isRunning",!1);p(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,n;let r=be({},t),o=new Promise((a,c)=>{r.resolve=a,r.reject=c});return r.promise=o,e?this.length<=1?this.queue.push(r):(n=(s=this.lastQueueItem)==null?void 0:s.promise)==null||n.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()})}},DE=new WeakMap,OE=new WeakMap;function el(i=!1){return function(t,e,r){let o=r.value;return r.value=function(...s){let n=DE.get(this)||new Ku;return DE.set(this,n),n.push({fn:o,args:s,context:this},i)},r}}function tl(i){return function(t,e,r){let o=r.value,s=n=>i(...n);return r.value=function(...n){let a=OE.get(this)||new Map,c=a.get(s(n))||new Ku;return a.set(s(n),c),OE.set(this,a),c.push({fn:o,args:n,context:this})},r}}function rl(i,t){return ut((e,r)=>function(...o){let s=i;try{let n=e.apply(this,o),a=Xe();return $o(n)?n.then(c=>(t?Se.addSuccessEvent({key:s,cost:Xe()-a}):Se.addSuccessEvent({key:s}),c)).catch(c=>{throw Se.addFailedEvent({key:s,error:c}),c}):(Se.addSuccessEvent({key:s}),n)}catch(n){throw Se.addFailedEvent({key:s,error:n}),n}})}var af={};eo(af,{Events:()=>Qt,Inspect:()=>ci,LastSink:()=>Js,Sink:()=>Ge,Subscribe:()=>Qs,TimeoutError:()=>Dc,audit:()=>aA,bindCallback:()=>jb,bindNodeCallback:()=>qb,buffer:()=>xb,bufferCount:()=>Mb,bufferTime:()=>RA,call:()=>ME,catchError:()=>rf,combineLatest:()=>kE,concat:()=>Cb,concatMap:()=>EA,concatMapTo:()=>TA,count:()=>Qb,create:()=>mt,debounce:()=>cA,debounceTime:()=>dA,defer:()=>LE,delay:()=>CA,deliver:()=>Je,dispose:()=>il,elementAt:()=>uA,empty:()=>kc,every:()=>fA,exhaustMap:()=>IA,exhaustMapTo:()=>bA,expand:()=>wA,filter:()=>Ur,find:()=>lA,findIndex:()=>hA,first:()=>mA,fromAnimationFrame:()=>Gb,fromArray:()=>Vb,fromEvent:()=>Qe,fromEventPattern:()=>Bb,fromFetch:()=>$b,fromIterable:()=>Fb,fromPromise:()=>VE,fromReadableStream:()=>Wb,fromReader:()=>Hb,groupBy:()=>AA,identity:()=>vb,ignoreElements:()=>eA,iif:()=>Nb,inspect:()=>xE,interval:()=>Rp,last:()=>pA,map:()=>ts,mapTo:()=>_A,max:()=>Yb,merge:()=>Oc,mergeMap:()=>yA,mergeMapTo:()=>SA,min:()=>Zb,never:()=>Xb,nothing:()=>Tt,of:()=>Ub,pairwise:()=>gA,pipe:()=>Ye,race:()=>Ap,range:()=>zb,reduce:()=>Cp,retry:()=>OA,scan:()=>tf,setAsapScheduler:()=>Pb,share:()=>So,shareReplay:()=>wb,skip:()=>rA,skipUntil:()=>iA,skipWhile:()=>cl,startWith:()=>Mc,subject:()=>ir,subscribe:()=>lt,sum:()=>Kb,switchMap:()=>Wi,switchMapTo:()=>Io,take:()=>Ni,takeLast:()=>tA,takeUntil:()=>At,takeWhile:()=>BE,tap:()=>en,throttle:()=>sA,throwError:()=>Jb,timeInterval:()=>vA,timeout:()=>nf,timer:()=>xc,toPromise:()=>NA,toReadableStream:()=>DA,withLatestFrom:()=>Ob,zip:()=>Db});function Tt(...i){}var ME=i=>i(),vb=i=>i;function il(){this.dispose()}var xE=()=>typeof __FASTRX_DEVTOOLS__!="undefined",Rb=1,ci=class extends Function{toString(){return`${this.name}(${this.args.length?[...this.args].join(", "):""})`}subscribe(t){let e=new yp(t,this,this.streamId++);return Qt.subscribe({id:this.id,end:!1},{nodeId:e.sourceId,streamId:e.id}),this(e),e}},Js=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=Tt,this.error=Tt,this.next=Tt,this.dispose=Tt,this.subscribe=Tt,this.doDefer()}subscribe(t){return t instanceof ci?t.subscribe(this):t(this),this}get bindSubscribe(){return t=>this.subscribe(t)}doDefer(){this.defers.forEach(ME),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}},Ge=class extends Js{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)}},Qs=class extends Js{constructor(t,e=Tt,r=Tt,o=Tt){if(super(),this._next=e,this._error=r,this._complete=o,this.then=Tt,t instanceof ci){let s={toString:()=>"subscribe",id:0,source:t};this.defer(()=>{Qt.defer(s,0)}),Qt.create(s),Qt.pipe(s),this.sourceId=s.id,this.subscribe(t),Qt.subscribe({id:s.id,end:!0}),e==Tt?this._next=n=>Qt.next(s,0,n):this.next=n=>{Qt.next(s,0,n),e(n)},o==Tt?this._complete=()=>Qt.complete(s,0):this.complete=()=>{this.dispose(),Qt.complete(s,0),o()},r==Tt?this._error=n=>Qt.complete(s,0,n):this.error=n=>{this.dispose(),Qt.complete(s,0,n),r(n)}}else this.subscribe(t)}next(t){this._next(t)}complete(){this.dispose(),this._complete()}error(t){this.dispose(),this._error(t)}};function Ye(i,...t){return t.reduce((e,r)=>r(e),i)}function mt(i,t,e){if(xE()){let r=Object.defineProperties(Object.setPrototypeOf(i,ci.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}});Qt.create(r);for(let o=0;o<e.length;o++){let s=e[o];typeof s=="function"&&s instanceof ci&&Qt.addSource(r,s)}return r}return i}function Je(i,t){return function(...e){return r=>{if(r instanceof ci){let o=mt(s=>{let n=new i(s,...e);n.sourceId=o.id,n.subscribe(r)},t,arguments);return o.source=r,Qt.pipe(o),o}else return o=>r(new i(o,...e))}}}function es(i,t){window.postMessage({source:"fastrx-devtools-backend",payload:{event:i,payload:t}})}var yp=class extends Ge{constructor(t,e,r){super(t),this.source=e,this.id=r,this.sourceId=t.sourceId,this.defer(()=>{Qt.defer(this.source,this.id)})}next(t){Qt.next(this.source,this.id,t),this.sink.next(t)}complete(){Qt.complete(this.source,this.id),this.sink.complete()}error(t){Qt.complete(this.source,this.id,t),this.sink.error(t)}},Qt={addSource(i,t){es("addSource",{id:i.id,name:i.toString(),source:{id:t.id,name:t.toString()}})},next(i,t,e){es("next",{id:i.id,streamId:t,data:e&&e.toString()})},subscribe({id:i,end:t},e){es("subscribe",{id:i,end:t,sink:{nodeId:e&&e.nodeId,streamId:e&&e.streamId}})},complete(i,t,e){es("complete",{id:i.id,streamId:t,err:e?e.toString():null})},defer(i,t){es("defer",{id:i.id,streamId:t})},pipe(i){es("pipe",{name:i.toString(),id:i.id,source:{id:i.source.id,name:i.source.toString()}})},update(i){es("update",{id:i.id,name:i.toString()})},create(i){i.id||(i.id=Rb++),es("create",{name:i.toString(),id:i.id})}},Dc=class extends Error{constructor(t){super(`timeout after ${t}ms`),this.timeout=t}};var ol=class extends Js{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 So(){return i=>{let t=new ol(i);if(i instanceof ci){let e=mt(r=>{t.add(r)},"share",arguments);return t.sourceId=e.id,e.source=i,Qt.pipe(e),e}return mt(t.add.bind(t),"share",arguments)}}function Oc(...i){return mt(t=>{let e=new Ge(t),r=i.length;e.complete=()=>{--r===0&&t.complete()},i.forEach(e.bindSubscribe)},"merge",arguments)}function Ap(...i){return mt(t=>{let e=new Map;i.forEach(r=>{let o=new Ge(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(n=>n.dispose()),o.resetNext(),o.resetComplete(),o.next(s)}}),i.forEach(r=>e.get(r).subscribe(r))},"race",arguments)}function Cb(...i){return mt(t=>{let e=0,r=i.length,o=new Ge(t);o.complete=()=>{e<r&&!o.disposed?(o.doDefer(),o.subscribe(i[e++])):t.complete()},o.complete()},"concat",arguments)}function wb(i){return t=>{let e=new ol(t),r=[];return e.next=function(o){r.push(o),r.length>i&&r.shift(),this.sinks.forEach(s=>s.next(o))},mt(o=>{o.defer(()=>e.remove(o)),r.forEach(s=>o.next(s)),e.add(o)},"shareReplay",arguments)}}function Nb(i,t,e){return mt(r=>i()?t(r):e(r),"iif",arguments)}function kE(...i){return mt(t=>{let e=i.length,r=e,o=e,s=new Array(e),n=()=>{--o===0&&t.complete()},a=(c,d)=>{let m=new Ge(t);m.next=l=>{r--,m.next=f=>{s[d]=f,r===0&&t.next(s)},m.next(l)},m.complete=n,m.subscribe(c)};i.forEach(a)},"combineLatest",arguments)}function Db(...i){return mt(t=>{let e=i.length,r=e,o=new Array(e),s=()=>{--r===0&&t.complete()},n=(a,c)=>{let d=new Ge(t),m=[];o[c]=m,d.next=l=>{m.push(l),o.every(f=>f.length)&&t.next(o.map(f=>f.shift()))},d.complete=s,d.subscribe(a)};i.forEach(n)},"zip",arguments)}function Mc(...i){return t=>mt((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 Ge{constructor(t,...e){super(t);let r=new Ge(this.sink);r.next=o=>this.buffer=o,r.complete=Tt,r.subscribe(kE(...e))}next(t){this.buffer&&this.sink.next([t,...this.buffer])}},Ob=Je(Sp,"withLatestFrom"),Ip=class extends Ge{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()}},Mb=Je(Ip,"bufferCount"),bp=class extends Ge{constructor(t,e){super(t),this.buffer=[];let r=new Ge(t);r.next=o=>{t.next(this.buffer),this.buffer=[]},r.complete=Tt,r.subscribe(e)}next(t){this.buffer.push(t)}complete(){this.buffer.length&&this.sink.next(this.buffer),super.complete()}},xb=Je(bp,"buffer");var kb=function(i,t,e,r){function o(s){return s instanceof e?s:new e(function(n){n(s)})}return new(e||(e=Promise))(function(s,n){function a(m){try{d(r.next(m))}catch(l){n(l)}}function c(m){try{d(r.throw(m))}catch(l){n(l)}}function d(m){m.done?s(m.value):o(m.value).then(a,c)}d((r=r.apply(i,t||[])).next())})};function ir(i){let t=arguments,e=So()(mt(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=Tt,e.complete=Tt,e.error=Tt,e}function LE(i){return mt(t=>t.subscribe(i()),"defer",arguments)}var aa={promise:i=>{Promise.resolve().then(i)},setImmediate:typeof setImmediate!="undefined"?i=>setImmediate(i):null,setTimeout:i=>setTimeout(i,0)},Lb=()=>typeof Promise!="undefined"?aa.promise:aa.setImmediate?aa.setImmediate:aa.setTimeout,vp=Lb(),PE=i=>t=>{vp(()=>i(t))},Pb=i=>{typeof i=="function"?vp=i:aa[i]&&(vp=aa[i])};var UE=i=>PE(t=>{for(let e=0;!t.disposed&&e<i.length;e++)t.next(i[e]);t.complete()});function Ub(...i){return mt(UE(i),"of",arguments)}function Vb(i){return mt(UE(i),"fromArray",arguments)}function Rp(i){return mt(t=>{let e=0,r=setInterval(()=>t.next(e++),i);return t.defer(()=>{clearInterval(r)}),"interval"},"interval",arguments)}function xc(i,t){return mt(e=>{let r=0,o=setTimeout(()=>{if(e.removeDefer(s),e.next(r++),t){let n=setInterval(()=>e.next(r++),t);e.defer(()=>{clearInterval(n)})}else e.complete()},i),s=()=>clearTimeout(o);e.defer(s)},"timer",arguments)}function sl(i,t){return e=>{let r=o=>e.next(o);e.defer(()=>t(r)),i(r)}}function Bb(i,t){return mt(sl(i,t),"fromEventPattern",arguments)}function Qe(i,t){if("on"in i&&"off"in i)return mt(sl(e=>i.on(t,e),e=>i.off(t,e)),"fromEvent",arguments);if("addListener"in i&&"removeListener"in i)return mt(sl(e=>i.addListener(t,e),e=>i.removeListener(t,e)),"fromEvent",arguments);if("addEventListener"in i)return mt(sl(e=>i.addEventListener(t,e),e=>i.removeEventListener(t,e)),"fromEvent",arguments);throw"target is not a EventDispachter"}function VE(i){return mt(t=>{i.then(t.next.bind(t),t.error.bind(t))},"fromPromise",arguments)}function $b(i,t){return mt(LE(()=>VE(fetch(i,t))),"fromFetch",arguments)}function Fb(i){return mt(PE(t=>{try{for(let e of i){if(t.disposed)return;t.next(e)}t.complete()}catch(e){t.error(e)}}),"fromIterable",arguments)}function Hb(i){let t=e=>kb(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 mt(e=>{t(e)},"fromReader",arguments)}function Wb(i){return mt(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 Gb(){return mt(i=>{let t=requestAnimationFrame(function e(r){i.disposed||(i.next(r),t=requestAnimationFrame(e))});i.defer(()=>cancelAnimationFrame(t))},"fromAnimationFrame",arguments)}function zb(i,t){return mt((e,r=i,o=t+i)=>{for(;r<o&&!e.disposed;)e.next(r++);return e.complete(),"range"},"range",arguments)}function jb(i,t,...e){return mt(r=>{let o=e.concat(s=>(r.next(s),r.complete()));i.apply(t,o)},"bindCallback",arguments)}function qb(i,t,...e){return mt(r=>{let o=e.concat((s,n)=>s?r.error(s):(r.next(n),r.complete()));i.apply(t,o)},"bindNodeCallback",arguments)}function Xb(){return mt(()=>{},"never",arguments)}function Jb(i){return mt(t=>t.error(i),"throwError",arguments)}function kc(){return mt(i=>i.complete(),"empty",arguments)}var Ys=class extends Ge{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)}},Cp=Je(Ys,"reduce"),Qb=i=>Je(Ys,"count")((t,e)=>i(e)?t+1:t,0),Yb=()=>Je(Ys,"max")(Math.max),Zb=()=>Je(Ys,"min")(Math.min),Kb=()=>Je(Ys,"sum")((i,t)=>i+t,0);var wp=class extends Ge{constructor(t,e,r){super(t),this.filter=e,this.thisArg=r}next(t){this.filter.call(this.thisArg,t)&&this.sink.next(t)}},Ur=Je(wp,"filter"),Np=class extends Ge{next(t){}},eA=Je(Np,"ignoreElements"),Dp=class extends Ge{constructor(t,e){super(t),this.count=e}next(t){this.sink.next(t),--this.count===0&&(this.doDefer(),this.complete())}},Ni=Je(Dp,"take"),Op=class extends Ge{constructor(t,e){super(t);let r=new Ge(t);r.next=()=>{r.doDefer(),t.complete()},r.complete=il,r.subscribe(e)}},At=Je(Op,"takeUntil"),Mp=class extends Ge{constructor(t,e){super(t),this.f=e}next(t){this.f(t)?this.sink.next(t):(this.doDefer(),this.complete())}},BE=Je(Mp,"takeWhile"),tA=i=>Cp((t,e)=>(t.push(e),t.length>i&&t.shift(),t),[]),xp=class extends Ge{constructor(t,e){super(t),this.count=e}next(t){--this.count===0&&(this.next=super.next)}},rA=Je(xp,"skip"),kp=class extends Ge{constructor(t,e){super(t),t.next=Tt;let r=new Ge(t);r.next=()=>{r.doDefer(),t.resetNext()},r.complete=il,r.subscribe(e)}},iA=Je(kp,"skipUntil"),Lp=class extends Ge{constructor(t,e){super(t),this.f=e}next(t){this.f(t)||(this.next=super.next,this.next(t))}},cl=Je(Lp,"skipWhile"),oA={leading:!0,trailing:!1},Pp=class extends Ge{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)}},nl=class extends Ge{constructor(t,e,r=oA){super(t),this.durationSelector=e,this.config=r,this._throttle=new Pp(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=Tt,this._throttle.complete(),super.complete()}},sA=Je(nl,"throttle"),nA={leading:!1,trailing:!0},aA=i=>Je(nl,"audit")(i,nA),Up=class extends Ge{next(){this.complete()}complete(){this.dispose(),this.sink.next(this.last)}},al=class extends Ge{constructor(t,e){super(t),this.durationSelector=e,this._debounce=new Up(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()}},cA=Je(al,"debounce"),dA=i=>Je(al,"debounceTime")(t=>xc(i)),Vp=class extends Ge{constructor(t,e,r){super(t),this.count=e,this.defaultValue=r}next(t){this.count--===0&&(this.defaultValue=t,this.doDefer(),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()}},uA=Je(Vp,"elementAt"),lA=i=>t=>Ni(1)(cl(e=>!i(e))(t)),Bp=class extends Ge{constructor(t,e){super(t),this.f=e,this.i=0}next(t){this.f(t)?(this.sink.next(this.i++),this.doDefer(),this.complete()):++this.i}},hA=Je(Bp,"findIndex"),$p=class extends Ge{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.doDefer(),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()}},mA=Je($p,"first"),Fp=class extends Ge{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()}},pA=Je(Fp,"last"),Hp=class extends Ge{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.doDefer(),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()}},fA=Je(Hp,"every");var Wp=class extends Ge{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))}},tf=Je(Wp,"scan"),Gp=class extends Ge{constructor(){super(...arguments),this.hasLast=!1}next(t){this.hasLast?this.sink.next([this.last,t]):this.hasLast=!0,this.last=t}},gA=Je(Gp,"pairwise"),dl=class extends Ge{constructor(t,e,r){super(t),this.mapper=e,this.thisArg=r}next(t){super.next(this.mapper.call(this.thisArg,t))}},ts=Je(dl,"map"),_A=i=>Je(dl,"mapTo")(t=>i),Zs=class extends Ge{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()}},Ks=class i extends Ge{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===i.prototype.complete&&(this.complete=this.tryComplete),r.complete=r.tryComplete,r.subscribe(this.makeSource(t,this.index++))}complete(){this.sink.complete()}tryComplete(){this.currentSink.resetComplete(),this.dispose()}},ul=class extends Zs{},ll=class extends Ks{next(t){this.subInner(t,ul),this.next=e=>{this.currentSink.dispose(),this.subInner(e,ul)}}},Wi=Je(ll,"switchMap");function fl(i){return(t,e)=>i(()=>t,e)}var Io=fl(Je(ll,"switchMapTo")),zp=class extends Zs{tryComplete(){this.dispose(),this.context.sources.length?this.context.subNext():(this.context.resetNext(),this.context.resetComplete())}},hl=class extends Ks{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(),zp),this.disposed&&this.sources.length===0&&this.currentSink.resetComplete()}tryComplete(){this.sources.length===0&&this.currentSink.resetComplete(),this.dispose()}},EA=Je(hl,"concatMap"),TA=fl(Je(hl,"concatMapTo")),jp=class extends Zs{tryComplete(){this.context.inners.delete(this),super.dispose(),this.context.inners.size===0&&this.context.resetComplete()}},ml=class extends Ks{constructor(){super(...arguments),this.inners=new Set}next(t){this.subInner(t,jp),this.inners.add(this.currentSink)}tryComplete(){this.inners.size===1?this.inners.forEach(t=>t.resetComplete()):this.dispose()}},yA=Je(ml,"mergeMap"),SA=fl(Je(ml,"mergeMapTo")),qp=class extends Zs{dispose(){this.context.resetNext(),super.dispose()}},pl=class extends Ks{next(t){this.next=Tt,this.subInner(t,qp)}},IA=Je(pl,"exhaustMap"),bA=fl(Je(pl,"exhaustMapTo")),Xp=class extends Ge{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=ir(),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)}},AA=Je(Xp,"groupBy"),Jp=class extends Ge{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}},vA=Je(Jp,"timeInterval"),Qp=class extends Ge{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()}},RA=Je(Qp,"bufferTime"),Yp=class extends Ge{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)}},CA=Je(Yp,"delay"),Zp=class extends Ge{constructor(t,e){super(t),this.selector=e}error(t){this.dispose(),this.selector(t)(this.sink)}},rf=Je(Zp,"catchError"),Kp=class extends Zs{tryComplete(){let t=this.context.inners.delete(this);super.dispose(),t&&this.context.checkComplete()}next(t){this.sink.next(t),this.context.expandValue(t)}},ef=class extends Ks{constructor(t,e){super(t,e),this.project=e,this.inners=new Set,this.sourceCompleted=!1}next(t){this.sink.next(t),this.expandValue(t)}expandValue(t){let e=new Kp(this.sink,t,this);this.currentSink=e,this.complete=this.tryComplete,e.complete=e.tryComplete,this.inners.add(e),e.subscribe(this.makeSource(t,this.index++))}complete(){this.sourceCompleted=!0,this.checkComplete()}checkComplete(){this.sourceCompleted&&this.inners.size===0&&(this.resetComplete(),super.complete())}tryComplete(){this.sourceCompleted=!0,this.checkComplete()}},wA=Je(ef,"expand");var NA=()=>i=>new Promise((t,e)=>{let r;new Qs(i,o=>r=o,e,()=>t(r))}),DA=()=>i=>{let t;return new ReadableStream({start(e){t=new Qs(i,e.enqueue.bind(e),e.error.bind(e),e.close.bind(e))},cancel(){t.dispose()}})},lt=(i=Tt,t=Tt,e=Tt)=>r=>new Qs(r,i,t,e),of=class extends Ge{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)}))}},en=Je(of,"tap"),sf=class extends Ge{constructor(t,e){super(t),this.timeout=e,this.id=setTimeout(()=>this.error(new Dc(this.timeout)),this.timeout)}next(t){super.next(t),clearTimeout(this.id),this.next=super.next}dispose(){clearTimeout(this.id),super.dispose()}},nf=Je(sf,"timeout"),OA=(i=1/0)=>t=>{if(t instanceof ci){let e=mt(r=>{let o=i,s=new Ge(r);s.error=n=>{o-- >0?s.subscribe(t):r.error(n)},s.sourceId=e.id,s.subscribe(t)},"retry",[i]);return e.source=t,Qt.pipe(e),e}else return e=>{let r=i,o=new Ge(e);o.error=s=>{r-- >0?t(o):e.error(s)},t(o)}};var ca=(e=>(e[e.AUTO_SWITCH_NEW_DEVICE=0]="AUTO_SWITCH_NEW_DEVICE",e[e.WAIT_CURRENT_DEVICE=1]="WAIT_CURRENT_DEVICE",e))(ca||{}),tn=class tn extends Xs{constructor(e,r){super({mediaType:e,PlayerClass:r});p(this,"isRemote",!1);p(this,"deviceId");p(this,"groupId","");p(this,"label","");p(this,"sourceTrack");p(this,"enableAutoSwitchWhenRecapturing",!0);p(this,"_isRecapturing",!1);p(this,"_lastRecaptureTime",0);p(this,"_onMuteTimeoutId",-1);p(this,"_encodeCheckTimeoutId",-1);p(this,"recaptureMode",0);p(this,"profile");p(this,"retryEncodeFailed")}get enableEncodeFrame(){return!1}get isPublishing(){return this.state.toString()==="publishing"}get isPublished(){return this.state==="publish"}get isUseCustomSource(){return this.sourceTrack&&this.mediaTrack&&this.sourceTrack!==this.mediaTrack}encodeFrame(e,r){throw new Error("Method not implemented.")}installTrackEvent(e){e.addEventListener(j.MUTE,this.onTrackMuted),e.addEventListener(j.UNMUTE,this.onTrackUnmuted),e.addEventListener(j.ENDED,this.onTrackEnded),e.muted&&this.onTrackMuted(),e.readyState===j.ENDED&&this.onTrackEnded()}uninstallTrackEvent(e){e.removeEventListener(j.MUTE,this.onTrackMuted),e.removeEventListener(j.UNMUTE,this.onTrackUnmuted),e.removeEventListener(j.ENDED,this.onTrackEnded)}setStateToReady(){}capture(e,r=!1){return D(this,null,function*(){var s;let o=this.sourceTrack;try{let n=Xe();ee.emit(ce.LOCAL_TRACK_CAPTURE_START,{track:this});let a;e.customSource?(a=new MediaStream,a.addTrack(e.customSource)):(r||(s=this.sourceTrack)==null||s.stop(),a=yield CE(e));let c=a.getTracks()[0];return yield this.setInputMediaStreamTrack(c),e.customSource||(this.sourceTrack=c,this.updateDeviceIdInUse(),this.listenDeviceChange()),ee.emit(ce.LOCAL_TRACK_CAPTURE_SUCCESS,{track:this,cost:Xe()-n}),a}catch(n){throw ee.emit(ce.LOCAL_TRACK_CAPTURE_FAILED,{track:this,error:n}),this.log.error(`getUserMedia error observed ${n}`),n}finally{r&&(o==null||o.stop())}})}setOutputMediaStreamTrack(e){var r;if(super.setOutputMediaStreamTrack(e),this.setStateToReady(),this.isPublishing||this.isPublished)return(r=this.room)==null?void 0:r.replaceTrack(this)}get hasFlag(){var r,o;let e=Ms(((r=this.room)==null?void 0:r.localPublishFlag)||0,((o=this.room)==null?void 0:o.userId)||"");return this.mediaType===4&&e.hasVideo||this.mediaType===1&&e.hasAudio||this.mediaType===2&&e.hasAuxiliary}publish(e,r){return D(this,null,function*(){return this.room=e,this.room.localTracks.add(this),this.emit("4",{mediaType:this.strMediaType,state:"starting",prevState:"stopped"}),this.userId=e.userId,this._log.bindParent(e.getLogger()),yield r,this._checkPublishFlag(e)})}_checkPublishFlag(e){return new Promise((r,o)=>D(this,null,function*(){var d,m,l,f;let s=()=>o(new Me({code:Te.API_CALL_ABORTED,message:"publish aborted"}));if(this.hasFlag||this.muted?r():((this.state===Ve.INIT||this.state==="ready")&&s(),Ye(Qe(e,"local-publish-flag-changed"),Ur(()=>this.hasFlag),At(Oc(Qe(this,Ve.INIT),Qe(this,"ready"))),lt(r,o,s))),(((m=(d=this.room)==null?void 0:d.networkQuality)==null?void 0:m.uplinkNetworkQuality)||0)>3)return r();let a=e.heartbeatCount,c=((f=(l=this.mediaTrack)==null?void 0:l.stats)==null?void 0:f.totalFrames)||0;this._encodeCheckTimeoutId=setTimeout(()=>D(this,null,function*(){var T,E,y,v,M,w,H;if((((E=(T=this.room)==null?void 0:T.networkQuality)==null?void 0:E.uplinkNetworkQuality)||0)>3||e.heartbeatCount-a<3)return r();if((this.isPublished||this.isPublishing)&&this.isMediaTrackActive){if((y=this.mediaTrack)!=null&&y.stats){let $=this.mediaTrack.stats.totalFrames||0;$-c===0&&this.log.warn("capture totalFrames is 0 during encode check, totalFrames",$)}let B=this.kind===j.AUDIO,P=this.stat.bytesSent>0;if(Se[P?"addSuccessEvent":"addFailedEvent"]({key:B?503700:513702}),!B){let $=((M=(v=this.room)==null?void 0:v.videoCodec)==null?void 0:M.toUpperCase())||"H264",de={H264:513704,H265:513705,VP8:513706}[$];de&&Se[P?"addSuccessEvent":"addFailedEvent"]({key:de})}if(!P){if(Se.addEnum({key:B?503701:513703,value:Bs()}),It.uploadEvent({log:`stat-encode-failed-${this.kind}-${Vs()||ho()}`,userId:this.userId}),this.log.warn(B?"encode failed":`${(H=(w=this.room)==null?void 0:w.videoCodec)==null?void 0:H.toUpperCase()} encode failed`),this.retryEncodeFailed&&(this.log.warn("retry encode"),yield this.retryEncodeFailed(this),this.stat.bytesSent>0||this.hasFlag||(yield Ti(5e3),this.stat.bytesSent>0||this.hasFlag)))return r();this.emit("6",this),o(new Me({message:`${this.strMediaType} encode failed`,code:B?Te.AUDIO_ENCODE_FAILED:Te.VIDEO_ENCODE_FAILED}))}}}),1e4)}))}unpublish(){this.room&&this.room.localTracks.delete(this),this.log.info("unpublish"),ee.emit(ce.LOCAL_TRACK_UNPUBLISHED,{track:this})}updateDeviceIdInUse(){return D(this,null,function*(){if(this.sourceTrack&&ea){let{deviceId:e,groupId:r}=this.sourceTrack.getSettings(),{label:o}=this.sourceTrack;(yield vE({newDeviceId:e,oldDeviceId:this.deviceId,oldGroupId:this.groupId,oldLabel:this.label,kind:this.kind}))||(this.deviceId=e,this.label=o,r&&(this.groupId=r),oa().then(n=>{let a=n.find(c=>{let d=c.deviceId===e;return r&&(d=d&&c.groupId===r),d});a&&this.emit("2",a)}))}})}setProfile(e){this.log.info("setProfile",e),Object.assign(this.profile,e)}isNeedToRecapture(e=!1){return!(!this.deviceId||!this.sourceTrack||this.kind===j.AUDIO&&!AE(this.sourceTrack)||this.kind===j.VIDEO&&!bE(this.sourceTrack)||this._isRecapturing||e&&Ii&&Zt)}onTrackMuted(){if(super.onTrackMuted(),NE(),!!this.isNeedToRecapture(!0)){if(Date.now()-this._lastRecaptureTime<Dn){setTimeout(()=>this.onTrackMuted(),Dn);return}this._onMuteTimeoutId=setTimeout(()=>D(this,null,function*(){var e;if((e=this.sourceTrack)!=null&&e.muted){if((Ut||Bt)&&document.visibilityState!=="visible")return;this.recapture(yield this.getRecoverCaptureDeviceId())}}),5e3)}}onTrackUnmuted(){super.onTrackUnmuted(),this._onMuteTimeoutId>0&&clearTimeout(this._onMuteTimeoutId)}onTrackEnded(){return D(this,null,function*(){if(Er(tn.prototype,this,"onTrackEnded").call(this),!!this.isNeedToRecapture()&&this.recaptureMode===0){if(Date.now()-this._lastRecaptureTime<Dn){setTimeout(()=>this.onTrackEnded(),Dn);return}this.emit("7"),this.recapture(yield this.getRecoverCaptureDeviceId())}})}recapture(e,r=!1){return D(this,null,function*(){var n;if(this._isRecapturing||!this.sourceTrack)return;this.log.warn("recapture trying");let o=this.sourceTrack;r||(n=this.sourceTrack)==null||n.stop(),this._isRecapturing=!0,this._lastRecaptureTime=Date.now();let s={useExactDeviceId:!0};if(e==="user"||e==="environment")s.facingMode=e;else{let a;(this.kind==="audio"?yield Gr():yield zr()).find(d=>d.deviceId===e)&&(a=e),s.deviceId=a}return this.capture(s,r).then(()=>{this._isRecapturing=!1,this.log.warn("recapture success"),this.emit("1",{deviceId:this.deviceId}),ee.emit(ce.LOCAL_TRACK_RECAPTURE,{track:this})}).catch(a=>{this._isRecapturing=!1,this.log.warn(`recapture failed ${a.message}`),this.emit("5",a),ee.emit(ce.LOCAL_TRACK_RECAPTURE,{track:this,error:a})}).finally(()=>{r&&(o==null||o.stop())})})}getRecoverCaptureDeviceId(){return D(this,null,function*(){let e=this instanceof Zr;if(e&&this.facingMode)return this.facingMode;let{deviceId:r}=this;if(r){let o=(Lc.get(r)||0)+1;if(Lc.set(r,o),o>=3&&this.enableAutoSwitchWhenRecapturing){let s=e?(yield zr()).find(n=>!Lc.has(n.deviceId)):(yield Gr()).find(n=>!Lc.has(n.deviceId));s&&(this.log.warn(`${r} capture fail ${o} times, change new ${s.deviceId}`),r=s.deviceId)}}return r})}stopCapture(){var e;this.sourceTrack&&(this.sourceTrack.stop(),this.uninstallTrackEvent(this.sourceTrack)),this._inputTrack&&this.uninstallTrackEvent(this._inputTrack),(e=this.manager)==null||e.removeInput(this)}close(){super.close(),this.stopCapture()}};Ie([Mt(Ve.INIT,"ready",{ignoreError:!0,sync:!0})],tn.prototype,"setStateToReady",1),Ie([el()],tn.prototype,"capture",1),Ie([Mt("ready","publish",{ignoreError:!0,success(){ee.emit(ce.LOCAL_TRACK_PUBLISHED,{track:this,room:this.room}),this.emit("4",{mediaType:this.strMediaType,state:"started",prevState:"starting"}),this.log.info("published")},fail(e){var n;(n=this.room)==null||n.localTracks.delete(this);let r="error",o=e instanceof Me?e:e.cause instanceof Me?e.cause:e,s=!1;o instanceof Me&&(o.message.includes("timeout")?r="timeout":o.code===Te.API_CALL_ABORTED&&(s=!0,r="api-call")),this.emit("4",{mediaType:this.strMediaType,state:"stopped",prevState:"starting",reason:r,error:o}),this.log[s?"info":"error"]("publish failed",o)}}),rl(521714,!1)],tn.prototype,"publish",1),Ie([ut(e=>function(){return D(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)})}),Mt([],"ready",{sync:!0})],tn.prototype,"unpublish",1);var wi=tn,Lc=new Map;ee.on(ce.SWITCH_DEVICE_SUCCESS,i=>{i.track.deviceId&&Lc.delete(i.track.deviceId)});var Gi=class i extends wi{constructor(e){super(1,Yu);p(this,"mediaType",1);p(this,"volume",0);p(this,"profile",{echoCancellation:!0,autoGainControl:!0,noiseSuppression:!0,sampleRate:48e3,channelCount:1,bitrate:40});p(this,"playerMuted",!0);p(this,"pipeline");p(this,"earMonitorGainNode",new rr);p(this,"_output",new rr);p(this,"codecPipeline",[]);p(this,"stat",{bytesSent:0,packetsSent:0,audioLevel:0,totalAudioEnergy:0});p(this,"mixedAudioReferenceMap",new Map);p(this,"isAudioContextLongSuspended",!1);p(this,"after3aSilenceStartTime",0);this.manager=e,this.pipeline=new ia(e),this.pipeline.source.pipeTo(this.player.pipeline.volumeMeter),this.pipeline.gain.pipeTo(this.earMonitorGainNode).pipeTo(this._output),this.pipeline.gain.pipeTo(this.player.pipeline.volumeMeterAfter3A),this.handleMicrophoneAdded=this.handleMicrophoneAdded.bind(this),this.handleMicrophoneRemoved=this.handleMicrophoneRemoved.bind(this),ee.on(ce.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this)}get dbVolume(){return Ju.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}getAudioLevel(){let e=(this.volume||super.getAudioLevel())*this.captureVolume;return e>1?1:e}getInternalAudioLevelAfter3A(){if(this.pipeline.aec.node||this.pipeline.denoiser.node)return this.player.getInternalAudioLevelAfter3A()}updateAfter3aSilenceStartTime(e){z(e)||(e===0&&!this.after3aSilenceStartTime?this.after3aSilenceStartTime=Xe():e>0&&(this.after3aSilenceStartTime=0))}setInputMediaStreamTrack(e){return D(this,null,function*(){let r=this.trackSettings||{};Se.addEnum({key:501701,value:r.channelCount||0,useUV:!1}),Se.addEnum({key:501702,value:r.sampleRate||0,useUV:!1}),Se.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 Er(i.prototype,this,"setInputMediaStreamTrack").call(this,e),this.updatePlayingState(!!e)})}capture(a){return D(this,arguments,function*({deviceId:e,customSource:r,useExactDeviceId:o=!0,retryWhenExactFailed:s},n=!1){let c=yield Er(i.prototype,this,"capture").call(this,{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},n);return Yo(),c})}switchDevice(e){return D(this,null,function*(){if(this.mediaTrack){if(this.deviceId===e&&!this.isUseCustomSource)if(e===ws){if(yield Ep(this.groupId,this.label))return}else return;try{this.log.info(`switchDevice audio to: ${e}`),this.sourceTrack&&this.sourceTrack.stop(),yield this.capture({deviceId:e,useExactDeviceId:!0,retryWhenExactFailed:!1}),ee.emit(ce.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(){$t&&!$t.listeners("audioInputRemoved").includes(this.handleMicrophoneRemoved)&&$t.on("audioInputRemoved",this.handleMicrophoneRemoved,this)}handleMicrophoneRemoved(e){return D(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${ca[this.recaptureMode]}. Current microphone is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){jt(this.userId,{eventId:2003,param1:6,streamType:1});let o=yield Gr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&$t.on("audioInputAdded",this.handleMicrophoneAdded,this)}})}handleMicrophoneAdded(e){this.recaptureMode===1&&e.deviceId!==this.deviceId||($t.off("audioInputAdded",this.handleMicrophoneAdded,this),this.log.warn(`microphone added: ${JSON.stringify(e)}`),this.recapture(e.deviceId))}update3A(s){return D(this,arguments,function*({echoCancellation:e,noiseSuppression:r,autoGainControl:o}){let n=this.sourceTrack||this.mediaTrack;if(!n)return;let a=n.getConstraints(),c=!1;!z(e)&&e!==this.profile.echoCancellation&&(this.profile.echoCancellation=e,a.echoCancellation=e,c=!0),!z(r)&&r!==this.profile.noiseSuppression&&(this.profile.noiseSuppression=r,a.noiseSuppression=r,c=!0),!z(o)&&o!==this.profile.autoGainControl&&(this.profile.autoGainControl=o,a.autoGainControl=o,c=!0),c&&(zt||Zt?yield n.applyConstraints(a).catch(d=>this._log.warn("update3A failed: ",d)):this.deviceId&&(yield this.recapture(this.deviceId,!0)))})}get captureVolume(){return this.pipeline.volume}setCaptureVolume(e){this.pipeline.setVolume(e/100),this.pipeline.gain.node&&Se.addEnum({key:502700,value:2})}setAudioVolume(e){super.setAudioVolume(0),Ut&&this.player.setMuted(!0),this.earMonitorGainNode.node||(this.earMonitorGainNode.setNode(bt().createGain()),this._output.setNode(bt().destination)),this.earMonitorGainNode.node.gain.value=e}enableTrackANS(e){return this.update3A({noiseSuppression:e})}enableTrackAEC(e){if(this.sourceTrack&&!(Zt||Ut))return this.update3A({echoCancellation:e})}addDenoiser(e){var r;if(Fr<=92&&((r=this.trackSettings)==null?void 0:r.sampleRate)!==48e3){this._log.warn("denoiser only support sampleRate 48000 before chrome 93");return}Se.addEnum({key:502700,value:1}),this.pipeline.denoiser.setNode(e),this.enableTrackANS(!1)}mixAudioReference(e,r){if(this.mixedAudioReferenceMap.has(r))return;this.log.info(`mixAudioReference() => ${r}`);let o=Rc(e);if(!o)return;let s=new rr,n=bt().createGain();n.gain.value=1;let a=new rr;s.pipeTo(a).pipeTo(this.pipeline.mixNode),s.setNode(o),a.setNode(n),this.mixedAudioReferenceMap.set(r,[s,a])}unMixAudioReference(e){let[r,o]=this.mixedAudioReferenceMap.get(e)||[];r&&(this.log.info(`unMixAudioReference() => ${e}`),r.deleteNode(),o==null||o.deleteNode(),this.mixedAudioReferenceMap.delete(e))}setAudioReferenceVolume(e,r){let[o,s]=this.mixedAudioReferenceMap.get(e)||[];s!=null&&s.node&&(s.node.gain.value=r/100,this.log.info(`setAudioReferenceVolume() => ${e} ${s.node.gain.value}`))}addAudioProcessor(e,r,o){this.pipeline.silentNode.setNode(o),this.pipeline.mixNode.setNode(r),this.pipeline.aec.setNode(e)}removeDenoiser(e){if(this.pipeline.denoiser.node===e)return this.pipeline.denoiser.deleteNode(),this.enableTrackANS(!0)}removeAudioProcessor(e){this.pipeline.aec.node===e&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode())}close(){this.mixedAudioReferenceMap.forEach(([e,r])=>{e.deleteNode(),r.deleteNode()}),this.mixedAudioReferenceMap.clear(),this.pipeline.remove(),this.earMonitorGainNode.deleteNode(),this._output.deleteNode(),$t.off("audioInputAdded",this.handleMicrophoneAdded,this),$t.off("audioInputRemoved",this.handleMicrophoneRemoved,this),ee.off(ce.AUDIO_CONTEXT_LONG_SUSPENDED,this.handleAudioContextLongSuspended,this),super.close()}recapture(e,r=!1){return D(this,null,function*(){try{yield Er(i.prototype,this,"recapture").call(this,e,r)}catch(o){let s=(yield Gr()).find(n=>n.deviceId!==e);if(s)yield Er(i.prototype,this,"recapture").call(this,s.deviceId);else throw o}})}encodeFrame(e){return this.manager?this.manager.encodePipeline.reduceRight((r,o)=>o?o({frame:r,ntp:to()}):r,e):e}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}get enableEncryptFrame(){return this.manager&&!!this.manager.encodePipeline[0]}handleAudioContextLongSuspended({isSuspended:e}){if(this.pipeline.isProcessEnabled)if(e){this.isAudioContextLongSuspended=!0,this.log.warn(`context has suspended for ${fp/1e3} seconds, change to source audio${ni?"":", non-Safari"}`);let r=this.sourceTrack||this.mediaTrack;r&&this.setOutputMediaStreamTrack(r)}else this.isAudioContextLongSuspended=!1,this.log.warn("context has resumed, change to processed audio"),this.pipeline.track&&this.setOutputMediaStreamTrack(this.pipeline.track)}setOutputMediaStreamTrack(e){if(this.isAudioContextLongSuspended){let r=this.sourceTrack||this.mediaTrack;r&&(e=r)}super.setOutputMediaStreamTrack(e)}};var rn=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 n=t;n<=e;n++){let a=this.dataView.getInt8(n);switch(a){case 0:case 1:case 2:case 3:o===2&&(r.push(3),o=0),a==0?o++:o=0,r.push(a);break;default:o=0,r.push(a);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 n=t;n<=e;n++)switch(this.dataView.getInt8(n)){case 0:o++,r.push(this.dataView.getInt8(n));break;case 3:o!==2&&r.push(this.dataView.getInt8(n)),o=0;break;default:r.push(this.dataView.getInt8(n)),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 n=this.dataView.getUint8(s);if(e++,n===255)t+=255;else{t+=n;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 gl=class{constructor(){p(this,"_seiMessageList",[]);p(this,"_smallSeiMessageList",[]);p(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 a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new rn(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 n=r.splice(0,s).reverse().map(this.encodeSEINalu.bind(this)),a=n.reduce((f,g)=>f+g.dataView.byteLength,0),c=new ArrayBuffer(a+t.data.byteLength),d=new DataView(c),m=new DataView(t.data),l=0;for(let f=0;f<n.length;f++)for(let g=0;g<n[f].dataView.byteLength;g++)d.setInt8(l++,n[f].dataView.getInt8(g));for(let f=0;f<t.data.byteLength;f++)d.setInt8(l++,m.getInt8(f));return t.data=c,n.length}return 0}};var rs=class rs extends wi{constructor(e,r=4){super(r,Sr);p(this,"profile",be({},La));p(this,"avoidCropping",!1);p(this,"_scaleResolutionDownBy");p(this,"stat",{bytesSent:0,packetsSent:0,framesEncoded:0,framesSent:0,frameWidth:0,frameHeight:0,fpsCapture:0,framesCaptured:0});p(this,"small");p(this,"isNeedToSetBandwidth");p(this,"muteImage");p(this,"manager");p(this,"_seiCodec",new gl);this.manager=e;let o=()=>{var s;if(this.isAllowed2k4k(this.profile))this.room&&this.settings.height>=1440&&this.state==="publish"&&this.room.sendAbilityStatus({"2k4k":1});else{let n=si(((s=this.room)==null?void 0:s.sdkAppId)||0)?Pd:Ld;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${n}`),this.setProfile(qe(be({},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(!(!ea||!this.mediaTrack))return this.mediaTrack.getSettings().facingMode}get contentHint(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)||""}get isQosClearFirst(){var e;return((e=this._inputTrack)==null?void 0:e.contentHint)==="detail"}get hasSmall(){var e;return!!((e=this.manager)!=null&&e.hasSmall)}setMute(e){return D(this,null,function*(){var r,o,s;if(nt(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,fillVideo:!0}),this.muteImage=e,Er(rs.prototype,this,"setMute").call(this,!1)}else this.muteImage&&(yield(s=this.manager)==null?void 0:s.deleteWatermark("mute"),this.muteImage=void 0),Er(rs.prototype,this,"setMute").call(this,e)})}capture(a){return D(this,arguments,function*({deviceId:e,facingMode:r,useExactDeviceId:o=!0,customSource:s,retryWhenExactFailed:n=!0}){let c={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:n,customSource:s};if(c.facingMode==="environment"){let d=yield this.getDeviceIdWhenUsingBackCamera();d&&(c.cameraId=d)}return Er(rs.prototype,this,"capture").call(this,c)})}setProfile(e){var o;let r=this.fallbackProfile(e);if(r.bitrate&&(this.isNeedToSetBandwidth=r.bitrate!==this.profile.bitrate),this.isAllowed2k4k(this.profile))super.setProfile(r);else{let s=si(((o=this.room)==null?void 0:o.sdkAppId)||0)?Pd:Ld;this.log.warn(`Resolution is reset to 1080p, need to upgrade ability here ${s}`),super.setProfile(qe(be({},this.profile),{width:1920,height:1080}))}}applyProfile(){return D(this,null,function*(){var a;if(!this.mediaTrack)return;let{width:e=0,height:r=0}=(this.sourceTrack||this.mediaTrack).getSettings(),o=e*r,s=this.settings,n=s.height!==this.profile.height||s.width!==this.profile.width||s.frameRate!==this.profile.frameRate;if(n&&(Tr===16&&this.deviceId?yield this.recapture(this.deviceId):(yield(a=this.sourceTrack||this.mediaTrack)==null?void 0:a.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){this.isNeedToSetBandwidth=!1;let{width:c=0,height:d=0}=(this.sourceTrack||this.mediaTrack).getSettings(),m=c*d;if(n&&m&&o&&m===o){this.log.warn("set bandwidth failed: resolution is not changed");return}return this.room.setBandWidth({bandwidth:this.profile.bitrate,type:j.VIDEO,videoType:j.BIG})}})}get settings(){let e={width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate},r=this.sourceTrack||this.mediaTrack;return ea&&r&&Object.assign(e,r.getSettings()),e}get scaleResolutionDownBy(){return this._scaleResolutionDownBy?this._scaleResolutionDownBy:eu(this.settings,this.profile)}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 D(this,null,function*(){try{if(!this.isNeedToSwitchDevice(e)&&!this.isUseCustomSource)return;let r={useExactDeviceId:!0,retryWhenExactFailed:!1};e==="user"||e==="environment"?r.facingMode=e:r.deviceId=e,this.sourceTrack&&this.sourceTrack.stop(),yield this.capture(r),ee.emit(ce.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}})}getDeviceIdWhenUsingBackCamera(){return D(this,null,function*(){let e;try{if(Ka&&!qn&&Ym){let o=(yield zr(!0)).map(n=>{var a;return qe(be({},n),{capabilities:(a=n.getCapabilities)==null?void 0:a.call(n)})}).filter(n=>{var a,c;return(c=(a=n.capabilities)==null?void 0:a.facingMode)==null?void 0:c.includes("environment")}),s=o[0];o.forEach(n=>{var m,l,f,g;let{capabilities:a}=n,c=(m=a.width)!=null&&m.max&&((l=a.height)!=null&&l.max)?a.width.max*a.height.max:0,d=(f=s.capabilities.width)!=null&&f.max&&((g=s.capabilities.height)!=null&&g.max)?s.capabilities.width.max*s.capabilities.height.max:0;c>d&&(s=n)}),s!=null&&s.capabilities&&(this._log.info("use max resolution back camera",s),e=s.deviceId)}}catch(r){this._log.warn("get max res camera failed",r)}return e})}updateSmallConfig(e){var o,s;this._log.info(`update small stream config: ${JSON.stringify(e)}`);let r=!this.small;this.small=this.fallbackProfile(e,!0),(o=this.manager)==null||o.update(),r&&((s=this.room)==null||s.enableSmall(!0)),this.log.info("update small stream config success")}fallbackProfile(e,r=!1){let o=e.width>e.height,s=be({},e);return e.width*e.height<=160*120&&Bt&&Qr&&(this.log.warn(`${r?"small ":""}resolution is ${e.width}*${e.height}, fallback to 240*180 for android chrome`),s.width=o?240:180,s.height=o?180:240,s.bitrate=Math.max(e.bitrate,150)),e.width*e.height>1280*720&&Em&&(s.width=o?1280:720,s.height=o?720:1280,this.log.warn("reset to 1280 * 720 on iOS 13~14")),fm(ai,"14.3")&&gm(ai,"14.0",!0)&&this.on("7",()=>{let n=this.profile.width>this.profile.height;this.profile.width*this.profile.height>640*480?(this.profile.width=n?640:480,this.profile.height=n?480:640,this.log.warn("reduce the resolution to 480p on iOS 14.0 ~ 14.2")):this.profile.width*this.profile.height>640*360&&(this.profile.width=n?640:360,this.profile.height=n?360:640,this.log.warn("reduce the resolution to 360p on iOS 14.0 ~ 14.2"))}),!r&&this.avoidCropping&&(Qr||zt)&&!rc()&&e.width*e.height<=640*360&&e.width/e.height===16/9&&(this._scaleResolutionDownBy=1280/e.width,e.width=1280,e.height=720,this.log.warn(`capture 720p, scale: ${this._scaleResolutionDownBy}`)),s}stopSmall(){var e,r;this.small&&(delete this.small,(e=this.manager)==null||e.update(),(r=this.room)==null||r.enableSmall(!1))}listenDeviceChange(){$t&&!$t.listeners("videoInputRemoved").includes(this.handleCameraRemoved)&&$t.on("videoInputRemoved",this.handleCameraRemoved,this)}handleCameraRemoved(e){return D(this,null,function*(){if(e.deviceId===this.deviceId){let r=this.recaptureMode===1;if(this.log.warn(`RecaptureMode: ${ca[this.recaptureMode]}. Current camera is lost: ${JSON.stringify(e)}`),this.recaptureMode===0){jt(this.userId,{eventId:2003,param1:7,streamType:2});let o=yield zr();o[0]?this.recapture(o[0].deviceId):r=!0}r&&$t.on("videoInputAdded",this.handleCameraAdded,this)}})}handleCameraAdded(e){return D(this,null,function*(){this.recaptureMode===1&&e.deviceId!==this.deviceId||($t.off("videoInputAdded",this.handleCameraAdded,this),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,n)=>n?n({frame:s,mediaType:o}):s,e)}get enableEncodeFrame(){return this.manager?this.manager.encodePipeline.some(e=>e):!1}play(e,r){return z(this.mirror)&&!this.isScreen&&this.setMirror("view"),super.play(e,r)}close(){$t.off("videoInputAdded",this.handleCameraAdded,this),$t.off("videoInputRemoved",this.handleCameraRemoved,this),super.close()}recapture(e){return D(this,null,function*(){try{yield Er(rs.prototype,this,"recapture").call(this,e)}catch(r){let o=(yield zr()).find(s=>s.deviceId!==e);if(o)yield Er(rs.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))}setRotation(e){this.manager&&(this.isScreen||z(e)||e!==this.rotation&&(this.rotation=e,this.manager.rotation=e))}};Ie([Ko(function(e){this.setContentHint(e.contentHint||"motion")})],rs.prototype,"capture",1);var Zr=rs;var uf={};eo(uf,{REPORT_TYPE:()=>$n,buildSSOPackage:()=>so,bytes2ms:()=>Hg,calculateScaleResolutionDownNumber:()=>eu,concatArrayBuffers:()=>e_,convertObjectNumberToInt:()=>Wa,copyProperties:()=>Fg,deepClone:()=>Ns,deepCloneBasic:()=>Xd,deepMerge:()=>Ei,delay:()=>Ti,fibonacci:()=>Ds,formatedTime:()=>Qd,getConstructorName:()=>Ln,getContainerFromElement:()=>Yg,getEnv:()=>Ug,getFirst16Bits:()=>r_,getInternalVersion:()=>Jg,getLast16Bits:()=>t_,getLoggerUrl:()=>oo,getMediaStreamTrackInfo:()=>Kd,getMuteStateFromFlag:()=>Ms,getNetworkType:()=>kn,getNumNetworkType:()=>Jd,getReconnectionTimeout:()=>Gg,getStringByteLength:()=>Zg,getTurnServer:()=>Qg,getUint32Version:()=>Yd,getValueType:()=>Xt,getViewListFromView:()=>Vn,glog:()=>$a,ipv4ToUint32:()=>Un,isArray:()=>Gt,isAudioWorkletSupported:()=>qg,isBoolean:()=>Nt,isConstructor:()=>Os,isEmpty:()=>Pn,isFunction:()=>Rt,isLangChinese:()=>_i,isMediaStreamTrack:()=>zg,isNumber:()=>ft,isObject:()=>Xr,isOverseaSdkAppId:()=>si,isPlainObject:()=>Nr,isPortrait:()=>im,isPromise:()=>$o,isRemoteTrack:()=>jg,isRotate90Or270:()=>Jr,isSetSinkIdSupported:()=>Xg,isString:()=>nt,isUndefined:()=>z,loadImage:()=>Bn,loadVideo:()=>Kg,ms2bytes:()=>Wg,ms2samples:()=>rm,normalizeUrl:()=>xs,performanceNow:()=>Xe,promiseAny:()=>Fa,samples2ms:()=>tm,setNetworkTypeFromWebRTC:()=>$g,stringify:()=>oi,stringifyIncludeValue:()=>Ha,throttlePromise:()=>Zd});var xA=[-1,-1,1,-1,-1,1,1,1],kA=[0,0,1,0,0,1,1,1];var is=class is extends Ve{constructor(e,r){super();this.context=e;p(this,"name");p(this,"input");p(this,"output");p(this,"texture");p(this,"ctx2d",null);p(this,"fbo");p(this,"width",0);p(this,"height",0);p(this,"x",0);p(this,"y",0);p(this,"program");p(this,"vertexShader");p(this,"fragmentShader");p(this,"totalFrames",0);p(this,"dropFrames",0);p(this,"matchInputSize",!0);p(this,"texCoordBuffer");p(this,"positionBuffer");p(this,"lastInfo",{name:"",timestamp:0,totalFrames:0,x:0,y:0,width:0,height:0,fps:0});p(this,"cost",0);p(this,"_canvas",null);p(this,"_image");p(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 mr){e.ctx&&r.create2d&&(typeof OffscreenCanvas=="function"&&Tr!==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(kA),this.positionBuffer=this.createBuffer(xA),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.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 Me({code:Te.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 cr&&this.render(e)||this.context instanceof mr&&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 cr){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,n,a,c,d,m){let l=!z(a)&&!z(c)&&!z(d)&&!z(m);return this.ctx2d&&e?(e instanceof ImageData?(l?this.ctx2d.putImageData(e,r,o,a,c,d,m):this.ctx2d.putImageData(e,r,o),this.emit(is.RENDER,this.ctx2d.canvas)):(l?this.ctx2d.drawImage(e,a,c,d,m,r,o,s,n):this.ctx2d.drawImage(e,r,o,s,n),this.emit(is.RENDER,e)),typeof VideoFrame!="undefined"&&e instanceof VideoFrame&&e.close(),!0):!1}drawBackGround2d(e){this.ctx2d&&(this.ctx2d.save(),this.ctx2d.fillStyle=e,this.ctx2d.fillRect(0,0,this.width,this.height),this.ctx2d.restore())}getInfo(){var l;let{totalFrames:e,x:r,y:o,width:s,height:n,name:a,cost:c}=this,d=Date.now(),m=(e-this.lastInfo.totalFrames)/((d-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:d,fps:m,name:a,cost:c},be({parent:(l=this.input)==null?void 0:l.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.UNPACK_ALIGNMENT,1),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e),o}};p(is,"RENDER","render"),Ie([Mt(Ve.INIT,"connected",{sync:!0})],is.prototype,"connect",1),Ie([Mt("connected",Ve.INIT,{ignoreError:!0,sync:!0})],is.prototype,"disconnect",1),Ie([Mt([],"closed",{sync:!0})],is.prototype,"close",1);var or=is;var FE=Ye(Rp(250),ts(()=>performance.now()),So()),HE=i=>t=>{let e=0,r=performance.now();Ye(FE,ts(o=>(o-r)/i>>0),Ur(o=>o!=e?(e=o,!0):!1))(t)},_l=i=>t=>{let e=performance.now();Ye(FE,cl(r=>r-e<i),Ni(1))(t)};var PA=[0,1,1,1,0,0,1,0],on=class extends or{constructor(e,r){super(e,Object.assign({useDefaultProgram:!0,createTexture:!1,name:"destination"},r));p(this,"_intervalId",0);p(this,"_sequence",0);p(this,"checkGLError",!1);p(this,"checkVisibilityChange");e instanceof mr?this.ctx2d=e.ctx||null:e.available&&(r!=null&&r.mirrorUpAndDown)&&this.setTexBuffer(PA)}start(e){this.log.info(`${this.name} start render ${e} fps`),Jt.clearTask(this._intervalId),this._intervalId=Jt.run("intervalInWorker",()=>{if(e!==this.context.frameRate&&(Jt.clearTask(this._intervalId),this.start(this.context.frameRate)),this.requestFrame(this._sequence++),this.checkGLError&&this.context instanceof cr){let o=this.context.ctx.getError();o&&this.context.destroy(new Me({code:Te.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(),this.emit(or.RENDER,this.context._canvas),!0):!1}addInput(e,...r){super.addInput(e,...r),this.start(this.context.frameRate)}update(e=0){this.state!=="closed"&&(this._intervalId&&(Jt.clearTask(this._intervalId),this._intervalId=0,e===1&&(this.log.info(`${this.name} use requestVideoFrameCallback`),this.checkVisibilityChange=()=>{document.hidden&&(this.start(this.context.frameRate),this.log.info(`${this.name} use timer`),document.removeEventListener("visibilitychange",this.checkVisibilityChange))},document.addEventListener("visibilitychange",this.checkVisibilityChange))),this.requestFrame(this._sequence++))}removeInput(e){super.removeInput(e),Jt.clearTask(this._intervalId)}resize(e,r){super.resize(e,r),this.context.setSize(e,r)}close(){super.close(),Jt.clearTask(this._intervalId),document.removeEventListener("visibilitychange",this.checkVisibilityChange)}},da=class extends on{constructor(e,r){super(e,r);p(this,"_videoTrack");p(this,"_muteOb");p(this,"_closedOb",Qe(this,"closed"));p(this,"_subscription");p(this,"_canvasContainer");Number(uo)<17&&(this._canvasContainer=document.createElement("div"),this._canvasContainer.style.display="none"),[this._videoTrack]=e.canvas.captureStream().getVideoTracks(),this._muteOb=Qe(this._videoTrack,"mute"),Ye(Qe(this._videoTrack,"ended"),At(this._closedOb),lt(()=>{this.context.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:8,message:"video track ended"}))}))}enableCheckMute(){this._subscription=Ye(this._muteOb,At(this._closedOb),Io(_l(5e3)),Ur(()=>{var e;return!!((e=this._videoTrack)!=null&&e.muted)&&!document.hidden}),lt(()=>{this.context.destroy(new Me({code:Te.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()}},El=class extends da{render(t){var r;let e=!!((r=this.input)!=null&&r.requestFrame(t));if(this.context._canvas2d){let o=this.context._canvas2d.getContext("2d");o.clearRect(0,0,this.context._canvas2d.width,this.context._canvas2d.height),o.drawImage(this.context._canvas,0,0,this.context._canvas2d.width,this.context._canvas2d.height)}return e}};var Tl=class extends da{constructor(e,r,o){super(e,{name:"smallDestination",logger:o});this.resolution=r}resize(e,r){let o,s=e*r,n=this.resolution.width*this.resolution.height;this.log.info(`big res: ${e}*${r} small res: ${this.resolution.width}*${this.resolution.height} `),s>n?o=s/n:(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 Pc=class extends or{constructor(e,r){super(e,be({name:"imageSource"},r));p(this,"_lastImage");p(this,"_totalFrames",0);p(this,"_autoResize",!1);p(this,"_canvasRendered");p(this,"videoCallbackId",0);p(this,"waitingFirstFrame",!0);p(this,"shouldUpdate",!0);this._autoResize=(r==null?void 0:r.autoResize)!==!1,Tr===16&&(this._canvasRendered=ir(),Ye(this._canvasRendered,Mc(this._image),Wi(o=>o instanceof HTMLCanvasElement?Qe(o,"rendered"):kc()),At(Qe(this,"closed")),lt(()=>{this.update()})))}onFirstFrame(){this.waitingFirstFrame=!1}tryVideoFrameCallback(){if(!this.shouldUpdate)return;let e=this.image;this.videoCallbackId&&e.cancelVideoFrameCallback(this.videoCallbackId),Ri()&&!document.hidden&&(this.videoCallbackId=e.requestVideoFrameCallback((r,o)=>{this.waitingFirstFrame&&this.onFirstFrame(),document.hidden||(this._totalFrames=o.presentedFrames,this.update(1))}))}_render(e,r){var a;let{width:o,height:s}=this,{image:n}=this;if(n instanceof HTMLVideoElement){if(this.tryVideoFrameCallback(),{videoWidth:o,videoHeight:s}=n,!o||!s)return!1;n.width=o,n.height=s}else if(n instanceof HTMLImageElement||n instanceof ImageData||n instanceof ImageBitmap){if({width:o,height:s}=n,n!==this._lastImage)this._lastImage=n;else if(o===this.width&&s===this.height)return!0}else n instanceof HTMLCanvasElement||n instanceof OffscreenCanvas?({width:o,height:s}=n,this._lastImage=n):typeof VideoFrame!="undefined"&&n instanceof VideoFrame&&({displayWidth:o,displayHeight:s}=n,(a=this._lastImage)==null||a.close(),this._lastImage=n);if(!this._autoResize)return!0;if(this.width===o&&this.height===s&&this.totalFrames){if(r){this.useTexture();let c=this.context.ctx;c.texSubImage2D(c.TEXTURE_2D,0,0,0,c.RGBA,c.UNSIGNED_BYTE,n)}}else{if(r){this.useTexture();let c=this.context.ctx;c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,n)}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)}},Uc=class extends Pc{constructor(e,r,o){super(e,o);this._player=r;this.name="videoPlayerSource",Ye(Qe(this._player,St.PLAYER_STATE_CHANGED),At(Qe(this,"closed")),Ur(({state:s})=>s==="PLAYING"),lt(()=>{this.tryVideoFrameCallback()}))}get image(){return this._player.element}},di=class extends Uc{get available(){return this._player.isPlaying&&!this.waitingFirstFrame}constructor(t,e,r){super(t,new Sr({id:r.name,track:e,muted:!0,container:null,objectFit:"contain",log:r.logger}),r),this.name="videoTrackSource",this._player.play()}replaceTrack(t){this.waitingFirstFrame=!0,this._player.setTrack(t),this._player.play()}close(){super.close(),this._player.stop()}},yl=class extends or{constructor(e,r,o){super(e,qe(be({name:"textSource"},o),{create2d:!0}));p(this,"hasChange",!0);p(this,"content","");this.ctx2d.textBaseline="top",this.content=r.content||"",r.font&&(this.font=r.font),r.color&&(this.color=r.color)}set font(e){this.ctx2d&&(this.ctx2d.font=e,this.hasChange=!0)}get font(){var e;return((e=this.ctx2d)==null?void 0:e.font)||""}set color(e){this.ctx2d&&(this.ctx2d.fillStyle=e,this.hasChange=!0)}get color(){var e;return((e=this.ctx2d)==null?void 0:e.fillStyle)||""}render2d(e){return this.ctx2d&&this.hasChange?(this.ctx2d.clearRect(0,0,this.width,this.height),this.drawMultilineText(0,0),this.hasChange=!1,!0):!1}render(e){return!1}resize(e,r){if(!this.ctx2d)return;let{color:o,font:s}=this;super.resize(e,r),this.color=o,this.font=s}drawMultilineText(e=0,r=0,o=1.2){if(!this.ctx2d)return;let s=this.ctx2d.measureText(this.content);r+=s.fontBoundingBoxAscent||s.actualBoundingBoxAscent||0;let n=this.font.match(/(\d+)px/),c=(n?parseInt(n[1],10):16)*o,d=this.content.split(`
|
|
33
|
+
`);for(let m=0;m<d.length;m++)this.ctx2d.fillText(d[m],e,r+m*c)}};var VA=`
|
|
33
34
|
// \u9876\u70B9\u7740\u8272\u5668
|
|
34
35
|
attribute vec4 a_position;
|
|
35
36
|
attribute vec2 a_texCoord;
|
|
@@ -39,7 +40,7 @@ void main() {
|
|
|
39
40
|
gl_Position = a_position;
|
|
40
41
|
v_texCoord = a_texCoord;
|
|
41
42
|
}
|
|
42
|
-
`,
|
|
43
|
+
`,BA=`
|
|
43
44
|
// \u7247\u5143\u7740\u8272\u5668
|
|
44
45
|
precision mediump float;
|
|
45
46
|
varying vec2 v_texCoord;
|
|
@@ -47,67 +48,88 @@ uniform sampler2D u_texture;
|
|
|
47
48
|
|
|
48
49
|
void main() {
|
|
49
50
|
gl_FragColor = texture2D(u_texture, v_texCoord);
|
|
50
|
-
} `;var xs=class extends ue{constructor(e){super();m(this,"frameRate");m(this,"_canvas");m(this,"log");m(this,"hasAlpha",!1);m(this,"name");m(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}get canvas(){return this._canvas}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 Dr(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new Vn(this,e)}createVideoImageSource(e,r){return new gc(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Ec(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new Yu(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};m(xs,"_ids",0);var kA={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},Fn=class Fn extends xs{constructor(){super(...arguments);m(this,"defaultProgam");m(this,"defaultVShader");m(this,"defaultFShader");m(this,"ctx");m(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(e=!1){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${xs._ids++}`),e&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",kA),!this.ctx)throw new se({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,PA),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,LA),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,J.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,this._canvas2d&&(this._canvas2d.width=e)}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e,this._canvas2d&&(this._canvas2d.height=e)}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r),this._canvas2d&&(this._canvas2d.width=e,this._canvas2d.height=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}};m(Fn,"UNAVAILABLE","unavailable"),Z([et(ue.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),J.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),J.addSuccessEvent({key:512700})}})],Fn.prototype,"create",1),Z([et("created",ue.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(Fn.UNAVAILABLE,e),this.removeAllListeners()}})],Fn.prototype,"destroy",1);var Nt=Fn,Pt=class extends xs{constructor(){super(...arguments);m(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${xs._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha,willReadFrequently:e.willReadFrequently}),!this.ctx)throw new se({code:q.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,J.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(),J.addSuccessEvent({key:512703})}};Z([et(ue.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),J.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),J.addSuccessEvent({key:512701})}})],Pt.prototype,"create",1),Z([et("created",ue.INIT,{ignoreError:!0,sync:!0})],Pt.prototype,"destroy",1);function UA(i,t,e,r,o,s=!1){s&&([e,r]=[r,e]);let n={sWidth:i,sHeight:t,dWidth:e,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(i===0||t===0)return n;switch(o){case void 0:case"fill":break;case"contain":{let a=Math.min(e/i,r/t);n.dWidth=i*a,n.dHeight=t*a,n.dx=(e-n.dWidth)/2,n.dy=(r-n.dHeight)/2;break}case"cover":{let a=Math.max(e/i,r/t),d=e/a,l=r/a;n.sx=(i-d)/2,n.sy=(t-l)/2,n.sWidth=d,n.sHeight=l;break}}return n}var Mp=class{constructor(t,e){this.node=t;this.layout=e;m(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}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},Bn=class extends bt{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});m(this,"inputs",[]);m(this,"backgroundColor","black")}addInput(e,r){let o=0,s=this.inputs.length;for(;o<s;){let a=Math.floor((o+s)/2);if(this.inputs[a].layout.zIndex<r.zIndex)o=a+1;else if(this.inputs[a].layout.zIndex>r.zIndex)s=a;else throw new Error(`input already exists at zIndex ${r.zIndex}`)}let n=new Mp(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(R=>R.node===e);if(o<0)return;let{x:s,y:n,width:a,height:d,zIndex:l,fillMode:p,rotation:f,hidden:g}=r;if(!O(l)&&this.inputs.some(R=>R.layout.zIndex===l&&R.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let y=this.inputs[o];O(s)||(y.layout.x=s),O(n)||(y.layout.y=n),O(a)||(y.layout.width=a),O(d)||(y.layout.height=d),O(f)||(y.layout.rotation=f),O(g)||(y.layout.hidden=g),p&&(y.layout.fillMode=p),!O(l)&&l!==y.layout.zIndex&&(y.layout.zIndex=l,this.inputs.sort((R,N)=>R.layout.zIndex-N.layout.zIndex))}hasInput(e){return this.inputs.some(r=>r.node===e)}hasNoInput(){return this.inputs.length===0}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof Nt&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(r=>r.node!==e),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>n.node.requestFrame(e)||s,!1)&&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 n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(r=>r.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];if(o.hidden)continue;let s=UA(o.node.width,o.node.height,o.width,o.height,o.fillMode,pr(o.rotation));this.draw2d(o.node.image,o.x+s.dx,o.y+s.dy,s.dWidth,s.dHeight,s.sx,s.sy,s.sWidth,s.sHeight)}return!0}return!1}debugLayout(e,r,o,s,n=!1){this.ctx2d&&(n&&([o,s]=[s,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,r,o,s),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:a}=this,d=Date.now(),l=(e-this.lastInfo.totalFrames)/((d-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:d,fps:l,name:a},Y({parent:this.inputs.filter(p=>p).map(p=>p.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var r;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof Nt)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var VA=[1,0,0,0,1,1,0,1],wr=class extends bt{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});m(this,"mirror",!1);m(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof Nt)try{this.setTexBuffer(VA)}catch(n){e.destroy(new se({code:q.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let a=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),a}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}resize(e,r){pr(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var Ps=class extends Xr{constructor(e,r=4){super(r,Bt);m(this,"inputLocalVideoTracks",new Map);m(this,"inputLocalScreenTracks",new Map);m(this,"cameraNodeMap",new Map);m(this,"screenNodeMap",new Map);m(this,"textNodeMap",new Map);m(this,"imageNodeMap",new Map);m(this,"videoNodeMap",new Map);m(this,"endedIds",new Set);m(this,"videoContext");m(this,"mixNode");m(this,"destination");m(this,"manager");m(this,"stat");m(this,"_checkId",0);m(this,"autoSetFps",!0);this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(bt.RENDER,o=>{this.emit("render",o)}),this.mixNode=new Bn(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=ft.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new Pt({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let r of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])r.shouldUpdate=!1;setTimeout(()=>{var r;return(r=this.destination)==null?void 0:r.start(this.videoContext.frameRate)},500)}setFpsAuto(){var s;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let e=null,r=0,o=!0;for(let[n,a]of this.inputLocalVideoTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let d=this.cameraNodeMap.get(n);d&&d.image.cancelVideoFrameCallback(d.videoCallbackId);continue}r=a.profile.frameRate,e=n}for(let[n,a]of this.inputLocalScreenTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let d=this.screenNodeMap.get(n);d&&d.image.cancelVideoFrameCallback(d.videoCallbackId);continue}r=a.profile.frameRate,e=n,o=!1}if(e!==null){let n=o?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);n&&(n.shouldUpdate=!0,n.tryVideoFrameCallback()),this.log.info("set mix fps: ",r)}else(s=this.destination)==null||s.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,r){var o;(o=this.mixNode)==null||o.resize(e,r)}startMix(){return A(this,null,function*(){var e;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),vr&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(e=this.manager)==null||e.changeInput(this)})}addCameraSource(e,r,o){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error(`There is already a cameraSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");r.recaptureMode=1,Ft(this,at).add("videoInputRemoved",a=>{a.deviceId===r.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),r.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,o,r.mediaTrack)});let n;Vt===16&&s instanceof CanvasCaptureMediaStreamTrack?n=this.videoContext.createVideoImageSource(s.canvas,{name:"cameraCanvasSource",logger:this.log}):n=this.videoContext.createVideoTrackSource(s,"cameraNodeSource"),n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(e,r),this.cameraNodeMap.set(e,n),this.setFpsAuto()}addScreenSource(e,r,o){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error(`There is already a screenSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(s,"screenNodeSource");n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o),this.inputLocalScreenTracks.set(e,r),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:r,content:o="",font:s,color:n,layout:a}=e;if(this.textNodeMap.has(r))throw new Error(`There is already a textSource with the same ID: ${r}`);let d=this.videoContext.createTextSource({content:o,font:s,color:n});d.resize(a.width,a.height),this._connectMix(d,a),this.textNodeMap.set(r,d)}addImageSource(e,r,o){if(this.imageNodeMap.has(e))throw new Error(`There is already a imageSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.width,r.height),this._connectMix(s,o),this.imageNodeMap.set(e,s)}addVideoSource(e,r,o){if(this.videoNodeMap.has(e))throw new Error(`There is already a videoSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.videoWidth,r.videoHeight),s.shouldUpdate=!1,this._connectMix(s,o),this.videoNodeMap.set(e,s)}updateCameraSource(e,r,o=null,s){let n=this.cameraNodeMap.get(e);if(n){if(o){if(Vt===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof Dr){let l=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(l),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof Dr)n.replaceTrack(o);else{let l=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(l),this.cameraNodeMap.set(e,n)}let{width:a,height:d}=o.getSettings();a&&d&&n.resize(a,d)}s&&n.resize(s.width,s.height),(s||o)&&this.setFpsAuto(),this._changeMixLayout(n,r)}}updateScreenSource(e,r){let o=this.screenNodeMap.get(e);o&&this._changeMixLayout(o,r)}updateTextSource(e){let{id:r,content:o,font:s,color:n,layout:a}=e,d=this.textNodeMap.get(r);d&&(O(o)||(d.content=o),O(s)||(d.font=s),O(n)||(d.color=n),d.resize(a.width,a.height),this._changeMixLayout(d,a))}updateImageSource(e,r,o){let s=this.imageNodeMap.get(e);s&&(o&&(s.image=o,s.resize(o.width,o.height)),this._changeMixLayout(s,r))}updateVideoSource(e,r,o){let s=this.videoNodeMap.get(e);if(s){if(o){let n=s.image;n instanceof HTMLVideoElement&&this.stopVideoElement(n),s.image=o,s.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(s,r)}}_connectMix(e,r,o="contain"){if(!this.mixNode)return;let{mirror:s,rotation:n}=r;e.disconnect();let a=new wr(this.videoContext,this.log,s,n);a=e.connect(a),r.fillMode||(r.fillMode=o),a.connect(this.mixNode,r)}_changeMixLayout(e,r){if(!this.mixNode)return;let{mirror:o,rotation:s}=r,n=e.output||e;n instanceof wr&&(O(o)||(n.mirror=o),O(s)||(n.rotation=s),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,r)}removeCameraSource(e){let r=this.inputLocalVideoTracks.get(e);if(!r)return;r.close(),this.inputLocalVideoTracks.delete(e);let o=this.cameraNodeMap.get(e);o&&(o.output instanceof wr&&o.output.close(),o.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let r=this.inputLocalScreenTracks.get(e);if(!r)return;r.close(),this.inputLocalScreenTracks.delete(e);let o=this.screenNodeMap.get(e);o&&(o.output instanceof wr&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof wr&&r.output.close(),r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image),r.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(e=!1){e&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),ft.clearTask(this._checkId),(e=this.videoContext)==null||e.destroy(),delete this.mixNode,delete this.destination;for(let r of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])r.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),St(this);for(let r of this.videoNodeMap.values())r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}};var Zu=Va();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Zu,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var FA=function(i){return A(this,null,function*(){let t=null,e=HA(i);F.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(yn&&sr<74||_t||lt)&&F.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){F.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield BA(o,i.captureElement))}if(i.audio){let s=$A(i);F.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function BA(i,t){return A(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Xe(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Zu))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){F.warn(`cropTo target failed ${r}`)}})}function $A(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return O(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function HA(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 t_=FA;var mi=class extends _r{constructor(e){super(e,2);m(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});m(this,"objectFit","contain");m(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Zu===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(p){return A(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:d,preferDisplaySurface:l}){try{let f;return a||n?(f=new MediaStream,a&&f.addTrack(a),n&&f.addTrack(n)):(f=yield t_({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:d,preferDisplaySurface:l}),this.sourceTrack=f.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(f.getVideoTracks()[0]),f}catch(f){throw this.log.error(`getDisplayMedia error observed ${f}`),f instanceof se?f:new se({code:q.INITIALIZE_FAILED,name:f.name,message:f.message})}})}switchDevice(e){return A(this,null,function*(){throw new Error("Method not implemented.")})}};Z([No(function(e){this.setContentHint(e.contentHint||"detail")})],mi.prototype,"capture",1);var Ls=class extends li{constructor(t){super(t),this._log.id=`s-${this._log.id}`,this.isScreen=!0}addAudioProcessor(t,e,r){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(t),this.enableTrackAEC(!1)}removeAudioProcessor(t){this.pipeline.aec.node===t&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var WA='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',xp;function _c(i,t=48e3,e=1,r){return A(this,null,function*(){let o=ze("dump");xp||(xp=Gi(o,URL.createObjectURL(new Blob([WA],{type:"application/javascript"})))),yield xp;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((a,d)=>a.connect(n,0,d)),new ReadableStream({start(a){n.port.onmessage=d=>{a.enqueue(d.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var Ku=class extends bu{constructor(e){super();this.room=e;m(this,"_localAudioTrack");m(this,"_localScreenAudioTrack");m(this,"log");m(this,"denoiser");m(this,"voiceChanger");m(this,"mixChangedDebounce");m(this,"audioProcessor");m(this,"encodePipeline",[]);m(this,"decodePipeline",[]);m(this,"getPCMAbortCtrlMap",new Map);m(this,"audioFrameEventConfigMap",new Map);m(this,"audioReferenceMap",new Map);m(this,"isLocalAudioNeedAudioProcess",!1);m(this,"isScreenAudioNeedAudioProcess",!1);this.log=F.createLogger({parent:e==null?void 0:e.getLogger(),id:"am",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.installEvent()}get localAudioTrack(){return this._localAudioTrack}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var p,f;if(!this._localAudioTrack)return;let r=[],o=[];(p=this._localAudioPipline)!=null&&p.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(f=this._localAudioPipline)!=null&&f.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,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),d=()=>{for(let g=0;g<o.length;g++){let y=URL.createObjectURL(new Blob(n[g])),R=document.createElement("a");R.href=y,R.download=`${o[g]}.pcm`,R.style.display="none",document.body.appendChild(R),R.click(),URL.revokeObjectURL(y),R.remove()}clearTimeout(a),s.abort("download")},l=_c(r).then(g=>g.pipeTo(new WritableStream({write(y){y.forEach((R,N)=>n[N]=n[N]?n[N].concat(R[0]):[R[0]])}}),s).catch(y=>d));return{then:l.then.bind(l),download:d}}getPCM(e,r){var P,X,H;if(typeof WritableStream=="undefined"){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:a}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let d=Math.floor(s*.04),l=new Float32Array(d),p=new Float32Array(d),f,g,y=0,R=new AbortController,N=r===""?(P=this._localAudioTrack)==null?void 0:P.mediaTrack:(H=(X=this.room)==null?void 0:X.remotePublishedUserMap.get(r))==null?void 0:H.remoteAudioTrack.mediaTrack;if(!N){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let C=ze().createMediaStreamSource(new MediaStream([N]));return _c([C],s,n,a).then(ge=>ge.pipeTo(new WritableStream({write(Ue){Ue[0][0]&&(y+Ue[0][0].length>d?(l.set(Ue[0][0].subarray(0,d-y),y),f=Ue[0][0].subarray(d-y),Ue[0][1]&&(p.set(Ue[0][1].subarray(0,d-y),y),g=Ue[0][1].subarray(d-y)),y+=d-y):(f&&(l.set(f,y),y+=f.length,f=void 0),g&&(p.set(g,y),g=void 0),l.set(Ue[0][0],y),Ue[0][1]&&p.set(Ue[0][1],y),y+=Ue[0][0].length),y>=d&&(y=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?l:[l,p]}),l=new Float32Array(d),p=new Float32Array(d)))}}),R).catch(Ue=>this.log.warn(`stop getPCM reason:${Ue}`))),R}get hasScreenAudioTrack(){return!O(this._localScreenAudioTrack)}get hasAudioTrack(){return!O(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof Ls)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&((r=this.audioProcessor)!=null&&r.screenAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof li)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&((o=this.audioProcessor)!=null&&o.localAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof zi)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}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 Ls?delete this._localScreenAudioTrack:e instanceof li?delete this._localAudioTrack:e instanceof zi}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor={localAudioWorkletNode:o,mixNode:e,silentNode:r,screenAudioWorkletNode:s},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,e,r),this.audioReferenceMap.forEach((a,d)=>{var l;(l=this._localAudioTrack)==null||l.mixAudioReference(a,d)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,d)=>{var l;(l=this._localScreenAudioTrack)==null||l.mixAudioReference(a,d)}))}removeDenoiser(e){var r;return delete this.denoiser,(r=this._localAudioTrack)==null?void 0:r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r){var o,s;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(e),(s=this._localScreenAudioTrack)==null||s.removeAudioProcessor(r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}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}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var a;(a=this.room)==null||a.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(a=>{var d;(d=this.room)==null||d.emit("audio-frame",a)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){U.on("113",this.handleLocalTrackStarted,this),U.on("114",this.handleLocalTrackStopped,this),U.on("115",this.handleRemoteTrackStarted,this),U.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){U.off("113",this.handleLocalTrackStarted),U.off("114",this.handleLocalTrackStopped),U.off("115",this.handleRemoteTrackStarted),U.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||O(s))return;this.setAudioReferenceVolume(o,s)}}};function r_(i=30,t=2){return Pe((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let d=new se({code:q.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||F).warn(d),t===2?n(d):t===1&&s()},i*1e3);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(a),e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a),this._checkPendingPromiseSet&&a&&this._checkPendingPromiseSet.delete(a)})})})}var hi=class hi extends As{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;m(this,"tinyId");m(this,"isRemote",!0);m(this,"jitterBufferDelay",0);m(this,"availableState");m(this,"remotePublishState");m(this,"_triggerCheckDecodeSubject",At(ye(this,hi.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new ue(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new ue(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ae(lc(ye(this,ue.STATECHANGED),ye(this.remotePublishState,ue.STATECHANGED)),wo(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),Le(d=>{this.availableState.state!==(d?ue.ON:ue.OFF)&&(this.availableState.state=d?ue.ON:ue.OFF),this.updatePlayingState(d)}));let s=Ae(ye(this.player,je.ERROR),er(d=>d.code===MediaError.MEDIA_ERR_DECODE)),n=Ae(hc(5e3),er(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===M.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),a=Ae(jh(s,n),Je(ye(this,ue.INIT)));Ae(this._triggerCheckDecodeSubject,er(()=>!this.ignoreDecodeError),qi(a),Le(d=>{this.reportDecodeResult(!1,d)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===hi.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===ue.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){var s,n;let o=this.kind===M.AUDIO;if(J[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";J[e?"addSuccessEvent":"addFailedEvent"]({key:Nn[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(J.addEnum({key:o?504701:514703,value:fs()}),qe.uploadEvent({log:`stat-decode-failed-${this.kind}-${ps()||Li()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===M.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?ue.ON:ue.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};m(hi,"STATE_SUBSCRIBE","subscribe"),Z([r_(5,1)],hi.prototype,"waitHasMediaTrack",1),Z([et(ue.INIT,hi.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),U.emit(B.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),xu(521716,!1)],hi.prototype,"subscribe",1),Z([et(hi.STATE_SUBSCRIBE,ue.INIT,{sync:!0,success(){this.log.info("unsubscribed"),U.emit(B.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],hi.prototype,"unsubscribe",1);var $n=hi;var zi=class extends $n{constructor(e,r){super(e,r,1);m(this,"volume",0);m(this,"mediaType",1);m(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return vu.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(e){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var e,r;return this.manager?this.manager.decodePipeline.some(o=>o)||((r=(e=this.player.element)==null?void 0:e.error)==null?void 0:r.code)===MediaError.MEDIA_ERR_DECODE&&_u().AudioDecoder&&Is:!1}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(e){if(!this.manager)return e;let r=e;for(let[o,s]of this.manager.decodePipeline.entries()){if(!s)continue;let n={frame:e,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(n.onAudioFrameNTPTime=({ntp:a,frame:d,hasLeavingTag:l})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:d,hasLeavingTag:l})}),r=s(n),!r)return}return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var el=class extends bt{constructor(e,r,o,s,n){super(e,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:r});this.setContainer=s;m(this,"initStat",{alphaStitchingType:1});m(this,"end",At());m(this,"minSize",320);m(this,"maxSize",1280);m(this,"draggable",!1);m(this,"startDragX",0);m(this,"startDragY",0);m(this,"left",0);m(this,"top",0);m(this,"baseWidth",320);m(this,"baseRatio");m(this,"container");this.initStat=n,this.draggable=o,this.bindDragEvents()}bindDragEvents(){let e=this.context._canvas;if(e)if(this.draggable){let r=Je(this.end);Ae(ye(e,"mousedown"),Ds(this.startDrag.bind(this)),ui(()=>Ae(ye(window,"mousemove"),Je(ye(window,"mouseup")))),r,Le(this.doDrag.bind(this))),Ae(ye(e,"dblclick"),r,Le(this.resetPosition.bind(this))),Ae(ye(e,"wheel"),r,Le(this.handleZoom.bind(this))),this.renderCanvas()}else{if(!this.container)return;this.container.style.removeProperty("left"),this.container.style.removeProperty("top"),this.end.next()}}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}startDrag(e){e.preventDefault(),e.button===0&&(this.startDragX=e.clientX-this.left,this.startDragY=e.clientY-this.top)}renderCanvas(){let{container:e}=this;e||this.setContainer(),!(!e||!this.baseRatio||!this.draggable)&&(e.style.setProperty("width",`${this.baseWidth}px`),e.style.setProperty("height",`${this.baseWidth/this.baseRatio}px`),e.style.setProperty("position","fixed"),e.style.setProperty("left",`${this.left}px`),e.style.setProperty("top",`${this.top}px`))}doDrag(e){e.preventDefault(),this.left=e.clientX-this.startDragX,this.top=e.clientY-this.startDragY,this.renderCanvas()}handleZoom(e){e.preventDefault();let r=.1,o=e.deltaY,s=this.context._canvas;s&&(this.baseWidth||(this.baseWidth=s.offsetWidth),o<0?this.baseWidth=Math.min(this.baseWidth*(1+r),this.maxSize):this.baseWidth=Math.max(this.baseWidth*(1-r),this.minSize),this.renderCanvas())}resetPosition(){this.left=0,this.top=0,this.renderCanvas()}onRatioReset(){this.renderCanvas()}draw2d(e,r,o,s,n){var y;let{ctx2d:a}=this,d=this.context._canvas;if(!a||!d)return!1;let l=super.draw2d(e,r,o,s,n),p=a.getImageData(0,0,s,n),{data:f}=p,g=!1;if(this.initStat.alphaStitchingType===1){let R=Math.floor(s/2);for(let N=0;N<n;N++)for(let C=0;C<R;C++){let P=(N*s+C)*4,X=C+R,H=(N*s+X)*4,ge=f[H];f[H+3]=0;let Ue=ge>=100;f[P+3]=Ue?255:0}g=super.draw2d(p,0,0,0,0,R,n),d.width=R}else if(this.initStat.alphaStitchingType===2){let R=Math.floor(n/2);for(let N=0;N<R;N++)for(let C=0;C<s;C++){let P=(N*s+C)*4,H=((N+R)*s+C)*4,ge=f[H];f[H+3]=0;let Ue=ge>=100;f[P+3]=Ue?255:0}g=super.draw2d(p,0,0,0,0,s,R),d.height=R}return(y=this.context.ctx)==null||y.clearRect(0,0,s,n),l&&g}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}};function jA(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var xo=class extends $n{constructor(e,r,o=4){super(e,r,o);m(this,"mediaType",4);m(this,"source");m(this,"shouldRenderAlpha",!1);m(this,"alphaNode");m(this,"shouldBeDraggable",!0);m(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)})}isAlphaSei(e){if(this.userId!==e.userId||e.seiPayloadType!==50)return!1;let r=new Uint8Array(e.data);return r.length%3!==0||r[0]!==0||r[1]!==1?!1:r}play(e,r){return(Ye(r==null?void 0:r.canvasRender)?r.canvasRender:Vt===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat(),U.emit("156",{track:this,player:this.player})})}updateAlphaRenderInfo(e){let r=this.isAlphaSei(e);if(r)if(!this.alphaNode)this.shouldRenderAlpha=!0,this.player.shouldRenderAlpha=!0,this.useCanvasPlayer(r[2]);else{let o=r[2];if(this.alphaNode.baseRatio&&this.alphaNode.initStat.alphaStitchingType===o)return;this.alphaNode.initStat={alphaStitchingType:o};let s=this.player.getElement();if(s){let n=s.videoWidth/s.videoHeight;n&&(this.alphaNode.baseRatio=n*(o===1?.5:2),this.alphaNode.onRatioReset())}this.player.canvas&&(this.player.canvas.id=this.generateAlphaCanvasName(o))}}generateAlphaCanvasName(e){let r="alpha",o=ja[e];return`${r}_${o}_${this.userId}`}useCanvasPlayer(e){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let r=new Pt({frameRate:15,logger:this.log,name:this.shouldRenderAlpha&&e?this.generateAlphaCanvasName(e):this.userId});r.create({alpha:this.shouldRenderAlpha,willReadFrequently:this.shouldRenderAlpha});let o=new Ms(r,{name:"remotePlayer",logger:this.log});if(this.source=r.createVideoPlayerSource(this.player),this.player.setCanvas(r._canvas),this.shouldRenderAlpha&&e){let s=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},n=new el(r,this.log,this.shouldBeDraggable,s,{alphaStitchingType:e});this.source.connect(n),n.connect(o),this.alphaNode=n}else this.source.connect(o);zr()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,r),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=jA(r);if(!Fe(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 n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(a=>a.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(a=>a.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),U.emit("157",{track:this,player:this.player}),this.alphaNode&&this.alphaNode.close(),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)}setDraggable(e){this.shouldBeDraggable=e,this.alphaNode&&(this.alphaNode.draggable=e,this.alphaNode.bindDragEvents())}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},tl=class extends xo{constructor(e,r){super(e,r,2);m(this,"mediaType",2);m(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var Hn=new Map;U.on(B.JOIN_SUCCESS,({room:i})=>{mt(i.userId,{eventId:32788})});U.on(B.LEAVE_START,({room:i})=>{mt(i.userId,{eventId:32789})});U.on(B.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),mt(i.room.userId,{eventId:t})}});U.on(B.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),mt(i.room.userId,{eventId:t})}});U.on(B.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?mt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):mt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(B.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===M.AUDIO?mt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):mt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});U.on(B.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&mt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&mt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&mt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});U.on(B.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&mt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&mt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&mt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});U.on(B.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&mt(i.room.userId,{eventId:i.kind===M.VIDEO?32780:32781})});U.on(B.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&mt(i.room.userId,{eventId:i.kind===M.VIDEO?32782:32783})});U.on(B.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&&mt(i.userId,{eventId:r})});U.on(B.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&&mt(i.userId,{eventId:s,remoteUserId:r})});U.on(B.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let a=o?1:0;s||(a=o?3:2);let d={H264:0,H265:1,VP8:2}[r.toUpperCase()],l={eventId:4004,param1:a,param2:d,streamType:n||2};e&&(l.remoteUserId=e,l.eventId=4005),mt(t,l),J.addEnum({key:e?514701:513701,value:a}),J.addEnum({key:e?514700:513700,value:d})});U.on(B.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===M.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),mt(i.userId,e)}});function mt(i,t){let e=_e(Y({},t),{timestamp:Ri()});Hn.has(i)?Hn.get(i).push(e):Hn.set(i,[e])}function i_(i){if(Hn.has(i)){let t=Hn.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 Hn.delete(i),t}return[]}function o_(...i){return Pe((t,e)=>function(...r){return qA.call(this,i,r,e,this._name),t.apply(this,r)})}function qA(i,t,e,r){try{if(ut(i))for(let o=0;o<i.length;o++)rl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else rl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw F.error(o),o}}function rl({rule:i,value:t,key:e,fnName:r,className:o}){if(O(t)){if(i.required)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(O(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let d=0;d<i.type.length;d++)i.type[d]===null&&t===null&&(a=!0),Xe(i.type[d])&&t instanceof i.type[d]&&(a=!0),Oe(i.type[d])&&pt(t)===i.type[d].toLowerCase()&&(a=!0);if(!a)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(d=>as(d)?dn(d):Oe(d)?d:pt(d))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!O(i.type)&&pt(t)!==i.type)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=Fe(t)&&(t===0||Number.isNaN(t)),d=Oe(t)&&t.trim()==="";if(a||d)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&Fe(t)&&t<0)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!O(i.min)&&Fe(t)&&t<i.min)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!O(i.max)&&Fe(t)&&t>i.max)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(Oe(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Xe(i.instanceOf)&&!(t instanceof i.instanceOf))throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new se({code:q.INVALID_PARAMETER,message:We({key:He.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Xt(s)&&hr(t)&&Object.keys(s).forEach(a=>{rl.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Xt(n)&&ut(t)&&t.forEach((a,d)=>{rl.call(this,{rule:n,value:a,key:`${e}[${d}]`,fnName:r,className:o})}),Xe(i.validate)&&i.validate.call(this,t,e,r,o,this)}var zA=bi(ki(),1);var JA=Object.create,al=Object.defineProperty,XA=Object.defineProperties,g_=Object.getOwnPropertyDescriptor,QA=Object.getOwnPropertyDescriptors,E_=Object.getOwnPropertyNames,nl=Object.getOwnPropertySymbols,YA=Object.getPrototypeOf,Jp=Object.prototype.hasOwnProperty,__=Object.prototype.propertyIsEnumerable,Bp=(i,t,e)=>t in i?al(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,yc=(i,t)=>{for(var e in t||(t={}))Jp.call(t,e)&&Bp(i,e,t[e]);if(nl)for(var e of nl(t))__.call(t,e)&&Bp(i,e,t[e]);return i},Ac=(i,t)=>XA(i,QA(t)),ZA=(i,t)=>{var e={};for(var r in i)Jp.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&nl)for(var r of nl(i))t.indexOf(r)<0&&__.call(i,r)&&(e[r]=i[r]);return e},KA=(i,t)=>function(){return t||(0,i[E_(i)[0]])((t={exports:{}}).exports,t),t.exports},eb=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of E_(t))Jp.call(i,o)||o===e||al(i,o,{get:()=>t[o],enumerable:!(r=g_(t,o))||r.enumerable});return i},T_=(i,t,e)=>(e=i!=null?JA(YA(i)):{},eb(!t&&i&&i.__esModule?e:al(e,"default",{value:i,enumerable:!0}),i)),Ji=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?g_(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&al(t,e,s),s},tt=(i,t,e)=>Bp(i,typeof t!="symbol"?t+"":t,e),I_=KA({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(l,p,f){this.fn=l,this.context=p,this.once=f||!1}function n(l,p,f,g,y){if(typeof f!="function")throw new TypeError("The listener must be a function");var R=new s(f,g||l,y),N=r?r+p:p;return l._events[N]?l._events[N].fn?l._events[N]=[l._events[N],R]:l._events[N].push(R):(l._events[N]=R,l._eventsCount++),l}function a(l,p){--l._eventsCount==0?l._events=new o:delete l._events[p]}function d(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),d.prototype.eventNames=function(){var l,p,f=[];if(this._eventsCount===0)return f;for(p in l=this._events)e.call(l,p)&&f.push(r?p.slice(1):p);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(l)):f},d.prototype.listeners=function(l){var p=r?r+l:l,f=this._events[p];if(!f)return[];if(f.fn)return[f.fn];for(var g=0,y=f.length,R=new Array(y);g<y;g++)R[g]=f[g].fn;return R},d.prototype.listenerCount=function(l){var p=r?r+l:l,f=this._events[p];return f?f.fn?1:f.length:0},d.prototype.emit=function(l,p,f,g,y,R){var N=r?r+l:l;if(!this._events[N])return!1;var C,P,X=this._events[N],H=arguments.length;if(X.fn){switch(X.once&&this.removeListener(l,X.fn,void 0,!0),H){case 1:return X.fn.call(X.context),!0;case 2:return X.fn.call(X.context,p),!0;case 3:return X.fn.call(X.context,p,f),!0;case 4:return X.fn.call(X.context,p,f,g),!0;case 5:return X.fn.call(X.context,p,f,g,y),!0;case 6:return X.fn.call(X.context,p,f,g,y,R),!0}for(P=1,C=new Array(H-1);P<H;P++)C[P-1]=arguments[P];X.fn.apply(X.context,C)}else{var ge,Ue=X.length;for(P=0;P<Ue;P++)switch(X[P].once&&this.removeListener(l,X[P].fn,void 0,!0),H){case 1:X[P].fn.call(X[P].context);break;case 2:X[P].fn.call(X[P].context,p);break;case 3:X[P].fn.call(X[P].context,p,f);break;case 4:X[P].fn.call(X[P].context,p,f,g);break;default:if(!C)for(ge=1,C=new Array(H-1);ge<H;ge++)C[ge-1]=arguments[ge];X[P].fn.apply(X[P].context,C)}}return!0},d.prototype.on=function(l,p,f){return n(this,l,p,f,!1)},d.prototype.once=function(l,p,f){return n(this,l,p,f,!0)},d.prototype.removeListener=function(l,p,f,g){var y=r?r+l:l;if(!this._events[y])return this;if(!p)return a(this,y),this;var R=this._events[y];if(R.fn)R.fn!==p||g&&!R.once||f&&R.context!==f||a(this,y);else{for(var N=0,C=[],P=R.length;N<P;N++)(R[N].fn!==p||g&&!R[N].once||f&&R[N].context!==f)&&C.push(R[N]);C.length?this._events[y]=C.length===1?C[0]:C:a(this,y)}return this},d.prototype.removeAllListeners=function(l){var p;return l?(p=r?r+l:l,this._events[p]&&a(this,p)):(this._events=new o,this._eventsCount=0),this},d.prototype.off=d.prototype.removeListener,d.prototype.addListener=d.prototype.on,d.prefixed=r,d.EventEmitter=d,t!==void 0&&(t.exports=d)}}),tb=T_(I_(),1),s_=Symbol("instance"),IU=Symbol("abortCtrl"),il=Symbol("cacheResult"),Pp=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,Rc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},sl=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function rb(i){return typeof i=="object"&&i&&"then"in i}var bc=new Map;function Po(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let d=bc.get(r)||[];bc.has(r)||bc.set(r,d),d.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...d){let l=this;if(e.context&&(l=tr.get(typeof e.context=="function"?e.context.call(this,...d):e.context)),l.state===t)return e.sync?l[il]:Promise.resolve(l[il]);l.state instanceof Pp&&l.state.action==e.abortAction&&l.state.abort(l);let p=null;Array.isArray(i)?i.length==0?l.state instanceof Pp&&l.state.abort(l):typeof l.state=="string"&&i.includes(l.state)||(p=new sl(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i.join("|")}`)):i!==l.state&&(p=new sl(l._state,`${l.name} ${n} to ${t} failed: current state ${l._state} not from ${i}`));let f=C=>{if(e.fail&&e.fail.call(this,C),e.sync){if(e.ignoreError)return C;throw C}return e.ignoreError?Promise.resolve(C):Promise.reject(C)};if(p)return f(p);let g=l.state,y=new Pp(g,t,n);Rc.call(l,y);let R=C=>{var P;return l[il]=C,y.aborted||(Rc.call(l,t),(P=e.success)===null||P===void 0||P.call(this,l[il])),C},N=C=>(Rc.call(l,g,C),f(C));try{let C=a.apply(this,d);return rb(C)?C.then(R).catch(N):e.sync?R(C):Promise.resolve(R(C))}catch(C){return N(new sl(l._state,`${l.name} ${n} from ${i} to ${t} failed: ${C}`,C instanceof Error?C:new Error(String(C))))}}}}function ib(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new sl(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var ob=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 Rc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(tr.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var tr=class Or extends tb.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=Or.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[s_];o?this.name=o.name+"-"+o.count++:r[s_]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=bc.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);bc.has(a)&&(a.stateDiagram.forEach(l=>r.add(l)),a.allStates.forEach(l=>n.add(l))),e.forEach(({from:l,to:p,action:f})=>{typeof l=="string"?o.push({from:l,to:p,action:f}):l.length?l.forEach(g=>{o.push({from:g,to:p,action:f})}):s.push({to:p,action:f})}),o.forEach(({from:l,to:p,action:f})=>{n.add(l),n.add(p),n.add(f+"ing"),r.add(`${l} --> ${f}ing : ${f}`),r.add(`${f}ing --> ${p} : ${f} \u{1F7E2}`),r.add(`${f}ing --> ${l} : ${f} \u{1F534}`)}),s.forEach(({to:l,action:p})=>{r.add(`${p}ing --> ${l} : ${p} \u{1F7E2}`),n.forEach(f=>{f!==l&&r.add(`${f} --> ${p}ing : ${p}`)})});let d=[...r];return Object.defineProperties(t,{stateDiagram:{value:d},allStates:{value:n}}),d}static get(t){let e;return typeof t=="string"?(e=Or.instances.get(t),e||Or.instances.set(t,e=new Or(t,void 0,Object.create(Or.prototype)))):(e=Or.instances2.get(t),e||Or.instances2.set(t,e=new Or(t.constructor.name,void 0,Object.create(Or.prototype)))),e}static getState(t){var e;return(e=Or.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){ob(Or.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){Rc.call(this,t)}};tr.STATECHANGED="stateChanged",tr.UPDATEAFSM="updateAFSM",tr.INIT="[*]",tr.ON="on",tr.OFF="off",tr.instances=new Map,tr.instances2=new WeakMap;var Gn=class extends tr{constructor(){super(...arguments),tt(this,"decoder"),tt(this,"config")}initialize(){return A(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(Ac(yc({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.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 i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function sb(){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"),n=0,a=0,d={wasmBinary:o,postRun:()=>{i=new d.VideoDecoder({videoInfo(l,p){n=l,a=p,console.log("video info",l,p)},yuvData(l,p){let f=n*a,g=f>>2,y=d.HEAPU32[l>>2],R=d.HEAPU32[1+(l>>2)],N=d.HEAPU32[2+(l>>2)],C=d.HEAPU8.subarray(y,y+f),P=d.HEAPU8.subarray(R,R+g),X=d.HEAPU8.subarray(N,N+g),H=new Uint8Array(f+g+g);H.set(C),H.set(P,f),H.set(X,f+g);let ge=new VideoFrame(H,{codedWidth:n,codedHeight:a,format:"I420",timestamp:p});e?(s==null||s.drawImage(ge,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:ge},[ge])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(d)}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:"")}}}Ji([Po([tr.INIT,"closed"],"initialized")],Gn.prototype,"initialize",1),Ji([Po("initialized","configured",{sync:!0})],Gn.prototype,"configure",1),Ji([ib("configured")],Gn.prototype,"decode",1),Ji([Po([],tr.INIT,{sync:!0})],Gn.prototype,"reset",1),Ji([Po([],"closed",{ignoreError:!0,sync:!0})],Gn.prototype,"close",1);var Sc=class extends tr{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,tt(this,"worker"),tt(this,"decoder"),tt(this,"config"),tt(this,"module",{}),tt(this,"width",0),tt(this,"height",0)}initialize(i){return A(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(sb.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=a=>{if(a.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(a.data.type==="yuvData"){let{videoFrame:d}=a.data;this.emit("videoFrame",d)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],a=this.module.HEAPU8.subarray(o,o+e),d=this.module.HEAPU8.subarray(s,s+r),l=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u:d,v:l,timestamp:t});let p=new Uint8Array(e+r+r);p.set(a),p.set(d,e),p.set(l,e+r),this.emit("videoFrame",new VideoFrame(p,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Ji([Po([tr.INIT,"closed"],"initialized")],Sc.prototype,"initialize",1),Ji([Po("initialized","configured",{sync:!0})],Sc.prototype,"configure",1),Ji([Po([],tr.INIT,{sync:!0})],Sc.prototype,"reset",1),Ji([Po([],"closed",{sync:!0})],Sc.prototype,"close",1);var nb=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((c,u)=>{e=c,r=u});var s,n,a,d=Object.assign({},o),l="./this.program",p=typeof window=="object",f=typeof importScripts=="function",g=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(p||f)&&(f?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),i&&(g=i),g=g.indexOf("blob:")!==0?g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=c=>{var u=new XMLHttpRequest;return u.open("GET",c,!1),u.send(null),u.responseText},f&&(a=c=>{var u=new XMLHttpRequest;return u.open("GET",c,!1),u.responseType="arraybuffer",u.send(null),new Uint8Array(u.response)}),n=(c,u,h)=>{var E=new XMLHttpRequest;E.open("GET",c,!0),E.responseType="arraybuffer",E.onload=()=>{E.status==200||E.status==0&&E.response?u(E.response):h()},E.onerror=h,E.send(null)});var y,R=o.print||console.log.bind(console),N=o.printErr||console.error.bind(console);Object.assign(o,d),d=null,o.arguments&&o.arguments,o.thisProgram&&(l=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(y=o.wasmBinary);var C,P;o.noExitRuntime,typeof WebAssembly!="object"&&Zr("no native wasm support detected");var X,H,ge,Ue,W,we,Ki,Zn,Kn,ea=!1,Yr=[],Ws=[],eo=[],Ir=0,_i=null,Ti=null;function re(c){Ir++,o.monitorRunDependencies&&o.monitorRunDependencies(Ir)}function Go(c){if(Ir--,o.monitorRunDependencies&&o.monitorRunDependencies(Ir),Ir==0&&(_i!==null&&(clearInterval(_i),_i=null),Ti)){var u=Ti;Ti=null,u()}}function Zr(c){o.onAbort&&o.onAbort(c),N(c="Aborted("+c+")"),ea=!0,c+=". Build with -sASSERTIONS for more info.";var u=new WebAssembly.RuntimeError(c);throw r(u),u}var Ii,ta,Se,rt;function Gt(c){return c.startsWith("data:application/octet-stream;base64,")}function Q(c){if(c==Ii&&y)return new Uint8Array(y);if(a)return a(c);throw"both async and sync fetching of the wasm failed"}function Kr(c,u,h){return function(E){return y||!p&&!f||typeof fetch!="function"?Promise.resolve().then(()=>Q(E)):fetch(E,{credentials:"same-origin"}).then(I=>{if(!I.ok)throw"failed to load wasm binary file at '"+E+"'";return I.arrayBuffer()}).catch(()=>Q(E))}(c).then(E=>WebAssembly.instantiate(E,u)).then(E=>E).then(h,E=>{N("failed to asynchronously prepare wasm: "+E),Zr(E)})}Gt(Ii="videodec.wasm")||(ta=Ii,Ii=o.locateFile?o.locateFile(ta,g):g+ta);var to=c=>{for(;c.length>0;)c.shift()(o)};function ro(c){this.excPtr=c,this.ptr=c-24,this.set_type=function(u){we[this.ptr+4>>2]=u},this.get_type=function(){return we[this.ptr+4>>2]},this.set_destructor=function(u){we[this.ptr+8>>2]=u},this.get_destructor=function(){return we[this.ptr+8>>2]},this.set_caught=function(u){u=u?1:0,X[this.ptr+12|0]=u},this.get_caught=function(){return X[this.ptr+12|0]!=0},this.set_rethrown=function(u){u=u?1:0,X[this.ptr+13|0]=u},this.get_rethrown=function(){return X[this.ptr+13|0]!=0},this.init=function(u,h){this.set_adjusted_ptr(0),this.set_type(u),this.set_destructor(h)},this.set_adjusted_ptr=function(u){we[this.ptr+16>>2]=u},this.get_adjusted_ptr=function(){return we[this.ptr+16>>2]},this.get_exception_ptr=function(){if(da(this.get_type()))return we[this.excPtr>>2];var u=this.get_adjusted_ptr();return u!==0?u:this.excPtr}}var me={isAbs:c=>c.charAt(0)==="/",splitPath:c=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(c).slice(1),normalizeArray:(c,u)=>{for(var h=0,E=c.length-1;E>=0;E--){var I=c[E];I==="."?c.splice(E,1):I===".."?(c.splice(E,1),h++):h&&(c.splice(E,1),h--)}if(u)for(;h;h--)c.unshift("..");return c},normalize:c=>{var u=me.isAbs(c),h=c.substr(-1)==="/";return(c=me.normalizeArray(c.split("/").filter(E=>!!E),!u).join("/"))||u||(c="."),c&&h&&(c+="/"),(u?"/":"")+c},dirname:c=>{var u=me.splitPath(c),h=u[0],E=u[1];return h||E?(E&&(E=E.substr(0,E.length-1)),h+E):"."},basename:c=>{if(c==="/")return"/";var u=(c=(c=me.normalize(c)).replace(/\/$/,"")).lastIndexOf("/");return u===-1?c:c.substr(u+1)},join:function(){var c=Array.prototype.slice.call(arguments);return me.normalize(c.join("/"))},join2:(c,u)=>me.normalize(c+"/"+u)},ra=c=>(ra=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return u=>crypto.getRandomValues(u);Zr("initRandomDevice")})())(c),rr={resolve:function(){for(var c="",u=!1,h=arguments.length-1;h>=-1&&!u;h--){var E=h>=0?arguments[h]:_.cwd();if(typeof E!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!E)return"";c=E+"/"+c,u=me.isAbs(E)}return(u?"/":"")+(c=me.normalizeArray(c.split("/").filter(I=>!!I),!u).join("/"))||"."},relative:(c,u)=>{function h(k){for(var ee=0;ee<k.length&&k[ee]==="";ee++);for(var ce=k.length-1;ce>=0&&k[ce]==="";ce--);return ee>ce?[]:k.slice(ee,ce-ee+1)}c=rr.resolve(c).substr(1),u=rr.resolve(u).substr(1);for(var E=h(c.split("/")),I=h(u.split("/")),b=Math.min(E.length,I.length),v=b,D=0;D<b;D++)if(E[D]!==I[D]){v=D;break}var V=[];for(D=v;D<E.length;D++)V.push("..");return(V=V.concat(I.slice(v))).join("/")}},io=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,jt=(c,u,h)=>{for(var E=u+h,I=u;c[I]&&!(I>=E);)++I;if(I-u>16&&c.buffer&&io)return io.decode(c.subarray(u,I));for(var b="";u<I;){var v=c[u++];if(128&v){var D=63&c[u++];if((224&v)!=192){var V=63&c[u++];if((v=(240&v)==224?(15&v)<<12|D<<6|V:(7&v)<<18|D<<12|V<<6|63&c[u++])<65536)b+=String.fromCharCode(v);else{var k=v-65536;b+=String.fromCharCode(55296|k>>10,56320|1023&k)}}else b+=String.fromCharCode((31&v)<<6|D)}else b+=String.fromCharCode(v)}return b},ia=[],jo=c=>{for(var u=0,h=0;h<c.length;++h){var E=c.charCodeAt(h);E<=127?u++:E<=2047?u+=2:E>=55296&&E<=57343?(u+=4,++h):u+=3}return u},qo=(c,u,h,E)=>{if(!(E>0))return 0;for(var I=h,b=h+E-1,v=0;v<c.length;++v){var D=c.charCodeAt(v);if(D>=55296&&D<=57343&&(D=65536+((1023&D)<<10)|1023&c.charCodeAt(++v)),D<=127){if(h>=b)break;u[h++]=D}else if(D<=2047){if(h+1>=b)break;u[h++]=192|D>>6,u[h++]=128|63&D}else if(D<=65535){if(h+2>=b)break;u[h++]=224|D>>12,u[h++]=128|D>>6&63,u[h++]=128|63&D}else{if(h+3>=b)break;u[h++]=240|D>>18,u[h++]=128|D>>12&63,u[h++]=128|D>>6&63,u[h++]=128|63&D}}return u[h]=0,h-I};function Gs(c,u,h){var E=h>0?h:jo(c)+1,I=new Array(E),b=qo(c,I,0,I.length);return u&&(I.length=b),I}var Mr={ttys:[],init:function(){},shutdown:function(){},register:function(c,u){Mr.ttys[c]={input:[],output:[],ops:u},_.registerDevice(c,Mr.stream_ops)},stream_ops:{open:function(c){var u=Mr.ttys[c.node.rdev];if(!u)throw new _.ErrnoError(43);c.tty=u,c.seekable=!1},close:function(c){c.tty.ops.fsync(c.tty)},fsync:function(c){c.tty.ops.fsync(c.tty)},read:function(c,u,h,E,I){if(!c.tty||!c.tty.ops.get_char)throw new _.ErrnoError(60);for(var b=0,v=0;v<E;v++){var D;try{D=c.tty.ops.get_char(c.tty)}catch(V){throw new _.ErrnoError(29)}if(D===void 0&&b===0)throw new _.ErrnoError(6);if(D==null)break;b++,u[h+v]=D}return b&&(c.node.timestamp=Date.now()),b},write:function(c,u,h,E,I){if(!c.tty||!c.tty.ops.put_char)throw new _.ErrnoError(60);try{for(var b=0;b<E;b++)c.tty.ops.put_char(c.tty,u[h+b])}catch(v){throw new _.ErrnoError(29)}return E&&(c.node.timestamp=Date.now()),b}},default_tty_ops:{get_char:function(c){return(()=>{if(!ia.length){var u=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(u=window.prompt("Input: "))!==null&&(u+=`
|
|
51
|
-
`):typeof readline=="function"&&(
|
|
52
|
-
`),!u)return null;ia=Gs(u,!0)}return ia.shift()})()},put_char:function(c,u){u===null||u===10?(R(jt(c.output,0)),c.output=[]):u!=0&&c.output.push(u)},fsync:function(c){c.output&&c.output.length>0&&(R(jt(c.output,0)),c.output=[])},ioctl_tcgets:function(c){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(c,u,h){return 0},ioctl_tiocgwinsz:function(c){return[24,80]}},default_tty1_ops:{put_char:function(c,u){u===null||u===10?(N(jt(c.output,0)),c.output=[]):u!=0&&c.output.push(u)},fsync:function(c){c.output&&c.output.length>0&&(N(jt(c.output,0)),c.output=[])}}},oa=c=>{Zr()},ve={ops_table:null,mount:c=>ve.createNode(null,"/",16895,0),createNode(c,u,h,E){if(_.isBlkdev(h)||_.isFIFO(h))throw new _.ErrnoError(63);ve.ops_table||(ve.ops_table={dir:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr,lookup:ve.node_ops.lookup,mknod:ve.node_ops.mknod,rename:ve.node_ops.rename,unlink:ve.node_ops.unlink,rmdir:ve.node_ops.rmdir,readdir:ve.node_ops.readdir,symlink:ve.node_ops.symlink},stream:{llseek:ve.stream_ops.llseek}},file:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr},stream:{llseek:ve.stream_ops.llseek,read:ve.stream_ops.read,write:ve.stream_ops.write,allocate:ve.stream_ops.allocate,mmap:ve.stream_ops.mmap,msync:ve.stream_ops.msync}},link:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr,readlink:ve.node_ops.readlink},stream:{}},chrdev:{node:{getattr:ve.node_ops.getattr,setattr:ve.node_ops.setattr},stream:_.chrdev_stream_ops}});var I=_.createNode(c,u,h,E);return _.isDir(I.mode)?(I.node_ops=ve.ops_table.dir.node,I.stream_ops=ve.ops_table.dir.stream,I.contents={}):_.isFile(I.mode)?(I.node_ops=ve.ops_table.file.node,I.stream_ops=ve.ops_table.file.stream,I.usedBytes=0,I.contents=null):_.isLink(I.mode)?(I.node_ops=ve.ops_table.link.node,I.stream_ops=ve.ops_table.link.stream):_.isChrdev(I.mode)&&(I.node_ops=ve.ops_table.chrdev.node,I.stream_ops=ve.ops_table.chrdev.stream),I.timestamp=Date.now(),c&&(c.contents[u]=I,c.timestamp=I.timestamp),I},getFileDataAsTypedArray:c=>c.contents?c.contents.subarray?c.contents.subarray(0,c.usedBytes):new Uint8Array(c.contents):new Uint8Array(0),expandFileStorage(c,u){var h=c.contents?c.contents.length:0;if(!(h>=u)){u=Math.max(u,h*(h<1048576?2:1.125)>>>0),h!=0&&(u=Math.max(u,256));var E=c.contents;c.contents=new Uint8Array(u),c.usedBytes>0&&c.contents.set(E.subarray(0,c.usedBytes),0)}},resizeFileStorage(c,u){if(c.usedBytes!=u)if(u==0)c.contents=null,c.usedBytes=0;else{var h=c.contents;c.contents=new Uint8Array(u),h&&c.contents.set(h.subarray(0,Math.min(u,c.usedBytes))),c.usedBytes=u}},node_ops:{getattr(c){var u={};return u.dev=_.isChrdev(c.mode)?c.id:1,u.ino=c.id,u.mode=c.mode,u.nlink=1,u.uid=0,u.gid=0,u.rdev=c.rdev,_.isDir(c.mode)?u.size=4096:_.isFile(c.mode)?u.size=c.usedBytes:_.isLink(c.mode)?u.size=c.link.length:u.size=0,u.atime=new Date(c.timestamp),u.mtime=new Date(c.timestamp),u.ctime=new Date(c.timestamp),u.blksize=4096,u.blocks=Math.ceil(u.size/u.blksize),u},setattr(c,u){u.mode!==void 0&&(c.mode=u.mode),u.timestamp!==void 0&&(c.timestamp=u.timestamp),u.size!==void 0&&ve.resizeFileStorage(c,u.size)},lookup(c,u){throw _.genericErrors[44]},mknod:(c,u,h,E)=>ve.createNode(c,u,h,E),rename(c,u,h){if(_.isDir(c.mode)){var E;try{E=_.lookupNode(u,h)}catch(b){}if(E)for(var I in E.contents)throw new _.ErrnoError(55)}delete c.parent.contents[c.name],c.parent.timestamp=Date.now(),c.name=h,u.contents[h]=c,u.timestamp=c.parent.timestamp,c.parent=u},unlink(c,u){delete c.contents[u],c.timestamp=Date.now()},rmdir(c,u){var h=_.lookupNode(c,u);for(var E in h.contents)throw new _.ErrnoError(55);delete c.contents[u],c.timestamp=Date.now()},readdir(c){var u=[".",".."];for(var h in c.contents)c.contents.hasOwnProperty(h)&&u.push(h);return u},symlink(c,u,h){var E=ve.createNode(c,u,41471,0);return E.link=h,E},readlink(c){if(!_.isLink(c.mode))throw new _.ErrnoError(28);return c.link}},stream_ops:{read(c,u,h,E,I){var b=c.node.contents;if(I>=c.node.usedBytes)return 0;var v=Math.min(c.node.usedBytes-I,E);if(v>8&&b.subarray)u.set(b.subarray(I,I+v),h);else for(var D=0;D<v;D++)u[h+D]=b[I+D];return v},write(c,u,h,E,I,b){if(!E)return 0;var v=c.node;if(v.timestamp=Date.now(),u.subarray&&(!v.contents||v.contents.subarray)){if(b)return v.contents=u.subarray(h,h+E),v.usedBytes=E,E;if(v.usedBytes===0&&I===0)return v.contents=u.slice(h,h+E),v.usedBytes=E,E;if(I+E<=v.usedBytes)return v.contents.set(u.subarray(h,h+E),I),E}if(ve.expandFileStorage(v,I+E),v.contents.subarray&&u.subarray)v.contents.set(u.subarray(h,h+E),I);else for(var D=0;D<E;D++)v.contents[I+D]=u[h+D];return v.usedBytes=Math.max(v.usedBytes,I+E),E},llseek(c,u,h){var E=u;if(h===1?E+=c.position:h===2&&_.isFile(c.node.mode)&&(E+=c.node.usedBytes),E<0)throw new _.ErrnoError(28);return E},allocate(c,u,h){ve.expandFileStorage(c.node,u+h),c.node.usedBytes=Math.max(c.node.usedBytes,u+h)},mmap(c,u,h,E,I){if(!_.isFile(c.node.mode))throw new _.ErrnoError(43);var b,v,D=c.node.contents;if(2&I||D.buffer!==X.buffer){if((h>0||h+u<D.length)&&(D=D.subarray?D.subarray(h,h+u):Array.prototype.slice.call(D,h,h+u)),v=!0,!(b=oa()))throw new _.ErrnoError(48);X.set(D,b)}else v=!1,b=D.byteOffset;return{ptr:b,allocated:v}},msync:(c,u,h,E,I)=>(ve.stream_ops.write(c,u,0,E,h,!1),0)}},jl=(c,u,h,E)=>{var I=E?"":`al ${c}`;n(c,b=>{var v;v=`Loading data file "${c}" failed (no arrayBuffer).`,b||Zr(v),u(new Uint8Array(b)),I&&Go()},b=>{if(!h)throw`Loading data file "${c}" failed.`;h()}),I&&re()},le=o.preloadPlugins||[];function Si(c,u){var h=0;return c&&(h|=365),u&&(h|=146),h}var _={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(c,u={})=>{if(!(c=rr.resolve(c)))return{path:"",node:null};if((u=Object.assign({follow_mount:!0,recurse_count:0},u)).recurse_count>8)throw new _.ErrnoError(32);for(var h=c.split("/").filter(k=>!!k),E=_.root,I="/",b=0;b<h.length;b++){var v=b===h.length-1;if(v&&u.parent)break;if(E=_.lookupNode(E,h[b]),I=me.join2(I,h[b]),_.isMountpoint(E)&&(!v||v&&u.follow_mount)&&(E=E.mounted.root),!v||u.follow)for(var D=0;_.isLink(E.mode);){var V=_.readlink(I);if(I=rr.resolve(me.dirname(I),V),E=_.lookupPath(I,{recurse_count:u.recurse_count+1}).node,D++>40)throw new _.ErrnoError(32)}}return{path:I,node:E}},getPath:c=>{for(var u;;){if(_.isRoot(c)){var h=c.mount.mountpoint;return u?h[h.length-1]!=="/"?`${h}/${u}`:h+u:h}u=u?`${c.name}/${u}`:c.name,c=c.parent}},hashName:(c,u)=>{for(var h=0,E=0;E<u.length;E++)h=(h<<5)-h+u.charCodeAt(E)|0;return(c+h>>>0)%_.nameTable.length},hashAddNode:c=>{var u=_.hashName(c.parent.id,c.name);c.name_next=_.nameTable[u],_.nameTable[u]=c},hashRemoveNode:c=>{var u=_.hashName(c.parent.id,c.name);if(_.nameTable[u]===c)_.nameTable[u]=c.name_next;else for(var h=_.nameTable[u];h;){if(h.name_next===c){h.name_next=c.name_next;break}h=h.name_next}},lookupNode:(c,u)=>{var h=_.mayLookup(c);if(h)throw new _.ErrnoError(h,c);for(var E=_.hashName(c.id,u),I=_.nameTable[E];I;I=I.name_next){var b=I.name;if(I.parent.id===c.id&&b===u)return I}return _.lookup(c,u)},createNode:(c,u,h,E)=>{var I=new _.FSNode(c,u,h,E);return _.hashAddNode(I),I},destroyNode:c=>{_.hashRemoveNode(c)},isRoot:c=>c===c.parent,isMountpoint:c=>!!c.mounted,isFile:c=>(61440&c)==32768,isDir:c=>(61440&c)==16384,isLink:c=>(61440&c)==40960,isChrdev:c=>(61440&c)==8192,isBlkdev:c=>(61440&c)==24576,isFIFO:c=>(61440&c)==4096,isSocket:c=>!(49152&~c),flagsToPermissionString:c=>{var u=["r","w","rw"][3&c];return 512&c&&(u+="w"),u},nodePermissions:(c,u)=>_.ignorePermissions||(!u.includes("r")||292&c.mode)&&(!u.includes("w")||146&c.mode)&&(!u.includes("x")||73&c.mode)?0:2,mayLookup:c=>{var u=_.nodePermissions(c,"x");return u||(c.node_ops.lookup?0:2)},mayCreate:(c,u)=>{try{return _.lookupNode(c,u),20}catch(h){}return _.nodePermissions(c,"wx")},mayDelete:(c,u,h)=>{var E;try{E=_.lookupNode(c,u)}catch(b){return b.errno}var I=_.nodePermissions(c,"wx");if(I)return I;if(h){if(!_.isDir(E.mode))return 54;if(_.isRoot(E)||_.getPath(E)===_.cwd())return 10}else if(_.isDir(E.mode))return 31;return 0},mayOpen:(c,u)=>c?_.isLink(c.mode)?32:_.isDir(c.mode)&&(_.flagsToPermissionString(u)!=="r"||512&u)?31:_.nodePermissions(c,_.flagsToPermissionString(u)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var c=0;c<=_.MAX_OPEN_FDS;c++)if(!_.streams[c])return c;throw new _.ErrnoError(33)},getStreamChecked:c=>{var u=_.getStream(c);if(!u)throw new _.ErrnoError(8);return u},getStream:c=>_.streams[c],createStream:(c,u=-1)=>(_.FSStream||(_.FSStream=function(){this.shared={}},_.FSStream.prototype={},Object.defineProperties(_.FSStream.prototype,{object:{get(){return this.node},set(h){this.node=h}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(h){this.shared.flags=h}},position:{get(){return this.shared.position},set(h){this.shared.position=h}}})),c=Object.assign(new _.FSStream,c),u==-1&&(u=_.nextfd()),c.fd=u,_.streams[u]=c,c),closeStream:c=>{_.streams[c]=null},chrdev_stream_ops:{open:c=>{var u=_.getDevice(c.node.rdev);c.stream_ops=u.stream_ops,c.stream_ops.open&&c.stream_ops.open(c)},llseek:()=>{throw new _.ErrnoError(70)}},major:c=>c>>8,minor:c=>255&c,makedev:(c,u)=>c<<8|u,registerDevice:(c,u)=>{_.devices[c]={stream_ops:u}},getDevice:c=>_.devices[c],getMounts:c=>{for(var u=[],h=[c];h.length;){var E=h.pop();u.push(E),h.push.apply(h,E.mounts)}return u},syncfs:(c,u)=>{typeof c=="function"&&(u=c,c=!1),_.syncFSRequests++,_.syncFSRequests>1&&N(`warning: ${_.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var h=_.getMounts(_.root.mount),E=0;function I(v){return _.syncFSRequests--,u(v)}function b(v){if(v)return b.errored?void 0:(b.errored=!0,I(v));++E>=h.length&&I(null)}h.forEach(v=>{if(!v.type.syncfs)return b(null);v.type.syncfs(v,c,b)})},mount:(c,u,h)=>{var E,I=h==="/",b=!h;if(I&&_.root)throw new _.ErrnoError(10);if(!I&&!b){var v=_.lookupPath(h,{follow_mount:!1});if(h=v.path,E=v.node,_.isMountpoint(E))throw new _.ErrnoError(10);if(!_.isDir(E.mode))throw new _.ErrnoError(54)}var D={type:c,opts:u,mountpoint:h,mounts:[]},V=c.mount(D);return V.mount=D,D.root=V,I?_.root=V:E&&(E.mounted=D,E.mount&&E.mount.mounts.push(D)),V},unmount:c=>{var u=_.lookupPath(c,{follow_mount:!1});if(!_.isMountpoint(u.node))throw new _.ErrnoError(28);var h=u.node,E=h.mounted,I=_.getMounts(E);Object.keys(_.nameTable).forEach(v=>{for(var D=_.nameTable[v];D;){var V=D.name_next;I.includes(D.mount)&&_.destroyNode(D),D=V}}),h.mounted=null;var b=h.mount.mounts.indexOf(E);h.mount.mounts.splice(b,1)},lookup:(c,u)=>c.node_ops.lookup(c,u),mknod:(c,u,h)=>{var E=_.lookupPath(c,{parent:!0}).node,I=me.basename(c);if(!I||I==="."||I==="..")throw new _.ErrnoError(28);var b=_.mayCreate(E,I);if(b)throw new _.ErrnoError(b);if(!E.node_ops.mknod)throw new _.ErrnoError(63);return E.node_ops.mknod(E,I,u,h)},create:(c,u)=>(u=u!==void 0?u:438,u&=4095,u|=32768,_.mknod(c,u,0)),mkdir:(c,u)=>(u=u!==void 0?u:511,u&=1023,u|=16384,_.mknod(c,u,0)),mkdirTree:(c,u)=>{for(var h=c.split("/"),E="",I=0;I<h.length;++I)if(h[I]){E+="/"+h[I];try{_.mkdir(E,u)}catch(b){if(b.errno!=20)throw b}}},mkdev:(c,u,h)=>(h===void 0&&(h=u,u=438),u|=8192,_.mknod(c,u,h)),symlink:(c,u)=>{if(!rr.resolve(c))throw new _.ErrnoError(44);var h=_.lookupPath(u,{parent:!0}).node;if(!h)throw new _.ErrnoError(44);var E=me.basename(u),I=_.mayCreate(h,E);if(I)throw new _.ErrnoError(I);if(!h.node_ops.symlink)throw new _.ErrnoError(63);return h.node_ops.symlink(h,E,c)},rename:(c,u)=>{var h,E,I=me.dirname(c),b=me.dirname(u),v=me.basename(c),D=me.basename(u);if(h=_.lookupPath(c,{parent:!0}).node,E=_.lookupPath(u,{parent:!0}).node,!h||!E)throw new _.ErrnoError(44);if(h.mount!==E.mount)throw new _.ErrnoError(75);var V,k=_.lookupNode(h,v),ee=rr.relative(c,b);if(ee.charAt(0)!==".")throw new _.ErrnoError(28);if((ee=rr.relative(u,I)).charAt(0)!==".")throw new _.ErrnoError(55);try{V=_.lookupNode(E,D)}catch(ae){}if(k!==V){var ce=_.isDir(k.mode),de=_.mayDelete(h,v,ce);if(de)throw new _.ErrnoError(de);if(de=V?_.mayDelete(E,D,ce):_.mayCreate(E,D))throw new _.ErrnoError(de);if(!h.node_ops.rename)throw new _.ErrnoError(63);if(_.isMountpoint(k)||V&&_.isMountpoint(V))throw new _.ErrnoError(10);if(E!==h&&(de=_.nodePermissions(h,"w")))throw new _.ErrnoError(de);_.hashRemoveNode(k);try{h.node_ops.rename(k,E,D)}catch(ae){throw ae}finally{_.hashAddNode(k)}}},rmdir:c=>{var u=_.lookupPath(c,{parent:!0}).node,h=me.basename(c),E=_.lookupNode(u,h),I=_.mayDelete(u,h,!0);if(I)throw new _.ErrnoError(I);if(!u.node_ops.rmdir)throw new _.ErrnoError(63);if(_.isMountpoint(E))throw new _.ErrnoError(10);u.node_ops.rmdir(u,h),_.destroyNode(E)},readdir:c=>{var u=_.lookupPath(c,{follow:!0}).node;if(!u.node_ops.readdir)throw new _.ErrnoError(54);return u.node_ops.readdir(u)},unlink:c=>{var u=_.lookupPath(c,{parent:!0}).node;if(!u)throw new _.ErrnoError(44);var h=me.basename(c),E=_.lookupNode(u,h),I=_.mayDelete(u,h,!1);if(I)throw new _.ErrnoError(I);if(!u.node_ops.unlink)throw new _.ErrnoError(63);if(_.isMountpoint(E))throw new _.ErrnoError(10);u.node_ops.unlink(u,h),_.destroyNode(E)},readlink:c=>{var u=_.lookupPath(c).node;if(!u)throw new _.ErrnoError(44);if(!u.node_ops.readlink)throw new _.ErrnoError(28);return rr.resolve(_.getPath(u.parent),u.node_ops.readlink(u))},stat:(c,u)=>{var h=_.lookupPath(c,{follow:!u}).node;if(!h)throw new _.ErrnoError(44);if(!h.node_ops.getattr)throw new _.ErrnoError(63);return h.node_ops.getattr(h)},lstat:c=>_.stat(c,!0),chmod:(c,u,h)=>{var E;if(typeof c=="string"?E=_.lookupPath(c,{follow:!h}).node:E=c,!E.node_ops.setattr)throw new _.ErrnoError(63);E.node_ops.setattr(E,{mode:4095&u|-4096&E.mode,timestamp:Date.now()})},lchmod:(c,u)=>{_.chmod(c,u,!0)},fchmod:(c,u)=>{var h=_.getStreamChecked(c);_.chmod(h.node,u)},chown:(c,u,h,E)=>{var I;if(typeof c=="string"?I=_.lookupPath(c,{follow:!E}).node:I=c,!I.node_ops.setattr)throw new _.ErrnoError(63);I.node_ops.setattr(I,{timestamp:Date.now()})},lchown:(c,u,h)=>{_.chown(c,u,h,!0)},fchown:(c,u,h)=>{var E=_.getStreamChecked(c);_.chown(E.node,u,h)},truncate:(c,u)=>{if(u<0)throw new _.ErrnoError(28);var h;if(typeof c=="string"?h=_.lookupPath(c,{follow:!0}).node:h=c,!h.node_ops.setattr)throw new _.ErrnoError(63);if(_.isDir(h.mode))throw new _.ErrnoError(31);if(!_.isFile(h.mode))throw new _.ErrnoError(28);var E=_.nodePermissions(h,"w");if(E)throw new _.ErrnoError(E);h.node_ops.setattr(h,{size:u,timestamp:Date.now()})},ftruncate:(c,u)=>{var h=_.getStreamChecked(c);if(!(2097155&h.flags))throw new _.ErrnoError(28);_.truncate(h.node,u)},utime:(c,u,h)=>{var E=_.lookupPath(c,{follow:!0}).node;E.node_ops.setattr(E,{timestamp:Math.max(u,h)})},open:(c,u,h)=>{if(c==="")throw new _.ErrnoError(44);var E;if(h=h===void 0?438:h,h=64&(u=typeof u=="string"?function(D){var V={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[D];if(V===void 0)throw new Error(`Unknown file open mode: ${D}`);return V}(u):u)?4095&h|32768:0,typeof c=="object")E=c;else{c=me.normalize(c);try{E=_.lookupPath(c,{follow:!(131072&u)}).node}catch(D){}}var I=!1;if(64&u)if(E){if(128&u)throw new _.ErrnoError(20)}else E=_.mknod(c,h,0),I=!0;if(!E)throw new _.ErrnoError(44);if(_.isChrdev(E.mode)&&(u&=-513),65536&u&&!_.isDir(E.mode))throw new _.ErrnoError(54);if(!I){var b=_.mayOpen(E,u);if(b)throw new _.ErrnoError(b)}512&u&&!I&&_.truncate(E,0),u&=-131713;var v=_.createStream({node:E,path:_.getPath(E),flags:u,seekable:!0,position:0,stream_ops:E.stream_ops,ungotten:[],error:!1});return v.stream_ops.open&&v.stream_ops.open(v),!o.logReadFiles||1&u||(_.readFiles||(_.readFiles={}),c in _.readFiles||(_.readFiles[c]=1)),v},close:c=>{if(_.isClosed(c))throw new _.ErrnoError(8);c.getdents&&(c.getdents=null);try{c.stream_ops.close&&c.stream_ops.close(c)}catch(u){throw u}finally{_.closeStream(c.fd)}c.fd=null},isClosed:c=>c.fd===null,llseek:(c,u,h)=>{if(_.isClosed(c))throw new _.ErrnoError(8);if(!c.seekable||!c.stream_ops.llseek)throw new _.ErrnoError(70);if(h!=0&&h!=1&&h!=2)throw new _.ErrnoError(28);return c.position=c.stream_ops.llseek(c,u,h),c.ungotten=[],c.position},read:(c,u,h,E,I)=>{if(E<0||I<0)throw new _.ErrnoError(28);if(_.isClosed(c))throw new _.ErrnoError(8);if((2097155&c.flags)==1)throw new _.ErrnoError(8);if(_.isDir(c.node.mode))throw new _.ErrnoError(31);if(!c.stream_ops.read)throw new _.ErrnoError(28);var b=I!==void 0;if(b){if(!c.seekable)throw new _.ErrnoError(70)}else I=c.position;var v=c.stream_ops.read(c,u,h,E,I);return b||(c.position+=v),v},write:(c,u,h,E,I,b)=>{if(E<0||I<0)throw new _.ErrnoError(28);if(_.isClosed(c))throw new _.ErrnoError(8);if(!(2097155&c.flags))throw new _.ErrnoError(8);if(_.isDir(c.node.mode))throw new _.ErrnoError(31);if(!c.stream_ops.write)throw new _.ErrnoError(28);c.seekable&&1024&c.flags&&_.llseek(c,0,2);var v=I!==void 0;if(v){if(!c.seekable)throw new _.ErrnoError(70)}else I=c.position;var D=c.stream_ops.write(c,u,h,E,I,b);return v||(c.position+=D),D},allocate:(c,u,h)=>{if(_.isClosed(c))throw new _.ErrnoError(8);if(u<0||h<=0)throw new _.ErrnoError(28);if(!(2097155&c.flags))throw new _.ErrnoError(8);if(!_.isFile(c.node.mode)&&!_.isDir(c.node.mode))throw new _.ErrnoError(43);if(!c.stream_ops.allocate)throw new _.ErrnoError(138);c.stream_ops.allocate(c,u,h)},mmap:(c,u,h,E,I)=>{if(2&E&&!(2&I)&&(2097155&c.flags)!=2)throw new _.ErrnoError(2);if((2097155&c.flags)==1)throw new _.ErrnoError(2);if(!c.stream_ops.mmap)throw new _.ErrnoError(43);return c.stream_ops.mmap(c,u,h,E,I)},msync:(c,u,h,E,I)=>c.stream_ops.msync?c.stream_ops.msync(c,u,h,E,I):0,munmap:c=>0,ioctl:(c,u,h)=>{if(!c.stream_ops.ioctl)throw new _.ErrnoError(59);return c.stream_ops.ioctl(c,u,h)},readFile:(c,u={})=>{if(u.flags=u.flags||0,u.encoding=u.encoding||"binary",u.encoding!=="utf8"&&u.encoding!=="binary")throw new Error(`Invalid encoding type "${u.encoding}"`);var h,E=_.open(c,u.flags),I=_.stat(c).size,b=new Uint8Array(I);return _.read(E,b,0,I,0),u.encoding==="utf8"?h=jt(b,0):u.encoding==="binary"&&(h=b),_.close(E),h},writeFile:(c,u,h={})=>{h.flags=h.flags||577;var E=_.open(c,h.flags,h.mode);if(typeof u=="string"){var I=new Uint8Array(jo(u)+1),b=qo(u,I,0,I.length);_.write(E,I,0,b,void 0,h.canOwn)}else{if(!ArrayBuffer.isView(u))throw new Error("Unsupported data type");_.write(E,u,0,u.byteLength,void 0,h.canOwn)}_.close(E)},cwd:()=>_.currentPath,chdir:c=>{var u=_.lookupPath(c,{follow:!0});if(u.node===null)throw new _.ErrnoError(44);if(!_.isDir(u.node.mode))throw new _.ErrnoError(54);var h=_.nodePermissions(u.node,"x");if(h)throw new _.ErrnoError(h);_.currentPath=u.path},createDefaultDirectories:()=>{_.mkdir("/tmp"),_.mkdir("/home"),_.mkdir("/home/web_user")},createDefaultDevices:()=>{_.mkdir("/dev"),_.registerDevice(_.makedev(1,3),{read:()=>0,write:(E,I,b,v,D)=>v}),_.mkdev("/dev/null",_.makedev(1,3)),Mr.register(_.makedev(5,0),Mr.default_tty_ops),Mr.register(_.makedev(6,0),Mr.default_tty1_ops),_.mkdev("/dev/tty",_.makedev(5,0)),_.mkdev("/dev/tty1",_.makedev(6,0));var c=new Uint8Array(1024),u=0,h=()=>(u===0&&(u=ra(c).byteLength),c[--u]);_.createDevice("/dev","random",h),_.createDevice("/dev","urandom",h),_.mkdir("/dev/shm"),_.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{_.mkdir("/proc");var c=_.mkdir("/proc/self");_.mkdir("/proc/self/fd"),_.mount({mount:()=>{var u=_.createNode(c,"fd",16895,73);return u.node_ops={lookup:(h,E)=>{var I=+E,b=_.getStreamChecked(I),v={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>b.path}};return v.parent=v,v}},u}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?_.createDevice("/dev","stdin",o.stdin):_.symlink("/dev/tty","/dev/stdin"),o.stdout?_.createDevice("/dev","stdout",null,o.stdout):_.symlink("/dev/tty","/dev/stdout"),o.stderr?_.createDevice("/dev","stderr",null,o.stderr):_.symlink("/dev/tty1","/dev/stderr"),_.open("/dev/stdin",0),_.open("/dev/stdout",1),_.open("/dev/stderr",1)},ensureErrnoError:()=>{_.ErrnoError||(_.ErrnoError=function(c,u){this.name="ErrnoError",this.node=u,this.setErrno=function(h){this.errno=h},this.setErrno(c),this.message="FS error"},_.ErrnoError.prototype=new Error,_.ErrnoError.prototype.constructor=_.ErrnoError,[44].forEach(c=>{_.genericErrors[c]=new _.ErrnoError(c),_.genericErrors[c].stack="<generic error, no stack>"}))},staticInit:()=>{_.ensureErrnoError(),_.nameTable=new Array(4096),_.mount(ve,{},"/"),_.createDefaultDirectories(),_.createDefaultDevices(),_.createSpecialDirectories(),_.filesystems={MEMFS:ve}},init:(c,u,h)=>{_.init.initialized=!0,_.ensureErrnoError(),o.stdin=c||o.stdin,o.stdout=u||o.stdout,o.stderr=h||o.stderr,_.createStandardStreams()},quit:()=>{_.init.initialized=!1;for(var c=0;c<_.streams.length;c++){var u=_.streams[c];u&&_.close(u)}},findObject:(c,u)=>{var h=_.analyzePath(c,u);return h.exists?h.object:null},analyzePath:(c,u)=>{try{c=(E=_.lookupPath(c,{follow:!u})).path}catch(I){}var h={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var E=_.lookupPath(c,{parent:!0});h.parentExists=!0,h.parentPath=E.path,h.parentObject=E.node,h.name=me.basename(c),E=_.lookupPath(c,{follow:!u}),h.exists=!0,h.path=E.path,h.object=E.node,h.name=E.node.name,h.isRoot=E.path==="/"}catch(I){h.error=I.errno}return h},createPath:(c,u,h,E)=>{c=typeof c=="string"?c:_.getPath(c);for(var I=u.split("/").reverse();I.length;){var b=I.pop();if(b){var v=me.join2(c,b);try{_.mkdir(v)}catch(D){}c=v}}return v},createFile:(c,u,h,E,I)=>{var b=me.join2(typeof c=="string"?c:_.getPath(c),u),v=Si(E,I);return _.create(b,v)},createDataFile:(c,u,h,E,I,b)=>{var v=u;c&&(c=typeof c=="string"?c:_.getPath(c),v=u?me.join2(c,u):c);var D=Si(E,I),V=_.create(v,D);if(h){if(typeof h=="string"){for(var k=new Array(h.length),ee=0,ce=h.length;ee<ce;++ee)k[ee]=h.charCodeAt(ee);h=k}_.chmod(V,146|D);var de=_.open(V,577);_.write(de,h,0,h.length,0,b),_.close(de),_.chmod(V,D)}return V},createDevice:(c,u,h,E)=>{var I=me.join2(typeof c=="string"?c:_.getPath(c),u),b=Si(!!h,!!E);_.createDevice.major||(_.createDevice.major=64);var v=_.makedev(_.createDevice.major++,0);return _.registerDevice(v,{open:D=>{D.seekable=!1},close:D=>{E&&E.buffer&&E.buffer.length&&E(10)},read:(D,V,k,ee,ce)=>{for(var de=0,ae=0;ae<ee;ae++){var De;try{De=h()}catch($e){throw new _.ErrnoError(29)}if(De===void 0&&de===0)throw new _.ErrnoError(6);if(De==null)break;de++,V[k+ae]=De}return de&&(D.node.timestamp=Date.now()),de},write:(D,V,k,ee,ce)=>{for(var de=0;de<ee;de++)try{E(V[k+de])}catch(ae){throw new _.ErrnoError(29)}return ee&&(D.node.timestamp=Date.now()),de}}),_.mkdev(I,b,v)},forceLoadFile:c=>{if(c.isDevice||c.isFolder||c.link||c.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(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{c.contents=Gs(s(c.url),!0),c.usedBytes=c.contents.length}catch(u){throw new _.ErrnoError(29)}},createLazyFile:(c,u,h,E,I)=>{function b(){this.lengthKnown=!1,this.chunks=[]}if(b.prototype.get=function(ce){if(!(ce>this.length-1||ce<0)){var de=ce%this.chunkSize,ae=ce/this.chunkSize|0;return this.getter(ae)[de]}},b.prototype.setDataGetter=function(ce){this.getter=ce},b.prototype.cacheLength=function(){var ce=new XMLHttpRequest;if(ce.open("HEAD",h,!1),ce.send(null),!(ce.status>=200&&ce.status<300||ce.status===304))throw new Error("Couldn't load "+h+". Status: "+ce.status);var de,ae=Number(ce.getResponseHeader("Content-length")),De=(de=ce.getResponseHeader("Accept-Ranges"))&&de==="bytes",$e=(de=ce.getResponseHeader("Content-Encoding"))&&de==="gzip",ke=1048576;De||(ke=ae);var dt=this;dt.setDataGetter(it=>{var vt=it*ke,ho=(it+1)*ke-1;if(ho=Math.min(ho,ae-1),dt.chunks[it]===void 0&&(dt.chunks[it]=((yr,es)=>{if(yr>es)throw new Error("invalid range ("+yr+", "+es+") or no bytes requested!");if(es>ae-1)throw new Error("only "+ae+" bytes available! programmer error!");var Et=new XMLHttpRequest;if(Et.open("GET",h,!1),ae!==ke&&Et.setRequestHeader("Range","bytes="+yr+"-"+es),Et.responseType="arraybuffer",Et.overrideMimeType&&Et.overrideMimeType("text/plain; charset=x-user-defined"),Et.send(null),!(Et.status>=200&&Et.status<300||Et.status===304))throw new Error("Couldn't load "+h+". Status: "+Et.status);return Et.response!==void 0?new Uint8Array(Et.response||[]):Gs(Et.responseText||"",!0)})(vt,ho)),dt.chunks[it]===void 0)throw new Error("doXHR failed!");return dt.chunks[it]}),!$e&&ae||(ke=ae=1,ae=this.getter(0).length,ke=ae,R("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=ae,this._chunkSize=ke,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!f)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var v=new b;Object.defineProperties(v,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var D={isDevice:!1,contents:v}}else D={isDevice:!1,url:h};var V=_.createFile(c,u,D,E,I);D.contents?V.contents=D.contents:D.url&&(V.contents=null,V.url=D.url),Object.defineProperties(V,{usedBytes:{get:function(){return this.contents.length}}});var k={};function ee(ce,de,ae,De,$e){var ke=ce.node.contents;if($e>=ke.length)return 0;var dt=Math.min(ke.length-$e,De);if(ke.slice)for(var it=0;it<dt;it++)de[ae+it]=ke[$e+it];else for(it=0;it<dt;it++)de[ae+it]=ke.get($e+it);return dt}return Object.keys(V.stream_ops).forEach(ce=>{var de=V.stream_ops[ce];k[ce]=function(){return _.forceLoadFile(V),de.apply(null,arguments)}}),k.read=(ce,de,ae,De,$e)=>(_.forceLoadFile(V),ee(ce,de,ae,De,$e)),k.mmap=(ce,de,ae,De,$e)=>{_.forceLoadFile(V);var ke=oa();if(!ke)throw new _.ErrnoError(48);return ee(ce,X,ke,de,ae),{ptr:ke,allocated:!0}},V.stream_ops=k,V}},oo=(c,u)=>c?jt(H,c,u):"",Dt={DEFAULT_POLLMASK:5,calculateAt:function(c,u,h){if(me.isAbs(u))return u;var E;if(c===-100?E=_.cwd():E=Dt.getStreamFromFD(c).path,u.length==0){if(!h)throw new _.ErrnoError(44);return E}return me.join2(E,u)},doStat:function(c,u,h){try{var E=c(u)}catch(D){if(D&&D.node&&me.normalize(u)!==me.normalize(_.getPath(D.node)))return-54;throw D}W[h>>2]=E.dev,W[h+4>>2]=E.mode,we[h+8>>2]=E.nlink,W[h+12>>2]=E.uid,W[h+16>>2]=E.gid,W[h+20>>2]=E.rdev,rt=[E.size>>>0,(Se=E.size,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+24>>2]=rt[0],W[h+28>>2]=rt[1],W[h+32>>2]=4096,W[h+36>>2]=E.blocks;var I=E.atime.getTime(),b=E.mtime.getTime(),v=E.ctime.getTime();return rt=[Math.floor(I/1e3)>>>0,(Se=Math.floor(I/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+40>>2]=rt[0],W[h+44>>2]=rt[1],we[h+48>>2]=I%1e3*1e3,rt=[Math.floor(b/1e3)>>>0,(Se=Math.floor(b/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+56>>2]=rt[0],W[h+60>>2]=rt[1],we[h+64>>2]=b%1e3*1e3,rt=[Math.floor(v/1e3)>>>0,(Se=Math.floor(v/1e3),+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+72>>2]=rt[0],W[h+76>>2]=rt[1],we[h+80>>2]=v%1e3*1e3,rt=[E.ino>>>0,(Se=E.ino,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[h+88>>2]=rt[0],W[h+92>>2]=rt[1],0},doMsync:function(c,u,h,E,I){if(!_.isFile(u.node.mode))throw new _.ErrnoError(43);if(2&E)return 0;var b=H.slice(c,c+h);_.msync(u,b,I,h,E)},varargs:void 0,get:()=>(Dt.varargs+=4,W[Dt.varargs-4>>2]),getStr:c=>oo(c),getStreamFromFD:function(c){return _.getStreamChecked(c)}};function yi(c){switch(c){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${c}`)}}var Wc=void 0;function Mt(c){for(var u="",h=c;H[h];)u+=Wc[H[h++]];return u}var L={},Sr={},js={},so=void 0;function Be(c){throw new so(c)}var Gc=void 0;function ur(c){throw new Gc(c)}function ei(c,u,h){function E(D){var V=h(D);V.length!==c.length&&ur("Mismatched type converter count");for(var k=0;k<c.length;++k)lr(c[k],V[k])}c.forEach(function(D){js[D]=u});var I=new Array(u.length),b=[],v=0;u.forEach((D,V)=>{Sr.hasOwnProperty(D)?I[V]=Sr[D]:(b.push(D),L.hasOwnProperty(D)||(L[D]=[]),L[D].push(()=>{I[V]=Sr[D],++v===b.length&&E(I)}))}),b.length===0&&E(I)}function lr(c,u,h={}){if(!("argPackAdvance"in u))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(E,I,b={}){var v=I.name;if(E||Be(`type "${v}" must have a positive integer typeid pointer`),Sr.hasOwnProperty(E)){if(b.ignoreDuplicateRegistrations)return;Be(`Cannot register type '${v}' twice`)}if(Sr[E]=I,delete js[E],L.hasOwnProperty(E)){var D=L[E];delete L[E],D.forEach(V=>V())}}(c,u,h)}function jc(c){if(!(this instanceof xr)||!(c instanceof xr))return!1;for(var u=this.$$.ptrType.registeredClass,h=this.$$.ptr,E=c.$$.ptrType.registeredClass,I=c.$$.ptr;u.baseClass;)h=u.upcast(h),u=u.baseClass;for(;E.baseClass;)I=E.upcast(I),E=E.baseClass;return u===E&&h===I}function sa(c){Be(c.$$.ptrType.registeredClass.name+" instance already deleted")}var zo=!1;function qc(c){}function zc(c){c.count.value-=1,c.count.value===0&&function(u){u.smartPtr?u.smartPtrType.rawDestructor(u.smartPtr):u.ptrType.registeredClass.rawDestructor(u.ptr)}(c)}function Jc(c,u,h){if(u===h)return c;if(h.baseClass===void 0)return null;var E=Jc(c,u,h.baseClass);return E===null?null:h.downcast(E)}var Jo={};function ql(){return Object.keys(Qo).length}function zl(){var c=[];for(var u in Qo)Qo.hasOwnProperty(u)&&c.push(Qo[u]);return c}var Xo=[];function mr(){for(;Xo.length;){var c=Xo.pop();c.$$.deleteScheduled=!1,c.delete()}}var ti=void 0;function Xc(c){ti=c,Xo.length&&ti&&ti(mr)}var Qo={};function no(c,u){return u=function(h,E){for(E===void 0&&Be("ptr should not be undefined");h.baseClass;)E=h.upcast(E),h=h.baseClass;return E}(c,u),Qo[u]}function Yo(c,u){return u.ptrType&&u.ptr||ur("makeClassHandle requires ptr and ptrType"),!!u.smartPtrType!=!!u.smartPtr&&ur("Both smartPtrType and smartPtr must be specified"),u.count={value:1},ao(Object.create(c,{$$:{value:u}}))}function Qc(c){var u=this.getPointee(c);if(!u)return this.destructor(c),null;var h=no(this.registeredClass,u);if(h!==void 0){if(h.$$.count.value===0)return h.$$.ptr=u,h.$$.smartPtr=c,h.clone();var E=h.clone();return this.destructor(c),E}function I(){return this.isSmartPointer?Yo(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:u,smartPtrType:this,smartPtr:c}):Yo(this.registeredClass.instancePrototype,{ptrType:this,ptr:c})}var b,v=this.registeredClass.getActualType(u),D=Jo[v];if(!D)return I.call(this);b=this.isConst?D.constPointerType:D.pointerType;var V=Jc(u,this.registeredClass,b.registeredClass);return V===null?I.call(this):this.isSmartPointer?Yo(b.registeredClass.instancePrototype,{ptrType:b,ptr:V,smartPtrType:this,smartPtr:c}):Yo(b.registeredClass.instancePrototype,{ptrType:b,ptr:V})}var ao=function(c){return typeof FinalizationRegistry=="undefined"?(ao=u=>u,c):(zo=new FinalizationRegistry(u=>{zc(u.$$)}),qc=u=>zo.unregister(u),(ao=u=>{var h=u.$$;if(h.smartPtr){var E={$$:h};zo.register(u,E,u)}return u})(c))};function Yc(){if(this.$$.ptr||sa(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var c,u=ao(Object.create(Object.getPrototypeOf(this),{$$:{value:(c=this.$$,{count:c.count,deleteScheduled:c.deleteScheduled,preservePointerOnDelete:c.preservePointerOnDelete,ptr:c.ptr,ptrType:c.ptrType,smartPtr:c.smartPtr,smartPtrType:c.smartPtrType})}}));return u.$$.count.value+=1,u.$$.deleteScheduled=!1,u}function Jl(){this.$$.ptr||sa(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Be("Object already scheduled for deletion"),qc(this),zc(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Zc(){return!this.$$.ptr}function Kc(){return this.$$.ptr||sa(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&Be("Object already scheduled for deletion"),Xo.push(this),Xo.length===1&&ti&&ti(mr),this.$$.deleteScheduled=!0,this}function xr(){}function qt(c){if(c===void 0)return"_unknown";var u=(c=c.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return u>=48&&u<=57?`_${c}`:c}function qs(c,u){return c=qt(c),{[c]:function(){return u.apply(this,arguments)}}[c]}function ed(c,u,h){if(c[u].overloadTable===void 0){var E=c[u];c[u]=function(){return c[u].overloadTable.hasOwnProperty(arguments.length)||Be(`Function '${h}' called with an invalid number of arguments (${arguments.length}) - expects one of (${c[u].overloadTable})!`),c[u].overloadTable[arguments.length].apply(this,arguments)},c[u].overloadTable=[],c[u].overloadTable[E.argCount]=E}}function zs(c,u,h,E,I,b,v,D){this.name=c,this.constructor=u,this.instancePrototype=h,this.rawDestructor=E,this.baseClass=I,this.getActualType=b,this.upcast=v,this.downcast=D,this.pureVirtualFunctions=[]}function Zo(c,u,h){for(;u!==h;)u.upcast||Be(`Expected null or instance of ${h.name}, got an instance of ${u.name}`),c=u.upcast(c),u=u.baseClass;return c}function Xl(c,u){if(u===null)return this.isReference&&Be(`null is not a valid ${this.name}`),0;u.$$||Be(`Cannot pass "${Ys(u)}" as a ${this.name}`),u.$$.ptr||Be(`Cannot pass deleted object as a pointer of type ${this.name}`);var h=u.$$.ptrType.registeredClass;return Zo(u.$$.ptr,h,this.registeredClass)}function Ql(c,u){var h;if(u===null)return this.isReference&&Be(`null is not a valid ${this.name}`),this.isSmartPointer?(h=this.rawConstructor(),c!==null&&c.push(this.rawDestructor,h),h):0;u.$$||Be(`Cannot pass "${Ys(u)}" as a ${this.name}`),u.$$.ptr||Be(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&u.$$.ptrType.isConst&&Be(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);var E=u.$$.ptrType.registeredClass;if(h=Zo(u.$$.ptr,E,this.registeredClass),this.isSmartPointer)switch(u.$$.smartPtr===void 0&&Be("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:u.$$.smartPtrType===this?h=u.$$.smartPtr:Be(`Cannot convert argument of type ${u.$$.smartPtrType?u.$$.smartPtrType.name:u.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:h=u.$$.smartPtr;break;case 2:if(u.$$.smartPtrType===this)h=u.$$.smartPtr;else{var I=u.clone();h=this.rawShare(h,lo.toHandle(function(){I.delete()})),c!==null&&c.push(this.rawDestructor,h)}break;default:Be("Unsupporting sharing policy")}return h}function td(c,u){if(u===null)return this.isReference&&Be(`null is not a valid ${this.name}`),0;u.$$||Be(`Cannot pass "${Ys(u)}" as a ${this.name}`),u.$$.ptr||Be(`Cannot pass deleted object as a pointer of type ${this.name}`),u.$$.ptrType.isConst&&Be(`Cannot convert argument of type ${u.$$.ptrType.name} to parameter type ${this.name}`);var h=u.$$.ptrType.registeredClass;return Zo(u.$$.ptr,h,this.registeredClass)}function Ko(c){return this.fromWireType(W[c>>2])}function Yl(c){return this.rawGetPointee&&(c=this.rawGetPointee(c)),c}function rd(c){this.rawDestructor&&this.rawDestructor(c)}function Zl(c){c!==null&&c.delete()}function Pr(c,u,h,E,I,b,v,D,V,k,ee){this.name=c,this.registeredClass=u,this.isReference=h,this.isConst=E,this.isSmartPointer=I,this.pointeeType=b,this.sharingPolicy=v,this.rawGetPointee=D,this.rawConstructor=V,this.rawShare=k,this.rawDestructor=ee,I||u.baseClass!==void 0?this.toWireType=Ql:E?(this.toWireType=Xl,this.destructorFunction=null):(this.toWireType=td,this.destructorFunction=null)}var Js=[],id=c=>{var u=Js[c];return u||(c>=Js.length&&(Js.length=c+1),Js[c]=u=Kn.get(c)),u},Kl=(c,u,h)=>c.includes("j")?((E,I,b)=>{var v=o["dynCall_"+E];return b&&b.length?v.apply(null,[I].concat(b)):v.call(null,I)})(c,u,h):id(u).apply(null,h);function co(c,u){var h,E,I,b=(c=Mt(c)).includes("j")?(h=c,E=u,I=[],function(){return I.length=0,Object.assign(I,arguments),Kl(h,E,I)}):id(u);return typeof b!="function"&&Be(`unknown function pointer with signature ${c}: ${u}`),b}var od=void 0;function Xs(c){var u=kr(c),h=Mt(u);return xt(u),h}function Qs(c,u){var h=[],E={};throw u.forEach(function I(b){E[b]||Sr[b]||(js[b]?js[b].forEach(I):(h.push(b),E[b]=!0))}),new od(`${c}: `+h.map(Xs).join([", "]))}function na(c,u){for(var h=[],E=0;E<c;E++)h.push(we[u+4*E>>2]);return h}function sd(c){for(;c.length;){var u=c.pop();c.pop()(u)}}function aa(c,u){if(!(c instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof c} which is not a function`);var h=qs(c.name||"unknownFunctionName",function(){});h.prototype=c.prototype;var E=new h,I=c.apply(E,u);return I instanceof Object?I:E}function uo(c,u,h,E,I,b){var v=u.length;v<2&&Be("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var D=u[1]!==null&&h!==null,V=!1,k=1;k<u.length;++k)if(u[k]!==null&&u[k].destructorFunction===void 0){V=!0;break}var ee=u[0].name!=="void",ce="",de="";for(k=0;k<v-2;++k)ce+=(k!==0?", ":"")+"arg"+k,de+=(k!==0?", ":"")+"arg"+k+"Wired";var ae=`
|
|
53
|
-
return function ${
|
|
54
|
-
if (arguments.length !== ${
|
|
55
|
-
throwBindingError('function ${
|
|
56
|
-
}`;
|
|
57
|
-
`);var
|
|
58
|
-
`),
|
|
59
|
-
|
|
60
|
-
`,
|
|
61
|
-
`;else for(
|
|
62
|
-
|
|
51
|
+
} `;var sn=class extends Ve{constructor(e){super();p(this,"frameRate");p(this,"_canvas");p(this,"log");p(this,"hasAlpha",!1);p(this,"name");p(this,"error");this.name=e.name,this.log=e.logger.createChild({id:`vc-${this.name}`}),this.frameRate=e.frameRate}get canvas(){return this._canvas}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 di(this,e,{logger:this.log,name:r})}createVideoTrackDestination(e){return new da(this,e)}createVideoImageSource(e,r){return new Pc(this,r?Object.assign(r,{logger:this.log,image:e}):{logger:this.log,image:e})}createVideoPlayerSource(e,r){return new Uc(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}createTextSource(e,r){return new yl(this,e,r?Object.assign(r,{logger:this.log}):{logger:this.log})}get available(){return this.state==="created"}disconnect(){this.emit("disconnect")}};p(sn,"_ids",0);var $A={alpha:!0,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0,powerPreference:"low-power"},ua=class ua extends sn{constructor(){super(...arguments);p(this,"defaultProgam");p(this,"defaultVShader");p(this,"defaultFShader");p(this,"ctx");p(this,"_canvas2d")}get canvas(){return this._canvas2d||this._canvas}create(e=!1){if(this._canvas||(this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${sn._ids++}`),e&&(this._canvas2d=document.createElement("canvas")),this.ctx=this._canvas.getContext("webgl2",$A),!this.ctx)throw new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:2,message:"webgl2 not supported"});this.defaultVShader=this.createShader(this.ctx.VERTEX_SHADER,VA),this.defaultFShader=this.createShader(this.ctx.FRAGMENT_SHADER,BA),this.defaultProgam=this.createProgram(this.defaultVShader,this.defaultFShader),this._canvas.addEventListener("webglcontextlost",()=>{this.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:4,message:"webgl context lost"}))})}destroy(e){let r="";return e&&(r=e.message,this.error=e,Se.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,this._canvas2d&&(this._canvas2d.width=e)}set height(e){var r;(r=this.ctx)==null||r.viewport(0,0,this.width,e),super.height=e,this._canvas2d&&(this._canvas2d.height=e)}setSize(e,r){var o;(o=this.ctx)==null||o.viewport(0,0,e,r),super.setSize(e,r),this._canvas2d&&(this._canvas2d.width=e,this._canvas2d.height=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}};p(ua,"UNAVAILABLE","unavailable"),Ie([Mt(Ve.INIT,"created",{sync:!0,fail(e){this.log.error("video gl context create failed",e.cause),Se.addFailedEvent({key:512700,error:e.cause||e})},success(){this.log.info("video context created use webgl"),Se.addSuccessEvent({key:512700})}})],ua.prototype,"create",1),Ie([Mt("created",Ve.INIT,{ignoreError:!0,sync:!0,success(e){e&&this.emit(ua.UNAVAILABLE,e),this.removeAllListeners()}})],ua.prototype,"destroy",1);var cr=ua,mr=class extends sn{constructor(){super(...arguments);p(this,"ctx")}create(e){if(this.hasAlpha=e.alpha,this._canvas=document.createElement("canvas"),this._canvas.id=`trtc_${this.name}_${sn._ids++}`,this.ctx=this._canvas.getContext("2d",{alpha:e.alpha,willReadFrequently:e.willReadFrequently}),!this.ctx)throw new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:2,message:"2d context not supported"});this._canvas.addEventListener("contextlost",()=>{this.log.error("2d context lost")}),this._canvas.addEventListener("contextrestored",()=>{this.log.warn("2d context restored")})}destroy(e){let r="";e&&(r=e.message,this.error=e,Se.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(),Se.addSuccessEvent({key:512703})}};Ie([Mt(Ve.INIT,"created",{sync:!0,fail(e){this.log.error("video 2d context create failed",e.cause),Se.addFailedEvent({key:512701,error:e.cause||e})},success(){this.log.info("video context created use 2d"),Se.addSuccessEvent({key:512701})}})],mr.prototype,"create",1),Ie([Mt("created",Ve.INIT,{ignoreError:!0,sync:!0})],mr.prototype,"destroy",1);function FA(i,t,e,r,o,s=!1){s&&([e,r]=[r,e]);let n={sWidth:i,sHeight:t,dWidth:e,dHeight:r,sx:0,sy:0,dx:0,dy:0};if(i===0||t===0)return n;switch(o){case void 0:case"fill":break;case"contain":{let a=Math.min(e/i,r/t);n.dWidth=i*a,n.dHeight=t*a,n.dx=(e-n.dWidth)/2,n.dy=(r-n.dHeight)/2;break}case"cover":{let a=Math.max(e/i,r/t),c=e/a,d=r/a;n.sx=(i-c)/2,n.sy=(t-d)/2,n.sWidth=c,n.sHeight=d;break}}return n}var hf=class{constructor(t,e){this.node=t;this.layout=e;p(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}get fillMode(){return this.layout.fillMode}get rotation(){return this.layout.rotation}get hidden(){return!!this.layout.hidden}},la=class extends or{constructor(e,r){super(e,{useDefaultProgram:!0,useFbo:!0,name:"mix",create2d:!0,logger:r});p(this,"inputs",[]);p(this,"backgroundColor","black")}addInput(e,r){let o=0,s=this.inputs.length;for(;o<s;){let a=Math.floor((o+s)/2);if(this.inputs[a].layout.zIndex<r.zIndex)o=a+1;else if(this.inputs[a].layout.zIndex>r.zIndex)s=a;else throw new Error(`input already exists at zIndex ${r.zIndex}`)}let n=new hf(e,r);this.inputs.splice(o,0,n)}changeInputLayout(e,r){let o=this.inputs.findIndex(T=>T.node===e);if(o<0)return;let{x:s,y:n,width:a,height:c,zIndex:d,fillMode:m,rotation:l,hidden:f}=r;if(!z(d)&&this.inputs.some(T=>T.layout.zIndex===d&&T.node!==e))throw new Error(`input already exists at zIndex ${r.zIndex}`);let g=this.inputs[o];z(s)||(g.layout.x=s),z(n)||(g.layout.y=n),z(a)||(g.layout.width=a),z(c)||(g.layout.height=c),z(l)||(g.layout.rotation=l),z(f)||(g.layout.hidden=f),m&&(g.layout.fillMode=m),!z(d)&&d!==g.layout.zIndex&&(g.layout.zIndex=d,this.inputs.sort((T,E)=>T.layout.zIndex-E.layout.zIndex))}hasInput(e){return this.inputs.some(r=>r.node===e)}hasNoInput(){return this.inputs.length===0}resize(e,r){if(!this.matchInputSize){super.resize(e,r);return}let o=this.inputs.reduce((s,n)=>n?Object.assign(s,{width:Math.max(s.width,n.right),height:Math.max(s.height,n.bottom)}):s,{width:0,height:0});super.resize(o.width,o.height),this.context instanceof cr&&this.inputs.forEach(s=>{if(s){let n=this.layout2texCoords(s);s.positionBuffer?this.changeBufferData(s.positionBuffer,n):s.positionBuffer=this.createBuffer(n)}})}connect(e,...r){return super.connect(e,...r),this.drawBackGround2d(this.backgroundColor),this.matchInputSize&&this.resize(0,0),e}removeInput(e){this.inputs=this.inputs.filter(r=>r.node!==e),this.inputs.length===0&&this.drawBackGround2d(this.backgroundColor)}render(e){let r=this.context.ctx;if(r.clearColor(0,0,0,0),this.inputs.reduce((s,n)=>n.node.requestFrame(e)||s,!1)&&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 n=this.inputs[s];n&&(n.node.useTexture(),this.draw(n.positionBuffer))}return!0}return!1}render2d(e){if(this.inputs.forEach(r=>r.node.requestFrame(e)),this.ctx2d){this.drawBackGround2d(this.backgroundColor);for(let r=0;r<this.inputs.length;r++){let o=this.inputs[r];if(o.hidden)continue;let s=FA(o.node.width,o.node.height,o.width,o.height,o.fillMode,Jr(o.rotation));this.draw2d(o.node.image,o.x+s.dx,o.y+s.dy,s.dWidth,s.dHeight,s.sx,s.sy,s.sWidth,s.sHeight)}return!0}return!1}debugLayout(e,r,o,s,n=!1){this.ctx2d&&(n&&([o,s]=[s,o]),this.ctx2d.save(),this.ctx2d.strokeStyle="red",this.ctx2d.lineWidth=2,this.ctx2d.strokeRect(e,r,o,s),this.ctx2d.restore())}getInfo(){let{totalFrames:e,x:r,y:o,width:s,height:n,name:a}=this,c=Date.now(),d=(e-this.lastInfo.totalFrames)/((c-this.lastInfo.timestamp)/1e3)>>0;return this.lastInfo={totalFrames:e,x:r,y:o,width:s,height:n,timestamp:c,fps:d,name:a},be({parent:this.inputs.filter(m=>m).map(m=>m.node.getInfo())},this.lastInfo)}removeAllInputs(){this.inputs.forEach(e=>{var r;if(e.node.disconnect(),e.positionBuffer&&this.context instanceof cr)try{(r=this.context.ctx)==null||r.deleteBuffer(e.positionBuffer)}catch(o){}})}close(){super.close(),this.removeAllInputs()}};var HA=[1,0,0,0,1,1,0,1],ui=class extends or{constructor(e,r,o,s){super(e,{useDefaultProgram:!0,useFbo:!0,create2d:!0,name:"transform",logger:r});p(this,"mirror",!1);p(this,"rotation",0);if(o&&(this.mirror=o),s&&(this.rotation=s),e instanceof cr)try{this.setTexBuffer(HA)}catch(n){e.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:3,message:`create video node ${this.name} error ${n.message||n}`}))}}draw2d(e,r,o,s,n){if(this.ctx2d){this.ctx2d.clearRect(0,0,this.width,this.height),this.ctx2d.save(),this.mirror&&(this.ctx2d.scale(-1,1),this.ctx2d.translate(-this.width,0)),this.rotation===90?(this.ctx2d.translate(s,0),this.ctx2d.rotate(Math.PI/2),this.ctx2d.scale(n/s,s/n)):this.rotation===180?(this.ctx2d.translate(this.width,this.height),this.ctx2d.rotate(Math.PI)):this.rotation===270&&(this.ctx2d.translate(0,n),this.ctx2d.rotate(3*Math.PI/2),this.ctx2d.scale(n/s,s/n));let a=super.draw2d(e,r,o,s,n);return this.ctx2d.restore(),a}return!1}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}resize(e,r){Jr(this.rotation)&&([e,r]=[r,e]),super.resize(e,r)}};var nn=class extends wi{constructor(e,r=4){super(r,Sr);p(this,"inputLocalVideoTracks",new Map);p(this,"inputLocalScreenTracks",new Map);p(this,"cameraNodeMap",new Map);p(this,"screenNodeMap",new Map);p(this,"textNodeMap",new Map);p(this,"imageNodeMap",new Map);p(this,"videoNodeMap",new Map);p(this,"endedIds",new Set);p(this,"videoContext");p(this,"mixNode");p(this,"destination");p(this,"manager");p(this,"stat");p(this,"_checkId",0);p(this,"autoSetFps",!0);this.manager=e,this.log.id+="mix",this.create2dVideoContext(),this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(or.RENDER,o=>{this.emit("render",o)}),this.mixNode=new la(this.videoContext,this.log),this.mixNode.matchInputSize=!1}listenDeviceChange(){throw new Error("Method not implemented.")}enablePrintDetail(e=2e3){this._checkId=Jt.run("interval",()=>{this.destination&&this.log.debug(this.destination.getInfo())},{delay:e})}create2dVideoContext(){this.videoContext?this.videoContext.destroy():this.videoContext=new mr({frameRate:15,logger:this.log,name:"mix-ctx"}),this.videoContext.create({alpha:!1})}setFps(e){this.autoSetFps=!1,this.videoContext.frameRate=e;for(let r of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])r.shouldUpdate=!1;setTimeout(()=>{var r;return(r=this.destination)==null?void 0:r.start(this.videoContext.frameRate)},500)}setFpsAuto(){var s;if(!this.autoSetFps)return;for(let n of[...this.cameraNodeMap.values(),...this.screenNodeMap.values()])n.shouldUpdate=!1;let e=null,r=0,o=!0;for(let[n,a]of this.inputLocalVideoTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let c=this.cameraNodeMap.get(n);c&&c.image.cancelVideoFrameCallback(c.videoCallbackId);continue}r=a.profile.frameRate,e=n}for(let[n,a]of this.inputLocalScreenTracks)if(a.profile.frameRate>r){if(this.endedIds.has(n)){let c=this.screenNodeMap.get(n);c&&c.image.cancelVideoFrameCallback(c.videoCallbackId);continue}r=a.profile.frameRate,e=n,o=!1}if(e!==null){let n=o?this.cameraNodeMap.get(e):this.screenNodeMap.get(e);n&&(n.shouldUpdate=!0,n.tryVideoFrameCallback()),this.log.info("set mix fps: ",r)}else(s=this.destination)==null||s.start(this.videoContext.frameRate),this.log.info("fallback to timer, fps: ",this.videoContext.frameRate)}setMixBackground(e){this.mixNode&&(this.mixNode.backgroundColor=e)}resizeMixCanvas(e,r){var o;(o=this.mixNode)==null||o.resize(e,r)}startMix(){return D(this,null,function*(){var e;if(!this.mixNode||!this.destination)throw new Error("can't mix without necessary conditions");this.mixNode.disconnect(),this.mixNode.connect(this.destination),ni&&this.player.setCanvas(this.videoContext._canvas),this.setOutputMediaStreamTrack(this.destination.videoTrack),(e=this.manager)==null||e.changeInput(this)})}addCameraSource(e,r,o){if(this.inputLocalVideoTracks.has(e)||this.cameraNodeMap.has(e))throw new Error(`There is already a cameraSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");r.recaptureMode=1,yr(this,$t).add("videoInputRemoved",a=>{a.deviceId===r.deviceId&&(this.endedIds.add(e),this.setFpsAuto())}),r.on("output-media-track-changed",()=>{this.endedIds.delete(e),this.updateCameraSource(e,o,r.mediaTrack)});let n;Tr===16&&s instanceof CanvasCaptureMediaStreamTrack?n=this.videoContext.createVideoImageSource(s.canvas,{name:"cameraCanvasSource",logger:this.log}):n=this.videoContext.createVideoTrackSource(s,"cameraNodeSource"),n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o,"cover"),this.inputLocalVideoTracks.set(e,r),this.cameraNodeMap.set(e,n),this.setFpsAuto()}addScreenSource(e,r,o){if(this.inputLocalScreenTracks.has(e)||this.screenNodeMap.has(e))throw new Error(`There is already a screenSource with the same ID: ${e}`);let{mediaTrack:s}=r;if(!s)throw new Error("no mediaTrack, add cameraSource failed");let n=this.videoContext.createVideoTrackSource(s,"screenNodeSource");n.resize(r.settings.width,r.settings.height),n.shouldUpdate=!1,this._connectMix(n,o),this.inputLocalScreenTracks.set(e,r),this.screenNodeMap.set(e,n),this.setFpsAuto()}addTextSource(e){let{id:r,content:o="",font:s,color:n,layout:a}=e;if(this.textNodeMap.has(r))throw new Error(`There is already a textSource with the same ID: ${r}`);let c=this.videoContext.createTextSource({content:o,font:s,color:n});c.resize(a.width,a.height),this._connectMix(c,a),this.textNodeMap.set(r,c)}addImageSource(e,r,o){if(this.imageNodeMap.has(e))throw new Error(`There is already a imageSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.width,r.height),this._connectMix(s,o),this.imageNodeMap.set(e,s)}addVideoSource(e,r,o){if(this.videoNodeMap.has(e))throw new Error(`There is already a videoSource with the same ID: ${e}`);let s=this.videoContext.createVideoImageSource(r,{autoResize:!1,logger:this.log});s.resize(r.videoWidth,r.videoHeight),s.shouldUpdate=!1,this._connectMix(s,o),this.videoNodeMap.set(e,s)}updateCameraSource(e,r,o=null,s){let n=this.cameraNodeMap.get(e);if(n){if(o){if(Tr===16&&o instanceof CanvasCaptureMediaStreamTrack)if(n instanceof di){let d=n.output;n.close(),n=this.videoContext.createVideoImageSource(o.canvas,{name:"cameraCanvasSource",logger:this.log}),n.connect(d),this.cameraNodeMap.set(e,n)}else n.image=o.canvas;else if(n instanceof di)n.replaceTrack(o);else{let d=n.output;n.close(),n=this.videoContext.createVideoTrackSource(o,"cameraNodeSource"),n.connect(d),this.cameraNodeMap.set(e,n)}let{width:a,height:c}=o.getSettings();a&&c&&n.resize(a,c)}s&&n.resize(s.width,s.height),(s||o)&&this.setFpsAuto(),this._changeMixLayout(n,r)}}updateScreenSource(e,r){let o=this.screenNodeMap.get(e);o&&this._changeMixLayout(o,r)}updateTextSource(e){let{id:r,content:o,font:s,color:n,layout:a}=e,c=this.textNodeMap.get(r);c&&(z(o)||(c.content=o),z(s)||(c.font=s),z(n)||(c.color=n),c.resize(a.width,a.height),this._changeMixLayout(c,a))}updateImageSource(e,r,o){let s=this.imageNodeMap.get(e);s&&(o&&(s.image=o,s.resize(o.width,o.height)),this._changeMixLayout(s,r))}updateVideoSource(e,r,o){let s=this.videoNodeMap.get(e);if(s){if(o){let n=s.image;n instanceof HTMLVideoElement&&this.stopVideoElement(n),s.image=o,s.resize(o.videoWidth,o.videoHeight)}this._changeMixLayout(s,r)}}_connectMix(e,r,o="contain"){if(!this.mixNode)return;let{mirror:s,rotation:n}=r;e.disconnect();let a=new ui(this.videoContext,this.log,s,n);a=e.connect(a),r.fillMode||(r.fillMode=o),a.connect(this.mixNode,r)}_changeMixLayout(e,r){if(!this.mixNode)return;let{mirror:o,rotation:s}=r,n=e.output||e;n instanceof ui&&(z(o)||(n.mirror=o),z(s)||(n.rotation=s),n.resize(e.width,e.height)),this.mixNode.changeInputLayout(n,r)}removeCameraSource(e){let r=this.inputLocalVideoTracks.get(e);if(!r)return;r.close(),this.inputLocalVideoTracks.delete(e);let o=this.cameraNodeMap.get(e);o&&(o.output instanceof ui&&o.output.close(),o.close(),this.cameraNodeMap.delete(e)),this.checkAfterRemove(!0)}removeScreenSource(e){let r=this.inputLocalScreenTracks.get(e);if(!r)return;r.close(),this.inputLocalScreenTracks.delete(e);let o=this.screenNodeMap.get(e);o&&(o.output instanceof ui&&o.output.close(),o.close(),this.screenNodeMap.delete(e)),this.checkAfterRemove(!0)}removeTextSource(e){let r=this.textNodeMap.get(e);r&&(r.output instanceof ui&&r.output.close(),r.close(),this.textNodeMap.delete(e)),this.checkAfterRemove()}removeImageSource(e){let r=this.imageNodeMap.get(e);r&&(r.output instanceof ui&&r.output.close(),r.close(),this.imageNodeMap.delete(e)),this.checkAfterRemove()}removeVideoSource(e){let r=this.videoNodeMap.get(e);r&&(r.output instanceof ui&&r.output.close(),r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image),r.close(),this.videoNodeMap.delete(e)),this.checkAfterRemove()}checkAfterRemove(e=!1){e&&this.setFpsAuto()}stopVideoElement(e){e.pause(),e.src="",e.srcObject=null,e.remove()}close(){var e;super.close(),Jt.clearTask(this._checkId),(e=this.videoContext)==null||e.destroy(),delete this.mixNode,delete this.destination;for(let r of[...this.inputLocalVideoTracks.values(),...this.inputLocalScreenTracks.values()])r.close();this.inputLocalVideoTracks.clear(),this.inputLocalScreenTracks.clear(),this.cameraNodeMap.clear(),this.screenNodeMap.clear(),this.textNodeMap.clear(),this.imageNodeMap.clear(),tr(this);for(let r of this.videoNodeMap.values())r.image instanceof HTMLVideoElement&&this.stopVideoElement(r.image);this.videoNodeMap.clear(),this.log.info("localMixVideoTrack close, stop mix")}};var Sl=oc();if(typeof navigator!="undefined"&&navigator.mediaDevices&&"setCaptureHandleConfig"in navigator.mediaDevices)try{navigator.mediaDevices.setCaptureHandleConfig({handle:Sl,exposeOrigin:!0,permittedOrigins:["*"]})}catch(i){}var WA=function(i){return D(this,null,function*(){let t=null,e=jA(i);se.info(`getDisplayMedia with constraints: ${JSON.stringify(e)}`);let r=yield navigator.mediaDevices.getDisplayMedia(e);i.systemAudio&&r.getAudioTracks().length===0&&(Xn&&Fr<74||Zt||zt)&&se.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){se.warn(`screen applyConstraints failed: ${s}`)}i.captureElement&&(yield GA(o,i.captureElement))}if(i.audio){let s=zA(i);se.info(`getUserMedia with constraints: ${JSON.stringify(s)}`),t=yield navigator.mediaDevices.getUserMedia(s),r.addTrack(t.getAudioTracks()[0])}return r})};function GA(i,t){return D(this,null,function*(){var e;if("CropTarget"in window&&"fromElement"in CropTarget&&Rt(i.cropTo))try{if(!(((e=i.getCaptureHandle())==null?void 0:e.handle)===Sl))return;let o=yield CropTarget.fromElement(t);yield i.cropTo(o)}catch(r){se.warn(`cropTo target failed ${r}`)}})}function zA(i){let t={echoCancellation:i.echoCancellation,autoGainControl:i.autoGainControl,noiseSuppression:i.noiseSuppression,sampleRate:i.sampleRate,channelCount:i.channelCount};return z(i.microphoneId)||(t.deviceId=i.microphoneId),{audio:t,video:!1}}function jA(i){let t={preferCurrentTab:i.preferDisplaySurface==="current-tab"||!!i.captureElement,systemAudio:"include",selfBrowserSurface:"include",surfaceSwitching:"include"},e={width:Zt?{max:i.width}:{ideal:i.width,max:i.width},height:Zt?{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 WE=WA;var zi=class extends Zr{constructor(e){super(e,2);p(this,"profile",{width:1920,height:1080,frameRate:5,bitrate:1600});p(this,"objectFit","contain");p(this,"isScreen",!0);this._log.id=`s-${this._log.id}`}get isShareCurrentTab(){var e,r;try{return Sl===((r=(e=this.mediaTrack)==null?void 0:e.getCaptureHandle())==null?void 0:r.handle)}catch(o){return}}capture(m){return D(this,arguments,function*({systemAudio:e=!1,autoGainControl:r,echoCancellation:o,noiseSuppression:s,audioTrack:n,videoTrack:a,captureElement:c,preferDisplaySurface:d}){try{let l;return a||n?(l=new MediaStream,a&&l.addTrack(a),n&&l.addTrack(n)):(l=yield WE({audio:!1,systemAudio:e,width:this.profile.width,height:this.profile.height,frameRate:this.profile.frameRate,autoGainControl:r,echoCancellation:o,noiseSuppression:s,captureElement:c,preferDisplaySurface:d}),this.sourceTrack=l.getVideoTracks()[0]),yield this.setInputMediaStreamTrack(l.getVideoTracks()[0]),l}catch(l){throw this.log.error(`getDisplayMedia error observed ${l}`),l instanceof Me?l:new Me({code:Te.INITIALIZE_FAILED,name:l.name,message:l.message})}})}switchDevice(e){return D(this,null,function*(){throw new Error("Method not implemented.")})}};Ie([Ko(function(e){this.setContentHint(e.contentHint||"detail")})],zi.prototype,"capture",1);var an=class extends Gi{constructor(t){super(t),this._log.id=`s-${this._log.id}`,this.isScreen=!0}addAudioProcessor(t,e,r){this.pipeline.silentNode.setNode(r),this.pipeline.mixNode.setNode(e),this.pipeline.aec.setNode(t),this.enableTrackAEC(!1)}removeAudioProcessor(t){this.pipeline.aec.node===t&&(this.pipeline.aec.deleteNode(),this.pipeline.silentNode.deleteNode(),this.pipeline.mixNode.deleteNode(),this.enableTrackAEC(!0))}};var qA='registerProcessor("dumper",class extends AudioWorkletProcessor{constructor(e){super(),this.sourceSampleRate=e.processorOptions.sourceSampleRate||48e3,this.targetSampleRate=e.processorOptions.targetSampleRate||48e3,this.port.onmessage=e=>{this.port2=e.data.port}}process(e){return(this.port2||this.port).postMessage(this.resampleAll(e,this.sourceSampleRate,this.targetSampleRate)),!0}resampleAll(r,s,a){if(s===a)return r;var o=[];for(let t=0;t<r.length;t++){o[t]=[];for(let e=0;e<r[t].length;e++)o[t][e]=this.resample(r[t][e],s,a)}return o}resample(t,e,r){if(e===r)return t;var s=Math.round(t.length*(this.targetSampleRate/this.sourceSampleRate)),a=new Float32Array(s),o=(t.length-1)/(s-1);a[0]=t[0];for(let e=1;e<s-1;e++){var l=e*o,p=Math.floor(l),h=Math.ceil(l);a[e]=t[p]+(t[h]-t[p])*(l-p)}return a[s-1]=t[t.length-1],a}});',mf;function Vc(i,t=48e3,e=1,r){return D(this,null,function*(){let o=bt("dump");mf||(mf=yo(o,URL.createObjectURL(new Blob([qA],{type:"application/javascript"})))),yield mf;let s=o.sampleRate,n=new AudioWorkletNode(o,"dumper",{numberOfInputs:i.length,numberOfOutputs:0,processorOptions:{sourceSampleRate:s,targetSampleRate:t}});return n.channelCountMode="explicit",n.channelCount=e,r&&n.port.postMessage({port:r},[r]),i.forEach((a,c)=>a.connect(n,0,c)),new ReadableStream({start(a){n.port.onmessage=c=>{a.enqueue(c.data)}},cancel(){i.forEach(a=>a.disconnect(n)),n.port.close()}})})}var Il=class extends qu{constructor(e){super();this.room=e;p(this,"_localAudioTrack");p(this,"_localScreenAudioTrack");p(this,"log");p(this,"denoiser");p(this,"voiceChanger");p(this,"mixChangedDebounce");p(this,"audioProcessor");p(this,"encodePipeline",[]);p(this,"decodePipeline",[]);p(this,"getPCMAbortCtrlMap",new Map);p(this,"audioFrameEventConfigMap",new Map);p(this,"audioReferenceMap",new Map);p(this,"isLocalAudioNeedAudioProcess",!1);p(this,"isScreenAudioNeedAudioProcess",!1);this.log=se.createLogger({parent:e==null?void 0:e.getLogger(),id:"am",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.installEvent()}get localAudioTrack(){return this._localAudioTrack}get _localAudioPipline(){var e;return(e=this._localAudioTrack)==null?void 0:e.pipeline}get _localScreenAudioPipeline(){var e;return(e=this._localScreenAudioTrack)==null?void 0:e.pipeline}dump(e){var m,l;if(!this._localAudioTrack)return;let r=[],o=[];(m=this._localAudioPipline)!=null&&m.source.node&&(r.push(this._localAudioPipline.source.node),o.push("mic")),(l=this._localAudioPipline)!=null&&l.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,n=[],a=setTimeout(()=>{this.log.info('dump audio track complete please input "download()" to download.'),s.abort("timeout")},e*1e3),c=()=>{for(let f=0;f<o.length;f++){let g=URL.createObjectURL(new Blob(n[f])),T=document.createElement("a");T.href=g,T.download=`${o[f]}.pcm`,T.style.display="none",document.body.appendChild(T),T.click(),URL.revokeObjectURL(g),T.remove()}clearTimeout(a),s.abort("download")},d=Vc(r).then(f=>f.pipeTo(new WritableStream({write(g){g.forEach((T,E)=>n[E]=n[E]?n[E].concat(T[0]):[T[0]])}}),s).catch(g=>c));return{then:d.then.bind(d),download:c}}getPCM(e,r){var v,M,w;if(typeof WritableStream=="undefined"){this.log.warn("getPCM failed: browser not support WritableStream");return}let{enable:o,sampleRate:s=48e3,channelCount:n=1,port:a}=(r===""?this.audioFrameEventConfigMap.get(""):this.audioFrameEventConfigMap.get(r)||this.audioFrameEventConfigMap.get("*"))||{};if(!o)return;this.log.info(`getPCM ${r||"local"}`);let c=Math.floor(s*.04),d=new Float32Array(c),m=new Float32Array(c),l,f,g=0,T=new AbortController,E=r===""?(v=this._localAudioTrack)==null?void 0:v.mediaTrack:(w=(M=this.room)==null?void 0:M.remotePublishedUserMap.get(r))==null?void 0:w.remoteAudioTrack.mediaTrack;if(!E){this.log.info(`getPCM failed: ${r||"local"} has no audio track`);return}let y=bt().createMediaStreamSource(new MediaStream([E]));return Vc([y],s,n,a).then(H=>H.pipeTo(new WritableStream({write(B){B[0][0]&&(g+B[0][0].length>c?(d.set(B[0][0].subarray(0,c-g),g),l=B[0][0].subarray(c-g),B[0][1]&&(m.set(B[0][1].subarray(0,c-g),g),f=B[0][1].subarray(c-g)),g+=c-g):(l&&(d.set(l,g),g+=l.length,l=void 0),f&&(m.set(f,g),f=void 0),d.set(B[0][0],g),B[0][1]&&m.set(B[0][1],g),g+=B[0][0].length),g>=c&&(g=0,e({userId:r,sampleRate:s,channelCount:n,data:n===1?d:[d,m]}),d=new Float32Array(c),m=new Float32Array(c)))}}),T).catch(B=>this.log.warn(`stop getPCM reason:${B}`))),T}get hasScreenAudioTrack(){return!z(this._localScreenAudioTrack)}get hasAudioTrack(){return!z(this._localAudioTrack)}changeInput(e){var r,o;if(e instanceof an)return this._localScreenAudioTrack=e,this.isScreenAudioNeedAudioProcess&&((r=this.audioProcessor)!=null&&r.screenAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.screenAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof Gi)return this._localAudioTrack=e,this.denoiser&&e.addDenoiser(this.denoiser),this.isLocalAudioNeedAudioProcess&&((o=this.audioProcessor)!=null&&o.localAudioWorkletNode)&&(e.addAudioProcessor(this.audioProcessor.localAudioWorkletNode,this.audioProcessor.mixNode,this.audioProcessor.silentNode),this.audioReferenceMap.forEach((s,n)=>{e.mixAudioReference(s,n)})),e.pipeline.connect(),this.mixOnChange();if(e instanceof bo)return e.setOutputMediaStreamTrack(e.mediaTrack)}mixAudioReference(e,r){var o;(o=this._localAudioTrack)==null||o.mixAudioReference(e,r)}unMixAudioReference(e){var r;(r=this._localAudioTrack)==null||r.unMixAudioReference(e)}setAudioReferenceVolume(e,r){var o;(o=this._localAudioTrack)==null||o.setAudioReferenceVolume(e,r)}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 an?delete this._localScreenAudioTrack:e instanceof Gi?delete this._localAudioTrack:e instanceof bo}addDenoiser(e){var r;this.denoiser=e,(r=this._localAudioTrack)==null||r.addDenoiser(e)}addAudioProcessor(e,r,o,s){var n;this.audioProcessor={localAudioWorkletNode:o,mixNode:e,silentNode:r,screenAudioWorkletNode:s},this.isLocalAudioNeedAudioProcess&&this._localAudioTrack&&o&&(this._localAudioTrack.addAudioProcessor(o,e,r),this.audioReferenceMap.forEach((a,c)=>{var d;(d=this._localAudioTrack)==null||d.mixAudioReference(a,c)})),this.isScreenAudioNeedAudioProcess&&this._localScreenAudioTrack&&s&&((n=this._localScreenAudioTrack)==null||n.addAudioProcessor(s,e,r),this.audioReferenceMap.forEach((a,c)=>{var d;(d=this._localScreenAudioTrack)==null||d.mixAudioReference(a,c)}))}removeDenoiser(e){var r;return delete this.denoiser,(r=this._localAudioTrack)==null?void 0:r.removeDenoiser(e)}addVoiceChanger(e,r){var o;this.voiceChanger=[e,r],(o=this._localAudioTrack)==null||o.pipeline.voiceChanger.setNode(e,r)}removeVoiceChanger(){var e;delete this.voiceChanger,(e=this._localAudioTrack)==null||e.pipeline.voiceChanger.deleteNode()}removeAudioProcessor(e,r){var o,s;delete this.audioProcessor,(o=this._localAudioTrack)==null||o.removeAudioProcessor(e),(s=this._localScreenAudioTrack)==null||s.removeAudioProcessor(r)}destroy(){this.close(),this.audioReferenceMap.clear(),this.getPCMAbortCtrlMap.forEach(e=>e==null?void 0:e.abort("destroy")),this.getPCMAbortCtrlMap.clear(),this.audioFrameEventConfigMap.clear(),this.uninstallEvent()}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}handleLocalTrackStarted({room:e,userId:r}){var s;if(e!==this.room||this.getPCMAbortCtrlMap.get(r))return;let o=this.getPCM(n=>{var a;(a=this.room)==null||a.emit("audio-frame",n)},"");this.getPCMAbortCtrlMap.set(r,o),this.getPCMAbortCtrlMap.get(r)&&((s=this._localAudioTrack)==null||s.on("input-media-track-changed",()=>{let n=this.getPCMAbortCtrlMap.get(r);n&&(n.abort("inputMediaTrackChanged"),n=this.getPCM(a=>{var c;(c=this.room)==null||c.emit("audio-frame",a)},""),this.getPCMAbortCtrlMap.set(r,n))}))}handleLocalTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopLocalAudio"),this.getPCMAbortCtrlMap.delete(r))}handleRemoteTrackStarted({room:e,userId:r}){if(e===this.room&&!this.getPCMAbortCtrlMap.get(r)){let o=this.room.audioManager.getPCM(s=>{var n;(n=this.room)==null||n.emit("audio-frame",s)},r);this.getPCMAbortCtrlMap.set(r,o)}}handleRemoteTrackStopped({room:e,userId:r}){if(e!==this.room)return;let o=this.getPCMAbortCtrlMap.get(r);o&&(o.abort("stopRemoteAudio"),this.getPCMAbortCtrlMap.delete(r))}installEvent(){ee.on("113",this.handleLocalTrackStarted,this),ee.on("114",this.handleLocalTrackStopped,this),ee.on("115",this.handleRemoteTrackStarted,this),ee.on("116",this.handleRemoteTrackStopped,this)}uninstallEvent(){ee.off("113",this.handleLocalTrackStarted),ee.off("114",this.handleLocalTrackStopped),ee.off("115",this.handleRemoteTrackStarted),ee.off("116",this.handleRemoteTrackStopped)}updateAudioReference({type:e,audioReference:r,refId:o,volume:s}){if(e==="add"){if(this.audioReferenceMap.get(o)||!r||(this.audioReferenceMap.set(o,r),!this.audioProcessor))return;this.mixAudioReference(r,o)}else if(e==="remove")this.audioReferenceMap.get(o)&&(this.audioReferenceMap.delete(o),this.unMixAudioReference(o));else if(e==="updateVolume"){if(!this.audioProcessor||z(s))return;this.setAudioReferenceVolume(o,s)}}};function GE(i=30,t=2){return ut((e,r)=>function(...o){return new Promise((s,n)=>{let a=setTimeout(()=>{let c=new Me({code:Te.API_CALL_TIMEOUT,message:`checkPendingPromise ${r}() timeout ${i}s`});(this.log||this._log||se).warn(c),t===2?n(c):t===1&&s()},i*1e3);this._checkPendingPromiseSet||(this._checkPendingPromiseSet=new Set),this._checkPendingPromiseSet.add(a),e.apply(this,o).then(s,n).finally(()=>{clearTimeout(a),this._checkPendingPromiseSet&&a&&this._checkPendingPromiseSet.delete(a)})})})}var ji=class ji extends Xs{constructor(e,r,o){super({userId:r.userId,sdkAppId:e.sdkAppId,mediaType:o,room:e});this.room=e;this.user=r;p(this,"tinyId");p(this,"isRemote",!0);p(this,"jitterBufferDelay",0);p(this,"availableState");p(this,"remotePublishState");p(this,"_triggerCheckDecodeSubject",ir(Qe(this,ji.STATE_SUBSCRIBE)));this.tinyId=r.tinyId,this.availableState=new Ve(`${r.userId}-${this.mediaType}-available`,"remote-track-available"),this.remotePublishState=new Ve(`${r.userId}-${this.mediaType}-remote-publish`,"remote-track-publish"),Ye(Oc(Qe(this,Ve.STATECHANGED),Qe(this.remotePublishState,Ve.STATECHANGED)),ts(()=>this.isRemotePublished&&(this.isSubscribed||this.isSubscribing)),lt(c=>{this.availableState.state!==(c?Ve.ON:Ve.OFF)&&(this.availableState.state=c?Ve.ON:Ve.OFF),this.updatePlayingState(c)}));let s=Ye(Qe(this.player,St.ERROR),Ur(c=>c.code===MediaError.MEDIA_ERR_DECODE)),n=Ye(xc(5e3),Ur(()=>this.ignoreDecodeError||!this.isSubscribed||!this.isPlayCalled||!this.stat.bytesReceived?!1:this.player.isPlaying||(this.kind===j.AUDIO?this.getAudioLevel()>0:this.stat.framesDecoded>0)?(this.reportDecodeResult(!0),!1):!0)),a=Ye(Ap(s,n),At(Qe(this,Ve.INIT)));Ye(this._triggerCheckDecodeSubject,Ur(()=>!this.ignoreDecodeError),Io(a),lt(c=>{this.reportDecodeResult(!1,c)}))}setMute(e){this.isRemotePublished&&super.setMute(e)}setInputMediaStreamTrack(e){super.setInputMediaStreamTrack(e),this.isRemotePublished&&this.isSubscribed&&this.player.setTrack(this.outMediaTrack)}checkDecodeResult(){this._triggerCheckDecodeSubject.next(!0)}waitHasMediaTrack(){return new Promise(e=>{this.mediaTrack?e():this.once("input-media-track-changed",e)})}get ignoreDecodeError(){var r,o;return(((o=(r=this.room)==null?void 0:r.networkQuality)==null?void 0:o.downlinkNetworkQuality)||0)>3||this.player.isInAutoPlayFailedState}get isSubscribing(){return this.state.toString()==="subscribeing"}get isSubscribed(){return this.state===ji.STATE_SUBSCRIBE}get isAvailable(){return this.availableState.state===Ve.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){var s,n;let o=this.kind===j.AUDIO;if(Se[e?"addSuccessEvent":"addFailedEvent"]({key:o?504700:514702}),!o){let a=((s=this.room)==null?void 0:s.downlinkVideoCodec.toUpperCase())||"H264";Se[e?"addSuccessEvent":"addFailedEvent"]({key:Kn[`DECODE_${a}_RESULT`]}),e||this.log.warn(`${(n=this.room)==null?void 0:n.downlinkVideoCodec} decode failed`)}e||(Se.addEnum({key:o?504701:514703,value:Bs()}),It.uploadEvent({log:`stat-decode-failed-${this.kind}-${Vs()||ho()}`,userId:this.room.userId}),this._log.warn(`decode failed: isPlaying: ${this.player.isPlaying} ${this.kind===j.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?Ve.ON:Ve.OFF,this.emit("remote-publish-changed",this.isRemotePublished)}onTrackMuted(){this.isNeedPlay&&super.onTrackMuted()}onTrackUnmuted(){this.isNeedPlay&&super.onTrackUnmuted()}onTrackEnded(){this.isNeedPlay&&super.onTrackEnded()}};p(ji,"STATE_SUBSCRIBE","subscribe"),Ie([GE(5,1)],ji.prototype,"waitHasMediaTrack",1),Ie([Mt(Ve.INIT,ji.STATE_SUBSCRIBE,{success(){this.log.info("subscribed"),ee.emit(ce.REMOTE_TRACK_SUBSCRIBED,{track:this})},ignoreError:!0}),rl(521716,!1)],ji.prototype,"subscribe",1),Ie([Mt(ji.STATE_SUBSCRIBE,Ve.INIT,{sync:!0,success(){this.log.info("unsubscribed"),ee.emit(ce.REMOTE_TRACK_UNSUBSCRIBED,{track:this})}})],ji.prototype,"unsubscribe",1);var ha=ji;var bo=class extends ha{constructor(e,r){super(e,r,1);p(this,"volume",0);p(this,"mediaType",1);p(this,"stat",{bytesReceived:0,packetsReceived:0,packetsLost:0,end2EndDelay:0,jitterBufferDelay:0});this.manager=e.audioManager}get dbVolume(){return Ju.isRunning?this.player.pipeline.volumeMeter.getVolumeDb():Math.floor(Math.max(10*Math.log10(this.volume)+100,0))}onPlayerError(e){this.enableDecodeFrame&&(this._log.warn("use audio decoder"),this.room.enableInsertableStreams())}get enableDecodeFrame(){var e,r;return this.manager?this.manager.decodePipeline.some(o=>o)||((r=(e=this.player.element)==null?void 0:e.error)==null?void 0:r.code)===MediaError.MEDIA_ERR_DECODE&&Fu().AudioDecoder&&zs:!1}get enableDecryptFrame(){return this.manager&&!!this.manager.decodePipeline[0]}decodeFrame(e){if(!this.manager)return e;let r=e;for(let[o,s]of this.manager.decodePipeline.entries()){if(!s)continue;let n={frame:e,track:this};if(o===1&&this.isAvailable&&this.room.role==="audience"&&(n.onAudioFrameNTPTime=({ntp:a,frame:c,hasLeavingTag:d})=>{this.emit("audio-frame-with-ntp",{ntp:a,frame:c,hasLeavingTag:d})}),r=s(n),!r)return}return r}getAudioLevel(){let e=this.volume||super.getAudioLevel();return e>1?1:e}get isRemotePublished(){return this.user.muteState.audioAvailable}};var bl=class extends or{constructor(e,r,o,s,n){super(e,{useDefaultProgram:!0,useFbo:!0,name:"alpha",create2d:!0,logger:r});this.setContainer=s;p(this,"initStat",{alphaStitchingType:1});p(this,"end",ir());p(this,"minSize",320);p(this,"maxSize",1280);p(this,"draggable",!1);p(this,"startDragX",0);p(this,"startDragY",0);p(this,"left",0);p(this,"top",0);p(this,"baseWidth",320);p(this,"baseRatio");p(this,"container");this.initStat=n,this.draggable=o,this.bindDragEvents()}bindDragEvents(){let e=this.context._canvas;if(e)if(this.draggable){let r=At(this.end);Ye(Qe(e,"mousedown"),en(this.startDrag.bind(this)),Wi(()=>Ye(Qe(window,"mousemove"),At(Qe(window,"mouseup")))),r,lt(this.doDrag.bind(this))),Ye(Qe(e,"dblclick"),r,lt(this.resetPosition.bind(this))),Ye(Qe(e,"wheel"),r,lt(this.handleZoom.bind(this))),this.renderCanvas()}else{if(!this.container)return;this.container.style.removeProperty("left"),this.container.style.removeProperty("top"),this.end.next()}}render(e){var r;return(r=this.input)!=null&&r.requestFrame(e)?(this.useProgram(),this.useBufferFrame(),this.useInputTexture(),this.draw(),!0):!1}startDrag(e){e.preventDefault(),e.button===0&&(this.startDragX=e.clientX-this.left,this.startDragY=e.clientY-this.top)}renderCanvas(){let{container:e}=this;e||this.setContainer(),!(!e||!this.baseRatio||!this.draggable)&&(e.style.setProperty("width",`${this.baseWidth}px`),e.style.setProperty("height",`${this.baseWidth/this.baseRatio}px`),e.style.setProperty("position","fixed"),e.style.setProperty("left",`${this.left}px`),e.style.setProperty("top",`${this.top}px`))}doDrag(e){e.preventDefault(),this.left=e.clientX-this.startDragX,this.top=e.clientY-this.startDragY,this.renderCanvas()}handleZoom(e){e.preventDefault();let r=.1,o=e.deltaY,s=this.context._canvas;s&&(this.baseWidth||(this.baseWidth=s.offsetWidth),o<0?this.baseWidth=Math.min(this.baseWidth*(1+r),this.maxSize):this.baseWidth=Math.max(this.baseWidth*(1-r),this.minSize),this.renderCanvas())}resetPosition(){this.left=0,this.top=0,this.renderCanvas()}onRatioReset(){this.renderCanvas()}draw2d(e,r,o,s,n){var g;let{ctx2d:a}=this,c=this.context._canvas;if(!a||!c)return!1;let d=super.draw2d(e,r,o,s,n),m=a.getImageData(0,0,s,n),{data:l}=m,f=!1;if(this.initStat.alphaStitchingType===1){let T=Math.floor(s/2);for(let E=0;E<n;E++)for(let y=0;y<T;y++){let v=(E*s+y)*4,M=y+T,w=(E*s+M)*4,H=l[w];l[w+3]=0;let B=H>=100;l[v+3]=B?255:0}f=super.draw2d(m,0,0,0,0,T,n),c.width=T}else if(this.initStat.alphaStitchingType===2){let T=Math.floor(n/2);for(let E=0;E<T;E++)for(let y=0;y<s;y++){let v=(E*s+y)*4,w=((E+T)*s+y)*4,H=l[w];l[w+3]=0;let B=H>=100;l[v+3]=B?255:0}f=super.draw2d(m,0,0,0,0,s,T),c.height=T}return(g=this.context.ctx)==null||g.clearRect(0,0,s,n),d&&f}close(){this.baseRatio=void 0,this.end.next(),this.end.complete()}};function JA(i){return[15,30,45,60].reduce((e,r)=>Math.abs(r-i)<Math.abs(e-i)?r:e)}var qi=class extends ha{constructor(e,r,o=4){super(e,r,o);p(this,"mediaType",4);p(this,"source");p(this,"shouldRenderAlpha",!1);p(this,"alphaNode");p(this,"shouldBeDraggable",!0);p(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)})}isAlphaSei(e){if(this.userId!==e.userId||e.seiPayloadType!==50)return!1;let r=new Uint8Array(e.data);return r.length%3!==0||r[0]!==0||r[1]!==1?!1:r}play(e,r){return(Nt(r==null?void 0:r.canvasRender)?r.canvasRender:Tr===17)&&!this.source&&this.useCanvasPlayer(),super.play(e,r).then(()=>{this.player.calculateStat(),ee.emit("156",{track:this,player:this.player})})}updateAlphaRenderInfo(e){let r=this.isAlphaSei(e);if(r)if(!this.alphaNode)this.shouldRenderAlpha=!0,this.player.shouldRenderAlpha=!0,this.useCanvasPlayer(r[2]);else{let o=r[2];if(this.alphaNode.baseRatio&&this.alphaNode.initStat.alphaStitchingType===o)return;this.alphaNode.initStat={alphaStitchingType:o};let s=this.player.getElement();if(s){let n=s.videoWidth/s.videoHeight;n&&(this.alphaNode.baseRatio=n*(o===1?.5:2),this.alphaNode.onRatioReset())}this.player.canvas&&(this.player.canvas.id=this.generateAlphaCanvasName(o))}}generateAlphaCanvasName(e){let r="alpha",o=lc[e];return`${r}_${o}_${this.userId}`}useCanvasPlayer(e){if(this.log.info(`useCanvasPlayer(), has element:${!!this.player.element}`),!this.player.element)return;let r=new mr({frameRate:15,logger:this.log,name:this.shouldRenderAlpha&&e?this.generateAlphaCanvasName(e):this.userId});r.create({alpha:this.shouldRenderAlpha,willReadFrequently:this.shouldRenderAlpha});let o=new on(r,{name:"remotePlayer",logger:this.log});if(this.source=r.createVideoPlayerSource(this.player),this.player.setCanvas(r._canvas),this.shouldRenderAlpha&&e){let s=()=>{!this.player.container||!this.alphaNode||(this.alphaNode.container=this.player.container,this.alphaNode.renderCanvas())},n=new bl(r,this.log,this.shouldBeDraggable,s,{alphaStitchingType:e});this.source.connect(n),n.connect(o),this.alphaNode=n}else this.source.connect(o);Ri()||(this.updateCanvasPlayerFPS=this.updateCanvasPlayerFPS.bind(this,r),this.room.on("heartbeat-report",this.updateCanvasPlayerFPS,this))}updateCanvasPlayerFPS(e){let r=this.decodeFPS,o=JA(r);if(!ft(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 n;let{msg_video_status:e}=((n=this.room.heartbeatReport)==null?void 0:n.msg_down_stream_info.find(a=>a.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(a=>a.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),ee.emit("157",{track:this,player:this.player}),this.alphaNode&&this.alphaNode.close(),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)}setDraggable(e){this.shouldBeDraggable=e,this.alphaNode&&(this.alphaNode.draggable=e,this.alphaNode.bindDragEvents())}onDecodeDowngradeStateChanged(e){this.emit("decode-downgrade-state-changed",e)}},Al=class extends qi{constructor(e,r){super(e,r,2);p(this,"mediaType",2);p(this,"objectFit","contain")}get isRemotePublished(){return this.user.muteState.hasAuxiliary}};var ma=new Map;ee.on(ce.JOIN_SUCCESS,({room:i})=>{jt(i.userId,{eventId:32788})});ee.on(ce.LEAVE_START,({room:i})=>{jt(i.userId,{eventId:32789})});ee.on(ce.LOCAL_TRACK_PUBLISHED,({track:i})=>{if(i.room){let t=32769;i.mediaType===4?t=32768:i.mediaType===2&&(t=32805),jt(i.room.userId,{eventId:t})}});ee.on(ce.LOCAL_TRACK_UNPUBLISHED,({track:i})=>{if(i.room){let t=32771;i.mediaType===4?t=32770:i.mediaType===2&&(t=32806),jt(i.room.userId,{eventId:t})}});ee.on(ce.TRACK_MUTED,({track:i})=>{i.room&&(i.kind===j.AUDIO?jt(i.room.userId,{eventId:i.isRemote?32785:32772,remoteUserId:i.isRemote?i.userId:void 0}):jt(i.room.userId,{eventId:i.isRemote?32784:32773,remoteUserId:i.isRemote?i.userId:void 0}))});ee.on(ce.TRACK_UNMUTED,({track:i})=>{i.room&&(i.kind===j.AUDIO?jt(i.room.userId,{eventId:i.isRemote?32787:32774,remoteUserId:i.isRemote?i.userId:void 0}):jt(i.room.userId,{eventId:i.isRemote?32786:32775,remoteUserId:i.isRemote?i.userId:void 0}))});ee.on(ce.REMOTE_TRACK_SUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&jt(i.room.userId,{eventId:32777,remoteUserId:i.userId}),i.mediaType===4&&jt(i.room.userId,{eventId:32776,remoteUserId:i.userId}),i.mediaType===8&&jt(i.room.userId,{eventId:32803,remoteUserId:i.userId}))});ee.on(ce.REMOTE_TRACK_UNSUBSCRIBED,({track:i})=>{i.room&&(i.mediaType===1&&jt(i.room.userId,{eventId:32779,remoteUserId:i.userId}),i.mediaType===4&&jt(i.room.userId,{eventId:32778,remoteUserId:i.userId}),i.mediaType===8&&jt(i.room.userId,{eventId:32804,remoteUserId:i.userId}))});ee.on(ce.SWITCH_DEVICE_SUCCESS,({track:i})=>{i.room&&jt(i.room.userId,{eventId:i.kind===j.VIDEO?32780:32781})});ee.on(ce.LOCAL_TRACK_REPLACED,({track:i})=>{i.room&&jt(i.room.userId,{eventId:i.kind===j.VIDEO?32782:32783})});ee.on(ce.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&&jt(i.userId,{eventId:r})});ee.on(ce.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&&jt(i.userId,{eventId:s,remoteUserId:r})});ee.on(ce.VIDEO_CODEC_IMPLEMENTATION_CHANGED,({implementation:i,userId:t,remoteUserId:e,codec:r,isHWCodec:o,prevImplementation:s,streamType:n})=>{let a=o?1:0;s||(a=o?3:2);let c={H264:0,H265:1,VP8:2}[r.toUpperCase()],d={eventId:4004,param1:a,param2:c,streamType:n||2};e&&(d.remoteUserId=e,d.eventId=4005),jt(t,d),Se.addEnum({key:e?514701:513701,value:a}),Se.addEnum({key:e?514700:513700,value:c})});ee.on(ce.LOCAL_TRACK_RECAPTURE,({track:i,error:t})=>{if(i.userId){let e={eventId:2003,param1:0};i.kind===j.AUDIO?(e.streamType=1,t&&(e.param1=2)):(e.streamType=i.streamType==="auxiliary"?7:2,t&&(e.param1=8)),jt(i.userId,e)}});function jt(i,t){let e=qe(be({},t),{timestamp:to()});ma.has(i)?ma.get(i).push(e):ma.set(i,[e])}function zE(i){if(ma.has(i)){let t=ma.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 ma.delete(i),t}return[]}function jE(...i){return ut((t,e)=>function(...r){return QA.call(this,i,r,e,this._name),t.apply(this,r)})}function QA(i,t,e,r){try{if(Gt(i))for(let o=0;o<i.length;o++)vl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else vl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}catch(o){throw se.error(o),o}}function vl({rule:i,value:t,key:e,fnName:r,className:o}){if(z(t)){if(i.required)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_REQUIRED,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(z(i.defaultValue))return;t=i.defaultValue}if(Array.isArray(i.type)){let a=!1;for(let c=0;c<i.type.length;c++)i.type[c]===null&&t===null&&(a=!0),Rt(i.type[c])&&t instanceof i.type[c]&&(a=!0),nt(i.type[c])&&Xt(t)===i.type[c].toLowerCase()&&(a=!0);if(!a)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_TYPE,data:{key:e,rule:{type:i.type.map(c=>Os(c)?Ln(c):nt(c)?c:Xt(c))},fnName:r,value:t},link:{className:o,fnName:r}})})}else if(!z(i.type)&&Xt(t)!==i.type)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_TYPE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.allowEmpty===!1){let a=ft(t)&&(t===0||Number.isNaN(t)),c=nt(t)&&t.trim()==="";if(a||c)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_EMPTY,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}if(i.notLessThanZero&&ft(t)&&t<0)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.CANNOT_LESS_THAN_ZERO,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!z(i.min)&&ft(t)&&t<i.min)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_MIN,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(!z(i.max)&&ft(t)&&t>i.max)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_MAX,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(nt(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})})}else if(Rt(i.instanceOf)&&!(t instanceof i.instanceOf))throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_INSTANCE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});if(i.values&&!i.values.includes(t))throw new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.INVALID_PARAMETER_RANGE,data:{key:e,rule:i,fnName:r,value:t},link:{className:o,fnName:r}})});let{properties:s}=i;Nr(s)&&Xr(t)&&Object.keys(s).forEach(a=>{vl.call(this,{rule:s[a],value:t&&t[a],key:`${e}.${a}`,fnName:r,className:o})});let{arrayItem:n}=i;Nr(n)&&Gt(t)&&t.forEach((a,c)=>{vl.call(this,{rule:n,value:a,key:`${e}[${c}]`,fnName:r,className:o})}),Rt(i.validate)&&i.validate.call(this,t,e,r,o,this)}var YA=Li(mo(),1);var ZA=Object.create,Dl=Object.defineProperty,KA=Object.defineProperties,oT=Object.getOwnPropertyDescriptor,ev=Object.getOwnPropertyDescriptors,sT=Object.getOwnPropertyNames,Nl=Object.getOwnPropertySymbols,tv=Object.getPrototypeOf,wf=Object.prototype.hasOwnProperty,nT=Object.prototype.propertyIsEnumerable,yf=(i,t,e)=>t in i?Dl(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Hc=(i,t)=>{for(var e in t||(t={}))wf.call(t,e)&&yf(i,e,t[e]);if(Nl)for(var e of Nl(t))nT.call(t,e)&&yf(i,e,t[e]);return i},Wc=(i,t)=>KA(i,ev(t)),rv=(i,t)=>{var e={};for(var r in i)wf.call(i,r)&&t.indexOf(r)<0&&(e[r]=i[r]);if(i!=null&&Nl)for(var r of Nl(i))t.indexOf(r)<0&&nT.call(i,r)&&(e[r]=i[r]);return e},iv=(i,t)=>function(){return t||(0,i[sT(i)[0]])((t={exports:{}}).exports,t),t.exports},ov=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of sT(t))wf.call(i,o)||o===e||Dl(i,o,{get:()=>t[o],enumerable:!(r=oT(t,o))||r.enumerable});return i},aT=(i,t,e)=>(e=i!=null?ZA(tv(i)):{},ov(!t&&i&&i.__esModule?e:Dl(e,"default",{value:i,enumerable:!0}),i)),Ao=(i,t,e,r)=>{for(var o,s=r>1?void 0:r?oT(t,e):t,n=i.length-1;n>=0;n--)(o=i[n])&&(s=(r?o(t,e,s):o(s))||s);return r&&s&&Dl(t,e,s),s},xt=(i,t,e)=>yf(i,typeof t!="symbol"?t+"":t,e),cT=iv({"../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js"(i,t){"use strict";var e=Object.prototype.hasOwnProperty,r="~";function o(){}function s(d,m,l){this.fn=d,this.context=m,this.once=l||!1}function n(d,m,l,f,g){if(typeof l!="function")throw new TypeError("The listener must be a function");var T=new s(l,f||d,g),E=r?r+m:m;return d._events[E]?d._events[E].fn?d._events[E]=[d._events[E],T]:d._events[E].push(T):(d._events[E]=T,d._eventsCount++),d}function a(d,m){--d._eventsCount==0?d._events=new o:delete d._events[m]}function c(){this._events=new o,this._eventsCount=0}Object.create&&(o.prototype=Object.create(null),new o().__proto__||(r=!1)),c.prototype.eventNames=function(){var d,m,l=[];if(this._eventsCount===0)return l;for(m in d=this._events)e.call(d,m)&&l.push(r?m.slice(1):m);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(d)):l},c.prototype.listeners=function(d){var m=r?r+d:d,l=this._events[m];if(!l)return[];if(l.fn)return[l.fn];for(var f=0,g=l.length,T=new Array(g);f<g;f++)T[f]=l[f].fn;return T},c.prototype.listenerCount=function(d){var m=r?r+d:d,l=this._events[m];return l?l.fn?1:l.length:0},c.prototype.emit=function(d,m,l,f,g,T){var E=r?r+d:d;if(!this._events[E])return!1;var y,v,M=this._events[E],w=arguments.length;if(M.fn){switch(M.once&&this.removeListener(d,M.fn,void 0,!0),w){case 1:return M.fn.call(M.context),!0;case 2:return M.fn.call(M.context,m),!0;case 3:return M.fn.call(M.context,m,l),!0;case 4:return M.fn.call(M.context,m,l,f),!0;case 5:return M.fn.call(M.context,m,l,f,g),!0;case 6:return M.fn.call(M.context,m,l,f,g,T),!0}for(v=1,y=new Array(w-1);v<w;v++)y[v-1]=arguments[v];M.fn.apply(M.context,y)}else{var H,B=M.length;for(v=0;v<B;v++)switch(M[v].once&&this.removeListener(d,M[v].fn,void 0,!0),w){case 1:M[v].fn.call(M[v].context);break;case 2:M[v].fn.call(M[v].context,m);break;case 3:M[v].fn.call(M[v].context,m,l);break;case 4:M[v].fn.call(M[v].context,m,l,f);break;default:if(!y)for(H=1,y=new Array(w-1);H<w;H++)y[H-1]=arguments[H];M[v].fn.apply(M[v].context,y)}}return!0},c.prototype.on=function(d,m,l){return n(this,d,m,l,!1)},c.prototype.once=function(d,m,l){return n(this,d,m,l,!0)},c.prototype.removeListener=function(d,m,l,f){var g=r?r+d:d;if(!this._events[g])return this;if(!m)return a(this,g),this;var T=this._events[g];if(T.fn)T.fn!==m||f&&!T.once||l&&T.context!==l||a(this,g);else{for(var E=0,y=[],v=T.length;E<v;E++)(T[E].fn!==m||f&&!T[E].once||l&&T[E].context!==l)&&y.push(T[E]);y.length?this._events[g]=y.length===1?y[0]:y:a(this,g)}return this},c.prototype.removeAllListeners=function(d){var m;return d?(m=r?r+d:d,this._events[m]&&a(this,m)):(this._events=new o,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}}),sv=aT(cT(),1),qE=Symbol("instance"),A2=Symbol("abortCtrl"),Rl=Symbol("cacheResult"),pf=class{constructor(i,t,e){this.oldState=i,this.newState=t,this.action=e,this.aborted=!1}abort(i){this.aborted=!0,zc.call(i,this.oldState,new Error(`action '${this.action}' aborted`))}toString(){return`${this.action}ing`}},wl=class extends Error{constructor(i,t,e){super(t),this.state=i,this.message=t,this.cause=e}};function nv(i){return typeof i=="object"&&i&&"then"in i}var Gc=new Map;function os(i,t,e={}){return(r,o,s)=>{let n=e.action||o;if(!e.context){let c=Gc.get(r)||[];Gc.has(r)||Gc.set(r,c),c.push({from:i,to:t,action:n})}let a=s.value;s.value=function(...c){let d=this;if(e.context&&(d=Vr.get(typeof e.context=="function"?e.context.call(this,...c):e.context)),d.state===t)return e.sync?d[Rl]:Promise.resolve(d[Rl]);d.state instanceof pf&&d.state.action==e.abortAction&&d.state.abort(d);let m=null;Array.isArray(i)?i.length==0?d.state instanceof pf&&d.state.abort(d):typeof d.state=="string"&&i.includes(d.state)||(m=new wl(d._state,`${d.name} ${n} to ${t} failed: current state ${d._state} not from ${i.join("|")}`)):i!==d.state&&(m=new wl(d._state,`${d.name} ${n} to ${t} failed: current state ${d._state} not from ${i}`));let l=y=>{if(e.fail&&e.fail.call(this,y),e.sync){if(e.ignoreError)return y;throw y}return e.ignoreError?Promise.resolve(y):Promise.reject(y)};if(m)return l(m);let f=d.state,g=new pf(f,t,n);zc.call(d,g);let T=y=>{var v;return d[Rl]=y,g.aborted||(zc.call(d,t),(v=e.success)===null||v===void 0||v.call(this,d[Rl])),y},E=y=>(zc.call(d,f,y),l(y));try{let y=a.apply(this,c);return nv(y)?y.then(T).catch(E):e.sync?T(y):Promise.resolve(T(y))}catch(y){return E(new wl(d._state,`${d.name} ${n} from ${i} to ${t} failed: ${y}`,y instanceof Error?y:new Error(String(y))))}}}}function av(...i){return(t,e,r)=>{let o=r.value,s=e;r.value=function(...n){if(!i.includes(this.state.toString()))throw new wl(this.state,`${this.name} ${s} failed: current state ${this.state} not in ${i}`);return o.apply(this,n)}}}var cv=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 zc(i,t){let e=this._state;this._state=i;let r=i.toString();i&&this.emit(r,e),this.emit(Vr.STATECHANGED,i,e,t),this.updateDevTools({value:i,old:e,err:t instanceof Error?t.message:String(t)})}var Vr=class li extends sv.default{constructor(t,e,r){super(),this.name=t,this.groupName=e,this._state=li.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[qE];o?this.name=o.name+"-"+o.count++:r[qE]={name:this.name,count:0},this.updateDevTools({diagram:this.stateDiagram})}get stateDiagram(){let t=Object.getPrototypeOf(this),e=Gc.get(t)||[],r=new Set,o=[],s=[],n=new Set,a=Object.getPrototypeOf(t);Gc.has(a)&&(a.stateDiagram.forEach(d=>r.add(d)),a.allStates.forEach(d=>n.add(d))),e.forEach(({from:d,to:m,action:l})=>{typeof d=="string"?o.push({from:d,to:m,action:l}):d.length?d.forEach(f=>{o.push({from:f,to:m,action:l})}):s.push({to:m,action:l})}),o.forEach(({from:d,to:m,action:l})=>{n.add(d),n.add(m),n.add(l+"ing"),r.add(`${d} --> ${l}ing : ${l}`),r.add(`${l}ing --> ${m} : ${l} \u{1F7E2}`),r.add(`${l}ing --> ${d} : ${l} \u{1F534}`)}),s.forEach(({to:d,action:m})=>{r.add(`${m}ing --> ${d} : ${m} \u{1F7E2}`),n.forEach(l=>{l!==d&&r.add(`${l} --> ${m}ing : ${m}`)})});let c=[...r];return Object.defineProperties(t,{stateDiagram:{value:c},allStates:{value:n}}),c}static get(t){let e;return typeof t=="string"?(e=li.instances.get(t),e||li.instances.set(t,e=new li(t,void 0,Object.create(li.prototype)))):(e=li.instances2.get(t),e||li.instances2.set(t,e=new li(t.constructor.name,void 0,Object.create(li.prototype)))),e}static getState(t){var e;return(e=li.get(t))===null||e===void 0?void 0:e.state}updateDevTools(t={}){cv(li.UPDATEAFSM,Object.assign({name:this.name,group:this.groupName},t))}get state(){return this._state}set state(t){zc.call(this,t)}};Vr.STATECHANGED="stateChanged",Vr.UPDATEAFSM="updateAFSM",Vr.INIT="[*]",Vr.ON="on",Vr.OFF="off",Vr.instances=new Map,Vr.instances2=new WeakMap;var fa=class extends Vr{constructor(){super(...arguments),xt(this,"decoder"),xt(this,"config")}initialize(){return D(this,null,function*(){this.decoder=new VideoDecoder({output:i=>{this.emit("videoFrame",i)},error:i=>{this.close(),this.emit("error",i)}})})}configure(i){this.config=i,this.decoder.configure(Wc(Hc({},i),{codec:this.getCodec(i)}))}getCodec(i){switch(i.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 i.codec}}decode(i){this.decoder.state==="configured"&&this.decoder.decode(new EncodedVideoChunk(i))}flush(){this.decoder.flush()}reset(){this.decoder.reset()}close(){this.decoder.state!=="closed"&&this.decoder.close()}};function dv(){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"),n=0,a=0,c={wasmBinary:o,postRun:()=>{i=new c.VideoDecoder({videoInfo(d,m){n=d,a=m,console.log("video info",d,m)},yuvData(d,m){let l=n*a,f=l>>2,g=c.HEAPU32[d>>2],T=c.HEAPU32[1+(d>>2)],E=c.HEAPU32[2+(d>>2)],y=c.HEAPU8.subarray(g,g+l),v=c.HEAPU8.subarray(T,T+f),M=c.HEAPU8.subarray(E,E+f),w=new Uint8Array(l+f+f);w.set(y),w.set(v,l),w.set(M,l+f);let H=new VideoFrame(w,{codedWidth:n,codedHeight:a,format:"I420",timestamp:m});e?(s==null||s.drawImage(H,0,0,e.width,e.height),s==null||s.commit()):self.postMessage({type:"yuvData",videoFrame:H},[H])}}),self.postMessage({type:"ready"})}};Function("var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;return "+r)()(c)}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:"")}}}Ao([os([Vr.INIT,"closed"],"initialized")],fa.prototype,"initialize",1),Ao([os("initialized","configured",{sync:!0})],fa.prototype,"configure",1),Ao([av("configured")],fa.prototype,"decode",1),Ao([os([],Vr.INIT,{sync:!0})],fa.prototype,"reset",1),Ao([os([],"closed",{ignoreError:!0,sync:!0})],fa.prototype,"close",1);var Fc=class extends Vr{constructor(i,t,e=!1,r,o=!1){super(),this.createModule=i,this.wasmBinary=t,this.workerMode=e,this.canvas=r,this.yuvMode=o,xt(this,"worker"),xt(this,"decoder"),xt(this,"config"),xt(this,"module",{}),xt(this,"width",0),xt(this,"height",0)}initialize(i){return D(this,null,function*(){var t;if(this.workerMode){let r=new RegExp("\\{(.+)\\}","s").exec(dv.toString())[1];this.worker=new Worker(URL.createObjectURL(new Blob([r],{type:"text/javascript"})));let o=(t=this.canvas)==null?void 0:t.transferControlToOffscreen(),s=yield this.wasmBinary;return console.warn("worker mode",s),this.worker.postMessage({type:"init",canvas:o,wasmScript:this.createModule.toString(),wasmBinary:s},o?[o,s]:[s]),new Promise(n=>{this.worker.onmessage=a=>{if(a.data.type==="ready")delete this.wasmBinary,n(),console.warn("worker mode initialize success");else if(a.data.type==="yuvData"){let{videoFrame:c}=a.data;this.emit("videoFrame",c)}}})}let e=this.module;return this.wasmBinary&&(e.wasmBinary=yield this.wasmBinary),e.print=r=>console.log(r),e.printErr=r=>console.log(`[JS] ERROR: ${r}`),e.onAbort=()=>console.log("[JS] FATAL: WASM ABORTED"),new Promise(r=>{e.postRun=o=>{this.decoder=new this.module.VideoDecoder(this),console.log("video soft decoder initialize success"),r()},i&&Object.assign(e,i),this.createModule(e)})})}configure(i){var t,e,r;this.config=i;let o=this.config.codec.startsWith("avc")?"avc":"hevc",s=this.config.description?o=="avc"?"avcc":"hvcc":"annexb";(e=this.decoder)==null||e.setCodec(o,s,(t=this.config.description)!=null?t:""),(r=this.worker)==null||r.postMessage({type:"setCodec",codec:o,format:s,description:this.config.description})}decode(i){var t,e;(t=this.decoder)==null||t.decode(i.data,i.type=="key",i.timestamp),this.state==="configured"&&((e=this.worker)==null||e.postMessage({type:"decode",packet:i}))}flush(){}reset(){this.config=void 0,this.decoder&&this.decoder.clear()}close(){this.removeAllListeners(),this.decoder&&(this.decoder.clear(),this.decoder.delete())}videoInfo(i,t){this.width=i,this.height=t;let e={width:i,height:t};this.emit("videoCodecInfo",e)}yuvData(i,t){if(!this.module)return;let e=this.width*this.height,r=e>>2,o=this.module.HEAPU32[i>>2],s=this.module.HEAPU32[1+(i>>2)],n=this.module.HEAPU32[2+(i>>2)],a=this.module.HEAPU8.subarray(o,o+e),c=this.module.HEAPU8.subarray(s,s+r),d=this.module.HEAPU8.subarray(n,n+r);if(this.yuvMode)return void this.emit("videoFrame",{y:a,u:c,v:d,timestamp:t});let m=new Uint8Array(e+r+r);m.set(a),m.set(c,e),m.set(d,e+r),this.emit("videoFrame",new VideoFrame(m,{codedWidth:this.width,codedHeight:this.height,format:"I420",timestamp:t}))}errorInfo(i){let t={errMsg:i};this.emit("error",t)}};Ao([os([Vr.INIT,"closed"],"initialized")],Fc.prototype,"initialize",1),Ao([os("initialized","configured",{sync:!0})],Fc.prototype,"configure",1),Ao([os([],Vr.INIT,{sync:!0})],Fc.prototype,"reset",1),Ao([os([],"closed",{sync:!0})],Fc.prototype,"close",1);var uv=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((u,h)=>{e=u,r=h});var s,n,a,c=Object.assign({},o),d="./this.program",m=typeof window=="object",l=typeof importScripts=="function",f=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(m||l)&&(l?f=self.location.href:typeof document!="undefined"&&document.currentScript&&(f=document.currentScript.src),i&&(f=i),f=f.indexOf("blob:")!==0?f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):"",s=u=>{var h=new XMLHttpRequest;return h.open("GET",u,!1),h.send(null),h.responseText},l&&(a=u=>{var h=new XMLHttpRequest;return h.open("GET",u,!1),h.responseType="arraybuffer",h.send(null),new Uint8Array(h.response)}),n=(u,h,_)=>{var I=new XMLHttpRequest;I.open("GET",u,!0),I.responseType="arraybuffer",I.onload=()=>{I.status==200||I.status==0&&I.response?h(I.response):_()},I.onerror=_,I.send(null)});var g,T=o.print||console.log.bind(console),E=o.printErr||console.error.bind(console);Object.assign(o,c),c=null,o.arguments&&o.arguments,o.thisProgram&&(d=o.thisProgram),o.quit&&o.quit,o.wasmBinary&&(g=o.wasmBinary);var y,v;o.noExitRuntime,typeof WebAssembly!="object"&&q("no native wasm support detected");var M,w,H,B,P,$,de,Ae,L,te=!1,A=[],le=[],He=[],ge=0,ze=null,me=null;function re(u){ge++,o.monitorRunDependencies&&o.monitorRunDependencies(ge)}function Q(u){if(ge--,o.monitorRunDependencies&&o.monitorRunDependencies(ge),ge==0&&(ze!==null&&(clearInterval(ze),ze=null),me)){var h=me;me=null,h()}}function q(u){o.onAbort&&o.onAbort(u),E(u="Aborted("+u+")"),te=!0,u+=". Build with -sASSERTIONS for more info.";var h=new WebAssembly.RuntimeError(u);throw r(h),h}var Be,De,ne,Ze;function yt(u){return u.startsWith("data:application/octet-stream;base64,")}function ae(u){if(u==Be&&g)return new Uint8Array(g);if(a)return a(u);throw"both async and sync fetching of the wasm failed"}function at(u,h,_){return function(I){return g||!m&&!l||typeof fetch!="function"?Promise.resolve().then(()=>ae(I)):fetch(I,{credentials:"same-origin"}).then(C=>{if(!C.ok)throw"failed to load wasm binary file at '"+I+"'";return C.arrayBuffer()}).catch(()=>ae(I))}(u).then(I=>WebAssembly.instantiate(I,h)).then(I=>I).then(_,I=>{E("failed to asynchronously prepare wasm: "+I),q(I)})}yt(Be="videodec.wasm")||(De=Be,Be=o.locateFile?o.locateFile(De,f):f+De);var Lt=u=>{for(;u.length>0;)u.shift()(o)};function wt(u){this.excPtr=u,this.ptr=u-24,this.set_type=function(h){$[this.ptr+4>>2]=h},this.get_type=function(){return $[this.ptr+4>>2]},this.set_destructor=function(h){$[this.ptr+8>>2]=h},this.get_destructor=function(){return $[this.ptr+8>>2]},this.set_caught=function(h){h=h?1:0,M[this.ptr+12|0]=h},this.get_caught=function(){return M[this.ptr+12|0]!=0},this.set_rethrown=function(h){h=h?1:0,M[this.ptr+13|0]=h},this.get_rethrown=function(){return M[this.ptr+13|0]!=0},this.init=function(h,_){this.set_adjusted_ptr(0),this.set_type(h),this.set_destructor(_)},this.set_adjusted_ptr=function(h){$[this.ptr+16>>2]=h},this.get_adjusted_ptr=function(){return $[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Na(this.get_type()))return $[this.excPtr>>2];var h=this.get_adjusted_ptr();return h!==0?h:this.excPtr}}var we={isAbs:u=>u.charAt(0)==="/",splitPath:u=>/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/.exec(u).slice(1),normalizeArray:(u,h)=>{for(var _=0,I=u.length-1;I>=0;I--){var C=u[I];C==="."?u.splice(I,1):C===".."?(u.splice(I,1),_++):_&&(u.splice(I,1),_--)}if(h)for(;_;_--)u.unshift("..");return u},normalize:u=>{var h=we.isAbs(u),_=u.substr(-1)==="/";return(u=we.normalizeArray(u.split("/").filter(I=>!!I),!h).join("/"))||h||(u="."),u&&_&&(u+="/"),(h?"/":"")+u},dirname:u=>{var h=we.splitPath(u),_=h[0],I=h[1];return _||I?(I&&(I=I.substr(0,I.length-1)),_+I):"."},basename:u=>{if(u==="/")return"/";var h=(u=(u=we.normalize(u)).replace(/\/$/,"")).lastIndexOf("/");return h===-1?u:u.substr(h+1)},join:function(){var u=Array.prototype.slice.call(arguments);return we.normalize(u.join("/"))},join2:(u,h)=>we.normalize(u+"/"+h)},fr=u=>(fr=(()=>{if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function")return h=>crypto.getRandomValues(h);q("initRandomDevice")})())(u),S={resolve:function(){for(var u="",h=!1,_=arguments.length-1;_>=-1&&!h;_--){var I=_>=0?arguments[_]:b.cwd();if(typeof I!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!I)return"";u=I+"/"+u,h=we.isAbs(I)}return(h?"/":"")+(u=we.normalizeArray(u.split("/").filter(C=>!!C),!h).join("/"))||"."},relative:(u,h)=>{function _(K){for(var Re=0;Re<K.length&&K[Re]==="";Re++);for(var Pe=K.length-1;Pe>=0&&K[Pe]==="";Pe--);return Re>Pe?[]:K.slice(Re,Pe-Re+1)}u=S.resolve(u).substr(1),h=S.resolve(h).substr(1);for(var I=_(u.split("/")),C=_(h.split("/")),k=Math.min(I.length,C.length),U=k,V=0;V<k;V++)if(I[V]!==C[V]){U=V;break}var ie=[];for(V=U;V<I.length;V++)ie.push("..");return(ie=ie.concat(C.slice(U))).join("/")}},ue=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,Y=(u,h,_)=>{for(var I=h+_,C=h;u[C]&&!(C>=I);)++C;if(C-h>16&&u.buffer&&ue)return ue.decode(u.subarray(h,C));for(var k="";h<C;){var U=u[h++];if(128&U){var V=63&u[h++];if((224&U)!=192){var ie=63&u[h++];if((U=(240&U)==224?(15&U)<<12|V<<6|ie:(7&U)<<18|V<<12|ie<<6|63&u[h++])<65536)k+=String.fromCharCode(U);else{var K=U-65536;k+=String.fromCharCode(55296|K>>10,56320|1023&K)}}else k+=String.fromCharCode((31&U)<<6|V)}else k+=String.fromCharCode(U)}return k},x=[],O=u=>{for(var h=0,_=0;_<u.length;++_){var I=u.charCodeAt(_);I<=127?h++:I<=2047?h+=2:I>=55296&&I<=57343?(h+=4,++_):h+=3}return h},F=(u,h,_,I)=>{if(!(I>0))return 0;for(var C=_,k=_+I-1,U=0;U<u.length;++U){var V=u.charCodeAt(U);if(V>=55296&&V<=57343&&(V=65536+((1023&V)<<10)|1023&u.charCodeAt(++U)),V<=127){if(_>=k)break;h[_++]=V}else if(V<=2047){if(_+1>=k)break;h[_++]=192|V>>6,h[_++]=128|63&V}else if(V<=65535){if(_+2>=k)break;h[_++]=224|V>>12,h[_++]=128|V>>6&63,h[_++]=128|63&V}else{if(_+3>=k)break;h[_++]=240|V>>18,h[_++]=128|V>>12&63,h[_++]=128|V>>6&63,h[_++]=128|63&V}}return h[_]=0,_-C};function pe(u,h,_){var I=_>0?_:O(u)+1,C=new Array(I),k=F(u,C,0,C.length);return h&&(C.length=k),C}var fe={ttys:[],init:function(){},shutdown:function(){},register:function(u,h){fe.ttys[u]={input:[],output:[],ops:h},b.registerDevice(u,fe.stream_ops)},stream_ops:{open:function(u){var h=fe.ttys[u.node.rdev];if(!h)throw new b.ErrnoError(43);u.tty=h,u.seekable=!1},close:function(u){u.tty.ops.fsync(u.tty)},fsync:function(u){u.tty.ops.fsync(u.tty)},read:function(u,h,_,I,C){if(!u.tty||!u.tty.ops.get_char)throw new b.ErrnoError(60);for(var k=0,U=0;U<I;U++){var V;try{V=u.tty.ops.get_char(u.tty)}catch(ie){throw new b.ErrnoError(29)}if(V===void 0&&k===0)throw new b.ErrnoError(6);if(V==null)break;k++,h[_+U]=V}return k&&(u.node.timestamp=Date.now()),k},write:function(u,h,_,I,C){if(!u.tty||!u.tty.ops.put_char)throw new b.ErrnoError(60);try{for(var k=0;k<I;k++)u.tty.ops.put_char(u.tty,h[_+k])}catch(U){throw new b.ErrnoError(29)}return I&&(u.node.timestamp=Date.now()),k}},default_tty_ops:{get_char:function(u){return(()=>{if(!x.length){var h=null;if(typeof window!="undefined"&&typeof window.prompt=="function"?(h=window.prompt("Input: "))!==null&&(h+=`
|
|
52
|
+
`):typeof readline=="function"&&(h=readline())!==null&&(h+=`
|
|
53
|
+
`),!h)return null;x=pe(h,!0)}return x.shift()})()},put_char:function(u,h){h===null||h===10?(T(Y(u.output,0)),u.output=[]):h!=0&&u.output.push(h)},fsync:function(u){u.output&&u.output.length>0&&(T(Y(u.output,0)),u.output=[])},ioctl_tcgets:function(u){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(u,h,_){return 0},ioctl_tiocgwinsz:function(u){return[24,80]}},default_tty1_ops:{put_char:function(u,h){h===null||h===10?(E(Y(u.output,0)),u.output=[]):h!=0&&u.output.push(h)},fsync:function(u){u.output&&u.output.length>0&&(E(Y(u.output,0)),u.output=[])}}},X=u=>{q()},oe={ops_table:null,mount:u=>oe.createNode(null,"/",16895,0),createNode(u,h,_,I){if(b.isBlkdev(_)||b.isFIFO(_))throw new b.ErrnoError(63);oe.ops_table||(oe.ops_table={dir:{node:{getattr:oe.node_ops.getattr,setattr:oe.node_ops.setattr,lookup:oe.node_ops.lookup,mknod:oe.node_ops.mknod,rename:oe.node_ops.rename,unlink:oe.node_ops.unlink,rmdir:oe.node_ops.rmdir,readdir:oe.node_ops.readdir,symlink:oe.node_ops.symlink},stream:{llseek:oe.stream_ops.llseek}},file:{node:{getattr:oe.node_ops.getattr,setattr:oe.node_ops.setattr},stream:{llseek:oe.stream_ops.llseek,read:oe.stream_ops.read,write:oe.stream_ops.write,allocate:oe.stream_ops.allocate,mmap:oe.stream_ops.mmap,msync:oe.stream_ops.msync}},link:{node:{getattr:oe.node_ops.getattr,setattr:oe.node_ops.setattr,readlink:oe.node_ops.readlink},stream:{}},chrdev:{node:{getattr:oe.node_ops.getattr,setattr:oe.node_ops.setattr},stream:b.chrdev_stream_ops}});var C=b.createNode(u,h,_,I);return b.isDir(C.mode)?(C.node_ops=oe.ops_table.dir.node,C.stream_ops=oe.ops_table.dir.stream,C.contents={}):b.isFile(C.mode)?(C.node_ops=oe.ops_table.file.node,C.stream_ops=oe.ops_table.file.stream,C.usedBytes=0,C.contents=null):b.isLink(C.mode)?(C.node_ops=oe.ops_table.link.node,C.stream_ops=oe.ops_table.link.stream):b.isChrdev(C.mode)&&(C.node_ops=oe.ops_table.chrdev.node,C.stream_ops=oe.ops_table.chrdev.stream),C.timestamp=Date.now(),u&&(u.contents[h]=C,u.timestamp=C.timestamp),C},getFileDataAsTypedArray:u=>u.contents?u.contents.subarray?u.contents.subarray(0,u.usedBytes):new Uint8Array(u.contents):new Uint8Array(0),expandFileStorage(u,h){var _=u.contents?u.contents.length:0;if(!(_>=h)){h=Math.max(h,_*(_<1048576?2:1.125)>>>0),_!=0&&(h=Math.max(h,256));var I=u.contents;u.contents=new Uint8Array(h),u.usedBytes>0&&u.contents.set(I.subarray(0,u.usedBytes),0)}},resizeFileStorage(u,h){if(u.usedBytes!=h)if(h==0)u.contents=null,u.usedBytes=0;else{var _=u.contents;u.contents=new Uint8Array(h),_&&u.contents.set(_.subarray(0,Math.min(h,u.usedBytes))),u.usedBytes=h}},node_ops:{getattr(u){var h={};return h.dev=b.isChrdev(u.mode)?u.id:1,h.ino=u.id,h.mode=u.mode,h.nlink=1,h.uid=0,h.gid=0,h.rdev=u.rdev,b.isDir(u.mode)?h.size=4096:b.isFile(u.mode)?h.size=u.usedBytes:b.isLink(u.mode)?h.size=u.link.length:h.size=0,h.atime=new Date(u.timestamp),h.mtime=new Date(u.timestamp),h.ctime=new Date(u.timestamp),h.blksize=4096,h.blocks=Math.ceil(h.size/h.blksize),h},setattr(u,h){h.mode!==void 0&&(u.mode=h.mode),h.timestamp!==void 0&&(u.timestamp=h.timestamp),h.size!==void 0&&oe.resizeFileStorage(u,h.size)},lookup(u,h){throw b.genericErrors[44]},mknod:(u,h,_,I)=>oe.createNode(u,h,_,I),rename(u,h,_){if(b.isDir(u.mode)){var I;try{I=b.lookupNode(h,_)}catch(k){}if(I)for(var C in I.contents)throw new b.ErrnoError(55)}delete u.parent.contents[u.name],u.parent.timestamp=Date.now(),u.name=_,h.contents[_]=u,h.timestamp=u.parent.timestamp,u.parent=h},unlink(u,h){delete u.contents[h],u.timestamp=Date.now()},rmdir(u,h){var _=b.lookupNode(u,h);for(var I in _.contents)throw new b.ErrnoError(55);delete u.contents[h],u.timestamp=Date.now()},readdir(u){var h=[".",".."];for(var _ in u.contents)u.contents.hasOwnProperty(_)&&h.push(_);return h},symlink(u,h,_){var I=oe.createNode(u,h,41471,0);return I.link=_,I},readlink(u){if(!b.isLink(u.mode))throw new b.ErrnoError(28);return u.link}},stream_ops:{read(u,h,_,I,C){var k=u.node.contents;if(C>=u.node.usedBytes)return 0;var U=Math.min(u.node.usedBytes-C,I);if(U>8&&k.subarray)h.set(k.subarray(C,C+U),_);else for(var V=0;V<U;V++)h[_+V]=k[C+V];return U},write(u,h,_,I,C,k){if(!I)return 0;var U=u.node;if(U.timestamp=Date.now(),h.subarray&&(!U.contents||U.contents.subarray)){if(k)return U.contents=h.subarray(_,_+I),U.usedBytes=I,I;if(U.usedBytes===0&&C===0)return U.contents=h.slice(_,_+I),U.usedBytes=I,I;if(C+I<=U.usedBytes)return U.contents.set(h.subarray(_,_+I),C),I}if(oe.expandFileStorage(U,C+I),U.contents.subarray&&h.subarray)U.contents.set(h.subarray(_,_+I),C);else for(var V=0;V<I;V++)U.contents[C+V]=h[_+V];return U.usedBytes=Math.max(U.usedBytes,C+I),I},llseek(u,h,_){var I=h;if(_===1?I+=u.position:_===2&&b.isFile(u.node.mode)&&(I+=u.node.usedBytes),I<0)throw new b.ErrnoError(28);return I},allocate(u,h,_){oe.expandFileStorage(u.node,h+_),u.node.usedBytes=Math.max(u.node.usedBytes,h+_)},mmap(u,h,_,I,C){if(!b.isFile(u.node.mode))throw new b.ErrnoError(43);var k,U,V=u.node.contents;if(2&C||V.buffer!==M.buffer){if((_>0||_+h<V.length)&&(V=V.subarray?V.subarray(_,_+h):Array.prototype.slice.call(V,_,_+h)),U=!0,!(k=X()))throw new b.ErrnoError(48);M.set(V,k)}else U=!1,k=V.byteOffset;return{ptr:k,allocated:U}},msync:(u,h,_,I,C)=>(oe.stream_ops.write(u,h,0,I,_,!1),0)}},xe=(u,h,_,I)=>{var C=I?"":`al ${u}`;n(u,k=>{var U;U=`Loading data file "${u}" failed (no arrayBuffer).`,k||q(U),h(new Uint8Array(k)),C&&Q()},k=>{if(!_)throw`Loading data file "${u}" failed.`;_()}),C&&re()},Z=o.preloadPlugins||[];function $e(u,h){var _=0;return u&&(_|=365),h&&(_|=146),_}var b={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(u,h={})=>{if(!(u=S.resolve(u)))return{path:"",node:null};if((h=Object.assign({follow_mount:!0,recurse_count:0},h)).recurse_count>8)throw new b.ErrnoError(32);for(var _=u.split("/").filter(K=>!!K),I=b.root,C="/",k=0;k<_.length;k++){var U=k===_.length-1;if(U&&h.parent)break;if(I=b.lookupNode(I,_[k]),C=we.join2(C,_[k]),b.isMountpoint(I)&&(!U||U&&h.follow_mount)&&(I=I.mounted.root),!U||h.follow)for(var V=0;b.isLink(I.mode);){var ie=b.readlink(C);if(C=S.resolve(we.dirname(C),ie),I=b.lookupPath(C,{recurse_count:h.recurse_count+1}).node,V++>40)throw new b.ErrnoError(32)}}return{path:C,node:I}},getPath:u=>{for(var h;;){if(b.isRoot(u)){var _=u.mount.mountpoint;return h?_[_.length-1]!=="/"?`${_}/${h}`:_+h:_}h=h?`${u.name}/${h}`:u.name,u=u.parent}},hashName:(u,h)=>{for(var _=0,I=0;I<h.length;I++)_=(_<<5)-_+h.charCodeAt(I)|0;return(u+_>>>0)%b.nameTable.length},hashAddNode:u=>{var h=b.hashName(u.parent.id,u.name);u.name_next=b.nameTable[h],b.nameTable[h]=u},hashRemoveNode:u=>{var h=b.hashName(u.parent.id,u.name);if(b.nameTable[h]===u)b.nameTable[h]=u.name_next;else for(var _=b.nameTable[h];_;){if(_.name_next===u){_.name_next=u.name_next;break}_=_.name_next}},lookupNode:(u,h)=>{var _=b.mayLookup(u);if(_)throw new b.ErrnoError(_,u);for(var I=b.hashName(u.id,h),C=b.nameTable[I];C;C=C.name_next){var k=C.name;if(C.parent.id===u.id&&k===h)return C}return b.lookup(u,h)},createNode:(u,h,_,I)=>{var C=new b.FSNode(u,h,_,I);return b.hashAddNode(C),C},destroyNode:u=>{b.hashRemoveNode(u)},isRoot:u=>u===u.parent,isMountpoint:u=>!!u.mounted,isFile:u=>(61440&u)==32768,isDir:u=>(61440&u)==16384,isLink:u=>(61440&u)==40960,isChrdev:u=>(61440&u)==8192,isBlkdev:u=>(61440&u)==24576,isFIFO:u=>(61440&u)==4096,isSocket:u=>!(49152&~u),flagsToPermissionString:u=>{var h=["r","w","rw"][3&u];return 512&u&&(h+="w"),h},nodePermissions:(u,h)=>b.ignorePermissions||(!h.includes("r")||292&u.mode)&&(!h.includes("w")||146&u.mode)&&(!h.includes("x")||73&u.mode)?0:2,mayLookup:u=>{var h=b.nodePermissions(u,"x");return h||(u.node_ops.lookup?0:2)},mayCreate:(u,h)=>{try{return b.lookupNode(u,h),20}catch(_){}return b.nodePermissions(u,"wx")},mayDelete:(u,h,_)=>{var I;try{I=b.lookupNode(u,h)}catch(k){return k.errno}var C=b.nodePermissions(u,"wx");if(C)return C;if(_){if(!b.isDir(I.mode))return 54;if(b.isRoot(I)||b.getPath(I)===b.cwd())return 10}else if(b.isDir(I.mode))return 31;return 0},mayOpen:(u,h)=>u?b.isLink(u.mode)?32:b.isDir(u.mode)&&(b.flagsToPermissionString(h)!=="r"||512&h)?31:b.nodePermissions(u,b.flagsToPermissionString(h)):44,MAX_OPEN_FDS:4096,nextfd:()=>{for(var u=0;u<=b.MAX_OPEN_FDS;u++)if(!b.streams[u])return u;throw new b.ErrnoError(33)},getStreamChecked:u=>{var h=b.getStream(u);if(!h)throw new b.ErrnoError(8);return h},getStream:u=>b.streams[u],createStream:(u,h=-1)=>(b.FSStream||(b.FSStream=function(){this.shared={}},b.FSStream.prototype={},Object.defineProperties(b.FSStream.prototype,{object:{get(){return this.node},set(_){this.node=_}},isRead:{get(){return(2097155&this.flags)!=1}},isWrite:{get(){return!!(2097155&this.flags)}},isAppend:{get(){return 1024&this.flags}},flags:{get(){return this.shared.flags},set(_){this.shared.flags=_}},position:{get(){return this.shared.position},set(_){this.shared.position=_}}})),u=Object.assign(new b.FSStream,u),h==-1&&(h=b.nextfd()),u.fd=h,b.streams[h]=u,u),closeStream:u=>{b.streams[u]=null},chrdev_stream_ops:{open:u=>{var h=b.getDevice(u.node.rdev);u.stream_ops=h.stream_ops,u.stream_ops.open&&u.stream_ops.open(u)},llseek:()=>{throw new b.ErrnoError(70)}},major:u=>u>>8,minor:u=>255&u,makedev:(u,h)=>u<<8|h,registerDevice:(u,h)=>{b.devices[u]={stream_ops:h}},getDevice:u=>b.devices[u],getMounts:u=>{for(var h=[],_=[u];_.length;){var I=_.pop();h.push(I),_.push.apply(_,I.mounts)}return h},syncfs:(u,h)=>{typeof u=="function"&&(h=u,u=!1),b.syncFSRequests++,b.syncFSRequests>1&&E(`warning: ${b.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`);var _=b.getMounts(b.root.mount),I=0;function C(U){return b.syncFSRequests--,h(U)}function k(U){if(U)return k.errored?void 0:(k.errored=!0,C(U));++I>=_.length&&C(null)}_.forEach(U=>{if(!U.type.syncfs)return k(null);U.type.syncfs(U,u,k)})},mount:(u,h,_)=>{var I,C=_==="/",k=!_;if(C&&b.root)throw new b.ErrnoError(10);if(!C&&!k){var U=b.lookupPath(_,{follow_mount:!1});if(_=U.path,I=U.node,b.isMountpoint(I))throw new b.ErrnoError(10);if(!b.isDir(I.mode))throw new b.ErrnoError(54)}var V={type:u,opts:h,mountpoint:_,mounts:[]},ie=u.mount(V);return ie.mount=V,V.root=ie,C?b.root=ie:I&&(I.mounted=V,I.mount&&I.mount.mounts.push(V)),ie},unmount:u=>{var h=b.lookupPath(u,{follow_mount:!1});if(!b.isMountpoint(h.node))throw new b.ErrnoError(28);var _=h.node,I=_.mounted,C=b.getMounts(I);Object.keys(b.nameTable).forEach(U=>{for(var V=b.nameTable[U];V;){var ie=V.name_next;C.includes(V.mount)&&b.destroyNode(V),V=ie}}),_.mounted=null;var k=_.mount.mounts.indexOf(I);_.mount.mounts.splice(k,1)},lookup:(u,h)=>u.node_ops.lookup(u,h),mknod:(u,h,_)=>{var I=b.lookupPath(u,{parent:!0}).node,C=we.basename(u);if(!C||C==="."||C==="..")throw new b.ErrnoError(28);var k=b.mayCreate(I,C);if(k)throw new b.ErrnoError(k);if(!I.node_ops.mknod)throw new b.ErrnoError(63);return I.node_ops.mknod(I,C,h,_)},create:(u,h)=>(h=h!==void 0?h:438,h&=4095,h|=32768,b.mknod(u,h,0)),mkdir:(u,h)=>(h=h!==void 0?h:511,h&=1023,h|=16384,b.mknod(u,h,0)),mkdirTree:(u,h)=>{for(var _=u.split("/"),I="",C=0;C<_.length;++C)if(_[C]){I+="/"+_[C];try{b.mkdir(I,h)}catch(k){if(k.errno!=20)throw k}}},mkdev:(u,h,_)=>(_===void 0&&(_=h,h=438),h|=8192,b.mknod(u,h,_)),symlink:(u,h)=>{if(!S.resolve(u))throw new b.ErrnoError(44);var _=b.lookupPath(h,{parent:!0}).node;if(!_)throw new b.ErrnoError(44);var I=we.basename(h),C=b.mayCreate(_,I);if(C)throw new b.ErrnoError(C);if(!_.node_ops.symlink)throw new b.ErrnoError(63);return _.node_ops.symlink(_,I,u)},rename:(u,h)=>{var _,I,C=we.dirname(u),k=we.dirname(h),U=we.basename(u),V=we.basename(h);if(_=b.lookupPath(u,{parent:!0}).node,I=b.lookupPath(h,{parent:!0}).node,!_||!I)throw new b.ErrnoError(44);if(_.mount!==I.mount)throw new b.ErrnoError(75);var ie,K=b.lookupNode(_,U),Re=S.relative(u,k);if(Re.charAt(0)!==".")throw new b.ErrnoError(28);if((Re=S.relative(h,C)).charAt(0)!==".")throw new b.ErrnoError(55);try{ie=b.lookupNode(I,V)}catch(Le){}if(K!==ie){var Pe=b.isDir(K.mode),Ue=b.mayDelete(_,U,Pe);if(Ue)throw new b.ErrnoError(Ue);if(Ue=ie?b.mayDelete(I,V,Pe):b.mayCreate(I,V))throw new b.ErrnoError(Ue);if(!_.node_ops.rename)throw new b.ErrnoError(63);if(b.isMountpoint(K)||ie&&b.isMountpoint(ie))throw new b.ErrnoError(10);if(I!==_&&(Ue=b.nodePermissions(_,"w")))throw new b.ErrnoError(Ue);b.hashRemoveNode(K);try{_.node_ops.rename(K,I,V)}catch(Le){throw Le}finally{b.hashAddNode(K)}}},rmdir:u=>{var h=b.lookupPath(u,{parent:!0}).node,_=we.basename(u),I=b.lookupNode(h,_),C=b.mayDelete(h,_,!0);if(C)throw new b.ErrnoError(C);if(!h.node_ops.rmdir)throw new b.ErrnoError(63);if(b.isMountpoint(I))throw new b.ErrnoError(10);h.node_ops.rmdir(h,_),b.destroyNode(I)},readdir:u=>{var h=b.lookupPath(u,{follow:!0}).node;if(!h.node_ops.readdir)throw new b.ErrnoError(54);return h.node_ops.readdir(h)},unlink:u=>{var h=b.lookupPath(u,{parent:!0}).node;if(!h)throw new b.ErrnoError(44);var _=we.basename(u),I=b.lookupNode(h,_),C=b.mayDelete(h,_,!1);if(C)throw new b.ErrnoError(C);if(!h.node_ops.unlink)throw new b.ErrnoError(63);if(b.isMountpoint(I))throw new b.ErrnoError(10);h.node_ops.unlink(h,_),b.destroyNode(I)},readlink:u=>{var h=b.lookupPath(u).node;if(!h)throw new b.ErrnoError(44);if(!h.node_ops.readlink)throw new b.ErrnoError(28);return S.resolve(b.getPath(h.parent),h.node_ops.readlink(h))},stat:(u,h)=>{var _=b.lookupPath(u,{follow:!h}).node;if(!_)throw new b.ErrnoError(44);if(!_.node_ops.getattr)throw new b.ErrnoError(63);return _.node_ops.getattr(_)},lstat:u=>b.stat(u,!0),chmod:(u,h,_)=>{var I;if(typeof u=="string"?I=b.lookupPath(u,{follow:!_}).node:I=u,!I.node_ops.setattr)throw new b.ErrnoError(63);I.node_ops.setattr(I,{mode:4095&h|-4096&I.mode,timestamp:Date.now()})},lchmod:(u,h)=>{b.chmod(u,h,!0)},fchmod:(u,h)=>{var _=b.getStreamChecked(u);b.chmod(_.node,h)},chown:(u,h,_,I)=>{var C;if(typeof u=="string"?C=b.lookupPath(u,{follow:!I}).node:C=u,!C.node_ops.setattr)throw new b.ErrnoError(63);C.node_ops.setattr(C,{timestamp:Date.now()})},lchown:(u,h,_)=>{b.chown(u,h,_,!0)},fchown:(u,h,_)=>{var I=b.getStreamChecked(u);b.chown(I.node,h,_)},truncate:(u,h)=>{if(h<0)throw new b.ErrnoError(28);var _;if(typeof u=="string"?_=b.lookupPath(u,{follow:!0}).node:_=u,!_.node_ops.setattr)throw new b.ErrnoError(63);if(b.isDir(_.mode))throw new b.ErrnoError(31);if(!b.isFile(_.mode))throw new b.ErrnoError(28);var I=b.nodePermissions(_,"w");if(I)throw new b.ErrnoError(I);_.node_ops.setattr(_,{size:h,timestamp:Date.now()})},ftruncate:(u,h)=>{var _=b.getStreamChecked(u);if(!(2097155&_.flags))throw new b.ErrnoError(28);b.truncate(_.node,h)},utime:(u,h,_)=>{var I=b.lookupPath(u,{follow:!0}).node;I.node_ops.setattr(I,{timestamp:Math.max(h,_)})},open:(u,h,_)=>{if(u==="")throw new b.ErrnoError(44);var I;if(_=_===void 0?438:_,_=64&(h=typeof h=="string"?function(V){var ie={r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090}[V];if(ie===void 0)throw new Error(`Unknown file open mode: ${V}`);return ie}(h):h)?4095&_|32768:0,typeof u=="object")I=u;else{u=we.normalize(u);try{I=b.lookupPath(u,{follow:!(131072&h)}).node}catch(V){}}var C=!1;if(64&h)if(I){if(128&h)throw new b.ErrnoError(20)}else I=b.mknod(u,_,0),C=!0;if(!I)throw new b.ErrnoError(44);if(b.isChrdev(I.mode)&&(h&=-513),65536&h&&!b.isDir(I.mode))throw new b.ErrnoError(54);if(!C){var k=b.mayOpen(I,h);if(k)throw new b.ErrnoError(k)}512&h&&!C&&b.truncate(I,0),h&=-131713;var U=b.createStream({node:I,path:b.getPath(I),flags:h,seekable:!0,position:0,stream_ops:I.stream_ops,ungotten:[],error:!1});return U.stream_ops.open&&U.stream_ops.open(U),!o.logReadFiles||1&h||(b.readFiles||(b.readFiles={}),u in b.readFiles||(b.readFiles[u]=1)),U},close:u=>{if(b.isClosed(u))throw new b.ErrnoError(8);u.getdents&&(u.getdents=null);try{u.stream_ops.close&&u.stream_ops.close(u)}catch(h){throw h}finally{b.closeStream(u.fd)}u.fd=null},isClosed:u=>u.fd===null,llseek:(u,h,_)=>{if(b.isClosed(u))throw new b.ErrnoError(8);if(!u.seekable||!u.stream_ops.llseek)throw new b.ErrnoError(70);if(_!=0&&_!=1&&_!=2)throw new b.ErrnoError(28);return u.position=u.stream_ops.llseek(u,h,_),u.ungotten=[],u.position},read:(u,h,_,I,C)=>{if(I<0||C<0)throw new b.ErrnoError(28);if(b.isClosed(u))throw new b.ErrnoError(8);if((2097155&u.flags)==1)throw new b.ErrnoError(8);if(b.isDir(u.node.mode))throw new b.ErrnoError(31);if(!u.stream_ops.read)throw new b.ErrnoError(28);var k=C!==void 0;if(k){if(!u.seekable)throw new b.ErrnoError(70)}else C=u.position;var U=u.stream_ops.read(u,h,_,I,C);return k||(u.position+=U),U},write:(u,h,_,I,C,k)=>{if(I<0||C<0)throw new b.ErrnoError(28);if(b.isClosed(u))throw new b.ErrnoError(8);if(!(2097155&u.flags))throw new b.ErrnoError(8);if(b.isDir(u.node.mode))throw new b.ErrnoError(31);if(!u.stream_ops.write)throw new b.ErrnoError(28);u.seekable&&1024&u.flags&&b.llseek(u,0,2);var U=C!==void 0;if(U){if(!u.seekable)throw new b.ErrnoError(70)}else C=u.position;var V=u.stream_ops.write(u,h,_,I,C,k);return U||(u.position+=V),V},allocate:(u,h,_)=>{if(b.isClosed(u))throw new b.ErrnoError(8);if(h<0||_<=0)throw new b.ErrnoError(28);if(!(2097155&u.flags))throw new b.ErrnoError(8);if(!b.isFile(u.node.mode)&&!b.isDir(u.node.mode))throw new b.ErrnoError(43);if(!u.stream_ops.allocate)throw new b.ErrnoError(138);u.stream_ops.allocate(u,h,_)},mmap:(u,h,_,I,C)=>{if(2&I&&!(2&C)&&(2097155&u.flags)!=2)throw new b.ErrnoError(2);if((2097155&u.flags)==1)throw new b.ErrnoError(2);if(!u.stream_ops.mmap)throw new b.ErrnoError(43);return u.stream_ops.mmap(u,h,_,I,C)},msync:(u,h,_,I,C)=>u.stream_ops.msync?u.stream_ops.msync(u,h,_,I,C):0,munmap:u=>0,ioctl:(u,h,_)=>{if(!u.stream_ops.ioctl)throw new b.ErrnoError(59);return u.stream_ops.ioctl(u,h,_)},readFile:(u,h={})=>{if(h.flags=h.flags||0,h.encoding=h.encoding||"binary",h.encoding!=="utf8"&&h.encoding!=="binary")throw new Error(`Invalid encoding type "${h.encoding}"`);var _,I=b.open(u,h.flags),C=b.stat(u).size,k=new Uint8Array(C);return b.read(I,k,0,C,0),h.encoding==="utf8"?_=Y(k,0):h.encoding==="binary"&&(_=k),b.close(I),_},writeFile:(u,h,_={})=>{_.flags=_.flags||577;var I=b.open(u,_.flags,_.mode);if(typeof h=="string"){var C=new Uint8Array(O(h)+1),k=F(h,C,0,C.length);b.write(I,C,0,k,void 0,_.canOwn)}else{if(!ArrayBuffer.isView(h))throw new Error("Unsupported data type");b.write(I,h,0,h.byteLength,void 0,_.canOwn)}b.close(I)},cwd:()=>b.currentPath,chdir:u=>{var h=b.lookupPath(u,{follow:!0});if(h.node===null)throw new b.ErrnoError(44);if(!b.isDir(h.node.mode))throw new b.ErrnoError(54);var _=b.nodePermissions(h.node,"x");if(_)throw new b.ErrnoError(_);b.currentPath=h.path},createDefaultDirectories:()=>{b.mkdir("/tmp"),b.mkdir("/home"),b.mkdir("/home/web_user")},createDefaultDevices:()=>{b.mkdir("/dev"),b.registerDevice(b.makedev(1,3),{read:()=>0,write:(I,C,k,U,V)=>U}),b.mkdev("/dev/null",b.makedev(1,3)),fe.register(b.makedev(5,0),fe.default_tty_ops),fe.register(b.makedev(6,0),fe.default_tty1_ops),b.mkdev("/dev/tty",b.makedev(5,0)),b.mkdev("/dev/tty1",b.makedev(6,0));var u=new Uint8Array(1024),h=0,_=()=>(h===0&&(h=fr(u).byteLength),u[--h]);b.createDevice("/dev","random",_),b.createDevice("/dev","urandom",_),b.mkdir("/dev/shm"),b.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{b.mkdir("/proc");var u=b.mkdir("/proc/self");b.mkdir("/proc/self/fd"),b.mount({mount:()=>{var h=b.createNode(u,"fd",16895,73);return h.node_ops={lookup:(_,I)=>{var C=+I,k=b.getStreamChecked(C),U={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>k.path}};return U.parent=U,U}},h}},{},"/proc/self/fd")},createStandardStreams:()=>{o.stdin?b.createDevice("/dev","stdin",o.stdin):b.symlink("/dev/tty","/dev/stdin"),o.stdout?b.createDevice("/dev","stdout",null,o.stdout):b.symlink("/dev/tty","/dev/stdout"),o.stderr?b.createDevice("/dev","stderr",null,o.stderr):b.symlink("/dev/tty1","/dev/stderr"),b.open("/dev/stdin",0),b.open("/dev/stdout",1),b.open("/dev/stderr",1)},ensureErrnoError:()=>{b.ErrnoError||(b.ErrnoError=function(u,h){this.name="ErrnoError",this.node=h,this.setErrno=function(_){this.errno=_},this.setErrno(u),this.message="FS error"},b.ErrnoError.prototype=new Error,b.ErrnoError.prototype.constructor=b.ErrnoError,[44].forEach(u=>{b.genericErrors[u]=new b.ErrnoError(u),b.genericErrors[u].stack="<generic error, no stack>"}))},staticInit:()=>{b.ensureErrnoError(),b.nameTable=new Array(4096),b.mount(oe,{},"/"),b.createDefaultDirectories(),b.createDefaultDevices(),b.createSpecialDirectories(),b.filesystems={MEMFS:oe}},init:(u,h,_)=>{b.init.initialized=!0,b.ensureErrnoError(),o.stdin=u||o.stdin,o.stdout=h||o.stdout,o.stderr=_||o.stderr,b.createStandardStreams()},quit:()=>{b.init.initialized=!1;for(var u=0;u<b.streams.length;u++){var h=b.streams[u];h&&b.close(h)}},findObject:(u,h)=>{var _=b.analyzePath(u,h);return _.exists?_.object:null},analyzePath:(u,h)=>{try{u=(I=b.lookupPath(u,{follow:!h})).path}catch(C){}var _={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{var I=b.lookupPath(u,{parent:!0});_.parentExists=!0,_.parentPath=I.path,_.parentObject=I.node,_.name=we.basename(u),I=b.lookupPath(u,{follow:!h}),_.exists=!0,_.path=I.path,_.object=I.node,_.name=I.node.name,_.isRoot=I.path==="/"}catch(C){_.error=C.errno}return _},createPath:(u,h,_,I)=>{u=typeof u=="string"?u:b.getPath(u);for(var C=h.split("/").reverse();C.length;){var k=C.pop();if(k){var U=we.join2(u,k);try{b.mkdir(U)}catch(V){}u=U}}return U},createFile:(u,h,_,I,C)=>{var k=we.join2(typeof u=="string"?u:b.getPath(u),h),U=$e(I,C);return b.create(k,U)},createDataFile:(u,h,_,I,C,k)=>{var U=h;u&&(u=typeof u=="string"?u:b.getPath(u),U=h?we.join2(u,h):u);var V=$e(I,C),ie=b.create(U,V);if(_){if(typeof _=="string"){for(var K=new Array(_.length),Re=0,Pe=_.length;Re<Pe;++Re)K[Re]=_.charCodeAt(Re);_=K}b.chmod(ie,146|V);var Ue=b.open(ie,577);b.write(Ue,_,0,_.length,0,k),b.close(Ue),b.chmod(ie,V)}return ie},createDevice:(u,h,_,I)=>{var C=we.join2(typeof u=="string"?u:b.getPath(u),h),k=$e(!!_,!!I);b.createDevice.major||(b.createDevice.major=64);var U=b.makedev(b.createDevice.major++,0);return b.registerDevice(U,{open:V=>{V.seekable=!1},close:V=>{I&&I.buffer&&I.buffer.length&&I(10)},read:(V,ie,K,Re,Pe)=>{for(var Ue=0,Le=0;Le<Re;Le++){var st;try{st=_()}catch(gt){throw new b.ErrnoError(29)}if(st===void 0&&Ue===0)throw new b.ErrnoError(6);if(st==null)break;Ue++,ie[K+Le]=st}return Ue&&(V.node.timestamp=Date.now()),Ue},write:(V,ie,K,Re,Pe)=>{for(var Ue=0;Ue<Re;Ue++)try{I(ie[K+Ue])}catch(Le){throw new b.ErrnoError(29)}return Re&&(V.node.timestamp=Date.now()),Ue}}),b.mkdev(C,k,U)},forceLoadFile:u=>{if(u.isDevice||u.isFolder||u.link||u.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(!s)throw new Error("Cannot load without read() or XMLHttpRequest.");try{u.contents=pe(s(u.url),!0),u.usedBytes=u.contents.length}catch(h){throw new b.ErrnoError(29)}},createLazyFile:(u,h,_,I,C)=>{function k(){this.lengthKnown=!1,this.chunks=[]}if(k.prototype.get=function(Pe){if(!(Pe>this.length-1||Pe<0)){var Ue=Pe%this.chunkSize,Le=Pe/this.chunkSize|0;return this.getter(Le)[Ue]}},k.prototype.setDataGetter=function(Pe){this.getter=Pe},k.prototype.cacheLength=function(){var Pe=new XMLHttpRequest;if(Pe.open("HEAD",_,!1),Pe.send(null),!(Pe.status>=200&&Pe.status<300||Pe.status===304))throw new Error("Couldn't load "+_+". Status: "+Pe.status);var Ue,Le=Number(Pe.getResponseHeader("Content-length")),st=(Ue=Pe.getResponseHeader("Accept-Ranges"))&&Ue==="bytes",gt=(Ue=Pe.getResponseHeader("Content-Encoding"))&&Ue==="gzip",ht=1048576;st||(ht=Le);var Wt=this;Wt.setDataGetter(Pt=>{var nr=Pt*ht,Vo=(Pt+1)*ht-1;if(Vo=Math.min(Vo,Le-1),Wt.chunks[Pt]===void 0&&(Wt.chunks[Pt]=((ti,As)=>{if(ti>As)throw new Error("invalid range ("+ti+", "+As+") or no bytes requested!");if(As>Le-1)throw new Error("only "+Le+" bytes available! programmer error!");var Yt=new XMLHttpRequest;if(Yt.open("GET",_,!1),Le!==ht&&Yt.setRequestHeader("Range","bytes="+ti+"-"+As),Yt.responseType="arraybuffer",Yt.overrideMimeType&&Yt.overrideMimeType("text/plain; charset=x-user-defined"),Yt.send(null),!(Yt.status>=200&&Yt.status<300||Yt.status===304))throw new Error("Couldn't load "+_+". Status: "+Yt.status);return Yt.response!==void 0?new Uint8Array(Yt.response||[]):pe(Yt.responseText||"",!0)})(nr,Vo)),Wt.chunks[Pt]===void 0)throw new Error("doXHR failed!");return Wt.chunks[Pt]}),!gt&&Le||(ht=Le=1,Le=this.getter(0).length,ht=Le,T("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=Le,this._chunkSize=ht,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!l)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var U=new k;Object.defineProperties(U,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var V={isDevice:!1,contents:U}}else V={isDevice:!1,url:_};var ie=b.createFile(u,h,V,I,C);V.contents?ie.contents=V.contents:V.url&&(ie.contents=null,ie.url=V.url),Object.defineProperties(ie,{usedBytes:{get:function(){return this.contents.length}}});var K={};function Re(Pe,Ue,Le,st,gt){var ht=Pe.node.contents;if(gt>=ht.length)return 0;var Wt=Math.min(ht.length-gt,st);if(ht.slice)for(var Pt=0;Pt<Wt;Pt++)Ue[Le+Pt]=ht[gt+Pt];else for(Pt=0;Pt<Wt;Pt++)Ue[Le+Pt]=ht.get(gt+Pt);return Wt}return Object.keys(ie.stream_ops).forEach(Pe=>{var Ue=ie.stream_ops[Pe];K[Pe]=function(){return b.forceLoadFile(ie),Ue.apply(null,arguments)}}),K.read=(Pe,Ue,Le,st,gt)=>(b.forceLoadFile(ie),Re(Pe,Ue,Le,st,gt)),K.mmap=(Pe,Ue,Le,st,gt)=>{b.forceLoadFile(ie);var ht=X();if(!ht)throw new b.ErrnoError(48);return Re(Pe,M,ht,Ue,Le),{ptr:ht,allocated:!0}},ie.stream_ops=K,ie}},it=(u,h)=>u?Y(w,u,h):"",vt={DEFAULT_POLLMASK:5,calculateAt:function(u,h,_){if(we.isAbs(h))return h;var I;if(u===-100?I=b.cwd():I=vt.getStreamFromFD(u).path,h.length==0){if(!_)throw new b.ErrnoError(44);return I}return we.join2(I,h)},doStat:function(u,h,_){try{var I=u(h)}catch(V){if(V&&V.node&&we.normalize(h)!==we.normalize(b.getPath(V.node)))return-54;throw V}P[_>>2]=I.dev,P[_+4>>2]=I.mode,$[_+8>>2]=I.nlink,P[_+12>>2]=I.uid,P[_+16>>2]=I.gid,P[_+20>>2]=I.rdev,Ze=[I.size>>>0,(ne=I.size,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+24>>2]=Ze[0],P[_+28>>2]=Ze[1],P[_+32>>2]=4096,P[_+36>>2]=I.blocks;var C=I.atime.getTime(),k=I.mtime.getTime(),U=I.ctime.getTime();return Ze=[Math.floor(C/1e3)>>>0,(ne=Math.floor(C/1e3),+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+40>>2]=Ze[0],P[_+44>>2]=Ze[1],$[_+48>>2]=C%1e3*1e3,Ze=[Math.floor(k/1e3)>>>0,(ne=Math.floor(k/1e3),+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+56>>2]=Ze[0],P[_+60>>2]=Ze[1],$[_+64>>2]=k%1e3*1e3,Ze=[Math.floor(U/1e3)>>>0,(ne=Math.floor(U/1e3),+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+72>>2]=Ze[0],P[_+76>>2]=Ze[1],$[_+80>>2]=U%1e3*1e3,Ze=[I.ino>>>0,(ne=I.ino,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[_+88>>2]=Ze[0],P[_+92>>2]=Ze[1],0},doMsync:function(u,h,_,I,C){if(!b.isFile(h.node.mode))throw new b.ErrnoError(43);if(2&I)return 0;var k=w.slice(u,u+_);b.msync(h,k,C,_,I)},varargs:void 0,get:()=>(vt.varargs+=4,P[vt.varargs-4>>2]),getStr:u=>it(u),getStreamFromFD:function(u){return b.getStreamChecked(u)}};function Mr(u){switch(u){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${u}`)}}var xr=void 0;function Ft(u){for(var h="",_=u;w[_];)h+=xr[w[_++]];return h}var G={},gr={},Di={},lr=void 0;function pt(u){throw new lr(u)}var _n=void 0;function kr(u){throw new _n(u)}function ei(u,h,_){function I(V){var ie=_(V);ie.length!==u.length&&kr("Mismatched type converter count");for(var K=0;K<u.length;++K)vr(u[K],ie[K])}u.forEach(function(V){Di[V]=h});var C=new Array(h.length),k=[],U=0;h.forEach((V,ie)=>{gr.hasOwnProperty(V)?C[ie]=gr[V]:(k.push(V),G.hasOwnProperty(V)||(G[V]=[]),G[V].push(()=>{C[ie]=gr[V],++U===k.length&&I(C)}))}),k.length===0&&I(C)}function vr(u,h,_={}){if(!("argPackAdvance"in h))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(I,C,k={}){var U=C.name;if(I||pt(`type "${U}" must have a positive integer typeid pointer`),gr.hasOwnProperty(I)){if(k.ignoreDuplicateRegistrations)return;pt(`Cannot register type '${U}' twice`)}if(gr[I]=C,delete Di[I],G.hasOwnProperty(I)){var V=G[I];delete G[I],V.forEach(ie=>ie())}}(u,h,_)}function Oi(u){if(!(this instanceof hi)||!(u instanceof hi))return!1;for(var h=this.$$.ptrType.registeredClass,_=this.$$.ptr,I=u.$$.ptrType.registeredClass,C=u.$$.ptr;h.baseClass;)_=h.upcast(_),h=h.baseClass;for(;I.baseClass;)C=I.upcast(C),I=I.baseClass;return h===I&&_===C}function Mi(u){pt(u.$$.ptrType.registeredClass.name+" instance already deleted")}var _s=!1;function fd(u){}function gd(u){u.count.value-=1,u.count.value===0&&function(h){h.smartPtr?h.smartPtrType.rawDestructor(h.smartPtr):h.ptrType.registeredClass.rawDestructor(h.ptr)}(u)}function _d(u,h,_){if(h===_)return u;if(_.baseClass===void 0)return null;var I=_d(u,h,_.baseClass);return I===null?null:_.downcast(I)}var Es={};function vh(){return Object.keys(ys).length}function Rh(){var u=[];for(var h in ys)ys.hasOwnProperty(h)&&u.push(ys[h]);return u}var Ts=[];function qr(){for(;Ts.length;){var u=Ts.pop();u.$$.deleteScheduled=!1,u.delete()}}var xi=void 0;function Ed(u){xi=u,Ts.length&&xi&&xi(qr)}var ys={};function Mo(u,h){return h=function(_,I){for(I===void 0&&pt("ptr should not be undefined");_.baseClass;)I=_.upcast(I),_=_.baseClass;return I}(u,h),ys[h]}function Ss(u,h){return h.ptrType&&h.ptr||kr("makeClassHandle requires ptr and ptrType"),!!h.smartPtrType!=!!h.smartPtr&&kr("Both smartPtrType and smartPtr must be specified"),h.count={value:1},xo(Object.create(u,{$$:{value:h}}))}function Td(u){var h=this.getPointee(u);if(!h)return this.destructor(u),null;var _=Mo(this.registeredClass,h);if(_!==void 0){if(_.$$.count.value===0)return _.$$.ptr=h,_.$$.smartPtr=u,_.clone();var I=_.clone();return this.destructor(u),I}function C(){return this.isSmartPointer?Ss(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:h,smartPtrType:this,smartPtr:u}):Ss(this.registeredClass.instancePrototype,{ptrType:this,ptr:u})}var k,U=this.registeredClass.getActualType(h),V=Es[U];if(!V)return C.call(this);k=this.isConst?V.constPointerType:V.pointerType;var ie=_d(h,this.registeredClass,k.registeredClass);return ie===null?C.call(this):this.isSmartPointer?Ss(k.registeredClass.instancePrototype,{ptrType:k,ptr:ie,smartPtrType:this,smartPtr:u}):Ss(k.registeredClass.instancePrototype,{ptrType:k,ptr:ie})}var xo=function(u){return typeof FinalizationRegistry=="undefined"?(xo=h=>h,u):(_s=new FinalizationRegistry(h=>{gd(h.$$)}),fd=h=>_s.unregister(h),(xo=h=>{var _=h.$$;if(_.smartPtr){var I={$$:_};_s.register(h,I,h)}return h})(u))};function yd(){if(this.$$.ptr||Mi(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var u,h=xo(Object.create(Object.getPrototypeOf(this),{$$:{value:(u=this.$$,{count:u.count,deleteScheduled:u.deleteScheduled,preservePointerOnDelete:u.preservePointerOnDelete,ptr:u.ptr,ptrType:u.ptrType,smartPtr:u.smartPtr,smartPtrType:u.smartPtrType})}}));return h.$$.count.value+=1,h.$$.deleteScheduled=!1,h}function Ch(){this.$$.ptr||Mi(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pt("Object already scheduled for deletion"),fd(this),gd(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Sd(){return!this.$$.ptr}function Id(){return this.$$.ptr||Mi(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&pt("Object already scheduled for deletion"),Ts.push(this),Ts.length===1&&xi&&xi(qr),this.$$.deleteScheduled=!0,this}function hi(){}function Rr(u){if(u===void 0)return"_unknown";var h=(u=u.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return h>=48&&h<=57?`_${u}`:u}function En(u,h){return u=Rr(u),{[u]:function(){return h.apply(this,arguments)}}[u]}function bd(u,h,_){if(u[h].overloadTable===void 0){var I=u[h];u[h]=function(){return u[h].overloadTable.hasOwnProperty(arguments.length)||pt(`Function '${_}' called with an invalid number of arguments (${arguments.length}) - expects one of (${u[h].overloadTable})!`),u[h].overloadTable[arguments.length].apply(this,arguments)},u[h].overloadTable=[],u[h].overloadTable[I.argCount]=I}}function Tn(u,h,_,I,C,k,U,V){this.name=u,this.constructor=h,this.instancePrototype=_,this.rawDestructor=I,this.baseClass=C,this.getActualType=k,this.upcast=U,this.downcast=V,this.pureVirtualFunctions=[]}function Is(u,h,_){for(;h!==_;)h.upcast||pt(`Expected null or instance of ${_.name}, got an instance of ${h.name}`),u=h.upcast(u),h=h.baseClass;return u}function wh(u,h){if(h===null)return this.isReference&&pt(`null is not a valid ${this.name}`),0;h.$$||pt(`Cannot pass "${bn(h)}" as a ${this.name}`),h.$$.ptr||pt(`Cannot pass deleted object as a pointer of type ${this.name}`);var _=h.$$.ptrType.registeredClass;return Is(h.$$.ptr,_,this.registeredClass)}function Nh(u,h){var _;if(h===null)return this.isReference&&pt(`null is not a valid ${this.name}`),this.isSmartPointer?(_=this.rawConstructor(),u!==null&&u.push(this.rawDestructor,_),_):0;h.$$||pt(`Cannot pass "${bn(h)}" as a ${this.name}`),h.$$.ptr||pt(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&h.$$.ptrType.isConst&&pt(`Cannot convert argument of type ${h.$$.smartPtrType?h.$$.smartPtrType.name:h.$$.ptrType.name} to parameter type ${this.name}`);var I=h.$$.ptrType.registeredClass;if(_=Is(h.$$.ptr,I,this.registeredClass),this.isSmartPointer)switch(h.$$.smartPtr===void 0&&pt("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:h.$$.smartPtrType===this?_=h.$$.smartPtr:pt(`Cannot convert argument of type ${h.$$.smartPtrType?h.$$.smartPtrType.name:h.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:_=h.$$.smartPtr;break;case 2:if(h.$$.smartPtrType===this)_=h.$$.smartPtr;else{var C=h.clone();_=this.rawShare(_,Po.toHandle(function(){C.delete()})),u!==null&&u.push(this.rawDestructor,_)}break;default:pt("Unsupporting sharing policy")}return _}function Ad(u,h){if(h===null)return this.isReference&&pt(`null is not a valid ${this.name}`),0;h.$$||pt(`Cannot pass "${bn(h)}" as a ${this.name}`),h.$$.ptr||pt(`Cannot pass deleted object as a pointer of type ${this.name}`),h.$$.ptrType.isConst&&pt(`Cannot convert argument of type ${h.$$.ptrType.name} to parameter type ${this.name}`);var _=h.$$.ptrType.registeredClass;return Is(h.$$.ptr,_,this.registeredClass)}function bs(u){return this.fromWireType(P[u>>2])}function Dh(u){return this.rawGetPointee&&(u=this.rawGetPointee(u)),u}function vd(u){this.rawDestructor&&this.rawDestructor(u)}function Oh(u){u!==null&&u.delete()}function mi(u,h,_,I,C,k,U,V,ie,K,Re){this.name=u,this.registeredClass=h,this.isReference=_,this.isConst=I,this.isSmartPointer=C,this.pointeeType=k,this.sharingPolicy=U,this.rawGetPointee=V,this.rawConstructor=ie,this.rawShare=K,this.rawDestructor=Re,C||h.baseClass!==void 0?this.toWireType=Nh:I?(this.toWireType=wh,this.destructorFunction=null):(this.toWireType=Ad,this.destructorFunction=null)}var yn=[],Rd=u=>{var h=yn[u];return h||(u>=yn.length&&(yn.length=u+1),yn[u]=h=L.get(u)),h},Mh=(u,h,_)=>u.includes("j")?((I,C,k)=>{var U=o["dynCall_"+I];return k&&k.length?U.apply(null,[C].concat(k)):U.call(null,C)})(u,h,_):Rd(h).apply(null,_);function ko(u,h){var _,I,C,k=(u=Ft(u)).includes("j")?(_=u,I=h,C=[],function(){return C.length=0,Object.assign(C,arguments),Mh(_,I,C)}):Rd(h);return typeof k!="function"&&pt(`unknown function pointer with signature ${u}: ${h}`),k}var Cd=void 0;function Sn(u){var h=fi(u),_=Ft(h);return hr(h),_}function In(u,h){var _=[],I={};throw h.forEach(function C(k){I[k]||gr[k]||(Di[k]?Di[k].forEach(C):(_.push(k),I[k]=!0))}),new Cd(`${u}: `+_.map(Sn).join([", "]))}function Ra(u,h){for(var _=[],I=0;I<u;I++)_.push($[h+4*I>>2]);return _}function wd(u){for(;u.length;){var h=u.pop();u.pop()(h)}}function Ca(u,h){if(!(u instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof u} which is not a function`);var _=En(u.name||"unknownFunctionName",function(){});_.prototype=u.prototype;var I=new _,C=u.apply(I,h);return C instanceof Object?C:I}function Lo(u,h,_,I,C,k){var U=h.length;U<2&&pt("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var V=h[1]!==null&&_!==null,ie=!1,K=1;K<h.length;++K)if(h[K]!==null&&h[K].destructorFunction===void 0){ie=!0;break}var Re=h[0].name!=="void",Pe="",Ue="";for(K=0;K<U-2;++K)Pe+=(K!==0?", ":"")+"arg"+K,Ue+=(K!==0?", ":"")+"arg"+K+"Wired";var Le=`
|
|
54
|
+
return function ${Rr(u)}(${Pe}) {
|
|
55
|
+
if (arguments.length !== ${U-2}) {
|
|
56
|
+
throwBindingError('function ${u} called with ${arguments.length} arguments, expected ${U-2} args!');
|
|
57
|
+
}`;ie&&(Le+=`var destructors = [];
|
|
58
|
+
`);var st=ie?"destructors":"null",gt=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],ht=[pt,I,C,wd,h[0],h[1]];for(V&&(Le+="var thisWired = classParam.toWireType("+st+`, this);
|
|
59
|
+
`),K=0;K<U-2;++K)Le+="var arg"+K+"Wired = argType"+K+".toWireType("+st+", arg"+K+"); // "+h[K+2].name+`
|
|
60
|
+
`,gt.push("argType"+K),ht.push(h[K+2]);if(V&&(Ue="thisWired"+(Ue.length>0?", ":"")+Ue),Le+=(Re||k?"var rv = ":"")+"invoker(fn"+(Ue.length>0?", ":"")+Ue+`);
|
|
61
|
+
`,ie)Le+=`runDestructors(destructors);
|
|
62
|
+
`;else for(K=V?1:2;K<h.length;++K){var Wt=K===1?"thisWired":"arg"+(K-2)+"Wired";h[K].destructorFunction!==null&&(Le+=Wt+"_dtor("+Wt+"); // "+h[K].name+`
|
|
63
|
+
`,gt.push(Wt+"_dtor"),ht.push(h[K].destructorFunction))}return Re&&(Le+=`var ret = retType.fromWireType(rv);
|
|
63
64
|
return ret;
|
|
64
|
-
`),
|
|
65
|
-
|
|
66
|
-
`+
|
|
67
|
-
`,
|
|
68
|
-
`,
|
|
69
|
-
`,
|
|
70
|
-
`);
|
|
71
|
-
`),
|
|
72
|
-
`,v.push(ee);var de,ae,De=aa(Function,v).apply(null,D);return de=De,ae=te.length,te.push(de),b=ae,j[I]=b,b},a:()=>{Zr("")},e:function(){return Date.now()},v:()=>H.length,A:(c,u,h)=>H.copyWithin(c,u,u+h),u:c=>{H.length,Zr("OOM")},y:(c,u)=>{var h=0;return Me().forEach(function(E,I){var b=u+h;we[c+4*I>>2]=b,((v,D)=>{for(var V=0;V<v.length;++V)X[0|D++]=v.charCodeAt(V);X[0|D]=0})(E,b),h+=E.length+1}),0},z:(c,u)=>{var h=Me();we[c>>2]=h.length;var E=0;return h.forEach(function(I){E+=I.length+1}),we[u>>2]=E,0},i:function(c){try{var u=Dt.getStreamFromFD(c);return _.close(u),0}catch(h){if(_===void 0||h.name!=="ErrnoError")throw h;return h.errno}},x:function(c,u){try{var h=Dt.getStreamFromFD(c),E=h.tty?2:_.isDir(h.mode)?3:_.isLink(h.mode)?7:4;return X[u|0]=E,ge[u+2>>1]=0,rt=[0,(Se=0,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[u+8>>2]=rt[0],W[u+12>>2]=rt[1],rt=[0,(Se=0,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[u+16>>2]=rt[0],W[u+20>>2]=rt[1],0}catch(I){if(_===void 0||I.name!=="ErrnoError")throw I;return I.errno}},B:function(c,u,h,E){try{var I=((b,v,D,V)=>{for(var k=0,ee=0;ee<D;ee++){var ce=we[v>>2],de=we[v+4>>2];v+=8;var ae=_.read(b,X,ce,de,V);if(ae<0)return-1;if(k+=ae,ae<de)break;V!==void 0&&(V+=ae)}return k})(Dt.getStreamFromFD(c),u,h);return we[E>>2]=I,0}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return b.errno}},s:function(c,u,h,E,I){var b,v,D=(v=h)+2097152>>>0<4194305-!!(b=u)?(b>>>0)+4294967296*v:NaN;try{if(isNaN(D))return 61;var V=Dt.getStreamFromFD(c);return _.llseek(V,D,E),rt=[V.position>>>0,(Se=V.position,+Math.abs(Se)>=1?Se>0?+Math.floor(Se/4294967296)>>>0:~~+Math.ceil((Se-+(~~Se>>>0))/4294967296)>>>0:0)],W[I>>2]=rt[0],W[I+4>>2]=rt[1],V.getdents&&D===0&&E===0&&(V.getdents=null),0}catch(k){if(_===void 0||k.name!=="ErrnoError")throw k;return k.errno}},h:function(c,u,h,E){try{var I=((b,v,D,V)=>{for(var k=0,ee=0;ee<D;ee++){var ce=we[v>>2],de=we[v+4>>2];v+=8;var ae=_.write(b,X,ce,de,V);if(ae<0)return-1;k+=ae,V!==void 0&&(V+=ae)}return k})(Dt.getStreamFromFD(c),u,h);return we[E>>2]=I,0}catch(b){if(_===void 0||b.name!=="ErrnoError")throw b;return b.errno}}},mo=(function(){var c,u,h,E,I={a:kt};function b(v,D){var V,k,ee=v.exports;return C=(P=ee).E,V=C.buffer,o.HEAP8=X=new Int8Array(V),o.HEAP16=ge=new Int16Array(V),o.HEAP32=W=new Int32Array(V),o.HEAPU8=H=new Uint8Array(V),o.HEAPU16=Ue=new Uint16Array(V),o.HEAPU32=we=new Uint32Array(V),o.HEAPF32=Ki=new Float32Array(V),o.HEAPF64=Zn=new Float64Array(V),Kn=P.H,k=P.F,Ws.unshift(k),Go(),ee}if(re(),o.instantiateWasm)try{return o.instantiateWasm(I,b)}catch(v){N("Module.instantiateWasm callback failed with error: "+v),r(v)}(c=y,u=Ii,h=I,E=function(v){b(v.instance)},c||typeof WebAssembly.instantiateStreaming!="function"||Gt(u)||typeof fetch!="function"?Kr(u,h,E):fetch(u,{credentials:"same-origin"}).then(v=>WebAssembly.instantiateStreaming(v,h).then(E,function(D){return N("wasm streaming compile failed: "+D),N("falling back to ArrayBuffer instantiation"),Kr(u,h,E)}))).catch(r)}(),c=>(mo=P.G)(c)),xt=c=>(xt=P.I)(c),ca=()=>(ca=P.J)(),kr=c=>(kr=P.K)(c),da=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=P.L)(),c=>(da=P.M)(c));o.dynCall_jiji=(c,u,h,E,I)=>(o.dynCall_jiji=P.N)(c,u,h,E,I),o._ff_h264_cabac_tables=67061;function Zs(){function c(){Ke||(Ke=!0,o.calledRun=!0,ea||(o.noFSInit||_.init.initialized||_.init(),_.ignorePermissions=!1,Mr.init(),to(Ws),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)u=o.postRun.shift(),eo.unshift(u);var u;to(eo)}()))}Ir>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)u=o.preRun.shift(),Yr.unshift(u);var u;to(Yr)}(),Ir>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),c()},1)):c()))}if(Ti=function c(){Ke||Zs(),Ke||(Ti=c)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Zs(),t.ready}})(),ab=nb,cb=class extends Sc{constructor(i){super(ab,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},SU=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((S,T)=>{e=S,r=T});var s,n=Object.assign({},o),a=typeof window=="object",d=typeof importScripts=="function",l=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||d)&&(d?l=self.location.href:typeof document!="undefined"&&document.currentScript&&(l=document.currentScript.src),i&&(l=i),l=l.indexOf("blob:")!==0?l.substr(0,l.replace(/[?#].*/,"").lastIndexOf("/")+1):"",d&&(s=S=>{var T=new XMLHttpRequest;return T.open("GET",S,!1),T.responseType="arraybuffer",T.send(null),new Uint8Array(T.response)}));var p,f=o.print||console.log.bind(console),g=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(p=o.wasmBinary);var y,R;o.noExitRuntime,typeof WebAssembly!="object"&&Ir("no native wasm support detected");var N,C,P,X,H,ge,Ue,W,we,Ki=!1,Zn=[],Kn=[],ea=[],Yr=0,Ws=null,eo=null;function Ir(S){o.onAbort&&o.onAbort(S),g(S="Aborted("+S+")"),Ki=!0,S+=". Build with -sASSERTIONS for more info.";var T=new WebAssembly.RuntimeError(S);throw r(T),T}var _i,Ti;function re(S){return S.startsWith("data:application/octet-stream;base64,")}function Go(S){if(S==_i&&p)return new Uint8Array(p);if(s)return s(S);throw"both async and sync fetching of the wasm failed"}function Zr(S,T,w){return function(x){return p||!a&&!d||typeof fetch!="function"?Promise.resolve().then(()=>Go(x)):fetch(x,{credentials:"same-origin"}).then($=>{if(!$.ok)throw"failed to load wasm binary file at '"+x+"'";return $.arrayBuffer()}).catch(()=>Go(x))}(S).then(x=>WebAssembly.instantiate(x,T)).then(x=>x).then(w,x=>{g("failed to asynchronously prepare wasm: "+x),Ir(x)})}re(_i="videodec_simd.wasm")||(Ti=_i,_i=o.locateFile?o.locateFile(Ti,l):l+Ti);var Ii=S=>{for(;S.length>0;)S.shift()(o)};function ta(S){this.excPtr=S,this.ptr=S-24,this.set_type=function(T){ge[this.ptr+4>>2]=T},this.get_type=function(){return ge[this.ptr+4>>2]},this.set_destructor=function(T){ge[this.ptr+8>>2]=T},this.get_destructor=function(){return ge[this.ptr+8>>2]},this.set_caught=function(T){T=T?1:0,N[this.ptr+12|0]=T},this.get_caught=function(){return N[this.ptr+12|0]!=0},this.set_rethrown=function(T){T=T?1:0,N[this.ptr+13|0]=T},this.get_rethrown=function(){return N[this.ptr+13|0]!=0},this.init=function(T,w){this.set_adjusted_ptr(0),this.set_type(T),this.set_destructor(w)},this.set_adjusted_ptr=function(T){ge[this.ptr+16>>2]=T},this.get_adjusted_ptr=function(){return ge[this.ptr+16>>2]},this.get_exception_ptr=function(){if(cd(this.get_type()))return ge[this.excPtr>>2];var T=this.get_adjusted_ptr();return T!==0?T:this.excPtr}}function Se(S){switch(S){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${S}`)}}var rt=void 0;function Gt(S){for(var T="",w=S;C[w];)T+=rt[C[w++]];return T}var Q={},Kr={},to={},ro=void 0;function me(S){throw new ro(S)}var ra=void 0;function rr(S){throw new ra(S)}function io(S,T,w){function x(K){var te=w(K);te.length!==S.length&&rr("Mismatched type converter count");for(var j=0;j<S.length;++j)jt(S[j],te[j])}S.forEach(function(K){to[K]=T});var $=new Array(T.length),G=[],z=0;T.forEach((K,te)=>{Kr.hasOwnProperty(K)?$[te]=Kr[K]:(G.push(K),Q.hasOwnProperty(K)||(Q[K]=[]),Q[K].push(()=>{$[te]=Kr[K],++z===G.length&&x($)}))}),G.length===0&&x($)}function jt(S,T,w={}){if(!("argPackAdvance"in T))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(x,$,G={}){var z=$.name;if(x||me(`type "${z}" must have a positive integer typeid pointer`),Kr.hasOwnProperty(x)){if(G.ignoreDuplicateRegistrations)return;me(`Cannot register type '${z}' twice`)}if(Kr[x]=$,delete to[x],Q.hasOwnProperty(x)){var K=Q[x];delete Q[x],K.forEach(te=>te())}}(S,T,w)}function ia(S){if(!(this instanceof ur)||!(S instanceof ur))return!1;for(var T=this.$$.ptrType.registeredClass,w=this.$$.ptr,x=S.$$.ptrType.registeredClass,$=S.$$.ptr;T.baseClass;)w=T.upcast(w),T=T.baseClass;for(;x.baseClass;)$=x.upcast($),x=x.baseClass;return T===x&&w===$}function jo(S){me(S.$$.ptrType.registeredClass.name+" instance already deleted")}var qo=!1;function Gs(S){}function Mr(S){S.count.value-=1,S.count.value===0&&function(T){T.smartPtr?T.smartPtrType.rawDestructor(T.smartPtr):T.ptrType.registeredClass.rawDestructor(T.ptr)}(S)}function oa(S,T,w){if(T===w)return S;if(w.baseClass===void 0)return null;var x=oa(S,T,w.baseClass);return x===null?null:w.downcast(x)}var ve={};function jl(){return Object.keys(yi).length}function le(){var S=[];for(var T in yi)yi.hasOwnProperty(T)&&S.push(yi[T]);return S}var Si=[];function _(){for(;Si.length;){var S=Si.pop();S.$$.deleteScheduled=!1,S.delete()}}var oo=void 0;function Dt(S){oo=S,Si.length&&oo&&oo(_)}var yi={};function Wc(S,T){return T=function(w,x){for(x===void 0&&me("ptr should not be undefined");w.baseClass;)x=w.upcast(x),w=w.baseClass;return x}(S,T),yi[T]}function Mt(S,T){return T.ptrType&&T.ptr||rr("makeClassHandle requires ptr and ptrType"),!!T.smartPtrType!=!!T.smartPtr&&rr("Both smartPtrType and smartPtr must be specified"),T.count={value:1},Sr(Object.create(S,{$$:{value:T}}))}function L(S){var T=this.getPointee(S);if(!T)return this.destructor(S),null;var w=Wc(this.registeredClass,T);if(w!==void 0){if(w.$$.count.value===0)return w.$$.ptr=T,w.$$.smartPtr=S,w.clone();var x=w.clone();return this.destructor(S),x}function $(){return this.isSmartPointer?Mt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:T,smartPtrType:this,smartPtr:S}):Mt(this.registeredClass.instancePrototype,{ptrType:this,ptr:S})}var G,z=this.registeredClass.getActualType(T),K=ve[z];if(!K)return $.call(this);G=this.isConst?K.constPointerType:K.pointerType;var te=oa(T,this.registeredClass,G.registeredClass);return te===null?$.call(this):this.isSmartPointer?Mt(G.registeredClass.instancePrototype,{ptrType:G,ptr:te,smartPtrType:this,smartPtr:S}):Mt(G.registeredClass.instancePrototype,{ptrType:G,ptr:te})}var Sr=function(S){return typeof FinalizationRegistry=="undefined"?(Sr=T=>T,S):(qo=new FinalizationRegistry(T=>{Mr(T.$$)}),Gs=T=>qo.unregister(T),(Sr=T=>{var w=T.$$;if(w.smartPtr){var x={$$:w};qo.register(T,x,T)}return T})(S))};function js(){if(this.$$.ptr||jo(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var S,T=Sr(Object.create(Object.getPrototypeOf(this),{$$:{value:(S=this.$$,{count:S.count,deleteScheduled:S.deleteScheduled,preservePointerOnDelete:S.preservePointerOnDelete,ptr:S.ptr,ptrType:S.ptrType,smartPtr:S.smartPtr,smartPtrType:S.smartPtrType})}}));return T.$$.count.value+=1,T.$$.deleteScheduled=!1,T}function so(){this.$$.ptr||jo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Gs(this),Mr(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function Be(){return!this.$$.ptr}function Gc(){return this.$$.ptr||jo(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&me("Object already scheduled for deletion"),Si.push(this),Si.length===1&&oo&&oo(_),this.$$.deleteScheduled=!0,this}function ur(){}function ei(S){if(S===void 0)return"_unknown";var T=(S=S.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return T>=48&&T<=57?`_${S}`:S}function lr(S,T){return S=ei(S),{[S]:function(){return T.apply(this,arguments)}}[S]}function jc(S,T,w){if(S[T].overloadTable===void 0){var x=S[T];S[T]=function(){return S[T].overloadTable.hasOwnProperty(arguments.length)||me(`Function '${w}' called with an invalid number of arguments (${arguments.length}) - expects one of (${S[T].overloadTable})!`),S[T].overloadTable[arguments.length].apply(this,arguments)},S[T].overloadTable=[],S[T].overloadTable[x.argCount]=x}}function sa(S,T,w,x,$,G,z,K){this.name=S,this.constructor=T,this.instancePrototype=w,this.rawDestructor=x,this.baseClass=$,this.getActualType=G,this.upcast=z,this.downcast=K,this.pureVirtualFunctions=[]}function zo(S,T,w){for(;T!==w;)T.upcast||me(`Expected null or instance of ${w.name}, got an instance of ${T.name}`),S=T.upcast(S),T=T.baseClass;return S}function qc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Zo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`);var w=T.$$.ptrType.registeredClass;return zo(T.$$.ptr,w,this.registeredClass)}function zc(S,T){var w;if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),this.isSmartPointer?(w=this.rawConstructor(),S!==null&&S.push(this.rawDestructor,w),w):0;T.$$||me(`Cannot pass "${Zo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);var x=T.$$.ptrType.registeredClass;if(w=zo(T.$$.ptr,x,this.registeredClass),this.isSmartPointer)switch(T.$$.smartPtr===void 0&&me("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:T.$$.smartPtrType===this?w=T.$$.smartPtr:me(`Cannot convert argument of type ${T.$$.smartPtrType?T.$$.smartPtrType.name:T.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:w=T.$$.smartPtr;break;case 2:if(T.$$.smartPtrType===this)w=T.$$.smartPtr;else{var $=T.clone();w=this.rawShare(w,zs.toHandle(function(){$.delete()})),S!==null&&S.push(this.rawDestructor,w)}break;default:me("Unsupporting sharing policy")}return w}function Jc(S,T){if(T===null)return this.isReference&&me(`null is not a valid ${this.name}`),0;T.$$||me(`Cannot pass "${Zo(T)}" as a ${this.name}`),T.$$.ptr||me(`Cannot pass deleted object as a pointer of type ${this.name}`),T.$$.ptrType.isConst&&me(`Cannot convert argument of type ${T.$$.ptrType.name} to parameter type ${this.name}`);var w=T.$$.ptrType.registeredClass;return zo(T.$$.ptr,w,this.registeredClass)}function Jo(S){return this.fromWireType(H[S>>2])}function ql(S){return this.rawGetPointee&&(S=this.rawGetPointee(S)),S}function zl(S){this.rawDestructor&&this.rawDestructor(S)}function Xo(S){S!==null&&S.delete()}function mr(S,T,w,x,$,G,z,K,te,j,he){this.name=S,this.registeredClass=T,this.isReference=w,this.isConst=x,this.isSmartPointer=$,this.pointeeType=G,this.sharingPolicy=z,this.rawGetPointee=K,this.rawConstructor=te,this.rawShare=j,this.rawDestructor=he,$||T.baseClass!==void 0?this.toWireType=zc:x?(this.toWireType=qc,this.destructorFunction=null):(this.toWireType=Jc,this.destructorFunction=null)}var ti=[],Xc=S=>{var T=ti[S];return T||(S>=ti.length&&(ti.length=S+1),ti[S]=T=we.get(S)),T},Qo=(S,T,w)=>S.includes("j")?((x,$,G)=>{var z=o["dynCall_"+x];return G&&G.length?z.apply(null,[$].concat(G)):z.call(null,$)})(S,T,w):Xc(T).apply(null,w);function no(S,T){var w,x,$,G=(S=Gt(S)).includes("j")?(w=S,x=T,$=[],function(){return $.length=0,Object.assign($,arguments),Qo(w,x,$)}):Xc(T);return typeof G!="function"&&me(`unknown function pointer with signature ${S}: ${T}`),G}var Yo=void 0;function Qc(S){var T=Ys(S),w=Gt(T);return Lr(T),w}function ao(S,T){var w=[],x={};throw T.forEach(function $(G){x[G]||Kr[G]||(to[G]?to[G].forEach($):(w.push(G),x[G]=!0))}),new Yo(`${S}: `+w.map(Qc).join([", "]))}function Yc(S,T){for(var w=[],x=0;x<S;x++)w.push(ge[T+4*x>>2]);return w}function Jl(S){for(;S.length;){var T=S.pop();S.pop()(T)}}function Zc(S,T){if(!(S instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof S} which is not a function`);var w=lr(S.name||"unknownFunctionName",function(){});w.prototype=S.prototype;var x=new w,$=S.apply(x,T);return $ instanceof Object?$:x}function Kc(S,T,w,x,$,G){var z=T.length;z<2&&me("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var K=T[1]!==null&&w!==null,te=!1,j=1;j<T.length;++j)if(T[j]!==null&&T[j].destructorFunction===void 0){te=!0;break}var he=T[0].name!=="void",Me="",Ne="";for(j=0;j<z-2;++j)Me+=(j!==0?", ":"")+"arg"+j,Ne+=(j!==0?", ":"")+"arg"+j+"Wired";var Ee=`
|
|
73
|
-
return function ${ei(
|
|
74
|
-
if (arguments.length !== ${
|
|
75
|
-
throwBindingError('function ${
|
|
76
|
-
}`;
|
|
77
|
-
`);var
|
|
78
|
-
`),
|
|
79
|
-
`,
|
|
80
|
-
`,
|
|
81
|
-
`;else for(
|
|
82
|
-
`,
|
|
65
|
+
`),Le+=`}
|
|
66
|
+
`,gt.push(Le),Ca(Function,gt).apply(null,ht)}function Nd(){this.allocated=[void 0],this.freelist=[]}var Cr=new Nd;function Dd(u){u>=Cr.reserved&&--Cr.get(u).refcount==0&&Cr.free(u)}function pi(){for(var u=0,h=Cr.reserved;h<Cr.allocated.length;++h)Cr.allocated[h]!==void 0&&++u;return u}var Po={toValue:u=>(u||pt("Cannot use deleted val. handle = "+u),Cr.get(u).value),toHandle:u=>{switch(u){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return Cr.allocate({refcount:1,value:u})}}};function bn(u){if(u===null)return"null";var h=typeof u;return h==="object"||h==="array"||h==="function"?u.toString():""+u}function Od(u,h){switch(h){case 2:return function(_){return this.fromWireType(de[_>>2])};case 3:return function(_){return this.fromWireType(Ae[_>>3])};default:throw new TypeError("Unknown float type: "+u)}}function Md(u,h,_){switch(h){case 0:return _?function(I){return M[I]}:function(I){return w[I]};case 1:return _?function(I){return H[I>>1]}:function(I){return B[I>>1]};case 2:return _?function(I){return P[I>>2]}:function(I){return $[I>>2]};default:throw new TypeError("Unknown integer type: "+u)}}var N=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,R=(u,h)=>{for(var _=u,I=_>>1,C=I+h/2;!(I>=C)&&B[I];)++I;if((_=I<<1)-u>32&&N)return N.decode(w.subarray(u,_));for(var k="",U=0;!(U>=h/2);++U){var V=H[u+2*U>>1];if(V==0)break;k+=String.fromCharCode(V)}return k},W=(u,h,_)=>{if(_===void 0&&(_=2147483647),_<2)return 0;for(var I=h,C=(_-=2)<2*u.length?_/2:u.length,k=0;k<C;++k){var U=u.charCodeAt(k);H[h>>1]=U,h+=2}return H[h>>1]=0,h-I},J=u=>2*u.length,he=(u,h)=>{for(var _=0,I="";!(_>=h/4);){var C=P[u+4*_>>2];if(C==0)break;if(++_,C>=65536){var k=C-65536;I+=String.fromCharCode(55296|k>>10,56320|1023&k)}else I+=String.fromCharCode(C)}return I},_e=(u,h,_)=>{if(_===void 0&&(_=2147483647),_<4)return 0;for(var I=h,C=I+_-4,k=0;k<u.length;++k){var U=u.charCodeAt(k);if(U>=55296&&U<=57343&&(U=65536+((1023&U)<<10)|1023&u.charCodeAt(++k)),P[h>>2]=U,(h+=4)+4>C)break}return P[h>>2]=0,h-I},ye=u=>{for(var h=0,_=0;_<u.length;++_){var I=u.charCodeAt(_);I>=55296&&I<=57343&&++_,h+=4}return h},ve={},Ce=[],Ee=[],Fe={},ct=()=>{if(!ct.strings){var u={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:d||"./this.program"};for(var h in Fe)Fe[h]===void 0?delete u[h]:u[h]=Fe[h];var _=[];for(var h in u)_.push(`${h}=${u[h]}`);ct.strings=_}return ct.strings},ot,je,dt,Ht=function(u,h,_,I){u||(u=this),this.parent=u,this.mount=u.mount,this.mounted=null,this.id=b.nextInode++,this.name=h,this.mode=_,this.node_ops={},this.stream_ops={},this.rdev=I},Dt=365,Kt=146;Object.defineProperties(Ht.prototype,{read:{get:function(){return(this.mode&Dt)===Dt},set:function(u){u?this.mode|=Dt:this.mode&=-366}},write:{get:function(){return(this.mode&Kt)===Kt},set:function(u){u?this.mode|=Kt:this.mode&=-147}},isFolder:{get:function(){return b.isDir(this.mode)}},isDevice:{get:function(){return b.isChrdev(this.mode)}}}),b.FSNode=Ht,b.createPreloadedFile=function(u,h,_,I,C,k,U,V,ie,K){var Re=h?S.resolve(we.join2(u,h)):u;function Pe(Ue){function Le(st){K&&K(),V||b.createDataFile(u,h,st,I,C,ie),k&&k(),Q()}(function(st,gt,ht,Wt){typeof Browser!="undefined"&&Browser.init();var Pt=!1;return Z.forEach(function(nr){Pt||nr.canHandle(gt)&&(nr.handle(st,gt,ht,Wt),Pt=!0)}),Pt})(Ue,Re,Le,()=>{U&&U(),Q()})||Le(Ue)}re(),typeof _=="string"?xe(_,Ue=>Pe(Ue),U):Pe(_)},b.staticInit(),function(){for(var u=new Array(256),h=0;h<256;++h)u[h]=String.fromCharCode(h);xr=u}(),lr=o.BindingError=class extends Error{constructor(u){super(u),this.name="BindingError"}},_n=o.InternalError=class extends Error{constructor(u){super(u),this.name="InternalError"}},hi.prototype.isAliasOf=Oi,hi.prototype.clone=yd,hi.prototype.delete=Ch,hi.prototype.isDeleted=Sd,hi.prototype.deleteLater=Id,o.getInheritedInstanceCount=vh,o.getLiveInheritedInstances=Rh,o.flushPendingDeletes=qr,o.setDelayFunction=Ed,mi.prototype.getPointee=Dh,mi.prototype.destructor=vd,mi.prototype.argPackAdvance=8,mi.prototype.readValueFromPointer=bs,mi.prototype.deleteObject=Oh,mi.prototype.fromWireType=Td,Cd=o.UnboundTypeError=(ot=Error,(dt=En(je="UnboundTypeError",function(u){this.name=je,this.message=u;var h=new Error(u).stack;h!==void 0&&(this.stack=this.toString()+`
|
|
67
|
+
`+h.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(ot.prototype),dt.prototype.constructor=dt,dt.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},dt),Object.assign(Nd.prototype,{get(u){return this.allocated[u]},has(u){return this.allocated[u]!==void 0},allocate(u){var h=this.freelist.pop()||this.allocated.length;return this.allocated[h]=u,h},free(u){this.allocated[u]=void 0,this.freelist.push(u)}}),Cr.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Cr.reserved=Cr.allocated.length,o.count_emval_handles=pi;var Ot,_r={p:function(u,h,_){throw new wt(u).init(h,_),u},C:function(u,h,_){vt.varargs=_;try{var I=vt.getStreamFromFD(u);switch(h){case 0:return(C=vt.get())<0?-28:b.createStream(I,C).fd;case 1:case 2:case 6:case 7:return 0;case 3:return I.flags;case 4:var C=vt.get();return I.flags|=C,0;case 5:return C=vt.get(),H[C+0>>1]=2,0;case 16:case 8:default:return-28;case 9:return k=28,P[wa()>>2]=k,-1}}catch(U){if(b===void 0||U.name!=="ErrnoError")throw U;return-U.errno}var k},w:function(u,h,_,I){vt.varargs=I;try{h=vt.getStr(h),h=vt.calculateAt(u,h);var C=I?vt.get():0;return b.open(h,_,C).fd}catch(k){if(b===void 0||k.name!=="ErrnoError")throw k;return-k.errno}},t:function(u,h,_,I,C){},n:function(u,h,_,I,C){var k=Mr(_);vr(u,{name:h=Ft(h),fromWireType:function(U){return!!U},toWireType:function(U,V){return V?I:C},argPackAdvance:8,readValueFromPointer:function(U){var V;if(_===1)V=M;else if(_===2)V=H;else{if(_!==4)throw new TypeError("Unknown boolean type size: "+h);V=P}return this.fromWireType(V[U>>k])},destructorFunction:null})},r:function(u,h,_,I,C,k,U,V,ie,K,Re,Pe,Ue){Re=Ft(Re),k=ko(C,k),V&&(V=ko(U,V)),K&&(K=ko(ie,K)),Ue=ko(Pe,Ue);var Le=Rr(Re);(function(st,gt,ht){o.hasOwnProperty(st)?((ht===void 0||o[st].overloadTable!==void 0&&o[st].overloadTable[ht]!==void 0)&&pt(`Cannot register public name '${st}' twice`),bd(o,st,st),o.hasOwnProperty(ht)&&pt(`Cannot register multiple overloads of a function with the same number of arguments (${ht})!`),o[st].overloadTable[ht]=gt):(o[st]=gt,ht!==void 0&&(o[st].numArguments=ht))})(Le,function(){In(`Cannot construct ${Re} due to unbound types`,[I])}),ei([u,h,_],I?[I]:[],function(st){var gt,ht;st=st[0],ht=I?(gt=st.registeredClass).instancePrototype:hi.prototype;var Wt=En(Le,function(){if(Object.getPrototypeOf(this)!==Pt)throw new lr("Use 'new' to construct "+Re);if(nr.constructor_body===void 0)throw new lr(Re+" has no accessible constructor");var Yt=nr.constructor_body[arguments.length];if(Yt===void 0)throw new lr(`Tried to invoke ctor of ${Re} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(nr.constructor_body).toString()}) parameters instead!`);return Yt.apply(this,arguments)}),Pt=Object.create(ht,{constructor:{value:Wt}});Wt.prototype=Pt;var nr=new Tn(Re,Wt,Pt,Ue,gt,k,V,K);nr.baseClass&&(nr.baseClass.__derivedClasses===void 0&&(nr.baseClass.__derivedClasses=[]),nr.baseClass.__derivedClasses.push(nr));var Vo=new mi(Re,nr,!0,!1,!1),ti=new mi(Re+"*",nr,!1,!1,!1),As=new mi(Re+" const*",nr,!1,!0,!1);return Es[u]={pointerType:ti,constPointerType:As},function(Yt,Ig,xh){o.hasOwnProperty(Yt)||kr("Replacing nonexistant public symbol"),o[Yt].overloadTable!==void 0&&xh!==void 0?o[Yt].overloadTable[xh]=Ig:(o[Yt]=Ig,o[Yt].argCount=xh)}(Le,Wt),[Vo,ti,As]})},q:function(u,h,_,I,C,k){var U=Ra(h,_);C=ko(I,C),ei([],[u],function(V){var ie=`constructor ${(V=V[0]).name}`;if(V.registeredClass.constructor_body===void 0&&(V.registeredClass.constructor_body=[]),V.registeredClass.constructor_body[h-1]!==void 0)throw new lr(`Cannot register multiple constructors with identical number of parameters (${h-1}) for class '${V.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return V.registeredClass.constructor_body[h-1]=()=>{In(`Cannot construct ${V.name} due to unbound types`,U)},ei([],U,function(K){return K.splice(1,0,null),V.registeredClass.constructor_body[h-1]=Lo(ie,K,null,C,k),[]}),[]})},d:function(u,h,_,I,C,k,U,V,ie){var K=Ra(_,I);h=Ft(h),k=ko(C,k),ei([],[u],function(Re){var Pe=`${(Re=Re[0]).name}.${h}`;function Ue(){In(`Cannot call ${Pe} due to unbound types`,K)}h.startsWith("@@")&&(h=Symbol[h.substring(2)]),V&&Re.registeredClass.pureVirtualFunctions.push(h);var Le=Re.registeredClass.instancePrototype,st=Le[h];return st===void 0||st.overloadTable===void 0&&st.className!==Re.name&&st.argCount===_-2?(Ue.argCount=_-2,Ue.className=Re.name,Le[h]=Ue):(bd(Le,h,Pe),Le[h].overloadTable[_-2]=Ue),ei([],K,function(gt){var ht=Lo(Pe,gt,Re,k,U,ie);return Le[h].overloadTable===void 0?(ht.argCount=_-2,Le[h]=ht):Le[h].overloadTable[_-2]=ht,[]}),[]})},D:function(u,h){vr(u,{name:h=Ft(h),fromWireType:function(_){var I=Po.toValue(_);return Dd(_),I},toWireType:function(_,I){return Po.toHandle(I)},argPackAdvance:8,readValueFromPointer:bs,destructorFunction:null})},k:function(u,h,_){var I=Mr(_);vr(u,{name:h=Ft(h),fromWireType:function(C){return C},toWireType:function(C,k){return k},argPackAdvance:8,readValueFromPointer:Od(h,I),destructorFunction:null})},c:function(u,h,_,I,C){h=Ft(h),C===-1&&(C=4294967295);var k=Mr(_),U=K=>K;if(I===0){var V=32-8*_;U=K=>K<<V>>>V}var ie=h.includes("unsigned");vr(u,{name:h,fromWireType:U,toWireType:ie?function(K,Re){return this.name,Re>>>0}:function(K,Re){return this.name,Re},argPackAdvance:8,readValueFromPointer:Md(h,k,I!==0),destructorFunction:null})},b:function(u,h,_){var I=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][h];function C(k){var U=$,V=U[k>>=2],ie=U[k+1];return new I(U.buffer,ie,V)}vr(u,{name:_=Ft(_),fromWireType:C,argPackAdvance:8,readValueFromPointer:C},{ignoreDuplicateRegistrations:!0})},j:function(u,h){var _=(h=Ft(h))==="std::string";vr(u,{name:h,fromWireType:function(I){var C,k=$[I>>2],U=I+4;if(_)for(var V=U,ie=0;ie<=k;++ie){var K=U+ie;if(ie==k||w[K]==0){var Re=it(V,K-V);C===void 0?C=Re:(C+="\0",C+=Re),V=K+1}}else{var Pe=new Array(k);for(ie=0;ie<k;++ie)Pe[ie]=String.fromCharCode(w[U+ie]);C=Pe.join("")}return hr(I),C},toWireType:function(I,C){var k;C instanceof ArrayBuffer&&(C=new Uint8Array(C));var U=typeof C=="string";U||C instanceof Uint8Array||C instanceof Uint8ClampedArray||C instanceof Int8Array||pt("Cannot pass non-string to std::string"),k=_&&U?O(C):C.length;var V=Uo(4+k+1),ie=V+4;if($[V>>2]=k,_&&U)F(C,w,ie,k+1);else if(U)for(var K=0;K<k;++K){var Re=C.charCodeAt(K);Re>255&&(hr(ie),pt("String has UTF-16 code units that do not fit in 8 bits")),w[ie+K]=Re}else for(K=0;K<k;++K)w[ie+K]=C[K];return I!==null&&I.push(hr,V),V},argPackAdvance:8,readValueFromPointer:bs,destructorFunction:function(I){hr(I)}})},f:function(u,h,_){var I,C,k,U,V;_=Ft(_),h===2?(I=R,C=W,U=J,k=()=>B,V=1):h===4&&(I=he,C=_e,U=ye,k=()=>$,V=2),vr(u,{name:_,fromWireType:function(ie){for(var K,Re=$[ie>>2],Pe=k(),Ue=ie+4,Le=0;Le<=Re;++Le){var st=ie+4+Le*h;if(Le==Re||Pe[st>>V]==0){var gt=I(Ue,st-Ue);K===void 0?K=gt:(K+="\0",K+=gt),Ue=st+h}}return hr(ie),K},toWireType:function(ie,K){typeof K!="string"&&pt(`Cannot pass non-string to C++ string type ${_}`);var Re=U(K),Pe=Uo(4+Re+h);return $[Pe>>2]=Re>>V,C(K,Pe+4,Re+h),ie!==null&&ie.push(hr,Pe),Pe},argPackAdvance:8,readValueFromPointer:bs,destructorFunction:function(ie){hr(ie)}})},o:function(u,h){vr(u,{isVoid:!0,name:h=Ft(h),argPackAdvance:0,fromWireType:function(){},toWireType:function(_,I){}})},g:function(u,h,_,I){var C,k;(u=Ce[u])(h=Po.toValue(h),_=(k=ve[C=_])===void 0?Ft(C):k,null,I)},m:Dd,l:function(u,h){var _=function(gt,ht){for(var Wt,Pt,nr,Vo=new Array(gt),ti=0;ti<gt;++ti)Vo[ti]=(Wt=$[ht+4*ti>>2],Pt="parameter "+ti,nr=void 0,(nr=gr[Wt])===void 0&&pt(Pt+" has unknown type "+Sn(Wt)),nr);return Vo}(u,h),I=_[0],C=I.name+"_$"+_.slice(1).map(function(gt){return gt.name}).join("_")+"$",k=Ee[C];if(k!==void 0)return k;for(var U=["retType"],V=[I],ie="",K=0;K<u-1;++K)ie+=(K!==0?", ":"")+"arg"+K,U.push("argType"+K),V.push(_[1+K]);var Re="return function "+Rr("methodCaller_"+C)+`(handle, name, destructors, args) {
|
|
68
|
+
`,Pe=0;for(K=0;K<u-1;++K)Re+=" var arg"+K+" = argType"+K+".readValueFromPointer(args"+(Pe?"+"+Pe:"")+`);
|
|
69
|
+
`,Pe+=_[K+1].argPackAdvance;for(Re+=" var rv = handle[name]("+ie+`);
|
|
70
|
+
`,K=0;K<u-1;++K)_[K+1].deleteObject&&(Re+=" argType"+K+".deleteObject(arg"+K+`);
|
|
71
|
+
`);I.isVoid||(Re+=` return retType.toWireType(destructors, rv);
|
|
72
|
+
`),Re+=`};
|
|
73
|
+
`,U.push(Re);var Ue,Le,st=Ca(Function,U).apply(null,V);return Ue=st,Le=Ce.length,Ce.push(Ue),k=Le,Ee[C]=k,k},a:()=>{q("")},e:function(){return Date.now()},v:()=>w.length,A:(u,h,_)=>w.copyWithin(u,h,h+_),u:u=>{w.length,q("OOM")},y:(u,h)=>{var _=0;return ct().forEach(function(I,C){var k=h+_;$[u+4*C>>2]=k,((U,V)=>{for(var ie=0;ie<U.length;++ie)M[0|V++]=U.charCodeAt(ie);M[0|V]=0})(I,k),_+=I.length+1}),0},z:(u,h)=>{var _=ct();$[u>>2]=_.length;var I=0;return _.forEach(function(C){I+=C.length+1}),$[h>>2]=I,0},i:function(u){try{var h=vt.getStreamFromFD(u);return b.close(h),0}catch(_){if(b===void 0||_.name!=="ErrnoError")throw _;return _.errno}},x:function(u,h){try{var _=vt.getStreamFromFD(u),I=_.tty?2:b.isDir(_.mode)?3:b.isLink(_.mode)?7:4;return M[h|0]=I,H[h+2>>1]=0,Ze=[0,(ne=0,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[h+8>>2]=Ze[0],P[h+12>>2]=Ze[1],Ze=[0,(ne=0,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[h+16>>2]=Ze[0],P[h+20>>2]=Ze[1],0}catch(C){if(b===void 0||C.name!=="ErrnoError")throw C;return C.errno}},B:function(u,h,_,I){try{var C=((k,U,V,ie)=>{for(var K=0,Re=0;Re<V;Re++){var Pe=$[U>>2],Ue=$[U+4>>2];U+=8;var Le=b.read(k,M,Pe,Ue,ie);if(Le<0)return-1;if(K+=Le,Le<Ue)break;ie!==void 0&&(ie+=Le)}return K})(vt.getStreamFromFD(u),h,_);return $[I>>2]=C,0}catch(k){if(b===void 0||k.name!=="ErrnoError")throw k;return k.errno}},s:function(u,h,_,I,C){var k,U,V=(U=_)+2097152>>>0<4194305-!!(k=h)?(k>>>0)+4294967296*U:NaN;try{if(isNaN(V))return 61;var ie=vt.getStreamFromFD(u);return b.llseek(ie,V,I),Ze=[ie.position>>>0,(ne=ie.position,+Math.abs(ne)>=1?ne>0?+Math.floor(ne/4294967296)>>>0:~~+Math.ceil((ne-+(~~ne>>>0))/4294967296)>>>0:0)],P[C>>2]=Ze[0],P[C+4>>2]=Ze[1],ie.getdents&&V===0&&I===0&&(ie.getdents=null),0}catch(K){if(b===void 0||K.name!=="ErrnoError")throw K;return K.errno}},h:function(u,h,_,I){try{var C=((k,U,V,ie)=>{for(var K=0,Re=0;Re<V;Re++){var Pe=$[U>>2],Ue=$[U+4>>2];U+=8;var Le=b.write(k,M,Pe,Ue,ie);if(Le<0)return-1;K+=Le,ie!==void 0&&(ie+=Le)}return K})(vt.getStreamFromFD(u),h,_);return $[I>>2]=C,0}catch(k){if(b===void 0||k.name!=="ErrnoError")throw k;return k.errno}}},Uo=(function(){var u,h,_,I,C={a:_r};function k(U,V){var ie,K,Re=U.exports;return y=(v=Re).E,ie=y.buffer,o.HEAP8=M=new Int8Array(ie),o.HEAP16=H=new Int16Array(ie),o.HEAP32=P=new Int32Array(ie),o.HEAPU8=w=new Uint8Array(ie),o.HEAPU16=B=new Uint16Array(ie),o.HEAPU32=$=new Uint32Array(ie),o.HEAPF32=de=new Float32Array(ie),o.HEAPF64=Ae=new Float64Array(ie),L=v.H,K=v.F,le.unshift(K),Q(),Re}if(re(),o.instantiateWasm)try{return o.instantiateWasm(C,k)}catch(U){E("Module.instantiateWasm callback failed with error: "+U),r(U)}(u=g,h=Be,_=C,I=function(U){k(U.instance)},u||typeof WebAssembly.instantiateStreaming!="function"||yt(h)||typeof fetch!="function"?at(h,_,I):fetch(h,{credentials:"same-origin"}).then(U=>WebAssembly.instantiateStreaming(U,_).then(I,function(V){return E("wasm streaming compile failed: "+V),E("falling back to ArrayBuffer instantiation"),at(h,_,I)}))).catch(r)}(),u=>(Uo=v.G)(u)),hr=u=>(hr=v.I)(u),wa=()=>(wa=v.J)(),fi=u=>(fi=v.K)(u),Na=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=v.L)(),u=>(Na=v.M)(u));o.dynCall_jiji=(u,h,_,I,C)=>(o.dynCall_jiji=v.N)(u,h,_,I,C),o._ff_h264_cabac_tables=67061;function An(){function u(){Ot||(Ot=!0,o.calledRun=!0,te||(o.noFSInit||b.init.initialized||b.init(),b.ignorePermissions=!1,fe.init(),Lt(le),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)h=o.postRun.shift(),He.unshift(h);var h;Lt(He)}()))}ge>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)h=o.preRun.shift(),A.unshift(h);var h;Lt(A)}(),ge>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),u()},1)):u()))}if(me=function u(){Ot||An(),Ot||(me=u)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return An(),t.ready}})(),lv=uv,hv=class extends Fc{constructor(i){super(lv,i!=null&&i.wasmPath?fetch(i==null?void 0:i.wasmPath).then(t=>t.arrayBuffer()):void 0,i==null?void 0:i.workerMode,i==null?void 0:i.canvas,i==null?void 0:i.yuvMode)}},v2=(()=>{var i=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return function(t={}){var e,r,o=t;o.ready=new Promise((N,R)=>{e=N,r=R});var s,n=Object.assign({},o),a=typeof window=="object",c=typeof importScripts=="function",d=(typeof process=="object"&&typeof process.versions=="object"&&process.versions.node,"");(a||c)&&(c?d=self.location.href:typeof document!="undefined"&&document.currentScript&&(d=document.currentScript.src),i&&(d=i),d=d.indexOf("blob:")!==0?d.substr(0,d.replace(/[?#].*/,"").lastIndexOf("/")+1):"",c&&(s=N=>{var R=new XMLHttpRequest;return R.open("GET",N,!1),R.responseType="arraybuffer",R.send(null),new Uint8Array(R.response)}));var m,l=o.print||console.log.bind(console),f=o.printErr||console.error.bind(console);Object.assign(o,n),n=null,o.arguments&&o.arguments,o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(m=o.wasmBinary);var g,T;o.noExitRuntime,typeof WebAssembly!="object"&&ge("no native wasm support detected");var E,y,v,M,w,H,B,P,$,de=!1,Ae=[],L=[],te=[],A=0,le=null,He=null;function ge(N){o.onAbort&&o.onAbort(N),f(N="Aborted("+N+")"),de=!0,N+=". Build with -sASSERTIONS for more info.";var R=new WebAssembly.RuntimeError(N);throw r(R),R}var ze,me;function re(N){return N.startsWith("data:application/octet-stream;base64,")}function Q(N){if(N==ze&&m)return new Uint8Array(m);if(s)return s(N);throw"both async and sync fetching of the wasm failed"}function q(N,R,W){return function(J){return m||!a&&!c||typeof fetch!="function"?Promise.resolve().then(()=>Q(J)):fetch(J,{credentials:"same-origin"}).then(he=>{if(!he.ok)throw"failed to load wasm binary file at '"+J+"'";return he.arrayBuffer()}).catch(()=>Q(J))}(N).then(J=>WebAssembly.instantiate(J,R)).then(J=>J).then(W,J=>{f("failed to asynchronously prepare wasm: "+J),ge(J)})}re(ze="videodec_simd.wasm")||(me=ze,ze=o.locateFile?o.locateFile(me,d):d+me);var Be=N=>{for(;N.length>0;)N.shift()(o)};function De(N){this.excPtr=N,this.ptr=N-24,this.set_type=function(R){H[this.ptr+4>>2]=R},this.get_type=function(){return H[this.ptr+4>>2]},this.set_destructor=function(R){H[this.ptr+8>>2]=R},this.get_destructor=function(){return H[this.ptr+8>>2]},this.set_caught=function(R){R=R?1:0,E[this.ptr+12|0]=R},this.get_caught=function(){return E[this.ptr+12|0]!=0},this.set_rethrown=function(R){R=R?1:0,E[this.ptr+13|0]=R},this.get_rethrown=function(){return E[this.ptr+13|0]!=0},this.init=function(R,W){this.set_adjusted_ptr(0),this.set_type(R),this.set_destructor(W)},this.set_adjusted_ptr=function(R){H[this.ptr+16>>2]=R},this.get_adjusted_ptr=function(){return H[this.ptr+16>>2]},this.get_exception_ptr=function(){if(Od(this.get_type()))return H[this.excPtr>>2];var R=this.get_adjusted_ptr();return R!==0?R:this.excPtr}}function ne(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}`)}}var Ze=void 0;function yt(N){for(var R="",W=N;y[W];)R+=Ze[y[W++]];return R}var ae={},at={},Lt={},wt=void 0;function we(N){throw new wt(N)}var fr=void 0;function S(N){throw new fr(N)}function ue(N,R,W){function J(ve){var Ce=W(ve);Ce.length!==N.length&&S("Mismatched type converter count");for(var Ee=0;Ee<N.length;++Ee)Y(N[Ee],Ce[Ee])}N.forEach(function(ve){Lt[ve]=R});var he=new Array(R.length),_e=[],ye=0;R.forEach((ve,Ce)=>{at.hasOwnProperty(ve)?he[Ce]=at[ve]:(_e.push(ve),ae.hasOwnProperty(ve)||(ae[ve]=[]),ae[ve].push(()=>{he[Ce]=at[ve],++ye===_e.length&&J(he)}))}),_e.length===0&&J(he)}function Y(N,R,W={}){if(!("argPackAdvance"in R))throw new TypeError("registerType registeredInstance requires argPackAdvance");return function(J,he,_e={}){var ye=he.name;if(J||we(`type "${ye}" must have a positive integer typeid pointer`),at.hasOwnProperty(J)){if(_e.ignoreDuplicateRegistrations)return;we(`Cannot register type '${ye}' twice`)}if(at[J]=he,delete Lt[J],ae.hasOwnProperty(J)){var ve=ae[J];delete ae[J],ve.forEach(Ce=>Ce())}}(N,R,W)}function x(N){if(!(this instanceof kr)||!(N instanceof kr))return!1;for(var R=this.$$.ptrType.registeredClass,W=this.$$.ptr,J=N.$$.ptrType.registeredClass,he=N.$$.ptr;R.baseClass;)W=R.upcast(W),R=R.baseClass;for(;J.baseClass;)he=J.upcast(he),J=J.baseClass;return R===J&&W===he}function O(N){we(N.$$.ptrType.registeredClass.name+" instance already deleted")}var F=!1;function pe(N){}function fe(N){N.count.value-=1,N.count.value===0&&function(R){R.smartPtr?R.smartPtrType.rawDestructor(R.smartPtr):R.ptrType.registeredClass.rawDestructor(R.ptr)}(N)}function X(N,R,W){if(R===W)return N;if(W.baseClass===void 0)return null;var J=X(N,R,W.baseClass);return J===null?null:W.downcast(J)}var oe={};function xe(){return Object.keys(Mr).length}function Z(){var N=[];for(var R in Mr)Mr.hasOwnProperty(R)&&N.push(Mr[R]);return N}var $e=[];function b(){for(;$e.length;){var N=$e.pop();N.$$.deleteScheduled=!1,N.delete()}}var it=void 0;function vt(N){it=N,$e.length&&it&&it(b)}var Mr={};function xr(N,R){return R=function(W,J){for(J===void 0&&we("ptr should not be undefined");W.baseClass;)J=W.upcast(J),W=W.baseClass;return J}(N,R),Mr[R]}function Ft(N,R){return R.ptrType&&R.ptr||S("makeClassHandle requires ptr and ptrType"),!!R.smartPtrType!=!!R.smartPtr&&S("Both smartPtrType and smartPtr must be specified"),R.count={value:1},gr(Object.create(N,{$$:{value:R}}))}function G(N){var R=this.getPointee(N);if(!R)return this.destructor(N),null;var W=xr(this.registeredClass,R);if(W!==void 0){if(W.$$.count.value===0)return W.$$.ptr=R,W.$$.smartPtr=N,W.clone();var J=W.clone();return this.destructor(N),J}function he(){return this.isSmartPointer?Ft(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:R,smartPtrType:this,smartPtr:N}):Ft(this.registeredClass.instancePrototype,{ptrType:this,ptr:N})}var _e,ye=this.registeredClass.getActualType(R),ve=oe[ye];if(!ve)return he.call(this);_e=this.isConst?ve.constPointerType:ve.pointerType;var Ce=X(R,this.registeredClass,_e.registeredClass);return Ce===null?he.call(this):this.isSmartPointer?Ft(_e.registeredClass.instancePrototype,{ptrType:_e,ptr:Ce,smartPtrType:this,smartPtr:N}):Ft(_e.registeredClass.instancePrototype,{ptrType:_e,ptr:Ce})}var gr=function(N){return typeof FinalizationRegistry=="undefined"?(gr=R=>R,N):(F=new FinalizationRegistry(R=>{fe(R.$$)}),pe=R=>F.unregister(R),(gr=R=>{var W=R.$$;if(W.smartPtr){var J={$$:W};F.register(R,J,R)}return R})(N))};function Di(){if(this.$$.ptr||O(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var N,R=gr(Object.create(Object.getPrototypeOf(this),{$$:{value:(N=this.$$,{count:N.count,deleteScheduled:N.deleteScheduled,preservePointerOnDelete:N.preservePointerOnDelete,ptr:N.ptr,ptrType:N.ptrType,smartPtr:N.smartPtr,smartPtrType:N.smartPtrType})}}));return R.$$.count.value+=1,R.$$.deleteScheduled=!1,R}function lr(){this.$$.ptr||O(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&we("Object already scheduled for deletion"),pe(this),fe(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function pt(){return!this.$$.ptr}function _n(){return this.$$.ptr||O(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&we("Object already scheduled for deletion"),$e.push(this),$e.length===1&&it&&it(b),this.$$.deleteScheduled=!0,this}function kr(){}function ei(N){if(N===void 0)return"_unknown";var R=(N=N.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return R>=48&&R<=57?`_${N}`:N}function vr(N,R){return N=ei(N),{[N]:function(){return R.apply(this,arguments)}}[N]}function Oi(N,R,W){if(N[R].overloadTable===void 0){var J=N[R];N[R]=function(){return N[R].overloadTable.hasOwnProperty(arguments.length)||we(`Function '${W}' called with an invalid number of arguments (${arguments.length}) - expects one of (${N[R].overloadTable})!`),N[R].overloadTable[arguments.length].apply(this,arguments)},N[R].overloadTable=[],N[R].overloadTable[J.argCount]=J}}function Mi(N,R,W,J,he,_e,ye,ve){this.name=N,this.constructor=R,this.instancePrototype=W,this.rawDestructor=J,this.baseClass=he,this.getActualType=_e,this.upcast=ye,this.downcast=ve,this.pureVirtualFunctions=[]}function _s(N,R,W){for(;R!==W;)R.upcast||we(`Expected null or instance of ${W.name}, got an instance of ${R.name}`),N=R.upcast(N),R=R.baseClass;return N}function fd(N,R){if(R===null)return this.isReference&&we(`null is not a valid ${this.name}`),0;R.$$||we(`Cannot pass "${Is(R)}" as a ${this.name}`),R.$$.ptr||we(`Cannot pass deleted object as a pointer of type ${this.name}`);var W=R.$$.ptrType.registeredClass;return _s(R.$$.ptr,W,this.registeredClass)}function gd(N,R){var W;if(R===null)return this.isReference&&we(`null is not a valid ${this.name}`),this.isSmartPointer?(W=this.rawConstructor(),N!==null&&N.push(this.rawDestructor,W),W):0;R.$$||we(`Cannot pass "${Is(R)}" as a ${this.name}`),R.$$.ptr||we(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&R.$$.ptrType.isConst&&we(`Cannot convert argument of type ${R.$$.smartPtrType?R.$$.smartPtrType.name:R.$$.ptrType.name} to parameter type ${this.name}`);var J=R.$$.ptrType.registeredClass;if(W=_s(R.$$.ptr,J,this.registeredClass),this.isSmartPointer)switch(R.$$.smartPtr===void 0&&we("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:R.$$.smartPtrType===this?W=R.$$.smartPtr:we(`Cannot convert argument of type ${R.$$.smartPtrType?R.$$.smartPtrType.name:R.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:W=R.$$.smartPtr;break;case 2:if(R.$$.smartPtrType===this)W=R.$$.smartPtr;else{var he=R.clone();W=this.rawShare(W,Tn.toHandle(function(){he.delete()})),N!==null&&N.push(this.rawDestructor,W)}break;default:we("Unsupporting sharing policy")}return W}function _d(N,R){if(R===null)return this.isReference&&we(`null is not a valid ${this.name}`),0;R.$$||we(`Cannot pass "${Is(R)}" as a ${this.name}`),R.$$.ptr||we(`Cannot pass deleted object as a pointer of type ${this.name}`),R.$$.ptrType.isConst&&we(`Cannot convert argument of type ${R.$$.ptrType.name} to parameter type ${this.name}`);var W=R.$$.ptrType.registeredClass;return _s(R.$$.ptr,W,this.registeredClass)}function Es(N){return this.fromWireType(w[N>>2])}function vh(N){return this.rawGetPointee&&(N=this.rawGetPointee(N)),N}function Rh(N){this.rawDestructor&&this.rawDestructor(N)}function Ts(N){N!==null&&N.delete()}function qr(N,R,W,J,he,_e,ye,ve,Ce,Ee,Fe){this.name=N,this.registeredClass=R,this.isReference=W,this.isConst=J,this.isSmartPointer=he,this.pointeeType=_e,this.sharingPolicy=ye,this.rawGetPointee=ve,this.rawConstructor=Ce,this.rawShare=Ee,this.rawDestructor=Fe,he||R.baseClass!==void 0?this.toWireType=gd:J?(this.toWireType=fd,this.destructorFunction=null):(this.toWireType=_d,this.destructorFunction=null)}var xi=[],Ed=N=>{var R=xi[N];return R||(N>=xi.length&&(xi.length=N+1),xi[N]=R=$.get(N)),R},ys=(N,R,W)=>N.includes("j")?((J,he,_e)=>{var ye=o["dynCall_"+J];return _e&&_e.length?ye.apply(null,[he].concat(_e)):ye.call(null,he)})(N,R,W):Ed(R).apply(null,W);function Mo(N,R){var W,J,he,_e=(N=yt(N)).includes("j")?(W=N,J=R,he=[],function(){return he.length=0,Object.assign(he,arguments),ys(W,J,he)}):Ed(R);return typeof _e!="function"&&we(`unknown function pointer with signature ${N}: ${R}`),_e}var Ss=void 0;function Td(N){var R=bn(N),W=yt(R);return pi(R),W}function xo(N,R){var W=[],J={};throw R.forEach(function he(_e){J[_e]||at[_e]||(Lt[_e]?Lt[_e].forEach(he):(W.push(_e),J[_e]=!0))}),new Ss(`${N}: `+W.map(Td).join([", "]))}function yd(N,R){for(var W=[],J=0;J<N;J++)W.push(H[R+4*J>>2]);return W}function Ch(N){for(;N.length;){var R=N.pop();N.pop()(R)}}function Sd(N,R){if(!(N instanceof Function))throw new TypeError(`new_ called with constructor type ${typeof N} which is not a function`);var W=vr(N.name||"unknownFunctionName",function(){});W.prototype=N.prototype;var J=new W,he=N.apply(J,R);return he instanceof Object?he:J}function Id(N,R,W,J,he,_e){var ye=R.length;ye<2&&we("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var ve=R[1]!==null&&W!==null,Ce=!1,Ee=1;Ee<R.length;++Ee)if(R[Ee]!==null&&R[Ee].destructorFunction===void 0){Ce=!0;break}var Fe=R[0].name!=="void",ct="",ot="";for(Ee=0;Ee<ye-2;++Ee)ct+=(Ee!==0?", ":"")+"arg"+Ee,ot+=(Ee!==0?", ":"")+"arg"+Ee+"Wired";var je=`
|
|
74
|
+
return function ${ei(N)}(${ct}) {
|
|
75
|
+
if (arguments.length !== ${ye-2}) {
|
|
76
|
+
throwBindingError('function ${N} called with ${arguments.length} arguments, expected ${ye-2} args!');
|
|
77
|
+
}`;Ce&&(je+=`var destructors = [];
|
|
78
|
+
`);var dt=Ce?"destructors":"null",Ht=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],Dt=[we,J,he,Ch,R[0],R[1]];for(ve&&(je+="var thisWired = classParam.toWireType("+dt+`, this);
|
|
79
|
+
`),Ee=0;Ee<ye-2;++Ee)je+="var arg"+Ee+"Wired = argType"+Ee+".toWireType("+dt+", arg"+Ee+"); // "+R[Ee+2].name+`
|
|
80
|
+
`,Ht.push("argType"+Ee),Dt.push(R[Ee+2]);if(ve&&(ot="thisWired"+(ot.length>0?", ":"")+ot),je+=(Fe||_e?"var rv = ":"")+"invoker(fn"+(ot.length>0?", ":"")+ot+`);
|
|
81
|
+
`,Ce)je+=`runDestructors(destructors);
|
|
82
|
+
`;else for(Ee=ve?1:2;Ee<R.length;++Ee){var Kt=Ee===1?"thisWired":"arg"+(Ee-2)+"Wired";R[Ee].destructorFunction!==null&&(je+=Kt+"_dtor("+Kt+"); // "+R[Ee].name+`
|
|
83
|
+
`,Ht.push(Kt+"_dtor"),Dt.push(R[Ee].destructorFunction))}return Fe&&(je+=`var ret = retType.fromWireType(rv);
|
|
83
84
|
return ret;
|
|
84
|
-
`),
|
|
85
|
-
`,
|
|
86
|
-
`+
|
|
87
|
-
`,
|
|
88
|
-
`,
|
|
89
|
-
`,
|
|
90
|
-
`);
|
|
91
|
-
`),
|
|
92
|
-
`,z.push(he);var Ne,Ee,xe=Zc(Function,z).apply(null,K);return Ne=xe,Ee=Xs.length,Xs.push(Ne),G=Ee,Qs[$]=G,G},f:()=>{Ir("")},c:na,t:(S,T,w)=>C.copyWithin(S,T,T+w),s:S=>{C.length,Ir("OOM")},i:(S,T,w,x)=>{for(var $,G,z,K=0,te=0;te<w;te++){var j=ge[T>>2],he=ge[T+4>>2];T+=8;for(var Me=0;Me<he;Me++)$=S,G=C[j+Me],z=void 0,z=nd[$],G===0||G===10?(($===1?f:g)(Ko(z,0)),z.length=0):z.push(G);K+=he}return ge[x>>2]=K,0}},Lr=(function(){var S,T,w,x,$={a:ad};function G(z,K){var te,j,he=z.exports;return y=(R=he).v,te=y.buffer,o.HEAP8=N=new Int8Array(te),o.HEAP16=P=new Int16Array(te),o.HEAP32=H=new Int32Array(te),o.HEAPU8=C=new Uint8Array(te),o.HEAPU16=X=new Uint16Array(te),o.HEAPU32=ge=new Uint32Array(te),o.HEAPF32=Ue=new Float32Array(te),o.HEAPF64=W=new Float64Array(te),we=R.z,j=R.w,Kn.unshift(j),function(){if(Yr--,o.monitorRunDependencies&&o.monitorRunDependencies(Yr),Yr==0&&(Ws!==null&&(clearInterval(Ws),Ws=null),eo)){var Me=eo;eo=null,Me()}}(),he}if(Yr++,o.monitorRunDependencies&&o.monitorRunDependencies(Yr),o.instantiateWasm)try{return o.instantiateWasm($,G)}catch(z){g("Module.instantiateWasm callback failed with error: "+z),r(z)}(S=p,T=_i,w=$,x=function(z){G(z.instance)},S||typeof WebAssembly.instantiateStreaming!="function"||re(T)||typeof fetch!="function"?Zr(T,w,x):fetch(T,{credentials:"same-origin"}).then(z=>WebAssembly.instantiateStreaming(z,w).then(x,function(K){return g("wasm streaming compile failed: "+K),g("falling back to ArrayBuffer instantiation"),Zr(T,w,x)}))).catch(r)}(),S=>(Lr=R.x)(S)),lo=S=>(lo=R.y)(S),Ys=S=>(Ys=R.A)(S),cd=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=R.B)(),S=>(cd=R.C)(S));o.dynCall_jiji=(S,T,w,x,$)=>(o.dynCall_jiji=R.D)(S,T,w,x,$);function dd(){function S(){zt||(zt=!0,o.calledRun=!0,Ki||(Ii(Kn),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)T=o.postRun.shift(),ea.unshift(T);var T;Ii(ea)}()))}Yr>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)T=o.preRun.shift(),Zn.unshift(T);var T;Ii(Zn)}(),Yr>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),S()},1)):S()))}if(eo=function S(){zt||dd(),zt||(eo=S)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return dd(),t.ready}})();var S_=(i=>(i.ROOM_DESTROY="1",i.JOIN_START="21",i.JOIN_SCHEDULE_SUCCESS="22",i.JOIN_SIGNAL_CONNECTION_START="23",i.JOIN_SIGNAL_CONNECTION_END="24",i.JOIN_SEND_CMD="25",i.JOIN_RECEIVED_CMD_RES="26",i.JOIN_SUCCESS="27",i.JOIN_FAILED="28",i.LEAVE_START="51",i.LEAVE_SEND_CMD="52",i.LEAVE_SUCCESS="53",i.PUBLISH_START="61",i.SEND_FIRST_VIDEO_FRAME="62",i.PUBLISH_FAILED="63",i.SUBSCRIBE_START="81",i.SUBSCRIBE_SUCCESS="82",i.SUBSCRIBE_FAILED="84",i.UNSUBSCRIBE_SUCCESS="83",i.LOCAL_TRACK_CAPTURE_START="101",i.LOCAL_TRACK_CAPTURE_SUCCESS="102",i.LOCAL_TRACK_CAPTURE_FAILED="103",i.LOCAL_TRACK_PUBLISHED="104",i.LOCAL_TRACK_UNPUBLISHED="105",i.LOCAL_TRACK_REPLACED="106",i.SWITCH_DEVICE_SUCCESS="107",i.TRACK_MUTED="108",i.TRACK_UNMUTED="109",i.REMOTE_TRACK_SUBSCRIBED="110",i.REMOTE_TRACK_UNSUBSCRIBED="111",i.LOCAL_TRACK_RECAPTURE="112",i.LOCAL_AUDIO_STARTED="113",i.LOCAL_AUDIO_STOPPED="114",i.REMOTE_AUDIO_STARTED="115",i.REMOTE_AUDIO_STOPPED="116",i.PLAY_TRACK_START="151",i.PLAYER_STATE_CHANGED="152",i.VIDEO_LOADED_DATA="153",i.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",i.AUDIO_CONTEXT_LONG_SUSPENDED="155",i.REMOTE_VIDEO_PLAY_START="156",i.REMOTE_VIDEO_PLAY_FINISH="157",i.SIGNAL_CONNECTION_STATE_CHANGED="201",i.PEER_CONNECTION_STATE_CHANGED="202",i.SINGLE_CONNECTION_STAT="203",i.SPC_RECONNECTED="204",i.HEARTBEAT_REPORT="251",i.RECEIVED_PUBLISHED_USER_LIST="252",i.REMOTE_PUBLISH_STATE_CHANGED="253",i.AUDIO_LEVEL_INTERVAL="260",i.NETWORK_QUALITY="261",i.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",i.QUALITY_LIMITATION_CHANGED="263",i.LOG="264",i.AUDIO_PROCESSOR_DEBUG="265",i.SSO_SWITCH="266",i.SWITCH_ROOM_START="401",i.SWITCH_ROOM_SUCCESS="407",i.SWITCH_ROOM_FAILED="408",i))(S_||{}),db="5.0.0",ub=typeof importScripts!="undefined",lb=typeof registerProcessor!="undefined",mb="",hb="web.sdk.qcloud.com",pb=`https://${hb}/trtc/webrtc/doc`,yU=`${pb}/zh-cn/`,fb="https://yun.tim.qq.com",gb="https://apisgp.my-imcloud.com",Eb={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},ks=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(ks||{});var y_={"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}},AU=y_["480p_2"],bU=y_["120p_2"],cl={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",RESIZE:"resize",TIME_UPDATE:"timeupdate"},RU=cl.MAIN,vU=cl.AUXILIARY,CU=cl.BIG,NU=cl.SMALL;var DU=Object.keys(ks);var _b=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(l){try{d(r.next(l))}catch(p){s(p)}}function a(l){try{d(r.throw(l))}catch(p){s(p)}}function d(l){var p;l.done?o(l.value):(p=l.value,p instanceof e?p:new e(function(f){f(p)})).then(n,a)}d((r=r.apply(i,t||[])).next())})},$p=Symbol(32),Hp=Symbol(16),Wp=Symbol(8),jn=class{constructor(i){this.g=i,this.consumed=0,i&&(this.need=i.next().value)}setG(i){this.g=i,this.demand(i.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(i,t){return t&&this.consume(),this.need=i,this.flush()}read(i){return _b(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{var r;this.reject=e,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(o)},this.demand(i,!0)||(r=this.pull)===null||r===void 0||r.call(this,i)})})}readU32(){return this.read($p)}readU16(){return this.read(Hp)}readU8(){return this.read(Wp)}close(){var i;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(i=this.reject)===null||i===void 0||i.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let i=null,t=this.buffer.subarray(this.consumed),e=0,r=o=>t.length<(e=o);if(typeof this.need=="number"){if(r(this.need))return;i=t.subarray(0,e)}else if(this.need===$p){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===Hp){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===Wp){if(r(1))return;i=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,e)),i=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,e)),i=this.need}return this.consumed+=e,this.g?this.demand(this.g.next(i).value,!0):this.resolve&&this.resolve(i),i}write(i){if(i instanceof Uint8Array?this.malloc(i.length).set(i):"buffer"in i?this.malloc(i.byteLength).set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)):this.malloc(i.byteLength).set(new Uint8Array(i)),!this.g&&!this.resolve)return new Promise(t=>this.pull=t);this.flush()}writeU32(i){this.malloc(4).set([i>>24&255,i>>16&255,i>>8&255,255&i]),this.flush()}writeU16(i){this.malloc(2).set([i>>8&255,255&i]),this.flush()}writeU8(i){this.malloc(1)[0]=i,this.flush()}malloc(i){if(this.buffer){let t=this.buffer.length,e=t+i;if(e<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,e);else{let r=new Uint8Array(e);r.set(this.buffer),this.buffer=r}return this.buffer.subarray(t,e)}return this.buffer=new Uint8Array(i),this.buffer}};jn.U32=$p,jn.U16=Hp,jn.U8=Wp;var Tb=128,Ib=127,wU=~Ib,OU=Math.pow(2,31);function Lp(i){let t=new jn;for(;i>=128;)t.malloc(1)[0]=255&i|Tb,i>>>=7;return t.malloc(1)[0]=255&i,t.buffer||new Uint8Array(0)}function Gp(i,t=0){let e=new jn,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(Lp(i));break;case"string":e.malloc(1)[0]=2|r;let s=new TextEncoder().encode(i);e.write(Lp(s.length));let n=e.malloc(s.length);for(let d=0;d<s.length;d++)n[d]=s[d];break;case"object":let a=new jn;if(Array.isArray(i))for(let d=0;d<i.length;d++){let l=Gp(i[d],d+1);l&&a.write(l)}else{let d=1;for(let l in i){let p=Gp(i[l],d++);p&&a.write(p)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=2|r,a.buffer&&(e.write(Lp(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var n_=class{constructor(){tt(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(i){this.buffer.push(i>>>24&255),this.buffer.push(i>>>16&255),this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeInt16(i){this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeByte(i){this.buffer.push(255&i)}writeBytes(i){for(let t=0;t<i.length;t++)this.buffer.push(i[t])}};function a_(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=255&t}function dr(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function c_(i,t){return i[t]}function Tc(i,t,e){return new TextDecoder().decode(Sb(i,t,e))}function Sb(i,t,e){return i.slice(t,t+e)}var kp=0,jp=2654435769,qp=16,d_=4,vc=2,Cc=7;function yb(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function Ab(i,t){let e=new n_,r=yb(t,i,kp);kp=kp+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new n_;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(255&r.reqHead.appId);for(let X=4;X<16;X++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let d=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let l=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let p=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(p.length+4),p.length&&n.writeBytes(p);let f=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(f.length+4),f.length&&n.writeBytes(f);let g=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(g.length+2),g.length&&n.writeBytes(g);let y=n.length;n.data[0]=y>>>24&255,n.data[1]=y>>>16&255,n.data[2]=y>>>8&255,n.data[3]=255&y,zp(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let R=new Uint8Array(n.data),N=null;r.encryption===1?N=new TextEncoder().encode(r.uin):r.encryption===2&&(N=new Uint8Array(16)),N&&(R=bb(R,N)),e.writeBytes(R);let C=new Uint8Array(e.data),P=C.length;return C[0]=P>>>24&255,C[1]=P>>>16&255,C[2]=P>>>8&255,C[3]=255&P,C}function bb(i,t){let e=i.length,r=(e+1+vc+Cc)%8;r&&(r=8-r);let o=new Uint8Array(e+1+vc+Cc+r),s=0,n=new Uint8Array(8),a=new Uint8Array(8),d=new Uint8Array(8),l=0;n[0]=248&Math.floor(256*Math.random())|r,l=1;for(let f=0;f<r;f++)n[l]=255&Math.floor(256*Math.random()),l+=1;for(let f=0;f<vc;)if(l<8&&(n[l]=255&Math.floor(256*Math.random()),l+=1,f+=1),l===8){Up(n,t,a,d,o,s),s+=8,l=0;for(let g=0;g<8;g++)d[g]=o[s-8+g]}let p=0;for(;p<e;)if(l<8&&(n[l]=i[p],l+=1,p+=1),l===8){Up(n,t,a,d,o,s),s+=8,l=0;for(let f=0;f<8;f++)d[f]=o[s-8+f]}for(let f=0;f<Cc;)if(l<8&&(n[l]=0,l+=1,f+=1),l===8){Up(n,t,a,d,o,s),s+=8,l=0;for(let g=0;g<8;g++)d[g]=o[s-8+g]}return o}function Up(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];Rb(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function Rb(i,t,e,r){let o=dr(i,0),s=dr(i,4),n=[];for(let d=0;d<4;d++)n[d]=dr(t,4*d);let a=0;for(let d=0;d<qp;d++)a+=jp,a>>>=0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o>>>=0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s>>>=0;a_(e,o,r),a_(e,s,r+4)}var vb=0,A_=function(){return Date.now()+vb},Cb=function(){let i=new Date;return i.setTime(A_()),i.toLocaleString()},Nb=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};function Db(i){let t=wb(i);return t==null?void 0:t.busiBuff}function wb(i){try{let t={},e=0;t.totalLength=dr(i,e),e+=4,t.version=dr(i,e),e+=4,t.encryption=c_(i,e),e+=1,t.uinType=c_(i,e),e+=1,t.uinLength=dr(i,e),e+=4,t.uin=t.uinLength>4?Tc(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=Ob(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=dr(i,e),e+=4,t.seqNo=dr(i,e),e+=4,t.retCode=dr(i,e),e+=4,t.retStrLength=dr(i,e),e+=4,t.retStr=t.retStrLength?Tc(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=dr(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?Tc(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=dr(i,e),e+=4,t.cookie=t.cookieLength?Tc(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=dr(i,e),e+=4,t.busiBuffLength=dr(i,e),e+=4,t.busiBuff=t.busiBuffLength?Tc(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function b_(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e>>>=0,r>>>=0;let o=jp*qp>>>0;for(let s=0;s<qp;s++)r-=(e<<d_)+t[2]^e+o^(e>>>5)+t[3],r>>>=0,e-=(r<<d_)+t[0]^r+o^(r>>>5)+t[1],e>>>=0,o-=jp,o>>>=0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e,r>>>24&255,r>>>16&255,r>>>8&255,255&r])}function Ob(i,t){let e=0,r=new Uint8Array(8).fill(0),o=b_(new Uint8Array(i.slice(0,8)),t),s=7&o[0],n=i.length-1-s-vc-Cc,a=new Uint8Array(n),d=0,l=r,p=i.slice(0,8);e=8;let f=1;f+=s;for(let y=1;y<=vc;)if(f<8)f++,y++;else if(f===8){let R=Vp(i,e,l,p,o,t);l=R.ivPreCrypt,p=R.ivCurCrypt,o=R.debiBuf,e=R.bufPos,f=0}let g=n;for(;g>0;)if(f<8)a[d++]=o[f]^l[f],f++,g--;else if(f===8){let y=Vp(i,e,l,p,o,t);l=y.ivPreCrypt,p=y.ivCurCrypt,o=y.debiBuf,e=y.bufPos,f=0}for(let y=1;y<=Cc;)if(f<8)o[f],l[f],f++,y++;else if(f===8){if(e>=i.length)break;let R=Vp(i,e,l,p,o,t);if(!R.success)break;l=R.ivPreCrypt,p=R.ivCurCrypt,o=R.debiBuf,e=R.bufPos,f=0}return a}function Vp(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),d=new Uint8Array(8);for(let l=0;l<8;l++)d[l]=o[l]^a[l];return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:b_(d,s),bufPos:t+8}}var u_=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Mb({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(d=>d.clone().json().then(l=>({data:l}),()=>d.arrayBuffer().then(l=>({data:Db(new Uint8Array(l))||(u_?u_.decode(l):l)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let d=JSON.parse(a.response);s({data:d})}catch(d){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}var xb=Object.prototype.hasOwnProperty,Ic=i=>typeof i=="function",Wn=i=>i===void 0,Pb=i=>typeof i=="boolean",Lb=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 kb(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(Lb(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(xb.call(i,t))return!1;return!0}return!1}var Ub=0,Vb=1,l_=2;function Fb({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:d=5,timeout:l=1e3}=t,p=0,f=-1,g=Ub,y=(R,N)=>A(this,null,function*(){let C=n||this;try{let P=yield i.apply(C,a);p>0&&s&&s.call(this,p),p=0,R(P)}catch(P){let X=()=>{clearTimeout(f),p=0,g=l_,N(P)},H=()=>{g!==l_&&p<(Ic(d)?d():d)?(p++,g=Vb,Ic(r)&&r.call(this,p,X),f=window.setTimeout(()=>{f=-1,y(R,N)},Ic(l)?l(p):l)):(X(),Ic(o)&&o.call(this,P))};Ic(e)?e.call(this,{error:P,retry:H,reject:N,retryFuncArgs:a,retriedCount:p}):H()}});return new Promise(y)}}var Bb=Fb,Fp=class R_{constructor(t){tt(this,"_parentPath"),tt(this,"userId"),tt(this,"remoteUserId"),tt(this,"id"),tt(this,"sdkAppId"),tt(this,"type"),tt(this,"isLocal"),this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=!Pb(t.isLocal)||t.isLocal,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new R_({id:t.id,userId:Wn(t.userId)?this.userId:t.userId,sdkAppId:Wn(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:Wn(t.type)?this.type:t.type,isLocal:Wn(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:Wn(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),SR.log(t,e,Wn(this.userId)||kb(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)}},pi=typeof navigator=="undefined"?"":navigator.userAgent,Re=i=>new RegExp(i,"i").test(pi),Rt=i=>{if(Re(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=pi.match(t);if(e&&e[1])return e[1]}return""},dl=i=>{if(Re(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=pi.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},m_=/AppleWebKit\/([\d.]+)/i.exec(pi),$b=m_?parseFloat(m_[1]):NaN,v_=Re("iPad"),C_=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&Re("Macintosh"),N_=Re("iPhone")&&!v_,Hb=Re("iPod"),Xp=N_||v_||Hb||C_,Nc=Re("Android"),D_=function(){if(Nc){let i=pi.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}(),MU=Nc&&Re("webkit")&&D_<2.3,xU=Nc&&D_<5&&$b<537,Wb=Re("Firefox"),Gb=Rt("Firefox"),PU=dl("Firefox"),w_=Re("Edge"),jb=Rt("Edge"),O_=Re("Edg"),qb=Rt("Edg"),LU=dl("Edg"),M_=Re("SogouMobileBrowser"),zb=Rt("SogouMobileBrowser"),x_=Re("MetaSr\\s"),Jb=Rt("MetaSr\\s"),Us=Re("TBS"),Xb=Rt("TBS"),P_=Re("XWEB"),Qb=Rt("XWEB"),kU=Re("MSIE\\s8\\.0"),Yb=Re("MSIE\\/\\d+"),UU=function(){if(Yb){let i=/MSIE\s(\d+)\.\d/.exec(pi),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(pi)&&/rv:11.0/.test(pi)&&(t=11),t}return NaN}(),Zb=Re("(micromessenger|webbrowser)"),Kb=Rt("MicroMessenger"),Qp=!Us&&Re("MQQBrowser")&&Re("COVC"),Yp=!Us&&Re("MQQBrowser")&&!Re("COVC"),h_=Yp||Qp?Rt("MQQBrowser"):"",L_=!Us&&Re(" QQBrowser"),eR=Rt(" QQBrowser"),k_=!Us&&Re("QQBrowserLite"),tR=Rt("QQBrowserLite"),U_=!Us&&Re("MQBHD"),rR=Rt("MQBHD"),VU=Re("Windows"),FU=!Xp&&Re("MAC OS X"),BU=!Nc&&Re("Linux"),$U=Re("CrOS"),HU=Re("MicroMessenger"),WU=Re("UCBrowser"),GU=Re("Electron"),V_=Re("MiuiBrowser"),iR=Rt("MiuiBrowser"),F_=Re("HuaweiBrowser"),jU=Re("Huawei")||Re("HUAWEI"),qU=Re("Honor")||Re("HONOR"),oR=Rt("HuaweiBrowser"),B_=Re("SamsungBrowser"),sR=Rt("SamsungBrowser"),$_=Re("HeyTapBrowser"),nR=Rt("HeyTapBrowser"),H_=Re("VivoBrowser"),aR=Rt("VivoBrowser"),zU=Re("OpenHarmony"),JU=Rt("OpenHarmony"),cR=()=>dl("Chrome"),p_=Re("CriOS"),W_=Re("Chrome"),dR=!w_&&!x_&&!M_&&!Us&&!P_&&!O_&&!L_&&!V_&&!F_&&!B_&&!$_&&!H_&&W_,uR=Re("HeadlessChrome"),XU=cR(),lR=Rt("Chrome"),QU=dl("Electron"),mR=!W_&&!Yp&&!Qp&&!k_&&!U_&&Re("Safari"),G_=Rt("Version"),YU=/Android.*(wv|.0.0.0)/.test(pi),j_=(()=>{if(C_)return G_;if(Xp){let i=pi.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),ZU=Number(j_.split(".")[0]),KU=(()=>{let i=Number(j_.split(".")[0]);return i===14||i===13})(),eV=typeof location!="undefined"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),tV=hR();function hR(){let i=new Map([[Wb,["Firefox",Gb]],[O_,["Edg",qb]],[dR,["Chrome",lR]],[p_,["ChiOS",Rt("CriOS")]],[mR&&!p_,["Safari",G_]],[Us,["TBS",Xb]],[P_,["XWEB",Qb]],[Zb&&N_,["WeChat",Kb]],[L_,["QQ(Win)",eR]],[Yp,["QQ(Mobile)",h_]],[Qp,["QQ(Mobile X5)",h_]],[k_,["QQ(Mac)",tR]],[U_,["QQ(iPad)",rR]],[V_,["MI",iR]],[F_,["HW",oR]],[B_,["Samsung",sR]],[$_,["OPPO",nR]],[H_,["VIVO",aR]],[w_,["EDGE",jb]],[M_,["SogouMobile",zb]],[x_,["Sogou",Jb]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var pR=T_(I_(),1),fR=new pR.default,Lo=fR,ol=S_,gR=class{constructor(){tt(this,"enable",!1),tt(this,"ssoFailCount",0),Lo.on("22",({schedule:i})=>{var t;(t=i==null?void 0:i.config)!=null&&t.sso&&Lo.emit("266",{enable:!0})}),Lo.on("266",({enable:i})=>{this.enable=i})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&Lo.emit("266",{enable:!1})}},f_=new gR,ER="%cTRTC%c%s",_R="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",TR="display: inline",q_=class z_{constructor(){tt(this,"_isEnableUploadLog",!0),tt(this,"_localJoinedUser",new Map),tt(this,"_queue",[]),tt(this,"_timeoutId",-1),tt(this,"_logLevel",1),tt(this,"_logLevelToUpload",2),ub||lb||(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){Lo.on(ol.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&ks[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),Lo.on(ol.JOIN_START,({params:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),Lo.on(ol.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(zp(r.userId)&&bR(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:n,sdkAppId:a,logs:d}=o[s],l={timestamp:Cb(),sdkAppId:String(a),userId:n,version:db,log:d.map(g=>g.log).join(`
|
|
93
|
-
`)},
|
|
94
|
-
CPU core: ${navigator.hardwareConcurrency}, GPU: ${$m()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),F.info(t),F.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),hs().then(r=>{r&&F.info(Hr)})}};var Vs={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 ne={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},Tr=(L=>(L[L.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",L[L.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",L[L.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",L[L.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",L[L.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",L[L.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",L[L.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",L[L.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",L[L.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",L[L.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",L[L.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",L[L.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",L[L.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",L[L.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",L[L.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",L[L.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",L[L.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",L[L.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",L[L.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",L[L.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",L[L.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",L[L.INVALID_OPERATION=5100]="INVALID_OPERATION",L[L.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",L[L.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",L[L.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",L[L.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",L[L.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",L[L.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",L[L.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",L[L.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",L[L.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",L[L.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",L[L.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",L[L.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",L[L.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",L[L.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",L[L.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",L[L.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",L[L.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",L[L.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",L[L.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",L[L.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",L[L.DEVICE_ERROR=5300]="DEVICE_ERROR",L[L.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",L[L.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",L[L.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",L[L.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",L[L.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",L[L.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",L[L.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",L[L.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",L[L.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",L[L.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",L[L.SERVER_ERROR=5400]="SERVER_ERROR",L[L.NEED_TO_BUY=5401]="NEED_TO_BUY",L[L.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",L[L.OPERATION_FAILED=5500]="OPERATION_FAILED",L[L.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",L[L.REJOIN_FAILED=5502]="REJOIN_FAILED",L[L.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",L[L.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",L[L.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",L[L.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",L[L.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",L[L.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",L[L.OPERATION_ABORT=5998]="OPERATION_ABORT",L[L.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",L))(Tr||{});function eT({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Tr[i];try{o=K_[s]}catch(n){o=K_.UNKNOWN_ERROR}return Xe(o)?r=o(t):Oe(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var K_=_e(Y({},nr),{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: ${pt(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: ${pt(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_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},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 or screen share 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=Fs(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=Fs(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=Fs(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=Fs(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=Fs(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=Fs(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=Fs(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 Fs(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var ef=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:d}){var p;let l;o?l=o:l=eT({code:e===ne.SERVER_ERROR?e:r||e,params:Y({fnName:n,error:a},s)});super(l);m(this,"name","RtcError");m(this,"code");m(this,"extraCode");m(this,"functionName");m(this,"message");m(this,"data");m(this,"handler");m(this,"originError");this.name=Tr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=l,this.data=d,this.extraCode===5302&&((p=this.originError)!=null&&p.message.includes("system"))&&(this.handler=()=>{let f={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},g={startLocalVideo:"webcam",startLocalAudio:"microphone"},y=document.createElement("a");ms?y.href=`ms-settings:privacy-${g[this.functionName]}`:Gr&&(y.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${f[this.functionName]}`),y.href.length>0&&y.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof se){let{stack:n}=e,a={code:ne.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case q.INVALID_PARAMETER:a.code=ne.INVALID_PARAMETER,a.message=e.message;break;case q.INVALID_OPERATION:a.code=ne.INVALID_OPERATION;break;case q.NOT_SUPPORTED:case q.NOT_SUPPORTED_H264:a.code=ne.ENV_NOT_SUPPORTED,e.getCode()===q.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(nr.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case q.JOIN_ROOM_FAILED:a.messageParams={fnParams:o};case q.SERVER_TIMEOUT:case q.SWITCH_ROLE_FAILED:case q.SWITCH_ROOM_FAILED:a.code=ne.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case q.API_CALL_ABORTED:a.code=ne.OPERATION_ABORT;break;case q.DEVICE_NOT_FOUND:case q.DEVICE_AUTO_RECOVER_FAILED:case q.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=DR(e.name));break;case q.VIDEO_ENCODE_FAILED:a.extraCode=5505;case q.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=ne.OPERATION_FAILED;break;case q.UNKNOWN:break;default:a.code=ne.OPERATION_FAILED}s=new i(a),n&&(s.stack+=n.substr(n.indexOf(`
|
|
95
|
-
`)))}else{if(e instanceof i)return e;s=new i({code:ne.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function DR(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=ef;function fi(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function Dc(i){return i===Vs.QOS_PREFERENCE_CLEAR?"detail":i===Vs.QOS_PREFERENCE_SMOOTH?"motion":""}function qn(i,t){let e=t?cm:fa;return Nm(i)?Y(Y({},e),i):Vr[i]?Vr[i]:e}var tT={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:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},rT={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}}},zn={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(Oe(i)&&!document.getElementById(i))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},iT={name:"userId",required:!0,type:"string"},oT={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{values:[!0,!1,"remote-only","all"]},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Jn(i,t){if(!i)throw new oe({code:ne.INVALID_OPERATION,extraCode:5101,fnName:t})}function sT(i,t,e){if(!i)throw new oe({code:ne.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function nT(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function aT(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var w2={type:"number",notLessThanZero:!0},wR=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function cT(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!gu()){F.warn("small stream is not supported"),delete i.option.small;return}let t=qn(i.option.profile),e=qn(i.option.small,!0);if(!wR(t,e)){F.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var OR={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:ne.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(Oe(i.roomId))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});nT(i.roomId,e,t)}else if(i.strRoomId)aT(i.strRoomId,e,t);else throw new oe({code:ne.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"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:zn,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:tT},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Hi())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&cT(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:_e(Y({},zn),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:tT},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&cT(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:oT},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&Hi())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:oT}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:zn,publish:{type:"boolean"},option:rT},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(Hi())throw new oe({code:ne.ENV_NOT_SUPPORTED,extraCode:5201});if(!za())throw new oe({code:ne.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:zn,publish:{type:"boolean"},option:rT}},muteRemoteAudio:[iT,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[iT,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:zn,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){Jn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(sT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ne.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:_e(Y({},zn),{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){Jn(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(sT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new oe({code:ne.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!=="*"&&O(i.streamType))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){Jn(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(!Xa)throw new oe({code:ne.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new oe({code:ne.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});Jn(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:ne.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:ne.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(Jn(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new oe({code:ne.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(Jn(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new oe({code:ne.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)nT(i.roomId,e,t);else if(i.strRoomId)aT(i.strRoomId,e,t);else throw new oe({code:ne.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},Ot={TRTC:OR};var Yt=class extends Error{};function MR(i,t){let e=ss(i);for(let r=0;r<t.length;r++)Br(e[r],t[r]);return e}function xR(i){this._resolve=Promise.resolve(i)}function PR(i){this._reject=Promise.reject(i)}var ko=class ko{constructor(t,e){this.instance=t;this.group=e;m(this,"started",!1);m(this,"ops",[]);m(this,"startSame",()=>!0);m(this,"mergeUpdate",MR);let r=ko.instances.get(t);r?r.set(e,this):ko.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=ko.instances.get(t);return r&&r.get(e)||new ko(t,e)}static gets(t,e){let r=ko.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=a=>{var d;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(d=this.currentOp)==null||d.action(),a},s=a=>{var d,l;throw this.ops.shift(),t===0&&((d=this.currentOp)==null?void 0:d.type)===2&&this.ops.shift().reject(new Yt("start failed")),(l=this.currentOp)==null||l.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:xR,reject:PR};try{switch(this.state){case 1:if(t===0)throw new Yt("already started");break;case 4:if(t===2)throw new Yt("not started");break;default:return this.cacheOp(n)}}catch(a){return Promise.reject(a)}return this.ops.push(n),n.promise=e(...n.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Yt("already start");break;case 3:switch(t.type){case 2:throw new Yt("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Yt("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Yt("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 Yt("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Yt("start not allowed after update");case 0:throw new Yt("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Yt("keep start")),new Yt("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}};m(ko,"instances",new WeakMap);var Xi=ko;var ll=new WeakMap,ml=(i,t)=>{if(t instanceof Yt){let{stack:e}=t;t=new oe({code:ne.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
|
|
96
|
-
`)))}throw t};function
|
|
97
|
-
`));function
|
|
85
|
+
`),je+=`}
|
|
86
|
+
`,Ht.push(je),Sd(Function,Ht).apply(null,Dt)}function hi(){this.allocated=[void 0],this.freelist=[]}var Rr=new hi;function En(N){N>=Rr.reserved&&--Rr.get(N).refcount==0&&Rr.free(N)}function bd(){for(var N=0,R=Rr.reserved;R<Rr.allocated.length;++R)Rr.allocated[R]!==void 0&&++N;return N}var Tn={toValue:N=>(N||we("Cannot use deleted val. handle = "+N),Rr.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 Rr.allocate({refcount:1,value:N})}}};function Is(N){if(N===null)return"null";var R=typeof N;return R==="object"||R==="array"||R==="function"?N.toString():""+N}function wh(N,R){switch(R){case 2:return function(W){return this.fromWireType(B[W>>2])};case 3:return function(W){return this.fromWireType(P[W>>3])};default:throw new TypeError("Unknown float type: "+N)}}function Nh(N,R,W){switch(R){case 0:return W?function(J){return E[J]}:function(J){return y[J]};case 1:return W?function(J){return v[J>>1]}:function(J){return M[J>>1]};case 2:return W?function(J){return w[J>>2]}:function(J){return H[J>>2]};default:throw new TypeError("Unknown integer type: "+N)}}var Ad=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0,bs=(N,R,W)=>{for(var J=R+W,he=R;N[he]&&!(he>=J);)++he;if(he-R>16&&N.buffer&&Ad)return Ad.decode(N.subarray(R,he));for(var _e="";R<he;){var ye=N[R++];if(128&ye){var ve=63&N[R++];if((224&ye)!=192){var Ce=63&N[R++];if((ye=(240&ye)==224?(15&ye)<<12|ve<<6|Ce:(7&ye)<<18|ve<<12|Ce<<6|63&N[R++])<65536)_e+=String.fromCharCode(ye);else{var Ee=ye-65536;_e+=String.fromCharCode(55296|Ee>>10,56320|1023&Ee)}}else _e+=String.fromCharCode((31&ye)<<6|ve)}else _e+=String.fromCharCode(ye)}return _e},Dh=(N,R)=>N?bs(y,N,R):"",vd=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):void 0,Oh=(N,R)=>{for(var W=N,J=W>>1,he=J+R/2;!(J>=he)&&M[J];)++J;if((W=J<<1)-N>32&&vd)return vd.decode(y.subarray(N,W));for(var _e="",ye=0;!(ye>=R/2);++ye){var ve=v[N+2*ye>>1];if(ve==0)break;_e+=String.fromCharCode(ve)}return _e},mi=(N,R,W)=>{if(W===void 0&&(W=2147483647),W<2)return 0;for(var J=R,he=(W-=2)<2*N.length?W/2:N.length,_e=0;_e<he;++_e){var ye=N.charCodeAt(_e);v[R>>1]=ye,R+=2}return v[R>>1]=0,R-J},yn=N=>2*N.length,Rd=(N,R)=>{for(var W=0,J="";!(W>=R/4);){var he=w[N+4*W>>2];if(he==0)break;if(++W,he>=65536){var _e=he-65536;J+=String.fromCharCode(55296|_e>>10,56320|1023&_e)}else J+=String.fromCharCode(he)}return J},Mh=(N,R,W)=>{if(W===void 0&&(W=2147483647),W<4)return 0;for(var J=R,he=J+W-4,_e=0;_e<N.length;++_e){var ye=N.charCodeAt(_e);if(ye>=55296&&ye<=57343&&(ye=65536+((1023&ye)<<10)|1023&N.charCodeAt(++_e)),w[R>>2]=ye,(R+=4)+4>he)break}return w[R>>2]=0,R-J},ko=N=>{for(var R=0,W=0;W<N.length;++W){var J=N.charCodeAt(W);J>=55296&&J<=57343&&++W,R+=4}return R},Cd={},Sn=[],In=[],Ra;Ra=()=>performance.now();var wd,Ca,Lo,Nd=[null,[],[]];(function(){for(var N=new Array(256),R=0;R<256;++R)N[R]=String.fromCharCode(R);Ze=N})(),wt=o.BindingError=class extends Error{constructor(N){super(N),this.name="BindingError"}},fr=o.InternalError=class extends Error{constructor(N){super(N),this.name="InternalError"}},kr.prototype.isAliasOf=x,kr.prototype.clone=Di,kr.prototype.delete=lr,kr.prototype.isDeleted=pt,kr.prototype.deleteLater=_n,o.getInheritedInstanceCount=xe,o.getLiveInheritedInstances=Z,o.flushPendingDeletes=b,o.setDelayFunction=vt,qr.prototype.getPointee=vh,qr.prototype.destructor=Rh,qr.prototype.argPackAdvance=8,qr.prototype.readValueFromPointer=Es,qr.prototype.deleteObject=Ts,qr.prototype.fromWireType=G,Ss=o.UnboundTypeError=(wd=Error,(Lo=vr(Ca="UnboundTypeError",function(N){this.name=Ca,this.message=N;var R=new Error(N).stack;R!==void 0&&(this.stack=this.toString()+`
|
|
87
|
+
`+R.replace(/^Error(:[^\n]*)?\n/,""))})).prototype=Object.create(wd.prototype),Lo.prototype.constructor=Lo,Lo.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},Lo),Object.assign(hi.prototype,{get(N){return this.allocated[N]},has(N){return this.allocated[N]!==void 0},allocate(N){var R=this.freelist.pop()||this.allocated.length;return this.allocated[R]=N,R},free(N){this.allocated[N]=void 0,this.freelist.push(N)}}),Rr.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),Rr.reserved=Rr.allocated.length,o.count_emval_handles=bd;var Cr,Dd={o:function(N,R,W){throw new De(N).init(R,W),N},r:function(N,R,W,J,he){},m:function(N,R,W,J,he){var _e=ne(W);Y(N,{name:R=yt(R),fromWireType:function(ye){return!!ye},toWireType:function(ye,ve){return ve?J:he},argPackAdvance:8,readValueFromPointer:function(ye){var ve;if(W===1)ve=E;else if(W===2)ve=v;else{if(W!==4)throw new TypeError("Unknown boolean type size: "+R);ve=w}return this.fromWireType(ve[ye>>_e])},destructorFunction:null})},q:function(N,R,W,J,he,_e,ye,ve,Ce,Ee,Fe,ct,ot){Fe=yt(Fe),_e=Mo(he,_e),ve&&(ve=Mo(ye,ve)),Ee&&(Ee=Mo(Ce,Ee)),ot=Mo(ct,ot);var je=ei(Fe);(function(dt,Ht,Dt){o.hasOwnProperty(dt)?((Dt===void 0||o[dt].overloadTable!==void 0&&o[dt].overloadTable[Dt]!==void 0)&&we(`Cannot register public name '${dt}' twice`),Oi(o,dt,dt),o.hasOwnProperty(Dt)&&we(`Cannot register multiple overloads of a function with the same number of arguments (${Dt})!`),o[dt].overloadTable[Dt]=Ht):(o[dt]=Ht,Dt!==void 0&&(o[dt].numArguments=Dt))})(je,function(){xo(`Cannot construct ${Fe} due to unbound types`,[J])}),ue([N,R,W],J?[J]:[],function(dt){var Ht,Dt;dt=dt[0],Dt=J?(Ht=dt.registeredClass).instancePrototype:kr.prototype;var Kt=vr(je,function(){if(Object.getPrototypeOf(this)!==Ot)throw new wt("Use 'new' to construct "+Fe);if(_r.constructor_body===void 0)throw new wt(Fe+" has no accessible constructor");var fi=_r.constructor_body[arguments.length];if(fi===void 0)throw new wt(`Tried to invoke ctor of ${Fe} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(_r.constructor_body).toString()}) parameters instead!`);return fi.apply(this,arguments)}),Ot=Object.create(Dt,{constructor:{value:Kt}});Kt.prototype=Ot;var _r=new Mi(Fe,Kt,Ot,ot,Ht,_e,ve,Ee);_r.baseClass&&(_r.baseClass.__derivedClasses===void 0&&(_r.baseClass.__derivedClasses=[]),_r.baseClass.__derivedClasses.push(_r));var Uo=new qr(Fe,_r,!0,!1,!1),hr=new qr(Fe+"*",_r,!1,!1,!1),wa=new qr(Fe+" const*",_r,!1,!0,!1);return oe[N]={pointerType:hr,constPointerType:wa},function(fi,Na,An){o.hasOwnProperty(fi)||S("Replacing nonexistant public symbol"),o[fi].overloadTable!==void 0&&An!==void 0?o[fi].overloadTable[An]=Na:(o[fi]=Na,o[fi].argCount=An)}(je,Kt),[Uo,hr,wa]})},p:function(N,R,W,J,he,_e){var ye=yd(R,W);he=Mo(J,he),ue([],[N],function(ve){var Ce=`constructor ${(ve=ve[0]).name}`;if(ve.registeredClass.constructor_body===void 0&&(ve.registeredClass.constructor_body=[]),ve.registeredClass.constructor_body[R-1]!==void 0)throw new wt(`Cannot register multiple constructors with identical number of parameters (${R-1}) for class '${ve.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return ve.registeredClass.constructor_body[R-1]=()=>{xo(`Cannot construct ${ve.name} due to unbound types`,ye)},ue([],ye,function(Ee){return Ee.splice(1,0,null),ve.registeredClass.constructor_body[R-1]=Id(Ce,Ee,null,he,_e),[]}),[]})},d:function(N,R,W,J,he,_e,ye,ve,Ce){var Ee=yd(W,J);R=yt(R),_e=Mo(he,_e),ue([],[N],function(Fe){var ct=`${(Fe=Fe[0]).name}.${R}`;function ot(){xo(`Cannot call ${ct} due to unbound types`,Ee)}R.startsWith("@@")&&(R=Symbol[R.substring(2)]),ve&&Fe.registeredClass.pureVirtualFunctions.push(R);var je=Fe.registeredClass.instancePrototype,dt=je[R];return dt===void 0||dt.overloadTable===void 0&&dt.className!==Fe.name&&dt.argCount===W-2?(ot.argCount=W-2,ot.className=Fe.name,je[R]=ot):(Oi(je,R,ct),je[R].overloadTable[W-2]=ot),ue([],Ee,function(Ht){var Dt=Id(ct,Ht,Fe,_e,ye,Ce);return je[R].overloadTable===void 0?(Dt.argCount=W-2,je[R]=Dt):je[R].overloadTable[W-2]=Dt,[]}),[]})},u:function(N,R){Y(N,{name:R=yt(R),fromWireType:function(W){var J=Tn.toValue(W);return En(W),J},toWireType:function(W,J){return Tn.toHandle(J)},argPackAdvance:8,readValueFromPointer:Es,destructorFunction:null})},k:function(N,R,W){var J=ne(W);Y(N,{name:R=yt(R),fromWireType:function(he){return he},toWireType:function(he,_e){return _e},argPackAdvance:8,readValueFromPointer:wh(R,J),destructorFunction:null})},b:function(N,R,W,J,he){R=yt(R),he===-1&&(he=4294967295);var _e=ne(W),ye=Ee=>Ee;if(J===0){var ve=32-8*W;ye=Ee=>Ee<<ve>>>ve}var Ce=R.includes("unsigned");Y(N,{name:R,fromWireType:ye,toWireType:Ce?function(Ee,Fe){return this.name,Fe>>>0}:function(Ee,Fe){return this.name,Fe},argPackAdvance:8,readValueFromPointer:Nh(R,_e,J!==0),destructorFunction:null})},a:function(N,R,W){var J=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][R];function he(_e){var ye=H,ve=ye[_e>>=2],Ce=ye[_e+1];return new J(ye.buffer,Ce,ve)}Y(N,{name:W=yt(W),fromWireType:he,argPackAdvance:8,readValueFromPointer:he},{ignoreDuplicateRegistrations:!0})},j:function(N,R){var W=(R=yt(R))==="std::string";Y(N,{name:R,fromWireType:function(J){var he,_e=H[J>>2],ye=J+4;if(W)for(var ve=ye,Ce=0;Ce<=_e;++Ce){var Ee=ye+Ce;if(Ce==_e||y[Ee]==0){var Fe=Dh(ve,Ee-ve);he===void 0?he=Fe:(he+="\0",he+=Fe),ve=Ee+1}}else{var ct=new Array(_e);for(Ce=0;Ce<_e;++Ce)ct[Ce]=String.fromCharCode(y[ye+Ce]);he=ct.join("")}return pi(J),he},toWireType:function(J,he){var _e;he instanceof ArrayBuffer&&(he=new Uint8Array(he));var ye=typeof he=="string";ye||he instanceof Uint8Array||he instanceof Uint8ClampedArray||he instanceof Int8Array||we("Cannot pass non-string to std::string"),_e=W&&ye?(ct=>{for(var ot=0,je=0;je<ct.length;++je){var dt=ct.charCodeAt(je);dt<=127?ot++:dt<=2047?ot+=2:dt>=55296&&dt<=57343?(ot+=4,++je):ot+=3}return ot})(he):he.length;var ve=Po(4+_e+1),Ce=ve+4;if(H[ve>>2]=_e,W&&ye)((ct,ot,je,dt)=>{if(!(dt>0))return 0;for(var Ht=je,Dt=je+dt-1,Kt=0;Kt<ct.length;++Kt){var Ot=ct.charCodeAt(Kt);if(Ot>=55296&&Ot<=57343&&(Ot=65536+((1023&Ot)<<10)|1023&ct.charCodeAt(++Kt)),Ot<=127){if(je>=Dt)break;ot[je++]=Ot}else if(Ot<=2047){if(je+1>=Dt)break;ot[je++]=192|Ot>>6,ot[je++]=128|63&Ot}else if(Ot<=65535){if(je+2>=Dt)break;ot[je++]=224|Ot>>12,ot[je++]=128|Ot>>6&63,ot[je++]=128|63&Ot}else{if(je+3>=Dt)break;ot[je++]=240|Ot>>18,ot[je++]=128|Ot>>12&63,ot[je++]=128|Ot>>6&63,ot[je++]=128|63&Ot}}ot[je]=0})(he,y,Ce,_e+1);else if(ye)for(var Ee=0;Ee<_e;++Ee){var Fe=he.charCodeAt(Ee);Fe>255&&(pi(Ce),we("String has UTF-16 code units that do not fit in 8 bits")),y[Ce+Ee]=Fe}else for(Ee=0;Ee<_e;++Ee)y[Ce+Ee]=he[Ee];return J!==null&&J.push(pi,ve),ve},argPackAdvance:8,readValueFromPointer:Es,destructorFunction:function(J){pi(J)}})},g:function(N,R,W){var J,he,_e,ye,ve;W=yt(W),R===2?(J=Oh,he=mi,ye=yn,_e=()=>M,ve=1):R===4&&(J=Rd,he=Mh,ye=ko,_e=()=>H,ve=2),Y(N,{name:W,fromWireType:function(Ce){for(var Ee,Fe=H[Ce>>2],ct=_e(),ot=Ce+4,je=0;je<=Fe;++je){var dt=Ce+4+je*R;if(je==Fe||ct[dt>>ve]==0){var Ht=J(ot,dt-ot);Ee===void 0?Ee=Ht:(Ee+="\0",Ee+=Ht),ot=dt+R}}return pi(Ce),Ee},toWireType:function(Ce,Ee){typeof Ee!="string"&&we(`Cannot pass non-string to C++ string type ${W}`);var Fe=ye(Ee),ct=Po(4+Fe+R);return H[ct>>2]=Fe>>ve,he(Ee,ct+4,Fe+R),Ce!==null&&Ce.push(pi,ct),ct},argPackAdvance:8,readValueFromPointer:Es,destructorFunction:function(Ce){pi(Ce)}})},n:function(N,R){Y(N,{isVoid:!0,name:R=yt(R),argPackAdvance:0,fromWireType:function(){},toWireType:function(W,J){}})},e:function(N,R,W,J){var he,_e;(N=Sn[N])(R=Tn.toValue(R),W=(_e=Cd[he=W])===void 0?yt(he):_e,null,J)},l:En,h:function(N,R){var W=function(Ht,Dt){for(var Kt,Ot,_r,Uo=new Array(Ht),hr=0;hr<Ht;++hr)Uo[hr]=(Kt=H[Dt+4*hr>>2],Ot="parameter "+hr,_r=void 0,(_r=at[Kt])===void 0&&we(Ot+" has unknown type "+Td(Kt)),_r);return Uo}(N,R),J=W[0],he=J.name+"_$"+W.slice(1).map(function(Ht){return Ht.name}).join("_")+"$",_e=In[he];if(_e!==void 0)return _e;for(var ye=["retType"],ve=[J],Ce="",Ee=0;Ee<N-1;++Ee)Ce+=(Ee!==0?", ":"")+"arg"+Ee,ye.push("argType"+Ee),ve.push(W[1+Ee]);var Fe="return function "+ei("methodCaller_"+he)+`(handle, name, destructors, args) {
|
|
88
|
+
`,ct=0;for(Ee=0;Ee<N-1;++Ee)Fe+=" var arg"+Ee+" = argType"+Ee+".readValueFromPointer(args"+(ct?"+"+ct:"")+`);
|
|
89
|
+
`,ct+=W[Ee+1].argPackAdvance;for(Fe+=" var rv = handle[name]("+Ce+`);
|
|
90
|
+
`,Ee=0;Ee<N-1;++Ee)W[Ee+1].deleteObject&&(Fe+=" argType"+Ee+".deleteObject(arg"+Ee+`);
|
|
91
|
+
`);J.isVoid||(Fe+=` return retType.toWireType(destructors, rv);
|
|
92
|
+
`),Fe+=`};
|
|
93
|
+
`,ye.push(Fe);var ot,je,dt=Sd(Function,ye).apply(null,ve);return ot=dt,je=Sn.length,Sn.push(ot),_e=je,In[he]=_e,_e},f:()=>{ge("")},c:Ra,t:(N,R,W)=>y.copyWithin(N,R,R+W),s:N=>{y.length,ge("OOM")},i:(N,R,W,J)=>{for(var he,_e,ye,ve=0,Ce=0;Ce<W;Ce++){var Ee=H[R>>2],Fe=H[R+4>>2];R+=8;for(var ct=0;ct<Fe;ct++)he=N,_e=y[Ee+ct],ye=void 0,ye=Nd[he],_e===0||_e===10?((he===1?l:f)(bs(ye,0)),ye.length=0):ye.push(_e);ve+=Fe}return H[J>>2]=ve,0}},pi=(function(){var N,R,W,J,he={a:Dd};function _e(ye,ve){var Ce,Ee,Fe=ye.exports;return g=(T=Fe).v,Ce=g.buffer,o.HEAP8=E=new Int8Array(Ce),o.HEAP16=v=new Int16Array(Ce),o.HEAP32=w=new Int32Array(Ce),o.HEAPU8=y=new Uint8Array(Ce),o.HEAPU16=M=new Uint16Array(Ce),o.HEAPU32=H=new Uint32Array(Ce),o.HEAPF32=B=new Float32Array(Ce),o.HEAPF64=P=new Float64Array(Ce),$=T.z,Ee=T.w,L.unshift(Ee),function(){if(A--,o.monitorRunDependencies&&o.monitorRunDependencies(A),A==0&&(le!==null&&(clearInterval(le),le=null),He)){var ct=He;He=null,ct()}}(),Fe}if(A++,o.monitorRunDependencies&&o.monitorRunDependencies(A),o.instantiateWasm)try{return o.instantiateWasm(he,_e)}catch(ye){f("Module.instantiateWasm callback failed with error: "+ye),r(ye)}(N=m,R=ze,W=he,J=function(ye){_e(ye.instance)},N||typeof WebAssembly.instantiateStreaming!="function"||re(R)||typeof fetch!="function"?q(R,W,J):fetch(R,{credentials:"same-origin"}).then(ye=>WebAssembly.instantiateStreaming(ye,W).then(J,function(ve){return f("wasm streaming compile failed: "+ve),f("falling back to ArrayBuffer instantiation"),q(R,W,J)}))).catch(r)}(),N=>(pi=T.x)(N)),Po=N=>(Po=T.y)(N),bn=N=>(bn=T.A)(N),Od=(o.__embind_initialize_bindings=()=>(o.__embind_initialize_bindings=T.B)(),N=>(Od=T.C)(N));o.dynCall_jiji=(N,R,W,J,he)=>(o.dynCall_jiji=T.D)(N,R,W,J,he);function Md(){function N(){Cr||(Cr=!0,o.calledRun=!0,de||(Be(L),e(o),o.onRuntimeInitialized&&o.onRuntimeInitialized(),function(){if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)R=o.postRun.shift(),te.unshift(R);var R;Be(te)}()))}A>0||(function(){if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)R=o.preRun.shift(),Ae.unshift(R);var R;Be(Ae)}(),A>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),N()},1)):N()))}if(He=function N(){Cr||Md(),Cr||(He=N)},o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();return Md(),t.ready}})();var dT=(i=>(i.ROOM_DESTROY="1",i.JOIN_START="21",i.JOIN_SCHEDULE_SUCCESS="22",i.JOIN_SIGNAL_CONNECTION_START="23",i.JOIN_SIGNAL_CONNECTION_END="24",i.JOIN_SEND_CMD="25",i.JOIN_RECEIVED_CMD_RES="26",i.JOIN_SUCCESS="27",i.JOIN_FAILED="28",i.LEAVE_START="51",i.LEAVE_SEND_CMD="52",i.LEAVE_SUCCESS="53",i.PUBLISH_START="61",i.SEND_FIRST_VIDEO_FRAME="62",i.PUBLISH_FAILED="63",i.SUBSCRIBE_START="81",i.SUBSCRIBE_SUCCESS="82",i.SUBSCRIBE_FAILED="84",i.UNSUBSCRIBE_SUCCESS="83",i.LOCAL_TRACK_CAPTURE_START="101",i.LOCAL_TRACK_CAPTURE_SUCCESS="102",i.LOCAL_TRACK_CAPTURE_FAILED="103",i.LOCAL_TRACK_PUBLISHED="104",i.LOCAL_TRACK_UNPUBLISHED="105",i.LOCAL_TRACK_REPLACED="106",i.SWITCH_DEVICE_SUCCESS="107",i.TRACK_MUTED="108",i.TRACK_UNMUTED="109",i.REMOTE_TRACK_SUBSCRIBED="110",i.REMOTE_TRACK_UNSUBSCRIBED="111",i.LOCAL_TRACK_RECAPTURE="112",i.LOCAL_AUDIO_STARTED="113",i.LOCAL_AUDIO_STOPPED="114",i.REMOTE_AUDIO_STARTED="115",i.REMOTE_AUDIO_STOPPED="116",i.PLAY_TRACK_START="151",i.PLAYER_STATE_CHANGED="152",i.VIDEO_LOADED_DATA="153",i.AUTOPLAY_DIALOG_CLICK_CONFIRM="154",i.AUDIO_CONTEXT_LONG_SUSPENDED="155",i.REMOTE_VIDEO_PLAY_START="156",i.REMOTE_VIDEO_PLAY_FINISH="157",i.SIGNAL_CONNECTION_STATE_CHANGED="201",i.PEER_CONNECTION_STATE_CHANGED="202",i.SINGLE_CONNECTION_STAT="203",i.SPC_RECONNECTED="204",i.HEARTBEAT_REPORT="251",i.RECEIVED_PUBLISHED_USER_LIST="252",i.REMOTE_PUBLISH_STATE_CHANGED="253",i.AUDIO_LEVEL_INTERVAL="260",i.NETWORK_QUALITY="261",i.VIDEO_CODEC_IMPLEMENTATION_CHANGED="262",i.QUALITY_LIMITATION_CHANGED="263",i.LOG="264",i.AUDIO_PROCESSOR_DEBUG="265",i.SSO_SWITCH="266",i.SWITCH_ROOM_START="401",i.SWITCH_ROOM_SUCCESS="407",i.SWITCH_ROOM_FAILED="408",i))(dT||{}),mv="5.0.0",pv=typeof importScripts!="undefined",fv=typeof registerProcessor!="undefined",gv="",_v="web.sdk.qcloud.com",Ev=`https://${_v}/trtc/webrtc/doc`,R2=`${Ev}/zh-cn/`,Tv="https://yun.tim.qq.com",yv="https://apisgp.my-imcloud.com",Sv={LOG:"jssdk_log",EVENT:"jssdk_event",KEY_POINT:"jssdk_new_endreport",KV_STAT:"jssdk_key_metrics_report"},cn=(i=>(i[i.TRACE=0]="TRACE",i[i.DEBUG=1]="DEBUG",i[i.INFO=2]="INFO",i[i.WARN=3]="WARN",i[i.ERROR=4]="ERROR",i[i.NONE=5]="NONE",i))(cn||{});var uT={"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}},C2=uT["480p_2"],w2=uT["120p_2"],Ol={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",RESIZE:"resize",TIME_UPDATE:"timeupdate"},N2=Ol.MAIN,D2=Ol.AUXILIARY,O2=Ol.BIG,M2=Ol.SMALL;var x2=Object.keys(cn);var Iv=function(i,t,e,r){return new(e||(e=Promise))(function(o,s){function n(d){try{c(r.next(d))}catch(m){s(m)}}function a(d){try{c(r.throw(d))}catch(m){s(m)}}function c(d){var m;d.done?o(d.value):(m=d.value,m instanceof e?m:new e(function(l){l(m)})).then(n,a)}c((r=r.apply(i,t||[])).next())})},Sf=Symbol(32),If=Symbol(16),bf=Symbol(8),ga=class{constructor(i){this.g=i,this.consumed=0,i&&(this.need=i.next().value)}setG(i){this.g=i,this.demand(i.next().value,!0)}consume(){this.buffer&&this.consumed&&(this.buffer.copyWithin(0,this.consumed),this.buffer=this.buffer.subarray(0,this.buffer.length-this.consumed),this.consumed=0)}demand(i,t){return t&&this.consume(),this.need=i,this.flush()}read(i){return Iv(this,void 0,void 0,function*(){return this.lastReadPromise&&(yield this.lastReadPromise),this.lastReadPromise=new Promise((t,e)=>{var r;this.reject=e,this.resolve=o=>{delete this.lastReadPromise,delete this.resolve,delete this.need,t(o)},this.demand(i,!0)||(r=this.pull)===null||r===void 0||r.call(this,i)})})}readU32(){return this.read(Sf)}readU16(){return this.read(If)}readU8(){return this.read(bf)}close(){var i;this.g&&this.g.return(),this.buffer&&this.buffer.subarray(0,0),(i=this.reject)===null||i===void 0||i.call(this,new Error("EOF")),delete this.lastReadPromise}flush(){if(!this.buffer||!this.need)return;let i=null,t=this.buffer.subarray(this.consumed),e=0,r=o=>t.length<(e=o);if(typeof this.need=="number"){if(r(this.need))return;i=t.subarray(0,e)}else if(this.need===Sf){if(r(4))return;i=t[0]<<24|t[1]<<16|t[2]<<8|t[3]}else if(this.need===If){if(r(2))return;i=t[0]<<8|t[1]}else if(this.need===bf){if(r(1))return;i=t[0]}else if("buffer"in this.need){if("byteOffset"in this.need){if(r(this.need.byteLength-this.need.byteOffset))return;new Uint8Array(this.need.buffer,this.need.byteOffset).set(t.subarray(0,e)),i=this.need}else if(this.g)return void this.g.throw(new Error("Unsupported type"))}else{if(r(this.need.byteLength))return;new Uint8Array(this.need).set(t.subarray(0,e)),i=this.need}return this.consumed+=e,this.g?this.demand(this.g.next(i).value,!0):this.resolve&&this.resolve(i),i}write(i){if(i instanceof Uint8Array?this.malloc(i.length).set(i):"buffer"in i?this.malloc(i.byteLength).set(new Uint8Array(i.buffer,i.byteOffset,i.byteLength)):this.malloc(i.byteLength).set(new Uint8Array(i)),!this.g&&!this.resolve)return new Promise(t=>this.pull=t);this.flush()}writeU32(i){this.malloc(4).set([i>>24&255,i>>16&255,i>>8&255,255&i]),this.flush()}writeU16(i){this.malloc(2).set([i>>8&255,255&i]),this.flush()}writeU8(i){this.malloc(1)[0]=i,this.flush()}malloc(i){if(this.buffer){let t=this.buffer.length,e=t+i;if(e<=this.buffer.buffer.byteLength-this.buffer.byteOffset)this.buffer=new Uint8Array(this.buffer.buffer,this.buffer.byteOffset,e);else{let r=new Uint8Array(e);r.set(this.buffer),this.buffer=r}return this.buffer.subarray(t,e)}return this.buffer=new Uint8Array(i),this.buffer}};ga.U32=Sf,ga.U16=If,ga.U8=bf;var bv=128,Av=127,k2=~Av,L2=Math.pow(2,31);function ff(i){let t=new ga;for(;i>=128;)t.malloc(1)[0]=255&i|bv,i>>>=7;return t.malloc(1)[0]=255&i,t.buffer||new Uint8Array(0)}function Af(i,t=0){let e=new ga,r=t<<3;switch(typeof i){case"boolean":let o=e.malloc(2);o[0]=r,o[1]=i?1:0;break;case"number":e.malloc(1)[0]=r,e.write(ff(i));break;case"string":e.malloc(1)[0]=2|r;let s=new TextEncoder().encode(i);e.write(ff(s.length));let n=e.malloc(s.length);for(let c=0;c<s.length;c++)n[c]=s[c];break;case"object":let a=new ga;if(Array.isArray(i))for(let c=0;c<i.length;c++){let d=Af(i[c],c+1);d&&a.write(d)}else{let c=1;for(let d in i){let m=Af(i[d],c++);m&&a.write(m)}}t===0?a.buffer&&e.write(a.buffer):(e.malloc(1)[0]=2|r,a.buffer&&(e.write(ff(a.buffer.length)),e.write(a.buffer)))}return e.buffer||new Uint8Array(0)}var XE=class{constructor(){xt(this,"buffer"),this.buffer=[]}get data(){return this.buffer}get length(){return this.buffer.length}writeInt32(i){this.buffer.push(i>>>24&255),this.buffer.push(i>>>16&255),this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeInt16(i){this.buffer.push(i>>>8&255),this.buffer.push(255&i)}writeByte(i){this.buffer.push(255&i)}writeBytes(i){for(let t=0;t<i.length;t++)this.buffer.push(i[t])}};function JE(i,t,e){i[e]=t>>>24&255,i[e+1]=t>>>16&255,i[e+2]=t>>>8&255,i[e+3]=255&t}function jr(i,t){return i[t]<<24|i[t+1]<<16|i[t+2]<<8|i[t+3]}function QE(i,t){return i[t]}function Bc(i,t,e){return new TextDecoder().decode(vv(i,t,e))}function vv(i,t,e){return i.slice(t,t+e)}var gf=0,vf=2654435769,Rf=16,YE=4,jc=2,qc=7;function Rv(i,t,e,r="AVQualityReportSvc.C2S",o=2e3,s=2,n=30){return{version:o,encryption:s,d2:"",d2Len:0,uinType:n,uin:"",uinLen:0,reqHead:{seqNumber:e,appId:i,appidAtThird:new Uint8Array(0),a2:"",a2Len:0,serviceCmd:r,serviceCmdLen:0,cookie:"",cookieLen:0,imei:"",imeiLen:0,ksid:"",ksidLen:0,clientVersionInfo:"",clientVersionInfoLen:0},busiBuff:t}}function Cv(i,t){let e=new XE,r=Rv(t,i,gf);gf=gf+1&2147483647,e.writeInt32(0),e.writeInt32(r.version),e.writeByte(r.encryption);let o=new TextEncoder().encode(r.d2);e.writeInt32(o.length+4),o&&e.writeBytes(o),e.writeByte(r.uinType);let s=new TextEncoder().encode(r.uin);e.writeInt32(s.length+4),s.length&&e.writeBytes(s);let n=new XE;n.writeInt32(0),n.writeInt32(r.reqHead.seqNumber),n.writeInt32(r.reqHead.appId),n.writeByte(r.reqHead.appId>>>24&255),n.writeByte(r.reqHead.appId>>>16&255),n.writeByte(r.reqHead.appId>>>8&255),n.writeByte(255&r.reqHead.appId);for(let M=4;M<16;M++)n.writeByte(0);let a=new TextEncoder().encode(r.reqHead.a2);n.writeInt32(a.length+4),a.length&&n.writeBytes(a);let c=new TextEncoder().encode(r.reqHead.serviceCmd);n.writeInt32(c.length+4),c.length&&n.writeBytes(c);let d=new TextEncoder().encode(r.reqHead.cookie);n.writeInt32(d.length+4),d.length&&n.writeBytes(d);let m=new TextEncoder().encode(r.reqHead.imei);n.writeInt32(m.length+4),m.length&&n.writeBytes(m);let l=new TextEncoder().encode(r.reqHead.ksid);n.writeInt32(l.length+4),l.length&&n.writeBytes(l);let f=new TextEncoder().encode(r.reqHead.clientVersionInfo);n.writeInt16(f.length+2),f.length&&n.writeBytes(f);let g=n.length;n.data[0]=g>>>24&255,n.data[1]=g>>>16&255,n.data[2]=g>>>8&255,n.data[3]=255&g,Cf(i)&&(i=new TextEncoder().encode(i)),n.writeInt32(i.length+4),i.length&&n.writeBytes(i);let T=new Uint8Array(n.data),E=null;r.encryption===1?E=new TextEncoder().encode(r.uin):r.encryption===2&&(E=new Uint8Array(16)),E&&(T=wv(T,E)),e.writeBytes(T);let y=new Uint8Array(e.data),v=y.length;return y[0]=v>>>24&255,y[1]=v>>>16&255,y[2]=v>>>8&255,y[3]=255&v,y}function wv(i,t){let e=i.length,r=(e+1+jc+qc)%8;r&&(r=8-r);let o=new Uint8Array(e+1+jc+qc+r),s=0,n=new Uint8Array(8),a=new Uint8Array(8),c=new Uint8Array(8),d=0;n[0]=248&Math.floor(256*Math.random())|r,d=1;for(let l=0;l<r;l++)n[d]=255&Math.floor(256*Math.random()),d+=1;for(let l=0;l<jc;)if(d<8&&(n[d]=255&Math.floor(256*Math.random()),d+=1,l+=1),d===8){_f(n,t,a,c,o,s),s+=8,d=0;for(let f=0;f<8;f++)c[f]=o[s-8+f]}let m=0;for(;m<e;)if(d<8&&(n[d]=i[m],d+=1,m+=1),d===8){_f(n,t,a,c,o,s),s+=8,d=0;for(let l=0;l<8;l++)c[l]=o[s-8+l]}for(let l=0;l<qc;)if(d<8&&(n[d]=0,d+=1,l+=1),d===8){_f(n,t,a,c,o,s),s+=8,d=0;for(let f=0;f<8;f++)c[f]=o[s-8+f]}return o}function _f(i,t,e,r,o,s){for(let n=0;n<8;n++)i[n]^=r[n];Nv(i,t,o,s);for(let n=0;n<8;n++)o[s+n]^=e[n];for(let n=0;n<8;n++)e[n]=i[n]}function Nv(i,t,e,r){let o=jr(i,0),s=jr(i,4),n=[];for(let c=0;c<4;c++)n[c]=jr(t,4*c);let a=0;for(let c=0;c<Rf;c++)a+=vf,a>>>=0,o+=(s<<4)+n[0]^s+a^(s>>>5)+n[1],o>>>=0,s+=(o<<4)+n[2]^o+a^(o>>>5)+n[3],s>>>=0;JE(e,o,r),JE(e,s,r+4)}var Dv=0,lT=function(){return Date.now()+Dv},Ov=function(){let i=new Date;return i.setTime(lT()),i.toLocaleString()},Mv=function(i){let t=String(i.getMilliseconds());return"padStart"in String.prototype&&(t=t.toString().padStart(3,"0")),`${i.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/,"$1")}:${t}`};function xv(i){let t=kv(i);return t==null?void 0:t.busiBuff}function kv(i){try{let t={},e=0;t.totalLength=jr(i,e),e+=4,t.version=jr(i,e),e+=4,t.encryption=QE(i,e),e+=1,t.uinType=QE(i,e),e+=1,t.uinLength=jr(i,e),e+=4,t.uin=t.uinLength>4?Bc(i,e,t.uinLength-4):"",e+=t.uinLength-4;let r=i.slice(e);if(t.encryption===2){let o=new Uint8Array(16).fill(0);i=Lv(r,o),t.decrypted=!0,e=0}else i=r,e=0;return t.rspHeadLength=jr(i,e),e+=4,t.seqNo=jr(i,e),e+=4,t.retCode=jr(i,e),e+=4,t.retStrLength=jr(i,e),e+=4,t.retStr=t.retStrLength?Bc(i,e,t.retStrLength-4):"",e+=t.retStrLength-4,t.serviceCmdLength=jr(i,e),e+=4,t.serviceCmd=t.serviceCmdLength?Bc(i,e,t.serviceCmdLength-4):"",e+=t.serviceCmdLength-4,t.cookieLength=jr(i,e),e+=4,t.cookie=t.cookieLength?Bc(i,e,t.cookieLength-4):"",e+=t.cookieLength-4,t.flag=jr(i,e),e+=4,t.busiBuffLength=jr(i,e),e+=4,t.busiBuff=t.busiBuffLength?Bc(i,e,t.busiBuffLength-4):"",e+=t.busiBuffLength-4,t}catch(t){}}function hT(i,t){let e=i[0]<<24|i[1]<<16|i[2]<<8|i[3],r=i[4]<<24|i[5]<<16|i[6]<<8|i[7];e>>>=0,r>>>=0;let o=vf*Rf>>>0;for(let s=0;s<Rf;s++)r-=(e<<YE)+t[2]^e+o^(e>>>5)+t[3],r>>>=0,e-=(r<<YE)+t[0]^r+o^(r>>>5)+t[1],e>>>=0,o-=vf,o>>>=0;return new Uint8Array([e>>>24&255,e>>>16&255,e>>>8&255,255&e,r>>>24&255,r>>>16&255,r>>>8&255,255&r])}function Lv(i,t){let e=0,r=new Uint8Array(8).fill(0),o=hT(new Uint8Array(i.slice(0,8)),t),s=7&o[0],n=i.length-1-s-jc-qc,a=new Uint8Array(n),c=0,d=r,m=i.slice(0,8);e=8;let l=1;l+=s;for(let g=1;g<=jc;)if(l<8)l++,g++;else if(l===8){let T=Ef(i,e,d,m,o,t);d=T.ivPreCrypt,m=T.ivCurCrypt,o=T.debiBuf,e=T.bufPos,l=0}let f=n;for(;f>0;)if(l<8)a[c++]=o[l]^d[l],l++,f--;else if(l===8){let g=Ef(i,e,d,m,o,t);d=g.ivPreCrypt,m=g.ivCurCrypt,o=g.debiBuf,e=g.bufPos,l=0}for(let g=1;g<=qc;)if(l<8)o[l],d[l],l++,g++;else if(l===8){if(e>=i.length)break;let T=Ef(i,e,d,m,o,t);if(!T.success)break;d=T.ivPreCrypt,m=T.ivCurCrypt,o=T.debiBuf,e=T.bufPos,l=0}return a}function Ef(i,t,e,r,o,s){if(t+8>i.length)return{success:!1};let n=new Uint8Array(r),a=i.slice(t,t+8),c=new Uint8Array(8);for(let d=0;d<8;d++)c[d]=o[d]^a[d];return{success:!0,ivPreCrypt:n,ivCurCrypt:a,debiBuf:hT(c,s),bufPos:t+8}}var ZE=typeof TextDecoder!="undefined"?new TextDecoder:void 0;function Pv({url:i,body:t,method:e="POST",timeout:r,priority:o}){return new Promise((s,n)=>{if("fetch"in window)return fetch(i,{method:e,body:t,priority:o}).then(c=>c.clone().json().then(d=>({data:d}),()=>c.arrayBuffer().then(d=>({data:xv(new Uint8Array(d))||(ZE?ZE.decode(d):d)})))).then(s,n);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(a.readyState===4)if(a.status>=200&&a.status<300)try{let c=JSON.parse(a.response);s({data:c})}catch(c){s({data:a.response})}else n({status:a.status,statusText:a.statusText||"request failed!"})},a.timeout=r||5e3,a.open(e,i,!0),a.send(t)})}var Uv=Object.prototype.hasOwnProperty,$c=i=>typeof i=="function",pa=i=>i===void 0,Vv=i=>typeof i=="boolean",Bv=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 $v(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(Bv(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(Uv.call(i,t))return!1;return!0}return!1}var Fv=0,Hv=1,KE=2;function Wv({retryFunction:i,settings:t,onError:e,onRetrying:r,onRetryFailed:o,onRetrySuccess:s,context:n}){return function(...a){let{retries:c=5,timeout:d=1e3}=t,m=0,l=-1,f=Fv,g=(T,E)=>D(this,null,function*(){let y=n||this;try{let v=yield i.apply(y,a);m>0&&s&&s.call(this,m),m=0,T(v)}catch(v){let M=()=>{clearTimeout(l),m=0,f=KE,E(v)},w=()=>{f!==KE&&m<($c(c)?c():c)?(m++,f=Hv,$c(r)&&r.call(this,m,M),l=window.setTimeout(()=>{l=-1,g(T,E)},$c(d)?d(m):d)):(M(),$c(o)&&o.call(this,v))};$c(e)?e.call(this,{error:v,retry:w,reject:E,retryFuncArgs:a,retriedCount:m}):w()}});return new Promise(g)}}var Gv=Wv,Tf=class mT{constructor(t){xt(this,"_parentPath"),xt(this,"userId"),xt(this,"remoteUserId"),xt(this,"id"),xt(this,"sdkAppId"),xt(this,"type"),xt(this,"isLocal"),this.id=t.id,this.userId=t.userId,this.sdkAppId=t.sdkAppId,this.remoteUserId=t.remoteUserId,this.isLocal=!Vv(t.isLocal)||t.isLocal,this.type=this.isLocal?"":t.type}getFullId(){return this._parentPath&&this.id?`${this._parentPath}-${this.id}`:this._parentPath?this._parentPath:this.id}createChild(t){let e=new mT({id:t.id,userId:pa(t.userId)?this.userId:t.userId,sdkAppId:pa(t.sdkAppId)?this.sdkAppId:t.sdkAppId,type:pa(t.type)?this.type:t.type,isLocal:pa(t.isLocal)?this.isLocal:t.isLocal,remoteUserId:pa(t.remoteUserId)?this.remoteUserId:t.remoteUserId});return e.bindParent(this),e}bindParent(t){let e=t.getFullId();this._parentPath!==e&&(this.debug(`bind logger parent: ${t.id}`),this._parentPath=e,this.userId=t.userId||this.userId,this.sdkAppId=t.sdkAppId||this.sdkAppId)}setUserId(t){this.userId=t}setSdkAppId(t){this.sdkAppId=t}log(t,e){let r=this.isLocal?this.userId:this.remoteUserId,o=this.getFullId();e.unshift(`[${this.isLocal?"\u2191":"\u2193"}${this.type&&this.type!=="main"?"*":""}${o}${r?`|${r}`:""}]`),vR.log(t,e,pa(this.userId)||$v(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)}},Xi=typeof navigator=="undefined"?"":navigator.userAgent,tt=i=>new RegExp(i,"i").test(Xi),sr=i=>{if(tt(i)){let t=new RegExp(`${i}\\/([\\d.]+)`),e=Xi.match(t);if(e&&e[1])return e[1]}return""},Ml=i=>{if(tt(i)){let t=new RegExp(`${i}\\/(\\d+)`),e=Xi.match(t);if(e&&e[1])return parseFloat(e[1])}return NaN},eT=/AppleWebKit\/([\d.]+)/i.exec(Xi),zv=eT?parseFloat(eT[1]):NaN,pT=tt("iPad"),fT=typeof navigator!="undefined"&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2&&tt("Macintosh"),gT=tt("iPhone")&&!pT,jv=tt("iPod"),Nf=gT||pT||jv||fT,Xc=tt("Android"),_T=function(){if(Xc){let i=Xi.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}(),P2=Xc&&tt("webkit")&&_T<2.3,U2=Xc&&_T<5&&zv<537,qv=tt("Firefox"),Xv=sr("Firefox"),V2=Ml("Firefox"),ET=tt("Edge"),Jv=sr("Edge"),TT=tt("Edg"),Qv=sr("Edg"),B2=Ml("Edg"),yT=tt("SogouMobileBrowser"),Yv=sr("SogouMobileBrowser"),ST=tt("MetaSr\\s"),Zv=sr("MetaSr\\s"),dn=tt("TBS"),Kv=sr("TBS"),IT=tt("XWEB"),eR=sr("XWEB"),$2=tt("MSIE\\s8\\.0"),tR=tt("MSIE\\/\\d+"),F2=function(){if(tR){let i=/MSIE\s(\d+)\.\d/.exec(Xi),t=i&&parseFloat(i[1]);return!t&&/Trident\/7.0/i.test(Xi)&&/rv:11.0/.test(Xi)&&(t=11),t}return NaN}(),rR=tt("(micromessenger|webbrowser)"),iR=sr("MicroMessenger"),Df=!dn&&tt("MQQBrowser")&&tt("COVC"),Of=!dn&&tt("MQQBrowser")&&!tt("COVC"),tT=Of||Df?sr("MQQBrowser"):"",bT=!dn&&tt(" QQBrowser"),oR=sr(" QQBrowser"),AT=!dn&&tt("QQBrowserLite"),sR=sr("QQBrowserLite"),vT=!dn&&tt("MQBHD"),nR=sr("MQBHD"),H2=tt("Windows"),W2=!Nf&&tt("MAC OS X"),G2=!Xc&&tt("Linux"),z2=tt("CrOS"),j2=tt("MicroMessenger"),q2=tt("UCBrowser"),X2=tt("Electron"),RT=tt("MiuiBrowser"),aR=sr("MiuiBrowser"),CT=tt("HuaweiBrowser"),J2=tt("Huawei")||tt("HUAWEI"),Q2=tt("Honor")||tt("HONOR"),cR=sr("HuaweiBrowser"),wT=tt("SamsungBrowser"),dR=sr("SamsungBrowser"),NT=tt("HeyTapBrowser"),uR=sr("HeyTapBrowser"),DT=tt("VivoBrowser"),lR=sr("VivoBrowser"),Y2=tt("OpenHarmony"),Z2=sr("OpenHarmony"),hR=()=>Ml("Chrome"),rT=tt("CriOS"),OT=tt("Chrome"),mR=!ET&&!ST&&!yT&&!dn&&!IT&&!TT&&!bT&&!RT&&!CT&&!wT&&!NT&&!DT&&OT,pR=tt("HeadlessChrome"),K2=hR(),fR=sr("Chrome"),e1=Ml("Electron"),gR=!OT&&!Of&&!Df&&!AT&&!vT&&tt("Safari"),MT=sr("Version"),t1=/Android.*(wv|.0.0.0)/.test(Xi),xT=(()=>{if(fT)return MT;if(Nf){let i=Xi.match(/OS (\d+)_(\d+)/i);if(i&&i[1]){let t=i[1];return i[2]&&(t+=`.${i[2]}`),t}}return""})(),r1=Number(xT.split(".")[0]),i1=(()=>{let i=Number(xT.split(".")[0]);return i===14||i===13})(),o1=typeof location!="undefined"&&(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1"),s1=_R();function _R(){let i=new Map([[qv,["Firefox",Xv]],[TT,["Edg",Qv]],[mR,["Chrome",fR]],[rT,["ChiOS",sr("CriOS")]],[gR&&!rT,["Safari",MT]],[dn,["TBS",Kv]],[IT,["XWEB",eR]],[rR&&gT,["WeChat",iR]],[bT,["QQ(Win)",oR]],[Of,["QQ(Mobile)",tT]],[Df,["QQ(Mobile X5)",tT]],[AT,["QQ(Mac)",sR]],[vT,["QQ(iPad)",nR]],[RT,["MI",aR]],[CT,["HW",cR]],[wT,["Samsung",dR]],[NT,["OPPO",uR]],[DT,["VIVO",lR]],[ET,["EDGE",Jv]],[yT,["SogouMobile",Yv]],[ST,["Sogou",Zv]]]),t="unknown",e="unknown";return i.has(!0)&&([t,e]=i.get(!0)),{name:t,version:e}}var ER=aT(cT(),1),TR=new ER.default,ss=TR,Cl=dT,yR=class{constructor(){xt(this,"enable",!1),xt(this,"ssoFailCount",0),ss.on("22",({schedule:i})=>{var t;(t=i==null?void 0:i.config)!=null&&t.sso&&ss.emit("266",{enable:!0})}),ss.on("266",({enable:i})=>{this.enable=i})}handleUploadFailed(){this.ssoFailCount++,this.ssoFailCount>3&&ss.emit("266",{enable:!1})}},iT=new yR,SR="%cTRTC%c%s",IR="padding: 1px 4px;border-radius: 3px;color: #fff;background: #1E88E5;",bR="display: inline",kT=class LT{constructor(){xt(this,"_isEnableUploadLog",!0),xt(this,"_localJoinedUser",new Map),xt(this,"_queue",[]),xt(this,"_timeoutId",-1),xt(this,"_logLevel",1),xt(this,"_logLevelToUpload",2),pv||fv||(this.checkURLParam(),this.installEvents())}get isAbleToUpload(){return this._isEnableUploadLog&&this._timeoutId!==-1}installEvents(){ss.on(Cl.JOIN_SCHEDULE_SUCCESS,({schedule:t})=>{var e;(e=t==null?void 0:t.config)!=null&&e.logLevelToUpload&&cn[t.config.logLevelToUpload]&&(this._logLevelToUpload=t.config.logLevelToUpload)}),ss.on(Cl.JOIN_START,({params:t})=>{this.addJoinedUser({userId:t.userId,sdkAppId:t.sdkAppId}),this.startUpload()}),ss.on(Cl.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(Cf(r.userId)&&wR(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 D(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:n,sdkAppId:a,logs:c}=o[s],d={timestamp:Ov(),sdkAppId:String(a),userId:n,version:mv,log:c.map(f=>f.log).join(`
|
|
94
|
+
`)},m=JSON.stringify(d),l=iT.enable?OR(d,2002,a):m;yield this.uploadLogWithRetry(l,a,l instanceof Uint8Array,m),c.forEach(f=>f.uploaded=!0)}}catch(o){}let r=e.filter(o=>!o.uploaded);r.length>0&&(this._queue=r.concat(this._queue))})}uploadLogWithRetry(t,e,r,o){return Gv({retryFunction:()=>Pv({url:CR(e,Sv.LOG),body:t,timeout:5e3,priority:"low"}).then(s=>{r&&s.data!=="ok"&&(iT.handleUploadFailed(),this.uploadLogWithRetry(o,e,!1,o))}),settings:{retries:3,timeout:2e3},onError:({retry:s})=>{s()}})()}getPrefix(t){let e=new Date;return e.setTime(lT()),`[${Mv(e)}] <${cn[t]}>`}getLogLevel(){return this._logLevel}setLogLevel(t){PT(cn[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(Cf(t))return t;try{return t instanceof Error?t.toString():JSON.stringify(t)}catch(e){return""}}addLogToQueue(t,e,r=!0,o,s){let n={log:e.reduce((a,c)=>`${a} ${this.logChunkToString(c)}`.trim(),""),level:t,userId:o,sdkAppId:s,forAllJoinedClients:r};ss.emit(Cl.LOG,{log:n}),this._isEnableUploadLog&&t>=this._logLevelToUpload&&this._queue.push(n)}log(t,e,r=!0,o,s){var n;if(e.unshift(this.getPrefix(t)),this.addLogToQueue(t,e,r,o,s),t<this._logLevel)return;let a=((n=cn[t])==null?void 0:n.toLowerCase())||"info";LT.PRINT_LOG_TAG?console[a](SR,IR,bR,...e):console[a](...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){if(t.parent instanceof Tf){let e=t,{parent:r}=e,o=rv(e,["parent"]),s=new Tf(o);return s.bindParent(r),s}return new Tf(t)}checkURLParam(){let t=new URLSearchParams(location.search).get("logLevelToUpload"),e=t?Number(t):-1;cn[e]&&(this._logLevelToUpload=e)}getQueue(){return this._queue}};xt(kT,"PRINT_LOG_TAG",!(Nf||Xc||pR));var AR=kT,vR=new AR,RR=i=>Number(i)<14e8,CR=function(i,t){let e;return e=gv||(RR(i)?yv:Tv),`${e}/v5/AVQualityReportSvc/C2S?random=${Math.floor(Math.random()*ki(2,31))}&sdkappid=${i}&cmdtype=${t}`},n1=typeof window!="undefined"&&typeof window.glog=="function"?window.glog:()=>{},PT=i=>i===void 0,Cf=i=>typeof i=="string",wR=i=>typeof i=="number",a1=typeof HTMLMediaElement!="undefined"&&"setSinkId"in HTMLMediaElement.prototype;function NR(){return performance&&performance.now?Math.floor(performance.now()):Date.now()}var{toString:c1}=Object.prototype;function DR(i,t,e,r){let o={data:i,random:Math.floor(Math.random()*2147483648),sdkAppId:e};return PT(r)||(o=Wc(Hc({},o),{gzip:+r})),{uint32_sdkappid:0,uint64_from_uin:0,uint32_timestamp:0,uint32_seq:0,msg_common_info:{msg_device_info:{enum_device_type:0,str_device_brand:"",str_device_model:"",str_device_board:"",str_device_cpu_abi:""},msg_system_info:{enum_os_type:0,str_os_version:"",msg_network_info:0},msg_network_info:{enum_network_type:0}},msg_report_content:{uint32_type:t,bytes_report_data:JSON.stringify(o)}}}function OR(i,t,e,r){try{let o=DR(i,t,e,r);return Cv(Af(o),e)}catch(o){return JSON.stringify(i)}}var UT=class VT{constructor(t){this.core=t,xt(this,"contextMap",new Map),xt(this,"decodeProcessorMap",new WeakMap),this.addKVReportBeforeExitRoom=this.addKVReportBeforeExitRoom.bind(this),this.createDecoder=this.createDecoder.bind(this),this.core.innerEmitter.on("51",this.addKVReportBeforeExitRoom)}getAlias(){return"videoDecoder"}getGroup(t){return t!=null&&t.track?`${t.track.userId}${t.track.streamType}`:"*"}getName(){return VT.Name}getValidateRule(t){return{type:this.core.enums.BASIC_TYPE.Object}}createDecoder(t,e){var r;switch(t){case"wasm":let s=((r=this.core.assetsPath)==null?void 0:r.replace(/\/+$/,""))||".";return new hv(Wc(Hc({},e),{wasmPath:`${s}/videodec.wasm`}));case"webCodecs":return new fa;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:n})=>{if(n!==t.track||s.type==="empty")return s;if(this.contextMap.has(n))return this.contextMap.get(n).decode(s);let a=this.core.room.videoManager.createDecodeContext(Wc(Hc({},t),{createDecoder:this.createDecoder}));return e(a.trackDoneOB,r(1),o(()=>{this.core.clearStarted(this,this.getGroup(t)),this.stop({track:n})})),this.contextMap.set(n,a),a.decode(s)}}stop(t){if(t!=null&&t.track){let e=this.contextMap.get(t.track);e&&(e.close("stop"),this.report(e,t.track),this.contextMap.delete(t.track))}else this.contextMap.forEach((e,r)=>{e.close("stop"),this.contextMap.delete(r)});this.contextMap.size===0&&this.core.room.videoManager.removeDecodeProcessor({type:3})}report(t,e){if(t.isReported)return;t.isReported=!0;let r=NR()-t.startPerformanceTime,{renderFreezeTotal:o,dataFreezeTotal:s}=this.getRemoteTrackFreezeDuration(e,t),n=`report health data: ${t.track.userId} ${t.track.streamType} ${t.type}+${t.renderer} goodType\uFF1A${t.goodType} ${t.failedReason?`failedReason: ${t.failedReason}`:""}`;r&&(this.core.kvStatManager.addNumber({key:514850,value:Math.floor(o/r*100),split:1,max:100}),n+=` RENDER_FREEZE_RATE: ${Math.floor(o/r*100)}%`),r&&(this.core.kvStatManager.addNumber({key:514851,value:Math.floor(s/r*100),split:1,max:100}),n+=` DATA_FREEZE_RATE: ${Math.floor(s/r*100)}%`),t.inputFrameCount&&(this.core.kvStatManager.addNumber({key:514852,value:Math.floor(t.decodedFrameCount/t.inputFrameCount*100),split:1,max:100}),n+=` VIDEO_CONSUME_RENDER_RATE: ${Math.floor(t.decodedFrameCount/t.inputFrameCount*100)}%`),this.core.log.info(n)}addKVReportBeforeExitRoom({room:t}){t===this.core.room&&this.contextMap.forEach((e,r)=>{this.report(e,r)})}update(t){let e=this.contextMap.get(t.track);e&&(t.type!=="mock"?(e.close("update"),this.contextMap.set(t.track,this.core.room.videoManager.createDecodeContext(Wc(Hc({},t),{createDecoder:this.createDecoder})))):e.mock(this.core.enums.DECODE_FAILED_ERROR_CODE.TEST))}getRemoteTrackFreezeDuration(t,e){let r=this.core.room.badCaseDetector.getDataFreezeMap().get(`${t.userId}_${t.streamType}`),o=this.core.room.badCaseDetector.getRenderFreezeDuration(`${t.userId}_${t.streamType}`),s=0;return r&&r.durationItemList.forEach(n=>{n.startTime>e.startPerformanceTime&&(s+=n.getDuration())}),{renderFreezeTotal:o,dataFreezeTotal:s}}destroy(){this.core.innerEmitter.off("51",this.addKVReportBeforeExitRoom)}};xt(UT,"Name","TRTCVideoDecoder");var Mf=UT;var Dy=Li(mo());function xf({timesInSecond:i,maxSizeInSecond:t,getSize:e}){return ut((r,o)=>{let s=new WeakMap;return ee.on(ce.ROOM_DESTROY,({room:n})=>s.delete(n)),function(...n){let a=s.get(this);if(a||(a={callCountInSecond:0,timestamp:0,totalSizeInSecond:0},s.set(this,a)),a.timestamp===0?a.timestamp=Date.now():Date.now()-a.timestamp>1e3&&(a.timestamp=Date.now(),a.callCountInSecond=0,a.totalSizeInSecond=0),e&&(a.totalSizeInSecond+=e(...n)),a.timestamp!==0&&Date.now()-a.timestamp<1e3&&(a.callCountInSecond>=i||a.totalSizeInSecond>t))throw new Me({code:Te.INVALID_OPERATION,message:Et({key:_t.CALL_FREQUENCY_LIMIT,data:{isTimes:a.callCountInSecond>=i,isSize:a.totalSizeInSecond>t,name:o,timesInSecond:i,maxSizeInSecond:t}})});a.callCountInSecond++,r.call(this,...n)}})}var MR="2025-11-24 15:47:17",BT=!0,$T=function(){var i;if(BT){BT=!1,se.getLogLevel()!==5&&(console.info("******************************************************************************"),console.info("* TRTC Web SDK"),console.info(`* API Document: ${Br}/en/index.html`),console.info(`* Changelog: ${Br}/en/tutorial-01-info-changelog.html`),console.info("* Report issues: https://github.com/LiteAVSDK/TRTC_Web/issues"),console.info("******************************************************************************")),se.info("TRTC Web SDK Version:",qt),bi||se.debug("Build Time:",MR);let t=`UA: ${navigator.userAgent}
|
|
95
|
+
CPU core: ${navigator.hardwareConcurrency}, GPU: ${ym()}`,e=navigator.deviceMemory;e&&(t+=`, minRAM: ${e}GB`),se.info(t),se.info(`URL: ${location.href}${((i=self.frameElement)==null?void 0:i.tagName)==="IFRAME"?" in iframe":""}`),Us().then(r=>{r&&se.info(yi)})}};var un={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 ke={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},Kr=(G=>(G[G.INVALID_PARAMETER=5e3]="INVALID_PARAMETER",G[G.INVALID_PARAMETER_REQUIRED=5001]="INVALID_PARAMETER_REQUIRED",G[G.INVALID_PARAMETER_TYPE=5002]="INVALID_PARAMETER_TYPE",G[G.INVALID_PARAMETER_EMPTY=5003]="INVALID_PARAMETER_EMPTY",G[G.INVALID_PARAMETER_INSTANCE=5004]="INVALID_PARAMETER_INSTANCE",G[G.INVALID_PARAMETER_RANGE=5005]="INVALID_PARAMETER_RANGE",G[G.INVALID_PARAMETER_LESS_THAN_ZERO=5006]="INVALID_PARAMETER_LESS_THAN_ZERO",G[G.INVALID_PARAMETER_MIN=5007]="INVALID_PARAMETER_MIN",G[G.INVALID_PARAMETER_MAX=5008]="INVALID_PARAMETER_MAX",G[G.INVALID_ELEMENT_ID=5009]="INVALID_ELEMENT_ID",G[G.INVALID_ELEMENT_ID_TYPE=5010]="INVALID_ELEMENT_ID_TYPE",G[G.INVALID_STREAM_ID=5011]="INVALID_STREAM_ID",G[G.INVALID_ROOM_ID_STRING=5012]="INVALID_ROOM_ID_STRING",G[G.INVALID_ROOM_ID_INTEGER=5013]="INVALID_ROOM_ID_INTEGER",G[G.INVALID_STREAM_TYPE=5014]="INVALID_STREAM_TYPE",G[G.INVALID_ROOM_ID_REQUIRED=5015]="INVALID_ROOM_ID_REQUIRED",G[G.INVALID_ROOM_ID_INTEGER_STRING=5016]="INVALID_ROOM_ID_INTEGER_STRING",G[G.INVALID_BUFFER_EMPTY=5017]="INVALID_BUFFER_EMPTY",G[G.INVALID_BUFFER_OVERSIZE=5018]="INVALID_BUFFER_OVERSIZE",G[G.INVALID_ROOM_ID_TYPE_MISMATCH=5019]="INVALID_ROOM_ID_TYPE_MISMATCH",G[G.INVALID_ROOM_ID_DUPLICATE=5020]="INVALID_ROOM_ID_DUPLICATE",G[G.INVALID_OPERATION=5100]="INVALID_OPERATION",G[G.INVALID_OPERATION_NOT_JOINED=5101]="INVALID_OPERATION_NOT_JOINED",G[G.INVALID_OPERATION_REMOTE_USER_NOT_EXIST=5102]="INVALID_OPERATION_REMOTE_USER_NOT_EXIST",G[G.INVALID_OPERATION_STREAM_TYPE_NOT_EXIST=5103]="INVALID_OPERATION_STREAM_TYPE_NOT_EXIST",G[G.INVALID_OPERATION_REPEAT_CALL=5104]="INVALID_OPERATION_REPEAT_CALL",G[G.INVALID_OPERATION_NEED_VIDEO=5105]="INVALID_OPERATION_NEED_VIDEO",G[G.INVALID_OPERATION_NEED_AUDIO=5106]="INVALID_OPERATION_NEED_AUDIO",G[G.INVALID_ROLE_AUDIENCE=5107]="INVALID_ROLE_AUDIENCE",G[G.INVALID_NOT_ENABLE_SEI=5108]="INVALID_NOT_ENABLE_SEI",G[G.INVALID_NEED_CALL_PUBLISHED=5109]="INVALID_NEED_CALL_PUBLISHED",G[G.ENV_NOT_SUPPORTED=5200]="ENV_NOT_SUPPORTED",G[G.NOT_SUPPORTED_HTTP=5201]="NOT_SUPPORTED_HTTP",G[G.NOT_SUPPORTED_WEBRTC=5202]="NOT_SUPPORTED_WEBRTC",G[G.NOT_SUPPORTED_H264_ENCODE=5203]="NOT_SUPPORTED_H264_ENCODE",G[G.NOT_SUPPORTED_H264_DECODE=5204]="NOT_SUPPORTED_H264_DECODE",G[G.NOT_SUPPORTED_SCREEN_SHARE=5205]="NOT_SUPPORTED_SCREEN_SHARE",G[G.NOT_SUPPORTED_SMALL_VIDEO=5206]="NOT_SUPPORTED_SMALL_VIDEO",G[G.NOT_SUPPORTED_SEI=5207]="NOT_SUPPORTED_SEI",G[G.NOT_SUPPORTED_WEBGL=5208]="NOT_SUPPORTED_WEBGL",G[G.NOT_SUPPORTED_CHROME_VERSION=5209]="NOT_SUPPORTED_CHROME_VERSION",G[G.NOT_SUPPORTED_PLUGIN=5210]="NOT_SUPPORTED_PLUGIN",G[G.DEVICE_ERROR=5300]="DEVICE_ERROR",G[G.DEVICE_NOT_FOUND_ERROR=5301]="DEVICE_NOT_FOUND_ERROR",G[G.DEVICE_NOT_ALLOWED_ERROR=5302]="DEVICE_NOT_ALLOWED_ERROR",G[G.DEVICE_NOT_READABLE_ERROR=5303]="DEVICE_NOT_READABLE_ERROR",G[G.DEVICE_OVERCONSTRAINED_ERROR=5304]="DEVICE_OVERCONSTRAINED_ERROR",G[G.DEVICE_INVALID_STATE_ERROR=5305]="DEVICE_INVALID_STATE_ERROR",G[G.DEVICE_SECURITY_ERROR=5306]="DEVICE_SECURITY_ERROR",G[G.DEVICE_ABORT_ERROR=5307]="DEVICE_ABORT_ERROR",G[G.CAMERA_RECOVER_FAILED=5308]="CAMERA_RECOVER_FAILED",G[G.MICROPHONE_RECOVER_FAILED=5309]="MICROPHONE_RECOVER_FAILED",G[G.NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX=5310]="NOT_SUPPORTED_MISMATCH_SAMPLE_RATE_IN_FIREFOX",G[G.SERVER_ERROR=5400]="SERVER_ERROR",G[G.NEED_TO_BUY=5401]="NEED_TO_BUY",G[G.ACCOUNT_NO_MONEY=-100013]="ACCOUNT_NO_MONEY",G[G.OPERATION_FAILED=5500]="OPERATION_FAILED",G[G.FIREWALL_RESTRICTION=5501]="FIREWALL_RESTRICTION",G[G.REJOIN_FAILED=5502]="REJOIN_FAILED",G[G.EVENT_HANDLER_ERROR=5503]="EVENT_HANDLER_ERROR",G[G.VIDEO_CONTEXT_ERROR=5504]="VIDEO_CONTEXT_ERROR",G[G.VIDEO_ENCODE_FAILED=5505]="VIDEO_ENCODE_FAILED",G[G.AUDIO_ENCODE_FAILED=5506]="AUDIO_ENCODE_FAILED",G[G.VIDEO_DECODE_FAILED=5507]="VIDEO_DECODE_FAILED",G[G.AUDIO_DECODE_FAILED=5508]="AUDIO_DECODE_FAILED",G[G.OPERATION_ABORT=5998]="OPERATION_ABORT",G[G.UNKNOWN_ERROR=5999]="UNKNOWN_ERROR",G))(Kr||{});function HT({code:i,params:t,enableDocLink:e=!1}){let r="",o,s=Kr[i];try{o=FT[s]}catch(n){o=FT.UNKNOWN_ERROR}return Rt(o)?r=o(t):nt(o)&&(r=o),t.fnName&&!r.includes(t.fnName)&&(r[r.length-1]!=="."&&(r+="."),r+=` thrown from ${t.fnName}()`),e&&(r+=" doc:"),r}var FT=qe(be({},Wr),{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: ${Xt(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: ${Xt(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_REQUIRED(){return"at least one of 'roomId'(between [1, 4294967294]) and 'strRoomId'(not empty) is required."},INVALID_ROOM_ID_TYPE_MISMATCH({key:i}){return`The type of target roomId must match the current roomId. Current room is using '${i}', but received '${i==="strRoomId"?"roomId":"strRoomId"}'.`},INVALID_ROOM_ID_DUPLICATE({key:i}){return`the target '${i}' must not be the same as the current '${i}'.`},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 or screen share 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=ln(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=ln(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=ln(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=ln(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=ln(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=ln(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=ln(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 ln(i){if(!i)return"camera";let t=i.toLowerCase();return t.includes("screen")?"screen share":t.includes("audio")?"microphone":"camera"}var kf=class i extends Error{constructor({code:e,extraCode:r,message:o="",messageParams:s,fnName:n="",originError:a,data:c}){var m;let d;o?d=o:d=HT({code:e===ke.SERVER_ERROR?e:r||e,params:be({fnName:n,error:a},s)});super(d);p(this,"name","RtcError");p(this,"code");p(this,"extraCode");p(this,"functionName");p(this,"message");p(this,"data");p(this,"handler");p(this,"originError");this.name=Kr[e],this.code=e,this.extraCode=r,this.functionName=n,this.originError=a,this.message=d,this.data=c,this.extraCode===5302&&((m=this.originError)!=null&&m.message.includes("system"))&&(this.handler=()=>{let l={startLocalVideo:"Camera",startLocalAudio:"Microphone",startScreenShare:"ScreenCapture"},f={startLocalVideo:"webcam",startLocalAudio:"microphone"},g=document.createElement("a");Ps?g.href=`ms-settings:privacy-${f[this.functionName]}`:Ii&&(g.href=`x-apple.systempreferences:com.apple.preference.security?Privacy_${l[this.functionName]}`),g.href.length>0&&g.click()})}static convertFrom(e,r,o){let s=e;if(e instanceof Me){let{stack:n}=e,a={code:ke.UNKNOWN_ERROR,fnName:r,originError:e};switch(e.getCode()){case Te.INVALID_PARAMETER:a.code=ke.INVALID_PARAMETER,a.message=e.message;break;case Te.INVALID_OPERATION:a.code=ke.INVALID_OPERATION;break;case Te.NOT_SUPPORTED:case Te.NOT_SUPPORTED_H264:a.code=ke.ENV_NOT_SUPPORTED,e.getCode()===Te.NOT_SUPPORTED_H264&&(a.extraCode=e.message.includes(Wr.NOT_SUPPORTED_H264ENCODE)?5203:5204);break;case Te.JOIN_ROOM_FAILED:a.messageParams={fnParams:o};case Te.SERVER_TIMEOUT:case Te.SWITCH_ROLE_FAILED:case Te.SWITCH_ROOM_FAILED:a.code=ke.SERVER_ERROR,a.extraCode=e.getExtraCode();break;case Te.API_CALL_ABORTED:a.code=ke.OPERATION_ABORT;break;case Te.DEVICE_NOT_FOUND:case Te.DEVICE_AUTO_RECOVER_FAILED:case Te.INITIALIZE_FAILED:a.code=5300,e.name&&(a.extraCode=xR(e.name));break;case Te.VIDEO_ENCODE_FAILED:a.extraCode=5505;case Te.AUDIO_ENCODE_FAILED:a.extraCode=5506,a.code=ke.OPERATION_FAILED;break;case Te.UNKNOWN:break;default:a.code=ke.OPERATION_FAILED}s=new i(a),n&&(s.stack+=n.substr(n.indexOf(`
|
|
96
|
+
`)))}else{if(e instanceof i)return e;s=new i({code:ke.UNKNOWN_ERROR,fnName:r,originError:e})}return s}};function xR(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=kf;function Ji(i){return i==="sub"?"auxiliary":i==="auxiliary"?"sub":"main"}function Jc(i){return i===un.QOS_PREFERENCE_CLEAR?"detail":i===un.QOS_PREFERENCE_SMOOTH?"motion":""}function _a(i,t){let e=t?Fh:La;return am(i)?be(be({},e),i):gi[i]?gi[i]:e}var WT={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:{type:["string","object","boolean"],properties:{width:{type:"number"},height:{type:"number"},frameRate:{type:"number"},bitrate:{type:"number"}}},videoTrack:{instanceOf:MediaStreamTrack}}},GT={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}}},Ea={type:["string",HTMLElement,null,"array"],arrayItem:{instanceOf:HTMLElement},validate(i,t,e){if(nt(i)&&!document.getElementById(i))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5009,fnName:e,messageParams:{key:t}})}},zT={name:"userId",required:!0,type:"string"},jT={type:"object",properties:{microphoneId:{type:"string"},audioTrack:{instanceOf:MediaStreamTrack},captureVolume:{type:"number",min:0},earMonitorVolume:{type:"number",min:0,max:100},profile:{type:["string","object"],properties:{bitrate:{type:"number"},channelCount:{type:"number"}}},echoCancellation:{values:[!0,!1,"remote-only","all"]},autoGainControl:{type:"boolean"},noiseSuppression:{type:"boolean"}}};function Ta(i,t){if(!i)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5101,fnName:t})}function qT(i,t,e){if(!i)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5102,fnName:t,messageParams:{value:e}})}function XT(i,t,e){if(!(/^[1-9]\d*$/.test(String(i))&&i<4294967295))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5013,fnName:t,messageParams:{key:e}})}function JT(i,t,e){if(!/^[A-Za-z\d\s!#$%&()+\-:;<=.>?@[\]^_{}|~,]{1,64}$/.test(i))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5012,fnName:t,messageParams:{key:e}})}var kV={type:"number",notLessThanZero:!0},kR=(i,t)=>i.width*i.height>=t.width*t.height&&i.frameRate>=t.frameRate&&i.bitrate>=t.bitrate;function QT(i){var r;if(!((r=i==null?void 0:i.option)!=null&&r.small))return;if(!Bu()){se.warn("small stream is not supported"),delete i.option.small;return}let t=_a(i.option.profile),e=_a(i.option.small,!0);if(!kR(t,e)){se.warn(`small stream profile must be less than big stream profile. Big: ${JSON.stringify(t)}, Small: ${JSON.stringify(e)}`),delete i.option.small;return}}var LR={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:ke.INVALID_OPERATION,extraCode:5104,fnName:e});if(i.roomId){if(nt(i.roomId))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5016,fnName:e,messageParams:{key:t}});XT(i.roomId,e,t)}else if(i.strRoomId)JT(i.strRoomId,e,t);else throw new Oe({code:ke.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"},playoutDelay:{type:"object",properties:{min:{type:"number",min:0,max:1e3},max:{type:"number",min:0,max:1e4}}}}},startLocalVideo:{name:"LocalVideoConfig",type:"object",properties:{view:Ea,mute:{type:["boolean","string"]},publish:{type:"boolean"},capture:{required:!1,type:"boolean"},option:WT},validate(i){var t,e;if(!((t=i==null?void 0:i.option)!=null&&t.videoTrack)&&Eo())throw new Oe({code:ke.ENV_NOT_SUPPORTED,extraCode:5201});(e=i==null?void 0:i.option)!=null&&e.small&&QT(i)}},updateLocalVideo:{name:"updateLocalVideoConfig",type:"object",required:!0,properties:{view:qe(be({},Ea),{required:!1}),publish:{type:"boolean"},capture:{required:!1,type:"boolean"},mute:{type:["boolean","string"]},option:WT},validate(i){var t;(t=i==null?void 0:i.option)!=null&&t.small&&QT(i)}},startLocalAudio:{name:"LocalAudioConfig",type:"object",properties:{publish:{type:"boolean"},option:jT},validate(i){var t;if(!((t=i==null?void 0:i.option)!=null&&t.audioTrack)&&Eo())throw new Oe({code:ke.ENV_NOT_SUPPORTED,extraCode:5201})}},updateLocalAudio:{name:"updateLocalAudioConfig",type:"object",required:!0,properties:{publish:{type:"boolean"},mute:{type:"boolean"},option:jT}},startScreenShare:{name:"ScreenShareConfig",type:"object",properties:{view:Ea,publish:{type:"boolean"},option:GT},validate(i,t,e,r,o){var s;if(!((s=i==null?void 0:i.option)!=null&&s.videoTrack)){if(Eo())throw new Oe({code:ke.ENV_NOT_SUPPORTED,extraCode:5201});if(!mc())throw new Oe({code:ke.ENV_NOT_SUPPORTED,fnName:e,extraCode:5205})}}},updateScreenShare:{name:"updateScreenShareConfig",type:"object",required:!0,properties:{view:Ea,publish:{type:"boolean"},option:GT}},muteRemoteAudio:[zT,{name:"mute",required:!0,type:"boolean"}],setRemoteAudioVolume:[zT,{name:"volume",required:!0,type:"number",min:0}],startRemoteVideo:{name:"startRemoteVideoConfig",type:"object",required:!0,properties:{view:Ea,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){Ta(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(qT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new Oe({code:ke.INVALID_OPERATION,extraCode:5103,fnName:e,messageParams:{value:i}})}},updateRemoteVideo:{name:"updateRemoteVideoConfig",type:"object",required:!0,properties:{view:qe(be({},Ea),{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){Ta(this._room.isJoined,e);let r=this._room.remotePublishedUserMap.get(i.userId);if(qT(!!r,e,i),r&&(i.streamType==="main"&&!r.muteState.videoAvailable||i.streamType==="sub"&&!r.muteState.hasAuxiliary))throw new Oe({code:ke.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!=="*"&&z(i.streamType))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5014,fnName:e})}},switchRole:{name:"role",required:!0,values:["anchor","audience"],validate(i,t,e){Ta(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(!fc)throw new Oe({code:ke.ENV_NOT_SUPPORTED,fnName:e,extraCode:5207});if(!this._room.enableSEI)throw new Oe({code:ke.INVALID_OPERATION,fnName:e,extraCode:5108});if(i.byteLength>1e3)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5017,messageParams:{key:t},fnName:e});Ta(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:ke.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:ke.INVALID_PARAMETER,extraCode:5018,fnName:e});if(i.byteLength===0)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5017,fnName:e,messageParams:{key:t}})}}},validate(i,t,e){if(Ta(this._room.isJoined,e),this._room.scene==="live"&&this._room.role==="audience")throw new Oe({code:ke.INVALID_OPERATION,extraCode:5107,fnName:e,messageParams:{key:t}})}},switchRoom:{name:"switchRoomConfig",type:"object",required:!0,validate(i,t,e){if(Ta(this._room.isJoined,e),this._room.useStringRoomId&&i.strRoomId===this._room.roomId||!this._room.useStringRoomId&&i.roomId===Number(this._room.roomId))throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5020,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId&&this._room.useStringRoomId||!i.roomId&&i.strRoomId&&!this._room.useStringRoomId)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5019,fnName:e,messageParams:{key:this._room.useStringRoomId?"strRoomId":"roomId"}});if(i.roomId)XT(i.roomId,e,t);else if(i.strRoomId)JT(i.strRoomId,e,t);else throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5015,fnName:e})},properties:{roomId:{type:"number"},strRoomId:{type:"string"},privateMapKey:{type:"string"},userSig:{type:"string",required:!0},autoSubscribeCount:{type:"number",min:0,max:50}}}},ur={TRTC:LR};var Or=class extends Error{};function PR(i,t){let e=Ns(i);for(let r=0;r<t.length;r++)Ei(e[r],t[r]);return e}function UR(i){this._resolve=Promise.resolve(i)}function VR(i){this._reject=Promise.reject(i)}var ns=class ns{constructor(t,e){this.instance=t;this.group=e;p(this,"started",!1);p(this,"ops",[]);p(this,"startSame",()=>!0);p(this,"mergeUpdate",PR);let r=ns.instances.get(t);r?r.set(e,this):ns.instances.set(t,new Map([[e,this]]))}static get(t,e){if(!e)return;let r=ns.instances.get(t);return r&&r.get(e)||new ns(t,e)}static gets(t,e){let r=ns.instances.get(t),o=[];return r&&r.forEach((s,n)=>{e.test(n)&&o.push(s)}),o}action(t,e,r){let o=a=>{var c;return t===0?this.started=!0:t===3&&(this.started=!1),this.ops.shift(),(c=this.currentOp)==null||c.action(),a},s=a=>{var c,d;throw this.ops.shift(),t===0&&((c=this.currentOp)==null?void 0:c.type)===2&&this.ops.shift().reject(new Or("start failed")),(d=this.currentOp)==null||d.action(),a},n={type:t,action:()=>e(...n.args).then(o,s),args:r,resolve:UR,reject:VR};try{switch(this.state){case 1:if(t===0)throw new Or("already started");break;case 4:if(t===2)throw new Or("not started");break;default:return this.cacheOp(n)}}catch(a){return Promise.reject(a)}return this.ops.push(n),n.promise=e(...n.args).then(o,s)}cacheOp(t){if(this.ops.length===1)switch(this.state){case 0:case 2:if(t.type===0)throw new Or("already start");break;case 3:switch(t.type){case 2:throw new Or("update not allowed when stopping");case 3:return this.currentOp.promise}break;default:throw new Or("unknown state")}else switch(t.type){case 3:switch(this.lastOpType){case 3:return this.lastOp.promise;default:let r=new Or("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 Or("update not allowed after stop")}break;case 0:switch(this.lastOpType){case 2:throw new Or("start not allowed after update");case 0:throw new Or("duplicate start");case 3:if(this.startSame(this.currentOp.args,t.args))throw this.ops.pop().reject(new Or("keep start")),new Or("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}};p(ns,"instances",new WeakMap);var vo=ns;var kl=new WeakMap,Ll=(i,t)=>{if(t instanceof Or){let{stack:e}=t;t=new Oe({code:ke.OPERATION_ABORT,message:`${i} abort: ${t.message}`,fnName:i}),e&&(t.stack+=e.substr(e.indexOf(`
|
|
97
|
+
`)))}throw t};function as(i,t){return ut((e,r)=>function(...o){let s=vo.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(Ll.bind(null,r))):e.apply(this,o)})}function hn(i,t){let{merge:e,debounce:r}=t||{};return ut((o,s)=>function(...n){let a=vo.get(this,typeof i=="string"?i:i.call(this,...n));if(!a)return o.apply(this,n);if(e&&(a.mergeUpdate=e.bind(this)),r&&r.isNeedToDebounce.apply(this,n)){let{delay:c,getKey:d}=r;return new Promise((m,l)=>{var T,E;let f=(T=kl.get(this))==null?void 0:T.get(d(...n));if(f){let{timeoutId:y,resolve:v}=f;clearTimeout(y),v()}let g=setTimeout(()=>{if(a.state===3||a.state===4)return m();a.action(2,o.bind(this),n).catch(Ll.bind(null,s)).then(m,l)},c);kl.has(this)?(E=kl.get(this))==null||E.set(d(...n),{timeoutId:g,resolve:m}):kl.set(this,new Map([[d(...n),{timeoutId:g,resolve:m}]]))})}return a.action(2,o.bind(this),n).catch(Ll.bind(null,s))})}function cs(i){return ut((t,e)=>function(...r){let o=typeof i=="function"?i.call(this,...r):i;if(o instanceof RegExp)return Promise.all(vo.gets(this,o).map(n=>n.action(3,()=>Promise.resolve(),r))).then(()=>t.call(this,...r));let s=vo.get(this,o);return s?s.action(3,t.bind(this),r).catch(Ll.bind(null,e)):t.apply(this,r)})}function ds(){return function(i,t,e){return i.prototype[t]=function(){let r=this._log||console,o=`"${t}" is a static method. Use TRTC.${t}() instead. See: ${Br}/en/TRTC.html#.${t}`;r.warn(o)},e}}var Ne={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",PERMISSION_STATE_CHANGE:"permission-state-change",VIDEO_SIZE_CHANGED:"video-size-changed"},YT=new Set([Ne.AUDIO_VOLUME,Ne.AUDIO_FRAME,Ne.NETWORK_QUALITY,Ne.STATISTICS,Ne.SEI_MESSAGE,Ne.CUSTOM_MESSAGE,Ne.LAYER_DATA]);var Uf={};eo(Uf,{ScheduleRequestType:()=>ey,getAbilityConfig:()=>FR,getScheduleDomain:()=>Vl,isNeedToSchedule:()=>Pl,scheduleProxy:()=>Qi,sendScheduleRequest:()=>Pf,setIsNeedToSchedule:()=>Ro,setScheduleProxy:()=>Ul});var Lf=null,KT=0,BR=48*3600*1e3,Pl=!0;typeof document!="undefined"&&document.head.insertAdjacentHTML("beforeend",Object.values(io).map(i=>`<link rel="dns-prefetch" href="https://${i}">`).join(`\r
|
|
98
|
+
`));function Ro(i){Nt(i)&&i!==Pl&&(Pl=i,se.info(`setIsNeedToSchedule ${i}`),i||(KT=Date.now()+BR))}ee.on("28",()=>Ro(!0));ee.on("63",()=>Ro(!0));ee.on("84",()=>Ro(!0));ee.on("201",i=>{i.state==="RECONNECTING"&&Ro(!0)});ee.on("202",i=>{i.state==="RECONNECTING"&&Ro(!0)});function $R(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=us(i,"config",j.MAIN),n=us(i,"config",j.BACKUP);for(let a of o)if(a.startTime>=e&&(a.name===s||a.name===n)&&a.transferSize>0){let c=a.name===s?j.MAIN:j.BACKUP,d=Math.round(a.duration),m=Math.round(a.domainLookupStart-a.startTime),l=a.redirectStart>0?Math.round(a.redirectEnd-a.redirectStart):0,f=a.fetchStart>0?Math.round(a.domainLookupStart-a.fetchStart):0,g=Math.round(a.domainLookupEnd-a.domainLookupStart),T=Math.round(a.requestStart-a.secureConnectionStart),E=Math.round(a.secureConnectionStart-a.connectStart),y=Math.round(a.responseStart-a.requestStart),v=Math.round(a.responseEnd-a.responseStart),M=[g,T,E,y,v];It.uploadEvent({log:`stat-schedule-net:${d}(${m}(${l}->${f})->${M.join("->")}) ${c}`,userId:t}),r=qe(be({},r),{totalCost:d,local:m,dns:g,tcp:E,tls:T,request:y,response:v});break}}catch(o){se.error("getScheduleDetailCost error",o)}return r}function Pf(d){return D(this,arguments,function*({userId:i,sdkAppId:t,useStringRoomId:e,roomId:r,userSig:o,version:s,frameWorkType:n,role:a,latencyLevel:c}){var l;if(!Pl&&Lf&&KT>Date.now())return{isCached:!0,result:Lf};let m={delta:0,count:[1,1],msg:[],detail:[]};try{let f=new FormData;f.append("userId",String(i)),f.append("sdkAppId",String(t)),f.append("isStrGroupId",String(e)),f.append("groupId",String(r)),f.append("sdkVersion",s),f.append("userSig",String(o));let g=((l=yield Us())==null?void 0:l.model)||Iu();g&&f.append("model",g);let T=ho();T&&f.append("osString",T),a&&f.append("role",String(a)),c&&f.append("latencyLevel",String(c)),n&&f.append("frameWorkType",String(n));let E=Xe(),y=yield WR(f,m,t);y.config&&(y.config.loggerDomain&&vs(y.config.loggerDomain),Nt(y.config.scheduleCache)&&Ro(!y.config.scheduleCache)),m.delta=Xe()-E;let v=$R(Number(t),i,E);return Lf=y,{isCached:!1,result:y,detailCost:v}}catch(f){let g=Gt(f)?f[0]:f,T=ft(g.code)?g.code:0,E=`schedule failed${g.message?`: ${g.message}`:""}`,y=new Me({code:Te.SCHEDULE_FAILED,extraCode:T,message:Et({key:_t.JOIN_ROOM_FAILED,data:{error:E,code:T}})});throw se.error(E,T),y}})}var Qi={main:"",backup:""};function Ul(i){Gt(i)?(Qi.main=i[0],Qi.backup=i[1]):Qi.main=i}var ey=(r=>(r.CONFIG="config",r.TRTC_AUTO_CONF="trtcAutoConf",r.AUDIO_AI_AUTH="audioAiAuth",r))(ey||{});function us(i,t,e=j.MAIN,r=!1){return`https://${Qi[e]||Vl(i,e,r)}/api/v1/${t}`}function FR(i,t,e){let r=us(i,t),o=us(i,t,j.BACKUP),s=new URLSearchParams(e).toString(),n=fetch(`${r}?${s}`).then(c=>c.json()),a=fetch(`${o}?${s}`).then(c=>c.json());return Fa([n,a])}function Vl(i,t=j.MAIN,e=!1){let r;return si(i)?e?r=t===j.MAIN?io.MAIN_OVERSEA_BACKUP:io.BACKUP_OVERSEA:r=t===j.MAIN?io.MAIN_OVERSEA:io.BACKUP_OVERSEA:r=t===j.MAIN?io.MAIN:io.BACKUP,r}function HR(i,t,e){return new Promise((r,o)=>{no({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 ZT=(i,t)=>Ho({retryFunction:HR,settings:{retries:3,timeout:0},onError:t,onRetrying:i});function WR(i,t,e){return new Promise((r,o)=>{let s=null;Fa([ZT(n=>t.count[0]=n+1,({error:n,retry:a,retriedCount:c,retryFuncArgs:d})=>{t.msg[0]=n.message,s||(c>=1&&(d[0]=us(e,"config",j.MAIN,!0)),a())})(us(e,"config",j.MAIN),i,{get timeout(){return Ds(2+t.count[0])*1e3}}),ZT(n=>t.count[1]=n+1,({error:n,retry:a,retriedCount:c,retryFuncArgs:d})=>{t.msg[1]=n.message,s||(c>=2&&(d[0]=us(e,"config",j.BACKUP,!0)),a())})(us(e,"config",j.BACKUP),i,{get timeout(){return Ds(2+t.count[1])*1e3}})]).then(n=>{s=n,r(s)}).catch(o)})}var GR=i=>i.startsWith("data:application/octet-stream;base64,"),zR=i=>i.startsWith("file://"),Qc=class{constructor(){p(this,"_log");this._log=se.createLogger({id:"fd"})}download(t,e){return D(this,null,function*(){let{type:r="blob"}=e||{};t=xs(t);try{let o=Xe(),s;if(Rt(fetch)?s=yield this.downloadWithFetch(t,r):s=yield this.downloadWithXHR(t,r),!s||!s.data)throw new Error("data is empty");let n=Xe()-o;return this._log.info(`downloaded: ${t}, return type: ${r}, cost: ${n}ms`),Se.addSuccessEvent({key:522700,cost:Xe()-o}),s.data}catch(o){throw this._log.error(`failed to download: ${t}, error: ${o}`),Se.addFailedEvent({key:522700,error:o}),o}})}downloadWithFetch(t,e){return D(this,null,function*(){this._log.info(`download with fetch: ${t}, return type: ${e}`);try{let r=yield fetch(t);if(!r.ok){let s=new Error(`network response was not ok: ${r.status}`);throw s.status=r.status,s}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=()=>{if(s.status===200||s.status===0&&s.response)r({data:s.response});else{let n=new Error(`XHR failed, status: ${s.status}`);n.status=s.status,o(n)}},s.onerror=o,s.send(null)})}loadWasm(t,e){return D(this,null,function*(){this._log.info(`loadWasm ${t}, importObject: ${JSON.stringify(e)}`);let r=Xe(),o=null,s=null;if(Rt(WebAssembly.instantiateStreaming)&&!GR(t)&&!zR(t)&&Rt(fetch))try{let n=fetch(t);o=(yield WebAssembly.instantiateStreaming(n,e)).instance}catch(n){s=n}if(!o)try{let n=yield this.download(t,{type:"arraybuffer"});o=(yield WebAssembly.instantiate(n,e)).instance}catch(n){s=n}if(o){let n=Xe()-r;return this._log.info(`loadedWasm ${t}, cost: ${n}ms`),Se.addSuccessEvent({key:522701,cost:n}),o}throw this._log.error(`failed to loadWasm ${t}, error: ${s}`),Se.addFailedEvent({key:522701,error:s}),s})}loadScript(t){this._log.info(`loadScript ${t}`);let e=Xe();return new Promise((r,o)=>{let s=document.createElement("script");s.type="text/javascript",s.onload=()=>{this._log.info(`loadedScript ${t}, cost: ${Xe()-e}ms`),Se.addSuccessEvent({key:522702,cost:Xe()-e,split:1e3}),r(s)},s.onerror=n=>{this._log.error(`failed to loadScript ${t}, error: ${(n==null?void 0:n.message)||JSON.stringify(n)}`),Se.addFailedEvent({key:522702}),o(n)},s.crossOrigin="anonymous",s.src=t,document.head.append?document.head.append(s):document.getElementsByTagName("head")[0].appendChild(s)})}};Ie([qs({settings:{timeout:0,retries:3},onError(t,e,r){var o;(t==null?void 0:t.status)===404||(o=t==null?void 0:t.message)!=null&&o.includes("404")?(this._log.warn("download 404, stop retry"),r(t)):e()},onRetrying(t){this._log.warn(`download retrying: ${t}`)}})],Qc.prototype,"download",1),Ie([qs({settings:{timeout:3e3,retries:3},onRetrying(t){this._log.warn(`loadScript retrying: ${t}`)}})],Qc.prototype,"loadScript",1);var Yc=new Qc;function ty({TRTC:i,room:t,errorModule:e,assetsPath:r}){return{TRTC:i,LocalMixVideoTrack:nn,LocalVideoTrack:Zr,LocalScreenTrack:zi,room:t,assetsPath:r,fileDownloader:Yc,innerEmitter:ee,INNER_EVENT:ce,constants:zh,environment:Qn,utils:uf,eventLogger:It,log:this.room.getLogger(),loggerManager:se,errorModule:e,kvStatManager:Se,rtcDectection:Jo,trtc:this,rx:af,enums:$m,schedule:Uf,getDevices:oa,initVisionTaskRegistry:(o,s="/mediapipe/vision.js")=>D(this,null,function*(){window.VisionTaskRegistry||(yield Yc.loadScript(`${o}/${s}`.replace(/([^:]\/)\/+/g,"$1"))),yield(yield window.VisionTaskRegistry.getInstance(o)).preloadModels([window.VisionTaskType.ImageSegmenter])}),audioContext:bt(),deviceDetector:$t,AudioPlayer:na,showAutoPlayDialog:ta,Timer:Jt,clearStarted:(o,s)=>{let n=o.getAlias(),a=vo.instances.get(this);if(a)if(s){let c=a.get(n+s);if(!c)return;c.started=!1}else a.forEach((c,d)=>{d.startsWith(n)&&(c.started=!1)})},startGetPCM:Vc,createAudioNode:Rc,getNetworkTimeOffset:Ng,validateSourceNode:()=>{var o;if(zt&&!((o=this.room.audioManager._localAudioPipline)!=null&&o.source.node))throw new Oe({code:ke.DEVICE_ERROR,extraCode:5310,message:"The audio processing plugin cannot be used due to the microphone's sampling rate is not 48KHz in Firefox. Please switch to another browser such as Chrome."})}}}var ry=(i,t)=>{let{emit:e}=i;return i.emit=(...r)=>{try{return e.apply(i,r)}catch(o){let s=Et({key:_t.CATCH_HANDLER_ERROR,data:{name:t,event:r[0]},addDocLink:!1});return se.warn(`${s}
|
|
98
99
|
|
|
99
|
-
${o.stack}`),!1}},i};var Xn=new WeakMap;function fT(i){let t=Xn.get(i);t&&(t.forEach(e=>clearTimeout(e)),Xn.delete(i))}function gT(i,t){return Pe((e,r)=>function(...o){let s=Xn.get(this);s||(s=new Map,Xn.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let d=setTimeout(()=>{var l;(l=Xn.get(this))==null||l.delete(n)},i);s.set(n,d)}else{clearTimeout(a);let d=window.setTimeout(()=>{var l;e.apply(this,o),(l=Xn.get(this))==null||l.delete(n)},i);s.set(n,d)}})}var _T="trtc-sdk-v5",sf="5.14.1-wasm.1";function Ht(...i){return Pe((t,e)=>function(...r){try{El.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function nf(...i){return Pe((t,e)=>function(...r){try{El.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function El(i,t,e,r){if(ut(i))for(let o=0;o<i.length;o++)gl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else gl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function gl({rule:i,value:t,key:e,fnName:r,className:o}){function s(d){return{code:ne.INVALID_PARAMETER,extraCode:d,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(O(t)){if(i.required)throw new oe(s(5001));if(O(i.defaultValue)){Xe(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let d=!1;for(let l=0;l<i.type.length;l++)i.type[l]===null&&t===null&&(d=!0),Xe(i.type[l])&&t instanceof i.type[l]&&(d=!0),Oe(i.type[l])&&pt(t)===i.type[l].toLowerCase()&&(d=!0);if(!d)throw new oe({code:ne.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(l=>as(l)?dn(l):Oe(l)?l:pt(l))},value:t}})}else if(!O(i.type)&&pt(t)!==i.type)throw new oe(s(5002));if(i.allowEmpty===!1){let d=Fe(t)&&(t===0||Number.isNaN(t)),l=Oe(t)&&t.trim()==="";if(d||l)throw new oe(s(5003))}if(i.notLessThanZero&&Fe(t)&&t<0)throw new oe(s(5006));if(!O(i.min)&&Fe(t)&&t<i.min)throw new oe(s(5007));if(!O(i.max)&&Fe(t)&&t>i.max)throw new oe(s(5008));if(Oe(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new oe(s(5004))}else if(Xe(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:n}=i;Xt(n)&&hr(t)&&Object.keys(n).forEach(d=>{gl.call(this,{rule:n[d],value:t&&t[d],key:`${d}`,fnName:r,className:o})});let{arrayItem:a}=i;Xt(a)&&ut(t)&&t.forEach((d,l)=>{gl.call(this,{rule:a,value:d,key:`${e}[${l}]`,fnName:r,className:o})}),Xe(i.validate)&&i.validate.call(this,t,e,r,o,this)}function st(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return Pe((n,a)=>function(...d){var y,R,N;function l(C,P,X){if(X&&X.includes(C))return"hided";if(e){let H=e(...d);if(d[H.argIndex]===P)return H.value}if(P===d||C in d)return P;try{return P instanceof HTMLElement?`id: ${P.id} type:${pt(P)}`:P instanceof MediaStreamTrack?wd(P):(JSON.stringify(P),P)}catch(H){return`type:${pt(P)}`}}let p=this._log||F;if(o!=null&&o(...d))return n.apply(this,d);d.length>0?p.info(`${a}() ${JSON.stringify(d,(C,P)=>l(C,P,["userSig","privateMapKey"]))}`):p.info(`${a}()`);let f=r?r(...d):uu[a],g=(s==null?void 0:s(...d))||!1;try{let C=n.apply(this,d),P=Te();if(fo(C)){let X=`${a.includes("Plugin")?`${((R=(y=d[0]).getName)==null?void 0:R.call(y))||""} `:" "}`;return C.then(H=>(p.info(`${a}() success ${X}${t.call(this,...d)}`),J.addSuccessEvent({key:f,cost:Te()-P}),H)).catch(H=>{var W;H=oe.convertFrom.call(this,H,a,d.length===1?d[0]:d);let ge=H.extraCode||H.code,Ue=(W=H.message)!=null&&W.includes(ge)?"":` code:${ge}`;throw g||p.error(`${a}() failed ${X}${t.call(this,...d)} ${H}${Ue} params: ${JSON.stringify(d,l)}`),J.addFailedEvent({key:f,error:H}),H})}return J.addSuccessEvent({key:f}),C}catch(C){C=oe.convertFrom.call(this,C,a);let P=C.extraCode||C.code,X=(N=C.message)!=null&&N.includes(P)?"":` code:${P}`;throw g||p.error(`${a}() failed ${C}${X} params: ${JSON.stringify(d,l)}`),J.addFailedEvent({key:f,error:C}),C}})}var _l=i=>Pe((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:ne.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Xe(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new oe({code:ne.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return El.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Tl=0,af,Yi=class Yi{constructor(t){this.core=t;m(this,"log");m(this,"customAudioReferenceMap",new Map);m(this,"audioRefId",0);m(this,"audioContext",ze());m(this,"localAudioWorkletNode");m(this,"screenAudioWorkletNode");m(this,"mixNode");m(this,"silentNode");Tl=Tl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Tl}`}),this.log.info(`created id=${this.getAlias()}${Tl}`),this.installEvent()}static getStartValidateRule(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&&!t.room.audioManager.hasScreenAudioTrack)throw new oe({code:ne.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return af||(af=this.doPreload(t)),af}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Gi(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Yi.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Yi.getStartValidateRule(this.core);case"update":return Yi.updateValidateRule;case"stop":return Yi.stopValidateRule}}start(t){return A(this,null,function*(){var g,y,R,N;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:d,enableDump:l,isLocalAudioNeedAudioProcess:p=!0,isScreenAudioNeedAudioProcess:f=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=p,this.core.room.audioManager.isScreenAudioNeedAudioProcess=f,!n)throw new oe({code:ne.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${n}/audioProcessor-wasm.js`),p&&!this.localAudioWorkletNode){let{sign:C,status:P,timestamp:X}=yield this.getAuthData(r,o,s);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,X,C,P,e)}if(f&&!this.screenAudioWorkletNode){let{sign:C,status:P,timestamp:X}=yield this.getAuthData(r,o,s);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,X,C,P,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(g=this.localAudioWorkletNode)==null||g.port.postMessage({type:"enable"}),(y=this.screenAudioWorkletNode)==null||y.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),O(a)||a.forEach(C=>{this.customAudioReferenceMap.set(C,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:C,refId:`o-${this.audioRefId++}`})}),O(d)||(R=this.localAudioWorkletNode)==null||R.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:d}}),O(l)||(N=this.localAudioWorkletNode)==null||N.port.postMessage({type:"dump",data:{enable:l}})})}update(t){return A(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;O(e)||(this.customAudioReferenceMap.forEach((d,l)=>{this.customAudioReferenceMap.delete(l),this.core.room.audioManager.updateAudioReference({type:"remove",refId:d})}),e.forEach(d=>{this.customAudioReferenceMap.set(d,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:d,refId:`o-${this.audioRefId++}`})})),O(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),O(r)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:r}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return A(this,null,function*(){var e,r;let{room:t}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(r=this.screenAudioWorkletNode)==null||r.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(t,e,r){return A(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:d}=yield WR({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${d}`),new oe({code:ne.INVALID_PARAMETER,message:d});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,d){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=l=>{var f;let{data:p}=l;switch(p.type){case"cost":let g=(p==null?void 0:p.value)>10?"info":"debug";this.log[g](`${e==="localAudio"?"":`[${e}] `}avg cost: ${p.value} max: ${p==null?void 0:p.max}(${Ks(new Date(p==null?void 0:p.maxCostTimestamp))}) hist: ${(f=p==null?void 0:p.hist)==null?void 0:f.join(" ")}`);return;case"log":this.log[p.logLevel](`${e==="localAudio"?"":`[${e}] `}${p.value}`);return;case"dump":U.emit("265",{room:d,data:p.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return A(this,null,function*(){var e;if(!(!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0))try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(r){this.log.warn(`audio processor auto start failed, error: ${r}`)}})}handleLocalAudioStopped(t){return A(this,null,function*(){var e;!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(t){return t===this.core.room}};m(Yi,"updateValidateRule",{type:"object"}),m(Yi,"stopValidateRule",{type:"object"}),m(Yi,"Name","AudioProcessor");var Il=Yi;function HR(i,t=M.MAIN){return`https://${gi[t]||fl(i,t)}/api/v1/audioAiAuth`}function WR(o){return A(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${HR(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}×tamp=${r}`,a=yield fetch(n),{data:{errCode:d,errMsg:l,sign:p,status:f}}=yield a.json();if(f==="1")return{auth:!0,sign:p,status:f,message:l};let g=Rr(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",y="Init RTCAudioProcessor failed.",R="";switch(d){case 1:R="Please check your params.";break;case 2:R=`You need to buy packages. Refer to: ${g}`;break;case 3:R="Server is invalid. Please contact our engineer. ";break;case 4:R=`Your packages is not active. Refer to: ${g}`;break;case 5:R=`Your packages is expired. Refer to: ${g}`;break;case 6:R="Your version is not supported.";break}return{auth:!1,status:f,message:l?`${y} Reason: ${l}. ${R}`:`${y}, ${R}`}})}var Sl=0,cf=class{constructor(t,e){m(this,"audioObjectURL");m(this,"player");m(this,"publisher");m(this,"mixInput");this.mixInput=new Mn(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&&(O(t.volume)||(this.volume=t.volume),O(t.loop)||(this.loop=t.loop),O(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)}}reload(t){return A(this,null,function*(){if(t.url){let e=yield Oc.download(t.url,{retries:3,type:"blob"});this.audioObjectURL&&URL.revokeObjectURL(this.audioObjectURL),this.audioObjectURL=URL.createObjectURL(e),this.player&&this.publisher?(this.player.src=this.audioObjectURL,this.publisher.src=this.audioObjectURL):(this.player=new Audio(this.audioObjectURL),this.player.crossOrigin="anonymous",this.publisher=new Audio(this.audioObjectURL),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher),this.updateListener(t),this.updateSettings(t))}else this.mixInput.replaceSource(t.track)})}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 Promise.all([(t=this.player)==null?void 0:t.play(),(e=this.publisher)==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 Qn(i,t){if(t&&typeof t!="function")throw new oe({code:ne.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var Ei=class Ei{constructor(t){this.core=t;m(this,"log");m(this,"mixedMusicMap",new Map);m(this,"cacheMusicMap",new Map);Sl=Sl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Sl}`}),this.log.info(`created id=${this.getAlias()}${Sl}`)}getName(){return Ei.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return Ei.startValidateRule;case"update":return Ei.updateValidateRule;case"stop":return Ei.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e}=this.core;this.core.validateSourceNode(),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 cf(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t);try{yield s.play()}catch(n){yield this.handleAutoPlayFailed(s,t,n)}this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),J.addEnum({key:502700,value:3}),this.kvUpload(t)})}handleAutoPlayFailed(t,e,r){return A(this,null,function*(){if(r.name==="NotSupportedError")this.log.error(`play failed, try to reload source. error: ${r}`),yield t.reload(e),yield t.play();else if(r.name==="NotAllowedError")if(this.core.room.enableAutoPlayDialog){let o=()=>{var s;(s=t.play())==null||s.finally(()=>{U.off("154",o,this)})};U.on("154",o,this),wn()}else this.core.trtc.emit(ie.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>A(this,null,function*(){return t.play()})});else throw r})}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 n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),O(r)||n.setOperation(r),O(o)||n.seek(o),this.kvUpload(t)})}stop(e){return A(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:a,onTimeUpdate:d,onDurationChange:l,onEnded:p}=t;e&&J.addCount({key:502009}),r&&J.addCount({key:502001}),o&&J.addCount({key:502002}),s&&J.addCount({key:502003}),n&&J.addCount({key:502004}),a&&J.addCount({key:502005}),typeof d!="function"&&J.addCount({key:502007}),typeof p!="function"&&J.addCount({key:502008}),typeof l!="function"&&J.addCount({key:502006})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId: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()}};m(Ei,"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"],n=o.split(".").pop(),a=s.indexOf(n)>=0,d=o.startsWith("blob"),l=o.startsWith("data");if(!(a||d||l))throw new oe({code:ne.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:ne.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});Qn("onTimeUpdate",t.onTimeUpdate),Qn("onEnded",t.onEnded),Qn("onDurationChange",t.onDurationChange)}}),m(Ei,"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){Qn("onTimeUpdate",t.onTimeUpdate),Qn("onEnded",t.onEnded),Qn("onDurationChange",t.onDurationChange)}}),m(Ei,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),m(Ei,"Name","AudioMixer");var yl=Ei;var Al=0,df,Zi=class Zi{constructor(t){this.core=t;m(this,"log");m(this,"audioContext",ze("denoiser"));m(this,"workletNode");m(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5});Al=Al+1,this.log=t.log.createChild({id:`${this.getAlias()}${Al}`}),this.log.info(`created id=${this.getAlias()}${Al}`)}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},mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new oe({code:ne.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return df||(df=this.doPreload(t)),df}doPreload(t){return A(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield Gi(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return Zi.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(t){switch(t){case"start":return Zi.startValidateRule(this.core);case"update":return Zi.updateValidateRule;case"stop":return Zi.stopValidateRule}}start(t){return A(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new oe({code:ne.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${o}/denoiser-wasm${Ih()?"":"-nosimd"}.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:d,message:l}=yield jR(r,_e(Y({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${l}`),new oe({code:ne.INVALID_PARAMETER,message:l});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:s,sign:a,status:d}}),this.workletNode.port.onmessage=p=>{var g;let{data:f}=p;if(f.type==="cost"){let y=(f==null?void 0:f.max)>20?"warn":(f==null?void 0:f.max)>10?"info":"debug";this.log[y](`avg cost: ${f.value} max: ${f==null?void 0:f.max}(${Ks(new Date(f==null?void 0:f.maxCostTimestamp))}) hist: ${(g=f==null?void 0:f.hist)==null?void 0:g.join(" ")}`)}else f.type==="log"&&this.log[f.logLevel](`${f.value}`)}}this.updateConfig(t),this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(t){return A(this,null,function*(){this.updateConfig(t)})}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)})}updateConfig(t){if(!this.workletNode)return;let e=!1;O(t.mode)||(t.mode===0?this.config.enableFarFieldReduce=!1:t.mode===1&&(this.config.enableFarFieldReduce=!0),e=!0),O(t.farFieldReduceThreshold)||(this.config.farFieldReduceThreshold=t.farFieldReduceThreshold,e=!0),e&&this.workletNode.port.postMessage({type:"setConfig",data:this.config})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};m(Zi,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),m(Zi,"stopValidateRule",{type:"object"}),m(Zi,"Name","AIDenoiser");var bl=Zi;function jR(s,n){return A(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:d,sign:l,status:p}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(p==="1")return{auth:!0,sign:l,status:p,message:d};let f=Rr(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",g="Init RTCAIDenoiser failed.",y="";switch(a){case 1:y="Please check your params.";break;case 2:y=`You need to buy packages. Refer to: ${f}`;break;case 3:y="Server is invalid. Please contact our engineer. ";break;case 4:y=`Your packages is not active. Refer to: ${f}`;break;case 5:y=`Your packages is expired. Refer to: ${f}`;break;case 6:y="Your version is not supported.";break}return{auth:!1,status:p,message:d?`${g} Reason: ${d}. ${y}`:`${g}, ${y}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var IT=bi(ki(),1);var uf=class extends IT.EventEmitter{constructor(){super();m(this,"observer");m(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&&!nt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){qe.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)&&F.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){qe.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},qR=new uf,lf=qR;function zR([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 a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new Os(new DataView(new Uint8Array(s).buffer),!0)}function JR(i){return i.type==="empty"||i.data.byteLength===0}function XR(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function QR(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 mf({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-QR(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(zR),s=o.reduce((p,f)=>p+f.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),d=new DataView(i.data),l=0;for(let p=0;p<o.length;p++)for(let f=0;f<o[p].dataView.byteLength;f++)a.setInt8(l++,o[p].dataView.getInt8(f));for(let p=0;p<i.data.byteLength;p++)a.setInt8(l++,d.getInt8(p));return i.data=n,i}function hf({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(JR(i)||!XR(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let d=e.getUint8(a);if(d===0)o++;else if(d===1){if(o===2||o===3){let l=a-o;if(s===-1?s=l:n===-1&&(n=l,r.push(new Os(new DataView(e.buffer.slice(s,n)))),s=l,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(l);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var pf=0,Mc=class Mc{constructor(t){this.core=t;m(this,"log");m(this,"_seiMessageList",[]);m(this,"_smallSeiMessageList",[]);m(this,"_subStreamSeiMessageList",[]);pf++,this.log=t.log.createChild({id:`${this.getAlias()}${pf}`}),this.log.info(`[sei] created id=${this.getAlias()}${pf}`),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 mf({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return hf({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(ie.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destroy"),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:Is?this.encode:mf,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:Is?this.decode:hf,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 Mc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};m(Mc,"autoStart",!0),m(Mc,"Name","SEI");var Rl=Mc;function ff({frame:i,onDump:t}){return t==null||t(),i}function gf({frame:i,onDump:t}){return t==null||t(),i}var ST={"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:
|
|
100
|
+
${o.stack}`),!1}},i};var ya=new WeakMap;function iy(i){let t=ya.get(i);t&&(t.forEach(e=>clearTimeout(e)),ya.delete(i))}function Zc(i,t){return ut((e,r)=>function(...o){let s=ya.get(this);s||(s=new Map,ya.set(this,s));let n=t(...o),a=s.get(n);if(!a||a<=0){e.apply(this,o);let c=setTimeout(()=>{var d;(d=ya.get(this))==null||d.delete(n)},i);s.set(n,c)}else{clearTimeout(a);let c=window.setTimeout(()=>{var d;e.apply(this,o),(d=ya.get(this))==null||d.delete(n)},i);s.set(n,c)}})}var sy="trtc-sdk-v5",Vf="5.14.1-wasm.2";function br(...i){return ut((t,e)=>function(...r){try{$l.call(this,i,r,e,this._name)}catch(o){return Promise.reject(o)}return t.apply(this,r)})}function Bf(...i){return ut((t,e)=>function(...r){try{$l.call(this,i,r,e,this._name)}catch(o){throw o}return t.apply(this,r)})}function $l(i,t,e,r){if(Gt(i))for(let o=0;o<i.length;o++)Bl.call(this,{rule:i[o],value:t[o],key:i[o].name,fnName:e,className:r});else Bl.call(this,{rule:i,value:t[0],key:i.name,fnName:e,className:r})}function Bl({rule:i,value:t,key:e,fnName:r,className:o}){function s(c){return{code:ke.INVALID_PARAMETER,extraCode:c,fnName:r,messageParams:{key:e,rule:i,value:t}}}if(z(t)){if(i.required)throw new Oe(s(5001));if(z(i.defaultValue)){Rt(i.validate)&&i.validate.call(this,t,e,r,o,this);return}t=i.defaultValue}if(Array.isArray(i.type)){let c=!1;for(let d=0;d<i.type.length;d++)i.type[d]===null&&t===null&&(c=!0),Rt(i.type[d])&&t instanceof i.type[d]&&(c=!0),nt(i.type[d])&&Xt(t)===i.type[d].toLowerCase()&&(c=!0);if(!c)throw new Oe({code:ke.INVALID_PARAMETER,extraCode:5002,fnName:r,messageParams:{key:e,rule:{type:i.type.map(d=>Os(d)?Ln(d):nt(d)?d:Xt(d))},value:t}})}else if(!z(i.type)&&Xt(t)!==i.type)throw new Oe(s(5002));if(i.allowEmpty===!1){let c=ft(t)&&(t===0||Number.isNaN(t)),d=nt(t)&&t.trim()==="";if(c||d)throw new Oe(s(5003))}if(i.notLessThanZero&&ft(t)&&t<0)throw new Oe(s(5006));if(!z(i.min)&&ft(t)&&t<i.min)throw new Oe(s(5007));if(!z(i.max)&&ft(t)&&t>i.max)throw new Oe(s(5008));if(nt(i.instanceOf)){if(!t||t._name!==i.instanceOf)throw new Oe(s(5004))}else if(Rt(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:n}=i;Nr(n)&&Xr(t)&&Object.keys(n).forEach(c=>{Bl.call(this,{rule:n[c],value:t&&t[c],key:`${c}`,fnName:r,className:o})});let{arrayItem:a}=i;Nr(a)&&Gt(t)&&t.forEach((c,d)=>{Bl.call(this,{rule:a,value:c,key:`${e}[${d}]`,fnName:r,className:o})}),Rt(i.validate)&&i.validate.call(this,t,e,r,o,this)}function Vt(i={}){let{getRemoteId:t=()=>"",replaceArg:e,getKVReportKey:r,ignoreLog:o,ignoreErrorLog:s}=i;return ut((n,a)=>function(...c){var g,T,E;function d(y,v,M){if(M&&M.includes(y))return"hided";if(e){let w=e(...c);if(c[w.argIndex]===v)return w.value}if(v===c||y in c)return v;try{return v instanceof HTMLElement?`id: ${v.id} type:${Xt(v)}`:v instanceof MediaStreamTrack?Kd(v):(JSON.stringify(v),v)}catch(w){return`type:${Xt(v)}`}}let m=this._log||se;if(o!=null&&o(...c))return n.apply(this,c);c.length>0?m.info(`${a}() ${JSON.stringify(c,(y,v)=>d(y,v,["userSig","privateMapKey"]))}`):m.info(`${a}()`);let l=r?r(...c):xu[a],f=(s==null?void 0:s(...c))||!1;try{let y=n.apply(this,c),v=Xe();if($o(y)){let M=`${a.includes("Plugin")?`${((T=(g=c[0]).getName)==null?void 0:T.call(g))||""} `:" "}`;return y.then(w=>(m.info(`${a}() success ${M}${t.call(this,...c)}`),Se.addSuccessEvent({key:l,cost:Xe()-v}),w)).catch(w=>{var P;w=Oe.convertFrom.call(this,w,a,c.length===1?c[0]:c);let H=w.extraCode||w.code,B=(P=w.message)!=null&&P.includes(H)?"":` code:${H}`;throw f||m.error(`${a}() failed ${M}${t.call(this,...c)} ${w}${B} params: ${JSON.stringify(c,d)}`),Se.addFailedEvent({key:l,error:w}),w})}return Se.addSuccessEvent({key:l}),y}catch(y){y=Oe.convertFrom.call(this,y,a);let v=y.extraCode||y.code,M=(E=y.message)!=null&&E.includes(v)?"":` code:${v}`;throw f||m.error(`${a}() failed ${y}${M} params: ${JSON.stringify(c,d)}`),Se.addFailedEvent({key:l,error:y}),y}})}var Fl=i=>ut((t,e)=>function(r,o){return D(this,null,function*(){let s=this._plugins.get(r);if(!s)throw this._log.error(`plugin ${String(r)} is not found`),new Oe({code:ke.OPERATION_ABORT,message:`plugin ${String(r)} is not found`,fnName:e});if(Rt(s.constructor.isSupported)&&!s.constructor.isSupported())throw this._log.error(`plugin ${String(r)} is not supported`),new Oe({code:ke.ENV_NOT_SUPPORTED,message:`plugin ${String(r)} is not supported`,extraCode:5210,fnName:e});return $l.call(this,s.getValidateRule(i),[o],e,"TRTC"),t.call(this,s,o)})});var Hl=0,$f,Co=class Co{constructor(t){this.core=t;p(this,"log");p(this,"customAudioReferenceMap",new Map);p(this,"audioRefId",0);p(this,"audioContext",bt());p(this,"localAudioWorkletNode");p(this,"screenAudioWorkletNode");p(this,"mixNode");p(this,"silentNode");Hl=Hl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Hl}`}),this.log.info(`created id=${this.getAlias()}${Hl}`),this.installEvent()}static getStartValidateRule(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&&!t.room.audioManager.hasScreenAudioTrack)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return $f||($f=this.doPreload(t)),$f}doPreload(t){return D(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield yo(this.audioContext,r)}catch(o){this.log.error(`preload audioProcessor failed. ${o}`)}finally{URL.revokeObjectURL(r)}})}getName(){return Co.Name}getAlias(){return"ap"}getGroup(){return"ap"}getValidateRule(t){switch(t){case"start":return Co.getStartValidateRule(this.core);case"update":return Co.updateValidateRule;case"stop":return Co.stopValidateRule}}start(t){return D(this,null,function*(){var f,g,T,E;let{room:e}=this.core,{sdkAppId:r,userId:o,userSig:s,assetsPath:n=this.core.assetsPath,audioReference:a,processLevel:c,enableDump:d,isLocalAudioNeedAudioProcess:m=!0,isScreenAudioNeedAudioProcess:l=!1}=t;if(this.core.room.audioManager.isLocalAudioNeedAudioProcess=m,this.core.room.audioManager.isScreenAudioNeedAudioProcess=l,!n)throw new Oe({code:ke.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${n}/audioProcessor-wasm.js`),m&&!this.localAudioWorkletNode){let{sign:y,status:v,timestamp:M}=yield this.getAuthData(r,o,s);this.localAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.localAudioWorkletNode,"localAudio",r,o,M,y,v,e)}if(l&&!this.screenAudioWorkletNode){let{sign:y,status:v,timestamp:M}=yield this.getAuthData(r,o,s);this.screenAudioWorkletNode=new AudioWorkletNode(this.audioContext,"trtc-audio-processor",{numberOfInputs:2,numberOfOutputs:1}),this.initWorkletNode(this.screenAudioWorkletNode,"screenAudio",r,o,M,y,v,e)}this.mixNode||(this.mixNode=this.audioContext.createGain(),this.mixNode.gain.value=1),this.silentNode||(this.silentNode=this.audioContext.createConstantSource(),this.silentNode.offset.setValueAtTime(0,this.audioContext.currentTime),this.silentNode.start()),(f=this.localAudioWorkletNode)==null||f.port.postMessage({type:"enable"}),(g=this.screenAudioWorkletNode)==null||g.port.postMessage({type:"enable"}),e.audioManager.addAudioProcessor(this.mixNode,this.silentNode,this.localAudioWorkletNode,this.screenAudioWorkletNode),z(a)||a.forEach(y=>{this.customAudioReferenceMap.set(y,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:y,refId:`o-${this.audioRefId++}`})}),z(c)||(T=this.localAudioWorkletNode)==null||T.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:c}}),z(d)||(E=this.localAudioWorkletNode)==null||E.port.postMessage({type:"dump",data:{enable:d}})})}update(t){return D(this,null,function*(){var s,n,a;let{audioReference:e,enableDump:r,processLevel:o}=t;z(e)||(this.customAudioReferenceMap.forEach((c,d)=>{this.customAudioReferenceMap.delete(d),this.core.room.audioManager.updateAudioReference({type:"remove",refId:c})}),e.forEach(c=>{this.customAudioReferenceMap.set(c,`o-${this.audioRefId++}`),this.core.room.audioManager.updateAudioReference({type:"add",audioReference:c,refId:`o-${this.audioRefId++}`})})),z(o)||(s=this.localAudioWorkletNode)==null||s.port.postMessage({type:"setConfig",data:{aecEnable:1,aecNlpLevel:o}}),z(r)||((n=this.localAudioWorkletNode)==null||n.port.postMessage({type:"dump",data:{enable:r}}),(a=this.screenAudioWorkletNode)==null||a.port.postMessage({type:"dump",data:{enable:r}}))})}stop(){return D(this,null,function*(){var e,r;let{room:t}=this.core;(e=this.localAudioWorkletNode)==null||e.port.postMessage({type:"disable"}),(r=this.screenAudioWorkletNode)==null||r.port.postMessage({type:"disable"}),yield t.audioManager.removeAudioProcessor(this.localAudioWorkletNode,this.screenAudioWorkletNode)})}destroy(){this.localAudioWorkletNode&&(this.localAudioWorkletNode.port.onmessage=null),this.screenAudioWorkletNode&&(this.screenAudioWorkletNode.port.onmessage=null),this.uninstallEvent()}getAuthData(t,e,r){return D(this,null,function*(){let o=String(Date.now()).slice(0,-3),{auth:s,sign:n,status:a,message:c}=yield qR({sdkAppId:t,userSig:r,userId:e,timestamp:o});if(!s)throw this.log.info(`audioProcessor: ${e} auth result: ${s}. Message: ${c}`),new Oe({code:ke.INVALID_PARAMETER,message:c});return{sign:n,status:a,timestamp:o}})}initWorkletNode(t,e,r,o,s,n,a,c){t.port.postMessage({type:"init",data:{sdkAppId:String(r),userId:o,timestamp:s,sign:n,status:a}}),t.port.onmessage=d=>{var l;let{data:m}=d;switch(m.type){case"cost":let f=(m==null?void 0:m.value)>10?"info":"debug";this.log[f](`${e==="localAudio"?"":`[${e}] `}avg cost: ${m.value} max: ${m==null?void 0:m.max}(${Rn(new Date(m==null?void 0:m.maxCostTimestamp))}) hist: ${(l=m==null?void 0:m.hist)==null?void 0:l.join(" ")}`);return;case"log":this.log[m.logLevel](`${e==="localAudio"?"":`[${e}] `}${m.value}`);return;case"dump":ee.emit("265",{room:c,data:m.value,type:e==="localAudio"?"dump":"dump-screen-audio"});return}}}handleLocalAudioStarted(t){return D(this,null,function*(){var e;if(!(!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0))try{yield this.core.trtc.startPlugin("AudioProcessor",{sdkAppId:this.core.room.sdkAppId,userId:this.core.room.userId,userSig:this.core.room.userSig}),this.log.warn("audio processor auto start success")}catch(r){this.log.warn(`audio processor auto start failed, error: ${r}`)}})}handleLocalAudioStopped(t){return D(this,null,function*(){var e;!this.hitTest(t.room)||((e=this.core.room.scheduleResult.config)==null?void 0:e.audioProcessor)!==!0||(yield this.core.trtc.stopPlugin("AudioProcessor"))})}installEvent(){this.core.innerEmitter.on("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.on("114",this.handleLocalAudioStopped,this)}uninstallEvent(){this.core.innerEmitter.off("104",this.handleLocalAudioStarted,this),this.core.innerEmitter.off("114",this.handleLocalAudioStopped,this)}hitTest(t){return t===this.core.room}};p(Co,"updateValidateRule",{type:"object"}),p(Co,"stopValidateRule",{type:"object"}),p(Co,"Name","AudioProcessor");var Wl=Co;function jR(i,t=j.MAIN){return`https://${Qi[t]||Vl(i,t)}/api/v1/audioAiAuth`}function qR(o){return D(this,arguments,function*({sdkAppId:i,userId:t,userSig:e,timestamp:r}){let n=`${jR(i)}?sdkAppId=${i}&userId=${t}&userSig=${e}×tamp=${r}`,a=yield fetch(n),{data:{errCode:c,errMsg:d,sign:m,status:l}}=yield a.json();if(l==="1")return{auth:!0,sign:m,status:l,message:d};let f=si(i)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",g="Init RTCAudioProcessor failed.",T="";switch(c){case 1:T="Please check your params.";break;case 2:T=`You need to buy packages. Refer to: ${f}`;break;case 3:T="Server is invalid. Please contact our engineer. ";break;case 4:T=`Your packages is not active. Refer to: ${f}`;break;case 5:T=`Your packages is expired. Refer to: ${f}`;break;case 6:T="Your version is not supported.";break}return{auth:!1,status:l,message:d?`${g} Reason: ${d}. ${T}`:`${g}, ${T}`}})}var Gl=0,Ff=class{constructor(t,e){p(this,"audioObjectURL");p(this,"player");p(this,"publisher");p(this,"mixInput");this.mixInput=new ia(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&&(z(t.volume)||(this.volume=t.volume),z(t.loop)||(this.loop=t.loop),z(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)}}reload(t){return D(this,null,function*(){if(t.url){let e=yield Yc.download(t.url,{retries:3,type:"blob"});this.audioObjectURL&&URL.revokeObjectURL(this.audioObjectURL),this.audioObjectURL=URL.createObjectURL(e),this.player&&this.publisher?(this.player.src=this.audioObjectURL,this.publisher.src=this.audioObjectURL):(this.player=new Audio(this.audioObjectURL),this.player.crossOrigin="anonymous",this.publisher=new Audio(this.audioObjectURL),this.publisher.crossOrigin="anonymous",this.mixInput.replaceSource(this.publisher),this.updateListener(t),this.updateSettings(t))}else this.mixInput.replaceSource(t.track)})}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 Promise.all([(t=this.player)==null?void 0:t.play(),(e=this.publisher)==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 Sa(i,t){if(t&&typeof t!="function")throw new Oe({code:ke.INVALID_PARAMETER,message:`start audioMixer plugin: param ${i} should be a function.`})}var Yi=class Yi{constructor(t){this.core=t;p(this,"log");p(this,"mixedMusicMap",new Map);p(this,"cacheMusicMap",new Map);Gl=Gl+1,this.log=t.log.createChild({id:`${this.getAlias()}${Gl}`}),this.log.info(`created id=${this.getAlias()}${Gl}`)}getName(){return Yi.Name}getAlias(){return"ax"}getGroup(t){return t==null?void 0:t.id}getValidateRule(t){switch(t){case"start":return Yi.startValidateRule;case"update":return Yi.updateValidateRule;case"stop":return Yi.stopValidateRule}}start(t){return D(this,null,function*(){let{room:e}=this.core;this.core.validateSourceNode(),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 Ff(t,e.audioManager),this.cacheMusicMap.set(r,s)),s.updateListener(t),s.updateSettings(t);try{yield s.play()}catch(n){yield this.handleAutoPlayFailed(s,t,n)}this.mixedMusicMap.set(r,s),s.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"add",audioReference:s.mixInput.source.node,refId:`ax-${r}`}),this.log.info(`start mix audio track ${r} success.`),Se.addEnum({key:502700,value:3}),this.kvUpload(t)})}handleAutoPlayFailed(t,e,r){return D(this,null,function*(){if(r.name==="NotSupportedError")this.log.error(`play failed, try to reload source. error: ${r}`),yield t.reload(e),yield t.play();else if(r.name==="NotAllowedError")if(this.core.room.enableAutoPlayDialog){let o=()=>{var s;(s=t.play())==null||s.finally(()=>{ee.off("154",o,this)})};ee.on("154",o,this),ta()}else this.core.trtc.emit(Ne.AUTOPLAY_FAILED,{userId:"",mediaType:"audio",resume:()=>D(this,null,function*(){return t.play()})});else throw r})}update(t){return D(this,null,function*(){let{id:e,operation:r,seekFrom:o,playbackRate:s}=t;this.log.info(`update music source, ${JSON.stringify(t)}`);let n=this.mixedMusicMap.get(e);if(!n){this.log.warn(`update music source failed, music id: ${e} not found.`);return}n.updateSettings(t),n.updateListener(t),z(r)||n.setOperation(r),z(o)||n.seek(o),this.kvUpload(t)})}stop(e){return D(this,arguments,function*({id:t}){if(this.mixedMusicMap.has(t)){this.log.info(`remove music source, music id: ${t}`);let r=this.mixedMusicMap.get(t);r!=null&&r.mixInput.source.node&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:r.mixInput.source.node,refId:`ax-${t}`}),r==null||r.stop(),this.mixedMusicMap.delete(t)}t==="*"&&this.destroyAllMusic()})}kvUpload(t){let{track:e,loop:r,volume:o,playbackRate:s,operation:n,seekFrom:a,onTimeUpdate:c,onDurationChange:d,onEnded:m}=t;e&&Se.addCount({key:502009}),r&&Se.addCount({key:502001}),o&&Se.addCount({key:502002}),s&&Se.addCount({key:502003}),n&&Se.addCount({key:502004}),a&&Se.addCount({key:502005}),typeof c!="function"&&Se.addCount({key:502007}),typeof m!="function"&&Se.addCount({key:502008}),typeof d!="function"&&Se.addCount({key:502006})}destroyAllMusic(){this.log.info("destroy all music source."),this.mixedMusicMap.forEach((t,e)=>{t!=null&&t.mixInput.track&&this.core.room.audioManager.updateAudioReference({type:"remove",audioReference:t.mixInput.track,refId: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()}};p(Yi,"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"],n=o.split(".").pop(),a=s.indexOf(n)>=0,c=o.startsWith("blob"),d=o.startsWith("data");if(!(a||c||d))throw new Oe({code:ke.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:ke.INVALID_PARAMETER,message:"start audioMixer plugin: param url or track is required.",fnName:r});Sa("onTimeUpdate",t.onTimeUpdate),Sa("onEnded",t.onEnded),Sa("onDurationChange",t.onDurationChange)}}),p(Yi,"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){Sa("onTimeUpdate",t.onTimeUpdate),Sa("onEnded",t.onEnded),Sa("onDurationChange",t.onDurationChange)}}),p(Yi,"stopValidateRule",{name:"options",type:"object",required:!0,properties:{id:{type:"string",required:!0}}}),p(Yi,"Name","AudioMixer");var zl=Yi;var jl=0,Hf,wo=class wo{constructor(t){this.core=t;p(this,"log");p(this,"audioContext",bt("denoiser"));p(this,"workletNode");p(this,"config",{enableFarFieldReduce:!1,farFieldReduceThreshold:.5});jl=jl+1,this.log=t.log.createChild({id:`${this.getAlias()}${jl}`}),this.log.info(`created id=${this.getAlias()}${jl}`)}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},mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}},validate(e,r,o,s){if(!t.room.audioManager.hasAudioTrack)throw new Oe({code:ke.INVALID_OPERATION,extraCode:5106,fnName:o})}}}preload(t){return Hf||(Hf=this.doPreload(t)),Hf}doPreload(t){return D(this,null,function*(){let e=yield this.core.fileDownloader.download(t,{type:"blob"}),r=URL.createObjectURL(e);try{yield yo(this.audioContext,r)}catch(o){throw this.log.error("load worklet failed",o),o}finally{URL.revokeObjectURL(r)}})}getName(){return wo.Name}getAlias(){return"ad"}getGroup(){return"AIDenoiser"}getValidateRule(t){switch(t){case"start":return wo.startValidateRule(this.core);case"update":return wo.updateValidateRule;case"stop":return wo.stopValidateRule}}start(t){return D(this,null,function*(){let{room:e,schedule:r}=this.core,{assetsPath:o=this.core.assetsPath}=t;if(!o)throw new Oe({code:ke.INVALID_PARAMETER,message:"you need to deploy the assets of the npm package and set assetsPath param in TRTC.create()"});if(this.core.validateSourceNode(),yield this.preload(`${o}/denoiser-wasm${Km()?"":"-nosimd"}.js`),!this.workletNode){let s=String(Date.now()).slice(0,-3),{auth:n,sign:a,status:c,message:d}=yield JR(r,qe(be({},t),{timestamp:s}));if(!n)throw this.log.info(`RTCAIDenoiser: ${t.userId} auth result: ${n}. Message: ${d}`),new Oe({code:ke.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:s,sign:a,status:c}}),this.workletNode.port.onmessage=m=>{var f;let{data:l}=m;if(l.type==="cost"){let g=(l==null?void 0:l.max)>20?"warn":(l==null?void 0:l.max)>10?"info":"debug";this.log[g](`avg cost: ${l.value} max: ${l==null?void 0:l.max}(${Rn(new Date(l==null?void 0:l.maxCostTimestamp))}) hist: ${(f=l==null?void 0:l.hist)==null?void 0:f.join(" ")}`)}else l.type==="log"&&this.log[l.logLevel](`${l.value}`)}}this.updateConfig(t),this.workletNode.port.postMessage({type:"enable"}),e.audioManager.addDenoiser(this.workletNode),e.sendAbilityStatus({ai_denoise:1})})}update(t){return D(this,null,function*(){this.updateConfig(t)})}stop(){return D(this,null,function*(){if(!this.workletNode)return;let{room:t}=this.core;this.workletNode.port.postMessage({type:"disable"}),yield t.audioManager.removeDenoiser(this.workletNode)})}updateConfig(t){if(!this.workletNode)return;let e=!1;z(t.mode)||(t.mode===0?this.config.enableFarFieldReduce=!1:t.mode===1&&(this.config.enableFarFieldReduce=!0),e=!0),z(t.farFieldReduceThreshold)||(this.config.farFieldReduceThreshold=t.farFieldReduceThreshold,e=!0),e&&this.workletNode.port.postMessage({type:"setConfig",data:this.config})}destroy(){this.workletNode&&(this.workletNode.port.onmessage=null)}};p(wo,"updateValidateRule",{type:"object",properties:{mode:{type:"number",required:!1,values:[0,1]},farFieldReduceThreshold:{type:"number",required:!1,min:0,max:1}}}),p(wo,"stopValidateRule",{type:"object"}),p(wo,"Name","AIDenoiser");var ql=wo;function JR(s,n){return D(this,arguments,function*(i,{sdkAppId:t,userId:e,userSig:r,timestamp:o}){try{let{data:{errCode:a,errMsg:c,sign:d,status:m}}=yield i.getAbilityConfig(t,i.ScheduleRequestType.AUDIO_AI_AUTH,{sdkAppId:t,userId:e,userSig:r,timestamp:o});if(m==="1")return{auth:!0,sign:d,status:m,message:c};let l=si(t)?"https://trtc.io/document/42734?platform=web&product=rtcengine&menulabel=coresdk":"https://cloud.tencent.com/document/product/647/44247",f="Init RTCAIDenoiser failed.",g="";switch(a){case 1:g="Please check your params.";break;case 2:g=`You need to buy packages. Refer to: ${l}`;break;case 3:g="Server is invalid. Please contact our engineer. ";break;case 4:g=`Your packages is not active. Refer to: ${l}`;break;case 5:g=`Your packages is expired. Refer to: ${l}`;break;case 6:g="Your version is not supported.";break}return{auth:!1,status:m,message:c?`${f} Reason: ${c}. ${g}`:`${f}, ${g}`}}catch(a){return{auth:!1,status:"0",message:`Init RTCAIDenoiser failed. All requests failed. ${a}`}}})}var ay=Li(mo(),1);var Wf=class extends ay.EventEmitter{constructor(){super();p(this,"observer");p(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 D(this,null,function*(){if(!this.observer)try{"PressureObserver"in window&&!Bt&&(this.observer=new PressureObserver(this.onPressureChange),yield this.observer.observe("cpu",{sampleInterval:2e3}))}catch(e){It.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)&&se.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){It.uploadEvent({log:"stat-pressure-detector-destroy-failed",error:r})}}},QR=new Wf,Gf=QR;function YR([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 a=0;a<r;a++)s.push(255);s.push(o);let n=new DataView(t);return s.push(...new Uint8Array(n.buffer)),s.push(128),new rn(new DataView(new Uint8Array(s).buffer),!0)}function ZR(i){return i.type==="empty"||i.data.byteLength===0}function KR(i){return i.getInt32(0)===1&&i.getInt8(4)===6}function e0(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 zf({frame:i,seiMessageList:t}){if(!t||t.length===0||i.data.byteLength===0)return i;let r=9-e0(i.data);if(r<=0)return i;let o=t.splice(0,r).reverse().map(YR),s=o.reduce((m,l)=>m+l.dataView.byteLength,0),n=new ArrayBuffer(s+i.data.byteLength),a=new DataView(n),c=new DataView(i.data),d=0;for(let m=0;m<o.length;m++)for(let l=0;l<o[m].dataView.byteLength;l++)a.setInt8(d++,o[m].dataView.getInt8(l));for(let m=0;m<i.data.byteLength;m++)a.setInt8(d++,c.getInt8(m));return i.data=n,i}function jf({frame:i,onSEI:t}){try{let e=new DataView(i.data);if(ZR(i)||!KR(e))return i;let r=[],o=0,s=-1,n=-1;for(let a=0;a<i.data.byteLength;a++){let c=e.getUint8(a);if(c===0)o++;else if(c===1){if(o===2||o===3){let d=a-o;if(s===-1?s=d:n===-1&&(n=d,r.push(new rn(new DataView(e.buffer.slice(s,n)))),s=d,n=-1),!(e.getUint8(a+1)===6)){i.data=e.buffer.slice(d);break}}o=0}else o=0}t==null||t(r.reverse())}catch(e){}return i}var qf=0,Kc=class Kc{constructor(t){this.core=t;p(this,"log");p(this,"_seiMessageList",[]);p(this,"_smallSeiMessageList",[]);p(this,"_subStreamSeiMessageList",[]);qf++,this.log=t.log.createChild({id:`${this.getAlias()}${qf}`}),this.log.info(`[sei] created id=${this.getAlias()}${qf}`),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 zf({frame:t,seiMessageList:r})}catch(r){this.log.warn(r)}return t}decode({frame:t,track:e}){return jf({frame:t,onSEI:r=>{r.forEach(o=>{this.core.trtc.emit(Ne.SEI_MESSAGE,{seiPayloadType:o.seiPayloadType,data:o.seiPayload.buffer,userId:e.userId,streamType:e.mediaType===2?"sub":"main"})})}})}destroy(){this.log.debug("destroy"),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:zs?this.encode:zf,type:2}),this.core.room.videoManager.addDecodeProcessor({processor:zs?this.decode:jf,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 Kc.Name}getAlias(){return"sei"}getGroup(){return"sei"}};p(Kc,"autoStart",!0),p(Kc,"Name","SEI");var Xl=Kc;function Xf({frame:i,onDump:t}){return t==null||t(),i}function Jf({frame:i,onDump:t}){return t==null||t(),i}function Qf({frame:i,onDump:t}){return t==null||t(),i}function Yf({frame:i,onDump:t}){return t==null||t(),i}var cy=()=>{let i=window.navigator&&window.navigator.userAgent||"",t=/iPad/i.test(i)||/iPhone/i.test(i),e=/Android/i.test(i);return t||e},Ke={LOG_BUTTON:"Log",NETWORK_BUTTON:"Network",DUMP_BUTTON:"Dump",DUMPING_BUTTON:"Dumping",END_BUTTON:"End",UPLOAD_BUTTON:"Upload Log",EXPORT_BUTTON:"Export Log",HIDE_BUTTON:"Hide",GO_BOTTOM:"goBottom",BACK_TOP:"backTop",CLEAR_LOG:"Clear Log",UPLINK:"Uplink",DOWNLINK:"Downlink",NO_DATA:"No Data",BASIC:"Basic",DURATION:"Duration",VIDEO:"Video",AUDIO:"Audio",SCREEN:"Screen"},dy=i=>i.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d").replace(">",">").replace(">","<"),ls={"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:
|
|
100
101
|
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.
|
|
101
102
|
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:
|
|
102
103
|
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.
|
|
103
|
-
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=>{ST[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var AB=Object.keys(ST);var YR=0,vl,xc=class xc{constructor(t){this.core=t;m(this,"_core");m(this,"log");m(this,"dumpLocalVideoMap",{});m(this,"dumpRemoteVideoMap",{});m(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++YR}`}),this.log.info("created")}getName(){return xc.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(e){return A(this,arguments,function*({visible:t}){t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor())})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor()}destroy(){this.stop()}openDebugDiaLog(){return A(this,null,function*(){var t;if(!this.dialog)try{if(vl)yield vl;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${_T}@${ht}/assets/debug-dialog.js`;vl=this._core.fileDownloader.loadScript(e),yield vl}this.dialog=new TRTCDebugDialog(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):ff,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):gf,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}encodeVideo({frame:t,mediaType:e}){return ff({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return gf({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};m(xc,"Name","Debug"),m(xc,"autoStart",!0);var Cl=xc;var yT=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},Nl=class{constructor(t,e,r){m(this,"trackDoneOB");m(this,"startOB");m(this,"stopOB");m(this,"inputFrameCount",0);m(this,"decodedFrameCount",0);m(this,"type","auto");m(this,"config");m(this,"decoder");m(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=ye(e,ue.INIT),this.stopOB=At(),this.startOB=At(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=At(),a=d=>{let l=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ae(l,Je(this.stopOB),Le(()=>{},p=>{e.log.error(p),o.addFailedEvent({key:yT(this.type),error:p}),d>4?this.startOB.error(p):this.startOB.next(d+1)})),Ae(l,Qr(1),Ap(pc))};Ae(this.startOB,mc(0),ui(a),Je(this.stopOB),Le(()=>{e.player.setOutput(),n.next("STARTED")},d=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:yT(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 ji()(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"}))}},ZR={type:"object"},Pc=class Pc{constructor(t){this.core=t;m(this,"log");m(this,"contextMap",new Map);m(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return Pc.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return Pc.Name}getValidateRule(t){return ZR}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 Nl(this.core,r,t);return Ae(o.trackDoneOB,Qr(1),Le(()=>{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 Nl(this.core,t.track,t))}}};m(Pc,"Name","TRTCAudioDecoder");var Lc=Pc;var Dl=class{constructor(){m(this,"log");this.log=F.createLogger({id:"exp"})}call(t,e){return A(this,null,function*(){return Xe(this[t])?this[t](e):Promise.reject(new se({code:q.INVALID_PARAMETER,message:We({key:He.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return A(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:d}=e.room,{getPCMAbortCtrlMap:l,audioFrameEventConfigMap:p}=d;if(p.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isAvailable){if(l.get(f.userId))return;let g=d.getPCM(y=>{e.emit(ie.AUDIO_FRAME,y)},f.userId);l.set(f.userId,g)}});else{if(l.get(o))return;let f=d.getPCM(g=>{e.emit(ie.AUDIO_FRAME,g)},o);l.set(o,f)}else if(o==="*")e.room.remotePublishedUserMap.forEach(f=>{if(f.remoteAudioTrack.isSubscribed){let{userId:g}=f,y=l.get(g);y==null||y.abort("disable"),l.delete(g)}});else{let f=l.get(o);f==null||f.abort("disable"),l.delete(o)}})}resumeRemotePlayer(t){return A(this,null,function*(){if(t.userId==="*"){let r=[];return t.trtcInstance.room.remotePublishedUserMap.forEach(o=>{let{remoteAudioTrack:s,remoteVideoTrack:n,remoteAuxiliaryTrack:a}=o;t.streamType?t.streamType==="main"?(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume())):a.isAvailable&&r.push(a.player.resume()):(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume()),a.isAvailable&&r.push(a.player.resume()))}),Promise.all(r)}let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);if(e)return t.streamType==="main"?Promise.all([e.remoteAudioTrack.player.resume(),e.remoteVideoTrack.player.resume()]):e.remoteAuxiliaryTrack.player.resume()})}pauseRemotePlayer(t){if(t.userId==="*")t.trtcInstance.room.remotePublishedUserMap.forEach(e=>{let{remoteAudioTrack:r,remoteVideoTrack:o,remoteAuxiliaryTrack:s}=e;t.streamType?t.streamType==="main"?(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause()):s.isAvailable&&s.player.pause():(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause(),s.isAvailable&&s.player.pause())});else{let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);e&&(t.streamType==="main"?(e.remoteAudioTrack.player.pause(),e.remoteVideoTrack.player.pause()):e.remoteAuxiliaryTrack.player.pause())}}};Z([o_({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],Dl.prototype,"enableAudioFrameEvent",1);var AT=new Dl;var bT=bi(ki(),1);var Ef=class extends bT.EventEmitter{constructor(){super();m(this,"states",{});m(this,"permissionChangeHandler");m(this,"log");this.log=F.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,r;this.emit("permission-state-change",{camera:(e=this.states.camera)==null?void 0:e.state,microphone:(r=this.states.microphone)==null?void 0:r.state})}}request(e){return A(this,null,function*(){if(this.log.info(`request ${e.join(", ")}`),e.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(o=>o.stop())})}get(e){return A(this,null,function*(){try{return this.states[e]||(this.states[e]=yield navigator.permissions.query({name:e}),this.states[e].addEventListener("change",this.permissionChangeHandler)),this.log.info(`get ${e} permission state: ${this.states[e].state}`),this.states[e].state}catch(r){return this.log.error(`get ${e} permission failed, error: ${r instanceof Error?r.message:r}`),null}})}destroy(){Object.values(this.states).forEach(e=>{e==null||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},kc=new Ef;var RT=0,Uc=new Set,Lt=null;om(sf);Rn.checkStorage();var pe=class pe extends vT.EventEmitter{constructor(e,r){super();m(this,"_room");m(this,"_eventListened",new Set);m(this,"_localVideoTrack",null);m(this,"_localAudioTrack",null);m(this,"_localScreenTrack",null);m(this,"_localScreenAudioTrack",null);m(this,"_localVideoConfig",null);m(this,"_localScreenConfig",null);m(this,"_localAudioConfig",null);m(this,"_remoteVideoConfigMap",new Map);m(this,"_remoteAudioConfigMap",new Map);m(this,"_remoteAudioVolumeMap",new Map);m(this,"_remoteAudioMuteMap",new Map);m(this,"_mediaTrackMap",new WeakMap);m(this,"_log",F.createLogger({id:`t${++RT}`}));m(this,"_plugins",new Map);m(this,"_networkQuality",null);m(this,"_speakerId");m(this,"enterRoomParams");m(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(Y({logger:this._log,frameWorkType:pe.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Ye(r.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=r.enableAutoSwitchWhenRecapturing),this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.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(yl,r.assetsPath),this._use(Il,r.assetsPath),this._use(bl,r.assetsPath),this._use(Lc,r.assetsPath),this._use(Cl),r.enableSEI&&Xa&&this._use(Rl),this._room.on("audio-volume",o=>{var s,n;!o.find(a=>a.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(((s=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?s:this._localAudioTrack.getAudioLevel())*100),floatVolume:(n=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?n:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(a=>{var l;let d=a.userId===""?this._localAudioTrack:(l=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:l.remoteAudioTrack;d&&(a.volume=d.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var l;let d=a.userId===""?this._localAudioTrack:(l=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:l.remoteAudioTrack;d&&(a.volume=d.dbVolume)}),this.emit(ie.AUDIO_VOLUME,{result:o.sort((a,d)=>d.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new oe({code:ne.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),pT(this,"trtc")}static create(e){}static _create(e,r){Z_();let o=new pe(e,r||{});return Uc.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){Ft(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(ie.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(ie.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{Qi(!0),this._exitRoom().finally(()=>{this.emit(ie.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(ie.ERROR,oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(ie.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=_e(Y({},e),{uplinkRTT:Math.min(e.uplinkRTT,_a),downlinkRTT:Math.min(e.downlinkRTT,_a)});this.emit(ie.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{Ft(o,o).add("player-state-changed",s=>{let n=_e(Y({},s),{userId:e.userId});o.kind===M.VIDEO&&(n.streamType=fi(o.streamType)),this.emit(o.kind===M.AUDIO?ie.AUDIO_PLAY_STATE_CHANGED:ie.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===q.PLAY_NOT_ALLOWED&&this.emit(ie.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{St(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:d}=r;a||this._remoteAudioConfigMap.delete(o),d||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==d&&(d?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(d?ie.REMOTE_VIDEO_AVAILABLE:ie.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?ie.REMOTE_AUDIO_AVAILABLE:ie.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?ie.REMOTE_VIDEO_AVAILABLE:ie.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(ie.SEI_MESSAGE,_e(Y({},e),{streamType:fi(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(ie.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,d,l,p,f;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)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,_a),upLoss:((d=this._networkQuality)==null?void 0:d.uplinkLoss)||0,downLoss:((l=this._networkQuality)==null?void 0:l.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((p=e.msg_up_stream_info.msg_audio_status)==null?void 0:p.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((f=e.msg_up_stream_info.msg_audio_status)==null?void 0:f.uint32_audio_level)||0)/Fi},video:e.msg_up_stream_info.msg_video_status.filter(g=>r[g.uint32_video_stream_type]).map(g=>({bitrate:(g.uint32_video_codec_bitrate||0)/1e3,width:g.uint32_video_width,height:g.uint32_video_height,frameRate:g.uint32_video_enc_fps,videoType:r[g.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(g=>({userId:g.msg_user_info.str_identifier,audio:{bitrate:(g.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(g.msg_audio_status.uint32_audio_level||0)/Fi,point2pointDelay:(g.msg_audio_status.uint32_audio_p2p_delay||0)+(g.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:g.msg_audio_status.uint32_audio_cache_ms||0},video:g.msg_video_status.map(y=>({bitrate:(y.uint32_video_codec_bitrate||0)/1e3,width:y.uint32_video_width,height:y.uint32_video_height,frameRate:y.uint32_video_dec_fps,videoType:r[y.uint32_video_stream_type],point2pointDelay:(y.uint32_video_p2p_delay||0)+(y.uint32_video_cache_ms||0),jitterBufferDelay:y.uint32_video_cache_ms||0,codec:y.uint32_video_codec}))}))};this.emit(ie.STATISTICS,o)}).add("custom-message",e=>{this.emit(ie.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(ie.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(ie.FIRST_VIDEO_FRAME,_e(Y({},e),{streamType:fi(e.streamType)}))}).add("audio-frame",e=>{this.emit(ie.AUDIO_FRAME,e)}),Ft(this,at).add("audioInputAdded",e=>{this.emit(ie.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(ie.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(ie.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(ie.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>A(this,null,function*(){if(this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),Lt&&Lt.deviceId===Ea){let r=(yield Co()).find(o=>o.deviceId===Ea);r&&Lt.groupId!==r.groupId&&(Lt=r,this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>A(this,null,function*(){this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield Co())[0];if(!r||!Lt||Lt.groupId===r.groupId)return;let o=Lt.deviceId===e.deviceId,s=Lt.deviceId===Ea&&Lt.deviceId===r.deviceId;(o||s)&&(Lt=r,this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),Ft(this,kc).add("permission-state-change",e=>{this.emit(ie.PERMISSION_STATE_CHANGE,e)}),this.room.enableSEI&&this.on(ie.SEI_MESSAGE,e=>{var o;let r=(o=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:o.remoteVideoTrack;r&&r.updateAlphaRenderInfo(e)})}getNetworkTime(){return Ri()}use(e){let r,o;return"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,r.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(r,o)}_use(e,r){let o=this._plugins.get(e.Name);if(o)return this._log.warn("duplicate install plugin",e.Name),o;let s=new e(hT.call(this,{TRTC:pe,room:this._room,assetsPath:r,errorModule:{RtcError:oe,ErrorCode:ne,CoreErrorCode:q,ErrorCodeDictionary:Tr}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return A(this,null,function*(){var d,l;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!Oe(e.proxy)&&e.proxy.turnServer&&((l=(d=this._room).setTurnServer)==null||l.call(d,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Ye(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let a={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,useH265:e.useH265,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,r,pe.frameWorkType),this._checkTrackToPublish(),lf.start()})}exitRoom(){return A(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return A(this,null,function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(r){if(r instanceof ma&&(r.code===q.API_CALL_TIMEOUT||r.code===q.SWITCH_ROOM_FAILED))this._log.warn(`switchRoom ${r.code===q.API_CALL_TIMEOUT?"timeout":"failed"}, fallback to exitRoom() and enterRoom()`),yield this._rejoinRoom(e);else throw r}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return A(this,null,function*(){yield this.exitRoom();let r=Y(Y({},this.enterRoomParams),e);yield this.enterRoom(r)})}_clearRemoteTracks(){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(),fT(this),this._room.remotePublishedUserMap.forEach(e=>{St(e.remoteAudioTrack),St(e.remoteVideoTrack),St(e.remoteAuxiliaryTrack)})}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(){this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),St(this),this.removeAllListeners(),this._room.destroy(),Uc.delete(this),Uc.size===0&&lf.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),U.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,n=new li(this._room.audioManager),a={},d={muted:!0};s&&(O(s.microphoneId)?O(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&Fe(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),O(s.profile)||(Oe(s.profile)?fd[s.profile]&&n.setProfile(fd[s.profile]):n.setProfile(s.profile)),Fe(s.earMonitorVolume)&&(d.muted=!(s.earMonitorVolume>0),d.volume=s.earMonitorVolume),O(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),O(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),O(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Ye(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",l=>{this.emit(ie.ERROR,new oe({code:ne.DEVICE_ERROR,extraCode:5309,messageParams:{error:l}}))}),n.on("2",l=>{this.emit(ie.DEVICE_CHANGED,{type:"microphone",action:"active",device:l})}),n.on("4",l=>{let p;l.error&&(p=oe.convertFrom(l.error)),this.emit(ie.PUBLISH_STATE_CHANGED,_e(Y({},l),{error:p}))}),n.on("6",()=>{}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),O(o)||n.setMute(o),Ft(n,n).add("player-state-changed",l=>{this.emit(ie.AUDIO_PLAY_STATE_CHANGED,_e(Y({},l),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=_e(Y({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:d,track:n}),U.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return A(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):O(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),O(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),O(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!O(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),O(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Br(this._localAudioConfig,e)})}stopLocalAudio(){return A(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),U.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),St(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return A(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var f;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:a}=e,d=new _r(this._room.videoManager),l={},p={};a&&(Ye(a.avoidCropping)&&(d.avoidCropping=a.avoidCropping),a.cameraId?l.deviceId=a.cameraId:O(a.useFrontCamera)?O(a.videoTrack)||(l.customSource=a.videoTrack):l.facingMode=a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,O(a.retryWhenExactFailed)||(l.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(l.contentHint=Dc(a.qosPreference)),O(a.profile)||(Oe(a.profile)?Vr[a.profile]&&d.setProfile(Vr[a.profile]):d.setProfile(a.profile)),O(a.fillMode)||(p.objectFit=a.fillMode),O(a.mirror)||(p.mirror=a.mirror),O(a.small)||(O(a.smallMode)||(this._room.smallMode=a.smallMode),Ye(a.small)&&a.small===!1?d.stopSmall():d.updateSmallConfig(qn(a.small,!0))),O(a.rotation)||d.setRotation(a.rotation),Ye(this._enableAutoSwitchWhenRecapturing)&&(d.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),d.once("first-video-frame",g=>{this.emit(ie.FIRST_VIDEO_FRAME,_e(Y({},g),{streamType:fi(g.streamType)}))}),d.on("5",g=>{this.emit(ie.ERROR,new oe({code:ne.DEVICE_ERROR,extraCode:5308,messageParams:{error:g}}))}),d.on("2",g=>{this.emit(ie.DEVICE_CHANGED,{type:"camera",action:"active",device:g})}),d.on("4",g=>{let y;g.error&&(y=oe.convertFrom(g.error)),this.emit(ie.PUBLISH_STATE_CHANGED,_e(Y({},g),{error:y}))}),d.on("6",()=>{}),this._listenOutputTrackChanged(d),s?yield d.capture(l):(f=d.manager)==null||f.changeInput(d),O(n)||(yield d.setMute(n)),Ft(d,d).add("player-state-changed",g=>{this.emit(ie.VIDEO_PLAY_STATE_CHANGED,_e(Y({},g),{userId:"",streamType:"main"}))}).add("video-size-changed",g=>{this.emit(ie.VIDEO_SIZE_CHANGED,_e(Y({},g),{streamType:fi(g.streamType)}))}),o&&this._room.isJoined&&this._room.publish(d).catch(()=>{}),this._localVideoTrack=d,this._localVideoConfig=_e(Y({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:p,track:d})})}updateLocalVideo(e){return A(this,null,function*(){var l,p,f;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,d={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):O(a==null?void 0:a.useFrontCamera)?O(a==null?void 0:a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a==null?void 0:a.videoTrack)):yield this._localVideoTrack.switchDevice(a!=null&&a.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let g={};g.deviceId=(a==null?void 0:a.cameraId)||((l=this._localVideoConfig.option)==null?void 0:l.cameraId),g.facingMode=a!=null&&a.useFrontCamera||(p=this._localVideoConfig.option)!=null&&p.useFrontCamera?M.FACING_MODE_USER:M.FACING_MODE_ENVIRONMENT,g.customSource=(a==null?void 0:a.videoTrack)||((f=this._localVideoConfig.option)==null?void 0:f.videoTrack),yield this._localVideoTrack.capture(g)}a&&(O(a.profile)||(Oe(a.profile)?Vr[a.profile]&&this._localVideoTrack.setProfile(Vr[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&O(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),O(a.fillMode)||(d.objectFit=a.fillMode),O(a.mirror)||(d.mirror=a.mirror),O(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Dc(a.qosPreference)),O(a.small)||(Ye(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(qn(a.small,!0)))),this._room.isJoined&&O(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),O(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:d,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Br(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(),St(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return A(this,arguments,function*(e={publish:!0,view:null}){var g,y;if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,muteSystemAudio:s,option:n}=e,a=new mi(this._room.videoManager);a.on("4",R=>{let N;R.error&&(N=oe.convertFrom(R.error)),this.emit(ie.PUBLISH_STATE_CHANGED,_e(Y({},R),{error:N}))}),a.once("first-video-frame",R=>{this.emit(ie.FIRST_VIDEO_FRAME,_e(Y({},R),{streamType:fi(R.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let d=null,l={},p={};n&&(O(n.profile)||(Oe(n.profile)?gd[n.profile]&&a.setProfile(gd[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(l.systemAudio=!0,l.echoCancellation=n.echoCancellation,l.noiseSuppression=n.noiseSuppression,l.autoGainControl=n.autoGainControl),O(n.fillMode)||(p.objectFit=n.fillMode),n.videoTrack&&(l.videoTrack=n.videoTrack),n.audioTrack&&(l.audioTrack=n.audioTrack),n.captureElement&&(l.captureElement=n.captureElement),n.preferDisplaySurface&&(l.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(l.contentHint=Dc(n.qosPreference)));let f=yield a.capture(l);if(a.mediaTrack.addEventListener(M.ENDED,()=>{this._stopScreenShare(),this.emit(ie.SCREEN_SHARE_STOPPED)}),f.getAudioTracks()[0]){d=new Ls(this._room.audioManager);let R=f.getAudioTracks()[0];(g=e.option)!=null&&g.systemAudio&&!((y=e.option)!=null&&y.audioTrack)&&(d.sourceTrack=R),yield d.setInputMediaStreamTrack(R),Ye(s)&&d.mediaTrack&&(d.mediaTrack.enabled=!s),this._speakerId&&d.setAudioOutput(this._speakerId)}if(Ft(a,a).add("player-state-changed",R=>{this.emit(ie.VIDEO_PLAY_STATE_CHANGED,_e(Y({},R),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let R=[a];d&&(R.push(d),this._checkScreenAudioEchoCancellation(a,d)),R.forEach(N=>this._room.publish(N).catch(()=>{}))}this._localScreenTrack=a,this._localScreenAudioTrack=d,this._localScreenConfig=_e(Y({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:p,track:a})})}updateScreenShare(e){return A(this,null,function*(){var d;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(O(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let l=Dc(n.qosPreference);this._localScreenTrack.setContentHint(l)}if(this._room.isJoined&&!O(o)){if(o&&!this._localScreenConfig.publish){let l=[this._localScreenTrack];this._localScreenAudioTrack&&l.push(this._localScreenAudioTrack),l.forEach(p=>this._room.publish(p).catch(()=>{}))}if(this._localScreenConfig.publish&&!o){let l=[this._localScreenTrack];this._localScreenAudioTrack&&l.push(this._localScreenAudioTrack),l.forEach(p=>this._room.unpublish(p).catch(()=>{}))}}(d=this._localScreenAudioTrack)!=null&&d.mediaTrack&&Ye(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Br(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:n}=e,a=`${o}_${s}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let d=this._room.remotePublishedUserMap.get(o);if(!d)return;let l={},p=s==="main"?d.remoteVideoTrack:d.remoteAuxiliaryTrack;p.on("decode-failed",f=>{this.emit(ie.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),p.on("video-size-changed",f=>{this.emit(ie.VIDEO_SIZE_CHANGED,_e(Y({},f),{streamType:fi(f.streamType)}))}),this._listenOutputTrackChanged(p),n&&(O(n.fillMode)||(l.objectFit=n.fillMode),O(n.mirror)||(l.mirror=n.mirror),O(n.poster)||(l.poster=n.poster),l.canvasRender=n.canvasRender,s==="main"&&!O(n.small)&&(!d.remoteVideoTrack.isSubscribing&&!d.remoteVideoTrack.isSubscribed&&d.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,p.user)),O(n.draggable)||p.setDraggable(n.draggable)),yield this._room.subscribe(p),yield this._enableVideoDecodeFallback(p,s),yield this._updateVideoPlayOption({view:r,playOption:l,track:p}),this._emitTrackEvent(p),this._remoteVideoConfigMap.set(a,{config:e}),n&&!O(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:p,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return A(this,null,function*(){var C,P;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,d=this._remoteVideoConfigMap.get(a);if(!d||!this._room.remotePublishedUserMap.has(o))return;let l={};n&&(O(n.fillMode)||(l.objectFit=n.fillMode),O(n.mirror)||(l.mirror=n.mirror));let p=null,f=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(f!=null&&f.muteState.hasVideo)&&(p=f.remoteVideoTrack),s==="sub"&&(f!=null&&f.muteState.hasAuxiliary)&&(p=f.remoteAuxiliaryTrack),!p)return;let{config:g}=d;s==="main"&&n&&!O(n.small)&&this._room.changeType(n.small,p.user),n&&!O(n.draggable)&&p.setDraggable(n.draggable),yield this._updateVideoPlayOption({view:r,playOption:l,track:p,prevConfig:g}),Br(g,e);let y=O(n==null?void 0:n.receiveWhenViewVisible)?(C=g.option)==null?void 0:C.receiveWhenViewVisible:n.receiveWhenViewVisible,R=O(r)?g.view:r,N=O(n==null?void 0:n.viewRoot)?(P=g.option)==null?void 0:P.viewRoot:n.viewRoot;this._observeView({remoteTrack:p,view:R,receiveWhenViewVisible:y,viewRoot:N})})}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:n,remoteVideoTrack:a,remoteAuxiliaryTrack:d}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(d.stop(),n.hasAuxiliary&&o.push(d))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}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 o.code!==ne.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){this._remoteAudioVolumeMap.set("*",r),this._remoteAudioVolumeMap.forEach((s,n)=>this._remoteAudioVolumeMap.set(n,r));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){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(ie.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{dT.has(e)||this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===pe.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(pe.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(Oe(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let a=this._room.remotePublishedUserMap.get(r);a&&(o=a.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&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,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(r);a&&(n=o==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.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 Co()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),Lt=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: ${ir}/en/TRTC.html#.setCurrentSpeaker`)})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return A(this,null,function*(){var a;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={},n=o.remoteAudioTrack;n.on("decode-failed",d=>{this.emit(ie.ERROR,new oe({code:ne.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let d=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),l=Fe(d)?d:100;s.volume=l,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ae(ye(n,"decode-failed"),Je(ye(n,ue.INIT)),Le(()=>{this.startPlugin(Lc.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),U.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(d){throw this._remoteAudioConfigMap.delete(r),d}this._emitTrackEvent(n)})}_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}`),U.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;Ae(ye(e,"decode-failed"),Je(ye(e,ue.INIT)),Ds(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),qi(ye(e,"decode-downgrade-state-changed")),Le(n=>{s=n.state,this.emit(ie.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,_e(Y({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return A(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),O(e)&&s&&s.view&&!un(r)){let a=mn(s.view);a.length>0&&(yield o.play(a,r))}if(!O(e)){let a=mn(e);a.length>0?yield o.play(a,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(n){}if(O(e.muted)||r.setPlayerMute(e.muted),O(e.volume)||r.setAudioVolume(e.volume/100),r instanceof li&&r.mediaTrack){let n=e.muted===!1&&!O(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof zi){let n=e.muted?0:e.volume;if(O(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_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(ie.TRACK,{userId:o,streamType:fi(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_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),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return Promise.all(e.map(n=>this._room.publish(n).catch(()=>{})))}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(O(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${fi(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||ut(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let l=n.visibleViewMap||new Map,p=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),l.clear(),a=new IntersectionObserver(g=>{g.forEach(y=>{l.set(y.target,y.isIntersecting),e.log.info(`view ${y.target.id} is${y.isIntersecting?"":" not"} visible`)}),clearTimeout(p),p=window.setTimeout(()=>{[...l.values()].find(R=>R)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let f=new Set(mn(r));l.forEach((g,y)=>{f.has(y)||(a.unobserve(y),l.delete(y))}),f.forEach(g=>{l.set(g,!0),a.observe(g)}),a.takeRecords().forEach(g=>{l.set(g.target,g.isIntersecting)}),n.visibleViewMap=l,n.observer=a}_exitRoom(){return A(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()})}_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 Promise.all(r.map(o=>this._room.unpublish(o).catch(()=>{})))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((e=this._localScreenAudioTrack.trackSettings)==null?void 0:e.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),St(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return A(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(a){this._log.warn("start audioProcessor plugin failed: ",a)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!Lt||Pn(Lt))&&(this._initActiveSpeaker(),U.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return A(this,null,function*(){if(Lt&&!Pn(Lt))this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:Lt});else{let e=yield Co();e[0]&&!Pn(e[0])?(Lt=e[0],this.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):U.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,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).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:_e(Y({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),J.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),J.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return A(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),AT.call(e,Y({trtcInstance:this},r))})}static setLogLevel(e,r){F.setLogLevel(e),O(r)||(r?F.enableUploadLog():F.disableUploadLog())}static isSupported(){return fu(pe.frameWorkType)}static getPermissions(o){return A(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield kc.request(r).catch(a=>{var d;return F.error(`getPermissions request failed, error: ${(d=a==null?void 0:a.message)!=null?d:a}`)}));let[s,n]=yield Promise.all([kc.get("camera"),kc.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return cr(e)}static getMicrophoneList(e=!0){return ar(e)}static getSpeakerList(e=!0){return Co(e)}static setCurrentSpeaker(e){return A(this,null,function*(){if(nt&&(e===Vs.SPEAKER||e===Vs.HEADSET)){let o=yield pe.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;Uc.forEach(n=>A(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield Co()).forEach(o=>{o.deviceId===e&&(Uc.forEach(s=>{s._setCurrentSpeaker(e),s.emit(ie.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),Lt=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:d}){switch(a&&(Ts.version=a),e){case"count":Ts.addCount({key:r,useUV:n});break;case"enum":Ts.addEnum({key:r,value:o,useUV:n});break;case"number":Ts.addNumber({key:r,value:o,split:s,max:d});break}}};m(pe,"VERSION",sf),m(pe,"_loggerManager",F),m(pe,"EVENT",ie),m(pe,"ERROR_CODE",ne),m(pe,"TYPE",Vs),m(pe,"frameWorkType",30),Z([st({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"}})})],pe.prototype,"use",1),Z([Ht(Ot.TRTC.enterRoom),Uo("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),Pe(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),st()],pe.prototype,"enterRoom",1),Z([st()],pe.prototype,"exitRoom",1),Z([Ht(Ot.TRTC.switchRoom),st(),Ou()],pe.prototype,"switchRoom",1),Z([Ht(Ot.TRTC.switchRole),Bs("room",{merge:(e,r)=>r}),st()],pe.prototype,"switchRole",1),Z([st()],pe.prototype,"destroy",1),Z([Ht(Ot.TRTC.startLocalAudio),Uo("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)}),st()],pe.prototype,"startLocalAudio",1),Z([Ht(Ot.TRTC.updateLocalAudio),Bs("audio",{debounce:{delay:200,getKey:()=>`${RT}-localAudio`,isNeedToDebounce:e=>{var r;return!O((r=e.option)==null?void 0:r.captureVolume)}}}),st()],pe.prototype,"updateLocalAudio",1),Z([Vo("audio"),st()],pe.prototype,"stopLocalAudio",1),Z([Ht(Ot.TRTC.startLocalVideo),Uo("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)}),st()],pe.prototype,"startLocalVideo",1),Z([Ht(Ot.TRTC.updateLocalVideo),Bs("video"),st()],pe.prototype,"updateLocalVideo",1),Z([Vo("video"),st()],pe.prototype,"stopLocalVideo",1),Z([Ht(Ot.TRTC.startScreenShare),Uo("screen",()=>!0),st()],pe.prototype,"startScreenShare",1),Z([Ht(Ot.TRTC.updateScreenShare),Bs("screen"),st()],pe.prototype,"updateScreenShare",1),Z([st()],pe.prototype,"stopScreenShare",1),Z([Ht(Ot.TRTC.startRemoteVideo),Uo(e=>`v${e.userId}${e.streamType}`,()=>!0),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"startRemoteVideo",1),Z([Ht(Ot.TRTC.updateRemoteVideo),Bs(e=>`v${e.userId}${e.streamType}`),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"updateRemoteVideo",1),Z([Ht(Ot.TRTC.stopRemoteVideo),Pe(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)})}),st({getRemoteId:e=>`${e.userId}_${e.streamType}`})],pe.prototype,"stopRemoteVideo",1),Z([Vo(e=>`v${e.userId}${e.streamType}`)],pe.prototype,"_stopRemoteVideo",1),Z([Ht(...Ot.TRTC.muteRemoteAudio),st({getRemoteId:e=>e})],pe.prototype,"muteRemoteAudio",1),Z([nf(...Ot.TRTC.setRemoteAudioVolume),gT(200,e=>e),st({getRemoteId:e=>e})],pe.prototype,"setRemoteAudioVolume",1),Z([_l("start"),No(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),Uo((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>dh[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],pe.prototype,"startPlugin",1),Z([_l("update"),Bs((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Br(e[1],r[1]),e)}),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>uh[e.getName()]})],pe.prototype,"updatePlugin",1),Z([_l("stop"),Vo((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),st({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>lh[e.getName()]})],pe.prototype,"stopPlugin",1),Z([nf(...Ot.TRTC.enableAudioVolumeEvaluation)],pe.prototype,"enableAudioVolumeEvaluation",1),Z([st()],pe.prototype,"getVideoSnapshot",1),Z([st()],pe.prototype,"_setCurrentSpeaker",1),Z([Uo(e=>`a${e.userId}`,()=>!0)],pe.prototype,"_startRemoteAudio",1),Z([Pe(e=>function(r){return A(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(_e(Y({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),Vo(e=>`a${e.userId}`)],pe.prototype,"_stopRemoteAudio",1),Z([Vo("room")],pe.prototype,"_exitRoom",1),Z([Vo("screen")],pe.prototype,"_stopScreenShare",1),Z([Ht(...Ot.TRTC.sendSEIMessage),Kp({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],pe.prototype,"sendSEIMessage",1),Z([Ht(Ot.TRTC.sendCustomMessage),Kp({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],pe.prototype,"sendCustomMessage",1),Z([Fo()],pe,"create",1),Z([Ht(Ot.TRTC.create)],pe,"_create",1),Z([Fo()],pe,"setLogLevel",1),Z([Fo()],pe,"isSupported",1),Z([Fo()],pe,"getPermissions",1),Z([Fo()],pe,"getCameraList",1),Z([Fo()],pe,"getMicrophoneList",1),Z([Fo()],pe,"getSpeakerList",1);var _f=pe,Yn=_f;var wl=class{constructor(t,e){m(this,"_flag");m(this,"terminalType");m(this,"userId");m(this,"tinyId");m(this,"role");m(this,"remoteAudioTrack");m(this,"remoteVideoTrack");m(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new zi(t,this),this.remoteVideoTrack=new xo(t,this),this.remoteAuxiliaryTrack=new tl(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 cs(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 Tf=class{constructor(){m(this,"_set",new Set);U.on(B.LEAVE_SUCCESS,this.delete,this),U.on(B.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,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))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function KR(){return A(this,null,function*(){let i,t;try{let y=yield ar();i=y&&y.length}catch(y){}try{let y=yield cr();t=y&&y.length}catch(y){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:d}=this.checkSystemResult.detail,l=bo.basis(),p={webRTC:l.isWebRTCSupported,getUserMedia:l.isGetUserMediaSupported,webSocket:l.isWebSocketsSupported,screenShare:l.isScreenShareSupported,webAudio:l.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:d},f={browser:l.browser,os:l.os,trtc:p,devices:e},g={isWebCodecSupported:l.isWebCodecSupported,isMediaSessionSupported:l.isMediaSessionSupported,isWebTransportSupported:l.isWebTransportSupported};qe.uploadEvent({log:`trtcstats-${JSON.stringify(f)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(f)}`),qe.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(g)}`,userId:this.userId}),yh()})}function CT(){return Pe(i=>{let t=new Tf;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 se({code:q.INVALID_OPERATION,message:We({key:He.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new se({code:q.INVALID_OPERATION,message:We({key:He.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}`),U.emit(B.JOIN_START,{room:this,roomId:s,params:e});let n=si.getEnv();n||(n=vi.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith(Ed.OLD_CLOUD_LADDER)?n=vi.OLD_CLOUD_LADDER:this.proxy_ws.startsWith(Ed.WEBRTC)&&(n=vi.WEBRTC))),qe.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),bo.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,KR.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!si.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=si.performanceNow(),U.emit(B.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&qe.uploadEvent({log:`stat-conv-${Number(jr)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),U.emit(B.JOIN_FAILED,{room:this,error:a}),a}})}})}var NT=()=>Pe(i=>function(...t){return A(this,null,function*(){U.emit(B.LEAVE_START,{room:this}),yield i.call(this,...t),U.emit(B.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function DT(){return Pe(i=>function(...t){return A(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;U.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function wT(){return Pe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function OT(){return Pe(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function ev({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return fo(r)?r.catch(o=>F.error(`${i.name}() error observed ${o}`)):r}catch(r){F.error(`${i.name}() error observed ${r}`)}}}var Ol=class{constructor(t){m(this,"_frameWorkType");m(this,"_component");m(this,"_language");m(this,"connectionType");m(this,"_room");m(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0});m(this,"_keyPrefix");m(this,"_log");m(this,"_intervalId");m(this,"_firstPublishedUserList");m(this,"_networkQuality");m(this,"_basicInfo");m(this,"_pathJoinRoom");m(this,"_pathLeaveRoom");m(this,"_pathMainVideoMap");m(this,"_pathMainAudioMap");m(this,"_pathAuxiliaryMap");m(this,"_remoteStreamStatMap");m(this,"_localStreamStat");m(this,"_eventMap",new Map);m(this,"_captureCostSum",0);m(this,"_captureCostCount",0);m(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=F.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Xe(this[e])&&(this[e]=ev({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:ht,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,uint32_audio_capture_thread_health_zero_cnt:0,uint32_after3a_silence_duration:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,hs().then(()=>{this._basicInfo.string_os_version=Li(),this._basicInfo.string_device_name=ps()||this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),U.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(B.JOIN_START,this.handleJoinStart).addEvent(B.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(B.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(B.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(B.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(B.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(B.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(B.JOIN_FAILED,this.handleJoinFailed).addEvent(B.LEAVE_START,this.handleLeaveStart).addEvent(B.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(B.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(B.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(B.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(B.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(B.PUBLISH_START,this.handlePublishStart).addEvent(B.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(B.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(B.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(B.PLAY_TRACK_START,this.handlePlayStart).addEvent(B.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(B.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===M.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(B.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(B.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(B.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(B.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(B.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(B.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(B.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,n=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(B.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("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>U.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&&(O(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),O(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),O(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:n,tls:a,request:d,response:l}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=d,this._pathJoinRoom.int32_schedule_response=l}}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 se?Number(e.getExtraCode()||e.getCode()):q.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){var e;if(this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0){if(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;let r=(e=this._room.audioManager.localAudioTrack)==null?void 0:e.after3aSilenceStartTime;r&&(this._localStreamStat.statsToReport.uint32_after3a_silence_duration=Te()-r)}else 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())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof se?Number(e.getExtraCode()||e.getCode()):q.UNKNOWN)}}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:_e(Y({},tv),{msg_user_info:new Vc({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:n,role:a}=e,d=new Vc({userId:s,tinyId:n,role:a==="anchor"?20:21}),l=Date.now(),p=`${s}_${r}`,f=this._remoteStreamStatMap.get(p);f&&f.subscribeStartTime===0&&(f.subscribeStartTime=l),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(p)&&this._pathMainVideoMap.set(p,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:l}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(p)&&this._pathMainAudioMap.set(p,{statsToReport:{msg_user_info:d,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:l})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(p)&&this._pathAuxiliaryMap.set(p,{sendSubscribeCMDTime:l})}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(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let a=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=a,J.addNumber({key:516820,value:a})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}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:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a)a.totalRTT+=e,a.totalLoss+=r,s&&(a.totalVideoDelay=(a.totalVideoDelay||0)+s,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let d,l,p,f;s&&(l=s,p=1),n&&(d=n,f=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:d,totalVideoDelay:l,audioDelayCount:f,videoDelayCount:p})}}))}handleHeartbeatStats(t){var e;if(this.hitTest(t.room)){let{msg_device_info:r,msg_up_stream_info:o,msg_down_stream_info:s}=t.report;if(o.msg_video_status[0]){let{uint32_video_codec_bitrate:n,uint32_video_enc_fps:a,uint32_video_width:d,uint32_video_height:l}=o.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=n,this._localStreamStat.totalVideoFPS+=a,this._localStreamStat.totalVideoWidth+=d,this._localStreamStat.totalVideoHeight+=l,this._localStreamStat.videoCount++}if(o.msg_audio_status){let{uint32_audio_level:n}=o.msg_audio_status;Math.floor(n/Fi*100)>0&&(this._localStreamStat.totalAudioLevel+=n/Fi,this._localStreamStat.audioLevelCount++)}s.forEach(n=>{let{msg_user_info:a,msg_audio_status:d,msg_video_status:l}=n,p=a.str_identifier,f=this._room.remotePublishedUserMap.get(p);if(l.forEach(g=>{let y=g.uint32_video_stream_type===2,R=g.uint32_video_stream_type===7,N=`${p}_${y?"main":"auxiliary"}`,C=this._remoteStreamStatMap.get(N);if(C&&(y&&(f!=null&&f.remoteVideoTrack.isSubscribed)||R&&(f!=null&&f.remoteAuxiliaryTrack))){C.totalVideoFPS+=g.uint32_video_receive_fps,C.totalVideoBitrate+=g.uint32_video_codec_bitrate,C.videoCount++,C.statsToReport.uint32_video_width===0&&(C.statsToReport.uint32_video_width=g.uint32_video_width),C.statsToReport.uint32_video_height===0&&(C.statsToReport.uint32_video_height=g.uint32_video_height);let P=y?f.remoteVideoTrack:f.remoteAuxiliaryTrack;P.stat.jitterBufferDelay&&(C.videoJitterBufferDelay=P.stat.jitterBufferDelay),P.stat.framesReceived&&(C.statsToReport.uint32_video_consume_render_rate=Math.floor(P.stat.framesDecoded/P.stat.framesReceived*ri(10,6)))}}),!un(d)){let g=`${p}_main`,y=this._remoteStreamStatMap.get(g);this._remoteStreamStatMap.has(g)&&y&&f!=null&&f.remoteAudioTrack.isSubscribed&&(y.totalAudioBitrate+=d.uint32_audio_codec_bitrate,y.audioCount++,f.remoteAudioTrack.stat.jitterBufferDelay&&(y.audioJitterBufferDelay=f.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(d.uint32_audio_level/Fi*100)>0&&(y.totalAudioLevel+=d.uint32_audio_level/Fi,y.audioLevelCount++),d.uint32_audio_block_time&&(y.statsToReport.uint32_audio_block_time+=d.uint32_audio_block_time))}}),r.uint32_audio_capture_cost&&(this._captureCostSum+=r.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)),r.uint32_audio_capture_cost===0&&((e=this._room.audioManager.localAudioTrack)==null?void 0:e.muted)===!1&&(this._localStreamStat.statsToReport.uint32_audio_capture_thread_health_zero_cnt+=1)}}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 se?e.getExtraCode()||e.getCode():q.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&tn)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&rn)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&ga)>=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:p,count:f,audioDelayCount:g,videoDelayCount:y,totalAudioDelay:R,totalVideoDelay:N}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(p/f),g&&R&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(R/g),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),y&&N&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(N/y))}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,M.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,M.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,$s));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:d}=n.getDataFreezeDuration(e),{renderFreeze:l}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=d,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(l,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_audio_block_time=Math.min(t.statsToReport.uint32_audio_block_time,t.statsToReport.uint32_audio_play_time),n.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}),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>$s&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+$s)}),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>$s&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+$s)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>$s&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+$s)}getReportData(){this._basicInfo.uint32_networkType=vd();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new Vc({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:ln(this._signalInfo.relayIp),uint32_client_ip:ln(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*ri(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:ln(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend,str_user_sig:this._room.userSig,bytes_report_token:this._signalInfo.reportToken};return Aa(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=Io.enable?Di(t,2001,e):yield vm(t),o=r instanceof ArrayBuffer,s=`${Ni(e,po.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(J),this.uploadKVStat(Ts)];n||a.push(wi({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return A(this,null,function*(){let e=t.getReportData(this._room.userSig,this._signalInfo.reportToken);if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=_e(Y({},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=Io.enable?Di(e,2003,this._room.sdkAppId):yield vm(e),o=r instanceof ArrayBuffer,s=`${Ni(+this._room.sdkAppId,po.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||wi({url:s,body:r})})}};Z([ys({settings:{timeout:500,retries:3}})],Ol.prototype,"upload",1);var $s=5e3,tv={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_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},Vc=class{constructor(t){m(this,"str_identifier");m(this,"str_tinyid");m(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},MT=Ol;var If=class{constructor(){m(this,"_startTime");m(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=Te())}stop(){this._endTime===0&&(this._endTime=Te())}getDuration(){return this._endTime===0?Te()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},Ml=If;var Sf=class{constructor(t){m(this,"_room",null);m(this,"_durationMap");m(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(B.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(B.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(B.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,M.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,M.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,M.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,M.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,M.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>U.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>U.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new Ml,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===M.AUDIO?[s]:[],video:e===M.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()}},xT=Sf;var yf=class{constructor(){m(this,"renderFreezeMap",new Map);m(this,"dataFreezeMap",new Map)}get(t,e){let r=this.renderFreezeMap.get(t),o=this.dataFreezeMap.get(t);return e?e==="data"?o:r:(_t||lt)&&r&&o&&r.duration>o.duration?r:o}set(t,e,r){r==="data"?this.dataFreezeMap.set(t,e):this.renderFreezeMap.set(t,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},Af=class{constructor(t){m(this,"_room");m(this,"_renderFreezeMap",new Map);m(this,"_isVideoPlayingEventFiredMap",new Map);m(this,"_dataFreezeMap",new Map);m(this,"_monitorFreezeData",new yf);m(this,"_eventMap",new Map);m(this,"_videoEncodeFailedCount",0);m(this,"_audioEncodeFailedCount",0);m(this,"_encodeFailedThreshold",3);m(this,"eventListenerMap",new Map);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(B.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(B.PLAY_TRACK_START,this.onPlayTrackStart).set(B.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(B.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",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(B.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==M.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===M.MUTE?this.onVideoTrackMuted(t):r===M.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(B.HEARTBEAT_REPORT,this.onHearBeatReport).set(B.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(B.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach((t,e)=>U.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>U.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),n=new Ml;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.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}){if(this.hitTest(t)){if(e.msg_up_stream_info.msg_video_status){let r=e.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="video"&&!n.isScreen),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0||o!=null&&o.isUseCustomSource)return;r.forEach(n=>{n.uint32_video_stream_type===2&&(n.uint32_video_capture_fps!==0&&n.uint32_video_codec_bitrate===0&&n.uint32_video_enc_fps===0&&(o!=null&&o.isPublished)?(this._videoEncodeFailedCount+=1,this._videoEncodeFailedCount===this._encodeFailedThreshold&&qe.uploadEvent({userId:this._room.userId,log:`stat-${Ar.VIDEO_ENCODE_FAILED_DURING_CALL}`})):this._videoEncodeFailedCount=0)})}if(e.msg_up_stream_info.msg_audio_status){let r=e.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="audio"),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0)return;r.uint32_audio_codec_bitrate===0&&(o!=null&&o.isPublished)?(this._audioEncodeFailedCount+=1,this._audioEncodeFailedCount===this._encodeFailedThreshold&&qe.uploadEvent({userId:this._room.userId,log:`stat-${Ar.AUDIO_ENCODE_FAILED_DURING_CALL}`})):this._audioEncodeFailedCount=0}}}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 n=s.getDuration();if(n>Id){let a=this._monitorFreezeData.get(t,"data");this._monitorFreezeData.set(t,{userId:e,type:r,duration:a?a.duration+n:n},"data")}else o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==M.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()<Id&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e={renderFreeze:0,count:0},r=this._renderFreezeMap.get(t);return r&&(e.renderFreeze=r.totalDuration,e.count=r.count),e}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}onRemoteVideoPlayStart({track:t,player:e}){var n;if(!zr())return;let r=0,o=()=>{document.hidden||(r=0)};document.addEventListener("visibilitychange",o);let s=(a,d)=>{var l;if(r){let p=t.decodeFPS,f=p>0&&p<=5?600+1e3/p:600,g=d.presentationTime-r;if(g>f){g=Math.min(g,5e3);let y=`${t.userId}_${t.streamType}`,R=this._monitorFreezeData.get(y,"render");R?R.duration+=g:this._monitorFreezeData.set(y,{userId:t.userId,type:t.streamType,duration:g},"render");let N=this._renderFreezeMap.get(y);N?(N.totalDuration+=g,N.count+=1):this._renderFreezeMap.set(y,{userId:t.userId,type:t.streamType,totalDuration:g,count:1})}}r=d.presentationTime,(l=e.element)==null||l.requestVideoFrameCallback(s)};(n=e.element)==null||n.requestVideoFrameCallback(s),this.eventListenerMap.set(`${t.userId}_${t.streamType}`,{onVisibilityChange:o})}onRemoteVideoPlayEnd({track:t,player:e}){let r=`${t.userId}_${t.streamType}`,o=this.eventListenerMap.get(r);o&&document.removeEventListener("visibilitychange",o.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},PT=Af;var UT=bi(ki(),1);var xl=class{constructor(t,e,r,o,s,n=4/3){this.vbMode=t;this.faceDetectorHash=r;this.visionTaskRegistry=o;this.logger=s;m(this,"animationState");m(this,"originalAspect");m(this,"totalOffsetX",0);m(this,"totalOffsetY",0);m(this,"defaultScaleRatio",.1);m(this,"isRecovering",!1);m(this,"boundaryY",280);m(this,"lastActionTime",0);m(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=n||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?J.addSuccessEvent({key:s.key}):J.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,a=n.originX,d=n.originY,l=n.width,p=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,d,l,p):this.vbMode===2&&this.movingPortrait(r,o,a,d,l,p)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,a=.4){let d=t+r/2,l=e+o/2,p,f,{min:g,offset:y}=this.calculateBoundary(d,s,t,r),{min:R,offset:N}=this.calculateBoundary(l,n,e,o);return p=2*g+r,f=2*R+o,p/f>this.originalAspect?(p=f*this.originalAspect,y=d-p/2):(f=p/this.originalAspect,N=l-f/2),r/s>a&&(y=0,N=0,p=s,f=n),y=Math.max(0,Math.min(y,s-p)),N=Math.max(0,Math.min(N,n-f)),{sx:y,sy:N,cropWidth:p,cropHeight:f,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let a={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=a,this.animationState.target=a;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=Y({},t),this.animationState.target=Y({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),Fe(this.animationState.current.scaleOffsetX)&&Fe(this.animationState.target.scaleOffsetX)&&Fe(this.animationState.current.scaleOffsetY)&&Fe(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let a=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=a}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(ri(t.sx-e.sx,2)+ri(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,a=.3){if(this.isRecovering)return;let d=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(d,t,e),s*n/d.cropWidth/d.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var d,l,p,f,g,y,R,N,C,P,X,H;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(l=(d=this.animationState.current)==null?void 0:d.scaleRatio)!=null?l:1,scaleOffsetX:(f=(p=this.animationState.current)==null?void 0:p.scaleOffsetX)!=null?f:0,scaleOffsetY:(y=(g=this.animationState.current)==null?void 0:g.scaleOffsetY)!=null?y:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(N=(R=this.animationState.target)==null?void 0:R.scaleRatio)!=null?N:1,scaleOffsetX:(P=(C=this.animationState.target)==null?void 0:C.scaleOffsetX)!=null?P:0,scaleOffsetY:(H=(X=this.animationState.target)==null?void 0:X.scaleOffsetY)!=null?H:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(a)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var rv=`#version 300 es
|
|
104
|
+
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=>{ls[`${i}()`]={tips:`Call trtc.${i}`,color:"blue",class:"blue",textColor:"#fff"}});var uy=Object.keys(ls);var _y=Li(hy());var kt="trtc_debug_dialog",ms=`${kt}_activated`,Jl=`${kt}_switch`,eg=`${kt}_mask`,Ql=`${kt}_panel`,tg=`${kt}_tabber`,Ia=`${kt}_tab`,rg=`${kt}_topbar`,mn=`${kt}_toptab`,No=`${kt}_content`,ih=`${kt}_has_topbar`,og=`${No}_log`,pn=`${No}_network`,Oo=`${kt}_dump`,ed=`${pn}_title`,od=`${pn}_basic`,Yl=`${pn}_local`,Zl=`${pn}_remote`,Kf=`${Oo}_title`,ba=`${Oo}_local`,Ki=`${Oo}_remote`,my=`${Ki}_hook`,oh=`${kt}_banner`,Ey=`${oh}_item`,py=`${kt}_toolbar`,td=`${kt}_tool`,Do=`${kt}_item`,Ty=`${Do}_debug`,yy=`${Do}_info`,Sy=`${Do}_warn`,Iy=`${Do}_error`,fy=`${kt}_back_top`,gy=`${kt}_go_bottom`,Kl=`${Oo}_local_audio`,eh=`${Oo}_local_video_main`,th=`${Oo}_local_video_aux`,rd=`${kt}_tooltip`,by=`${od}_network_info`,Ay=`${od}_room_info`,rh=`${og}_controller`,Zi="success",Aa="warning",hs="failed",sh=0,ig=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.addStyle(),this.addDialog()}addDialog(){var e;let t=document.createElement("template");t.innerHTML=`<div id="${kt}" class="${kt}"><div class="${Jl}">Debug#${++sh}</div><div class="${eg}"></div><div class="${Ql}"><div class="${tg}"><a class="${Ia} ${ms}" data-tab="log">${Ke.LOG_BUTTON}</a><a class="${Ia}" data-tab="network">${Ke.NETWORK_BUTTON}</a><a class="${Ia}" data-tab="dump">${Ke.DUMP_BUTTON}</a></div><div class="${rh}"><div data-type="back_top">${Ke.BACK_TOP}</div><div data-type="go_bottom">${Ke.GO_BOTTOM}</div><div data-type="clear_log">${Ke.CLEAR_LOG}</div></div><div class="${rg}"><a class="${mn} ${ms}" data-type="all">All</a><a class="${mn}" data-type="debug">Debug</a><a class="${mn}" data-type="info">Info</a><a class="${mn}" data-type="warn">Warn</a><a class="${mn}" data-type="error">Error</a></div><div class="${No} ${ih}"><div class="${og}"></div><div class="${pn}"><div class="${ed}">${Ke.BASIC}</div><div class="${od}"><div class="${Ay}"></div><div class="${by}">${Ke.NO_DATA}</div></div><div class="${ed}">${Ke.UPLINK}</div><div class="${Yl}">${Ke.NO_DATA}</div><div class="${ed}">${Ke.DOWNLINK}</div><div class="${Zl}">${Ke.NO_DATA}</div></div><div class="${Oo}"><div class="${Kf}">${Ke.UPLINK}</div><div class="${ba}"><div id="${Kl}"><span>${Ke.AUDIO} - ${Ke.DURATION}(s):</span><input type="number" min=0 value=0></input><button class="dump">${Ke.DUMP_BUTTON}</button><button class="end-dump" disabled>${Ke.END_BUTTON}</button></div><div id="${eh}"><span>${Ke.VIDEO} - ${Ke.DURATION}(s):</span><input type="number" min=0 value=10></input><button class="dump">${Ke.DUMP_BUTTON}</button><button class="end-dump" disabled>${Ke.END_BUTTON}</button></div><div id="${th}"><span>${Ke.SCREEN} - ${Ke.DURATION}(s):</span><input type="number" min=0 value=10></input><button class="dump">${Ke.DUMP_BUTTON}</button><button class="end-dump" disabled>${Ke.END_BUTTON}</button></div></div><div class="${Kf}">${Ke.DOWNLINK}</div><div class="${Ki}"><div class="${my}">userId:<input id="dump-remote-video-hook-userid" value='*' />duration:<input id="dump-remote-video-hook-duration" min='1' value='10' type='number' />mediaType:<select id="dump-remote-video-hook-mediaType" value='main' ><option value='main' checked>Video</option><option value='sub'>Screen</option></select><button id="dump-remote-video-hook-button">dump if video is available</button></div></div></div></div><div class="${oh}"></div><div class="${py}"><a id="trtc_upload" class="${td}">${Ke.UPLOAD_BUTTON}</a><a id="trtc_export" class="${td}">${Ke.EXPORT_BUTTON}</a><a id="trtc_hide" class="${td}">${Ke.HIDE_BUTTON}</a></div></div></div>`,(e=this.shadowRoot)==null||e.appendChild(t.content.firstChild)}addStyle(){var e;let t=document.createElement("style");t.textContent=`#${kt}{font-size:14px;--DD-BG-0:#ededed;--DD-BG-1:#f7f7f7;--DD-BG-2:#fff;--DD-BORDER:rgba(0,0,0,0.1);--DD-ERROR:red;--DD-WARN:#fa9d3b;--DD-INFO:#000;--DD-DEBUG:#10aeff;--DD-WARN-BG:#fff3cc;--DD-ERROR-BG:#ffe6e6;}#${kt} a,.${Jl}{cursor:pointer;}.${kt}{color:black;}.${Jl}{display:block;position:fixed;right:50px;bottom:${150+sh*50}px;border-radius:5px;background-color:#07c160;color:#fff;padding:5px 10px;z-index:10000;}.${eg}{display:none;position:fixed;left:0;top:0;right:0;bottom:0;z-index:10001;background-color:rgb(0,0,0,0.6);}.${Ql}{background-color:#ededed;display:none;position:fixed;min-height:85%;left:60%;right:0;bottom:0;z-index:10002;border:1px solid var(--DD-BG-0);}@media (max-width:768px) {.${Ql}{left:0;}}.${tg}{display:flex;height:2em;border-bottom:1px solid var(--DD-BORDER);}.${Ia}{padding:0 20px;border-right:1px solid rgba(0,0,0,0.1);line-height:2em;color:black;}.${Ia}.${ms}{background-color:var(--DD-BG-2);}.${Ia}.disabled{cursor:not-allowed;background-color:#ededed;color:#999;}.${rg}{height:2em;display:flex;flex-direction:row;}.${mn}{width:20%;text-align:center;line-height:2em;border-right:1px solid var(--DD-BORDER);border-bottom:1px solid var(--DD-BORDER);color:black;}.${mn}.${ms}{border-bottom:1px solid #1485ee;background-color:var(--DD-BG-2);}.${No}{background-color:#fff;position:absolute;left:0;right:0;top:2em;bottom:8em;overflow-y:scroll;overflow-x:hidden;}.${No}.${ih}{top:4em;bottom:10em}.${pn}{display:none;}.${Oo}{display:none;}.${ed},.${Kf}{line-height:2em;text-align:center;background-color:var(--DD-BG-0);border-bottom:1px solid var(--DD-BORDER);}.${od},.${Yl},.${Zl}{text-align:center;border-bottom:1px solid var(--DD-BORDER);}.${ba},.${Ki}{display:flex;flex-direction:column;padding:0.5em 0;justify-content:center;align-items:center;}.${ba} div input{margin:0 10px;height:1.5em;width:4em;}.${ba} div {padding:10px 0;border-radius:5px;}.${ba} div button,.${Ki} div button {cursor:pointer;height:1.8em;border-radius:5px;margin-right:5px;}.${ba} div button[disabled],.${Ki} div button[disabled]{cursor:not-allowed;}.${Ki} select {height:1.8em;margin:0 10px;}.${Ki} div input{margin:0 10px;height:1.5em;width:4em;}.${my} {line-height:3em;padding:0.5em;}.${ed}{text-align:center;background-color:var(--DD-BG-0);border-bottom:1px solid var(--DD-BORDER);}.${od},.${Yl},.${Zl}{text-align:center;border-bottom:1px solid var(--DD-BORDER);}.${Do}{border-bottom:1px solid var(--DD-BG-0);padding:5px 10px;overflow-wrap: break-word;}.${Iy}{color:var(--DD-ERROR);background-color:var(--DD-ERROR-BG);}.${Sy}{color:var(--DD-WARN);background-color:var(--DD-WARN-BG);}div .${yy}{color:var(--DD-INFO);}.${Ty}{color:var(--DD-DEBUG);}.${oh}{position:absolute;left:0;right:0;bottom:2em;height:6em;border-bottom:1px solid var(--DD-BORDER);display:flex;flex-direction:column;overflow-y:scroll;background-color:var(--DD-BG-1);}.${Ey}{border-bottom:1px solid var(--DD-BORDER);padding:5px 10px;overflow-wrap: break-word;}.${py}{position:absolute;line-height:2em;display:flex;flex-direction:row;left:0;right:0;bottom:0;}.${td}{flex:1;color:black;text-align:center;background-color:#ededed;border-right:1px solid var(--DD-BORDER);}#${kt} .${fy},#${kt} .${gy}{position:absolute;height:2em;width:6em;right:2em;border-radius:5px;background-color:rgba(30,136,229,0.8);z-index:10003;cursor:pointer;padding:0 5px;line-height:2em;color:white;text-align:center;}.${gy}{bottom:9em;}.${fy}{bottom:11.5em;}#${kt} .${td}.disable{cursor:not-allowed;background-color:#ededed;color:#999;}.${rd} {position:relative;display:inline-block;}.${rd} .tooltiptext{visibility:hidden;width:180px;background-color:black;color:#fff;text-align:center;padding:5px 0;border-radius:6px;position:absolute;}.${rd} .tooltip-top {bottom:125%;left:50%;margin-left:-90px;}.${rd}:hover .tooltiptext{visibility:visible;}.${rh}{position:absolute;left:0;right:0;bottom:8em;height:2em;display:flex;align-items:center;}.${rh} div{flex:1;cursor:pointer;border-right:1px solid var(--DD-BORDER);text-align: center;}`,(e=this.shadowRoot)==null||e.appendChild(t)}};customElements.define("trtc-basic-debug-dialog",ig);var id=class{constructor(t,e,r,o,s,n){p(this,"_dialogNode",null);p(this,"_switchNode",null);p(this,"_maskNode",null);p(this,"_panelNode",null);p(this,"_logContentNode",null);p(this,"_networkContentNode",null);p(this,"_dumpContentNode",null);p(this,"_tabNodes",[]);p(this,"_toptabNodes",[]);p(this,"_hasMove",!1);p(this,"_showDialog",!1);p(this,"_isMobile",!1);p(this,"_showLogType","all");p(this,"prevBytesSent",0);p(this,"prevBytesReceived",0);p(this,"_core");p(this,"_log");p(this,"_logList",[]);p(this,"isUploading",!1);p(this,"publishMap",new Map);p(this,"dumpLocalVideoMap");p(this,"dumpRemoteVideoMap");p(this,"dumpLocalAudioMap");p(this,"dumpRemoteAudioMap");p(this,"eventMap",new Map);p(this,"switchPos",{x:0,y:0,startX:0,startY:0,endX:0,endY:0,isTouchEnd:!1});p(this,"handleLeaveSuccess",({room:t})=>{var r,o;if(!this.hitTest(t))return;let e=(o=(r=this._dialogNode)==null?void 0:r.shadowRoot)==null?void 0:o.querySelector(`.${Ki}`);for(let s of this.publishMap.values())e==null||e.removeChild(s);this.publishMap.clear()});p(this,"handleJoinSuccess",({room:t})=>{var r,o;if(!this.hitTest(t))return;let e=(o=(r=this._dialogNode)==null?void 0:r.shadowRoot)==null?void 0:o.querySelector(`.${Ay}`);e.innerHTML=`sdkAppId: ${t.sdkAppId}<br/>roomId: ${t.roomId}<br/>userId: ${t.userId}<br/>`});p(this,"handleRemoteVideoAvailable",t=>{let e=t.streamType==="sub"?"auxiliary":"main";this.renderDumpTab(t.userId,"remote",e,"publish")});p(this,"handleRemoteVideoUnavailable",t=>{let e=t.streamType==="sub"?"auxiliary":"main";this.renderDumpTab(t.userId,"remote",e,"unpublish")});p(this,"handleRemoteAudioAvailable",t=>{this.renderDumpTab(t.userId,"remote","audio","publish")});p(this,"handleRemoteAudioUnavailable",t=>{this.renderDumpTab(t.userId,"remote","audio","unpublish")});p(this,"renderDumpTab",(t,e,r,o)=>{var a,c,d;let s={main:"video",auxiliary:"screen",audio:"audio"},n=(m,l)=>{var M,w,H;let f=document.createElement("div");f.innerText=`${m} - ${s[l]} - ${Ke.DURATION}(s):`;let g=document.createElement("input");g.type="number",g.min="0",g.value="10",g.id=`dump_remote_${l}_${m}`;let T=document.createElement("button");T.innerText=Ke.END_BUTTON,T.disabled=!0;let E=document.createElement("button");E.innerText=Ke.DUMP_BUTTON,E.onclick=()=>{let B,P,$=Number(g.value);if(l==="audio")({download:B,onDumpEnd:P}=new URLSearchParams(location.search).get("dump_audio_before_codec")==="true"?this.dumpAudioFromPipeline("remote",$,m):this.dumpAudio("remote",$,m));else{if(!this.isSupportDumpVideo())return;({download:B,onDumpEnd:P}=this.dumpVideo(l,"remote",$,m))}B&&(this.inactiveButton(E,Ke.DUMPING_BUTTON),$>0?setTimeout(()=>{B==null||B(),this.activeButton(E,Ke.DUMP_BUTTON)},$*1e3):(this.activeButton(T),T.onclick=()=>{T.onclick=null,B==null||B(),P==null||P(),this.activeButton(E,Ke.DUMP_BUTTON),this.inactiveButton(T)}))};let y;if(l!=="audio"){y=document.createElement("button"),y.innerText="preview",y.style.whiteSpace="pre";let B=document.createElement("video");document.body.appendChild(B),B.id=`${kt}_preview_remote_${l}_${m}`,B.style.cssText=`
|
|
105
|
+
width: 320px;
|
|
106
|
+
height: 240px;
|
|
107
|
+
display: none;
|
|
108
|
+
position: absolute;
|
|
109
|
+
top: 50%;
|
|
110
|
+
left: 50%;
|
|
111
|
+
border: 3px solid #cccccc;
|
|
112
|
+
transform: translate(-50%, -50%);
|
|
113
|
+
z-index: 10004;
|
|
114
|
+
`,y.onclick=()=>D(this,null,function*(){var P;if(B.style.display=B.style.display==="none"?"":"none",y&&(y.innerText=B.style.display==="none"?"preview":" hide "),!B.srcObject){let $=this._core.room.remotePublishedUserMap.get(m);if($){let de=(P=$[l==="main"?"remoteVideoTrack":"remoteAuxiliaryTrack"])==null?void 0:P.mediaTrack;de?(B.srcObject=new MediaStream([de]),yield B.play()):this.addInfoToBanner(hs,"failed to preview, remote video track is not available")}}})}f.appendChild(g),f.appendChild(E),f.appendChild(T),y&&f.appendChild(y),f.style.cssText="padding:10px;";let v=document.createElement("div");return v.style.cssText="width:100%;display:flex;justify-content:center;border-top: 1px solid var(--DD-BORDER);",v.appendChild(f),(H=(w=(M=this._dialogNode)==null?void 0:M.shadowRoot)==null?void 0:w.querySelector(`.${Ki}`))==null||H.appendChild(v),v};if(e==="remote")if(o==="publish"){let m=n(t,r);this.publishMap.set(`${t}-${e}-${r}`,m)}else{let m=this.publishMap.get(`${t}-${e}-${r}`);if(!m)return;(d=(c=(a=this._dialogNode)==null?void 0:a.shadowRoot)==null?void 0:c.querySelector(`.${Ki}`))==null||d.removeChild(m);let l=document.querySelector(`#${kt}_preview_remote_${r}_${t}`);l&&document.body.removeChild(l),this.publishMap.delete(`${t}-${e}-${r}`)}});p(this,"handleStatistics",t=>{var d,m,l,f,g,T;let e=(t.bytesSent-this.prevBytesSent)/2,r=(t.bytesReceived-this.prevBytesReceived)/2;this.prevBytesSent=t.bytesSent,this.prevBytesReceived=t.bytesReceived;let o=(m=(d=this._dialogNode)==null?void 0:d.shadowRoot)==null?void 0:m.querySelector(`.${by}`);o.innerHTML=`rtt: ${t.rtt} ms upLoss: ${t.upLoss}% downLoss: ${t.downLoss}% <br>
|
|
115
|
+
\u2191 ${e/1e3} KB/s (${8*e/1e3} Kb/s) <br>
|
|
116
|
+
\u2193 ${r/1e3} KB/s (${8*r/1e3} Kb/s) <br>
|
|
117
|
+
`;let s=(f=(l=this._dialogNode)==null?void 0:l.shadowRoot)==null?void 0:f.querySelector(`.${Yl}`),n="";t.localStatistics.audio.bitrate&&(n=`<li>local audio: ${t.localStatistics.audio.bitrate} Kb/s audioLevel: ${t.localStatistics.audio.audioLevel.toFixed(5)}</li>`),t.localStatistics.video.length>0&&(n+=`${t.localStatistics.video.map(E=>`<li>local ${E.videoType} video: ${E.bitrate} Kb/s ${E.width}*${E.height} ${E.frameRate}fps</li>`).join("")}`),s.innerHTML=n===""?`${Ke.NO_DATA}`:n;let a=(T=(g=this._dialogNode)==null?void 0:g.shadowRoot)==null?void 0:T.querySelector(`.${Zl}`),c="";t.remoteStatistics.length>0&&t.remoteStatistics.forEach(E=>{let y=`remote ${E.userId}:`;E.audio.bitrate>0&&(y+=`<li>audio: ${E.audio.bitrate} Kb/s audioLevel: ${E.audio.audioLevel.toFixed(5)}</li>`),E.video.length>0&&E.video.forEach(v=>{y+=`<li>${v.videoType} video: ${v.bitrate} Kb/s ${v.width}*${v.height} ${v.frameRate}fps</li>`}),c+=y}),a.innerHTML=c===""?`${Ke.NO_DATA}`:c});p(this,"pad",t=>t<10?`0${t}`:`${t}`);this._core=t,this._log=e,this.dumpLocalVideoMap=r,this.dumpRemoteVideoMap=o,this.dumpLocalAudioMap=s,this.dumpRemoteAudioMap=n,this.initCustomElements(),this.synchronizeLog(),this.installEvents(),window[`__trtc_instance_${sh}__`]=this._core.trtc}initCustomElements(){this._isMobile=cy();let t=document.createElement("trtc-basic-debug-dialog");document.body.appendChild(t);let e=t.shadowRoot;if(this._dialogNode=t,!e)return;this._switchNode=e.querySelector(`.${Jl}`),this._addEventListener(this._switchNode,"click",this.onSwitchClick.bind(this));let r=getComputedStyle(this._switchNode);this.switchPos.x=parseInt(r.right,10)||50,this.switchPos.y=parseInt(r.bottom,10)||100+sh*50,this._isMobile?(this._switchNode.ontouchstart=this.onTouchStart.bind(this),this._switchNode.ontouchend=this.onTouchEnd.bind(this),this._switchNode.ontouchmove=this.onTouchMove.bind(this)):this._switchNode.onmousedown=this.onMouseDown.bind(this),this._maskNode=e.querySelector(`.${eg}`),this._addEventListener(this._maskNode,"click",this.onMaskClick.bind(this)),this._panelNode=e.querySelector(`.${Ql}`),e.querySelector(`.${rh}`).childNodes.forEach(w=>{switch(w.getAttribute("data-type")){case"go_bottom":this._addEventListener(w,"click",this.onGoBottomClick.bind(this));break;case"back_top":this._addEventListener(w,"click",this.onBackTopClick.bind(this));break;case"clear_log":this._addEventListener(w,"click",this.onClearLogClick.bind(this));break}}),this._logContentNode=e.querySelector(`.${og}`),this._networkContentNode=e.querySelector(`.${pn}`),this._dumpContentNode=e.querySelector(`.${Oo}`),this._tabNodes=Array.from(e.querySelector(`.${tg}`).children),this._tabNodes.forEach(w=>{this._addEventListener(w,"click",this.onTabClick.bind(this))}),this._toptabNodes=Array.from(e.querySelector(`.${rg}`).children),this._toptabNodes.forEach(w=>{this._addEventListener(w,"click",this.onToptabClick.bind(this))});let s=e.querySelector("#trtc_upload");this._addEventListener(s,"click",this.onUploadClick.bind(this));let n=e.querySelector("#trtc_export");this._addEventListener(n,"click",this.onExportClick.bind(this));let a=e.querySelector("#trtc_hide");this._addEventListener(a,"click",this.onHideClick.bind(this));let c=e.querySelector(`#${eh} .dump`),d=e.querySelector(`#${eh} .end-dump`),m=Number(e.querySelector(`#${eh} input`).value);this._addEventListener(c,"click",this.getDumpButtonClickHandler.bind(this,c,d,m,"main","local"));let l=e.querySelector(`#${th} .dump`),f=e.querySelector(`#${th} .end-dump`),g=Number(e.querySelector(`#${th} input`).value);this._addEventListener(l,"click",this.getDumpButtonClickHandler.bind(this,l,f,g,"auxiliary","local"));let T=e.querySelector(`#${Kl} button`);this._addEventListener(T,"click",()=>{let w=Number(e.querySelector(`#${Kl} input`).value),{download:H,onDumpEnd:B}=new URLSearchParams(location.search).get("dump_audio_from_pipeline")==="true"?this.dumpAudioFromPipeline("local",w):this.dumpAudio("local",w);if(!H){this.addInfoToBanner(hs,"Failed to dump, please check if the current user has started the audio");return}if(this.inactiveButton(T,Ke.DUMPING_BUTTON),w>0)setTimeout(()=>{H(),this.activeButton(T,Ke.DUMP_BUTTON)},w*1e3);else{let P=e.querySelector(`#${Kl} .end-dump`);this.activeButton(P),P.onclick=()=>{P.onclick=null,H(),B==null||B(),this.activeButton(T,Ke.DUMP_BUTTON),this.inactiveButton(P)}}});let E=e.querySelector("#dump-remote-video-hook-userid"),y=e.querySelector("#dump-remote-video-hook-duration"),v=e.querySelector("#dump-remote-video-hook-mediaType"),M=e.querySelector("#dump-remote-video-hook-button");M.onclick=()=>{let w=Number(y.value);if(w<1){this.addInfoToBanner(hs,"duration at least 1s");return}let H=E.value;if(!H){this.addInfoToBanner(hs,"please input user id");return}H==="*"&&this.inactiveButton(M);let B=v.value,P=`remote_${H}_${B==="sub"?"auxiliary":B}`,$,de,Ae=L=>{if((L.userId===H||H==="*")&&L.streamType===B){if(this.addInfoToBanner(Zi,`[${L.userId}_${B}] starting to dump video, duration: ${w}s`),{download:$,onDumpEnd:de}=this.dumpVideo(L.streamType==="sub"?"auxiliary":L.streamType,"remote",w,L.userId),!$)return;setTimeout(()=>{$==null||$(),de==null||de(),H!=="*"&&this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_VIDEO_AVAILABLE,Ae)},w*1e3)}};this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_VIDEO_AVAILABLE,Ae),this.addInfoToBanner(Zi,`[${P}] waiting to dump video from ${H==="*"?"all remote users":`user ${H}`}, duration: ${w}s`)}}synchronizeLog(){this._core.loggerManager.getQueue().forEach(e=>{this.updateLog(e)})}isSupportDumpVideo(){return!this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED&&!this._core.rtcDectection.IS_SCRIPT_TRANSFORM_SUPPORTED?(this.addInfoToBanner(hs,"Current browser does not support dumping video"),!1):!0}_addEventListener(t,e,r,o){t&&(t.addEventListener(e,r,o),this.eventMap.set(t,{type:e,listener:r}))}_removeEventListener(){this.eventMap.forEach(({type:t,listener:e},r)=>{r&&r.removeEventListener(t,e)}),this.eventMap.clear(),this._switchNode&&(this._switchNode.onmousedown=null,this._switchNode.ontouchmove=null,this._switchNode.ontouchstart=null,this._switchNode.ontouchend=null)}closeDialog(){this.uninstallEvents(),this._removeEventListener(),this._dialogNode&&(document.body.removeChild(this._dialogNode),this._dialogNode=null)}updateLog(t){var r;this._logList.push(t);let e=document.createElement("div");switch(e.classList.add(Do),t.level){case 4:e.classList.add(Iy);break;case 2:e.classList.add(yy);break;case 3:e.classList.add(Sy);break;case 1:e.classList.add(Ty);break;default:break}e.textContent=t.log,this._showLogType!=="all"&&!e.classList.contains(`${Do}_${this._showLogType}`)&&(e.style.display="none"),(r=this._logContentNode)==null||r.appendChild(e),this.addHelper(e)}getDumpButtonClickHandler(t,e,r,o,s){if(!this.isSupportDumpVideo())return;let{download:n,onDumpEnd:a}=this.dumpVideo(o,s,r);if(n){this.addInfoToBanner(Zi,`[${s}_${o}] starting to dump...`),this.inactiveButton(t,Ke.DUMPING_BUTTON),r>0?setTimeout(()=>{n(),this.activeButton(t,Ke.DUMP_BUTTON)},r*1e3):(this.activeButton(e),e.onclick=()=>{e.onclick=null,a==null||a(),n(),this.activeButton(t,Ke.DUMP_BUTTON),this.inactiveButton(e)});return}this.addInfoToBanner(Zi,`[${s}_${o}] waiting to dump...`);let c=({track:d})=>{if(d.room===this._core.room&&d.streamType===o){this.addInfoToBanner(Zi,`[${s}_${o}] starting to dump`),s==="local"&&this._core.innerEmitter.off("104",c);let{download:m,onDumpEnd:l}=this.dumpVideo(o,s,r);if(!m)return;r>0?setTimeout(()=>{m(),this.activeButton(t,Ke.DUMP_BUTTON)},r*1e3):(this.activeButton(e),e.onclick=()=>{e.onclick=null,l==null||l(),m(),this.activeButton(t,Ke.DUMP_BUTTON),this.inactiveButton(e)})}};c.bind(this),s==="local"&&this._core.innerEmitter.on("104",c),this.inactiveButton(t,Ke.DUMPING_BUTTON)}onSwitchClick(){if(this._hasMove){this._hasMove=!1;return}this._showDialog?this.hideDialog():(this._isMobile&&(this._maskNode.style.display="block"),this._panelNode.style.display="block",this._switchNode.style.display="none",this._showDialog=!0,this.logContentGoBottom())}onTabClick(t){var o,s,n,a,c,d,m;let e=t.target;(o=this._tabNodes)==null||o.forEach(l=>{l.classList.remove(ms)}),e.classList.add(ms);let r=e.getAttribute("data-tab");r==="log"?((a=(n=(s=this._dialogNode)==null?void 0:s.shadowRoot)==null?void 0:n.querySelector(`.${No}`))==null||a.classList.add(ih),this._logContentNode.style.display="block",this._networkContentNode.style.display="none",this._dumpContentNode.style.display="none",this.logContentGoBottom()):((m=(d=(c=this._dialogNode)==null?void 0:c.shadowRoot)==null?void 0:d.querySelector(`.${No}`))==null||m.classList.remove(ih),r==="network"?(this._networkContentNode.style.display="block",this._logContentNode.style.display="none",this._dumpContentNode.style.display="none"):r==="dump"&&(this._dumpContentNode.style.display="block",this._networkContentNode.style.display="none",this._logContentNode.style.display="none"))}onToptabClick(t){var s,n;let e=t.target;(s=this._toptabNodes)==null||s.forEach(a=>{a.classList.remove(ms)}),e.classList.add(ms),this._showLogType=e.getAttribute("data-type");let r=(n=this._logContentNode)==null?void 0:n.querySelectorAll(`.${Do}`),o=`${Do}_${this._showLogType}`;r.forEach(a=>{a.classList.contains(o)||this._showLogType==="all"?a.style.display="block":a.style.display="none"}),this.logContentGoBottom()}onExportClick(){let t=this._logList.reduce((n,a)=>`${n+a.log}
|
|
118
|
+
`,""),e=new Blob([t],{type:"text/plain"}),r=document.createElement("a"),o=URL.createObjectURL(e);r.href=o;let s=`trtc_${this._core.room.sdkAppId===void 0?"EmptySdkAppId":this._core.room.sdkAppId}_${this._core.room.userId===void 0?"EmptyUserId":this._core.room.userId}_${this.formatStartDumpTime(+new Date)}.log`;r.download=s,r.style.display="none",document.body.appendChild(r),r.click(),URL.revokeObjectURL(o),document.body.removeChild(r),this.addInfoToBanner(Zi,`Export success: The log file name is ${s}`),this._core.kvStatManager.addSuccessEvent({key:592703})}addInfoToBanner(t,e){var n,a;let r=(a=(n=this._dialogNode)==null?void 0:n.shadowRoot)==null?void 0:a.querySelector(`.${oh}`),o=document.createElement("div");o.classList.add(Ey);let s=t===Zi?"\u{1F7E9}":t===Aa?"\u{1F7E7}":"\u{1F7E5}";o.innerText=`${s} [${this.getCurrentTime()}] ${e}`,r.appendChild(o),r.scrollTop=r.scrollHeight}onUploadClick(){return D(this,null,function*(){var a,c;if(this.isUploading)return;this.isUploading=!0;let t=(c=(a=this._dialogNode)==null?void 0:a.shadowRoot)==null?void 0:c.querySelector("#trtc_upload");t.innerText="Uploading...",t==null||t.classList.add(".disable");let e=this._logList.reduce((d,m)=>`${d+m.log}
|
|
119
|
+
`,""),r=new Blob([e],{type:"text/plain"}),o=new FormData;o.append("file",r,"trtc.log"),o.append("sdkAppId",`${this._core.room.sdkAppId||"EmptySdkAppId"}`),o.append("userId",`${this._core.room.userId||"EmptyUserId"}`),fetch("https://service.trtc.qcloud.com/api/uploadLogFile",{method:"POST",body:o}).then(d=>d.json()).then(d=>{this.addInfoToBanner(d.type,d.message_en||"Upload Failed: Please use local export"),this.isUploading=!1,this._log.info(d.message_en),this._core.kvStatManager.addSuccessEvent({key:592704})}).catch(()=>{this.addInfoToBanner(hs,"Upload Failed: Please use local export"),this._log.info("Upload Failed: Please use local export"),this._core.kvStatManager.addFailedEvent({key:592704})}).finally(()=>{t.innerText=Ke.UPLOAD_BUTTON,t==null||t.classList.remove(".disable"),this.isUploading=!1})})}onHideClick(){this.hideDialog()}onMaskClick(){this.hideDialog()}hideDialog(){this._isMobile&&(this._maskNode.style.display="none"),this._panelNode.style.display="none",this._switchNode.style.display="block",this._showDialog=!1}onBackTopClick(){var t,e,r;(r=(e=(t=this._dialogNode)==null?void 0:t.shadowRoot)==null?void 0:e.querySelector(`.${No}`))==null||r.scrollTo(0,0)}onGoBottomClick(){this.logContentGoBottom()}onClearLogClick(){this._logList=[],this._logContentNode&&(this._logContentNode.innerHTML="")}logContentGoBottom(){var e,r;let t=(r=(e=this._dialogNode)==null?void 0:e.shadowRoot)==null?void 0:r.querySelector(`.${No}`);t==null||t.scrollTo(0,t==null?void 0:t.scrollHeight)}onMouseDown(t){t.preventDefault(),this.switchPos.startX=t.pageX,this.switchPos.startY=t.pageY,document.onmousemove=this.onMouseMove.bind(this),document.onmouseup=this.onMouseUp.bind(this)}onMouseMove(t){t.cancelable&&t.preventDefault(),this._hasMove=!0;let e=this.switchPos.x-(t.pageX-this.switchPos.startX),r=this.switchPos.y-(t.pageY-this.switchPos.startY);[e,r]=this.getSafeAreaXY(e,r),this._switchNode.style.right=`${e}px`,this._switchNode.style.bottom=`${r}px`,this.switchPos.endX=e,this.switchPos.endY=r}onMouseUp(){this.switchPos.startX=0,this.switchPos.startY=0,this.switchPos.x=this.switchPos.endX,this.switchPos.y=this.switchPos.endY,document.onmousemove=null,document.onmouseup=null}onTouchStart(t){this.switchPos.startX=t.touches[0].pageX,this.switchPos.startY=t.touches[0].pageY,this.switchPos.isTouchEnd=!1}onTouchEnd(){this.switchPos.isTouchEnd&&(this.switchPos.startX=0,this.switchPos.startY=0,this.switchPos.isTouchEnd=!1,this.switchPos.x=this.switchPos.endX,this.switchPos.y=this.switchPos.endY)}onTouchMove(t){if(t.touches.length<=0)return;let e=t.touches[0].pageX-this.switchPos.startX,r=t.touches[0].pageY-this.switchPos.startY,o=Math.floor(this.switchPos.x-e),s=Math.floor(this.switchPos.y-r);[o,s]=this.getSafeAreaXY(o,s),this._switchNode.style.right=`${o}px`,this._switchNode.style.bottom=`${s}px`,this.switchPos.endX=o,this.switchPos.endY=s,this.switchPos.isTouchEnd=!0,t.cancelable&&t.preventDefault()}getSafeAreaXY(t,e){let r=Math.max(document.documentElement.offsetWidth,window.innerWidth),o=Math.max(document.documentElement.offsetHeight,window.innerHeight);return t+this._switchNode.offsetWidth>r&&(t=r-this._switchNode.offsetWidth),e+this._switchNode.offsetHeight>o&&(e=o-this._switchNode.offsetHeight),t<0&&(t=0),e<20&&(e=20),[t,e]}hitTest(t){return t===this._core.room}installEvents(){this._core.innerEmitter.on("264",this.handleLog,this),this._core.innerEmitter.on("53",this.handleLeaveSuccess,this),this._core.innerEmitter.on("27",this.handleJoinSuccess,this),this._core.trtc.on(this._core.TRTC.EVENT.STATISTICS,this.handleStatistics,this),this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_AUDIO_AVAILABLE,this.handleRemoteAudioAvailable),this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_AUDIO_UNAVAILABLE,this.handleRemoteAudioUnavailable),this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_VIDEO_AVAILABLE,this.handleRemoteVideoAvailable),this._core.trtc.on(this._core.TRTC.EVENT.REMOTE_VIDEO_UNAVAILABLE,this.handleRemoteVideoUnavailable),this._core.room.on("dump",this.handleDumpFromScriptTransform,this)}uninstallEvents(){this._core.innerEmitter.off("264",this.handleLog,this),this._core.innerEmitter.off("53",this.handleLeaveSuccess,this),this._core.innerEmitter.off("27",this.handleJoinSuccess,this),this._core.trtc.off(this._core.TRTC.EVENT.STATISTICS,this.handleStatistics,this),this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_AUDIO_AVAILABLE,this.handleRemoteAudioAvailable),this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_AUDIO_UNAVAILABLE,this.handleRemoteAudioUnavailable),this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_VIDEO_AVAILABLE,this.handleRemoteVideoAvailable),this._core.trtc.off(this._core.TRTC.EVENT.REMOTE_VIDEO_UNAVAILABLE,this.handleRemoteVideoUnavailable),this._core.room.off("dump",this.handleDumpFromScriptTransform,this)}handleDumpFromScriptTransform(t){if(!t.isAudio)if(t.userId){let e=this.dumpRemoteVideoMap[`${t.userId}-${t.streamType}`];e&&(e.data.push(t.data),e.duration>0&&Date.now()-e.startTimestamp>e.duration*1e3&&e.onDumpEnd())}else{let e=t.streamType==="main"?"main":"sub",r=this.dumpLocalVideoMap[e];r&&(r.data.push(t.data),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}}inactiveButton(t,e){t.disabled=!0,e&&(t.innerText=e)}activeButton(t,e){t.disabled=!1,e&&(t.innerText=e)}handleLog(t){this.updateLog(t.log)}addHelper(t){let e=/((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}/g,r=uy,o=t.innerText;o=o.split(`
|
|
120
|
+
`).map(s=>{if(s=s.replace(/</g,"<").replace(/>/g,">"),s.includes("failed"))return s.includes("on autoplay-failed")?s:`<span class='red' style="background:red; color:#fff;">${s}</span>`;if(s.includes("clientIp:")){let n=s.match(e);return n==null||n.forEach(a=>{s=s.replace(a,`<a href="javascript:void(0);" target=""><span class='ip' style="background:#e1dfdf">${a}</span></a>`)}),s}return s.includes("URL of current page")&&(s=s.replace(/URL of current page: (.+)/,'URL of current page: <a href="$1">$1</a>')),s}).join(`
|
|
121
|
+
`),r.forEach(s=>{if(t.innerText.includes(s)){let n="";n=typeof ls[s].tips=="function"?ls[s].tips(t.innerText):ls[s].tips,o=o.replace(new RegExp(`${dy(s)}`,"gi"),`<span class="${rd}" style="background:${ls[s].color||"#e1dfdf"}; color: ${ls[s].textColor||"#000"}">${s}
|
|
122
|
+
<span class="tooltiptext tooltip-top">${n}</span>
|
|
123
|
+
</span>`)}}),t.innerHTML=o}getCurrentTime(){let t=new Date,e=this.pad(t.getHours()),r=this.pad(t.getMinutes()),o=this.pad(t.getSeconds());return`${e}:${r}:${o}`}dumpAudioFromPipeline(t,e,r){this.addInfoToBanner(Aa,"dump audio from pipeline");let o=Date.now(),s=this.formatStartDumpTime(o),n=[],a=`${t}_${r}`,c;if(t==="local")c=this._core.trtc._localAudioTrack;else if(r){let l=this._core.room.remotePublishedUserMap.get(r);l&&(c=l.remoteAudioTrack)}let d=()=>{var v,M;if(n.length===0){this.addInfoToBanner(hs,`[${a}] dump failed. Reason: data is empty`);return}let l=(t==="local"?(v=this._core.room.singlePC)==null?void 0:v.audioCodec:(M=this._core.room.userManager)==null?void 0:M.getPublishedUser(r).audioCodec)||"opus",f,g=l;l==="opus"?(this.addInfoToBanner(Aa,`[${a}] package opus to ogg`),f=this.convertOpusToOgg(n),g="ogg"):f=new Blob(n);let T=URL.createObjectURL(f),E=document.createElement("a"),y=t==="local"?`local_${s}.${g}`:`remote-${r}_${s}.${g}`;E.href=T,E.download=y,E.style.display="none",document.body.appendChild(E),E.click(),URL.revokeObjectURL(T),E.remove(),this.addInfoToBanner(Zi,`[${a}] dump success. File name is: ${y}`)},m;if(t==="local"){if(!this.hasLocalTrack("main","audio"))return{};m=()=>{delete this.dumpLocalAudioMap.main},this.dumpLocalAudioMap.main={startTimestamp:o,data:n,duration:e,onDumpEnd:m}}if(t==="remote"&&r){if(m=()=>{delete this.dumpRemoteAudioMap[`${r}`]},this.dumpRemoteAudioMap[`${r}`])return this.addInfoToBanner(Aa,`[${a}] dump already exists.`),{};this.dumpRemoteAudioMap[`${r}`]={startTimestamp:o,data:n,duration:e,onDumpEnd:m}}return{download:d,onDumpEnd:m}}dumpVideo(t,e,r,o){let s=Date.now(),n=this.formatStartDumpTime(s),a=[],c=`${e}_${o}_${t}`,d;if(e==="local")d=t==="main"?this._core.trtc._localVideoTrack:this._core.trtc._localScreenTrack;else if(o){let f=this._core.room.remotePublishedUserMap.get(o);f&&(d=t==="main"?f.remoteVideoTrack:f.remoteAuxiliaryTrack)}let m=()=>{var v,M;if(a.length===0){this.addInfoToBanner(hs,`[${c}] dump failed. Reason: data is empty`);return}let f;t==="main"?f="video":t==="auxiliary"&&(f="screen");let g;this.getVideoCodec(o||"")==="vp8"?(this.addInfoToBanner(Aa,`[${c}] package vp8 into ivf format`),g=this.convertVP8ToIVF(a,d)):g=new Blob(a);let T=URL.createObjectURL(g),E=document.createElement("a"),y=e==="local"?`local_${f}_${n}.${((v=this._core.room.singlePC)==null?void 0:v.videoCodec)||"h264"}`:`remote-${o}_${f}_${n}.${((M=this._core.room.userManager)==null?void 0:M.getPublishedUser(o).videoCodec)||"h264"}`;E.href=T,E.download=y,E.style.display="none",document.body.appendChild(E),E.click(),URL.revokeObjectURL(T),E.remove(),this.addInfoToBanner(Zi,`[${c}] dump success. File name is: ${y}`)},l;if(e==="local"){if(!this.hasLocalTrack(t,"video"))return{};l=()=>{delete this.dumpLocalVideoMap[t==="auxiliary"?"sub":"main"]},this.dumpLocalVideoMap[t==="auxiliary"?"sub":"main"]={startTimestamp:s,data:a,duration:r,onDumpEnd:l}}if(e==="remote"&&o){if(l=()=>{delete this.dumpRemoteVideoMap[`${o}-${t}`]},this.dumpRemoteVideoMap[`${o}-${t}`])return this.addInfoToBanner(Aa,`[${c}] dump already exists.`),{};this.dumpRemoteVideoMap[`${o}-${t}`]={startTimestamp:s,data:a,duration:r,onDumpEnd:l}}return{download:m,onDumpEnd:l}}convertVP8ToIVF(t,e){var m,l,f;function r(g,T,E){for(let y=0;y<E.length;y++)g.setUint8(T+y,E.charCodeAt(y))}let o=t.reduce((g,T)=>g+12+T.byteLength,32),s=new ArrayBuffer(o),n=new DataView(s),a=new Uint8Array(s),c=0;r(n,c,"DKIF"),c+=4,n.setUint16(c,0,!0),c+=2,n.setUint16(c,32,!0),c+=2,r(n,c,"VP80"),c+=4,n.setUint16(c,((m=e==null?void 0:e._inputTrack)==null?void 0:m.getSettings().width)||0,!0),c+=2,n.setUint16(c,((l=e==null?void 0:e._inputTrack)==null?void 0:l.getSettings().height)||0,!0),c+=2;let d=(e instanceof qi?e==null?void 0:e.decodeFPS:(f=e==null?void 0:e.mediaTrack)==null?void 0:f.getSettings().frameRate)||15;return n.setUint32(c,d,!0),c+=4,n.setUint32(c,1,!0),c+=4,n.setUint32(c,t.length,!0),c+=4,n.setUint32(c,0,!0),c+=4,t.forEach((g,T)=>{let E=g.byteLength,y=Math.floor(T*1e6/d);n.setUint32(c,E,!0),c+=4,n.setFloat64(c,y,!0),c+=8,a.set(new Uint8Array(g),c),c+=E}),new Blob([s],{type:"application/octet-stream"})}getVideoCodec(t){var e,r;return t===""?(e=this._core.room.singlePC)==null?void 0:e.videoCodec:(r=this._core.room.remotePublishedUserMap.get(t))==null?void 0:r.videoCodec}hasLocalTrack(t,e){for(let r of this._core.room.localTracks)if(r.streamType===t&&r.kind===e)return!0;return!1}dumpAudio(t,e,r){var B,P,$;let o=null,s=[],n=[],a=[],c=[],d=[],m=[],l=[],f=new AbortController,g=Date.now(),T=this.formatStartDumpTime(g),E=this._core.room.audioManager._localAudioPipline,y=this._core.room.audioManager._localScreenAudioPipeline,v,M,w=({room:de,data:Ae,type:L})=>{if(this.hitTest(de)){if(L==="dump"){if(c[0]=c[0]?c[0].concat(Ae.captureInput):Ae.captureInput,c[1]=c[1]?c[1].concat(Ae.playInput):Ae.playInput,!v)v=Ae.startTime,M=Ae.startTime;else{let A=Ae.startTime-v,le=Ae.endTime-Ae.startTime;if(A>30||le>30){let ze=function(me){if(typeof me!="number"||me<0)return"0\u6BEB\u79D2";let re=[],Q=Math.floor(me/6e4),q=me%6e4;Q>0&&re.push(`${Q}\u5206`);let Be=Math.floor(q/1e3);return q%=1e3,(Be>0||re.length)&&re.push(`${Be}\u79D2`),(q>0||!re.length)&&re.push(`${q}\u6BEB\u79D2`),re.join("")};var te=ze;let He=Ae.startTime-M,ge=v-M;l.push(`${Ae.startTime} ${ze(He)}~${ze(ge)} ${A} ${le}`)}v=Ae.startTime}m.push(Ae.startTime)}L==="dump-screen-audio"&&(d[0]=d[0]?d[0].concat(Ae.captureInput):Ae.captureInput,d[1]=d[1]?d[1].concat(Ae.playInput):Ae.playInput)}};if(t==="local"){let{sampleRate:de}=this._core.room.audioManager.audioContext;if(!this._core.room.audioManager.hasAudioTrack&&!this._core.room.audioManager.hasScreenAudioTrack)return{};if(E!=null&&E.source.node&&(s.push(E.source.node),n.push(`local_audio_raw_capture-${de}-${E.source.node.channelCount}`)),((B=E==null?void 0:E.aec)!=null&&B.node||y!=null&&y.aec.node)&&(this._core.trtc.updatePlugin("AudioProcessor",{enableDump:!0}),this._core.innerEmitter.on("265",w),(P=E==null?void 0:E.aec)!=null&&P.node&&(s.push(E.aec.node),n.push(`local_audio_audioProcessor_processed-${de}-${E.aec.node.channelCount}`)),y!=null&&y.aec.node&&(s.push(y.aec.node),n.push(`screen_audio_audioProcessor_processed-${de}-${y.aec.node.channelCount}`))),E!=null&&E.denoiser.node&&(s.push(E.denoiser.node),n.push(`local_audio_denoiser_processed-${de}-${E.denoiser.node.channelCount}`)),this._core.room.audioManager.mixWeight>1&&(E!=null&&E.stream)){let Ae=this._core.room.audioManager.audioContext.createMediaStreamSource(E.stream);Ae.channelCount=1,s.push(Ae),n.push(`local_audio_destination-${de}-${Ae.channelCount}`)}}else if(t==="remote"&&r!==void 0){let de=($=this._core.room.remotePublishedUserMap.get(r))==null?void 0:$.remoteAudioTrack;if(!(de!=null&&de.mediaTrack))return{};let Ae=this._core.createAudioNode(de.mediaTrack);s.push(Ae),n.push(`remote_${r}`)}let H=()=>D(this,null,function*(){var A,le,He,ge,ze;let de=new _y.default;for(let me=0;me<n.length;me++)de.file(`${n[me]}.pcm`,new Blob(a[me]));if((A=c==null?void 0:c[0])!=null&&A.length&&de.file("audioProcessor_input_capture.pcm",new Blob(c[0])),(le=c==null?void 0:c[1])!=null&&le.length&&de.file("audioProcessor_input_playback.pcm",new Blob(c[1])),(He=d==null?void 0:d[0])!=null&&He.length&&de.file("audioProcessor_screen_audio_input_capture.pcm",new Blob(d[0])),(ge=d==null?void 0:d[1])!=null&&ge.length&&de.file("audioProcessor_screen_audio_input_playback.pcm",new Blob(d[1])),m!=null&&m.length){let me=m.reduce((re,Q)=>`${re}
|
|
124
|
+
${Q}`);de.file("audioProcessor_handle_timestamp.txt",new Blob([me]))}if(l!=null&&l.length){let me=l.reduce((re,Q)=>`${re}
|
|
125
|
+
${Q}`);de.file("audioProcessor_big_gap_data.txt",new Blob([me]))}let Ae=yield de.generateAsync({type:"blob"}),L=URL.createObjectURL(Ae),te=document.createElement("a");te.href=L,te.download=`${t}-audio-${T}.zip`,te.style.display="none",document.body.appendChild(te),te.click(),URL.revokeObjectURL(L),te.remove(),this.addInfoToBanner(Zi,`Dump success, file name is: ${t}-${T}.zip`),this._core.innerEmitter.off("265",w),((ze=E==null?void 0:E.aec)!=null&&ze.node||y!=null&&y.aec.node)&&this._core.trtc.updatePlugin("AudioProcessor",{enableDump:!1}),o&&clearTimeout(o),f.abort("download")});return e>0&&(o=Number(setTimeout(()=>{f.abort("timeout")},e*1e3))),s.length>0&&this._core.startGetPCM(s).then(de=>de.pipeTo(new WritableStream({write(Ae){Ae.forEach((L,te)=>{a[te]=a[te]?a[te].concat(L[0]):[L[0]]})}}),f).catch(()=>H)),{download:H,onDumpEnd:()=>{f.abort("timeout")}}}formatStartDumpTime(t){let e=new Date(t),r=e.getFullYear(),o=this.pad(e.getMonth()+1),s=this.pad(e.getDate()),n=this.pad(e.getHours()),a=this.pad(e.getMinutes()),c=this.pad(e.getSeconds()),d=-e.getTimezoneOffset(),m=Math.floor(Math.abs(d)/60),l=Math.abs(d)%60,f=d>=0?"+":"-";return`${r}-${o}-${s}T${n}-${a}-${c}${f}${this.pad(m)}-${this.pad(l)}`}convertOpusToOgg(t){let o=Math.floor(Math.random()*4294967295),s=0,n=0,a=[],c=this.createOpusHead(48e3,2);a.push(this.createOggPage(2,0,o,s++,[c]));let d=this.createOpusTags();a.push(this.createOggPage(0,0,o,s++,[d]));let m=[],l=0;return t.forEach((f,g)=>{let T=this.getOpusPacketDuration(f);m.push(f),l+=f.byteLength,n+=T;let E=g===t.length-1;if(l>6e4||m.length>=50||E){let y=E?4:0;a.push(this.createOggPage(y,n,o,s++,m)),m=[],l=0}}),new Blob(a,{type:"audio/ogg"})}createOpusHead(t,e){let r=new ArrayBuffer(19),o=new DataView(r);return this.writeString(o,0,"OpusHead"),o.setUint8(8,1),o.setUint8(9,e),o.setUint16(10,0,!0),o.setUint32(12,t,!0),o.setUint16(16,0,!0),o.setUint8(18,0),r}createOpusTags(){let t="TRTC Debugger",e=t.length,r=new ArrayBuffer(12+e+4),o=new DataView(r);return this.writeString(o,0,"OpusTags"),o.setUint32(8,e,!0),this.writeString(o,12,t),o.setUint32(12+e,0,!0),r}createOggPage(t,e,r,o,s){let n=0;s.forEach(y=>{let v=y.byteLength;for(;v>=255;)n++,v-=255;n++});let a=27+n,c=s.reduce((y,v)=>y+v.byteLength,0),d=a+c,m=new ArrayBuffer(d),l=new DataView(m),f=new Uint8Array(m);this.writeString(l,0,"OggS"),l.setUint8(4,0),l.setUint8(5,t),l.setUint32(6,e&4294967295,!0),l.setUint32(10,Math.floor(e/4294967295),!0),l.setUint32(14,r,!0),l.setUint32(18,o,!0),l.setUint32(22,0,!0),l.setUint8(26,n);let g=27;s.forEach(y=>{let v=y.byteLength;for(;v>=255;)f[g++]=255,v-=255;f[g++]=v});let T=a;s.forEach(y=>{f.set(new Uint8Array(y),T),T+=y.byteLength});let E=this.crc32(f);return l.setUint32(22,E,!0),f}writeString(t,e,r){for(let o=0;o<r.length;o++)t.setUint8(e+o,r.charCodeAt(o))}getOpusPacketDuration(t){if(t.byteLength===0)return 0;let e=new Uint8Array(t),r=e[0],o=r>>3&31,s=r&3,n=1;if(s===1||s===2)n=2;else if(s===3){if(t.byteLength<2)return 0;n=e[1]&63}return([480,480,480,480,960,960,960,960,1920,1920,1920,1920,2880,2880,480,480,120,120,120,120,240,240,240,240,480,480,480,480,960,960,960,960][o]||960)*n}crc32(t){let e=new Uint32Array(256),r=79764919;for(let s=0;s<256;s++){let n=s<<24;for(let a=0;a<8;a++)(n&2147483648)!==0?n=n<<1^r:n<<=1;e[s]=n>>>0}let o=0;for(let s=0;s<t.length;s++){let n=(o>>>24^t[s])&255;o=(o<<8^e[n])>>>0}return o}};Ie([Zc(300,()=>"export")],id.prototype,"onExportClick",1),Ie([Zc(300,()=>"upload")],id.prototype,"onUploadClick",1);var vy=id;var t0=0,nh,sd=class sd{constructor(t){this.core=t;p(this,"_core");p(this,"log");p(this,"dumpLocalVideoMap",{});p(this,"dumpRemoteVideoMap",{});p(this,"dumpLocalAudioMap",{});p(this,"dumpRemoteAudioMap",{});p(this,"dialog");this._core=t,this.log=t.log.createChild({id:`${this.getAlias()}${++t0}`}),this.log.info("created")}getName(){return sd.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 D(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(),this.addAudioProcessor())})}update(e){return D(this,arguments,function*({visible:t}){t?(yield this.openDebugDiaLog(),this.addVideoProcessor()):(this.closeDebugDiaLog(),this.removeVideoProcessor())})}stop(){this.closeDebugDiaLog(),this.removeVideoProcessor(),this.removeAudioProcessor()}destroy(){this.stop()}openDebugDiaLog(){return D(this,null,function*(){var t;if(!this.dialog)try{if(nh)yield nh;else{let e=new URLSearchParams(location.search).get("trtcDebugDialogPath")||((t=window.sessionStorage)==null?void 0:t.getItem("TRTC_DEBUG_DIALOG_PATH"))||`https://unpkg.com/${sy}@${qt}/assets/debug-dialog.js`;nh=this._core.fileDownloader.loadScript(e),yield nh}this.dialog=new vy(this._core,this.log,this.dumpLocalVideoMap,this.dumpRemoteVideoMap,this.dumpLocalAudioMap,this.dumpRemoteAudioMap),this._core.kvStatManager.addSuccessEvent({key:592705})}catch(e){this._core.kvStatManager.addFailedEvent({key:592705}),this.log.error("load debug dialog script failed: ",JSON.stringify(e))}})}closeDebugDiaLog(){this.dialog&&(this.dialog.closeDialog(),this.dialog=null)}addVideoProcessor(){this._core.room.videoManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeVideo.bind(this):Xf,type:1}),this._core.room.videoManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeVideo.bind(this):Jf,type:1})}removeVideoProcessor(){this._core.room.videoManager.removeEncodeProcessor({type:1}),this._core.room.videoManager.removeDecodeProcessor({type:1})}addAudioProcessor(){this._core.room.audioManager.addEncodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.encodeAudio.bind(this):Qf,type:2}),this._core.room.audioManager.addDecodeProcessor({processor:this._core.rtcDectection.IS_INSERTABLE_STREAM_SUPPORTED?this.decodeAudio.bind(this):Yf,type:2})}removeAudioProcessor(){this._core.room.audioManager.removeEncodeProcessor({type:2}),this._core.room.audioManager.removeDecodeProcessor({type:2})}encodeVideo({frame:t,mediaType:e}){return Xf({frame:t,onDump:()=>{if(!e)return;let r=e===2?"sub":"main",o=this.dumpLocalVideoMap[r];o&&(o.data.push(t.data.slice(0)),o.duration>0&&Date.now()-o.startTimestamp>o.duration*1e3&&o.onDumpEnd())}})}decodeVideo({frame:t,track:e}){return Jf({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteVideoMap[`${e.userId}-${e.streamType}`];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}encodeAudio({frame:t}){return Qf({frame:t,onDump:()=>{let e=this.dumpLocalAudioMap.main;e&&(e.data.push(t.data.slice(0)),e.duration>0&&Date.now()-e.startTimestamp>e.duration*1e3&&e.onDumpEnd())}})}decodeAudio({frame:t,track:e}){return Yf({frame:t,onDump:()=>{if(!e)return;let r=this.dumpRemoteAudioMap[e.userId];r&&(r.data.push(t.data.slice(0)),r.duration>0&&Date.now()-r.startTimestamp>r.duration*1e3&&r.onDumpEnd())}})}};p(sd,"Name","Debug"),p(sd,"autoStart",!0);var ah=sd;var Ry=i=>{switch(i){case"webCodecs":return 504703;case"wasm":return 504704}throw new Error("decoder type not supported")},ch=class{constructor(t,e,r){p(this,"trackDoneOB");p(this,"startOB");p(this,"stopOB");p(this,"inputFrameCount",0);p(this,"decodedFrameCount",0);p(this,"type","auto");p(this,"config");p(this,"decoder");p(this,"_decodeSink");let{kvStatManager:o,trtc:s}=t;this.config=r.config,this.trackDoneOB=Qe(e,Ve.INIT),this.stopOB=ir(),this.startOB=ir(),r.type==="auto"?this.type="webCodecs":this.type=r.type;let n=ir(),a=c=>{let d=this.pipe(e);return n.next("STARTING"),e.log.info(`decoder type: ${this.type}`),Ye(d,At(this.stopOB),lt(()=>{},m=>{e.log.error(m),o.addFailedEvent({key:Ry(this.type),error:m}),c>4?this.startOB.error(m):this.startOB.next(c+1)})),Ye(d,Ni(1),rf(kc))};Ye(this.startOB,Mc(0),Wi(a),At(this.stopOB),lt(()=>{e.player.setOutput(),n.next("STARTED")},c=>{n.next("FAILED")},()=>{o.addSuccessEvent({key:Ry(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 So()(e=>D(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"}))}},r0={type:"object"},nd=class nd{constructor(t){this.core=t;p(this,"log");p(this,"contextMap",new Map);p(this,"decodeProcessorMap",new WeakMap);this.log=t.log.createChild({id:`${this.getAlias()}`})}getAlias(){return nd.Name}getGroup(t){return t.track.userId+t.track.streamType}getName(){return nd.Name}getValidateRule(t){return r0}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 ch(this.core,r,t);return Ye(o.trackDoneOB,Ni(1),lt(()=>{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 ch(this.core,t.track,t))}}};p(nd,"Name","TRTCAudioDecoder");var ad=nd;var dh=class{constructor(){p(this,"log");this.log=se.createLogger({id:"exp"})}call(t,e){return D(this,null,function*(){return Rt(this[t])?this[t](e):Promise.reject(new Me({code:Te.INVALID_PARAMETER,message:Et({key:_t.API_NOT_EXIST,data:{name:t}})}))})}enableAudioFrameEvent(t){return D(this,null,function*(){let{trtcInstance:e,enable:r,userId:o,sampleRate:s=48e3,channelCount:n=1,port:a}=t,{audioManager:c}=e.room,{getPCMAbortCtrlMap:d,audioFrameEventConfigMap:m}=c;if(m.set(o,{enable:r,sampleRate:s,channelCount:n,port:a}),r)if(o==="*")e.room.remotePublishedUserMap.forEach(l=>{if(l.remoteAudioTrack.isAvailable){if(d.get(l.userId))return;let f=c.getPCM(g=>{e.emit(Ne.AUDIO_FRAME,g)},l.userId);d.set(l.userId,f)}});else{if(d.get(o))return;let l=c.getPCM(f=>{e.emit(Ne.AUDIO_FRAME,f)},o);d.set(o,l)}else if(o==="*")e.room.remotePublishedUserMap.forEach(l=>{if(l.remoteAudioTrack.isSubscribed){let{userId:f}=l,g=d.get(f);g==null||g.abort("disable"),d.delete(f)}});else{let l=d.get(o);l==null||l.abort("disable"),d.delete(o)}})}resumeRemotePlayer(t){return D(this,null,function*(){if(t.userId==="*"){let r=[];return t.trtcInstance.room.remotePublishedUserMap.forEach(o=>{let{remoteAudioTrack:s,remoteVideoTrack:n,remoteAuxiliaryTrack:a}=o;t.streamType?t.streamType==="main"?(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume())):a.isAvailable&&r.push(a.player.resume()):(s.isAvailable&&r.push(s.player.resume()),n.isAvailable&&r.push(n.player.resume()),a.isAvailable&&r.push(a.player.resume()))}),Promise.all(r)}let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);if(e)return t.streamType==="main"?Promise.all([e.remoteAudioTrack.player.resume(),e.remoteVideoTrack.player.resume()]):e.remoteAuxiliaryTrack.player.resume()})}pauseRemotePlayer(t){if(t.userId==="*")t.trtcInstance.room.remotePublishedUserMap.forEach(e=>{let{remoteAudioTrack:r,remoteVideoTrack:o,remoteAuxiliaryTrack:s}=e;t.streamType?t.streamType==="main"?(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause()):s.isAvailable&&s.player.pause():(r.isAvailable&&r.player.pause(),o.isAvailable&&o.player.pause(),s.isAvailable&&s.player.pause())});else{let e=t.trtcInstance.room.remotePublishedUserMap.get(t.userId);e&&(t.streamType==="main"?(e.remoteAudioTrack.player.pause(),e.remoteVideoTrack.player.pause()):e.remoteAuxiliaryTrack.player.pause())}}};Ie([jE({name:"options",type:"object",required:!0,properties:{enable:{required:!0,type:"boolean"},userId:{required:!0,type:"string"},sampleRate:{type:"number",values:[8e3,16e3,32e3,44100,48e3]},channelCount:{type:"number",values:[1,2]},port:{type:"messageport"}}})],dh.prototype,"enableAudioFrameEvent",1);var Cy=new dh;var wy=Li(mo(),1);var sg=class extends wy.EventEmitter{constructor(){super();p(this,"states",{});p(this,"permissionChangeHandler");p(this,"log");this.log=se.createLogger({id:"pm"}),this.permissionChangeHandler=()=>{var e,r;this.emit("permission-state-change",{camera:(e=this.states.camera)==null?void 0:e.state,microphone:(r=this.states.microphone)==null?void 0:r.state})}}request(e){return D(this,null,function*(){if(this.log.info(`request ${e.join(", ")}`),e.length===0)return Promise.resolve();(yield navigator.mediaDevices.getUserMedia({video:e.includes("camera"),audio:e.includes("microphone")})).getTracks().forEach(o=>o.stop())})}get(e){return D(this,null,function*(){try{return this.states[e]||(this.states[e]=yield navigator.permissions.query({name:e}),this.states[e].addEventListener("change",this.permissionChangeHandler)),this.log.info(`get ${e} permission state: ${this.states[e].state}`),this.states[e].state}catch(r){return this.log.error(`get ${e} permission failed, error: ${r instanceof Error?r.message:r}`),null}})}destroy(){Object.values(this.states).forEach(e=>{e==null||e.removeEventListener("change",this.permissionChangeHandler)}),this.states={}}},cd=new sg;var Ny=0,dd=new Set,pr=null;Uh(Vf);Yn.checkStorage();var We=class We extends Dy.EventEmitter{constructor(e,r){super();p(this,"_room");p(this,"_eventListened",new Set);p(this,"_localVideoTrack",null);p(this,"_localAudioTrack",null);p(this,"_localScreenTrack",null);p(this,"_localScreenAudioTrack",null);p(this,"_localVideoConfig",null);p(this,"_localScreenConfig",null);p(this,"_localAudioConfig",null);p(this,"_remoteVideoConfigMap",new Map);p(this,"_remoteAudioConfigMap",new Map);p(this,"_remoteAudioVolumeMap",new Map);p(this,"_remoteAudioMuteMap",new Map);p(this,"_mediaTrackMap",new WeakMap);p(this,"_log",se.createLogger({id:`t${++Ny}`}));p(this,"_plugins",new Map);p(this,"_networkQuality",null);p(this,"_speakerId");p(this,"enterRoomParams");p(this,"_enableAutoSwitchWhenRecapturing",!0);this._room=new e(be({logger:this._log,frameWorkType:We.frameWorkType},r)),this._room.videoDecodeFallbackType=r.videoDecodeFallback,Nt(r.enableAutoSwitchWhenRecapturing)&&(this._enableAutoSwitchWhenRecapturing=r.enableAutoSwitchWhenRecapturing),this._log.info(`create() ${JSON.stringify(r,(o,s)=>o==="plugins"?s.map(n=>n.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(zl,r.assetsPath),this._use(Wl,r.assetsPath),this._use(ql,r.assetsPath),this._use(ad,r.assetsPath),this._use(ah),r.enableSEI&&fc&&this._use(Xl),this._room.on("audio-volume",o=>{var s,n;!o.find(a=>a.userId==="")&&this._localAudioTrack&&o.push({userId:"",volume:Math.floor(((s=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?s:this._localAudioTrack.getAudioLevel())*100),floatVolume:(n=this._localAudioTrack.getInternalAudioLevelAfter3A())!=null?n:this._localAudioTrack.getInternalAudioLevel()}),r.volumeType===1&&o.forEach(a=>{var d;let c=a.userId===""?this._localAudioTrack:(d=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:d.remoteAudioTrack;c&&(a.volume=c.dbVolume)}),r.enableDbVolume&&o.forEach(a=>{var d;let c=a.userId===""?this._localAudioTrack:(d=this.room.remotePublishedUserMap.get(a.userId))==null?void 0:d.remoteAudioTrack;c&&(a.volume=c.dbVolume)}),this.emit(Ne.AUDIO_VOLUME,{result:o.sort((a,c)=>c.volume-a.volume)})}),this._room.videoManager.on("error",o=>{this._log.error(new Oe({code:ke.OPERATION_FAILED,extraCode:5504,message:o.message,originError:o}))}),this._listenEvents(),this._initActiveSpeaker(),ry(this,"trtc")}static create(e){}static _create(e,r){$T();let o=new We(e,r||{});return dd.add(o),o.__v_skip=!0,o}get room(){return this._room}_listenEvents(){yr(this,this._room).add("peer-join",e=>{let{userId:r}=e;this.emit(Ne.REMOTE_USER_ENTER,{userId:r})}).add("peer-leave",e=>{this.emit(Ne.REMOTE_USER_EXIT,{userId:e})}).add("banned",e=>{Ro(!0),this._exitRoom().finally(()=>{this.emit(Ne.KICKED_OUT,{reason:e.reason})})}).add("error",e=>{this._exitRoom().finally(()=>{this.emit(Ne.ERROR,Oe.convertFrom(e))})}).add("signal-connection-state-changed",e=>{this.emit(Ne.CONNECTION_STATE_CHANGED,e)}).add("network-quality",e=>{this._networkQuality=e;let r=qe(be({},e),{uplinkRTT:Math.min(e.uplinkRTT,Va),downlinkRTT:Math.min(e.downlinkRTT,Va)});this.emit(Ne.NETWORK_QUALITY,r)}).add("remote-published",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{yr(o,o).add("player-state-changed",s=>{let n=qe(be({},s),{userId:e.userId});o.kind===j.VIDEO&&(n.streamType=Ji(o.streamType)),this.emit(o.kind===j.AUDIO?Ne.AUDIO_PLAY_STATE_CHANGED:Ne.VIDEO_PLAY_STATE_CHANGED,n)}).add("error",s=>{s.getCode()===Te.PLAY_NOT_ALLOWED&&this.emit(Ne.AUTOPLAY_FAILED,{userId:o.userId,mediaType:o.strMediaType,resume:()=>o.player.resume()})})})}).add("remote-unpublished",e=>{[e.remoteAudioTrack,e.remoteVideoTrack,e.remoteAuxiliaryTrack].forEach(o=>{tr(o)})}).add("remote-publish-state-changed",({prevMuteState:e,muteState:r})=>{let{userId:o}=r,s=e.audioAvailable,n=e.videoAvailable,{audioAvailable:a,videoAvailable:c}=r;a||this._remoteAudioConfigMap.delete(o),c||this._removeRemoteVideoConfig(o,"main"),r.hasAuxiliary||this._removeRemoteVideoConfig(o,"sub"),n!==c&&(c?this._onVideoAvailable({userId:o,streamType:"main"}):this._onVideoUnavailable({userId:o,streamType:"main"}),this.emit(c?Ne.REMOTE_VIDEO_AVAILABLE:Ne.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"main"})),s!==a&&(a?this._onAudioAvailable({userId:o}):this._onAudioUnavailable({userId:o,muteState:r}),this.emit(a?Ne.REMOTE_AUDIO_AVAILABLE:Ne.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?Ne.REMOTE_VIDEO_AVAILABLE:Ne.REMOTE_VIDEO_UNAVAILABLE,{userId:o,streamType:"sub"}))}).add("sei-message",e=>{this.emit(Ne.SEI_MESSAGE,qe(be({},e),{streamType:Ji(e.streamType)}))}).add("firewall-restriction",()=>{this.emit(Ne.ERROR,new Oe({code:ke.OPERATION_FAILED,extraCode:5501}))}).add("heartbeat-report",e=>{var s,n,a,c,d,m,l;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)||((n=this._networkQuality)==null?void 0:n.uplinkRTT)||((a=this._networkQuality)==null?void 0:a.downlinkRTT)||0,Va),upLoss:((c=this._networkQuality)==null?void 0:c.uplinkLoss)||0,downLoss:((d=this._networkQuality)==null?void 0:d.downlinkLoss)||0,bytesSent:e.bytes_sent||0,bytesReceived:e.bytes_received||0,localStatistics:{audio:{bitrate:(((m=e.msg_up_stream_info.msg_audio_status)==null?void 0:m.uint32_audio_codec_bitrate)||0)/1e3,audioLevel:(((l=e.msg_up_stream_info.msg_audio_status)==null?void 0:l.uint32_audio_level)||0)/fo},video:e.msg_up_stream_info.msg_video_status.filter(f=>r[f.uint32_video_stream_type]).map(f=>({bitrate:(f.uint32_video_codec_bitrate||0)/1e3,width:f.uint32_video_width,height:f.uint32_video_height,frameRate:f.uint32_video_enc_fps,videoType:r[f.uint32_video_stream_type]}))},remoteStatistics:e.msg_down_stream_info.map(f=>({userId:f.msg_user_info.str_identifier,audio:{bitrate:(f.msg_audio_status.uint32_audio_codec_bitrate||0)/1e3,audioLevel:(f.msg_audio_status.uint32_audio_level||0)/fo,point2pointDelay:(f.msg_audio_status.uint32_audio_p2p_delay||0)+(f.msg_audio_status.uint32_audio_cache_ms||0),jitterBufferDelay:f.msg_audio_status.uint32_audio_cache_ms||0},video:f.msg_video_status.map(g=>({bitrate:(g.uint32_video_codec_bitrate||0)/1e3,width:g.uint32_video_width,height:g.uint32_video_height,frameRate:g.uint32_video_dec_fps,videoType:r[g.uint32_video_stream_type],point2pointDelay:(g.uint32_video_p2p_delay||0)+(g.uint32_video_cache_ms||0),jitterBufferDelay:g.uint32_video_cache_ms||0,codec:g.uint32_video_codec}))}))};this.emit(Ne.STATISTICS,o)}).add("custom-message",e=>{this.emit(Ne.CUSTOM_MESSAGE,e)}).add("layerData",e=>this.emit(Ne.LAYER_DATA,e)).add("first-video-frame",e=>{this.emit(Ne.FIRST_VIDEO_FRAME,qe(be({},e),{streamType:Ji(e.streamType)}))}).add("audio-frame",e=>{this.emit(Ne.AUDIO_FRAME,e)}),yr(this,$t).add("audioInputAdded",e=>{this.emit(Ne.DEVICE_CHANGED,{type:"microphone",action:"add",device:e})}).add("audioInputRemoved",e=>{this.emit(Ne.DEVICE_CHANGED,{type:"microphone",action:"remove",device:e})}).add("videoInputAdded",e=>{this.emit(Ne.DEVICE_CHANGED,{type:"camera",action:"add",device:e})}).add("videoInputRemoved",e=>{this.emit(Ne.DEVICE_CHANGED,{type:"camera",action:"remove",device:e})}).add("audioOutputAdded",e=>D(this,null,function*(){if(this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"add",device:e}),pr&&pr.deviceId===Ua){let r=(yield Zo()).find(o=>o.deviceId===Ua);r&&pr.groupId!==r.groupId&&(pr=r,this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))}})).add("audioOutputRemoved",e=>D(this,null,function*(){this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"remove",device:e});let r=(yield Zo())[0];if(!r||!pr||pr.groupId===r.groupId)return;let o=pr.deviceId===e.deviceId,s=pr.deviceId===Ua&&pr.deviceId===r.deviceId;(o||s)&&(pr=r,this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:r}))})),yr(this,cd).add("permission-state-change",e=>{this.emit(Ne.PERMISSION_STATE_CHANGE,e)}),this.room.enableSEI&&this.on(Ne.SEI_MESSAGE,e=>{var o;let r=(o=this.room.remotePublishedUserMap.get(e.userId))==null?void 0:o.remoteVideoTrack;r&&r.updateAlphaRenderInfo(e)})}getNetworkTime(){return to()}use(e){let r,o;return"plugin"in e?(r=e.plugin,o=e.assetsPath):r=e,r.Name==="Chorus"&&(this.room.enableChorus=!0),this._use(r,o)}_use(e,r){let o=this._plugins.get(e.Name);if(o)return this._log.warn("duplicate install plugin",e.Name),o;let s=new e(ty.call(this,{TRTC:We,room:this._room,assetsPath:r,errorModule:{RtcError:Oe,ErrorCode:ke,CoreErrorCode:Te,ErrorCodeDictionary:Kr}}));return this._plugins.set(e.Name,s),s.__v_skip=!0,e.autoStart&&this.startPlugin(e.Name),s}enterRoom(e){return D(this,null,function*(){var c,d;this.enterRoomParams=e;let{scene:r="rtc",enableAutoPlayDialog:o=!0,autoReceiveAudio:s=!0,autoReceiveVideo:n=!1}=e;e.proxy&&(this._room.setProxyServer(e.proxy),!nt(e.proxy)&&e.proxy.turnServer&&((d=(c=this._room).setTurnServer)==null||d.call(c,e.proxy.turnServer,e.proxy.iceTransportPolicy))),this._room.enableAutoPlayDialog=o,this._room.autoReceiveAudio=s,this._room.autoReceiveVideo=n,Nt(e.preferHW)&&(this._room.preferHW=e.preferHW),e.playoutDelay&&(this._room.playoutDelay=e.playoutDelay),e.jitterBufferDelay&&(this._room.jitterBufferDelay=e.jitterBufferDelay);let a={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,useH265:e.useH265,keepAlive:e.keepAlive};e.strRoomId&&!e.roomId?this._room.useStringRoomId=!0:this._room.useStringRoomId=!1,yield this._room.join(a,r,We.frameWorkType),this._checkTrackToPublish(),Gf.start()})}exitRoom(){return D(this,null,function*(){return yield this._exitRoom()})}switchRoom(e){return D(this,null,function*(){if(this.room.isSwitchRoomSupported())try{this._clearRemoteTracks(),yield this._room.switchRoom(e)}catch(r){if(r instanceof Ma&&(r.code===Te.API_CALL_TIMEOUT||r.code===Te.SWITCH_ROOM_FAILED))this._log.warn(`switchRoom ${r.code===Te.API_CALL_TIMEOUT?"timeout":"failed"}, fallback to exitRoom() and enterRoom()`),yield this._rejoinRoom(e);else throw r}else yield this._rejoinRoom(e)})}_rejoinRoom(e){return D(this,null,function*(){yield this.exitRoom();let r=be(be({},this.enterRoomParams),e);yield this.enterRoom(r)})}_clearRemoteTracks(){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(),iy(this),this._room.remotePublishedUserMap.forEach(e=>{tr(e.remoteAudioTrack),tr(e.remoteVideoTrack),tr(e.remoteAuxiliaryTrack)})}switchRole(e,r){return D(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(){this._plugins.forEach(e=>{var r;return(r=e.destroy)==null?void 0:r.call(e)}),this._plugins.clear(),tr(this),this.removeAllListeners(),this._room.destroy(),dd.delete(this),dd.size===0&&Gf.destroy(),this._localAudioTrack&&this.stopLocalAudio(),this._localVideoTrack&&this.stopLocalVideo(),this._localScreenTrack&&this.stopScreenShare(),ee.off("102",this._onLocalTrackCaptured,this)}startLocalAudio(){return D(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,n=new Gi(this._room.audioManager),a={},c={muted:!0};s&&(z(s.microphoneId)?z(s.audioTrack)||(a.customSource=s.audioTrack):a.deviceId=s.microphoneId,s&&ft(s.captureVolume)&&n.setCaptureVolume(s.captureVolume),z(s.profile)||(nt(s.profile)?Vd[s.profile]&&n.setProfile(Vd[s.profile]):n.setProfile(s.profile)),ft(s.earMonitorVolume)&&(c.muted=!(s.earMonitorVolume>0),c.volume=s.earMonitorVolume),z(s.echoCancellation)||(n.profile.echoCancellation=s.echoCancellation),z(s.noiseSuppression)||(n.profile.noiseSuppression=s.noiseSuppression),z(s.autoGainControl)||(n.profile.autoGainControl=s.autoGainControl),Nt(this._enableAutoSwitchWhenRecapturing)&&(n.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),n.on("5",d=>{this.emit(Ne.ERROR,new Oe({code:ke.DEVICE_ERROR,extraCode:5309,messageParams:{error:d}}))}),n.on("2",d=>{this.emit(Ne.DEVICE_CHANGED,{type:"microphone",action:"active",device:d})}),n.on("4",d=>{let m;d.error&&(m=Oe.convertFrom(d.error)),this.emit(Ne.PUBLISH_STATE_CHANGED,qe(be({},d),{error:m}))}),n.on("6",()=>{}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId),yield n.capture(a),z(o)||n.setMute(o),yr(n,n).add("player-state-changed",d=>{this.emit(Ne.AUDIO_PLAY_STATE_CHANGED,qe(be({},d),{userId:""}))}),r&&this._room.isJoined&&this._room.publish(n).catch(()=>{}),this._localAudioTrack=n,this._localAudioConfig=qe(be({},e),{publish:r}),yield this._updateAudioPlayOption({playOption:c,track:n}),ee.emit("113",{userId:"",room:this.room})})}updateLocalAudio(e){return D(this,null,function*(){if(!this._localAudioTrack||!this._localAudioConfig)return;let{publish:r,mute:o,option:s}=e,n={};s&&(s.microphoneId?yield this._localAudioTrack.switchDevice(s.microphoneId):z(s.audioTrack)||(yield this._localAudioTrack.setInputMediaStreamTrack(s.audioTrack)),z(s.captureVolume)||this._localAudioTrack.setCaptureVolume(s.captureVolume),z(s.earMonitorVolume)||(n.muted=!(s.earMonitorVolume>0),n.volume=s.earMonitorVolume),yield this._localAudioTrack.update3A(s)),this._room.isJoined&&!z(r)&&(r&&!this._localAudioConfig.publish&&this._room.publish(this._localAudioTrack).catch(()=>{}),this._localAudioConfig.publish&&!r&&this._room.unpublish(this._localAudioTrack).catch(()=>{})),z(o)||this._localAudioTrack.setMute(o),yield this._updateAudioPlayOption({playOption:n,track:this._localAudioTrack,prevConfig:this._localAudioConfig}),Ei(this._localAudioConfig,e)})}stopLocalAudio(){return D(this,null,function*(){this._localAudioTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localAudioTrack).catch(()=>{})),ee.emit("114",{userId:"",room:this.room}),this._localAudioTrack.stop(),this._localAudioTrack.close(),this._room.audioManager.removeInput(this._localAudioTrack),tr(this._localAudioTrack),this._localAudioTrack=null,this._localAudioConfig=null)})}startLocalVideo(){return D(this,arguments,function*(e={publish:!0,view:null,capture:!0}){var l;if(this._localVideoTrack){this._log.warn("local video is already started");return}let{view:r,publish:o=!0,capture:s=!0,mute:n,option:a}=e,c=new Zr(this._room.videoManager),d={},m={};a&&(Nt(a.avoidCropping)&&(c.avoidCropping=a.avoidCropping),a.cameraId?d.deviceId=a.cameraId:z(a.useFrontCamera)?z(a.videoTrack)||(d.customSource=a.videoTrack):d.facingMode=a.useFrontCamera?j.FACING_MODE_USER:j.FACING_MODE_ENVIRONMENT,z(a.retryWhenExactFailed)||(d.retryWhenExactFailed=a.retryWhenExactFailed),a.qosPreference&&(d.contentHint=Jc(a.qosPreference)),z(a.profile)||(nt(a.profile)?gi[a.profile]&&c.setProfile(gi[a.profile]):c.setProfile(a.profile)),z(a.fillMode)||(m.objectFit=a.fillMode),z(a.mirror)||(m.mirror=a.mirror),z(a.small)||(z(a.smallMode)||(this._room.smallMode=a.smallMode),Nt(a.small)&&a.small===!1?c.stopSmall():c.updateSmallConfig(_a(a.small,!0))),z(a.rotation)||c.setRotation(a.rotation),Nt(this._enableAutoSwitchWhenRecapturing)&&(c.enableAutoSwitchWhenRecapturing=this._enableAutoSwitchWhenRecapturing)),c.once("first-video-frame",f=>{this.emit(Ne.FIRST_VIDEO_FRAME,qe(be({},f),{streamType:Ji(f.streamType)}))}),c.on("5",f=>{this.emit(Ne.ERROR,new Oe({code:ke.DEVICE_ERROR,extraCode:5308,messageParams:{error:f}}))}),c.on("2",f=>{this.emit(Ne.DEVICE_CHANGED,{type:"camera",action:"active",device:f})}),c.on("4",f=>{let g;f.error&&(g=Oe.convertFrom(f.error)),this.emit(Ne.PUBLISH_STATE_CHANGED,qe(be({},f),{error:g}))}),c.on("6",()=>{}),this._listenOutputTrackChanged(c),s?yield c.capture(d):(l=c.manager)==null||l.changeInput(c),z(n)||(yield c.setMute(n)),yr(c,c).add("player-state-changed",f=>{this.emit(Ne.VIDEO_PLAY_STATE_CHANGED,qe(be({},f),{userId:"",streamType:"main"}))}).add("video-size-changed",f=>{this.emit(Ne.VIDEO_SIZE_CHANGED,qe(be({},f),{streamType:Ji(f.streamType)}))}),o&&this._room.isJoined&&this._room.publish(c).catch(()=>{}),this._localVideoTrack=c,this._localVideoConfig=qe(be({},e),{view:r,publish:o,capture:s}),yield this._updateVideoPlayOption({view:r,playOption:m,track:c})})}updateLocalVideo(e){return D(this,null,function*(){var d,m,l;if(!this._localVideoTrack||!this._localVideoConfig)return;let{view:r,publish:o,mute:s,capture:n,option:a}=e,c={};if(this._localVideoConfig.capture)n!==!1?a!=null&&a.cameraId?yield this._localVideoTrack.switchDevice(a==null?void 0:a.cameraId):z(a==null?void 0:a.useFrontCamera)?z(a==null?void 0:a.videoTrack)||(yield this._localVideoTrack.setInputMediaStreamTrack(a==null?void 0:a.videoTrack)):yield this._localVideoTrack.switchDevice(a!=null&&a.useFrontCamera?j.FACING_MODE_USER:j.FACING_MODE_ENVIRONMENT):this._localVideoTrack.stopCapture();else if(n){let f={};f.deviceId=(a==null?void 0:a.cameraId)||((d=this._localVideoConfig.option)==null?void 0:d.cameraId),f.facingMode=a!=null&&a.useFrontCamera||(m=this._localVideoConfig.option)!=null&&m.useFrontCamera?j.FACING_MODE_USER:j.FACING_MODE_ENVIRONMENT,f.customSource=(a==null?void 0:a.videoTrack)||((l=this._localVideoConfig.option)==null?void 0:l.videoTrack),yield this._localVideoTrack.capture(f)}a&&(z(a.profile)||(nt(a.profile)?gi[a.profile]&&this._localVideoTrack.setProfile(gi[a.profile]):this._localVideoTrack.setProfile(a.profile),(!a.cameraId||!this._localVideoTrack.isNeedToSwitchDevice(a.cameraId))&&z(a.useFrontCamera)&&(yield this._localVideoTrack.applyProfile())),z(a.fillMode)||(c.objectFit=a.fillMode),z(a.mirror)||(c.mirror=a.mirror),z(a.rotation)||this._localVideoTrack.setRotation(a.rotation),a.qosPreference&&this._localVideoTrack.mediaTrack&&this._localVideoTrack.setContentHint(Jc(a.qosPreference)),z(a.small)||(Nt(a.small)&&!a.small?this._localVideoTrack.stopSmall():this._localVideoTrack.updateSmallConfig(_a(a.small,!0)))),this._room.isJoined&&z(o)&&this._localVideoConfig.publish&&n&&!this._localVideoConfig.capture&&this._room.publish(this._localVideoTrack).catch(()=>{}),this._room.isJoined&&((o!=null?o:this._localVideoConfig.publish)?this._room.publish(this._localVideoTrack).catch(()=>{}):this._room.unpublish(this._localVideoTrack).catch(()=>{})),z(s)||(yield this._localVideoTrack.setMute(s)),yield this._updateVideoPlayOption({view:r,playOption:c,track:this._localVideoTrack,prevConfig:this._localVideoConfig}),Ei(this._localVideoConfig,e)})}stopLocalVideo(){return D(this,null,function*(){this._localVideoTrack&&(this._room.isJoined&&(yield this._room.unpublish(this._localVideoTrack).catch(()=>{})),this._localVideoTrack.stop(),this._localVideoTrack.close(),tr(this._localVideoTrack),this._localVideoTrack=null,this._localVideoConfig=null)})}startScreenShare(){return D(this,arguments,function*(e={publish:!0,view:null}){var f,g;if(this._localScreenTrack){this._log.warn("screen share is already started");return}let{view:r=null,publish:o=!0,muteSystemAudio:s,option:n}=e,a=new zi(this._room.videoManager);a.on("4",T=>{let E;T.error&&(E=Oe.convertFrom(T.error)),this.emit(Ne.PUBLISH_STATE_CHANGED,qe(be({},T),{error:E}))}),a.once("first-video-frame",T=>{this.emit(Ne.FIRST_VIDEO_FRAME,qe(be({},T),{streamType:Ji(T.streamType)}))}),this._listenOutputTrackChanged(a),e.streamType==="main"&&(a.mediaType=4);let c=null,d={},m={};n&&(z(n.profile)||(nt(n.profile)?Bd[n.profile]&&a.setProfile(Bd[n.profile]):a.setProfile(n.profile)),n.systemAudio&&(d.systemAudio=!0,d.echoCancellation=n.echoCancellation,d.noiseSuppression=n.noiseSuppression,d.autoGainControl=n.autoGainControl),z(n.fillMode)||(m.objectFit=n.fillMode),n.videoTrack&&(d.videoTrack=n.videoTrack),n.audioTrack&&(d.audioTrack=n.audioTrack),n.captureElement&&(d.captureElement=n.captureElement),n.preferDisplaySurface&&(d.preferDisplaySurface=n.preferDisplaySurface),n.qosPreference&&(d.contentHint=Jc(n.qosPreference)));let l=yield a.capture(d);if(a.mediaTrack.addEventListener(j.ENDED,()=>{this._stopScreenShare(),this.emit(Ne.SCREEN_SHARE_STOPPED)}),l.getAudioTracks()[0]){c=new an(this._room.audioManager);let T=l.getAudioTracks()[0];(f=e.option)!=null&&f.systemAudio&&!((g=e.option)!=null&&g.audioTrack)&&(c.sourceTrack=T),yield c.setInputMediaStreamTrack(T),Nt(s)&&c.mediaTrack&&(c.mediaTrack.enabled=!s),this._speakerId&&c.setAudioOutput(this._speakerId)}if(yr(a,a).add("player-state-changed",T=>{this.emit(Ne.VIDEO_PLAY_STATE_CHANGED,qe(be({},T),{userId:"",streamType:"sub"}))}),o&&this._room.isJoined){let T=[a];c&&(T.push(c),this._checkScreenAudioEchoCancellation(a,c)),T.forEach(E=>this._room.publish(E).catch(()=>{}))}this._localScreenTrack=a,this._localScreenAudioTrack=c,this._localScreenConfig=qe(be({},e),{view:r,publish:o}),yield this._updateVideoPlayOption({view:r,playOption:m,track:a})})}updateScreenShare(e){return D(this,null,function*(){var c;if(!this._localScreenTrack||!this._localScreenConfig)return;let{view:r,publish:o,muteSystemAudio:s,option:n}=e,a={};if(n&&(z(n.fillMode)||(a.objectFit=n.fillMode),n.qosPreference)){let d=Jc(n.qosPreference);this._localScreenTrack.setContentHint(d)}if(this._room.isJoined&&!z(o)){if(o&&!this._localScreenConfig.publish){let d=[this._localScreenTrack];this._localScreenAudioTrack&&d.push(this._localScreenAudioTrack),d.forEach(m=>this._room.publish(m).catch(()=>{}))}if(this._localScreenConfig.publish&&!o){let d=[this._localScreenTrack];this._localScreenAudioTrack&&d.push(this._localScreenAudioTrack),d.forEach(m=>this._room.unpublish(m).catch(()=>{}))}}(c=this._localScreenAudioTrack)!=null&&c.mediaTrack&&Nt(s)&&(this._localScreenAudioTrack.mediaTrack.enabled=!s),yield this._updateVideoPlayOption({view:r,playOption:a,track:this._localScreenTrack,prevConfig:this._localScreenConfig}),Ei(this._localScreenConfig,e)})}stopScreenShare(){return D(this,null,function*(){return yield this._stopScreenShare()})}startRemoteVideo(e){return D(this,null,function*(){let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`;if(this._remoteVideoConfigMap.has(a)){this._log.warn(`remote video has already started. userId:${o}, streamType:${s}`);return}let c=this._room.remotePublishedUserMap.get(o);if(!c)return;let d={},m=s==="main"?c.remoteVideoTrack:c.remoteAuxiliaryTrack;m.on("decode-failed",l=>{this.emit(Ne.ERROR,new Oe({code:ke.OPERATION_FAILED,extraCode:5507,message:"video decode failed"}))}),m.on("video-size-changed",l=>{this.emit(Ne.VIDEO_SIZE_CHANGED,qe(be({},l),{streamType:Ji(l.streamType)}))}),this._listenOutputTrackChanged(m),n&&(z(n.fillMode)||(d.objectFit=n.fillMode),z(n.mirror)||(d.mirror=n.mirror),z(n.poster)||(d.poster=n.poster),d.canvasRender=n.canvasRender,s==="main"&&!z(n.small)&&(!c.remoteVideoTrack.isSubscribing&&!c.remoteVideoTrack.isSubscribed&&c.remoteVideoTrack.setMediaType(n.small?8:4),this._room.changeType(n.small,m.user)),z(n.draggable)||m.setDraggable(n.draggable)),yield this._room.subscribe(m),yield this._enableVideoDecodeFallback(m,s),yield this._updateVideoPlayOption({view:r,playOption:d,track:m}),this._emitTrackEvent(m),this._remoteVideoConfigMap.set(a,{config:e}),n&&!z(n.receiveWhenViewVisible)&&this._observeView({remoteTrack:m,view:r,receiveWhenViewVisible:n.receiveWhenViewVisible,viewRoot:n==null?void 0:n.viewRoot})})}updateRemoteVideo(e){return D(this,null,function*(){var y,v;let{view:r,userId:o,streamType:s,option:n}=e,a=`${o}_${s}`,c=this._remoteVideoConfigMap.get(a);if(!c||!this._room.remotePublishedUserMap.has(o))return;let d={};n&&(z(n.fillMode)||(d.objectFit=n.fillMode),z(n.mirror)||(d.mirror=n.mirror));let m=null,l=this._room.remotePublishedUserMap.get(o);if(s==="main"&&(l!=null&&l.muteState.hasVideo)&&(m=l.remoteVideoTrack),s==="sub"&&(l!=null&&l.muteState.hasAuxiliary)&&(m=l.remoteAuxiliaryTrack),!m)return;let{config:f}=c;s==="main"&&n&&!z(n.small)&&this._room.changeType(n.small,m.user),n&&!z(n.draggable)&&m.setDraggable(n.draggable),yield this._updateVideoPlayOption({view:r,playOption:d,track:m,prevConfig:f}),Ei(f,e);let g=z(n==null?void 0:n.receiveWhenViewVisible)?(y=f.option)==null?void 0:y.receiveWhenViewVisible:n.receiveWhenViewVisible,T=z(r)?f.view:r,E=z(n==null?void 0:n.viewRoot)?(v=f.option)==null?void 0:v.viewRoot:n.viewRoot;this._observeView({remoteTrack:m,view:T,receiveWhenViewVisible:g,viewRoot:E})})}stopRemoteVideo(e){return D(this,null,function*(){return this._stopRemoteVideo(e)})}_stopRemoteVideo(e,r=!0){return D(this,null,function*(){let o=[],s=this._room.remotePublishedUserMap.get(e.userId);if(s){let{muteState:n,remoteVideoTrack:a,remoteAuxiliaryTrack:c}=s;e.streamType==="main"&&(a.stop(),n.hasVideo&&o.push(a)),e.streamType==="sub"&&(c.stop(),n.hasAuxiliary&&o.push(c))}for(let n of o)r&&(yield this._room.unsubscribe(n),this._mediaTrackMap.delete(n.outMediaTrack));this._removeRemoteVideoConfig(e.userId,e.streamType)})}_removeRemoteVideoConfig(e,r){let o=`${e}_${r}`,s=this._remoteVideoConfigMap.get(o);s&&s.observer&&s.observer.disconnect(),this._remoteVideoConfigMap.delete(o)}muteRemoteAudio(e,r){return D(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 o.code!==ke.OPERATION_ABORT&&this._remoteAudioMuteMap.delete(e),o}})}setRemoteAudioVolume(e,r){if(e==="*"){this._remoteAudioVolumeMap.set("*",r),this._remoteAudioVolumeMap.forEach((s,n)=>this._remoteAudioVolumeMap.set(n,r));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 D(this,null,function*(){return e.start(r)})}updatePlugin(e,r){return D(this,null,function*(){return e.update(r)})}stopPlugin(e,r){return D(this,null,function*(){return e.stop(r)})}enableAudioVolumeEvaluation(e=2e3,r=!1){this._room.enableAudioVolumeEvaluation(e,r)}on(e,r,o){if(this.listeners(e).includes(r))return this;if(this._log.debug("on",e),super.on(e,r,o),this._eventListened.add(e),this.listeners(Ne.AUDIO_FRAME).length>0){let{audioFrameEventConfigMap:s}=this.room.audioManager;s.get("")||s.set("",{enable:!0}),this._localAudioTrack&&this.room.audioManager.handleLocalTrackStarted({userId:"",room:this.room})}return this}emit(e,...r){try{YT.has(e)||this._log.debug(`emit ${e} ${JSON.stringify(r)}`)}catch(o){}return super.emit(e,...r)}off(e,r,o){if(this._log.debug("off",e),e==="*"?(this._eventListened.clear(),this.removeAllListeners()):super.off(e,r,o),(e===We.EVENT.AUDIO_FRAME||e==="*")&&this.listeners(We.EVENT.AUDIO_FRAME).length===0){let{getPCMAbortCtrlMap:s}=this.room.audioManager;s.forEach(n=>{n==null||n.abort("off")}),s.clear()}return this}getAudioTrack(e={userId:"",streamType:"main"}){let r,o=null,s="main",n=!1;if(nt(e)?r=e:(r=e.userId,n=e.processed===!0,e.streamType&&(s=e.streamType)),r){let a=this._room.remotePublishedUserMap.get(r);a&&(o=a.remoteAudioTrack)}else o=s==="sub"?this._localScreenAudioTrack:this._localAudioTrack;return o?n&&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,n=null;if(r==="")o==="main"&&this._localVideoTrack&&(n=this._localVideoTrack),o==="sub"&&this._localScreenTrack&&(n=this._localScreenTrack);else{let a=this._room.remotePublishedUserMap.get(r);a&&(n=o==="main"?a.remoteVideoTrack:a.remoteAuxiliaryTrack)}return n?s&&n.outMediaTrack&&n.outMediaTrack!==n.mediaTrack?n.outMediaTrack.clone():n.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 D(this,null,function*(){(yield Zo()).forEach(o=>{o.deviceId===e&&(this._setCurrentSpeaker(e),this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:o}),pr=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: ${Br}/en/TRTC.html#.setCurrentSpeaker`)})}_startRemoteAudio(e){return this._doStartRemoteAudio(e)}_doStartRemoteAudio(e){return D(this,null,function*(){var a;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={},n=o.remoteAudioTrack;n.on("decode-failed",c=>{this.emit(Ne.ERROR,new Oe({code:ke.OPERATION_FAILED,extraCode:5508,message:"audio decode failed"}))}),this._listenOutputTrackChanged(n),this._speakerId&&n.setAudioOutput(this._speakerId);try{let c=(a=this._remoteAudioVolumeMap.get(r))!=null?a:this._remoteAudioVolumeMap.get("*"),d=ft(c)?c:100;s.volume=d,this._remoteAudioConfigMap.set(r,e),yield this._room.subscribe(n),Ye(Qe(n,"decode-failed"),At(Qe(n,Ve.INIT)),lt(()=>{this.startPlugin(ad.Name,{track:n,type:"auto",config:{codec:"opus",sampleRate:48e3,numberOfChannels:1}})})),yield this._updateAudioPlayOption({playOption:s,track:n}),ee.emit("115",{userId:r,room:this.room}),n.outMediaTrack&&this.room.audioManager.updateAudioReference({type:"add",audioReference:n.outMediaTrack,refId:`ra-${r}`})}catch(c){throw this._remoteAudioConfigMap.delete(r),c}this._emitTrackEvent(n)})}_stopRemoteAudio(e,r=!0){return D(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}`),ee.emit("116",{userId:e.userId,room:this.room}),this.room.audioManager.updateAudioReference({type:"remove",refId:`ra-${e.userId}`})})}_enableVideoDecodeFallback(e,r){let o=this._room.videoDecodeFallbackType;if(!o||!this._plugins.has("TRTCVideoDecoder"))return;e.log.debug("remote video will fall back when decode failed",e.id);let s;Ye(Qe(e,"decode-failed"),At(Qe(e,Ve.INIT)),en(()=>{this._room.downlinkVideoCodec!=="h265"&&this.startPlugin("TRTCVideoDecoder",{type:"auto",renderer:"videoFrame",track:e,config:{codec:"avc1.420028"},fallback:o})}),Io(Qe(e,"decode-downgrade-state-changed")),lt(n=>{s=n.state,this.emit(Ne.VIDEO_DECODE_DOWNGRADE_STATE_CHANGED,qe(be({},n),{streamType:r,userId:e.userId}))},n=>{e.log.error("fallback",n)},()=>{s==="STARTED"&&e.log.info("fallback complete")}))}_updateVideoPlayOption(n){return D(this,arguments,function*({view:e,playOption:r,track:o,prevConfig:s}){if(o.setMirror(r.mirror),z(e)&&s&&s.view&&!Pn(r)){let a=Vn(s.view);a.length>0&&(yield o.play(a,r))}if(!z(e)){let a=Vn(e);a.length>0?yield o.play(a,r):o.stop()}})}_updateAudioPlayOption(s){return D(this,arguments,function*({playOption:e={},track:r,prevConfig:o}){if(!r.isPlayCalled)try{yield r.play(null,e)}catch(n){}if(z(e.muted)||r.setPlayerMute(e.muted),z(e.volume)||r.setAudioVolume(e.volume/100),r instanceof Gi&&r.mediaTrack){let n=e.muted===!1&&!z(e.volume)&&e.volume>0?"add":"remove";this.room.audioManager.updateAudioReference({type:n,audioReference:r.mediaTrack,refId:"em"})}else if(r instanceof bo){let n=e.muted?0:e.volume;if(z(n))return;this.room.audioManager.updateAudioReference({type:"updateVolume",refId:`ra-${r.userId}`,volume:e.volume})}})}_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(Ne.TRACK,{userId:o,streamType:Ji(e.streamType),track:e.outMediaTrack,sourceTrack:e.mediaTrack})))}_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),this._checkScreenAudioEchoCancellation(this._localScreenTrack,this._localScreenAudioTrack)),e.length!==0)return Promise.all(e.map(n=>this._room.publish(n).catch(()=>{})))}_observeView({remoteTrack:e,view:r,receiveWhenViewVisible:o=!1,viewRoot:s}){if(z(r))return;let n=this._remoteVideoConfigMap.get(`${e.userId}_${Ji(e.streamType)}`);if(!n)return;let a=n.observer||void 0;if(r===null||Gt(r)&&r.length===0||!o){a==null||a.disconnect(),e.isSubscribed||this._room.subscribe(e).catch(()=>{});return}let d=n.visibleViewMap||new Map,m=-1;(!a||a.root!==s)&&(a==null||a.disconnect(),d.clear(),a=new IntersectionObserver(f=>{f.forEach(g=>{d.set(g.target,g.isIntersecting),e.log.info(`view ${g.target.id} is${g.isIntersecting?"":" not"} visible`)}),clearTimeout(m),m=window.setTimeout(()=>{[...d.values()].find(T=>T)?e.isSubscribed||this._room.subscribe(e).catch(()=>{}):e.isSubscribed&&this._room.unsubscribe(e).catch(()=>{})},200)},{root:s}));let l=new Set(Vn(r));d.forEach((f,g)=>{l.has(g)||(a.unobserve(g),d.delete(g))}),l.forEach(f=>{d.set(f,!0),a.observe(f)}),a.takeRecords().forEach(f=>{d.set(f.target,f.isIntersecting)}),n.visibleViewMap=d,n.observer=a}_exitRoom(){return D(this,null,function*(){this._room.isJoined&&(yield this._room.leave()),this._clearRemoteTracks()})}_stopScreenShare(){return D(this,null,function*(){var e;if(this._localScreenTrack){if(this._room.isJoined){let r=[this._localScreenTrack];this._localScreenAudioTrack&&r.push(this._localScreenAudioTrack),yield Promise.all(r.map(o=>this._room.unpublish(o).catch(()=>{})))}this._localScreenTrack.stop(),this._localScreenTrack.close(),this._localScreenAudioTrack&&(((e=this._localScreenAudioTrack.trackSettings)==null?void 0:e.echoCancellation)===!1&&this.stopPlugin("AudioProcessor"),this._localScreenAudioTrack.stop(),this._localScreenAudioTrack.close(),this._room.audioManager.removeInput(this._localScreenAudioTrack),this._localScreenAudioTrack=null),tr(this._localScreenTrack),this._localScreenTrack=null,this._localScreenConfig=null}})}_checkScreenAudioEchoCancellation(e,r){return D(this,null,function*(){var s,n;if(!e||!r)return;let o=(s=e.trackSettings)==null?void 0:s.displaySurface;if(((n=r.trackSettings)==null?void 0:n.echoCancellation)===!1&&(o==="monitor"||o==="browser"&&e.isShareCurrentTab)){this._log.warn("echoCancellation of screen audio track is disable. Try starting audioProcessor plugin");try{yield this.startPlugin("AudioProcessor",{sdkAppId:Number(this.room.sdkAppId),userId:this._room.userId,userSig:this.room.userSig,isScreenAudioNeedAudioProcess:!0,isLocalAudioNeedAudioProcess:!1})}catch(a){this._log.warn("start audioProcessor plugin failed: ",a)}}})}_onLocalTrackCaptured({track:e}){e.kind==="audio"&&(!pr||sa(pr))&&(this._initActiveSpeaker(),ee.off("102",this._onLocalTrackCaptured,this))}_initActiveSpeaker(){return D(this,null,function*(){if(pr&&!sa(pr))this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:pr});else{let e=yield Zo();e[0]&&!sa(e[0])?(pr=e[0],this.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:e[0]})):ee.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,n=[s];this._room.autoReceiveAudio&&o.remoteAudioTrack.isAvailable&&n.push(o.remoteAudioTrack),this._room.subscribe(...n).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:qe(be({seiPayloadType:243},r),{small:!!((s=this._localVideoTrack)!=null&&s.small)})}),Se.addCount({key:5e5,useUV:!0}))}sendCustomMessage(e){var r,o;(o=(r=this._room).sendCustomMessage)==null||o.call(r,e),Se.addCount({key:500001,useUV:!0})}callExperimentalAPI(e,r){return D(this,null,function*(){return this._log.info(`callExperimentalAPI(${e}, ${JSON.stringify(r)})`),Cy.call(e,be({trtcInstance:this},r))})}static setLogLevel(e,r){se.setLogLevel(e),z(r)||(r?se.enableUploadLog():se.disableUploadLog())}static isSupported(){return Vu(We.frameWorkType)}static getPermissions(o){return D(this,arguments,function*({request:e=!0,types:r=["camera","microphone"]}){e&&(yield cd.request(r).catch(a=>{var c;return se.error(`getPermissions request failed, error: ${(c=a==null?void 0:a.message)!=null?c:a}`)}));let[s,n]=yield Promise.all([cd.get("camera"),cd.get("microphone")]);return{camera:s,microphone:n}})}static getCameraList(e=!0){return zr(e)}static getMicrophoneList(e=!0){return Gr(e)}static getSpeakerList(e=!0){return Zo(e)}static setCurrentSpeaker(e){return D(this,null,function*(){if(Bt&&(e===un.SPEAKER||e===un.HEADSET)){let o=yield We.getMicrophoneList(),s="";if(o.forEach(n=>{n.label===e&&(s=n.deviceId)}),!s)return;dd.forEach(n=>D(this,null,function*(){n._localAudioTrack&&(yield n.updateLocalAudio({option:{microphoneId:s}}))}));return}(yield Zo()).forEach(o=>{o.deviceId===e&&(dd.forEach(s=>{s._setCurrentSpeaker(e),s.emit(Ne.DEVICE_CHANGED,{type:"speaker",action:"active",device:o})}),pr=o)})})}static _addKVStat({type:e,key:r,value:o,base:s,useUV:n,version:a,max:c}){switch(a&&(Gs.version=a),e){case"count":Gs.addCount({key:r,useUV:n});break;case"enum":Gs.addEnum({key:r,value:o,useUV:n});break;case"number":Gs.addNumber({key:r,value:o,split:s,max:c});break}}};p(We,"VERSION",Vf),p(We,"_loggerManager",se),p(We,"EVENT",Ne),p(We,"ERROR_CODE",ke),p(We,"TYPE",un),p(We,"frameWorkType",30),Ie([Vt({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"}})})],We.prototype,"use",1),Ie([br(ur.TRTC.enterRoom),as("room",([e],[r])=>(e.roomId||e.strRoomId)===(r.roomId||r.strRoomId)&&e.userId===r.userId&&e.sdkAppId===r.sdkAppId),ut(e=>function(r){return this._log.setUserId(r.userId),this._log.setSdkAppId(r.sdkAppId),e.call(this,r)}),Vt()],We.prototype,"enterRoom",1),Ie([Vt()],We.prototype,"exitRoom",1),Ie([br(ur.TRTC.switchRoom),Vt(),el()],We.prototype,"switchRoom",1),Ie([br(ur.TRTC.switchRole),hn("room",{merge:(e,r)=>r}),Vt()],We.prototype,"switchRole",1),Ie([Vt()],We.prototype,"destroy",1),Ie([br(ur.TRTC.startLocalAudio),as("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)}),Vt()],We.prototype,"startLocalAudio",1),Ie([br(ur.TRTC.updateLocalAudio),hn("audio",{debounce:{delay:200,getKey:()=>`${Ny}-localAudio`,isNeedToDebounce:e=>{var r;return!z((r=e.option)==null?void 0:r.captureVolume)}}}),Vt()],We.prototype,"updateLocalAudio",1),Ie([cs("audio"),Vt()],We.prototype,"stopLocalAudio",1),Ie([br(ur.TRTC.startLocalVideo),as("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)}),Vt()],We.prototype,"startLocalVideo",1),Ie([br(ur.TRTC.updateLocalVideo),hn("video"),Vt()],We.prototype,"updateLocalVideo",1),Ie([cs("video"),Vt()],We.prototype,"stopLocalVideo",1),Ie([br(ur.TRTC.startScreenShare),as("screen",()=>!0),Vt()],We.prototype,"startScreenShare",1),Ie([br(ur.TRTC.updateScreenShare),hn("screen"),Vt()],We.prototype,"updateScreenShare",1),Ie([Vt()],We.prototype,"stopScreenShare",1),Ie([br(ur.TRTC.startRemoteVideo),as(e=>`v${e.userId}${e.streamType}`,()=>!0),Vt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],We.prototype,"startRemoteVideo",1),Ie([br(ur.TRTC.updateRemoteVideo),hn(e=>`v${e.userId}${e.streamType}`),Vt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],We.prototype,"updateRemoteVideo",1),Ie([br(ur.TRTC.stopRemoteVideo),ut(e=>function(r){return D(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)})}),Vt({getRemoteId:e=>`${e.userId}_${e.streamType}`})],We.prototype,"stopRemoteVideo",1),Ie([cs(e=>`v${e.userId}${e.streamType}`)],We.prototype,"_stopRemoteVideo",1),Ie([br(...ur.TRTC.muteRemoteAudio),Vt({getRemoteId:e=>e})],We.prototype,"muteRemoteAudio",1),Ie([Bf(...ur.TRTC.setRemoteAudioVolume),Zc(200,e=>e),Vt({getRemoteId:e=>e})],We.prototype,"setRemoteAudioVolume",1),Ie([Fl("start"),Ko(e=>{var r;return(r=e.afterStart)==null?void 0:r.call(e)}),as((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r)),Vt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Hm[e.getName()],ignoreLog:e=>e.getName()==="Debug",ignoreErrorLog:e=>e.getName()==="AudioProcessor"})],We.prototype,"startPlugin",1),Ie([Fl("update"),hn((e,r)=>e.disableRandomCall?null:e.getAlias()+e.getGroup(r),{merge:(e,r)=>(Ei(e[1],r[1]),e)}),Vt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Wm[e.getName()]})],We.prototype,"updatePlugin",1),Ie([Fl("stop"),cs((e,r)=>{if(e.disableRandomCall)return null;let o=e.getGroup(r),s=e.getAlias();return o==="*"?new RegExp(`${s}.*`):s+o}),Vt({replaceArg:e=>({argIndex:0,value:e.getName()}),getKVReportKey:e=>Gm[e.getName()]})],We.prototype,"stopPlugin",1),Ie([Bf(...ur.TRTC.enableAudioVolumeEvaluation)],We.prototype,"enableAudioVolumeEvaluation",1),Ie([Vt()],We.prototype,"getVideoSnapshot",1),Ie([Vt()],We.prototype,"_setCurrentSpeaker",1),Ie([as(e=>`a${e.userId}`,()=>!0)],We.prototype,"_startRemoteAudio",1),Ie([ut(e=>function(r){return D(this,null,function*(){return r.userId==="*"?Promise.all([...this._room.remotePublishedUserMap.values()].map(o=>this._stopRemoteAudio(qe(be({},r),{userId:o.userId})).catch(()=>{}))):e.call(this,r)})}),cs(e=>`a${e.userId}`)],We.prototype,"_stopRemoteAudio",1),Ie([cs("room")],We.prototype,"_exitRoom",1),Ie([cs("screen")],We.prototype,"_stopScreenShare",1),Ie([br(...ur.TRTC.sendSEIMessage),xf({timesInSecond:30,maxSizeInSecond:8e3,getSize:(...e)=>e[0].byteLength})],We.prototype,"sendSEIMessage",1),Ie([br(ur.TRTC.sendCustomMessage),xf({timesInSecond:30,maxSizeInSecond:8e3,getSize:e=>e.data.byteLength})],We.prototype,"sendCustomMessage",1),Ie([ds()],We,"create",1),Ie([br(ur.TRTC.create)],We,"_create",1),Ie([ds()],We,"setLogLevel",1),Ie([ds()],We,"isSupported",1),Ie([ds()],We,"getPermissions",1),Ie([ds()],We,"getCameraList",1),Ie([ds()],We,"getMicrophoneList",1),Ie([ds()],We,"getSpeakerList",1);var ng=We,va=ng;var uh=class{constructor(t,e){p(this,"_flag");p(this,"terminalType");p(this,"userId");p(this,"tinyId");p(this,"role");p(this,"remoteAudioTrack");p(this,"remoteVideoTrack");p(this,"remoteAuxiliaryTrack");this.userId=e.userId||"",this.tinyId=e.tinyId||"",this.role=e.role||"audience",this.terminalType=e.terminalType,this.remoteAudioTrack=new bo(t,this),this.remoteVideoTrack=new qi(t,this),this.remoteAuxiliaryTrack=new Al(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 Ms(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 ag=class{constructor(){p(this,"_set",new Set);ee.on(ce.LEAVE_SUCCESS,this.delete,this),ee.on(ce.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess,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))}handleSwitchRoomSuccess({room:t,currentRoomId:e,targetRoomId:r}){t.scene!=="rtc"&&(this._set.delete(this.getKey(t.userId,e,t.sdkAppId,t.useStringRoomId)),this._set.add(this.getKey(t.userId,r,t.sdkAppId,t.useStringRoomId)))}};function i0(){return D(this,null,function*(){let i,t;try{let g=yield Gr();i=g&&g.length}catch(g){}try{let g=yield zr();t=g&&g.length}catch(g){}let e={microphone:i,camera:t},{isH264EncodeSupported:r,isVp8EncodeSupported:o,isH264DecodeSupported:s,isVp8DecodeSupported:n,isH265EncodeSupported:a,isH265DecodeSupported:c}=this.checkSystemResult.detail,d=Jo.basis(),m={webRTC:d.isWebRTCSupported,getUserMedia:d.isGetUserMediaSupported,webSocket:d.isWebSocketsSupported,screenShare:d.isScreenShareSupported,webAudio:d.isWebAudioSupported,h264Encode:r,h264Decode:s,vp8Encode:o,vp8Decode:n,h265Encode:a,h265Decode:c},l={browser:d.browser,os:d.os,trtc:m,devices:e},f={isWebCodecSupported:d.isWebCodecSupported,isMediaSessionSupported:d.isMediaSessionSupported,isWebTransportSupported:d.isWebTransportSupported};It.uploadEvent({log:`trtcstats-${JSON.stringify(l)}`,userId:this.userId}),this._log.info(`TrtcStats-${JSON.stringify(l)}`),It.uploadEvent({log:`trtcadvancedstats-${JSON.stringify(f)}`,userId:this.userId}),tp()})}function Oy(){return ut(i=>{let t=new ag;return function(e,r,o){return D(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 Me({code:Te.INVALID_OPERATION,message:Et({key:_t.INVALID_JOIN})});if(this.checkDestroy(),t.isJoined({userId:this.userId,roomId:s,sdkAppId:this.sdkAppId,room:this}))throw new Me({code:Te.INVALID_OPERATION,message:Et({key:_t.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}`),ee.emit(ce.JOIN_START,{room:this,roomId:s,params:e});let n=Vi.getEnv();n||(n=ro.QCLOUD,this.proxy_ws&&(this.proxy_ws.startsWith($d.OLD_CLOUD_LADDER)?n=ro.OLD_CLOUD_LADDER:this.proxy_ws.startsWith($d.WEBRTC)&&(n=ro.WEBRTC))),It.setConfig({env:n,sdkAppId:String(this.sdkAppId),userId:this.userId,roomId:s}),Jo.checkSystemRequirementsInternal(o).then(a=>{this.checkSystemResult=a,i0.call(this)});try{!this.proxy_ws&&!this.proxy_wt&&!this.scheduleResult.domains&&!Vi.getEnv()&&(yield this.schedule(e,o));let a=yield i.call(this,e,r,o);return this.roomId=s,this._joinedTimestamp=Vi.performanceNow(),ee.emit(ce.JOIN_SUCCESS,{room:this}),o===30&&!e.component&&It.uploadEvent({log:`stat-conv-${Number(bi)}-${location.hostname}`,userId:this.userId}),a}catch(a){throw t.delete({room:this,roomId:s}),ee.emit(ce.JOIN_FAILED,{room:this,error:a}),a}})}})}var My=()=>ut(i=>function(...t){return D(this,null,function*(){ee.emit(ce.LEAVE_START,{room:this}),yield i.call(this,...t),ee.emit(ce.LEAVE_SUCCESS,{room:this,roomId:this.roomId})})});function xy(){return ut(i=>function(...t){return D(this,null,function*(){if(this.scene==="live"&&this.role!=="anchor"||(t=t.filter(r=>r.outMediaTrack&&r.state==="ready"),!t.length))return;ee.emit("61",{room:this});let e=i.apply(this,t);return Promise.all(t.map(r=>r.publish(this,e)))})})}function ky(){return ut(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>r.unpublish()),e})}function Ly(){return ut(i=>function(...t){let e=i.apply(this,t);return t.forEach(r=>!r.isSubscribed&&r.subscribe(e)),e})}function o0({fn:i,context:t}){return function(...e){try{let r=i.apply(t,e);return $o(r)?r.catch(o=>se.error(`${i.name}() error observed ${o}`)):r}catch(r){se.error(`${i.name}() error observed ${r}`)}}}var lh=class{constructor(t){p(this,"_frameWorkType");p(this,"_component");p(this,"_language");p(this,"connectionType");p(this,"_room");p(this,"_signalInfo",{tinyId:void 0,clientIp:"",signalIp:"",relayIp:"",relayInnerIp:"",relayPort:0,endReportExtend:void 0,reportToken:void 0});p(this,"_keyPrefix");p(this,"_log");p(this,"_intervalId");p(this,"_firstPublishedUserList");p(this,"_networkQuality");p(this,"_basicInfo");p(this,"_pathJoinRoom");p(this,"_pathLeaveRoom");p(this,"_pathMainVideoMap");p(this,"_pathMainAudioMap");p(this,"_pathAuxiliaryMap");p(this,"_remoteStreamStatMap");p(this,"_localStreamStat");p(this,"_eventMap",new Map);p(this,"_captureCostSum",0);p(this,"_captureCostCount",0);p(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=se.createLogger({parent:this._room.getLogger(),id:"kpm",userId:this._room.userId,sdkAppId:this._room.sdkAppId}),Object.getOwnPropertyNames(this.__proto__).forEach(e=>{e.startsWith("handle")&&Rt(this[e])&&(this[e]=o0({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:qt,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,uint32_audio_capture_thread_health_zero_cnt:0,uint32_after3a_silence_duration:0}},this._pathMainVideoMap=new Map,this._pathMainAudioMap=new Map,this._pathAuxiliaryMap=new Map,this._remoteStreamStatMap=new Map,Us().then(()=>{this._basicInfo.string_os_version=ho(),this._basicInfo.string_device_name=Vs()||this._basicInfo.string_os_version})}addEvent(t,e){return this._eventMap.set(t,e),ee.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(ce.JOIN_START,this.handleJoinStart).addEvent(ce.JOIN_SCHEDULE_SUCCESS,this.handleJoinScheduleSuccess).addEvent(ce.JOIN_SIGNAL_CONNECTION_START,this.handleSignalConnectionStart).addEvent(ce.JOIN_SIGNAL_CONNECTION_END,this.handleSignalConnectionEnd).addEvent(ce.JOIN_SEND_CMD,this.handleJoinSendCMD).addEvent(ce.JOIN_RECEIVED_CMD_RES,this.handleJoinReceivedCMDResponce).addEvent(ce.JOIN_SUCCESS,this.handleJoinSuccess).addEvent(ce.JOIN_FAILED,this.handleJoinFailed).addEvent(ce.LEAVE_START,this.handleLeaveStart).addEvent(ce.LEAVE_SUCCESS,this.handleLeaveSuccess).addEvent(ce.LEAVE_SEND_CMD,this.handleLeaveSendCMD).addEvent(ce.LOCAL_TRACK_CAPTURE_START,this.handleTrackCaptureStart).addEvent(ce.LOCAL_TRACK_CAPTURE_SUCCESS,this.handleTrackCaptureSuccess).addEvent(ce.LOCAL_TRACK_CAPTURE_FAILED,this.handleTrackCaptureFailed).addEvent(ce.PUBLISH_START,this.handlePublishStart).addEvent(ce.SEND_FIRST_VIDEO_FRAME,this.handleSendFirstVideoFrame).addEvent(ce.SUBSCRIBE_START,this.handleSubscribeStart).addEvent(ce.SUBSCRIBE_SUCCESS,this.handleSubscribed).addEvent(ce.PLAY_TRACK_START,this.handlePlayStart).addEvent(ce.VIDEO_LOADED_DATA,this.handleVideoLoadedData).addEvent(ce.PLAYER_STATE_CHANGED,({track:t,state:e,type:r})=>{!t.isRemote||!this.hitTest(t.room)||e==="PLAYING"&&(r===j.AUDIO?this.handleAudioPlaying(t):this.handleVideoPlaying(t))}).addEvent(ce.SWITCH_ROOM_START,this.handleSwitchRoomStart).addEvent(ce.SWITCH_ROOM_SUCCESS,this.handleSwitchRoomSuccess).addEvent(ce.SWITCH_ROOM_FAILED,this.handleSwitchRoomFailed).addEvent(ce.NETWORK_QUALITY,this.handleNetworkQuality).addEvent(ce.HEARTBEAT_REPORT,this.handleHeartbeatStats).addEvent(ce.RECEIVED_PUBLISHED_USER_LIST,this.handleReceivedPublishUserList).addEvent(ce.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,n=r.hasAudio||r.hasVideo||r.hasSmall,a=r.hasAuxiliary;!o&&n&&this.handleRemoteStreamAdded(r.userId,"main"),!s&&a&&this.handleRemoteStreamAdded(r.userId,"auxiliary")}).addEvent(ce.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("pagehide",this.handleUnload),this._eventMap.forEach((t,e)=>ee.off(e,t)),this._eventMap.clear()}destroy(){this.uninstallEvents(),Jt.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&&(z(t.params.frameWorkType)||(this._frameWorkType=t.params.frameWorkType,this._basicInfo.uint32_framework=this._frameWorkType),z(t.params.component)||(this._component=t.params.component,this._basicInfo.uint32_component=this._component),z(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:n,tls:a,request:c,response:d}=e;this._pathJoinRoom.int32_schedule_cost=r,this._pathJoinRoom.int32_schedule_local=o,this._pathJoinRoom.int32_schedule_dns=s,this._pathJoinRoom.int32_schedule_tcp=n,this._pathJoinRoom.int32_schedule_tls=a,this._pathJoinRoom.int32_schedule_request=c,this._pathJoinRoom.int32_schedule_response=d}}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 Me?Number(e.getExtraCode()||e.getCode()):Te.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){var e;if(this.hitTest(t.room)&&this._pathLeaveRoom.uint64_end_time===0){if(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;let r=(e=this._room.audioManager.localAudioTrack)==null?void 0:e.after3aSilenceStartTime;r&&(this._localStreamStat.statsToReport.uint32_after3a_silence_duration=Xe()-r)}else 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())}handleSwitchRoomStart(t){if(this.hitTest(t.room)){let e=Date.now();this.report().then(()=>{this._pathJoinRoom.uint64_start_time=e,this._pathJoinRoom.uint64_send_request_enter_room_cmd_start_time=e})}}handleSwitchRoomSuccess({room:t}){if(this.hitTest(t)&&this._pathJoinRoom.uint64_end_time===0){let e=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=e,this._pathJoinRoom.uint64_end_time=e,this._pathJoinRoom.int32_end_ret}}handleSwitchRoomFailed({room:t,error:e}){if(this.hitTest(t)){let r=Date.now();this._pathJoinRoom.uint64_send_request_enter_room_cmd_end_time=r,this._pathJoinRoom.uint64_end_time=r,e&&(this._pathJoinRoom.int32_end_ret=e instanceof Me?Number(e.getExtraCode()||e.getCode()):Te.UNKNOWN)}}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:qe(be({},s0),{msg_user_info:new ud({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:n,role:a}=e,c=new ud({userId:s,tinyId:n,role:a==="anchor"?20:21}),d=Date.now(),m=`${s}_${r}`,l=this._remoteStreamStatMap.get(m);l&&l.subscribeStartTime===0&&(l.subscribeStartTime=d),r==="main"?(e.muteState.hasVideo&&(o.video||o.smallVideo)&&!this._pathMainVideoMap.has(m)&&this._pathMainVideoMap.set(m,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_render_first_frame_time:0,uint64_combine_first_frame_time:0},userId:s,sendSubscribeCMDTime:d}),e.muteState.hasAudio&&o.audio&&!this._pathMainAudioMap.has(m)&&this._pathMainAudioMap.set(m,{statsToReport:{msg_user_info:c,uint64_start_enter_time:this._pathJoinRoom.uint64_start_time,uint64_play_first_frame_time:0},userId:s,sendSubscribeCMDTime:d})):e.muteState.hasAuxiliary&&o.auxiliary&&!this._pathAuxiliaryMap.has(m)&&this._pathAuxiliaryMap.set(m,{sendSubscribeCMDTime:d})}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(s){let{statsToReport:n}=s;if(!n.uint32_video_render_first&&t.streamType==="main"?this.hasVideoFlag(t.userId):this.hasAuxFlag(t.userId)){let a=r-this._pathJoinRoom.uint64_start_time;n.uint32_video_render_first=a,Se.addNumber({key:516820,value:a})}}(o==null?void 0:o.statsToReport.uint64_render_first_frame_time)===0&&(o.statsToReport.uint64_render_first_frame_time=r)}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:n})=>{let a=this._networkQuality.totalDownlinkRTTAndLossMap.get(o);if(a)a.totalRTT+=e,a.totalLoss+=r,s&&(a.totalVideoDelay=(a.totalVideoDelay||0)+s,a.videoDelayCount=(a.videoDelayCount||0)+1),n&&(a.totalAudioDelay=(a.totalAudioDelay||0)+n,a.audioDelayCount=(a.audioDelayCount||0)+1),a.count++;else{let c,d,m,l;s&&(d=s,m=1),n&&(c=n,l=1),this._networkQuality.totalDownlinkRTTAndLossMap.set(o,{totalRTT:e,totalLoss:r,count:1,totalAudioDelay:c,totalVideoDelay:d,audioDelayCount:l,videoDelayCount:m})}}))}handleHeartbeatStats(t){var e;if(this.hitTest(t.room)){let{msg_device_info:r,msg_up_stream_info:o,msg_down_stream_info:s}=t.report;if(o.msg_video_status[0]){let{uint32_video_codec_bitrate:n,uint32_video_enc_fps:a,uint32_video_width:c,uint32_video_height:d}=o.msg_video_status[0];this._localStreamStat.totalVideoBitrate+=n,this._localStreamStat.totalVideoFPS+=a,this._localStreamStat.totalVideoWidth+=c,this._localStreamStat.totalVideoHeight+=d,this._localStreamStat.videoCount++}if(o.msg_audio_status){let{uint32_audio_level:n}=o.msg_audio_status;Math.floor(n/fo*100)>0&&(this._localStreamStat.totalAudioLevel+=n/fo,this._localStreamStat.audioLevelCount++)}s.forEach(n=>{let{msg_user_info:a,msg_audio_status:c,msg_video_status:d}=n,m=a.str_identifier,l=this._room.remotePublishedUserMap.get(m);if(d.forEach(f=>{let g=f.uint32_video_stream_type===2,T=f.uint32_video_stream_type===7,E=`${m}_${g?"main":"auxiliary"}`,y=this._remoteStreamStatMap.get(E);if(y&&(g&&(l!=null&&l.remoteVideoTrack.isSubscribed)||T&&(l!=null&&l.remoteAuxiliaryTrack))){y.totalVideoFPS+=f.uint32_video_receive_fps,y.totalVideoBitrate+=f.uint32_video_codec_bitrate,y.videoCount++,y.statsToReport.uint32_video_width===0&&(y.statsToReport.uint32_video_width=f.uint32_video_width),y.statsToReport.uint32_video_height===0&&(y.statsToReport.uint32_video_height=f.uint32_video_height);let v=g?l.remoteVideoTrack:l.remoteAuxiliaryTrack;v.stat.jitterBufferDelay&&(y.videoJitterBufferDelay=v.stat.jitterBufferDelay),v.stat.framesReceived&&(y.statsToReport.uint32_video_consume_render_rate=Math.floor(v.stat.framesDecoded/v.stat.framesReceived*ki(10,6)))}}),!Pn(c)){let f=`${m}_main`,g=this._remoteStreamStatMap.get(f);this._remoteStreamStatMap.has(f)&&g&&l!=null&&l.remoteAudioTrack.isSubscribed&&(g.totalAudioBitrate+=c.uint32_audio_codec_bitrate,g.audioCount++,l.remoteAudioTrack.stat.jitterBufferDelay&&(g.audioJitterBufferDelay=l.remoteAudioTrack.stat.jitterBufferDelay),Math.floor(c.uint32_audio_level/fo*100)>0&&(g.totalAudioLevel+=c.uint32_audio_level/fo,g.audioLevelCount++),c.uint32_audio_block_time&&(g.statsToReport.uint32_audio_block_time+=c.uint32_audio_block_time))}}),r.uint32_audio_capture_cost&&(this._captureCostSum+=r.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)),r.uint32_audio_capture_cost===0&&((e=this._room.audioManager.localAudioTrack)==null?void 0:e.muted)===!1&&(this._localStreamStat.statsToReport.uint32_audio_capture_thread_health_zero_cnt+=1)}}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 Me?e.getExtraCode()||e.getCode():Te.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&wn)>=0}hasAudioFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Nn)>=0}hasAuxFlag(t){return this._firstPublishedUserList.findIndex(e=>e.userId===t&&e.flag&Pa)>=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:m,count:l,audioDelayCount:f,videoDelayCount:g,totalAudioDelay:T,totalVideoDelay:E}=o;t.statsToReport.uint32_avg_down_loss=Math.floor(m/l),f&&T&&(t.statsToReport.uint32_audio_network_p2p_delay=Math.floor(T/f),t.audioJitterBufferDelay&&(t.statsToReport.uint32_p2p_delay=Math.floor(t.statsToReport.uint32_audio_network_p2p_delay+t.audioJitterBufferDelay))),g&&E&&(t.statsToReport.uint32_video_network_p2p_delay=Math.floor(E/g))}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,j.AUDIO),t.statsToReport.uint32_video_play_time=s.getDuration(e,j.VIDEO)),t.statsToReport.uint32_video_render_first&&(t.statsToReport.uint32_video_render_first=Math.min(t.statsToReport.uint32_video_render_first,fn));let{badCaseDetector:n}=this._room,{dataFreeze:a,count:c}=n.getDataFreezeDuration(e),{renderFreeze:d}=n.getRenderFreezeDuration(e);t.statsToReport.uint32_video_block_count=c,t.statsToReport.uint32_video_block_time=Math.min(a,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_video_external_block_time=Math.min(d,t.statsToReport.uint32_video_play_time),t.statsToReport.uint32_audio_block_time=Math.min(t.statsToReport.uint32_audio_block_time,t.statsToReport.uint32_audio_play_time),n.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}),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>fn&&(t.statsToReport.uint64_play_first_frame_time=t.statsToReport.uint64_start_enter_time+fn)}),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>fn&&(t.statsToReport.uint64_render_first_frame_time=t.statsToReport.uint64_start_enter_time+fn)}),this._pathJoinRoom.uint64_end_time-this._pathJoinRoom.uint64_start_time>fn&&(this._pathJoinRoom.uint64_end_time=this._pathJoinRoom.uint64_start_time+fn)}getReportData(){this._basicInfo.uint32_networkType=Jd();let t={uint32_sdk_app_id:Number(this._room.sdkAppId),msg_user_info:new ud({userId:this._room.userId,tinyId:this._room.tinyId,role:this._room.role==="anchor"?20:21}),msg_basic_info:this._basicInfo,uint32_acc_ip:Un(this._signalInfo.relayIp),uint32_client_ip:Un(this._signalInfo.clientIp,!1),uint32_acc_port:this._signalInfo.relayPort||0,uint64_timestamp:Date.now(),uint32_seq:Math.floor(Math.random()*ki(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:Un(this._signalInfo.clientIp,!1),error_code:[],msg_local_statistics:this._localStreamStat.statsToReport,bytes_report_buf_from_0x1:this._signalInfo.endReportExtend,str_user_sig:this._room.userSig,bytes_report_token:this._signalInfo.reportToken};return Wa(t),t}report(){return D(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 D(this,null,function*(){if(t.msg_path_enter_room.uint64_start_time===0)return;let e=Number(this._room.sdkAppId),r=zo.enable?so(t,2001,e):yield sm(t),o=r instanceof ArrayBuffer,s=`${oo(e,Bo.KEY_POINT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r));let a=[this.uploadKVStat(Se),this.uploadKVStat(Gs)];n||a.push(no({url:s,body:r,priority:"low"})),yield Promise.all(a)})}setConnectionType(t){this.connectionType=t,this._basicInfo.uint32_connection_type=t}uploadKVStat(t){return D(this,null,function*(){let e=t.getReportData(this._room.userSig,this._signalInfo.reportToken);if(e.stats_count.length===0&&e.stats_distribution.length===0)return;e.msg_sdk_basic_info=qe(be({},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=zo.enable?so(e,2003,this._room.sdkAppId):yield sm(e),o=r instanceof ArrayBuffer,s=`${oo(+this._room.sdkAppId,Bo.KV_STAT)}&gzip=${+o}`,n=!1;navigator.sendBeacon&&(n=navigator.sendBeacon(s,r)),n||no({url:s,body:r})})}};Ie([qs({settings:{timeout:500,retries:3}})],lh.prototype,"upload",1);var fn=5e3,s0={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_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},ud=class{constructor(t){p(this,"str_identifier");p(this,"str_tinyid");p(this,"uint32_role");this.str_identifier=String(t.userId),this.str_tinyid=String(t.tinyId||0),this.uint32_role=t.role}},Py=lh;var cg=class{constructor(){p(this,"_startTime");p(this,"_endTime");this._startTime=0,this._endTime=0,this.start()}start(){this._startTime===0&&(this._startTime=Xe())}stop(){this._endTime===0&&(this._endTime=Xe())}getDuration(){return this._endTime===0?Xe()-this._startTime:this._endTime-this._startTime}get startTime(){return this._startTime}get endTime(){return this._endTime}},hh=cg;var dg=class{constructor(t){p(this,"_room",null);p(this,"_durationMap");p(this,"_eventMap",new Map);this._room=t.room,this._durationMap=new Map,this.installEvents()}installEvents(){this._eventMap.set(ce.REMOTE_TRACK_SUBSCRIBED,this.handleSubscribed).set(ce.REMOTE_TRACK_UNSUBSCRIBED,this.handleUnsubscribed).set(ce.REMOTE_PUBLISH_STATE_CHANGED,({room:t,prevMuteState:e,muteState:r})=>{var n;let{userId:o}=r;if(!this.hitTest(t))return;e.hasAudio&&!r.hasAudio&&this.stopDurationItem(`${o}_main`,j.AUDIO),e.hasVideo&&!r.hasVideo&&this.stopDurationItem(`${o}_main`,j.VIDEO),e.hasAuxiliary&&!r.hasAuxiliary&&this.stopDurationItem(`${o}_auxiliary`,j.VIDEO);let s=(n=this._room)==null?void 0:n.remotePublishedUserMap.get(o);s&&(!e.hasAudio&&r.hasAudio&&s.remoteAudioTrack.isSubscribed&&this.addDuractionItem(o,j.AUDIO,"main"),!e.hasVideo&&r.hasVideo&&s.remoteVideoTrack.isSubscribed&&this.addDuractionItem(o,j.VIDEO,"main"),!e.hasAuxiliary&&r.hasAuxiliary&&s.remoteAuxiliaryTrack.isSubscribed&&this.addDuractionItem(o,j.VIDEO,"auxiliary"))}),this._eventMap.forEach((t,e)=>ee.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>ee.off(e,t,this)),this._eventMap.clear()}handleSubscribed({track:t}){if(!this.hitTest(t.room))return;let{userId:e,streamType:r,kind:o}=t;t.isSubscribed?this.addDuractionItem(e,o,r):this.stopDurationItem(`${e}_${r}`,o)}handleUnsubscribed({track:t}){this.hitTest(t.room)&&this.stopDurationItem(`${t.userId}_${t.streamType}`,t.kind)}isRecording(t){return t.findIndex(e=>e.endTime===0)>=0}addDuractionItem(t,e,r){let o=`${t}_${r}`,s=new hh,n=this._durationMap.get(o);n?this.isRecording(n[e])||n[e].push(s):this._durationMap.set(o,{userId:t,type:r,audio:e===j.AUDIO?[s]:[],video:e===j.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()}},Uy=dg;var ug=class{constructor(){p(this,"renderFreezeMap",new Map);p(this,"dataFreezeMap",new Map)}get(t,e){let r=this.renderFreezeMap.get(t),o=this.dataFreezeMap.get(t);return e?e==="data"?o:r:(Zt||zt)&&r&&o&&r.duration>o.duration?r:o}set(t,e,r){r==="data"?this.dataFreezeMap.set(t,e):this.renderFreezeMap.set(t,e)}clear(){this.renderFreezeMap.clear(),this.dataFreezeMap.clear()}},lg=class{constructor(t){p(this,"_room");p(this,"_renderFreezeMap",new Map);p(this,"_isVideoPlayingEventFiredMap",new Map);p(this,"_dataFreezeMap",new Map);p(this,"_monitorFreezeData",new ug);p(this,"_eventMap",new Map);p(this,"_videoEncodeFailedCount",0);p(this,"_audioEncodeFailedCount",0);p(this,"_encodeFailedThreshold",3);p(this,"eventListenerMap",new Map);this._room=t.room,this.installEvents()}getRenderFreezeMap(){return this._renderFreezeMap}getDataFreezeMap(){return this._dataFreezeMap}installEvents(){this._eventMap.set(ce.LEAVE_SUCCESS,({room:t})=>{this.hitTest(t)&&this.stop()}).set(ce.PLAY_TRACK_START,this.onPlayTrackStart).set(ce.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(ce.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",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}if(e.hasAuxiliary&&!r.hasAuxiliary){let s="auxiliary",n=`${r.userId}_${s}`;this.stopDataFreeze({key:n,userId:o,type:s})}}).set(ce.PLAYER_STATE_CHANGED,({track:t,state:e,reason:r,type:o})=>{if(!(!t.isRemote||!t.room||!this.hitTest(t.room)||o!==j.VIDEO)){if(e==="PLAYING"){let s=`${t.userId}_${t.streamType}`;this._isVideoPlayingEventFiredMap.set(s,!0)}r===j.MUTE?this.onVideoTrackMuted(t):r===j.UNMUTE&&this.onVideoTrackUnmuted(t)}}).set(ce.HEARTBEAT_REPORT,this.onHearBeatReport).set(ce.REMOTE_VIDEO_PLAY_START,this.onRemoteVideoPlayStart).set(ce.REMOTE_VIDEO_PLAY_FINISH,this.onRemoteVideoPlayEnd),this._eventMap.forEach((t,e)=>ee.on(e,t,this))}uninstallEvents(){this._eventMap.forEach((t,e)=>ee.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),n=new hh;s?s.durationItemList.push(n):this._dataFreezeMap.set(o,{userId:e,type:r,durationItemList:[n],isFreezing(){let a=this.durationItemList[this.durationItemList.length-1];return a&&a.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}){if(this.hitTest(t)){if(e.msg_up_stream_info.msg_video_status){let r=e.msg_up_stream_info.msg_video_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="video"&&!n.isScreen),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0||o!=null&&o.isUseCustomSource)return;r.forEach(n=>{n.uint32_video_stream_type===2&&(n.uint32_video_capture_fps!==0&&n.uint32_video_codec_bitrate===0&&n.uint32_video_enc_fps===0&&(o!=null&&o.isPublished)?(this._videoEncodeFailedCount+=1,this._videoEncodeFailedCount===this._encodeFailedThreshold&&It.uploadEvent({userId:this._room.userId,log:`stat-${ii.VIDEO_ENCODE_FAILED_DURING_CALL}`})):this._videoEncodeFailedCount=0)})}if(e.msg_up_stream_info.msg_audio_status){let r=e.msg_up_stream_info.msg_audio_status,o=Array.from(this._room.localTracks).find(n=>n.kind==="audio"),s=(o==null?void 0:o.stat.bytesSent)||0;if((o==null?void 0:o.isMediaTrackActive)===!1||s<=0)return;r.uint32_audio_codec_bitrate===0&&(o!=null&&o.isPublished)?(this._audioEncodeFailedCount+=1,this._audioEncodeFailedCount===this._encodeFailedThreshold&&It.uploadEvent({userId:this._room.userId,log:`stat-${ii.AUDIO_ENCODE_FAILED_DURING_CALL}`})):this._audioEncodeFailedCount=0}}}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 n=s.getDuration();if(n>Wd){let a=this._monitorFreezeData.get(t,"data");this._monitorFreezeData.set(t,{userId:e,type:r,duration:a?a.duration+n:n},"data")}else o.durationItemList.pop()}getTotalDuration(t){return t.reduce((e,r)=>{let o=r.getDuration();return e+Math.min(o,5e3)},0)}onPlayTrackStart({track:t}){if(!t.isRemote||!this.hitTest(t.room)||t.kind!==j.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()<Wd&&r.durationItemList.pop()}e.dataFreeze=this.getTotalDuration(r.durationItemList),e.count=r.durationItemList.length}return e}getRenderFreezeDuration(t){let e={renderFreeze:0,count:0},r=this._renderFreezeMap.get(t);return r&&(e.renderFreeze=r.totalDuration,e.count=r.count),e}getMonitorFreeze(){return this._monitorFreezeData}isBlackStream(t){return this._isVideoPlayingEventFiredMap.has(t)?!this._isVideoPlayingEventFiredMap.get(t):!1}onRemoteVideoPlayStart({track:t,player:e}){var n;if(!Ri())return;let r=0,o=()=>{document.hidden||(r=0)};document.addEventListener("visibilitychange",o);let s=(a,c)=>{var d;if(r){let m=t.decodeFPS,l=m>0&&m<=5?600+1e3/m:600,f=c.presentationTime-r;if(f>l){f=Math.min(f,5e3);let g=`${t.userId}_${t.streamType}`,T=this._monitorFreezeData.get(g,"render");T?T.duration+=f:this._monitorFreezeData.set(g,{userId:t.userId,type:t.streamType,duration:f},"render");let E=this._renderFreezeMap.get(g);E?(E.totalDuration+=f,E.count+=1):this._renderFreezeMap.set(g,{userId:t.userId,type:t.streamType,totalDuration:f,count:1})}}r=c.presentationTime,(d=e.element)==null||d.requestVideoFrameCallback(s)};(n=e.element)==null||n.requestVideoFrameCallback(s),this.eventListenerMap.set(`${t.userId}_${t.streamType}`,{onVisibilityChange:o})}onRemoteVideoPlayEnd({track:t,player:e}){let r=`${t.userId}_${t.streamType}`,o=this.eventListenerMap.get(r);o&&document.removeEventListener("visibilitychange",o.onVisibilityChange)}resetMonitor(){this._monitorFreezeData.clear()}hitTest(t){return t===this._room}destroy(){this.uninstallEvents()}},Vy=lg;var Fy=Li(mo(),1);var mh=class{constructor(t,e,r,o,s,n=4/3){this.vbMode=t;this.faceDetectorHash=r;this.visionTaskRegistry=o;this.logger=s;p(this,"animationState");p(this,"originalAspect");p(this,"totalOffsetX",0);p(this,"totalOffsetY",0);p(this,"defaultScaleRatio",.1);p(this,"isRecovering",!1);p(this,"boundaryY",280);p(this,"lastActionTime",0);p(this,"restTime",400);this.animationState={current:null,target:null,animating:!1,debounceTimer:null,startTime:0,duration:3e3,debounceTime:150,movementThreshold:30,debounceThreshold:15},this.addEvent(this.vbMode,!!this.faceDetectorHash),this.originalAspect=n||4/3,this.visionTaskRegistry.setVideo(this.faceDetectorHash,e)}addEvent(t,e,r){let s=[{key:570704,error:r!=null?r:e?void 0:11},{key:570705,error:r!=null?r:e?void 0:22}][t-1];s&&(e?Se.addSuccessEvent({key:s.key}):Se.addFailedEvent({key:s.key,error:s.error}))}actionCentering(t){let e=Date.now();if(this.animation(),!this.faceDetectorHash||e-this.lastActionTime<this.restTime||this.animationState.animating)return;let{videoWidth:r,videoHeight:o}=t;this.animationState.debounceThreshold=r/30,this.animationState.movementThreshold=r/20,this.boundaryY=o*.6;try{let s=this.visionTaskRegistry.getResult(this.faceDetectorHash);if(s.detections.length<=0){this.vbMode===1&&this.recoverOriginal(r,o);return}let n=s.detections[0].boundingBox,a=n.originX,c=n.originY,d=n.width,m=n.height;this.vbMode===1?this.dualStageCropping(r,o,a,c,d,m):this.vbMode===2&&this.movingPortrait(r,o,a,c,d,m)}catch(s){this.logger.error(s)}this.lastActionTime=e}calculateBoundary(t,e,r,o){let s,n;return t>e/2?(s=e-r-o,n=r-s):(s=r,n=0),{min:s,offset:n}}calculateTargetPosition(t,e,r,o,s,n,a=.4){let c=t+r/2,d=e+o/2,m,l,{min:f,offset:g}=this.calculateBoundary(c,s,t,r),{min:T,offset:E}=this.calculateBoundary(d,n,e,o);return m=2*f+r,l=2*T+o,m/l>this.originalAspect?(m=l*this.originalAspect,g=c-m/2):(l=m/this.originalAspect,E=d-l/2),r/s>a&&(g=0,E=0,m=s,l=n),g=Math.max(0,Math.min(g,s-m)),E=Math.max(0,Math.min(E,n-l)),{sx:g,sy:E,cropWidth:m,cropHeight:l,timestamp:Date.now()}}processFacePositionCrop(t,e,r){if(!this.animationState.current||!this.animationState.target){let a={sx:0,sy:0,cropWidth:e,cropHeight:r,timestamp:Date.now()};this.animationState.current=a,this.animationState.target=a;return}let o=this.positionDistance(this.animationState.target,t),s=this.positionDistance(this.animationState.current,t),n=this.animationState.current.cropWidth/e;o>this.animationState.debounceThreshold*n&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&s>this.animationState.movementThreshold*n&&(this.animationState.target=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}processFacePositionPortrait(t){if(!this.animationState.current||!this.animationState.target){this.animationState.current=be({},t),this.animationState.target=be({},t);return}let e=this.positionDistance(this.animationState.current,t),r=this.positionDistance(this.animationState.target,t);e>this.animationState.debounceThreshold&&(clearTimeout(this.animationState.debounceTimer),this.animationState.animating=!1),!this.animationState.animating&&r>this.animationState.movementThreshold&&(this.animationState.current=t,this.animationState.debounceTimer=setTimeout(()=>{this.animationState.startTime=Date.now(),this.animationState.animating=!0},this.animationState.debounceTime))}animation(){if(!this.animationState.animating)return;let t=Date.now()-this.animationState.startTime,e=Math.min(t/this.animationState.duration,1),r=o=>o<.5?2*o*o:-1+(4-2*o)*o;if(this.animationState.current&&this.animationState.target){let o=(this.animationState.target.sx-this.animationState.current.sx)*r(e);this.animationState.current.sx+=o,this.totalOffsetX+=o;let s=(this.animationState.target.sy-this.animationState.current.sy)*r(e);if(this.animationState.current.sy+=s,this.totalOffsetY+=s,this.animationState.current.cropWidth+=(this.animationState.target.cropWidth-this.animationState.current.cropWidth)*r(e),this.animationState.current.cropHeight+=(this.animationState.target.cropHeight-this.animationState.current.cropHeight)*r(e),this.animationState.current.scaleRatio&&this.animationState.target.scaleRatio&&(this.animationState.current.scaleRatio+=(this.animationState.target.scaleRatio-this.animationState.current.scaleRatio)*r(e)),ft(this.animationState.current.scaleOffsetX)&&ft(this.animationState.target.scaleOffsetX)&&ft(this.animationState.current.scaleOffsetY)&&ft(this.animationState.target.scaleOffsetY)){let n=(this.animationState.target.scaleOffsetX-this.animationState.current.scaleOffsetX)*r(e);this.animationState.current.scaleOffsetX+=n;let a=(this.animationState.target.scaleOffsetY-this.animationState.current.scaleOffsetY)*r(e);this.animationState.current.scaleOffsetY+=a}}e>=1&&(this.animationState.animating=!1,this.animationState.current=this.animationState.target,this.isRecovering=!1)}positionDistance(t,e){return Math.sqrt(ki(t.sx-e.sx,2)+ki(t.sy-e.sy,2))}recoverOriginal(t,e){this.animationState.target={sx:0,sy:0,cropWidth:t,cropHeight:e,timestamp:Date.now()},this.animationState.animating=!0,this.animationState.startTime=Date.now(),this.isRecovering=!0}dualStageCropping(t,e,r,o,s,n,a=.3){if(this.isRecovering)return;let c=this.calculateTargetPosition(r,o,s,n,t,e);this.processFacePositionCrop(c,t,e),s*n/c.cropWidth/c.cropHeight>a&&this.recoverOriginal(t,e)}movingPortrait(t,e,r,o,s,n){var c,d,m,l,f,g,T,E,y,v,M,w;let a={sx:r+s/2+this.totalOffsetX,sy:o+n/2+this.totalOffsetY,cropWidth:t,cropHeight:e,scaleRatio:(d=(c=this.animationState.current)==null?void 0:c.scaleRatio)!=null?d:1,scaleOffsetX:(l=(m=this.animationState.current)==null?void 0:m.scaleOffsetX)!=null?l:0,scaleOffsetY:(g=(f=this.animationState.current)==null?void 0:f.scaleOffsetY)!=null?g:0,timestamp:Date.now()};this.animationState.target={sx:t/2,sy:o+n/2,cropWidth:t,cropHeight:e,scaleRatio:(E=(T=this.animationState.target)==null?void 0:T.scaleRatio)!=null?E:1,scaleOffsetX:(v=(y=this.animationState.target)==null?void 0:y.scaleOffsetX)!=null?v:0,scaleOffsetY:(w=(M=this.animationState.target)==null?void 0:M.scaleOffsetY)!=null?w:0,timestamp:Date.now()},this.animationState.animating||(this.animationState.target.scaleRatio=Math.sqrt(s*n/t/e/this.defaultScaleRatio),this.animationState.target.scaleOffsetX=-this.animationState.target.scaleRatio/2+.5,this.animationState.target.scaleOffsetY=-this.animationState.target.scaleRatio+1,(this.animationState.target.sy-this.animationState.target.scaleOffsetY*this.animationState.target.cropHeight)/this.animationState.target.scaleRatio<this.boundaryY&&(this.animationState.target.scaleOffsetY=(this.animationState.target.sy-this.boundaryY*this.animationState.target.scaleRatio)/this.animationState.target.cropHeight)),this.processFacePositionPortrait(a)}set aspectRatio(t){this.originalAspect=t}get current(){return this.animationState.current}get offset(){return{offsetX:this.totalOffsetX,offsetY:this.totalOffsetY}}get targetCrop(){return this.animationState.target}};var n0=`#version 300 es
|
|
104
126
|
in vec2 a_position;
|
|
105
127
|
in vec2 a_texCoord;
|
|
106
128
|
out vec2 v_texCoord;
|
|
107
129
|
void main() {
|
|
108
130
|
gl_Position = vec4(a_position.x, a_position.y, 0, 1);
|
|
109
131
|
v_texCoord = a_texCoord;
|
|
110
|
-
}`,
|
|
132
|
+
}`,a0=`#version 300 es
|
|
111
133
|
precision highp float;
|
|
112
134
|
uniform sampler2D u_texture;
|
|
113
135
|
uniform sampler2D mask;
|
|
@@ -116,7 +138,7 @@ in vec2 v_texCoord;
|
|
|
116
138
|
out vec4 outColor;
|
|
117
139
|
void main() {
|
|
118
140
|
outColor = vec4(texture(u_texture, v_texCoord).rgb, texture(mask, v_texCoord).a);
|
|
119
|
-
}`,
|
|
141
|
+
}`,ph=class extends di{constructor(e,r){super(e,r.input,{name:"vb",create2d:!1,useDefaultProgram:!1,useFbo:!1,createTexture:!0,width:r.width,height:r.height,logger:e.log});p(this,"_bgTexture");p(this,"_waterMarkTexture");p(this,"_lastMaskTexture");p(this,"_lastMaskFbo");p(this,"_textureValid",!1);p(this,"_selfieTextureValid",!1);p(this,"_selfieSegmentationHash");p(this,"wasm");p(this,"predictReady");p(this,"_color");p(this,"_prePrograme");p(this,"_segmentationMask");p(this,"_weixin",!1);p(this,"_centerFace");p(this,"_textureMatrixLocation");p(this,"_offsetMatrixLocation");p(this,"_colorLocation");p(this,"_enableFaceCentering",!1);p(this,"_enableEffectOptimization",!1);p(this,"_mat4");p(this,"_postProcessing");p(this,"_onAbort");p(this,"_visionTaskRegistry");p(this,"resolvePreditReady");this.init(r).catch(o=>{e.log.error(o),e.destroy(new Me({code:Te.VIDEO_MANAGER_ERROR,extraCode:6,message:`init vb node error ${o.message||o}`})),this.resolvePreditReady()})}init(e){return D(this,null,function*(){var n,a,c;this.predictReady=new Promise(d=>{this.resolvePreditReady=d});let r=e.Wasm,o=this.context.ctx;if(e.color&&(this._color=e.color),e.mat4&&(this._mat4=e.mat4),e.postProcessing&&(this._postProcessing=e.postProcessing),this._enableFaceCentering=(n=e.enableFaceCentering)!=null?n:!1,this._enableEffectOptimization=(a=e.enableEffectOptimization)!=null?a:!1,this.wasm=new r.AllIn1(o),this.wasm.blurRadius=e.blurRadius||3,this.wasm.mirror=!!e.mirror,this.wasm.rotation=e.rotation||0,this.wasm.vbMode=e.bg==="blur"?1:e.bg instanceof HTMLImageElement?2:e.bg==="color"?3:0,this._onAbort=e.onAbort,e.bg||this.resolvePreditReady(),e.waterMark){let{x:d,y:m,width:l,height:f}=e.waterMark;this.wasm.setWaterMark(d,m,l,f)}if(e.beautyParams){let{beauty:d,brightness:m,ruddy:l}=e.beautyParams;this.wasm.setBeauty(d,m,l,e==null?void 0:e.width,e==null?void 0:e.height)}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));let s=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(this._textureMatrixLocation=o.getUniformLocation(this.program,"u_textureMatrix"),o.uniformMatrix4fv(this._textureMatrixLocation,!1,s),this._offsetMatrixLocation=o.getUniformLocation(this.program,"u_offsetMatrix"),o.uniformMatrix4fv(this._offsetMatrixLocation,!1,s),this._colorLocation=o.getUniformLocation(this.program,"u_color"),o.uniform1i(o.getUniformLocation(this.program,"lastMask"),4),this._weixin){let d=this.context.createShader(o.FRAGMENT_SHADER,a0),m=this.context.createShader(o.VERTEX_SHADER,n0);this._prePrograme=this.context.createProgram(m,d),o.useProgram(this._prePrograme),this.setAttributes(this.positionBuffer,this.texCoordBuffer),o.uniform1i(o.getUniformLocation(this._prePrograme,"mask"),1)}this._enableEffectOptimization&&(this.wasm.vbMode===2||this.wasm.vbMode===3)?rc()?(this._postProcessing=void 0,this.log.warn("Virtual background post-processing isn't allowed on mobile.")):(c=this._postProcessing)==null||c.init(o,this.positionBuffer,this.texCoordBuffer,4/3):this._postProcessing=void 0,yield this.initVisionTasks(e)})}initVisionTasks(e){return D(this,null,function*(){if(e.bg){if(this._visionTaskRegistry=yield window.VisionTaskRegistry.getInstance(),!window.VisionTaskRegistry||!this._visionTaskRegistry||!this._visionTaskRegistry.visionWasm)throw new Error("Virtual background assets not found. Please redeploy the assets of the npm package.");if(this._selfieSegmentationHash=yield this._visionTaskRegistry.register(window.VisionTaskType.ImageSegmenter,{canvas:this.context._canvas}),this._visionTaskRegistry.setVideo(this._selfieSegmentationHash,this.image),this._enableFaceCentering)try{this._visionTaskRegistry.models.has(window.VisionTaskType.FaceDetector)||(yield this._visionTaskRegistry.preloadModels([window.VisionTaskType.FaceDetector]));let r=yield this._visionTaskRegistry.register(window.VisionTaskType.FaceDetector);if(!r)return;this._centerFace=new mh(this.wasm.vbMode,this.image,r,this._visionTaskRegistry,this.context.log)}catch(r){this.log.error("Face detector model not found. Please redeploy the assets of the npm package.")}}})}onPredict(e){let r=this.context.ctx;this._weixin&&(this._lastMaskTexture||(this._lastMaskTexture=this.createTexture(this.image),this._lastMaskFbo=this.createFramebuffer(this._lastMaskTexture)));let o=this.getMaskTexture(e);if(!o)return;let s=o;this._postProcessing&&(this._postProcessing.ratio=this.image.videoWidth/this.image.videoHeight,s=this._postProcessing.postProcessing(o)),this.useProgram(),this.setAttributes(this.positionBuffer,this.texCoordBuffer),this.useTexture(),r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,s||null),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.wasm.vbMode===3&&r.uniform3fv(this._colorLocation,this._color),this.useBufferFrame(),this._segmentationMask=e,this.totalFrames++,this.centerFace(),Jr(this.wasm.rotation)&&this.resize(this.image.height,this.image.width),r.viewport(0,0,r.canvas.width,r.canvas.height),r.drawArrays(r.TRIANGLE_STRIP,0,4),e.close()}getMaskTexture(e){return e.confidenceMasks?e.confidenceMasks[0].getAsWebGLTexture():void 0}onFirstFrame(){this.waitingFirstFrame=!1;let e=this.context.ctx;this.useTexture(),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.image)}render(e){let r=this.context.ctx,{image:o}=this;this.tryVideoFrameCallback();let{videoWidth:s,videoHeight:n}=o;if(Jr(this.wasm.rotation)&&!this._visionTaskRegistry&&([s,n]=[n,s]),s===0||n===0||!this.available)return!1;o.width=s,o.height=n;let a=!1;if(this.totalFrames)this.useTexture(),a=this._selfieTextureValid,this._selfieTextureValid=!0;else{if(this.program)this.useTexture();else return!1;a=this._textureValid,this._textureValid=!0}if(this.width!==s||this.height!==n||!a?(this.resize(s,n),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){if(r.useProgram(this._prePrograme),this.useTexture(),this._segmentationMask){let c=this.getMaskTexture(this._segmentationMask);r.activeTexture(r.TEXTURE1),r.bindTexture(r.TEXTURE_2D,c||null),r.bindFramebuffer(r.FRAMEBUFFER,this._lastMaskFbo||null)}r.drawArrays(r.TRIANGLE_STRIP,0,4),this.useTexture(),this._segmentationMask?r.copyTexSubImage2D(r.TEXTURE_2D,0,0,0,0,0,s,n):r.copyTexImage2D(r.TEXTURE_2D,0,r.RGBA,0,0,s,n,0)}try{if(this._selfieSegmentationHash&&this._visionTaskRegistry){let c=this._visionTaskRegistry.getResult(this._selfieSegmentationHash);this.totalFrames===1&&this.context._canvas&&this.resolvePreditReady(),this.onPredict(c)}}catch(c){this._onAbort&&this._onAbort(c)}return 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)),this._visionTaskRegistry&&this._visionTaskRegistry.resetHashResults(),!1}centerFace(){if(!this._centerFace||!this._enableFaceCentering)return;let e=this.context.ctx;this._centerFace.aspectRatio=e.canvas.width/e.canvas.height,this._centerFace.actionCentering(this.image);let{current:r,offset:o}=this._centerFace;if(r&&(this.wasm.vbMode===1&&this.drawImage(r.sx,r.sy,r.cropWidth,r.cropHeight),o&&this.wasm.vbMode===2)){if(!this._mat4)return;let s=this._mat4.create(),{scaleRatio:n=1,scaleOffsetX:a=0,scaleOffsetY:c=0}=r;this._mat4.fromTranslation(s,[-o.offsetX/e.canvas.width+a,c,0]),this._mat4.scale(s,s,[n,n,1]),e.uniformMatrix4fv(this._offsetMatrixLocation,!1,s)}}drawImage(e,r,o,s){let n=this.context.ctx;if(!this._mat4)return;let{width:a,height:c}=n.canvas,d=this._mat4.create();this._mat4.fromTranslation(d,[e/a,1-(r+s)/c,0]),this._mat4.scale(d,d,[o/a,s/c,1]),n.uniformMatrix4fv(this._textureMatrixLocation,!1,d)}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),this._postProcessing&&this._postProcessing.close(),(r=this.wasm)==null||r.close()}};var fh=class extends or{constructor(e){super(e,{name:"yuv-source",useDefaultProgram:!1,create2d:!1,useFbo:!1,createTexture:!1,logger:e.log,fragmentShaderSource:`
|
|
120
142
|
precision highp float;
|
|
121
143
|
uniform sampler2D ySampler;
|
|
122
144
|
uniform sampler2D uSampler;
|
|
@@ -141,4 +163,19 @@ void main() {
|
|
|
141
163
|
void main() {
|
|
142
164
|
gl_Position = vertexPos;
|
|
143
165
|
textureCoord = texturePos;
|
|
144
|
-
}`});m(this,"yTextureRef");m(this,"uTextureRef");m(this,"vTextureRef");m(this,"Y");m(this,"U");m(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 LT=(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")};function ov(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var sv=0,kl=class{constructor(t){m(this,"id",sv++);m(this,"trackDoneOB");m(this,"startOB");m(this,"stopOB");m(this,"decoder");m(this,"videoContext");m(this,"gop",0);m(this,"gop_helper",0);m(this,"waitFirstKeyFrame",!0);m(this,"startTimestamp",0);m(this,"startTime",0);m(this,"startPerformanceTime",0);m(this,"inputFrameCount",0);m(this,"decodedFrameCount",0);m(this,"decodeFrameCount",0);m(this,"downgradeLevel",0);m(this,"lastDowngradeTime",0);m(this,"lastFrameDiff",0);m(this,"lastDecodeFrameTimestamp",0);m(this,"config");m(this,"gop_before_configure",[]);m(this,"videoElement");m(this,"type","wasm");m(this,"goodType");m(this,"renderer","2d");m(this,"wasmOption");m(this,"createDecoder");m(this,"_decodeSink");m(this,"isReported",!1);m(this,"track");m(this,"stateChangeOB");m(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=At(),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=ye(e.availableState,ue.OFF),this.stopOB=At(),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),Ae(this.stateChangeOB,yp((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),Je(this.stopOB),Le()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ae(this.pipe(this.track),Je(this.stopOB),ji());Ae(e,Le(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),J.addFailedEvent({key:LT(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),J.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),J.addSuccessEvent({key:LT(this.type,this.renderer)}),J.addSuccessEvent({key:514704})})),Ae(e,Qr(1),Le(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!fh()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,d;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!ov(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((a=this.decoder)==null?void 0:a.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(l=>this.decode(l,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=Te();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(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.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(d=t.getMetadata)==null?void 0:d.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>A(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var a;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",d=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${d.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(d.timestamp)),e.next(d)}),r.on("error",d=>{t.log.error(d),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new Nt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(Nt.UNAVAILABLE,l=>{t.log.error(l),e.error(7)});let d=new Ll(this.videoContext);r.on("videoCodecInfo",l=>d.resize(l.width,l.height)),r.on("videoFrame",l=>{({y:d.Y,u:d.U,v:d.V}=l),this.downgradeLevel===1?this.decodedFrameCount%2===0&&d.render(this.decodedFrameCount):d.render(this.decodedFrameCount)}),t.source=d,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let d=new MediaStreamTrackGenerator({kind:"video"}),l=d.writable.getWriter();t.setInputMediaStreamTrack(d),r.on("videoFrame",p=>l.write(p))}else{this.videoContext=new Pt({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let d=this.videoContext.createVideoImageSource();r.on("videoFrame",p=>{try{d.image=p,d.update()}catch(f){delete this.goodType,t.log.error(f),e.error(11)}});let l=new Ms(this.videoContext,{name:"remotePlayer",logger:t.log});d.connect(l),t.source=d,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var kT=Promise.resolve(),Fc=class extends UT.EventEmitter{constructor(e){super();this.room=e;m(this,"videoContext");m(this,"_glVideoContext");m(this,"_2dVideoContext");m(this,"destination");m(this,"smallVideoContext");m(this,"smallDestination");m(this,"smallTrackSource");m(this,"smallImageSource");m(this,"_isMirror",!1);m(this,"_rotation",0);m(this,"cameraTrack");m(this,"cameraNode");m(this,"transformNode");m(this,"mixNode");m(this,"screenTrack");m(this,"screenNode");m(this,"selfModel",!1);m(this,"blurRadius",3);m(this,"arTrack");m(this,"_enableFaceCentering",!1);m(this,"_enableEffectOptimization",!1);m(this,"onAbort");m(this,"_color");m(this,"Wasm");m(this,"waterMarkNode");m(this,"_waterMarkOption");m(this,"watermarkImageList",[]);m(this,"_beautyParams");m(this,"isUsingArTrack",!1);m(this,"mixTrack");m(this,"_isMixScreen",!1);m(this,"_virtualBackground");m(this,"_virtualBackgroundAbortCallback");m(this,"virtualBackgroundInstance");m(this,"_bgAssetPath");m(this,"log");m(this,"_mat4");m(this,"_postProcessing");m(this,"_checkId",0);m(this,"_use2d",!1);m(this,"_autoSwitchRenderMode",!0);m(this,"encodePipeline",[]);m(this,"decodePipeline",[]);m(this,"updated",kT);m(this,"_updateFlag",!1);this.log=F.createLogger({parent:e==null?void 0:e.getLogger(),id:"vm",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.smallVideoContext=new Pt({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}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())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return pr(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new Pt({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new Nt({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(Lm<=22),this._glVideoContext.on(Nt.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)}}initVirtualBackground(e,r,o){this.onAbort=e,this._mat4=r,this._postProcessing=o}enablePrintDetail(e=2e3){this._checkId=ft.run("interval",()=>{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(vr||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?J.addFailedEvent({key:o,error:r}):J.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 Nt({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}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Qu(this.smallVideoContext,e,this.log),this.smallVideoContext.on(Nt.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;vr&&n.setCanvas(e);let a=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),a=this.arTrack),this.log.info(`set main output ${a?a.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(a)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return A(this,null,function*(){var s;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(bt.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Vt===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof Dr?(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 Dr?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(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new Xu(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(bt.RENDER,l=>{var p;(p=this.cameraTrack)==null||p.emit("render",l)}));let{width:n,height:a}=this.cameraResolution,d=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:d.width,height:d.height,image:d},this.cameraNode=new Pl(this.videoContext,{input:this.initialTrack,width:n,height:a,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new wr(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),this.log.info(`start mirror ${this._isMirror} rotate ${this.rotation}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new Bn(this.videoContext,this.log),n.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;else if(this.waterMarkNode){let{width:d,height:l}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(d,l),d&&l&&this.waterMarkNode.resize(d,l)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)}n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext.canvas)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var r,o,s,n,a;if(e instanceof mi)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof _r)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof xo){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let d=e.mediaTrack;return e.setOutputMediaStreamTrack(d)}if(e instanceof Ps)return this.log.info("change mix input",(n=e.outMediaTrack)==null?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof mi?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof _r?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof xo?e.source&&e.source.context.destroy():e instanceof Ps&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return A(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield 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 se({code:q.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,a)=>n.zIndex-a.zIndex),this.watermarkImageList.forEach(({image:n,x:a,y:d,width:l,height:p,fillVideo:f})=>{let g=f&&e||l,y=f&&r||p,R=f?0:a,N=f?0:d;s.drawImage(n,R,N,g,y)}),hn(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&&s.fillVideo===e.fillVideo)||((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*(){let r;try{r=yield hn((e==null?void 0:e.imageElement)||e.imageUrl)}catch(g){throw new se({code:q.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:a=r.height,type:d="watermark",zIndex:l=2,fillVideo:p=!1}=e;this.watermarkImageList.some(g=>g.type===d)?(this.watermarkImageList=this.watermarkImageList.filter(g=>g.type!==d),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:l,type:d,imageUrl:e.imageUrl,fillVideo:p}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.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:n,height:a,image:r,zIndex:l,type:d,imageUrl:e.imageUrl,fillVideo:p}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(g,y)=>g==="imageUrl"?void 0:y))})}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 s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return A(this,null,function*(){var r,o,s;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 hn(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering,this._enableEffectOptimization=(o=e.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(s=e.color)!=null?s:[0,1,0]}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 se({code:q.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._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}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 kl(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,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}};Z([BE(function(e){this.log.error("update failed",e)}),Pe(e=>function(...r){return A(this,null,function*(){this._updateFlag||(this._updateFlag=!0,yield kT,this.updated=new Promise((o,s)=>{e.apply(this,r).then(o,s),setTimeout(s,5e3,new se({code:q.API_CALL_TIMEOUT,message:"update timeout"}))}),this._updateFlag=!1,yield this.updated)})})],Fc.prototype,"update",1);var nv=0;var Ul=class extends ue{constructor(e){super("room");m(this,"seq",++nv);m(this,"sdkAppId");m(this,"userId");m(this,"userSig");m(this,"privateMapKey");m(this,"latencyLevel");m(this,"tinyId");m(this,"scene");m(this,"roomId");m(this,"useStringRoomId");m(this,"role","anchor");m(this,"joinParams",null);m(this,"localPublishFlag",0);m(this,"localTracks",new Set);m(this,"enableAutoPlayDialog",!0);m(this,"autoReceiveAudio",!0);m(this,"autoReceiveVideo",!0);m(this,"proxy_ws");m(this,"proxy_wt");m(this,"proxy_unified");m(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,isH265EncodeSupported:!0,isH265DecodeSupported:!0}});m(this,"keyPointManager");m(this,"audioManager");m(this,"videoManager");m(this,"callDurationCalculator");m(this,"badCaseDetector");m(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});m(this,"videoDecodeFallbackType");m(this,"smallMode","canvas");m(this,"enableChorus",!1);m(this,"_isUsingCachedSchedule",!1);m(this,"_log");m(this,"_joinedTimestamp",0);m(this,"_sdkType");m(this,"heartbeatReport");m(this,"heartbeatCount",0);m(this,"quality");m(this,"enableSEI");m(this,"isDestroyed",!1);this._log=F.createLogger({parent:e.logger,id:`r${this.seq}`}),this.useStringRoomId=!!e.useStringRoomId,Ye(e.autoReceiveAudio)&&(this.autoReceiveAudio=e.autoReceiveAudio),Ye(e.autoReceiveVideo)&&(this.autoReceiveVideo=e.autoReceiveVideo),Ye(e.enableAutoPlayDialog)&&(this.enableAutoPlayDialog=e.enableAutoPlayDialog),this._sdkType=e.sdkType,this.keyPointManager=new MT({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new xT({room:this}),this.badCaseDetector=new PT({room:this}),this.audioManager=new Ku(this),this.videoManager=new Fc(this)}get videoCodec(){return"h264"}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 localMainAudioTrack(){for(let e of this.localTracks)if(e.mediaType&1)return e;return null}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}get publishState(){let e={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};return this.localTracks.forEach(r=>{if(r.isPublished||r.isPublishing)switch(r.mediaType){case 1:e.audio=!0;break;case 4:e.bigVideo=!0,e.smallVideo=r.hasSmall;break;case 2:e.auxVideo=!0;default:break}}),e}get muteState(){var e,r,o;return{audio:!!((e=this.localMainAudioTrack)!=null&&e.muted),bigVideo:!!((r=this.localMainVideoTrack)!=null&&r.muted),auxVideo:!!((o=this.localAuxVideoTrack)!=null&&o.muted)}}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(Oe(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Xt(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:a}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=a,a?(pl([a,a]),ts(`https://${a}`)):(s&&ts(s),n&&pl(n))}U.once(B.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:gi.main,sched_back_domain:gi.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 se({code:q.INVALID_OPERATION,message:We({key:He.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(nr.INVALID_DESTROY),new se({code:q.INVALID_OPERATION,message:We({key:He.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,U.emit(B.ROOM_DESTROY,{room:this})}schedule(e,r){return A(this,null,function*(){var s,n,a,d;let o=Te();try{let{isCached:l,result:p,detailCost:f}=yield rf({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:ht,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=l,this._log.info(`schedule cache:${+l} ${br(p,{keysToExclude:["username","credential"]})}`),l&&U.once(B.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=Y(Y({},this.scheduleResult),p),Fe((s=p.config)==null?void 0:s.retryCount)&&um(p.config.retryCount),Oe((n=p.config)==null?void 0:n.loggerDomain)&&ts(p.config.loggerDomain),this.videoDecodeFallbackType=((a=p.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((d=p.config)==null?void 0:d.smallMode)||this.smallMode,U.emit(B.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:f}),J.addSuccessEvent({key:521700,cost:Te()-o})}catch(l){throw J.addFailedEvent({key:521700,error:l}),l}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function VT(i,t=!1){let e=Object.defineProperties(At(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Ge,i.onmessageerror=Ge,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 bf=class extends fe{constructor(t,e){super(t);let r=new fe(t);r.next=Ge,e(r)}},XG=Ie(bf,"takeUntilComplete");var Wt={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},FT="__INLINE__WORKER__",BT="__INLINE__WASM__",{debug:$T}=console;Wt.debug||(console.debug=()=>{});var av=!FT.startsWith("__"),cv=!BT.startsWith("__");function Vl(){let i=ds(`${Wt.assetsPath?`${Wt.assetsPath}/`:""}worker.js`);return av?URL.createObjectURL(new Blob([atob(FT)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var Bc;function Fl(){return A(this,null,function*(){let i=Wt.assetsPath?`${Wt.assetsPath}/`:"";return Bc||(cv?Bc=new TextEncoder().encode(atob(BT)).buffer:Bc=yield fetch(ds(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),Bc)})}var Rf=class{constructor(){m(this,"playPort");m(this,"playPortSent",!1);m(this,"worklet");m(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return A(this,null,function*(){let t=ze("player"),e=Vl();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),F.info("global audio player worklet addModule success",e)}catch(r){throw F.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Fl(),flag:Wt},numberOfInputs:2}),F.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*(){var r;yield this.init();let e=new MessageChannel;(r=this.playPort)==null||r.postMessage(null,[e.port1]),t(e.port2)})}},$c=new Rf;var vf=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),i5=vf?Promise.resolve().then(function(){return mv}):Promise.resolve().then(function(){return _v});var o5=vf?Promise.resolve().then(function(){return pv}):Promise.resolve().then(function(){return Iv});var dv=vf?Promise.resolve().then(function(){return gv}):Promise.resolve().then(function(){return yv});function Cf(...i){return A(this,null,function*(){return(yield dv).default(...i)})}var uv=i=>A(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),lv=(...t)=>A(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(a=>{e[n].accept[a]=s.extensions||[]}):e[n].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(uv));return i[0].multiple?o:o[0]}),mv={__proto__:null,default:lv};function Bl(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 Bl=function(e){this.s=e,this.n=e.next},Bl.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 Bl(i)}var HT=(o,s,...n)=>A(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],d=[];var l,p=!1,f=!1;try{for(var g,y=function(R){var N,C,P,X=2;for(typeof Symbol!="undefined"&&(C=Symbol.asyncIterator,P=Symbol.iterator);X--;){if(C&&(N=R[C])!=null)return N.call(R);if(P&&(N=R[P])!=null)return new Bl(N.call(R));C="@@asyncIterator",P="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());p=!(g=yield y.next()).done;p=!1){let R=g.value,N=`${e}/${R.name}`;R.kind==="file"?d.push(R.getFile().then(C=>(C.directoryHandle=i,C.handle=R,Object.defineProperty(C,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>N})))):R.kind!=="directory"||!t||r&&r(R)||a.push(HT(R,t,N,r))}}catch(R){f=!0,l=R}finally{try{p&&y.return!=null&&(yield y.return())}finally{if(f)throw l}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(d)]}),hv=(...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 HT(e,i.recursive,void 0,i.skipDirectory)}),pv={__proto__:null,default:hv},fv=(s,...n)=>A(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let a=[],d=null;if(i instanceof Blob&&i.type?d=i.type:i.headers&&i.headers.get("content-type")&&(d=i.headers.get("content-type")),t.forEach((f,g)=>{a[g]={description:f.description||"Files",accept:{}},f.mimeTypes?(g===0&&d&&f.mimeTypes.push(d),f.mimeTypes.map(y=>{a[g].accept[y]=f.extensions||[]})):d?a[g].accept[d]=f.extensions||[]:a[g].accept["*/*"]=f.extensions||[]}),e)try{yield e.getFile()}catch(f){if(e=null,r)throw f}let l=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(l);let p=yield l.createWritable();return"stream"in i?(yield i.stream().pipeTo(p),l):"body"in i?(yield i.body.pipeTo(p),l):(yield p.write(yield i),yield p.close(),l)}),gv={__proto__:null,default:fv},Ev=(...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(l=>l.mimeTypes||[]),...i.map(l=>l.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=l=>{typeof a=="function"&&a(),e(l)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),d=()=>{window.removeEventListener("focus",d),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",d)}),o.addEventListener("change",()=>{window.removeEventListener("focus",d),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),_v={__proto__:null,default:Ev},Tv=(...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=a=>{typeof n=="function"&&n(),e(a)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let a=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(a=a.filter(d=>d.webkitRelativePath.split("/").every(l=>!i[0].skipDirectory({name:l,kind:"directory"})))):a=a.filter(d=>d.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),Iv={__proto__:null,default:Tv},Sv=(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(d,l){return A(this,null,function*(){let p=d.getReader(),f=new ReadableStream({start:R=>function N(){return A(this,null,function*(){return p.read().then(({done:C,value:P})=>{if(!C)return R.enqueue(P),N();R.close()})})}()}),g=new Response(f),y=yield g.blob();return p.releaseLock(),new Blob([y],{type:l})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof a=="function"&&a()},a=t.legacySetup&&t.legacySetup(n,()=>a(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),yv={__proto__:null,default:Sv};var Nf=class{constructor(t){this.name=t;m(this,"ready");m(this,"worker");m(this,"ports");m(this,"ids",1);m(this,"transactions",new Map);m(this,"log");m(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){return A(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=Vl(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>A(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:d}})=>{var l;if(n)(l=this.transactions.get(n))==null||l(d),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",d),s(d);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(d.value){let p=typeof d.old=="string"?d.old:`${d.old.action}ing`,f=typeof d.value=="string"?d.value:`${d.value.action}ing`;console.log(Cd(),d.group,d.name,p,"\u{1F449}",f)}break;case"log":console.log(d);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:d}));break}},r.postMessage({wasm:yield Fl(),flag:Wt},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},Df=class{constructor(t,e,r){this.worker=t;m(this,"channel",new MessageChannel);m(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()}},wf=class i extends Nf{constructor(){super("main");m(this,"switchValue",new Map);m(this,"extendChannel");m(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 Ut(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},$o=new wf,Hs,Av=-1;function WT(i){return console.log(i),Hs.push(i.slice()),Hs.length>1e3&&Hs.shift(),i}function GT(i){return A(this,null,function*(){switch(Av){case 0:this.edpl.willDecodeAudio=WT;break;case 2:this.edpl.didEncodeAudio=WT;break}yield $o.create(),U.emit(B.JOIN_SEND_CMD,{room:this});let t=new Df($o,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:n,payload:a}=s;this.onWorkerEvent(n,a)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(U.emit(B.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new se({code:q.JOIN_ROOM_FAILED,extraCode:Number(e),message:We({key:He.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Of},useWt:{set:bv},enableDebug:{set(i){console.debug=i?$T:()=>{},$o.setSwitchValue("enableDebug",i)}},useV2:{set:Mf},dump:{value(){if(Hs||(console.warn("dump audio will be activated at next time join room"),Hs=[]),!Hs.length){console.warn("no audio data to dump,try it later");return}let i=[];return Hs.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),Cf(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;$o.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,$o.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return Cf(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Wt.useHardDecoder="prefer-hardware";break;case!1:Wt.useHardDecoder="prefer-software";break;default:Wt.useHardDecoder="no-preference"}}}});function Of(i){return A(this,null,function*(){$o.setSwitchValue("useAINS",i)})}function Mf(i){return A(this,null,function*(){$o.setSwitchValue("useV2",i)})}function bv(i){return A(this,null,function*(){$o.setSwitchValue("useWt",i)})}function jT(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),i.player.setVolume(0),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function qT(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),Ae(VT(r.port2),Je(ye(i,ue.INIT)),Le(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let d=n[4]&31;if(e<=10){let p=Array.from(n.slice(0,10)).map(f=>f.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${d}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${p}`)}let l;switch(d){case 5:case 7:l="key";break;default:l="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:l,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var $l=[];function JT(i){var d;let t=At();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let l=0;l<=$l.length;l++)if(!$l[l]){$l[l]=this,this.index=l;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncryptFrame?new MessageChannel:null;(d=this.session)==null||d.postMessage({cmd:"pushAudio",payload:Y({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=l=>{l.data==null||(typeof l.data=="number"?t.next(l.data):o&&o.port1.postMessage(_e(Y({},l.data),{data:new Uint8Array(i.encodeFrame({data:l.data.data.buffer,timestamp:l.data.timestamp}).data)})))};let s=new MediaStream,n,a=l=>{let p=s.getAudioTracks()[0];p&&(n.disconnect(),s.removeTrack(p)),s.addTrack(l),this._log.info("push audio track:",l.readyState,l.getSettings().deviceId),n=ze("player").createMediaStreamSource(s),n.connect($c.worklet,0,this.index)};Ae(ye(i,"output-media-track-changed"),Je(ye(i,"ready")),Le(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),$l[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ae(t,Ds(l=>i.volume=l),qi(Ju(1e3)),Le(()=>{i.volume=0})),a(i.outMediaTrack)}var V5=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var xf=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;m(this,"track");m(this,"label");m(this,"insertKeyFrame",!0);m(this,"session");m(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return A(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});e.signal.addEventListener("abort",()=>{o.encoder.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(n,a)=>{o.encoder.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(n),s++,a.enqueue(n))}}),e)})}encode(t){var e,r;(r=(e=this.session)==null?void 0:e.encoder)==null||r.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return A(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});this.session=o;let s=0;t.pipeTo(new WritableStream({write:n=>{o.encoder.state==="configured"&&(s<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,s,Date.now(),n.timestamp,n.displayWidth,n.displayHeight),(n.displayWidth!==this.config.width||n.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",n.displayWidth,n.displayHeight,this.config.width,this.config.height),this.configure({width:n.displayWidth,height:n.displayHeight},o)),this.tsMap.set(s,Date.now()),this.encode(n),s<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,s),s++,n.close())}}),e).catch(n=>{this.localTrack.log.warn(n),o.encoder.close()})})}recreate(t,e){return A(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e.recreateCount===0&&U.emit(B.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,e.frameEncoded=r,this.track.enabled===!1)return;let a=null;if(this.localTrack.enableEncodeFrame){a=new Uint8Array(s.byteLength),s.copyTo(a);let d=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(d.data)}a?(this.localTrack.stat.bytesSent+=a.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:a,duration:s.duration},timestamp:n},[a.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),e.recreateCount++,setTimeout(()=>this.recreate(t,e),100)}});return e.encoder=o,yield this.configure(null,e),e})}configure(t,e){return A(this,null,function*(){var r;t&&Object.assign(this.config,t),(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function Hl(i,t){return A(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Wt.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 n=new xf(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:d}=a.data;Ia({configureBr:[a.data.bitrate,d]}),n.session&&n.configure({bitrate:d},n.session)}},this._log.info("start push",r,t),n})}function XT(i){return A(this,null,function*(){var p;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((p=i.manager)!=null&&p.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let a=yield Hl.call(this,i,r);this._log.info("VideoEncoder created",r);let d,l=f=>A(this,null,function*(){if(d==null||d.abort("track changed"),!f)return;d=new AbortController;let{width:g,height:y,displaySurface:R}=f.getSettings();g&&(a.config.width=g),y&&(a.config.height=y);let N=or.match(/Chrome\/(\d+)/);(N==null?void 0:N[1])==="114"&&R==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",f.readyState,f.getSettings());let C;if(typeof MediaStreamTrackProcessor!="undefined"&&!(f instanceof CanvasCaptureMediaStreamTrack))C=new MediaStreamTrackProcessor({track:f}).readable;else{let X;C=new ReadableStream({start(H){i.on("render",ge=>{if(!(i.player.mode===0&&!document.hidden))try{H.enqueue(new VideoFrame(ge,{timestamp:performance.now()*1e3}))}catch(Ue){console.warn(Ue)}})},pull(H){return A(this,null,function*(){if(i.player.mode===0&&zr()&&i.player.element)return new Promise(ge=>{i.player.element.requestVideoFrameCallback((Ue,W)=>{try{let we=new VideoFrame(i.player.element);H.enqueue(we)}catch(we){console.warn(we)}ge()})})})}})}let P="small"in i&&i.small;return P?(this.smallEncoder||(this.smallEncoder=yield Hl.call(this,i,{profile:P,type:3,trackType:o})),this.smallEncoder.track=f,this.smallEncoder.label="small",C=yield this.smallEncoder.trans(C,d,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=f,a.label=e,a.start(C,d,this)});return Ae(ye(i,"output-media-track-changed"),Je(ye(i,"ready")),Le(l,console.error,()=>{var f;this._log.info("stop push",e,r),d.abort("unpublish"),a.close(),(f=this.smallEncoder)==null||f.close()})),l(i.outMediaTrack)})}var Ho=class Ho extends ue{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;m(this,"enableInBackground",!1);m(this,"interval",400);e.on("joined",()=>{this.emit(Ho.INTERVALCHANGED,this.interval)}),Ae(ye(this,Ho.INTERVALCHANGED),ui(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ae(e_(s),wo(()=>[]))),Le(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==ue.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(Ho.INTERVALCHANGED,this.interval)}stop(){}};m(Ho,"INTERVALCHANGED","intervalChanged"),Z([et([ue.INIT,ue.OFF],ue.ON)],Ho.prototype,"start",1),Z([et([],ue.OFF)],Ho.prototype,"stop",1);var Wl=Ho;var Wo=class Wo extends Ul{constructor(e){super(e);m(this,"index",0);m(this,"session");m(this,"tinyid");m(this,"roomid");m(this,"openid");m(this,"socketid");m(this,"relayip");m(this,"clientip");m(this,"remotePublishedUserMap",new Map);m(this,"bussinessInfo");m(this,"token");m(this,"audioVolumeEvalution",new Wl(this));m(this,"enableAIVoice",Of);m(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:Wm(),uint32_device_type:0,str_os_verion:Gm(),uint32_link_type:1,str_client_version:ht,uint32_net_type:rs[si.getNetworkType()],ua:navigator.userAgent,version:""}});m(this,"joinAbortController",new AbortController);m(this,"smallAbortCtrl");m(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,Mf(!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 n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=a=>{n.port2.close(),o(a.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=a=>{a.data?o.next(a.data):o.complete()},s.port2.onmessageerror=a=>o.error(a),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.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 d,l,p;let s=si.getEnv(),n=hu(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(d=this.proxy_wt)==null?void 0:d.replace("https://",""),proxy_ws:(l=this.proxy_ws)==null?void 0:l.replace("wss://",""),proxy_cloud:(p=this.scheduleResult.iceServers)!=null&&p.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:An(),browserInfo:hu(),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:ht,browserVersion:n.browserName+n.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 GT.call(this,a),console.log(this),$c.playAudio(f=>this.postMessage({cmd:"setAudioWorkletPort"},[f])),this.checkDestroy()})}leave(){return A(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish()),this.localTracks.clear()})}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=Je(ye(this,"left"));Ae(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,Le(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(_e(Y({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case B.RECEIVED_PUBLISHED_USER_LIST:U.emit(e,Y({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 wl(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let f=r,g=this.remotePublishedUserMap.get(f);g&&(g.remoteVideoTrack.close(),g.remoteAuxiliaryTrack.close(),g.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(f),this.emit("remote-unpublished",g))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:f,muteState:g,flag:y}=r,R=this.remotePublishedUserMap.get(g.userId);if(!R){this.emit("remote-publish-state-changed",r);return}R.flag=y}U.emit(B.REMOTE_PUBLISH_STATE_CHANGED,Y({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"7":this.localPublishFlag!==r.flag&&(this.localPublishFlag=r.flag,this.emit("local-publish-flag-changed",r.flag));return;case"network-quality":this.quality=Y({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:d,msg_down_stream_info:l}=r,p={str_sdk_version:ht,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:rs[cn()]},msg_event_msg:i_(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:l};U.emit(B.HEARTBEAT_REPORT,{room:this,report:p}),this.emit("heartbeat-report",p),U.emit(B.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:d}),delete r.downlinkInfo;break;case"signal-connection-state-changed":U.emit(B.SIGNAL_CONNECTION_STATE_CHANGED,Y({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*(){switch(yield this.sendMessage("publish",e.mediaType).then(r=>r.err!==0?Promise.reject(r.err):r),Ft(e,e).add("mute",()=>{this.postMessage("mute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),e.mediaType){case 1:yield $c.init(),JT.call(this,e);break;default:yield XT.call(this,e)}e.muted&&this.postMessage("mute",{mediaType:e.mediaType,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(e){return A(this,null,function*(){St(e)})}subscribe(...e){return A(this,null,function*(){let r=e.reduce((f,g)=>g.mediaType|f,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),d=Y({},a.subscribeState),l=Object.assign(new Fa,d);l.mediaType|=r,U.emit(B.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:l});let p=yield this.sendMessage("subscribe",{mediaType:l.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(f=>l.mediaType&f).map(f=>({mediaType:f,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",p),yield Promise.all(e.filter(f=>!f.isSubscribed).map(f=>{switch(f.mediaType){case 1:return jT.call(this,f);default:return qT.call(this,f)}})),U.emit(B.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return A(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let a of e)a.unsubscribe();U.emit(B.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 Hl.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);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(a=>s&a).map(a=>({mediaType:a,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Z([No(Wo.prototype.afterJoin),et(["left",ue.INIT],"joined"),CT()],Wo.prototype,"join",1),Z([et("joined","left",{ignoreError:!0}),NT()],Wo.prototype,"leave",1),Z([Mu(e=>e.mediaType),DT()],Wo.prototype,"publish",1),Z([Mu(e=>e.mediaType),wT()],Wo.prototype,"unpublish",1),Z([Mu((...e)=>e[0].userId),OT()],Wo.prototype,"subscribe",1);var Gl=Wo;Yn.frameWorkType=37;Yn.create=function(i){let t=Yn._create.call(this,Gl,i);return t._use(Zp,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Wt.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",ht,"created",Wt),t};Object.assign(Yn.prototype,{_setCurrentSpeaker(i){let t=ze("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return A(this,null,function*(){return this.startPlugin(Zp.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.640028",hardwareAcceleration:"prefer-software",optimizeForLatency:!0},fallback:"wasm"}),new Promise((e,r)=>{Ae(ye(i,"decode-downgrade-state-changed"),er(o=>o.state==="STARTED"),Qr(1),vp(1e4),Je(ye(i,ue.INIT)),Le(e,r))})})}});Sh(37);var u6=Yn;export{u6 as default};
|
|
166
|
+
}`});p(this,"yTextureRef");p(this,"uTextureRef");p(this,"vTextureRef");p(this,"Y");p(this,"U");p(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 By=(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")};function c0(i){return i[0]===0&&i[1]===0&&i[2]===0&&i[3]===1}var d0=0,gh=class{constructor(t){p(this,"id",d0++);p(this,"trackDoneOB");p(this,"startOB");p(this,"stopOB");p(this,"decoder");p(this,"videoContext");p(this,"gop",0);p(this,"gop_helper",0);p(this,"waitFirstKeyFrame",!0);p(this,"startTimestamp",0);p(this,"startTime",0);p(this,"startPerformanceTime",0);p(this,"inputFrameCount",0);p(this,"decodedFrameCount",0);p(this,"decodeFrameCount",0);p(this,"downgradeLevel",0);p(this,"lastDowngradeTime",0);p(this,"lastFrameDiff",0);p(this,"lastDecodeFrameTimestamp",0);p(this,"config");p(this,"gop_before_configure",[]);p(this,"videoElement");p(this,"type","wasm");p(this,"goodType");p(this,"renderer","2d");p(this,"wasmOption");p(this,"createDecoder");p(this,"_decodeSink");p(this,"isReported",!1);p(this,"track");p(this,"stateChangeOB");p(this,"failedReason");let{track:e,createDecoder:r}=t;if(this.stateChangeOB=ir(),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=Qe(e.availableState,Ve.OFF),this.stopOB=ir(),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),Ye(this.stateChangeOB,tf((o,s)=>(o!==s&&e.onDecodeDowngradeStateChanged({type:this.type,renderer:this.renderer,reason:this.failedReason,prevState:o,state:s}),s),"INITIALIZED"),At(this.stopOB),lt()),this.start()}start(t=0){this.waitFirstKeyFrame=!0,this.stateChangeOB.next("STARTING");let e=Ye(this.pipe(this.track),At(this.stopOB),So());Ye(e,lt(()=>{this.track.stat.framesDecoded++},r=>{if(this.track.log.error(`${this.id} play failed: ${r} retryCount: ${t}`),Se.addFailedEvent({key:By(this.type,this.renderer),error:r}),t>4)this.failedReason=r,this.stateChangeOB.next("FAILED"),Se.addFailedEvent({key:514704});else{if(this.goodType){this.start(t);return}switch(this.type){case"webCodecs":this.type="wasm",this.changeRenderer("webgl");break;case"wasm":switch(this.renderer){case"webgl":this.changeRenderer("videoFrame");break}}this.start(t+1)}},()=>{this.track.log.warn(`${this.id} decoderOB completed`),Se.addSuccessEvent({key:By(this.type,this.renderer)}),Se.addSuccessEvent({key:514704})})),Ye(e,Ni(1),lt(()=>{this.track.player.handlePlaying("canvas"),this.goodType=this.type,this.stateChangeOB.next("STARTED")}))}mock(t){this._decodeSink?this._decodeSink.error(t):this.start()}close(t){this.stopOB.next(t)}changeRenderer(t){this.renderer=t,this.renderer==="videoFrame"&&!Xm()&&(this.renderer="2d"),this.wasmOption.yuvMode=this.renderer==="webgl"}decode(t,e=!1){var a,c;if(this.failedReason)return;this.inputFrameCount++;let r=new Uint8Array(t.data);if(!c0(r)||r.length<5)return this.stateChangeOB.next("FAILED"),this.close(`not h26x frame ${r.subarray(0,5)}`),t;let o=r[4]&31,s=!1;switch(o){case 5:case 7:s=!0;break}if(((a=this.decoder)==null?void 0:a.state)!=="configured")return this.track.log.debug(`not configured ${this.inputFrameCount}`),s&&(this.gop_before_configure=[]),this.gop_before_configure.push({data:t.data,timestamp:t.timestamp,type:t.type}),t;this.gop_before_configure.length>0&&!e&&(this.gop_before_configure.forEach(d=>this.decode(d,!0)),this.gop_before_configure=[]);let{timestamp:n}=t;if(s?(this.gop=this.gop_helper,this.gop_helper=0):this.gop_helper++,this.decoder){if(this.waitFirstKeyFrame)if(s)this.waitFirstKeyFrame=!1,this.startTimestamp=n,this.startTime=Date.now(),this.startPerformanceTime=Xe();else{this.track.log.debug(`wait first key frame ${this.inputFrameCount} ${r.subarray(0,5).join(" ")}`);return}switch(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.decodeFrameCount<10||this.decodeFrameCount%500===0)&&this.track.log.debug(`decode ${this.decodeFrameCount} gop: ${this.gop} ${n} ${(c=t.getMetadata)==null?void 0:c.call(t).rtpTimestamp}`),this.decodeFrameCount++,this.lastDecodeFrameTimestamp=n,this.decoder.decode({data:t.data,type:t.type,timestamp:this.lastDecodeFrameTimestamp});return}return t}checkDowngradeByFrameDiff(){let t=this.downgradeLevel,e=this.decodeFrameCount-this.decodedFrameCount;e>this.lastFrameDiff?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):e<=this.lastFrameDiff&&this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==t&&this.track.log.debug(`downgrade level ${t} to ${this.downgradeLevel} ${this.decodeFrameCount} frameDiff: ${e}, lastFrameDiff: ${this.lastFrameDiff}`),this.lastFrameDiff=e,this.lastDowngradeTime=Date.now()}checkDowngradeByTimestampDiff(t){let e=this.downgradeLevel;this.lastDecodeFrameTimestamp-t>9e4?(this.downgradeLevel++,this.downgradeLevel>4&&(this.downgradeLevel=4)):this.downgradeLevel>0&&this.downgradeLevel--,this.downgradeLevel!==e&&this.track.log.debug(`downgrade level ${e} to ${this.downgradeLevel}`)}pipe(t){return e=>D(this,null,function*(){this._decodeSink=e;let r,o=t.mediaTrack;e.defer(()=>{var a;o&&(t.player.setCanvas(),t.setInputMediaStreamTrack(o)),r==null||r.close(),(a=this.videoContext)==null||a.destroy(),delete this._decodeSink});let{renderer:s,type:n}=this;t.log.info(`decoder type: ${this.type} renderer: ${this.renderer}`);try{switch(n){case"wasm":r=this.createDecoder(n,this.wasmOption);break;case"webCodecs":r=this.createDecoder(n);break;default:throw new Error("not supported yet")}let a=0;if(r.on("videoFrame",c=>{this.decodedFrameCount++,a++,(a<=10||a%500===0)&&t.log.debug(`frame ${a} ${this.decodedFrameCount}/${this.decodeFrameCount} decoded ${c.timestamp}`),Date.now()-this.lastDowngradeTime>5e3&&(this.type==="webCodecs"?this.checkDowngradeByFrameDiff():this.type==="wasm"&&this.checkDowngradeByTimestampDiff(c.timestamp)),e.next(c)}),r.on("error",c=>{t.log.error(c),e.error(n==="webCodecs"?4:8)}),yield r.initialize(this.videoElement),!this._decodeSink)return;if(r.configure(this.config),n==="wasm"&&s==="webgl"){this.videoContext=new cr({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create(),this.videoContext.on(cr.UNAVAILABLE,d=>{t.log.error(d),e.error(7)});let c=new fh(this.videoContext);r.on("videoCodecInfo",d=>c.resize(d.width,d.height)),r.on("videoFrame",d=>{({y:c.Y,u:c.U,v:c.V}=d),this.downgradeLevel===1?this.decodedFrameCount%2===0&&c.render(this.decodedFrameCount):c.render(this.decodedFrameCount)}),t.source=c,t.player.setCanvas(this.videoContext._canvas,2)}else if(s==="videoFrame"){t.player.setCanvas();let c=new MediaStreamTrackGenerator({kind:"video"}),d=c.writable.getWriter();t.setInputMediaStreamTrack(c),r.on("videoFrame",m=>d.write(m))}else{this.videoContext=new mr({frameRate:15,logger:t.log,name:t.userId}),this.videoContext.create({alpha:!1});let c=this.videoContext.createVideoImageSource();r.on("videoFrame",m=>{try{c.image=m,c.update()}catch(l){delete this.goodType,t.log.error(l),e.error(11)}});let d=new on(this.videoContext,{name:"remotePlayer",logger:t.log});c.connect(d),t.source=c,t.player.setCanvas(this.videoContext._canvas,2)}this.decoder=r}catch(a){t.log.error(a),e.error(n==="webCodecs"?2:6)}})}};var $y=Promise.resolve(),ld=class extends Fy.EventEmitter{constructor(e){super();this.room=e;p(this,"videoContext");p(this,"_glVideoContext");p(this,"_2dVideoContext");p(this,"destination");p(this,"smallVideoContext");p(this,"smallDestination");p(this,"smallTrackSource");p(this,"smallImageSource");p(this,"_isMirror",!1);p(this,"_rotation",0);p(this,"cameraTrack");p(this,"cameraNode");p(this,"transformNode");p(this,"mixNode");p(this,"screenTrack");p(this,"screenNode");p(this,"selfModel",!1);p(this,"blurRadius",3);p(this,"arTrack");p(this,"_enableFaceCentering",!1);p(this,"_enableEffectOptimization",!1);p(this,"onAbort");p(this,"_color");p(this,"Wasm");p(this,"waterMarkNode");p(this,"_waterMarkOption");p(this,"watermarkImageList",[]);p(this,"_beautyParams");p(this,"isUsingArTrack",!1);p(this,"mixTrack");p(this,"_isMixScreen",!1);p(this,"_virtualBackground");p(this,"_virtualBackgroundAbortCallback");p(this,"virtualBackgroundInstance");p(this,"_bgAssetPath");p(this,"log");p(this,"_mat4");p(this,"_postProcessing");p(this,"_checkId",0);p(this,"_use2d",!1);p(this,"_autoSwitchRenderMode",!0);p(this,"encodePipeline",[]);p(this,"decodePipeline",[]);p(this,"updated",$y);p(this,"_updateFlag",!1);this.log=se.createLogger({parent:e==null?void 0:e.getLogger(),id:"vm",userId:e==null?void 0:e.userId,sdkAppId:e==null?void 0:e.sdkAppId}),this.smallVideoContext=new mr({frameRate:15,logger:this.log,name:"s"}),this.enablePrintDetail()}get smallMode(){var e;return((e=this.room)==null?void 0:e.smallMode)||"canvas"}get _hasVirtualBg(){return!!this._virtualBackground}get _hasWaterMark(){return this.watermarkImageList.length>0}get _isRotate(){return this._rotation!==0}get _isTransform(){return this._isMirror||this._isRotate}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())}get cameraResolution(){var o;let{width:e,height:r}=((o=this.cameraTrack)==null?void 0:o.settings)||{};return Jr(this._rotation)?{width:r,height:e}:{width:e,height:r}}get2dVideoContext(){return this._2dVideoContext?this._2dVideoContext.destroy():this._2dVideoContext=new mr({frameRate:15,logger:this.log,name:"m"}),this._2dVideoContext.create({alpha:this._hasWaterMark||this._hasVirtualBg}),this._2dVideoContext}getGlVideoContext(){if(!this._glVideoContext)this._glVideoContext=new cr({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(pm<=22),this._glVideoContext.on(cr.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)}}initVirtualBackground(e,r,o){this.onAbort=e,this._mat4=r,this._postProcessing=o}enablePrintDetail(e=2e3){this._checkId=Jt.run("interval",()=>{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(),Jt.clearTask(this._checkId)}get needAlpha(){return this._hasWaterMark||this._hasVirtualBg}get active(){return(ni||this._isMixScreen||this._isTransform||this._hasWaterMark||this._hasVirtualBg||this._beautyParams)&&this.checkOrCreateVideoContext()}sendCreateResult(e="videoCtxGl",r){let o=e==="videoCtxGl"?512700:512701;r?Se.addFailedEvent({key:o,error:r}):Se.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 cr({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}setSmallVideo(e,r){if(this.smallMode!=="api")if(e){if(!this.smallVideoContext.available){if(this.smallVideoContext.create({alpha:!1}),!this.smallVideoContext.available)return;this.smallDestination=new Tl(this.smallVideoContext,e,this.log),this.smallVideoContext.on(cr.UNAVAILABLE,o=>{this.log.warn("small video context lost",o)})}if(this.smallVideoContext.frameRate=e.frameRate,this.smallDestination.resolution=e,r)this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource),this.smallImageSource?this.smallImageSource.image=r:(this.smallImageSource=this.smallVideoContext.createVideoImageSource(r),this.smallImageSource.resize(r.width,r.height),this.smallImageSource.connect(this.smallDestination));else if(this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource)this.smallTrackSource.replaceTrack(this.initialTrack);else{this.smallTrackSource=this.smallVideoContext.createVideoTrackSource(this.initialTrack,"smallTrackSource");let{width:o,height:s}=this.cameraTrack.settings;this.smallTrackSource.resize(o,s),this.smallTrackSource.connect(this.smallDestination)}}else this.smallVideoContext.available&&(this.smallVideoContext.destroy(),delete this.smallDestination,delete this.smallTrackSource,delete this.smallImageSource)}_setMainOutput(e){var r;try{let o=this.cameraTrack,{small:s,player:n}=o;ni&&n.setCanvas(e);let a=e&&((r=this.destination)==null?void 0:r.videoTrack)||this.initialTrack;return this.isUsingArTrack&&this.arTrack&&(this.emit("output-track-changed"),a=this.arTrack),this.log.info(`set main output ${a?a.label:"no output track"}`),this.setSmallVideo(s,e),o.setOutputMediaStreamTrack(a)}catch(o){this.log.error("set main output failed",o)}}update(e=!1){return D(this,null,function*(){var s;if(!this.cameraTrack||!this.initialTrack)return;if(!this.active)return this.cameraNode&&this.clear(),this._setMainOutput();let{settings:r,profile:o}=this.cameraTrack;if(this._use2d||!this._virtualBackground&&!this._beautyParams)this.destination||(this.destination=this.videoContext.createVideoTrackDestination({name:"mainDestination2d",logger:this.log}),this.destination.on(or.RENDER,n=>{var a;(a=this.cameraTrack)==null||a.emit("render",n)})),Tr===16?this.initialTrack instanceof CanvasCaptureMediaStreamTrack?(this.cameraNode&&(this.cameraNode instanceof di?(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 di?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(r.width,r.height);else if(e&&this.cameraNode&&this.destination)this.cameraNode.replaceTrack(this.initialTrack);else{this.cameraNode&&this.cameraNode.close(),this.destination?this.destination.disableCheckMute():(this.destination=new El(this.videoContext,{name:"mainDestination",logger:this.log}),this.destination.on(or.RENDER,d=>{var m;(m=this.cameraTrack)==null||m.emit("render",d)}));let{width:n,height:a}=this.cameraResolution,c=yield this.getWatermarkImage(n,a);this._waterMarkOption={x:0,y:0,width:c.width,height:c.height,image:c},this.cameraNode=new ph(this.videoContext,{input:this.initialTrack,width:n,height:a,mirror:this._isMirror,rotation:this._rotation,bg:this._virtualBackground,selfModel:this.selfModel,waterMark:this._waterMarkOption,beautyParams:this._beautyParams,useTflite:!0,blurRadius:this.blurRadius,assetPath:this._bgAssetPath,Wasm:this.Wasm,enableFaceCentering:this._enableFaceCentering,enableEffectOptimization:this._enableEffectOptimization,onAbort:this.onAbort,mat4:this._mat4,postProcessing:this._postProcessing,color:this._color}),this.cameraNode.connect(this.destination),this.destination.enableCheckMute(),yield this.cameraNode.predictReady}if(this.videoContext.frameRate=o.frameRate,this._use2d){let n=this.cameraNode;if(n.disconnect(),this._isTransform&&(this.transformNode?(this.transformNode.mirror=this._isMirror,this.transformNode.rotation=this._rotation):this.transformNode=new ui(this.videoContext,this.log,this._isMirror,this._rotation),n=n.connect(this.transformNode),n.disconnect(),this.log.info(`start mirror ${this._isMirror} rotate ${this.rotation}`)),this.mixNode&&this.mixNode.close(),delete this.mixNode,this._isMixScreen||this._hasWaterMark){if(this.mixNode=new la(this.videoContext,this.log),n.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;else if(this.waterMarkNode){let{width:c,height:d}=this.cameraResolution;this.waterMarkNode.image=yield this.getWatermarkImage(c,d),c&&d&&this.waterMarkNode.resize(c,d)}(s=this.waterMarkNode)==null||s.connect(this.mixNode,{zIndex:2}),this._isMixScreen&&this.screenTrack&&(this.screenNode||(this.screenNode=this.videoContext.createVideoTrackSource(this.screenTrack.mediaTrack,"screenNodeSource"),this.screenNode.resize(this.screenTrack.settings.width,this.screenTrack.settings.height)),this.screenNode.shouldUpdate=!1,this.screenNode.connect(this.mixNode,{zIndex:0})),n=this.mixNode,this.log.info("start mix",`${this.mixNode.width}x${this.mixNode.height}`)}n.connect(this.destination)}return this.log.info(`update ${this._use2d?"2d":"webgl"}`),this._setMainOutput(this.videoContext.canvas)})}clearLastFrame(){var e;this.destination&&((e=this.destination.ctx2d)==null||e.clearRect(0,0,this.destination.width,this.destination.height))}changeInput(e){var r,o,s,n,a;if(e instanceof zi)return this.log.info("change screen input",(r=e.mediaTrack)==null?void 0:r.label),this.setScreenTrack(e);if(e instanceof Zr)return this.log.info("change video input",(o=e.mediaTrack)==null?void 0:o.label),this.setCameraTrack(e);if(e instanceof qi){this.log.info("change remote input",(s=e.mediaTrack)==null?void 0:s.label);let c=e.mediaTrack;return e.setOutputMediaStreamTrack(c)}if(e instanceof nn)return this.log.info("change mix input",(n=e.outMediaTrack)==null?void 0:n.label),this.setMixTrack(e);this.log.warn("change unknown input",(a=e.mediaTrack)==null?void 0:a.label)}removeInput(e){var r;e instanceof zi?((r=this.screenNode)==null||r.close(),delete this.screenNode,delete this.screenTrack,this.update()):e instanceof Zr?this._isMixScreen?(delete this.cameraNode,this.cameraTrack._inputTrack=null,this.update()):(this.clear(),delete this.cameraTrack,this.smallImageSource&&(this.smallImageSource.close(),delete this.smallImageSource),this.smallTrackSource&&(this.smallTrackSource.close(),delete this.smallTrackSource)):e instanceof qi?e.source&&e.source.context.destroy():e instanceof nn&&(delete this.mixTrack,this.update())}setMixTrack(e){this.mixTrack=e}setCameraTrack(e){return this.cameraTrack=e,this.update(!0)}setScreenTrack(e){return D(this,null,function*(){return this.screenTrack=e,this._isMixScreen&&(this.screenNode?this.screenNode.replaceTrack(e.mediaTrack):yield this.update()),e.setOutputMediaStreamTrack(e.mediaTrack)})}getWatermarkImage(e,r){return D(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 Me({code:Te.NOT_SUPPORTED,message:"Make image failed because of canvas context is null"});return this.watermarkImageList.sort((n,a)=>n.zIndex-a.zIndex),this.watermarkImageList.forEach(({image:n,x:a,y:c,width:d,height:m,fillVideo:l})=>{let f=l&&e||d,g=l&&r||m,T=l?0:a,E=l?0:c;s.drawImage(n,T,E,f,g)}),Bn(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&&s.fillVideo===e.fillVideo)||((r==="mute"||r==="watermark")&&(this.watermarkImageList=this.watermarkImageList.filter(s=>s.type!==r)),this.watermarkImageList.push(e))}setBeautyParams(e){return D(this,null,function*(){this._beautyParams=e,this.update()})}stopBeauty(){return D(this,null,function*(){this._beautyParams=void 0,this.update()})}setWatermark(e){return D(this,null,function*(){let r;try{r=yield Bn((e==null?void 0:e.imageElement)||e.imageUrl)}catch(f){throw new Me({code:Te.INVALID_PARAMETER,message:`load image failed, url: ${e.imageUrl}`})}let{x:o=0,y:s=0,width:n=r.width,height:a=r.height,type:c="watermark",zIndex:d=2,fillVideo:m=!1}=e;this.watermarkImageList.some(f=>f.type===c)?(this.watermarkImageList=this.watermarkImageList.filter(f=>f.type!==c),this.pushWaterMarkImageList({x:o,y:s,width:n,height:a,image:r,zIndex:d,type:c,imageUrl:e.imageUrl,fillVideo:m}),r=yield this.getWatermarkImage(this.cameraResolution.width,this.cameraResolution.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:n,height:a,image:r,zIndex:d,type:c,imageUrl:e.imageUrl,fillVideo:m}),yield this.freshWatermark()),this.log.info("set watermark",JSON.stringify(this.watermarkImageList,(f,g)=>f==="imageUrl"?void 0:g))})}deleteWatermark(e="watermark"){return D(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 D(this,null,function*(){var s;(s=this.waterMarkNode)==null||s.close(),delete this.waterMarkNode,delete this._waterMarkOption;let{width:e,height:r}=this.cameraResolution,o=yield this.getWatermarkImage(e,r);this._waterMarkOption={x:0,y:0,width:o.width,height:o.height,image:o},this.update()})}setVirtualBackground(e){return D(this,null,function*(){var r,o,s;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 Bn(e.imageUrl):(this.blurRadius=e.blurLevel||this.blurRadius||3,this._virtualBackground=e.type),this._enableFaceCentering=(r=e.enableFaceCentering)!=null?r:this._enableFaceCentering,this._enableEffectOptimization=(o=e.enableEffectOptimization)!=null?o:this._enableEffectOptimization,this._color=(s=e.color)!=null?s:[0,1,0]}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 Me({code:Te.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._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get mirror(){return this._isMirror}set rotation(e){var r;this._rotation!==e&&(this._rotation=e,this._isTransform||((r=this.transformNode)==null||r.close(),delete this.transformNode),this.update())}get rotation(){return this._rotation}enableAr(e){this.arTrack=e,this.isUsingArTrack=!0,this.update()}updateAr(){return D(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 gh(e)}clear(){var e,r;(e=this.videoContext)==null||e.disconnect(),(r=this.destination)==null||r.removeAllListeners(),delete this.destination,delete this.cameraNode,delete this.transformNode,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}};Ie([wE(function(e){this.log.error("update failed",e)}),ut(e=>function(...r){return D(this,null,function*(){this._updateFlag||(this._updateFlag=!0,yield $y,this.updated=new Promise((o,s)=>{e.apply(this,r).then(o,s),setTimeout(s,5e3,new Me({code:Te.API_CALL_TIMEOUT,message:"update timeout"}))}),this._updateFlag=!1,yield this.updated)})})],ld.prototype,"update",1);var u0=0;var _h=class extends Ve{constructor(e){super("room");p(this,"seq",++u0);p(this,"sdkAppId");p(this,"userId");p(this,"userSig");p(this,"privateMapKey");p(this,"latencyLevel");p(this,"tinyId");p(this,"scene");p(this,"roomId");p(this,"useStringRoomId");p(this,"role","anchor");p(this,"joinParams",null);p(this,"localPublishFlag",0);p(this,"localTracks",new Set);p(this,"enableAutoPlayDialog",!0);p(this,"autoReceiveAudio",!0);p(this,"autoReceiveVideo",!0);p(this,"proxy_ws");p(this,"proxy_wt");p(this,"proxy_unified");p(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,isH265EncodeSupported:!0,isH265DecodeSupported:!0}});p(this,"keyPointManager");p(this,"audioManager");p(this,"videoManager");p(this,"callDurationCalculator");p(this,"badCaseDetector");p(this,"scheduleResult",{domains:null,iceServers:null,iceTransportPolicy:null,trtcAutoConf:null});p(this,"videoDecodeFallbackType");p(this,"smallMode","canvas");p(this,"enableChorus",!1);p(this,"_isUsingCachedSchedule",!1);p(this,"_log");p(this,"_joinedTimestamp",0);p(this,"_sdkType");p(this,"heartbeatReport");p(this,"heartbeatCount",0);p(this,"quality");p(this,"enableSEI");p(this,"isDestroyed",!1);this._log=se.createLogger({parent:e.logger,id:`r${this.seq}`}),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 Py({room:this,frameWorkType:e.frameWorkType,component:e.component,language:e.language}),this.callDurationCalculator=new Uy({room:this}),this.badCaseDetector=new Vy({room:this}),this.audioManager=new Il(this),this.videoManager=new ld(this)}get videoCodec(){return"h264"}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 localMainAudioTrack(){for(let e of this.localTracks)if(e.mediaType&1)return e;return null}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}get publishState(){let e={audio:!1,bigVideo:!1,smallVideo:!1,auxVideo:!1};return this.localTracks.forEach(r=>{if(r.isPublished||r.isPublishing)switch(r.mediaType){case 1:e.audio=!0;break;case 4:e.bigVideo=!0,e.smallVideo=r.hasSmall;break;case 2:e.auxVideo=!0;default:break}}),e}get muteState(){var e,r,o;return{audio:!!((e=this.localMainAudioTrack)!=null&&e.muted),bigVideo:!!((r=this.localMainVideoTrack)!=null&&r.muted),auxVideo:!!((o=this.localAuxVideoTrack)!=null&&o.muted)}}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 D(this,null,function*(){return this.publish(e)})}removeTrack(e){return D(this,null,function*(){return this.unpublish(e)})}replaceTrack(e){return D(this,null,function*(){})}setEncodedDataProcessingListener(e){throw new Error("Method not implemented.")}enableAIVoice(e){throw new Error("Method not implemented.")}setProxyServer(e){if(nt(e))e.startsWith("wss://")?this.proxy_ws=e:e.startsWith("https://")&&(this.proxy_wt=e);else if(Nr(e)){let{websocketProxy:r,webtransportProxy:o,loggerProxy:s,scheduleProxy:n,unifiedProxy:a}=e;this.proxy_ws=r,this.proxy_wt=o,this.proxy_unified=a,a?(Ul([a,a]),vs(`https://${a}`)):(s&&vs(s),n&&Ul(n))}ee.once(ce.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({sched_domain:Qi.main,sched_back_domain:Qi.backup,signal_domain:this.proxy_ws||this.proxy_wt||""}))}getRemoteAudioStats(){return D(this,null,function*(){let e={};return this.remotePublishedUserMap.forEach(r=>{e[r.userId]=r.remoteAudioTrack.stat}),e})}getTransportStats(){return D(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 D(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 Me({code:Te.INVALID_OPERATION,message:Et({key:_t.CLIENT_DESTROYED,data:{funName:"join"}})})}destroy(){if(this.isJoined)throw this._log.warn(Wr.INVALID_DESTROY),new Me({code:Te.INVALID_OPERATION,message:Et({key:_t.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,ee.emit(ce.ROOM_DESTROY,{room:this})}schedule(e,r){return D(this,null,function*(){var s,n,a,c;let o=Xe();try{let{isCached:d,result:m,detailCost:l}=yield Pf({userId:this.userId,sdkAppId:this.sdkAppId,roomId:this.useStringRoomId?e.strRoomId:e.roomId,useStringRoomId:this.useStringRoomId,version:qt,userSig:this.userSig,role:this.scene==="live"?e.role:void 0,frameWorkType:r,latencyLevel:e.latencyLevel});this._isUsingCachedSchedule=d,this._log.info(`schedule cache:${+d} ${oi(m,{keysToExclude:["username","credential"]})}`),d&&ee.once(ce.JOIN_RECEIVED_CMD_RES,()=>this.sendAbilityStatus({scheduleCache:1})),this.scheduleResult=be(be({},this.scheduleResult),m),ft((s=m.config)==null?void 0:s.retryCount)&&Wh(m.config.retryCount),nt((n=m.config)==null?void 0:n.loggerDomain)&&vs(m.config.loggerDomain),this.videoDecodeFallbackType=((a=m.config)==null?void 0:a.videoDecodeFallback)||this.videoDecodeFallbackType,this.smallMode=((c=m.config)==null?void 0:c.smallMode)||this.smallMode,ee.emit(ce.JOIN_SCHEDULE_SUCCESS,{room:this,schedule:this.scheduleResult,detailCost:l}),Se.addSuccessEvent({key:521700,cost:Xe()-o})}catch(d){throw Se.addFailedEvent({key:521700,error:d}),d}})}sendAbilityStatus(e){}enableInsertableStreams(){return Promise.resolve()}switchRoom(e){return Promise.reject()}isSwitchRoomSupported(){return!1}};function Hy(i,t=!1){let e=Object.defineProperties(ir(),{postMessage:{value:i.postMessage.bind(i)},port:{get(){return i},set(o){i.onmessage=Tt,i.onmessageerror=Tt,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 hg=class extends Ge{constructor(t,e){super(t);let r=new Ge(t);r.next=Tt,e(r)}},EW=Je(hg,"takeUntilComplete");var Ar={useWt:!0,useAINS:!0,useHardDecoder:"prefer-software",useHardEncoder:"prefer-software",unreliable:!1,debug:!1,assetsPath:"",enableUpload:!0},Wy="__INLINE__WORKER__",Gy="__INLINE__WASM__",{debug:zy}=console;Ar.debug||(console.debug=()=>{});var l0=!Wy.startsWith("__"),h0=!Gy.startsWith("__");function Eh(){let i=xs(`${Ar.assetsPath?`${Ar.assetsPath}/`:""}worker.js`);return l0?URL.createObjectURL(new Blob([atob(Wy)],{type:"application/javascript"})):i.startsWith("http")?fetch(i).then(t=>t.blob().then(e=>URL.createObjectURL(e))):i}var hd;function Th(){return D(this,null,function*(){let i=Ar.assetsPath?`${Ar.assetsPath}/`:"";return hd||(h0?hd=new TextEncoder().encode(atob(Gy)).buffer:hd=yield fetch(xs(`${i}av_processing.wasm`)).then(t=>t.arrayBuffer()),hd)})}var mg=class{constructor(){p(this,"playPort");p(this,"playPortSent",!1);p(this,"worklet");p(this,"workletPromise")}init(){return this.workletPromise||(this.workletPromise=this._init()),this.workletPromise}_init(){return D(this,null,function*(){let t=bt("player"),e=Eh();try{yield t.audioWorklet.addModule(typeof e=="string"?e:yield e),se.info("global audio player worklet addModule success",e)}catch(r){throw se.error("global audio player worklet addModule failed:",r),r}return this.worklet=new AudioWorkletNode(t,"global-audio-player",{processorOptions:{wasm:yield Th(),flag:Ar},numberOfInputs:2}),se.info("global audio player worklet created",t.state),this.worklet.connect(t.destination),this.playPort=this.worklet.port,this.playPort})}playAudio(t){return D(this,null,function*(){var r;yield this.init();let e=new MessageChannel;(r=this.playPort)==null||r.postMessage(null,[e.port1]),t(e.port2)})}},md=new mg;var pg=(()=>{if(typeof self=="undefined")return!1;if(!("top"in self&&self!==top)){if("showOpenFilePicker"in self)return"showOpenFilePicker"}return!1})(),RW=pg?Promise.resolve().then(function(){return g0}):Promise.resolve().then(function(){return I0});var CW=pg?Promise.resolve().then(function(){return E0}):Promise.resolve().then(function(){return A0});var m0=pg?Promise.resolve().then(function(){return y0}):Promise.resolve().then(function(){return R0});function fg(...i){return D(this,null,function*(){return(yield m0).default(...i)})}var p0=i=>D(void 0,null,function*(){let t=yield i.getFile();return t.handle=i,t}),f0=(...t)=>D(void 0,[...t],function*(i=[{}]){Array.isArray(i)||(i=[i]);let e=[];i.forEach((s,n)=>{e[n]={description:s.description||"Files",accept:{}},s.mimeTypes?s.mimeTypes.map(a=>{e[n].accept[a]=s.extensions||[]}):e[n].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(p0));return i[0].multiple?o:o[0]}),g0={__proto__:null,default:f0};function yh(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 yh=function(e){this.s=e,this.n=e.next},yh.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 yh(i)}var jy=(o,s,...n)=>D(void 0,[o,s,...n],function*(i,t,e=i.name,r){let a=[],c=[];var d,m=!1,l=!1;try{for(var f,g=function(T){var E,y,v,M=2;for(typeof Symbol!="undefined"&&(y=Symbol.asyncIterator,v=Symbol.iterator);M--;){if(y&&(E=T[y])!=null)return E.call(T);if(v&&(E=T[v])!=null)return new yh(E.call(T));y="@@asyncIterator",v="@@iterator"}throw new TypeError("Object is not async iterable")}(i.values());m=!(f=yield g.next()).done;m=!1){let T=f.value,E=`${e}/${T.name}`;T.kind==="file"?c.push(T.getFile().then(y=>(y.directoryHandle=i,y.handle=T,Object.defineProperty(y,"webkitRelativePath",{configurable:!0,enumerable:!0,get:()=>E})))):T.kind!=="directory"||!t||r&&r(T)||a.push(jy(T,t,E,r))}}catch(T){l=!0,d=T}finally{try{m&&g.return!=null&&(yield g.return())}finally{if(l)throw d}}return[...(yield Promise.all(a)).flat(),...yield Promise.all(c)]}),_0=(...t)=>D(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 jy(e,i.recursive,void 0,i.skipDirectory)}),E0={__proto__:null,default:_0},T0=(s,...n)=>D(void 0,[s,...n],function*(i,t=[{}],e=null,r=!1,o=null){Array.isArray(t)||(t=[t]),t[0].fileName=t[0].fileName||"Untitled";let a=[],c=null;if(i instanceof Blob&&i.type?c=i.type:i.headers&&i.headers.get("content-type")&&(c=i.headers.get("content-type")),t.forEach((l,f)=>{a[f]={description:l.description||"Files",accept:{}},l.mimeTypes?(f===0&&c&&l.mimeTypes.push(c),l.mimeTypes.map(g=>{a[f].accept[g]=l.extensions||[]})):c?a[f].accept[c]=l.extensions||[]:a[f].accept["*/*"]=l.extensions||[]}),e)try{yield e.getFile()}catch(l){if(e=null,r)throw l}let d=e||(yield window.showSaveFilePicker({suggestedName:t[0].fileName,id:t[0].id,startIn:t[0].startIn,types:a,excludeAcceptAllOption:t[0].excludeAcceptAllOption||!1}));!e&&o&&o(d);let m=yield d.createWritable();return"stream"in i?(yield i.stream().pipeTo(m),d):"body"in i?(yield i.body.pipeTo(m),d):(yield m.write(yield i),yield m.close(),d)}),y0={__proto__:null,default:T0},S0=(...t)=>D(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(d=>d.mimeTypes||[]),...i.map(d=>d.extensions||[])].join();o.multiple=i[0].multiple||!1,o.accept=s||"",o.style.display="none",document.body.append(o);let n=d=>{typeof a=="function"&&a(),e(d)},a=i[0].legacySetup&&i[0].legacySetup(n,()=>a(r),o),c=()=>{window.removeEventListener("focus",c),o.remove()};o.addEventListener("click",()=>{window.addEventListener("focus",c)}),o.addEventListener("change",()=>{window.removeEventListener("focus",c),o.remove(),n(o.multiple?Array.from(o.files):o.files[0])}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),I0={__proto__:null,default:S0},b0=(...t)=>D(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=a=>{typeof n=="function"&&n(),e(a)},n=i[0].legacySetup&&i[0].legacySetup(s,()=>n(r),o);o.addEventListener("change",()=>{let a=Array.from(o.files);i[0].recursive?i[0].recursive&&i[0].skipDirectory&&(a=a.filter(c=>c.webkitRelativePath.split("/").every(d=>!i[0].skipDirectory({name:d,kind:"directory"})))):a=a.filter(c=>c.webkitRelativePath.split("/").length===2),s(a)}),"showPicker"in HTMLInputElement.prototype?o.showPicker():o.click()})}),A0={__proto__:null,default:b0},v0=(e,...r)=>D(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(c,d){return D(this,null,function*(){let m=c.getReader(),l=new ReadableStream({start:T=>function E(){return D(this,null,function*(){return m.read().then(({done:y,value:v})=>{if(!y)return T.enqueue(v),E();T.close()})})}()}),f=new Response(l),g=yield f.blob();return m.releaseLock(),new Blob([g],{type:d})})}(i.body,i.headers.get("content-type"))),o.download=t.fileName||"Untitled",o.href=URL.createObjectURL(yield s);let n=()=>{typeof a=="function"&&a()},a=t.legacySetup&&t.legacySetup(n,()=>a(),o);return o.addEventListener("click",()=>{setTimeout(()=>URL.revokeObjectURL(o.href),3e4),n()}),o.click(),null}),R0={__proto__:null,default:v0};var gg=class{constructor(t){this.name=t;p(this,"ready");p(this,"worker");p(this,"ports");p(this,"ids",1);p(this,"transactions",new Map);p(this,"log");p(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){return D(this,null,function*(){if(this.ready)return this.ready;t||(t=this.name),console.time(`createWorker_${t}`);let e=Eh(),r=new Worker(typeof e=="string"?e:yield e,{name:t});return this.worker=r,this.ready=new Promise((o,s)=>D(this,null,function*(){r.onmessage=({data:{id:n,type:a,payload:c}})=>{var d;if(n)(d=this.transactions.get(n))==null||d(c),this.transactions.delete(n);else switch(a){case"error":console.timeEnd(`createWorker_${t}`),console.warn("worker error:",c),s(c);break;case"ready":console.timeEnd(`createWorker_${t}`),o(this);break;case"updateAFSM":if(c.value){let m=typeof c.old=="string"?c.old:`${c.old.action}ing`,l=typeof c.value=="string"?c.value:`${c.value.action}ing`;console.log(Qd(),c.group,c.name,m,"\u{1F449}",l)}break;case"log":console.log(c);break;case"glog":window.dispatchEvent(new CustomEvent(a,{detail:c}));break}},r.postMessage({wasm:yield Th(),flag:Ar},this.ports)}))})}destroy(){var t;console.log("destroy worker",this.name),delete this.ready,(t=this.worker)==null||t.terminate()}},_g=class{constructor(t,e,r){this.worker=t;p(this,"channel",new MessageChannel);p(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()}},Eg=class i extends gg{constructor(){super("main");p(this,"switchValue",new Map);p(this,"extendChannel");p(this,"sessionCount",0)}setSwitchValue(e,r){var o;this.switchValue.set(e,r),(o=this.extendChannel)==null||o.port1.postMessage([e,r])}create(){return D(this,null,function*(){return this.ready?this.ready:(this.extendChannel=new MessageChannel,this.ports=[this.extendChannel.port2],yield Er(i.prototype,this,"create").call(this),this.switchValue.forEach((e,r)=>{this.extendChannel.port1.postMessage([r,e])}),this)})}},ps=new Eg,gn,C0=-1;function qy(i){return console.log(i),gn.push(i.slice()),gn.length>1e3&&gn.shift(),i}function Xy(i){return D(this,null,function*(){switch(C0){case 0:this.edpl.willDecodeAudio=qy;break;case 2:this.edpl.didEncodeAudio=qy;break}yield ps.create(),ee.emit(ce.JOIN_SEND_CMD,{room:this});let t=new _g(ps,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:n,payload:a}=s;this.onWorkerEvent(n,a)}}),{err:e,data:r}=yield t.ready;if(typeof e=="number"){if(ee.emit(ce.JOIN_RECEIVED_CMD_RES,{room:this,code:e}),e===0)return Object.assign(this,r,{session:t});throw new Me({code:Te.JOIN_ROOM_FAILED,extraCode:Number(e),message:Et({key:_t.SIGNAL_CHANNEL_SETUP_FAILED,data:{errorCode:e,errorMsg:""}})})}else throw e})}Object.defineProperties(window,{useAINS:{set:Tg},useWt:{set:w0},enableDebug:{set(i){console.debug=i?zy:()=>{},ps.setSwitchValue("enableDebug",i)}},useV2:{set:yg},dump:{value(){if(gn||(console.warn("dump audio will be activated at next time join room"),gn=[]),!gn.length){console.warn("no audio data to dump,try it later");return}let i=[];return gn.forEach(t=>{i.push(new Uint16Array([t.length])),i.push(t)}),fg(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;ps.extendChannel.port1.postMessage(["dump",i],[s.port1]),s.port2.onmessage=({data:n})=>{console.log(n),e.push(n),e.length>t&&(s.port2.onmessage=null,ps.extendChannel.port1.postMessage(["dump",i]),s.port2.close(),o(new Blob(e)))}});return fg(r,{fileName:i,extensions:[".pcm"]})}},hardDec:{set(i){switch(i){case!0:Ar.useHardDecoder="prefer-hardware";break;case!1:Ar.useHardDecoder="prefer-software";break;default:Ar.useHardDecoder="no-preference"}}}});function Tg(i){return D(this,null,function*(){ps.setSwitchValue("useAINS",i)})}function yg(i){return D(this,null,function*(){ps.setSwitchValue("useV2",i)})}function w0(i){return D(this,null,function*(){ps.setSwitchValue("useWt",i)})}function Jy(i){let t=new MediaStreamTrackGenerator({kind:"audio"});i.setInputMediaStreamTrack(t),i.player.setVolume(0),this.postMessage({cmd:"pullAudio",payload:{tinyId:i.tinyId,writable:t.writable}},[t.writable])}function Qy(i){return D(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),Ye(Hy(r.port2),At(Qe(i,Ve.INIT)),lt(s=>{let{data:n,packetsReceived:a}=s;i.stat.packetsReceived=a,i.stat.framesReceived++,e++;let c=n[4]&31;if(e<=10){let m=Array.from(n.slice(0,10)).map(l=>l.toString(16).padStart(2,"0")).join(" ");this._log.info(`Frame ${e} - Size: ${n.length} bytes, Type: ${c}, Timestamp: ${Date.now()-t}ms First 10 bytes: ${m}`)}let d;switch(c){case 5:case 7:d="key";break;default:d="delta";break}i.isAvailable?i.decodeFrame({data:n.buffer,type:d,timestamp:(Date.now()-t)*1e3}):console.warn("track is not available")},()=>{},()=>{r.port2.postMessage(null),r.port2.close()}))})}var Sh=[];function Zy(i){var c;let t=ir();if(this.state!=="joined")throw new Error("Room is not joined");if(i.state==="publish")return;for(let d=0;d<=Sh.length;d++)if(!Sh[d]){Sh[d]=this,this.index=d;break}let e=i.profile;this._log.info("start push audio",this.index,e);let r=new MessageChannel,o=i.enableEncryptFrame?new MessageChannel:null;(c=this.session)==null||c.postMessage({cmd:"pushAudio",payload:be({index:this.index},e)},o?[r.port2,o.port2]:[r.port2]),r.port1.onmessage=d=>{d.data==null||(typeof d.data=="number"?t.next(d.data):o&&o.port1.postMessage(qe(be({},d.data),{data:new Uint8Array(i.encodeFrame({data:d.data.data.buffer,timestamp:d.data.timestamp}).data)})))};let s=new MediaStream,n,a=d=>{let m=s.getAudioTracks()[0];m&&(n.disconnect(),s.removeTrack(m)),s.addTrack(d),this._log.info("push audio track:",d.readyState,d.getSettings().deviceId),n=bt("player").createMediaStreamSource(s),n.connect(md.worklet,0,this.index)};Ye(Qe(i,"output-media-track-changed"),At(Qe(i,"ready")),lt(a,console.error,()=>{this._log.info("stop push audio",e),i.volume=0,n.disconnect(),Sh[this.index]=null,o&&o.port1.postMessage(null),r.port1.postMessage(null)})),Ye(t,en(d=>i.volume=d),Io(_l(1e3)),lt(()=>{i.volume=0})),a(i.outMediaTrack)}var aG=new Intl.DateTimeFormat("zh-CN",{dateStyle:"short",timeStyle:"medium"});var Sg=class{constructor(t,e,r,o){this.localTrack=t;this.type=e;this.config=r;this.port=o;p(this,"track");p(this,"label");p(this,"insertKeyFrame",!0);p(this,"session");p(this,"tsMap",new Map);t._log.info("create Video Encoder",r)}trans(t,e,r){return D(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});e.signal.addEventListener("abort",()=>{o.encoder.close()});let s=0;return t.pipeThrough(new TransformStream({transform:(n,a)=>{o.encoder.state==="configured"&&(this.tsMap.set(s,Date.now()),this.encode(n),s++,a.enqueue(n))}}),e)})}encode(t){var e,r;(r=(e=this.session)==null?void 0:e.encoder)==null||r.encode(t,{keyFrame:this.insertKeyFrame}),this.insertKeyFrame=!1}start(t,e,r){return D(this,null,function*(){let o=yield this.recreate(r,{recreateCount:0,frameEncoded:0,selectConfigIndex:0});this.session=o;let s=0;t.pipeTo(new WritableStream({write:n=>{o.encoder.state==="configured"&&(s<10&&this.localTrack.log.info(`capture ${this.label} track frame:`,s,Date.now(),n.timestamp,n.displayWidth,n.displayHeight),(n.displayWidth!==this.config.width||n.displayHeight!==this.config.height)&&(this.localTrack.log.info("resize video track frame:",n.displayWidth,n.displayHeight,this.config.width,this.config.height),this.configure({width:n.displayWidth,height:n.displayHeight},o)),this.tsMap.set(s,Date.now()),this.encode(n),s<10&&this.localTrack.log.info(`encode ${this.label} track frame:`,s),s++,n.close())}}),e).catch(n=>{this.localTrack.log.warn(n),o.encoder.close()})})}recreate(t,e){return D(this,null,function*(){let r=0,o=new VideoEncoder({output:s=>{let n=this.tsMap.get(r);if(this.tsMap.delete(s.timestamp),r<10&&(r===0&&e.recreateCount===0&&ee.emit(ce.SEND_FIRST_VIDEO_FRAME,{room:t}),this.localTrack.log.info(`encoded ${this.label} track frame:`,r,Date.now(),s.timestamp)),r++,e.frameEncoded=r,this.track.enabled===!1)return;let a=null;if(this.localTrack.enableEncodeFrame){a=new Uint8Array(s.byteLength),s.copyTo(a);let c=this.localTrack.encodeFrame({data:a.buffer},this.type===3);a=new Uint8Array(c.data)}a?(this.localTrack.stat.bytesSent+=a.length,this.port.postMessage({chunk:{type:s.type,timestamp:s.timestamp,data:a,duration:s.duration},timestamp:n},[a.buffer])):(this.localTrack.stat.bytesSent+=s.byteLength,this.port.postMessage({chunk:s,timestamp:n}))},error:s=>{this.localTrack.log.warn(s,this.config),e.recreateCount++,setTimeout(()=>this.recreate(t,e),100)}});return e.encoder=o,yield this.configure(null,e),e})}configure(t,e){return D(this,null,function*(){var r;t&&Object.assign(this.config,t),(r=e.encoder)==null||r.configure(this.config)})}close(){this.port.postMessage(null),this.port.close()}};function Ih(i,t){return D(this,null,function*(){let e=i.mediaType===2,r=e?"screen":"video",o={codec:"avc1.420028",latencyMode:"realtime",avc:{format:"annexb"},hardwareAcceleration:Ar.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 n=new Sg(i,t.type,o,s.port2);return s.port2.onmessage=a=>{if(a.data===260)n.insertKeyFrame=!0;else if(!e){let{bitrate:c}=a.data;$a({configureBr:[a.data.bitrate,c]}),n.session&&n.configure({bitrate:c},n.session)}},this._log.info("start push",r,t),n})}function Ky(i){return D(this,null,function*(){var m;let t=i.mediaType===2,e=t?"screen":"video",r={type:t?7:2,profile:i.profile,trackType:t?"screen":"camera",crypto:!!((m=i.manager)!=null&&m.encodePipeline[0])};!t&&i.outMediaTrack instanceof CanvasCaptureMediaStreamTrack&&(r.trackType="canvas");let{trackType:o}=r,{width:s,height:n}=i.outMediaTrack.getSettings();r.profile.width=s,r.profile.height=n;let a=yield Ih.call(this,i,r);this._log.info("VideoEncoder created",r);let c,d=l=>D(this,null,function*(){if(c==null||c.abort("track changed"),!l)return;c=new AbortController;let{width:f,height:g,displaySurface:T}=l.getSettings();f&&(a.config.width=f),g&&(a.config.height=g);let E=$r.match(/Chrome\/(\d+)/);(E==null?void 0:E[1])==="114"&&T==="browser"&&delete a.config.hardwareAcceleration,this._log.info("push",e,"track:",l.readyState,l.getSettings());let y;if(typeof MediaStreamTrackProcessor!="undefined"&&!(l instanceof CanvasCaptureMediaStreamTrack))y=new MediaStreamTrackProcessor({track:l}).readable;else{let M;y=new ReadableStream({start(w){i.on("render",H=>{if(!(i.player.mode===0&&!document.hidden))try{w.enqueue(new VideoFrame(H,{timestamp:performance.now()*1e3}))}catch(B){console.warn(B)}})},pull(w){return D(this,null,function*(){if(i.player.mode===0&&Ri()&&i.player.element)return new Promise(H=>{i.player.element.requestVideoFrameCallback((B,P)=>{try{let $=new VideoFrame(i.player.element);w.enqueue($)}catch($){console.warn($)}H()})})})}})}let v="small"in i&&i.small;return v?(this.smallEncoder||(this.smallEncoder=yield Ih.call(this,i,{profile:v,type:3,trackType:o})),this.smallEncoder.track=l,this.smallEncoder.label="small",y=yield this.smallEncoder.trans(y,c,this)):this.smallEncoder&&(this.smallEncoder.close(),delete this.smallEncoder),a.track=l,a.label=e,a.start(y,c,this)});return Ye(Qe(i,"output-media-track-changed"),At(Qe(i,"ready")),lt(d,console.error,()=>{var l;this._log.info("stop push",e,r),c.abort("unpublish"),a.close(),(l=this.smallEncoder)==null||l.close()})),d(i.outMediaTrack)})}var fs=class fs extends Ve{constructor(e){var r,o;super((o=(r=e.roomid)==null?void 0:r.toString())!=null?o:e.name,"volumeEvaluation");this.room=e;p(this,"enableInBackground",!1);p(this,"interval",400);e.on("joined",()=>{this.emit(fs.INTERVALCHANGED,this.interval)}),Ye(Qe(this,fs.INTERVALCHANGED),Wi(s=>this.room.state==="joined"?this.room.fromWorker("getAudioEnergy",s):Ye(HE(s),ts(()=>[]))),lt(s=>{s.forEach(n=>{this.room.remotePublishedUserMap.has(n.userId)&&(this.room.remotePublishedUserMap.get(n.userId).remoteAudioTrack.volume=n.volume)}),(!document.hidden||this.enableInBackground)&&this.state==Ve.ON&&this.room.emit("audio-volume",s)}))}start(e,r){this.interval=e,this.enableInBackground=r,this.emit(fs.INTERVALCHANGED,this.interval)}stop(){}};p(fs,"INTERVALCHANGED","intervalChanged"),Ie([Mt([Ve.INIT,Ve.OFF],Ve.ON)],fs.prototype,"start",1),Ie([Mt([],Ve.OFF)],fs.prototype,"stop",1);var bh=fs;var gs=class gs extends _h{constructor(e){super(e);p(this,"index",0);p(this,"session");p(this,"tinyid");p(this,"roomid");p(this,"openid");p(this,"socketid");p(this,"relayip");p(this,"clientip");p(this,"remotePublishedUserMap",new Map);p(this,"bussinessInfo");p(this,"token");p(this,"audioVolumeEvalution",new bh(this));p(this,"enableAIVoice",Tg);p(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:Im(),uint32_device_type:0,str_os_verion:bm(),uint32_link_type:1,str_client_version:qt,uint32_net_type:Rs[Vi.getNetworkType()],ua:navigator.userAgent,version:""}});p(this,"joinAbortController",new AbortController);p(this,"smallAbortCtrl");p(this,"smallEncoder");e.tinyId&&(this.tinyId=e.tinyId,yg(!0)),this._log||(this._log=e.logger),this.bussinessInfo=e.bussinessInfo,e.encodedDataProcessingListener&&this.setEncodedDataProcessingListener(e.encodedDataProcessingListener)}replaceTrack(e){return D(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 n=new MessageChannel;this.postMessage({cmd:e,payload:r},[n.port1]),n.port2.onmessageerror=s,n.port2.onmessage=a=>{n.port2.close(),o(a.data)}})}fromWorker(e,r){if(this.state!="joined")throw"join room first";return o=>{var n;let s=new MessageChannel;s.port2.onmessage=a=>{a.data?o.next(a.data):o.complete()},s.port2.onmessageerror=a=>o.error(a),o.defer(()=>{s.port2.postMessage(null),s.port2.close()}),(n=this.session)==null||n.postMessage({cmd:e,payload:r},[s.port1])}}switchRole(e){return D(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 D(this,null,function*(){var c,d,m;let s=Vi.getEnv(),n=Pu(),a={isH264EncodeSupported:this.checkSystemResult.detail.isH264EncodeSupported,isVp8EncodeSupported:this.checkSystemResult.detail.isVp8EncodeSupported,frameWorkType:o,params:e,proxy_wt:(c=this.proxy_wt)==null?void 0:c.replace("https://",""),proxy_ws:(d=this.proxy_ws)==null?void 0:d.replace("wss://",""),proxy_cloud:(m=this.scheduleResult.iceServers)!=null&&m.length?this.scheduleResult.iceServers[0].urls:[],proxy_unified:this.proxy_unified,domains:this.scheduleResult.domains,env:s,osName:Jn(),browserInfo:Pu(),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:qt,browserVersion:n.browserName+n.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 Xy.call(this,a),console.log(this),md.playAudio(l=>this.postMessage({cmd:"setAudioWorkletPort"},[l])),this.checkDestroy()})}leave(){return D(this,null,function*(){this.remotePublishedUserMap.forEach(e=>{e.remoteAudioTrack.close(),e.remoteAuxiliaryTrack.close(),e.remoteVideoTrack.close()}),this.postMessage(null),this.remotePublishedUserMap.clear(),this.localTracks.forEach((e,r)=>r.unpublish()),this.localTracks.clear()})}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 D(this,null,function*(){let e=At(Qe(this,"left"));Ye(r=>D(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,lt(({data:r,port:o})=>{let s=this.audioManager.decodePipeline[0]({frame:{data:r.data.buffer}});o.postMessage(qe(be({},r),{data:new Uint8Array(s.data)}),[s.data])}))})}onWorkerEvent(e,r){switch(e!=="network-quality"&&console.info(this.userId,"onWorkerEvent",e,JSON.stringify(r)),e){case ce.RECEIVED_PUBLISHED_USER_LIST:ee.emit(e,be({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 uh(this,r);this.remotePublishedUserMap.set(r.userId,o),this.emit("remote-published",o);return;case"5":{let l=r,f=this.remotePublishedUserMap.get(l);f&&(f.remoteVideoTrack.close(),f.remoteAuxiliaryTrack.close(),f.remoteAudioTrack.close(),this.remotePublishedUserMap.delete(l),this.emit("remote-unpublished",f))}return;case"banned":switch(r){case 8:this.emit("banned",{reason:"kick",message:""});return;case 2:case 6:case 4:this.emit("banned",{reason:"banned",message:""});return;case 7:case 5:this.emit("banned",{reason:"room_disband",message:""});return}break;case"6":{let{prevMuteState:l,muteState:f,flag:g}=r,T=this.remotePublishedUserMap.get(f.userId);if(!T){this.emit("remote-publish-state-changed",r);return}T.flag=g}ee.emit(ce.REMOTE_PUBLISH_STATE_CHANGED,be({room:this},r)),this.emit("remote-publish-state-changed",r);return;case"7":this.localPublishFlag!==r.flag&&(this.localPublishFlag=r.flag,this.emit("local-publish-flag-changed",r.flag));return;case"network-quality":this.quality=be({},r);let{uplinkLoss:s,uplinkRTT:n,uplinkInfo:a,downlinkInfo:c,msg_down_stream_info:d}=r,m={str_sdk_version:qt,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:Rs[kn()]},msg_event_msg:zE(this.userId),str_acc_ip:this.relayip,str_client_ip:this.clientip,msg_up_stream_info:a,msg_down_stream_info:d};ee.emit(ce.HEARTBEAT_REPORT,{room:this,report:m}),this.emit("heartbeat-report",m),ee.emit(ce.NETWORK_QUALITY,{room:this,uplink:{rtt:n,loss:s},downlinks:c}),delete r.downlinkInfo;break;case"signal-connection-state-changed":ee.emit(ce.SIGNAL_CONNECTION_STATE_CHANGED,be({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 D(this,null,function*(){switch(yield this.sendMessage("publish",e.mediaType).then(r=>r.err!==0?Promise.reject(r.err):r),yr(e,e).add("mute",()=>{this.postMessage("mute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,remove:!0})}).add("unmute",()=>{this.postMessage("unmute",{mediaType:e.mediaType,userId:this.userId,srctinyid:this.tinyid,add:!0})}),e.mediaType){case 1:yield md.init(),Zy.call(this,e);break;default:yield Ky.call(this,e)}e.muted&&this.postMessage("mute",{mediaType:e.mediaType,srctinyid:this.tinyid,userId:this.openid,remove:!0})})}unpublish(e){return D(this,null,function*(){tr(e)})}subscribe(...e){return D(this,null,function*(){let r=e.reduce((l,f)=>f.mediaType|l,0),{userId:o,tinyId:s,streamType:n}=e[0],a=this.remotePublishedUserMap.get(o),c=be({},a.subscribeState),d=Object.assign(new sc,c);d.mediaType|=r,ee.emit(ce.SUBSCRIBE_START,{room:this,streamType:n,remotePublishedUser:a,subscribeState:d});let m=yield this.sendMessage("subscribe",{mediaType:d.mediaType,userId:o,srctinyid:s,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8,2].filter(l=>d.mediaType&l).map(l=>({mediaType:l,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}});console.dir("subscribe",m),yield Promise.all(e.filter(l=>!l.isSubscribed).map(l=>{switch(l.mediaType){case 1:return Jy.call(this,l);default:return Qy.call(this,l)}})),ee.emit(ce.SUBSCRIBE_SUCCESS,{room:this,streamType:n,remotePublishedUser:a})})}unsubscribe(...e){return D(this,null,function*(){let r=0;for(let o of e)r|=o.mediaType;if(e.length){let{userId:o,streamType:s,tinyId:n}=e[0];yield this.sendMessage("unSubscribe",{mediaType:r,srctinyid:n,userId:o});for(let a of e)a.unsubscribe();ee.emit(ce.UNSUBSCRIBE_SUCCESS,{room:this,streamType:s,remotePublishedUser:this.remotePublishedUserMap.get(o)})}})}enableSmall(e){return D(this,null,function*(){var r;if(e){if(this.videoManager.smallTrack){let o=this.videoManager.cameraTrack;this.smallEncoder=yield Ih.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);if(!o)return;let s=e?8:4;if(o.remoteVideoTrack.mediaType===s)return;let n={srctinyid:o.tinyId,mediaType:s,userId:r.userId,mediaDescription:{audioParam:{mediaType:1,payloadFmtps:[{payloadType:111,fmtp:"minptime=10;useinbandfec=1"}]},videoParam:[4,8].filter(a=>s&a).map(a=>({mediaType:a,payloadFmtps:[{payloadType:100,fmtp:"packetization-mode=1;profile-level-id=42e01f"}]}))}};o.remoteVideoTrack.mediaType=n.mediaType,this.postMessage("changetype",n)}destroy(){this.isDestroyed||(super.destroy(),this.isDestroyed=!0,this.joinAbortController.abort("destroy"))}};Ie([Ko(gs.prototype.afterJoin),Mt(["left",Ve.INIT],"joined"),Oy()],gs.prototype,"join",1),Ie([Mt("joined","left",{ignoreError:!0}),My()],gs.prototype,"leave",1),Ie([tl(e=>e.mediaType),xy()],gs.prototype,"publish",1),Ie([tl(e=>e.mediaType),ky()],gs.prototype,"unpublish",1),Ie([tl((...e)=>e[0].userId),Ly()],gs.prototype,"subscribe",1);var Ah=gs;va.frameWorkType=37;va.create=function(i){let t=va._create.call(this,Ah,i);return t._use(Mf,i==null?void 0:i.assetsPath),i!=null&&i.assetsPath&&(Ar.assetsPath=i==null?void 0:i.assetsPath),console.log("trtc wasm sdk:",qt,"created",Ar),t};Object.assign(va.prototype,{_setCurrentSpeaker(i){let t=bt("player");return t!=null&&t.setSinkId?t.setSinkId(i):Promise.reject("not support")},_enableVideoDecodeFallback(i,t){return D(this,null,function*(){return this.startPlugin(Mf.Name,{type:"webCodecs",renderer:"videoFrame",track:i,config:{codec:"avc1.640028",hardwareAcceleration:"prefer-software",optimizeForLatency:!0},fallback:"wasm"}),new Promise((e,r)=>{Ye(Qe(i,"decode-downgrade-state-changed"),Ur(o=>o.state==="STARTED"),Ni(1),nf(1e4),At(Qe(i,Ve.INIT)),lt(e,r))})})}});ep(37);var xz=va;export{xz as default};
|
|
167
|
+
/*! Bundled license information:
|
|
168
|
+
|
|
169
|
+
jszip/dist/jszip.min.js:
|
|
170
|
+
(*!
|
|
171
|
+
|
|
172
|
+
JSZip v3.10.1 - A JavaScript class for generating and reading zip files
|
|
173
|
+
<http://stuartk.com/jszip>
|
|
174
|
+
|
|
175
|
+
(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>
|
|
176
|
+
Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.
|
|
177
|
+
|
|
178
|
+
JSZip uses the library pako released under the MIT license :
|
|
179
|
+
https://github.com/nodeca/pako/blob/main/LICENSE
|
|
180
|
+
*)
|
|
181
|
+
*/
|