quickvo-sdk-js 0.2.7 → 0.2.8

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.
@@ -1,3 +1,3 @@
1
- (function(ct,ot){typeof exports=="object"&&typeof module<"u"?ot(exports):typeof define=="function"&&define.amd?define(["exports"],ot):(ct=typeof globalThis<"u"?globalThis:ct||self,ot(ct["snqu-calls-sdk-js"]={}))})(this,function(exports){"use strict";var Qt=Object.defineProperty;var Vt=ct=>{throw TypeError(ct)};var Xt=(ct,ot,ht)=>ot in ct?Qt(ct,ot,{enumerable:!0,configurable:!0,writable:!0,value:ht}):ct[ot]=ht;var K=(ct,ot,ht)=>Xt(ct,typeof ot!="symbol"?ot+"":ot,ht),Yt=(ct,ot,ht)=>ot.has(ct)||Vt("Cannot "+ht);var G=(ct,ot,ht)=>(Yt(ct,ot,"read from private field"),ht?ht.call(ct):ot.get(ct)),lt=(ct,ot,ht)=>ot.has(ct)?Vt("Cannot add the same private member more than once"):ot instanceof WeakSet?ot.add(ct):ot.set(ct,ht),kt=(ct,ot,ht,St)=>(Yt(ct,ot,"write to private field"),St?St.call(ct,ht):ot.set(ct,ht),ht);var ct,ot,ht,St,wt,_t,yt,Nt,Et,xt,At,qt,Dt,Ct,vt,Ot,bt,Ut,Mt,It,Pt,Bt,Lt,Zt,Ft,gt,Rt,jt,$t,Ht,zt,Jt;const v$1=(_,D=[])=>{const $={..._},M=Object.keys($);for(const R of M)D.findIndex(N=>String(N)===R)===-1&&delete $[R];return $},it=(_,D=[],$=!0)=>{const M=new Map;for(const N of _){const e=[];for(const A of D)e.push(N[A]);const o=`map-${e.join("-")}`;if(!M.has(o)){M.set(o,N);continue}$&&M.set(o,N)}const R=M.entries();return Array.from(R,([N,e])=>e)},mt=(_,D=[])=>{const $=[];for(const M of _){const R=v$1(M,D);$.push(R)}return $},ut=(_,D="value",$="label")=>{const M=[],R=Object.entries(_);for(const[N,e]of R){const o={[$]:e,[D]:N};M.push(o)}return M},O=(_=0,D=1)=>{const $=Math.max(0,_),M=Math.max(1,D),R=Math.random()*(M-$+1)+$;return parseInt(`${R}`,10)},pt=(_=16,D=16)=>{const $="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),M=Math.min($.length,D),R=Date.now().toString(M),N=R.split(""),e=Math.max(4,_-R.length);for(let o=0;o<e;o++){const A=O(0,M-1),U=$[A];N.push(U)}return N.join("").toUpperCase()},j=(_,D)=>{try{let $=Number(_);if(isNaN($)){const M=new Date(`${_}`);if(`${M}`=="Invalid Date")return 0;$=M.getTime()}if(D!==void 0){const M=new Date().getTimezoneOffset();$+=(M+D)*60*1e3}return $}catch($){return console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->timeStamp:err",{_val:_,_offset:D,error:$}),0}},Q={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6","00":"日","01":"一","02":"二","03":"三","04":"四","05":"五","06":"六"},E=(_,D="YYYY-MM-DD hh:mm:ss",$={})=>{const M={empty_str:"-",...$},{empty_str:R,offset:N}=M,e=j(_,N);if(Number(_)!==0&&e===0)return R;const o=new Date(e),A=[{k:"Y+",v:`${o.getFullYear()}`},{k:"M+",v:`${o.getMonth()+1}`},{k:"D+",v:`${o.getDate()}`},{k:"W+",v:`${o.getDay()}`},{k:"h+",v:`${o.getHours()}`},{k:"m+",v:`${o.getMinutes()}`},{k:"s+",v:`${o.getSeconds()}`}];let U;for(let{k:L,v:F}of A)if(U=new RegExp(`(${L})`).exec(D),U){const Z=U[1];let H=F.padStart(Z.length,"0");Z.includes("W")&&(H=Q[H.slice(0,2)]),D=D.replace(Z,H)}return D},enum_mediaType={microphoneCamera_audio:"麦克风-默认轨道",microphoneCamera_video:"摄像头-默认轨道",screenSharing_video:"屏幕共享-视频轨道",screenSharing_audio:"屏幕共享-音频轨道"};ut(enum_mediaType);const mediaType_keys=Object.keys(enum_mediaType);var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},lib={},parser={},grammar={exports:{}},hasRequiredGrammar;function requireGrammar(){if(hasRequiredGrammar)return grammar.exports;hasRequiredGrammar=1;var _=grammar.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(D){return D.encoding?"rtpmap:%d %s/%s/%s":D.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(D){return D.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(D){return D.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(D){return"extmap:%d"+(D.direction?"/%s":"%v")+(D["encrypt-uri"]?" %s":"%v")+" %s"+(D.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(D){return D.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(D){var $="candidate:%s %d %s %d %s %d typ %s";return $+=D.raddr!=null?" raddr %s rport %d":"%v%v",$+=D.tcptype!=null?" tcptype %s":"%v",D.generation!=null&&($+=" generation %d"),$+=D["network-id"]!=null?" network-id %d":"%v",$+=D["network-cost"]!=null?" network-cost %d":"%v",$}},{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(D){var $="ssrc:%d";return D.attribute!=null&&($+=" %s",D.value!=null&&($+=":%s")),$}},{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(D){return D.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(D){return D.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(D){return"imageattr:%s %s %s"+(D.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(D){return"simulcast:%s %s"+(D.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(D){return"ts-refclk:%s"+(D.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(D){var $="mediaclk:";return $+=D.id!=null?"id=%s %s":"%v%s",$+=D.mediaClockValue!=null?"=%s":"",$+=D.rateNumerator!=null?" rate=%s":"",$+=D.rateDenominator!=null?"/%s":"",$}},{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"]}]};return Object.keys(_).forEach(function(D){var $=_[D];$.forEach(function(M){M.reg||(M.reg=/(.*)/),M.format||(M.format="%s")})}),grammar.exports}var hasRequiredParser;function requireParser(){return hasRequiredParser||(hasRequiredParser=1,function(_){var D=function(o){return String(Number(o))===o?Number(o):o},$=function(o,A,U,L){if(L&&!U)A[L]=D(o[1]);else for(var F=0;F<U.length;F+=1)o[F+1]!=null&&(A[U[F]]=D(o[F+1]))},M=function(o,A,U){var L=o.name&&o.names;o.push&&!A[o.push]?A[o.push]=[]:L&&!A[o.name]&&(A[o.name]={});var F=o.push?{}:L?A[o.name]:A;$(U.match(o.reg),F,o.names,o.name),o.push&&A[o.push].push(F)},R=requireGrammar(),N=RegExp.prototype.test.bind(/^([a-z])=(.*)/);_.parse=function(o){var A={},U=[],L=A;return o.split(/(\r\n|\r|\n)/).filter(N).forEach(function(F){var Z=F[0],H=F.slice(2);Z==="m"&&(U.push({rtp:[],fmtp:[]}),L=U[U.length-1]);for(var z=0;z<(R[Z]||[]).length;z+=1){var V=R[Z][z];if(V.reg.test(H))return M(V,L,H)}}),A.media=U,A};var e=function(o,A){var U=A.split(/=(.+)/,2);return U.length===2?o[U[0]]=D(U[1]):U.length===1&&A.length>1&&(o[U[0]]=void 0),o};_.parseParams=function(o){return o.split(/;\s?/).reduce(e,{})},_.parseFmtpConfig=_.parseParams,_.parsePayloads=function(o){return o.toString().split(" ").map(Number)},_.parseRemoteCandidates=function(o){for(var A=[],U=o.split(" ").map(D),L=0;L<U.length;L+=3)A.push({component:U[L],ip:U[L+1],port:U[L+2]});return A},_.parseImageAttributes=function(o){return o.split(" ").map(function(A){return A.substring(1,A.length-1).split(",").reduce(e,{})})},_.parseSimulcastStreamList=function(o){return o.split(";").map(function(A){return A.split(",").map(function(U){var L,F=!1;return U[0]!=="~"?L=D(U):(L=D(U.substring(1,U.length)),F=!0),{scid:L,paused:F}})})}}(parser)),parser}var writer$1,hasRequiredWriter$1;function requireWriter$1(){if(hasRequiredWriter$1)return writer$1;hasRequiredWriter$1=1;var _=requireGrammar(),D=/%[sdv%]/g,$=function(e){var o=1,A=arguments,U=A.length;return e.replace(D,function(L){if(o>=U)return L;var F=A[o];switch(o+=1,L){case"%%":return"%";case"%s":return String(F);case"%d":return Number(F);case"%v":return""}})},M=function(e,o,A){var U=o.format instanceof Function?o.format(o.push?A:A[o.name]):o.format,L=[e+"="+U];if(o.names)for(var F=0;F<o.names.length;F+=1){var Z=o.names[F];o.name?L.push(A[o.name][Z]):L.push(A[o.names[F]])}else L.push(A[o.name]);return $.apply(null,L)},R=["v","o","s","i","u","e","p","c","b","t","r","z","a"],N=["i","c","b","a"];return writer$1=function(e,o){o=o||{},e.version==null&&(e.version=0),e.name==null&&(e.name=" "),e.media.forEach(function(F){F.payloads==null&&(F.payloads="")});var A=o.outerOrder||R,U=o.innerOrder||N,L=[];return A.forEach(function(F){_[F].forEach(function(Z){Z.name in e&&e[Z.name]!=null?L.push(M(F,Z,e)):Z.push in e&&e[Z.push]!=null&&e[Z.push].forEach(function(H){L.push(M(F,Z,H))})})}),e.media.forEach(function(F){L.push(M("m",_.m[0],F)),U.forEach(function(Z){_[Z].forEach(function(H){H.name in F&&F[H.name]!=null?L.push(M(Z,H,F)):H.push in F&&F[H.push]!=null&&F[H.push].forEach(function(z){L.push(M(Z,H,z))})})})}),L.join(`\r
1
+ (function(at,st){typeof exports=="object"&&typeof module<"u"?st(exports):typeof define=="function"&&define.amd?define(["exports"],st):(at=typeof globalThis<"u"?globalThis:at||self,st(at["snqu-calls-sdk-js"]={}))})(this,function(exports){"use strict";var Yt=Object.defineProperty;var Gt=at=>{throw TypeError(at)};var Qt=(at,st,ht)=>st in at?Yt(at,st,{enumerable:!0,configurable:!0,writable:!0,value:ht}):at[st]=ht;var K=(at,st,ht)=>Qt(at,typeof st!="symbol"?st+"":st,ht),Vt=(at,st,ht)=>st.has(at)||Gt("Cannot "+ht);var V=(at,st,ht)=>(Vt(at,st,"read from private field"),ht?ht.call(at):st.get(at)),ft=(at,st,ht)=>st.has(at)?Gt("Cannot add the same private member more than once"):st instanceof WeakSet?st.add(at):st.set(at,ht),bt=(at,st,ht,Ot)=>(Vt(at,st,"write to private field"),Ot?Ot.call(at,ht):st.set(at,ht),ht);var at,st,ht,Ot,vt,yt,kt,Nt,Et,xt,At,qt,Dt,Ct,St,gt,wt,Ut,Mt,It,Pt,Bt,Lt,Zt,$t,Rt,Ft,Tt,jt,Ht,zt;const v$1=(_,D=[])=>{const $={..._},M=Object.keys($);for(const R of M)D.findIndex(N=>String(N)===R)===-1&&delete $[R];return $},it=(_,D=[],$=!0)=>{const M=new Map;for(const N of _){const e=[];for(const A of D)e.push(N[A]);const o=`map-${e.join("-")}`;if(!M.has(o)){M.set(o,N);continue}$&&M.set(o,N)}const R=M.entries();return Array.from(R,([N,e])=>e)},mt=(_,D=[])=>{const $=[];for(const M of _){const R=v$1(M,D);$.push(R)}return $},ut=(_,D="value",$="label")=>{const M=[],R=Object.entries(_);for(const[N,e]of R){const o={[$]:e,[D]:N};M.push(o)}return M},O=(_=0,D=1)=>{const $=Math.max(0,_),M=Math.max(1,D),R=Math.random()*(M-$+1)+$;return parseInt(`${R}`,10)},pt=(_=16,D=16)=>{const $="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".split(""),M=Math.min($.length,D),R=Date.now().toString(M),N=R.split(""),e=Math.max(4,_-R.length);for(let o=0;o<e;o++){const A=O(0,M-1),U=$[A];N.push(U)}return N.join("").toUpperCase()},j=(_,D)=>{try{let $=Number(_);if(isNaN($)){const M=new Date(`${_}`);if(`${M}`=="Invalid Date")return 0;$=M.getTime()}if(D!==void 0){const M=new Date().getTimezoneOffset();$+=(M+D)*60*1e3}return $}catch($){return console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->timeStamp:err",{_val:_,_offset:D,error:$}),0}},Q={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6","00":"日","01":"一","02":"二","03":"三","04":"四","05":"五","06":"六"},E=(_,D="YYYY-MM-DD hh:mm:ss",$={})=>{const M={empty_str:"-",...$},{empty_str:R,offset:N}=M,e=j(_,N);if(Number(_)!==0&&e===0)return R;const o=new Date(e),A=[{k:"Y+",v:`${o.getFullYear()}`},{k:"M+",v:`${o.getMonth()+1}`},{k:"D+",v:`${o.getDate()}`},{k:"W+",v:`${o.getDay()}`},{k:"h+",v:`${o.getHours()}`},{k:"m+",v:`${o.getMinutes()}`},{k:"s+",v:`${o.getSeconds()}`}];let U;for(let{k:L,v:F}of A)if(U=new RegExp(`(${L})`).exec(D),U){const Z=U[1];let H=F.padStart(Z.length,"0");Z.includes("W")&&(H=Q[H.slice(0,2)]),D=D.replace(Z,H)}return D},enum_mediaType={microphoneCamera_audio:"麦克风-默认轨道",microphoneCamera_video:"摄像头-默认轨道",screenSharing_video:"屏幕共享-视频轨道",screenSharing_audio:"屏幕共享-音频轨道"};ut(enum_mediaType);const mediaType_keys=Object.keys(enum_mediaType);var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},lib={},parser={},grammar={exports:{}},hasRequiredGrammar;function requireGrammar(){if(hasRequiredGrammar)return grammar.exports;hasRequiredGrammar=1;var _=grammar.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(D){return D.encoding?"rtpmap:%d %s/%s/%s":D.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(D){return D.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(D){return D.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(D){return"extmap:%d"+(D.direction?"/%s":"%v")+(D["encrypt-uri"]?" %s":"%v")+" %s"+(D.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(D){return D.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(D){var $="candidate:%s %d %s %d %s %d typ %s";return $+=D.raddr!=null?" raddr %s rport %d":"%v%v",$+=D.tcptype!=null?" tcptype %s":"%v",D.generation!=null&&($+=" generation %d"),$+=D["network-id"]!=null?" network-id %d":"%v",$+=D["network-cost"]!=null?" network-cost %d":"%v",$}},{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(D){var $="ssrc:%d";return D.attribute!=null&&($+=" %s",D.value!=null&&($+=":%s")),$}},{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(D){return D.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(D){return D.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(D){return"imageattr:%s %s %s"+(D.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(D){return"simulcast:%s %s"+(D.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(D){return"ts-refclk:%s"+(D.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(D){var $="mediaclk:";return $+=D.id!=null?"id=%s %s":"%v%s",$+=D.mediaClockValue!=null?"=%s":"",$+=D.rateNumerator!=null?" rate=%s":"",$+=D.rateDenominator!=null?"/%s":"",$}},{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"]}]};return Object.keys(_).forEach(function(D){var $=_[D];$.forEach(function(M){M.reg||(M.reg=/(.*)/),M.format||(M.format="%s")})}),grammar.exports}var hasRequiredParser;function requireParser(){return hasRequiredParser||(hasRequiredParser=1,function(_){var D=function(o){return String(Number(o))===o?Number(o):o},$=function(o,A,U,L){if(L&&!U)A[L]=D(o[1]);else for(var F=0;F<U.length;F+=1)o[F+1]!=null&&(A[U[F]]=D(o[F+1]))},M=function(o,A,U){var L=o.name&&o.names;o.push&&!A[o.push]?A[o.push]=[]:L&&!A[o.name]&&(A[o.name]={});var F=o.push?{}:L?A[o.name]:A;$(U.match(o.reg),F,o.names,o.name),o.push&&A[o.push].push(F)},R=requireGrammar(),N=RegExp.prototype.test.bind(/^([a-z])=(.*)/);_.parse=function(o){var A={},U=[],L=A;return o.split(/(\r\n|\r|\n)/).filter(N).forEach(function(F){var Z=F[0],H=F.slice(2);Z==="m"&&(U.push({rtp:[],fmtp:[]}),L=U[U.length-1]);for(var z=0;z<(R[Z]||[]).length;z+=1){var G=R[Z][z];if(G.reg.test(H))return M(G,L,H)}}),A.media=U,A};var e=function(o,A){var U=A.split(/=(.+)/,2);return U.length===2?o[U[0]]=D(U[1]):U.length===1&&A.length>1&&(o[U[0]]=void 0),o};_.parseParams=function(o){return o.split(/;\s?/).reduce(e,{})},_.parseFmtpConfig=_.parseParams,_.parsePayloads=function(o){return o.toString().split(" ").map(Number)},_.parseRemoteCandidates=function(o){for(var A=[],U=o.split(" ").map(D),L=0;L<U.length;L+=3)A.push({component:U[L],ip:U[L+1],port:U[L+2]});return A},_.parseImageAttributes=function(o){return o.split(" ").map(function(A){return A.substring(1,A.length-1).split(",").reduce(e,{})})},_.parseSimulcastStreamList=function(o){return o.split(";").map(function(A){return A.split(",").map(function(U){var L,F=!1;return U[0]!=="~"?L=D(U):(L=D(U.substring(1,U.length)),F=!0),{scid:L,paused:F}})})}}(parser)),parser}var writer$1,hasRequiredWriter$1;function requireWriter$1(){if(hasRequiredWriter$1)return writer$1;hasRequiredWriter$1=1;var _=requireGrammar(),D=/%[sdv%]/g,$=function(e){var o=1,A=arguments,U=A.length;return e.replace(D,function(L){if(o>=U)return L;var F=A[o];switch(o+=1,L){case"%%":return"%";case"%s":return String(F);case"%d":return Number(F);case"%v":return""}})},M=function(e,o,A){var U=o.format instanceof Function?o.format(o.push?A:A[o.name]):o.format,L=[e+"="+U];if(o.names)for(var F=0;F<o.names.length;F+=1){var Z=o.names[F];o.name?L.push(A[o.name][Z]):L.push(A[o.names[F]])}else L.push(A[o.name]);return $.apply(null,L)},R=["v","o","s","i","u","e","p","c","b","t","r","z","a"],N=["i","c","b","a"];return writer$1=function(e,o){o=o||{},e.version==null&&(e.version=0),e.name==null&&(e.name=" "),e.media.forEach(function(F){F.payloads==null&&(F.payloads="")});var A=o.outerOrder||R,U=o.innerOrder||N,L=[];return A.forEach(function(F){_[F].forEach(function(Z){Z.name in e&&e[Z.name]!=null?L.push(M(F,Z,e)):Z.push in e&&e[Z.push]!=null&&e[Z.push].forEach(function(H){L.push(M(F,Z,H))})})}),e.media.forEach(function(F){L.push(M("m",_.m[0],F)),U.forEach(function(Z){_[Z].forEach(function(H){H.name in F&&F[H.name]!=null?L.push(M(Z,H,F)):H.push in F&&F[H.push]!=null&&F[H.push].forEach(function(z){L.push(M(Z,H,z))})})})}),L.join(`\r
2
2
  `)+`\r
3
- `},writer$1}var hasRequiredLib;function requireLib(){if(hasRequiredLib)return lib;hasRequiredLib=1;var _=requireParser(),D=requireWriter$1(),$=requireGrammar();return lib.grammar=$,lib.write=D,lib.parse=_.parse,lib.parseParams=_.parseParams,lib.parseFmtpConfig=_.parseFmtpConfig,lib.parsePayloads=_.parsePayloads,lib.parseRemoteCandidates=_.parseRemoteCandidates,lib.parseImageAttributes=_.parseImageAttributes,lib.parseSimulcastStreamList=_.parseSimulcastStreamList,lib}var libExports=requireLib();class AudioMediaContext{constructor(D){K(this,"options",{autoGainControl:!1,noiseSuppression:!1,echoCancellation:!1});K(this,"kind","audio");K(this,"stream",new MediaStream);K(this,"audio",new Audio);K(this,"audioContext",new(window.AudioContext||window.webkitAudioContext));K(this,"mediaStreamAudioSourceNode");K(this,"autoGainNode");K(this,"biquadFilterNode");K(this,"delayNode");K(this,"gainNode");K(this,"analyserNode");K(this,"analyserArrayData");K(this,"stop",()=>{const D=this.stream.getTracks();for(const $ of D)$.enabled=!1,$.stop(),this.stream.removeTrack($)});K(this,"replaceStream",D=>{this.stop();const[$]=D.getAudioTracks();this.stream.addTrack($)});K(this,"getStream",()=>this.mediaStreamAudioSourceNode.mediaStream);K(this,"setMute",(D=!0)=>{D?this.analyserNode.disconnect(this.audioContext.destination):this.analyserNode.connect(this.audioContext.destination)});K(this,"setVolumeGain",D=>{this.gainNode.gain.setValueAtTime(D,this.audioContext.currentTime)});K(this,"getVolume",()=>{const{analyserNode:D,analyserArrayData:$}=this;D.getByteFrequencyData($);let M=0;for(let N=0;N<$.length;N++)M+=$[N];return Math.ceil(M/$.length)});K(this,"setFilter",(D={})=>{this.options={...this.options,...D};const{autoGainControl:$,noiseSuppression:M,echoCancellation:R}=this.options,{mediaStreamAudioSourceNode:N,autoGainNode:e,biquadFilterNode:o,delayNode:A,gainNode:U}=this,L=N;return $&&L.connect(e),M&&L.connect(o),R&&L.connect(A),L.connect(U),D});this.stream.addTrack(D),this.audio.srcObject=this.stream,this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.mediaStreamAudioSourceNode=this.audioContext.createMediaStreamSource(this.stream),this.autoGainNode=this.audioContext.createGain(),this.autoGainNode.gain.setValueAtTime(.8,this.audioContext.currentTime),this.biquadFilterNode=this.audioContext.createBiquadFilter(),this.biquadFilterNode.type="lowpass",this.biquadFilterNode.frequency.value=1e3,this.delayNode=this.audioContext.createDelay(),this.delayNode.delayTime.value=.5,this.gainNode=this.audioContext.createGain(),this.gainNode.gain.setValueAtTime(.5,this.audioContext.currentTime),this.analyserNode=this.audioContext.createAnalyser(),this.analyserNode.fftSize=1024,this.analyserArrayData=new Uint8Array(this.analyserNode.frequencyBinCount);const{gainNode:$,analyserNode:M}=this;$.connect(M),this.audioContext.state==="suspended"?document.addEventListener("touchend",()=>{this.audioContext.resume().then(()=>this.setFilter())},{once:!0}):this.setFilter()}}class VideoMediaContext{constructor(D){K(this,"kind","video");K(this,"stream",new MediaStream);K(this,"stop",()=>{const D=this.stream.getTracks();for(const $ of D)$.enabled=!1,$.stop(),this.stream.removeTrack($)});K(this,"replaceStream",D=>{this.stop();const[$]=D.getVideoTracks();this.stream.addTrack($)});K(this,"getStream",()=>this.stream);this.stream.addTrack(D)}}const enum_roomState={ready:"已就绪",checkAuth:"正在鉴权",connect:"连接中",connected:"已连接",reconnect:"正在重新连接",disconnected:"已断开"};ut(enum_roomState);var S=Object.defineProperty,v=_=>{throw TypeError(_)},I=(_,D,$)=>D in _?S(_,D,{enumerable:!0,configurable:!0,writable:!0,value:$}):_[D]=$,l$1=(_,D,$)=>I(_,typeof D!="symbol"?D+"":D,$),C=(_,D,$)=>D.has(_)||v("Cannot "+$),t=(_,D,$)=>(C(_,D,"read from private field"),$?$.call(_):D.get(_)),c=(_,D,$)=>D.has(_)?v("Cannot add the same private member more than once"):D instanceof WeakSet?D.add(_):D.set(_,$),i=(_,D,$,M)=>(C(_,D,"write to private field"),D.set(_,$),$),s$1,r,h,p,m$1,f,d$1,x,g,b,B,y$1,T,w;let k$1=class{constructor(D){c(this,s$1,{url:"",binaryType:"blob",timeout:6*1e3,debug:!1,sendBeforAutoConnect:!1,reconnectCount:-1,reconnectTime:60*1e3,reconnectIntervalTime:5e3,heartbeatIntervalTime:1e4,checkReconnect:$=>!0,onReconnectSuccess:async $=>{},onReconnectStop:async $=>{},getHeartbeatMsg:()=>JSON.stringify({event:"heartbeat"}),onMessage:$=>{}}),l$1(this,"ws"),c(this,r,-1),c(this,h,-1),c(this,p,0),c(this,m$1,0),c(this,f,!1),c(this,d$1,$=>{}),l$1(this,"close",async($=1e3,M="correctly close.")=>{var R;this.ws&&(i(this,f,!0),t(this,w).call(this),(R=this.ws)==null||R.close($,M))}),l$1(this,"connect",()=>new Promise(async $=>{i(this,d$1,$),this.ws=new WebSocket(t(this,s$1).url),this.ws.binaryType=t(this,s$1).binaryType,this.ws.onopen=t(this,b),this.ws.onmessage=t(this,g),this.ws.onerror=t(this,B),this.ws.onclose=t(this,y$1)})),l$1(this,"reconnect",async $=>new Promise((M,R)=>{t(this,s$1).debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: await reconnect.");const N=e=>(t(this,s$1).debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;",`------->pr-ws: ${e}`),t(this,s$1).onReconnectStop({msg:e}),R(e));if(t(this,x).call(this)===!1)return N("stop reconnect. exceed maxReconnectionTime.");if(t(this,r)!==-1&&t(this,r)===0)return N("stop reconnect. surplusReconnectCount is 0.");if(!t(this,s$1).checkReconnect($))return N("stop reconnect. checkReconnect is false.");t(this,s$1).debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;",`------->pr-ws: await ${t(this,s$1).reconnectIntervalTime}ms run reconnect. surplusReconnectCount is ${t(this,r)}`,$),i(this,p,setTimeout(async()=>{i(this,r,Math.max(-1,t(this,r)-1)),await this.connect();try{await t(this,s$1).onReconnectSuccess(this.ws)}catch(e){console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->pr-ws: onReconnectSuccess is error",e)}M(!0)},t(this,s$1).reconnectIntervalTime))})),l$1(this,"sendMessage",async $=>{var M;(!this.ws||this.ws.readyState!==1)&&(t(this,s$1).debug&&console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: ws is not ready."),t(this,s$1).sendBeforAutoConnect&&(t(this,s$1).debug&&console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: await ws connect."),await this.connect())),(M=this.ws)==null||M.send($)}),c(this,x,()=>{const $=Date.now();return t(this,h)===-1&&i(this,h,$+t(this,s$1).reconnectTime),!($>t(this,h))}),c(this,g,$=>{const{data:M}=$;t(this,s$1).onMessage(M)}),c(this,b,()=>{t(this,s$1).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: connect is success.",this.ws),i(this,r,t(this,s$1).reconnectCount),i(this,h,-1),t(this,T).call(this),t(this,d$1).call(this,this.ws)}),c(this,B,$=>{t(this,s$1).debug&&console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: connect is error.",$)}),c(this,y$1,$=>{if(t(this,s$1).debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;",`------->pr-ws: connect is close. code: ${$.code}, permanentClosed is ${t(this,f)}.`,$),t(this,w).call(this),!t(this,f)&&$.code!==1e3)return this.reconnect($);this.ws=void 0}),c(this,T,()=>{i(this,m$1,setInterval(()=>{const $=t(this,s$1).getHeartbeatMsg();$&&this.sendMessage($)},t(this,s$1).heartbeatIntervalTime))}),c(this,w,()=>{clearInterval(t(this,p)),clearInterval(t(this,m$1))}),i(this,s$1,{...t(this,s$1),...D}),i(this,r,t(this,s$1).reconnectCount)}};s$1=new WeakMap,r=new WeakMap,h=new WeakMap,p=new WeakMap,m$1=new WeakMap,f=new WeakMap,d$1=new WeakMap,x=new WeakMap,g=new WeakMap,b=new WeakMap,B=new WeakMap,y$1=new WeakMap,T=new WeakMap,w=new WeakMap;var indexMinimal={},minimal$1={},aspromise,hasRequiredAspromise;function requireAspromise(){if(hasRequiredAspromise)return aspromise;hasRequiredAspromise=1,aspromise=_;function _(D,$){for(var M=new Array(arguments.length-1),R=0,N=2,e=!0;N<arguments.length;)M[R++]=arguments[N++];return new Promise(function(A,U){M[R]=function(F){if(e)if(e=!1,F)U(F);else{for(var Z=new Array(arguments.length-1),H=0;H<Z.length;)Z[H++]=arguments[H];A.apply(null,Z)}};try{D.apply($||null,M)}catch(L){e&&(e=!1,U(L))}})}return aspromise}var base64={},hasRequiredBase64;function requireBase64(){return hasRequiredBase64||(hasRequiredBase64=1,function(_){var D=_;D.length=function(o){var A=o.length;if(!A)return 0;for(var U=0;--A%4>1&&o.charAt(A)==="=";)++U;return Math.ceil(o.length*3)/4-U};for(var $=new Array(64),M=new Array(123),R=0;R<64;)M[$[R]=R<26?R+65:R<52?R+71:R<62?R-4:R-59|43]=R++;D.encode=function(o,A,U){for(var L=null,F=[],Z=0,H=0,z;A<U;){var V=o[A++];switch(H){case 0:F[Z++]=$[V>>2],z=(V&3)<<4,H=1;break;case 1:F[Z++]=$[z|V>>4],z=(V&15)<<2,H=2;break;case 2:F[Z++]=$[z|V>>6],F[Z++]=$[V&63],H=0;break}Z>8191&&((L||(L=[])).push(String.fromCharCode.apply(String,F)),Z=0)}return H&&(F[Z++]=$[z],F[Z++]=61,H===1&&(F[Z++]=61)),L?(Z&&L.push(String.fromCharCode.apply(String,F.slice(0,Z))),L.join("")):String.fromCharCode.apply(String,F.slice(0,Z))};var N="invalid encoding";D.decode=function(o,A,U){for(var L=U,F=0,Z,H=0;H<o.length;){var z=o.charCodeAt(H++);if(z===61&&F>1)break;if((z=M[z])===void 0)throw Error(N);switch(F){case 0:Z=z,F=1;break;case 1:A[U++]=Z<<2|(z&48)>>4,Z=z,F=2;break;case 2:A[U++]=(Z&15)<<4|(z&60)>>2,Z=z,F=3;break;case 3:A[U++]=(Z&3)<<6|z,F=0;break}}if(F===1)throw Error(N);return U-L},D.test=function(o){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(o)}}(base64)),base64}var eventemitter,hasRequiredEventemitter;function requireEventemitter(){if(hasRequiredEventemitter)return eventemitter;hasRequiredEventemitter=1,eventemitter=_;function _(){this._listeners={}}return _.prototype.on=function($,M,R){return(this._listeners[$]||(this._listeners[$]=[])).push({fn:M,ctx:R||this}),this},_.prototype.off=function($,M){if($===void 0)this._listeners={};else if(M===void 0)this._listeners[$]=[];else for(var R=this._listeners[$],N=0;N<R.length;)R[N].fn===M?R.splice(N,1):++N;return this},_.prototype.emit=function($){var M=this._listeners[$];if(M){for(var R=[],N=1;N<arguments.length;)R.push(arguments[N++]);for(N=0;N<M.length;)M[N].fn.apply(M[N++].ctx,R)}return this},eventemitter}var float,hasRequiredFloat;function requireFloat(){if(hasRequiredFloat)return float;hasRequiredFloat=1,float=_(_);function _(N){return typeof Float32Array<"u"?function(){var e=new Float32Array([-0]),o=new Uint8Array(e.buffer),A=o[3]===128;function U(H,z,V){e[0]=H,z[V]=o[0],z[V+1]=o[1],z[V+2]=o[2],z[V+3]=o[3]}function L(H,z,V){e[0]=H,z[V]=o[3],z[V+1]=o[2],z[V+2]=o[1],z[V+3]=o[0]}N.writeFloatLE=A?U:L,N.writeFloatBE=A?L:U;function F(H,z){return o[0]=H[z],o[1]=H[z+1],o[2]=H[z+2],o[3]=H[z+3],e[0]}function Z(H,z){return o[3]=H[z],o[2]=H[z+1],o[1]=H[z+2],o[0]=H[z+3],e[0]}N.readFloatLE=A?F:Z,N.readFloatBE=A?Z:F}():function(){function e(A,U,L,F){var Z=U<0?1:0;if(Z&&(U=-U),U===0)A(1/U>0?0:2147483648,L,F);else if(isNaN(U))A(2143289344,L,F);else if(U>34028234663852886e22)A((Z<<31|2139095040)>>>0,L,F);else if(U<11754943508222875e-54)A((Z<<31|Math.round(U/1401298464324817e-60))>>>0,L,F);else{var H=Math.floor(Math.log(U)/Math.LN2),z=Math.round(U*Math.pow(2,-H)*8388608)&8388607;A((Z<<31|H+127<<23|z)>>>0,L,F)}}N.writeFloatLE=e.bind(null,D),N.writeFloatBE=e.bind(null,$);function o(A,U,L){var F=A(U,L),Z=(F>>31)*2+1,H=F>>>23&255,z=F&8388607;return H===255?z?NaN:Z*(1/0):H===0?Z*1401298464324817e-60*z:Z*Math.pow(2,H-150)*(z+8388608)}N.readFloatLE=o.bind(null,M),N.readFloatBE=o.bind(null,R)}(),typeof Float64Array<"u"?function(){var e=new Float64Array([-0]),o=new Uint8Array(e.buffer),A=o[7]===128;function U(H,z,V){e[0]=H,z[V]=o[0],z[V+1]=o[1],z[V+2]=o[2],z[V+3]=o[3],z[V+4]=o[4],z[V+5]=o[5],z[V+6]=o[6],z[V+7]=o[7]}function L(H,z,V){e[0]=H,z[V]=o[7],z[V+1]=o[6],z[V+2]=o[5],z[V+3]=o[4],z[V+4]=o[3],z[V+5]=o[2],z[V+6]=o[1],z[V+7]=o[0]}N.writeDoubleLE=A?U:L,N.writeDoubleBE=A?L:U;function F(H,z){return o[0]=H[z],o[1]=H[z+1],o[2]=H[z+2],o[3]=H[z+3],o[4]=H[z+4],o[5]=H[z+5],o[6]=H[z+6],o[7]=H[z+7],e[0]}function Z(H,z){return o[7]=H[z],o[6]=H[z+1],o[5]=H[z+2],o[4]=H[z+3],o[3]=H[z+4],o[2]=H[z+5],o[1]=H[z+6],o[0]=H[z+7],e[0]}N.readDoubleLE=A?F:Z,N.readDoubleBE=A?Z:F}():function(){function e(A,U,L,F,Z,H){var z=F<0?1:0;if(z&&(F=-F),F===0)A(0,Z,H+U),A(1/F>0?0:2147483648,Z,H+L);else if(isNaN(F))A(0,Z,H+U),A(2146959360,Z,H+L);else if(F>17976931348623157e292)A(0,Z,H+U),A((z<<31|2146435072)>>>0,Z,H+L);else{var V;if(F<22250738585072014e-324)V=F/5e-324,A(V>>>0,Z,H+U),A((z<<31|V/4294967296)>>>0,Z,H+L);else{var W=Math.floor(Math.log(F)/Math.LN2);W===1024&&(W=1023),V=F*Math.pow(2,-W),A(V*4503599627370496>>>0,Z,H+U),A((z<<31|W+1023<<20|V*1048576&1048575)>>>0,Z,H+L)}}}N.writeDoubleLE=e.bind(null,D,0,4),N.writeDoubleBE=e.bind(null,$,4,0);function o(A,U,L,F,Z){var H=A(F,Z+U),z=A(F,Z+L),V=(z>>31)*2+1,W=z>>>20&2047,J=4294967296*(z&1048575)+H;return W===2047?J?NaN:V*(1/0):W===0?V*5e-324*J:V*Math.pow(2,W-1075)*(J+4503599627370496)}N.readDoubleLE=o.bind(null,M,0,4),N.readDoubleBE=o.bind(null,R,4,0)}(),N}function D(N,e,o){e[o]=N&255,e[o+1]=N>>>8&255,e[o+2]=N>>>16&255,e[o+3]=N>>>24}function $(N,e,o){e[o]=N>>>24,e[o+1]=N>>>16&255,e[o+2]=N>>>8&255,e[o+3]=N&255}function M(N,e){return(N[e]|N[e+1]<<8|N[e+2]<<16|N[e+3]<<24)>>>0}function R(N,e){return(N[e]<<24|N[e+1]<<16|N[e+2]<<8|N[e+3])>>>0}return float}var inquire_1,hasRequiredInquire;function requireInquire(){if(hasRequiredInquire)return inquire_1;hasRequiredInquire=1,inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(_){}return null}return inquire_1}var utf8={},hasRequiredUtf8;function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(_){var D=_;D.length=function(M){for(var R=0,N=0,e=0;e<M.length;++e)N=M.charCodeAt(e),N<128?R+=1:N<2048?R+=2:(N&64512)===55296&&(M.charCodeAt(e+1)&64512)===56320?(++e,R+=4):R+=3;return R},D.read=function(M,R,N){var e=N-R;if(e<1)return"";for(var o=null,A=[],U=0,L;R<N;)L=M[R++],L<128?A[U++]=L:L>191&&L<224?A[U++]=(L&31)<<6|M[R++]&63:L>239&&L<365?(L=((L&7)<<18|(M[R++]&63)<<12|(M[R++]&63)<<6|M[R++]&63)-65536,A[U++]=55296+(L>>10),A[U++]=56320+(L&1023)):A[U++]=(L&15)<<12|(M[R++]&63)<<6|M[R++]&63,U>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,A)),U=0);return o?(U&&o.push(String.fromCharCode.apply(String,A.slice(0,U))),o.join("")):String.fromCharCode.apply(String,A.slice(0,U))},D.write=function(M,R,N){for(var e=N,o,A,U=0;U<M.length;++U)o=M.charCodeAt(U),o<128?R[N++]=o:o<2048?(R[N++]=o>>6|192,R[N++]=o&63|128):(o&64512)===55296&&((A=M.charCodeAt(U+1))&64512)===56320?(o=65536+((o&1023)<<10)+(A&1023),++U,R[N++]=o>>18|240,R[N++]=o>>12&63|128,R[N++]=o>>6&63|128,R[N++]=o&63|128):(R[N++]=o>>12|224,R[N++]=o>>6&63|128,R[N++]=o&63|128);return N-e}}(utf8)),utf8}var pool_1,hasRequiredPool;function requirePool(){if(hasRequiredPool)return pool_1;hasRequiredPool=1,pool_1=_;function _(D,$,M){var R=M||8192,N=R>>>1,e=null,o=R;return function(U){if(U<1||U>N)return D(U);o+U>R&&(e=D(R),o=0);var L=$.call(e,o,o+=U);return o&7&&(o=(o|7)+1),L}}return pool_1}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=D;var _=requireMinimal$1();function D(N,e){this.lo=N>>>0,this.hi=e>>>0}var $=D.zero=new D(0,0);$.toNumber=function(){return 0},$.zzEncode=$.zzDecode=function(){return this},$.length=function(){return 1};var M=D.zeroHash="\0\0\0\0\0\0\0\0";D.fromNumber=function(e){if(e===0)return $;var o=e<0;o&&(e=-e);var A=e>>>0,U=(e-A)/4294967296>>>0;return o&&(U=~U>>>0,A=~A>>>0,++A>4294967295&&(A=0,++U>4294967295&&(U=0))),new D(A,U)},D.from=function(e){if(typeof e=="number")return D.fromNumber(e);if(_.isString(e))if(_.Long)e=_.Long.fromString(e);else return D.fromNumber(parseInt(e,10));return e.low||e.high?new D(e.low>>>0,e.high>>>0):$},D.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var o=~this.lo+1>>>0,A=~this.hi>>>0;return o||(A=A+1>>>0),-(o+A*4294967296)}return this.lo+this.hi*4294967296},D.prototype.toLong=function(e){return _.Long?new _.Long(this.lo|0,this.hi|0,!!e):{low:this.lo|0,high:this.hi|0,unsigned:!!e}};var R=String.prototype.charCodeAt;return D.fromHash=function(e){return e===M?$:new D((R.call(e,0)|R.call(e,1)<<8|R.call(e,2)<<16|R.call(e,3)<<24)>>>0,(R.call(e,4)|R.call(e,5)<<8|R.call(e,6)<<16|R.call(e,7)<<24)>>>0)},D.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},D.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},D.prototype.zzDecode=function(){var e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},D.prototype.length=function(){var e=this.lo,o=(this.lo>>>28|this.hi<<4)>>>0,A=this.hi>>>24;return A===0?o===0?e<16384?e<128?1:2:e<2097152?3:4:o<16384?o<128?5:6:o<2097152?7:8:A<128?9:10},longbits}var hasRequiredMinimal$1;function requireMinimal$1(){return hasRequiredMinimal$1||(hasRequiredMinimal$1=1,function(_){var D=_;D.asPromise=requireAspromise(),D.base64=requireBase64(),D.EventEmitter=requireEventemitter(),D.float=requireFloat(),D.inquire=requireInquire(),D.utf8=requireUtf8(),D.pool=requirePool(),D.LongBits=requireLongbits(),D.isNode=!!(typeof commonjsGlobal<"u"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),D.global=D.isNode&&commonjsGlobal||typeof window<"u"&&window||typeof self<"u"&&self||minimal$1,D.emptyArray=Object.freeze?Object.freeze([]):[],D.emptyObject=Object.freeze?Object.freeze({}):{},D.isInteger=Number.isInteger||function(N){return typeof N=="number"&&isFinite(N)&&Math.floor(N)===N},D.isString=function(N){return typeof N=="string"||N instanceof String},D.isObject=function(N){return N&&typeof N=="object"},D.isset=D.isSet=function(N,e){var o=N[e];return o!=null&&N.hasOwnProperty(e)?typeof o!="object"||(Array.isArray(o)?o.length:Object.keys(o).length)>0:!1},D.Buffer=function(){try{var R=D.inquire("buffer").Buffer;return R.prototype.utf8Write?R:null}catch{return null}}(),D._Buffer_from=null,D._Buffer_allocUnsafe=null,D.newBuffer=function(N){return typeof N=="number"?D.Buffer?D._Buffer_allocUnsafe(N):new D.Array(N):D.Buffer?D._Buffer_from(N):typeof Uint8Array>"u"?N:new Uint8Array(N)},D.Array=typeof Uint8Array<"u"?Uint8Array:Array,D.Long=D.global.dcodeIO&&D.global.dcodeIO.Long||D.global.Long||D.inquire("long"),D.key2Re=/^true|false|0|1$/,D.key32Re=/^-?(?:0|[1-9][0-9]*)$/,D.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,D.longToHash=function(N){return N?D.LongBits.from(N).toHash():D.LongBits.zeroHash},D.longFromHash=function(N,e){var o=D.LongBits.fromHash(N);return D.Long?D.Long.fromBits(o.lo,o.hi,e):o.toNumber(!!e)};function $(R,N,e){for(var o=Object.keys(N),A=0;A<o.length;++A)(R[o[A]]===void 0||!e)&&(R[o[A]]=N[o[A]]);return R}D.merge=$,D.lcFirst=function(N){return N.charAt(0).toLowerCase()+N.substring(1)};function M(R){function N(e,o){if(!(this instanceof N))return new N(e,o);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,N):Object.defineProperty(this,"stack",{value:new Error().stack||""}),o&&$(this,o)}return N.prototype=Object.create(Error.prototype,{constructor:{value:N,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return R},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),N}D.newError=M,D.ProtocolError=M("ProtocolError"),D.oneOfGetter=function(N){for(var e={},o=0;o<N.length;++o)e[N[o]]=1;return function(){for(var A=Object.keys(this),U=A.length-1;U>-1;--U)if(e[A[U]]===1&&this[A[U]]!==void 0&&this[A[U]]!==null)return A[U]}},D.oneOfSetter=function(N){return function(e){for(var o=0;o<N.length;++o)N[o]!==e&&delete this[N[o]]}},D.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},D._configure=function(){var R=D.Buffer;if(!R){D._Buffer_from=D._Buffer_allocUnsafe=null;return}D._Buffer_from=R.from!==Uint8Array.from&&R.from||function(e,o){return new R(e,o)},D._Buffer_allocUnsafe=R.allocUnsafe||function(e){return new R(e)}}}(minimal$1)),minimal$1}var writer,hasRequiredWriter;function requireWriter(){if(hasRequiredWriter)return writer;hasRequiredWriter=1,writer=A;var _=requireMinimal$1(),D,$=_.LongBits,M=_.base64,R=_.utf8;function N(W,J,Y){this.fn=W,this.len=J,this.next=void 0,this.val=Y}function e(){}function o(W){this.head=W.head,this.tail=W.tail,this.len=W.len,this.next=W.states}function A(){this.len=0,this.head=new N(e,0,0),this.tail=this.head,this.states=null}var U=function(){return _.Buffer?function(){return(A.create=function(){return new D})()}:function(){return new A}};A.create=U(),A.alloc=function(J){return new _.Array(J)},_.Array!==Array&&(A.alloc=_.pool(A.alloc,_.Array.prototype.subarray)),A.prototype._push=function(J,Y,tt){return this.tail=this.tail.next=new N(J,Y,tt),this.len+=Y,this};function L(W,J,Y){J[Y]=W&255}function F(W,J,Y){for(;W>127;)J[Y++]=W&127|128,W>>>=7;J[Y]=W}function Z(W,J){this.len=W,this.next=void 0,this.val=J}Z.prototype=Object.create(N.prototype),Z.prototype.fn=F,A.prototype.uint32=function(J){return this.len+=(this.tail=this.tail.next=new Z((J=J>>>0)<128?1:J<16384?2:J<2097152?3:J<268435456?4:5,J)).len,this},A.prototype.int32=function(J){return J<0?this._push(H,10,$.fromNumber(J)):this.uint32(J)},A.prototype.sint32=function(J){return this.uint32((J<<1^J>>31)>>>0)};function H(W,J,Y){for(;W.hi;)J[Y++]=W.lo&127|128,W.lo=(W.lo>>>7|W.hi<<25)>>>0,W.hi>>>=7;for(;W.lo>127;)J[Y++]=W.lo&127|128,W.lo=W.lo>>>7;J[Y++]=W.lo}A.prototype.uint64=function(J){var Y=$.from(J);return this._push(H,Y.length(),Y)},A.prototype.int64=A.prototype.uint64,A.prototype.sint64=function(J){var Y=$.from(J).zzEncode();return this._push(H,Y.length(),Y)},A.prototype.bool=function(J){return this._push(L,1,J?1:0)};function z(W,J,Y){J[Y]=W&255,J[Y+1]=W>>>8&255,J[Y+2]=W>>>16&255,J[Y+3]=W>>>24}A.prototype.fixed32=function(J){return this._push(z,4,J>>>0)},A.prototype.sfixed32=A.prototype.fixed32,A.prototype.fixed64=function(J){var Y=$.from(J);return this._push(z,4,Y.lo)._push(z,4,Y.hi)},A.prototype.sfixed64=A.prototype.fixed64,A.prototype.float=function(J){return this._push(_.float.writeFloatLE,4,J)},A.prototype.double=function(J){return this._push(_.float.writeDoubleLE,8,J)};var V=_.Array.prototype.set?function(J,Y,tt){Y.set(J,tt)}:function(J,Y,tt){for(var X=0;X<J.length;++X)Y[tt+X]=J[X]};return A.prototype.bytes=function(J){var Y=J.length>>>0;if(!Y)return this._push(L,1,0);if(_.isString(J)){var tt=A.alloc(Y=M.length(J));M.decode(J,tt,0),J=tt}return this.uint32(Y)._push(V,Y,J)},A.prototype.string=function(J){var Y=R.length(J);return Y?this.uint32(Y)._push(R.write,Y,J):this._push(L,1,0)},A.prototype.fork=function(){return this.states=new o(this),this.head=this.tail=new N(e,0,0),this.len=0,this},A.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new N(e,0,0),this.len=0),this},A.prototype.ldelim=function(){var J=this.head,Y=this.tail,tt=this.len;return this.reset().uint32(tt),tt&&(this.tail.next=J.next,this.tail=Y,this.len+=tt),this},A.prototype.finish=function(){for(var J=this.head.next,Y=this.constructor.alloc(this.len),tt=0;J;)J.fn(J.val,Y,tt),tt+=J.len,J=J.next;return Y},A._configure=function(W){D=W,A.create=U(),D._configure()},writer}var writer_buffer,hasRequiredWriter_buffer;function requireWriter_buffer(){if(hasRequiredWriter_buffer)return writer_buffer;hasRequiredWriter_buffer=1,writer_buffer=$;var _=requireWriter();($.prototype=Object.create(_.prototype)).constructor=$;var D=requireMinimal$1();function $(){_.call(this)}$._configure=function(){$.alloc=D._Buffer_allocUnsafe,$.writeBytesBuffer=D.Buffer&&D.Buffer.prototype instanceof Uint8Array&&D.Buffer.prototype.set.name==="set"?function(N,e,o){e.set(N,o)}:function(N,e,o){if(N.copy)N.copy(e,o,0,N.length);else for(var A=0;A<N.length;)e[o++]=N[A++]}},$.prototype.bytes=function(N){D.isString(N)&&(N=D._Buffer_from(N,"base64"));var e=N.length>>>0;return this.uint32(e),e&&this._push($.writeBytesBuffer,e,N),this};function M(R,N,e){R.length<40?D.utf8.write(R,N,e):N.utf8Write?N.utf8Write(R,e):N.write(R,e)}return $.prototype.string=function(N){var e=D.Buffer.byteLength(N);return this.uint32(e),e&&this._push(M,e,N),this},$._configure(),writer_buffer}var reader,hasRequiredReader;function requireReader(){if(hasRequiredReader)return reader;hasRequiredReader=1,reader=N;var _=requireMinimal$1(),D,$=_.LongBits,M=_.utf8;function R(F,Z){return RangeError("index out of range: "+F.pos+" + "+(Z||1)+" > "+F.len)}function N(F){this.buf=F,this.pos=0,this.len=F.length}var e=typeof Uint8Array<"u"?function(Z){if(Z instanceof Uint8Array||Array.isArray(Z))return new N(Z);throw Error("illegal buffer")}:function(Z){if(Array.isArray(Z))return new N(Z);throw Error("illegal buffer")},o=function(){return _.Buffer?function(H){return(N.create=function(V){return _.Buffer.isBuffer(V)?new D(V):e(V)})(H)}:e};N.create=o(),N.prototype._slice=_.Array.prototype.subarray||_.Array.prototype.slice,N.prototype.uint32=function(){var Z=4294967295;return function(){if(Z=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(Z=(Z|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(Z=(Z|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(Z=(Z|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(Z=(Z|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return Z;if((this.pos+=5)>this.len)throw this.pos=this.len,R(this,10);return Z}}(),N.prototype.int32=function(){return this.uint32()|0},N.prototype.sint32=function(){var Z=this.uint32();return Z>>>1^-(Z&1)|0};function A(){var F=new $(0,0),Z=0;if(this.len-this.pos>4){for(;Z<4;++Z)if(F.lo=(F.lo|(this.buf[this.pos]&127)<<Z*7)>>>0,this.buf[this.pos++]<128)return F;if(F.lo=(F.lo|(this.buf[this.pos]&127)<<28)>>>0,F.hi=(F.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return F;Z=0}else{for(;Z<3;++Z){if(this.pos>=this.len)throw R(this);if(F.lo=(F.lo|(this.buf[this.pos]&127)<<Z*7)>>>0,this.buf[this.pos++]<128)return F}return F.lo=(F.lo|(this.buf[this.pos++]&127)<<Z*7)>>>0,F}if(this.len-this.pos>4){for(;Z<5;++Z)if(F.hi=(F.hi|(this.buf[this.pos]&127)<<Z*7+3)>>>0,this.buf[this.pos++]<128)return F}else for(;Z<5;++Z){if(this.pos>=this.len)throw R(this);if(F.hi=(F.hi|(this.buf[this.pos]&127)<<Z*7+3)>>>0,this.buf[this.pos++]<128)return F}throw Error("invalid varint encoding")}N.prototype.bool=function(){return this.uint32()!==0};function U(F,Z){return(F[Z-4]|F[Z-3]<<8|F[Z-2]<<16|F[Z-1]<<24)>>>0}N.prototype.fixed32=function(){if(this.pos+4>this.len)throw R(this,4);return U(this.buf,this.pos+=4)},N.prototype.sfixed32=function(){if(this.pos+4>this.len)throw R(this,4);return U(this.buf,this.pos+=4)|0};function L(){if(this.pos+8>this.len)throw R(this,8);return new $(U(this.buf,this.pos+=4),U(this.buf,this.pos+=4))}return N.prototype.float=function(){if(this.pos+4>this.len)throw R(this,4);var Z=_.float.readFloatLE(this.buf,this.pos);return this.pos+=4,Z},N.prototype.double=function(){if(this.pos+8>this.len)throw R(this,4);var Z=_.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,Z},N.prototype.bytes=function(){var Z=this.uint32(),H=this.pos,z=this.pos+Z;if(z>this.len)throw R(this,Z);if(this.pos+=Z,Array.isArray(this.buf))return this.buf.slice(H,z);if(H===z){var V=_.Buffer;return V?V.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,H,z)},N.prototype.string=function(){var Z=this.bytes();return M.read(Z,0,Z.length)},N.prototype.skip=function(Z){if(typeof Z=="number"){if(this.pos+Z>this.len)throw R(this,Z);this.pos+=Z}else do if(this.pos>=this.len)throw R(this);while(this.buf[this.pos++]&128);return this},N.prototype.skipType=function(F){switch(F){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(F=this.uint32()&7)!==4;)this.skipType(F);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+F+" at offset "+this.pos)}return this},N._configure=function(F){D=F,N.create=o(),D._configure();var Z=_.Long?"toLong":"toNumber";_.merge(N.prototype,{int64:function(){return A.call(this)[Z](!1)},uint64:function(){return A.call(this)[Z](!0)},sint64:function(){return A.call(this).zzDecode()[Z](!1)},fixed64:function(){return L.call(this)[Z](!0)},sfixed64:function(){return L.call(this)[Z](!1)}})},reader}var reader_buffer,hasRequiredReader_buffer;function requireReader_buffer(){if(hasRequiredReader_buffer)return reader_buffer;hasRequiredReader_buffer=1,reader_buffer=$;var _=requireReader();($.prototype=Object.create(_.prototype)).constructor=$;var D=requireMinimal$1();function $(M){_.call(this,M)}return $._configure=function(){D.Buffer&&($.prototype._slice=D.Buffer.prototype.slice)},$.prototype.string=function(){var R=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+R,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+R,this.len))},$._configure(),reader_buffer}var rpc={},service,hasRequiredService;function requireService(){if(hasRequiredService)return service;hasRequiredService=1,service=D;var _=requireMinimal$1();(D.prototype=Object.create(_.EventEmitter.prototype)).constructor=D;function D($,M,R){if(typeof $!="function")throw TypeError("rpcImpl must be a function");_.EventEmitter.call(this),this.rpcImpl=$,this.requestDelimited=!!M,this.responseDelimited=!!R}return D.prototype.rpcCall=function $(M,R,N,e,o){if(!e)throw TypeError("request must be specified");var A=this;if(!o)return _.asPromise($,A,M,R,N,e);if(!A.rpcImpl){setTimeout(function(){o(Error("already ended"))},0);return}try{return A.rpcImpl(M,R[A.requestDelimited?"encodeDelimited":"encode"](e).finish(),function(L,F){if(L)return A.emit("error",L,M),o(L);if(F===null){A.end(!0);return}if(!(F instanceof N))try{F=N[A.responseDelimited?"decodeDelimited":"decode"](F)}catch(Z){return A.emit("error",Z,M),o(Z)}return A.emit("data",F,M),o(null,F)})}catch(U){A.emit("error",U,M),setTimeout(function(){o(U)},0);return}},D.prototype.end=function(M){return this.rpcImpl&&(M||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},service}var hasRequiredRpc;function requireRpc(){return hasRequiredRpc||(hasRequiredRpc=1,function(_){var D=_;D.Service=requireService()}(rpc)),rpc}var roots,hasRequiredRoots;function requireRoots(){return hasRequiredRoots||(hasRequiredRoots=1,roots={}),roots}var hasRequiredIndexMinimal;function requireIndexMinimal(){return hasRequiredIndexMinimal||(hasRequiredIndexMinimal=1,function(_){var D=_;D.build="minimal",D.Writer=requireWriter(),D.BufferWriter=requireWriter_buffer(),D.Reader=requireReader(),D.BufferReader=requireReader_buffer(),D.util=requireMinimal$1(),D.rpc=requireRpc(),D.roots=requireRoots(),D.configure=$;function $(){D.util._configure(),D.Writer._configure(D.BufferWriter),D.Reader._configure(D.BufferReader)}$()}(indexMinimal)),indexMinimal}var minimal,hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,minimal=requireIndexMinimal()),minimal}var minimalExports=requireMinimal();const $Reader=minimalExports.Reader,$Writer=minimalExports.Writer,$util=minimalExports.util,$root=minimalExports.roots.default||(minimalExports.roots.default={}),com=$root.com=(()=>{const _={};return _.quick=function(){const D={};return D.voice=function(){const $={};return $.proto=function(){const M={};return M.CommonReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.event="",R.prototype.data=$util.newBuffer([]),R.prototype.sn=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.time=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.valid=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.version=0,R.prototype.compress=!1,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.event!=null&&Object.hasOwnProperty.call(e,"event")&&o.uint32(10).string(e.event),e.data!=null&&Object.hasOwnProperty.call(e,"data")&&o.uint32(18).bytes(e.data),e.sn!=null&&Object.hasOwnProperty.call(e,"sn")&&o.uint32(24).int64(e.sn),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&o.uint32(32).int64(e.time),e.valid!=null&&Object.hasOwnProperty.call(e,"valid")&&o.uint32(40).int64(e.valid),e.version!=null&&Object.hasOwnProperty.call(e,"version")&&o.uint32(48).int32(e.version),e.compress!=null&&Object.hasOwnProperty.call(e,"compress")&&o.uint32(56).bool(e.compress),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CommonReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.event=e.string();break}case 2:{U.data=e.bytes();break}case 3:{U.sn=e.int64();break}case 4:{U.time=e.int64();break}case 5:{U.valid=e.int64();break}case 6:{U.version=e.int32();break}case 7:{U.compress=e.bool();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.event!=null&&e.hasOwnProperty("event")&&!$util.isString(e.event)?"event: string expected":e.data!=null&&e.hasOwnProperty("data")&&!(e.data&&typeof e.data.length=="number"||$util.isString(e.data))?"data: buffer expected":e.sn!=null&&e.hasOwnProperty("sn")&&!$util.isInteger(e.sn)&&!(e.sn&&$util.isInteger(e.sn.low)&&$util.isInteger(e.sn.high))?"sn: integer|Long expected":e.time!=null&&e.hasOwnProperty("time")&&!$util.isInteger(e.time)&&!(e.time&&$util.isInteger(e.time.low)&&$util.isInteger(e.time.high))?"time: integer|Long expected":e.valid!=null&&e.hasOwnProperty("valid")&&!$util.isInteger(e.valid)&&!(e.valid&&$util.isInteger(e.valid.low)&&$util.isInteger(e.valid.high))?"valid: integer|Long expected":e.version!=null&&e.hasOwnProperty("version")&&!$util.isInteger(e.version)?"version: integer expected":e.compress!=null&&e.hasOwnProperty("compress")&&typeof e.compress!="boolean"?"compress: boolean expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CommonReq)return e;let o=new $root.com.quick.voice.proto.CommonReq;return e.event!=null&&(o.event=String(e.event)),e.data!=null&&(typeof e.data=="string"?$util.base64.decode(e.data,o.data=$util.newBuffer($util.base64.length(e.data)),0):e.data.length>=0&&(o.data=e.data)),e.sn!=null&&($util.Long?(o.sn=$util.Long.fromValue(e.sn)).unsigned=!1:typeof e.sn=="string"?o.sn=parseInt(e.sn,10):typeof e.sn=="number"?o.sn=e.sn:typeof e.sn=="object"&&(o.sn=new $util.LongBits(e.sn.low>>>0,e.sn.high>>>0).toNumber())),e.time!=null&&($util.Long?(o.time=$util.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?o.time=parseInt(e.time,10):typeof e.time=="number"?o.time=e.time:typeof e.time=="object"&&(o.time=new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),e.valid!=null&&($util.Long?(o.valid=$util.Long.fromValue(e.valid)).unsigned=!1:typeof e.valid=="string"?o.valid=parseInt(e.valid,10):typeof e.valid=="number"?o.valid=e.valid:typeof e.valid=="object"&&(o.valid=new $util.LongBits(e.valid.low>>>0,e.valid.high>>>0).toNumber())),e.version!=null&&(o.version=e.version|0),e.compress!=null&&(o.compress=!!e.compress),o},R.toObject=function(e,o){o||(o={});let A={};if(o.defaults){if(A.event="",o.bytes===String?A.data="":(A.data=[],o.bytes!==Array&&(A.data=$util.newBuffer(A.data))),$util.Long){let U=new $util.Long(0,0,!1);A.sn=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.sn=o.longs===String?"0":0;if($util.Long){let U=new $util.Long(0,0,!1);A.time=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.time=o.longs===String?"0":0;if($util.Long){let U=new $util.Long(0,0,!1);A.valid=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.valid=o.longs===String?"0":0;A.version=0,A.compress=!1}return e.event!=null&&e.hasOwnProperty("event")&&(A.event=e.event),e.data!=null&&e.hasOwnProperty("data")&&(A.data=o.bytes===String?$util.base64.encode(e.data,0,e.data.length):o.bytes===Array?Array.prototype.slice.call(e.data):e.data),e.sn!=null&&e.hasOwnProperty("sn")&&(typeof e.sn=="number"?A.sn=o.longs===String?String(e.sn):e.sn:A.sn=o.longs===String?$util.Long.prototype.toString.call(e.sn):o.longs===Number?new $util.LongBits(e.sn.low>>>0,e.sn.high>>>0).toNumber():e.sn),e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?A.time=o.longs===String?String(e.time):e.time:A.time=o.longs===String?$util.Long.prototype.toString.call(e.time):o.longs===Number?new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),e.valid!=null&&e.hasOwnProperty("valid")&&(typeof e.valid=="number"?A.valid=o.longs===String?String(e.valid):e.valid:A.valid=o.longs===String?$util.Long.prototype.toString.call(e.valid):o.longs===Number?new $util.LongBits(e.valid.low>>>0,e.valid.high>>>0).toNumber():e.valid),e.version!=null&&e.hasOwnProperty("version")&&(A.version=e.version),e.compress!=null&&e.hasOwnProperty("compress")&&(A.compress=e.compress),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CommonReq"},R}(),M.CommonRsp=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.event="",R.prototype.data=$util.newBuffer([]),R.prototype.sn=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.time=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.valid=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.code=0,R.prototype.desc="",R.prototype.version=0,R.prototype.compress=!1,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.event!=null&&Object.hasOwnProperty.call(e,"event")&&o.uint32(10).string(e.event),e.data!=null&&Object.hasOwnProperty.call(e,"data")&&o.uint32(18).bytes(e.data),e.sn!=null&&Object.hasOwnProperty.call(e,"sn")&&o.uint32(24).int64(e.sn),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&o.uint32(32).int64(e.time),e.valid!=null&&Object.hasOwnProperty.call(e,"valid")&&o.uint32(40).int64(e.valid),e.code!=null&&Object.hasOwnProperty.call(e,"code")&&o.uint32(48).int32(e.code),e.desc!=null&&Object.hasOwnProperty.call(e,"desc")&&o.uint32(58).string(e.desc),e.version!=null&&Object.hasOwnProperty.call(e,"version")&&o.uint32(64).int32(e.version),e.compress!=null&&Object.hasOwnProperty.call(e,"compress")&&o.uint32(72).bool(e.compress),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CommonRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.event=e.string();break}case 2:{U.data=e.bytes();break}case 3:{U.sn=e.int64();break}case 4:{U.time=e.int64();break}case 5:{U.valid=e.int64();break}case 6:{U.code=e.int32();break}case 7:{U.desc=e.string();break}case 8:{U.version=e.int32();break}case 9:{U.compress=e.bool();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.event!=null&&e.hasOwnProperty("event")&&!$util.isString(e.event)?"event: string expected":e.data!=null&&e.hasOwnProperty("data")&&!(e.data&&typeof e.data.length=="number"||$util.isString(e.data))?"data: buffer expected":e.sn!=null&&e.hasOwnProperty("sn")&&!$util.isInteger(e.sn)&&!(e.sn&&$util.isInteger(e.sn.low)&&$util.isInteger(e.sn.high))?"sn: integer|Long expected":e.time!=null&&e.hasOwnProperty("time")&&!$util.isInteger(e.time)&&!(e.time&&$util.isInteger(e.time.low)&&$util.isInteger(e.time.high))?"time: integer|Long expected":e.valid!=null&&e.hasOwnProperty("valid")&&!$util.isInteger(e.valid)&&!(e.valid&&$util.isInteger(e.valid.low)&&$util.isInteger(e.valid.high))?"valid: integer|Long expected":e.code!=null&&e.hasOwnProperty("code")&&!$util.isInteger(e.code)?"code: integer expected":e.desc!=null&&e.hasOwnProperty("desc")&&!$util.isString(e.desc)?"desc: string expected":e.version!=null&&e.hasOwnProperty("version")&&!$util.isInteger(e.version)?"version: integer expected":e.compress!=null&&e.hasOwnProperty("compress")&&typeof e.compress!="boolean"?"compress: boolean expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CommonRsp)return e;let o=new $root.com.quick.voice.proto.CommonRsp;return e.event!=null&&(o.event=String(e.event)),e.data!=null&&(typeof e.data=="string"?$util.base64.decode(e.data,o.data=$util.newBuffer($util.base64.length(e.data)),0):e.data.length>=0&&(o.data=e.data)),e.sn!=null&&($util.Long?(o.sn=$util.Long.fromValue(e.sn)).unsigned=!1:typeof e.sn=="string"?o.sn=parseInt(e.sn,10):typeof e.sn=="number"?o.sn=e.sn:typeof e.sn=="object"&&(o.sn=new $util.LongBits(e.sn.low>>>0,e.sn.high>>>0).toNumber())),e.time!=null&&($util.Long?(o.time=$util.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?o.time=parseInt(e.time,10):typeof e.time=="number"?o.time=e.time:typeof e.time=="object"&&(o.time=new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),e.valid!=null&&($util.Long?(o.valid=$util.Long.fromValue(e.valid)).unsigned=!1:typeof e.valid=="string"?o.valid=parseInt(e.valid,10):typeof e.valid=="number"?o.valid=e.valid:typeof e.valid=="object"&&(o.valid=new $util.LongBits(e.valid.low>>>0,e.valid.high>>>0).toNumber())),e.code!=null&&(o.code=e.code|0),e.desc!=null&&(o.desc=String(e.desc)),e.version!=null&&(o.version=e.version|0),e.compress!=null&&(o.compress=!!e.compress),o},R.toObject=function(e,o){o||(o={});let A={};if(o.defaults){if(A.event="",o.bytes===String?A.data="":(A.data=[],o.bytes!==Array&&(A.data=$util.newBuffer(A.data))),$util.Long){let U=new $util.Long(0,0,!1);A.sn=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.sn=o.longs===String?"0":0;if($util.Long){let U=new $util.Long(0,0,!1);A.time=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.time=o.longs===String?"0":0;if($util.Long){let U=new $util.Long(0,0,!1);A.valid=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.valid=o.longs===String?"0":0;A.code=0,A.desc="",A.version=0,A.compress=!1}return e.event!=null&&e.hasOwnProperty("event")&&(A.event=e.event),e.data!=null&&e.hasOwnProperty("data")&&(A.data=o.bytes===String?$util.base64.encode(e.data,0,e.data.length):o.bytes===Array?Array.prototype.slice.call(e.data):e.data),e.sn!=null&&e.hasOwnProperty("sn")&&(typeof e.sn=="number"?A.sn=o.longs===String?String(e.sn):e.sn:A.sn=o.longs===String?$util.Long.prototype.toString.call(e.sn):o.longs===Number?new $util.LongBits(e.sn.low>>>0,e.sn.high>>>0).toNumber():e.sn),e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?A.time=o.longs===String?String(e.time):e.time:A.time=o.longs===String?$util.Long.prototype.toString.call(e.time):o.longs===Number?new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),e.valid!=null&&e.hasOwnProperty("valid")&&(typeof e.valid=="number"?A.valid=o.longs===String?String(e.valid):e.valid:A.valid=o.longs===String?$util.Long.prototype.toString.call(e.valid):o.longs===Number?new $util.LongBits(e.valid.low>>>0,e.valid.high>>>0).toNumber():e.valid),e.code!=null&&e.hasOwnProperty("code")&&(A.code=e.code),e.desc!=null&&e.hasOwnProperty("desc")&&(A.desc=e.desc),e.version!=null&&e.hasOwnProperty("version")&&(A.version=e.version),e.compress!=null&&e.hasOwnProperty("compress")&&(A.compress=e.compress),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CommonRsp"},R}(),M.User=function(){function R(e){if(this.tracks=[],e)for(let o=Object.keys(e),A=0;A<o.length;++A)e[o[A]]!=null&&(this[o[A]]=e[o[A]])}R.prototype.id="",R.prototype.callAction=null,R.prototype.callState=null,R.prototype.joinTime=null,R.prototype.tracks=$util.emptyArray,R.prototype.permissions=null,R.prototype.isPublished=null;let N;return Object.defineProperty(R.prototype,"_callAction",{get:$util.oneOfGetter(N=["callAction"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_callState",{get:$util.oneOfGetter(N=["callState"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_joinTime",{get:$util.oneOfGetter(N=["joinTime"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_permissions",{get:$util.oneOfGetter(N=["permissions"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_isPublished",{get:$util.oneOfGetter(N=["isPublished"]),set:$util.oneOfSetter(N)}),R.create=function(o){return new R(o)},R.encode=function(o,A){if(A||(A=$Writer.create()),o.id!=null&&Object.hasOwnProperty.call(o,"id")&&A.uint32(10).string(o.id),o.callAction!=null&&Object.hasOwnProperty.call(o,"callAction")&&A.uint32(16).int32(o.callAction),o.callState!=null&&Object.hasOwnProperty.call(o,"callState")&&A.uint32(24).int32(o.callState),o.joinTime!=null&&Object.hasOwnProperty.call(o,"joinTime")&&A.uint32(32).int64(o.joinTime),o.tracks!=null&&o.tracks.length)for(let U=0;U<o.tracks.length;++U)$root.com.quick.voice.proto.Track.encode(o.tracks[U],A.uint32(42).fork()).ldelim();return o.permissions!=null&&Object.hasOwnProperty.call(o,"permissions")&&A.uint32(48).int32(o.permissions),o.isPublished!=null&&Object.hasOwnProperty.call(o,"isPublished")&&A.uint32(56).bool(o.isPublished),A},R.encodeDelimited=function(o,A){return this.encode(o,A).ldelim()},R.decode=function(o,A){o instanceof $Reader||(o=$Reader.create(o));let U=A===void 0?o.len:o.pos+A,L=new $root.com.quick.voice.proto.User;for(;o.pos<U;){let F=o.uint32();switch(F>>>3){case 1:{L.id=o.string();break}case 2:{L.callAction=o.int32();break}case 3:{L.callState=o.int32();break}case 4:{L.joinTime=o.int64();break}case 5:{L.tracks&&L.tracks.length||(L.tracks=[]),L.tracks.push($root.com.quick.voice.proto.Track.decode(o,o.uint32()));break}case 6:{L.permissions=o.int32();break}case 7:{L.isPublished=o.bool();break}default:o.skipType(F&7);break}}return L},R.decodeDelimited=function(o){return o instanceof $Reader||(o=new $Reader(o)),this.decode(o,o.uint32())},R.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.id!=null&&o.hasOwnProperty("id")&&!$util.isString(o.id))return"id: string expected";if(o.callAction!=null&&o.hasOwnProperty("callAction")&&!$util.isInteger(o.callAction))return"callAction: integer expected";if(o.callState!=null&&o.hasOwnProperty("callState")&&!$util.isInteger(o.callState))return"callState: integer expected";if(o.joinTime!=null&&o.hasOwnProperty("joinTime")&&!$util.isInteger(o.joinTime)&&!(o.joinTime&&$util.isInteger(o.joinTime.low)&&$util.isInteger(o.joinTime.high)))return"joinTime: integer|Long expected";if(o.tracks!=null&&o.hasOwnProperty("tracks")){if(!Array.isArray(o.tracks))return"tracks: array expected";for(let A=0;A<o.tracks.length;++A){let U=$root.com.quick.voice.proto.Track.verify(o.tracks[A]);if(U)return"tracks."+U}}return o.permissions!=null&&o.hasOwnProperty("permissions")&&!$util.isInteger(o.permissions)?"permissions: integer expected":o.isPublished!=null&&o.hasOwnProperty("isPublished")&&typeof o.isPublished!="boolean"?"isPublished: boolean expected":null},R.fromObject=function(o){if(o instanceof $root.com.quick.voice.proto.User)return o;let A=new $root.com.quick.voice.proto.User;if(o.id!=null&&(A.id=String(o.id)),o.callAction!=null&&(A.callAction=o.callAction|0),o.callState!=null&&(A.callState=o.callState|0),o.joinTime!=null&&($util.Long?(A.joinTime=$util.Long.fromValue(o.joinTime)).unsigned=!1:typeof o.joinTime=="string"?A.joinTime=parseInt(o.joinTime,10):typeof o.joinTime=="number"?A.joinTime=o.joinTime:typeof o.joinTime=="object"&&(A.joinTime=new $util.LongBits(o.joinTime.low>>>0,o.joinTime.high>>>0).toNumber())),o.tracks){if(!Array.isArray(o.tracks))throw TypeError(".com.quick.voice.proto.User.tracks: array expected");A.tracks=[];for(let U=0;U<o.tracks.length;++U){if(typeof o.tracks[U]!="object")throw TypeError(".com.quick.voice.proto.User.tracks: object expected");A.tracks[U]=$root.com.quick.voice.proto.Track.fromObject(o.tracks[U])}}return o.permissions!=null&&(A.permissions=o.permissions|0),o.isPublished!=null&&(A.isPublished=!!o.isPublished),A},R.toObject=function(o,A){A||(A={});let U={};if((A.arrays||A.defaults)&&(U.tracks=[]),A.defaults&&(U.id=""),o.id!=null&&o.hasOwnProperty("id")&&(U.id=o.id),o.callAction!=null&&o.hasOwnProperty("callAction")&&(U.callAction=o.callAction,A.oneofs&&(U._callAction="callAction")),o.callState!=null&&o.hasOwnProperty("callState")&&(U.callState=o.callState,A.oneofs&&(U._callState="callState")),o.joinTime!=null&&o.hasOwnProperty("joinTime")&&(typeof o.joinTime=="number"?U.joinTime=A.longs===String?String(o.joinTime):o.joinTime:U.joinTime=A.longs===String?$util.Long.prototype.toString.call(o.joinTime):A.longs===Number?new $util.LongBits(o.joinTime.low>>>0,o.joinTime.high>>>0).toNumber():o.joinTime,A.oneofs&&(U._joinTime="joinTime")),o.tracks&&o.tracks.length){U.tracks=[];for(let L=0;L<o.tracks.length;++L)U.tracks[L]=$root.com.quick.voice.proto.Track.toObject(o.tracks[L],A)}return o.permissions!=null&&o.hasOwnProperty("permissions")&&(U.permissions=o.permissions,A.oneofs&&(U._permissions="permissions")),o.isPublished!=null&&o.hasOwnProperty("isPublished")&&(U.isPublished=o.isPublished,A.oneofs&&(U._isPublished="isPublished")),U},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/com.quick.voice.proto.User"},R}(),M.Login=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.appid="",R.prototype.userId="",R.prototype.sdkToken="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.appid!=null&&Object.hasOwnProperty.call(e,"appid")&&o.uint32(10).string(e.appid),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(18).string(e.userId),e.sdkToken!=null&&Object.hasOwnProperty.call(e,"sdkToken")&&o.uint32(26).string(e.sdkToken),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.Login;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.appid=e.string();break}case 2:{U.userId=e.string();break}case 3:{U.sdkToken=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.appid!=null&&e.hasOwnProperty("appid")&&!$util.isString(e.appid)?"appid: string expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.sdkToken!=null&&e.hasOwnProperty("sdkToken")&&!$util.isString(e.sdkToken)?"sdkToken: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.Login)return e;let o=new $root.com.quick.voice.proto.Login;return e.appid!=null&&(o.appid=String(e.appid)),e.userId!=null&&(o.userId=String(e.userId)),e.sdkToken!=null&&(o.sdkToken=String(e.sdkToken)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.appid="",A.userId="",A.sdkToken=""),e.appid!=null&&e.hasOwnProperty("appid")&&(A.appid=e.appid),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.sdkToken!=null&&e.hasOwnProperty("sdkToken")&&(A.sdkToken=e.sdkToken),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.Login"},R}(),M.Track=function(){function R(e){if(e)for(let o=Object.keys(e),A=0;A<o.length;++A)e[o[A]]!=null&&(this[o[A]]=e[o[A]])}R.prototype.mid="",R.prototype.trackName=null,R.prototype.location=null,R.prototype.userId=null,R.prototype.code=null,R.prototype.desc=null,R.prototype.type=null,R.prototype.isValid=null;let N;return Object.defineProperty(R.prototype,"_trackName",{get:$util.oneOfGetter(N=["trackName"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_location",{get:$util.oneOfGetter(N=["location"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_userId",{get:$util.oneOfGetter(N=["userId"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_code",{get:$util.oneOfGetter(N=["code"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_desc",{get:$util.oneOfGetter(N=["desc"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_type",{get:$util.oneOfGetter(N=["type"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_isValid",{get:$util.oneOfGetter(N=["isValid"]),set:$util.oneOfSetter(N)}),R.create=function(o){return new R(o)},R.encode=function(o,A){return A||(A=$Writer.create()),o.mid!=null&&Object.hasOwnProperty.call(o,"mid")&&A.uint32(10).string(o.mid),o.trackName!=null&&Object.hasOwnProperty.call(o,"trackName")&&A.uint32(18).string(o.trackName),o.location!=null&&Object.hasOwnProperty.call(o,"location")&&A.uint32(26).string(o.location),o.userId!=null&&Object.hasOwnProperty.call(o,"userId")&&A.uint32(34).string(o.userId),o.code!=null&&Object.hasOwnProperty.call(o,"code")&&A.uint32(40).int32(o.code),o.desc!=null&&Object.hasOwnProperty.call(o,"desc")&&A.uint32(50).string(o.desc),o.type!=null&&Object.hasOwnProperty.call(o,"type")&&A.uint32(56).int32(o.type),o.isValid!=null&&Object.hasOwnProperty.call(o,"isValid")&&A.uint32(64).bool(o.isValid),A},R.encodeDelimited=function(o,A){return this.encode(o,A).ldelim()},R.decode=function(o,A){o instanceof $Reader||(o=$Reader.create(o));let U=A===void 0?o.len:o.pos+A,L=new $root.com.quick.voice.proto.Track;for(;o.pos<U;){let F=o.uint32();switch(F>>>3){case 1:{L.mid=o.string();break}case 2:{L.trackName=o.string();break}case 3:{L.location=o.string();break}case 4:{L.userId=o.string();break}case 5:{L.code=o.int32();break}case 6:{L.desc=o.string();break}case 7:{L.type=o.int32();break}case 8:{L.isValid=o.bool();break}default:o.skipType(F&7);break}}return L},R.decodeDelimited=function(o){return o instanceof $Reader||(o=new $Reader(o)),this.decode(o,o.uint32())},R.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.mid!=null&&o.hasOwnProperty("mid")&&!$util.isString(o.mid))return"mid: string expected";if(o.trackName!=null&&o.hasOwnProperty("trackName")&&!$util.isString(o.trackName))return"trackName: string expected";if(o.location!=null&&o.hasOwnProperty("location")&&!$util.isString(o.location))return"location: string expected";if(o.userId!=null&&o.hasOwnProperty("userId")&&!$util.isString(o.userId))return"userId: string expected";if(o.code!=null&&o.hasOwnProperty("code")&&!$util.isInteger(o.code))return"code: integer expected";if(o.desc!=null&&o.hasOwnProperty("desc")&&!$util.isString(o.desc))return"desc: string expected";if(o.type!=null&&o.hasOwnProperty("type"))switch(o.type){default:return"type: enum value expected";case 0:case 1:case 2:case 3:break}return o.isValid!=null&&o.hasOwnProperty("isValid")&&typeof o.isValid!="boolean"?"isValid: boolean expected":null},R.fromObject=function(o){if(o instanceof $root.com.quick.voice.proto.Track)return o;let A=new $root.com.quick.voice.proto.Track;switch(o.mid!=null&&(A.mid=String(o.mid)),o.trackName!=null&&(A.trackName=String(o.trackName)),o.location!=null&&(A.location=String(o.location)),o.userId!=null&&(A.userId=String(o.userId)),o.code!=null&&(A.code=o.code|0),o.desc!=null&&(A.desc=String(o.desc)),o.type){default:if(typeof o.type=="number"){A.type=o.type;break}break;case"Microphone":case 0:A.type=0;break;case"Camera":case 1:A.type=1;break;case"Screen":case 2:A.type=2;break;case"SystemVoice":case 3:A.type=3;break}return o.isValid!=null&&(A.isValid=!!o.isValid),A},R.toObject=function(o,A){A||(A={});let U={};return A.defaults&&(U.mid=""),o.mid!=null&&o.hasOwnProperty("mid")&&(U.mid=o.mid),o.trackName!=null&&o.hasOwnProperty("trackName")&&(U.trackName=o.trackName,A.oneofs&&(U._trackName="trackName")),o.location!=null&&o.hasOwnProperty("location")&&(U.location=o.location,A.oneofs&&(U._location="location")),o.userId!=null&&o.hasOwnProperty("userId")&&(U.userId=o.userId,A.oneofs&&(U._userId="userId")),o.code!=null&&o.hasOwnProperty("code")&&(U.code=o.code,A.oneofs&&(U._code="code")),o.desc!=null&&o.hasOwnProperty("desc")&&(U.desc=o.desc,A.oneofs&&(U._desc="desc")),o.type!=null&&o.hasOwnProperty("type")&&(U.type=A.enums===String?$root.com.quick.voice.proto.TrackType[o.type]===void 0?o.type:$root.com.quick.voice.proto.TrackType[o.type]:o.type,A.oneofs&&(U._type="type")),o.isValid!=null&&o.hasOwnProperty("isValid")&&(U.isValid=o.isValid,A.oneofs&&(U._isValid="isValid")),U},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/com.quick.voice.proto.Track"},R}(),M.JoinReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.prototype.callType=0,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),e.callType!=null&&Object.hasOwnProperty.call(e,"callType")&&o.uint32(24).int32(e.callType),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.JoinReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}case 3:{U.callType=e.int32();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}if(e.callType!=null&&e.hasOwnProperty("callType"))switch(e.callType){default:return"callType: enum value expected";case 0:case 1:case 2:break}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.JoinReq)return e;let o=new $root.com.quick.voice.proto.JoinReq;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.JoinReq.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}switch(e.callType){default:if(typeof e.callType=="number"){o.callType=e.callType;break}break;case"Normal":case 0:o.callType=0;break;case"Meeting":case 1:o.callType=1;break;case"Live":case 2:o.callType=2;break}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null,A.callType=o.enums===String?"Normal":0),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),e.callType!=null&&e.hasOwnProperty("callType")&&(A.callType=o.enums===String?$root.com.quick.voice.proto.CallType[e.callType]===void 0?e.callType:$root.com.quick.voice.proto.CallType[e.callType]:e.callType),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.JoinReq"},R}(),M.JoinRsp=function(){function R(N){if(this.roomUsers=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.roomUsers=$util.emptyArray,R.prototype.callType=0,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.roomUsers!=null&&e.roomUsers.length)for(let A=0;A<e.roomUsers.length;++A)$root.com.quick.voice.proto.User.encode(e.roomUsers[A],o.uint32(18).fork()).ldelim();return e.callType!=null&&Object.hasOwnProperty.call(e,"callType")&&o.uint32(24).int32(e.callType),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.JoinRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.roomUsers&&U.roomUsers.length||(U.roomUsers=[]),U.roomUsers.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}case 3:{U.callType=e.int32();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.roomUsers!=null&&e.hasOwnProperty("roomUsers")){if(!Array.isArray(e.roomUsers))return"roomUsers: array expected";for(let o=0;o<e.roomUsers.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.roomUsers[o]);if(A)return"roomUsers."+A}}if(e.callType!=null&&e.hasOwnProperty("callType"))switch(e.callType){default:return"callType: enum value expected";case 0:case 1:case 2:break}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.JoinRsp)return e;let o=new $root.com.quick.voice.proto.JoinRsp;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.roomUsers){if(!Array.isArray(e.roomUsers))throw TypeError(".com.quick.voice.proto.JoinRsp.roomUsers: array expected");o.roomUsers=[];for(let A=0;A<e.roomUsers.length;++A){if(typeof e.roomUsers[A]!="object")throw TypeError(".com.quick.voice.proto.JoinRsp.roomUsers: object expected");o.roomUsers[A]=$root.com.quick.voice.proto.User.fromObject(e.roomUsers[A])}}switch(e.callType){default:if(typeof e.callType=="number"){o.callType=e.callType;break}break;case"Normal":case 0:o.callType=0;break;case"Meeting":case 1:o.callType=1;break;case"Live":case 2:o.callType=2;break}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.roomUsers=[]),o.defaults&&(A.roomId="",A.callType=o.enums===String?"Normal":0),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.roomUsers&&e.roomUsers.length){A.roomUsers=[];for(let U=0;U<e.roomUsers.length;++U)A.roomUsers[U]=$root.com.quick.voice.proto.User.toObject(e.roomUsers[U],o)}return e.callType!=null&&e.hasOwnProperty("callType")&&(A.callType=o.enums===String?$root.com.quick.voice.proto.CallType[e.callType]===void 0?e.callType:$root.com.quick.voice.proto.CallType[e.callType]:e.callType),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.JoinRsp"},R}(),M.JoinNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.JoinNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.JoinNotify)return e;let o=new $root.com.quick.voice.proto.JoinNotify;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.JoinNotify.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.JoinNotify"},R}(),M.ConnectCFReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.sdp="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.sdp!=null&&Object.hasOwnProperty.call(e,"sdp")&&o.uint32(10).string(e.sdp),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ConnectCFReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.sdp=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.sdp!=null&&e.hasOwnProperty("sdp")&&!$util.isString(e.sdp)?"sdp: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ConnectCFReq)return e;let o=new $root.com.quick.voice.proto.ConnectCFReq;return e.sdp!=null&&(o.sdp=String(e.sdp)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.sdp=""),e.sdp!=null&&e.hasOwnProperty("sdp")&&(A.sdp=e.sdp),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ConnectCFReq"},R}(),M.ConnectCFRsp=function(){function R(N){if(this.subscribeUsers=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.remoteSdp="",R.prototype.subscribeUsers=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.remoteSdp!=null&&Object.hasOwnProperty.call(e,"remoteSdp")&&o.uint32(10).string(e.remoteSdp),e.subscribeUsers!=null&&e.subscribeUsers.length)for(let A=0;A<e.subscribeUsers.length;++A)$root.com.quick.voice.proto.User.encode(e.subscribeUsers[A],o.uint32(18).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ConnectCFRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.remoteSdp=e.string();break}case 2:{U.subscribeUsers&&U.subscribeUsers.length||(U.subscribeUsers=[]),U.subscribeUsers.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&!$util.isString(e.remoteSdp))return"remoteSdp: string expected";if(e.subscribeUsers!=null&&e.hasOwnProperty("subscribeUsers")){if(!Array.isArray(e.subscribeUsers))return"subscribeUsers: array expected";for(let o=0;o<e.subscribeUsers.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.subscribeUsers[o]);if(A)return"subscribeUsers."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ConnectCFRsp)return e;let o=new $root.com.quick.voice.proto.ConnectCFRsp;if(e.remoteSdp!=null&&(o.remoteSdp=String(e.remoteSdp)),e.subscribeUsers){if(!Array.isArray(e.subscribeUsers))throw TypeError(".com.quick.voice.proto.ConnectCFRsp.subscribeUsers: array expected");o.subscribeUsers=[];for(let A=0;A<e.subscribeUsers.length;++A){if(typeof e.subscribeUsers[A]!="object")throw TypeError(".com.quick.voice.proto.ConnectCFRsp.subscribeUsers: object expected");o.subscribeUsers[A]=$root.com.quick.voice.proto.User.fromObject(e.subscribeUsers[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.subscribeUsers=[]),o.defaults&&(A.remoteSdp=""),e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&(A.remoteSdp=e.remoteSdp),e.subscribeUsers&&e.subscribeUsers.length){A.subscribeUsers=[];for(let U=0;U<e.subscribeUsers.length;++U)A.subscribeUsers[U]=$root.com.quick.voice.proto.User.toObject(e.subscribeUsers[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ConnectCFRsp"},R}(),M.PublishReq=function(){function R(N){if(this.tracks=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.sdp="",R.prototype.tracks=$util.emptyArray,R.prototype.callAction=0,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.sdp!=null&&Object.hasOwnProperty.call(e,"sdp")&&o.uint32(10).string(e.sdp),e.tracks!=null&&e.tracks.length)for(let A=0;A<e.tracks.length;++A)$root.com.quick.voice.proto.Track.encode(e.tracks[A],o.uint32(18).fork()).ldelim();return e.callAction!=null&&Object.hasOwnProperty.call(e,"callAction")&&o.uint32(24).int32(e.callAction),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.PublishReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.sdp=e.string();break}case 2:{U.tracks&&U.tracks.length||(U.tracks=[]),U.tracks.push($root.com.quick.voice.proto.Track.decode(e,e.uint32()));break}case 3:{U.callAction=e.int32();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.sdp!=null&&e.hasOwnProperty("sdp")&&!$util.isString(e.sdp))return"sdp: string expected";if(e.tracks!=null&&e.hasOwnProperty("tracks")){if(!Array.isArray(e.tracks))return"tracks: array expected";for(let o=0;o<e.tracks.length;++o){let A=$root.com.quick.voice.proto.Track.verify(e.tracks[o]);if(A)return"tracks."+A}}return e.callAction!=null&&e.hasOwnProperty("callAction")&&!$util.isInteger(e.callAction)?"callAction: integer expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.PublishReq)return e;let o=new $root.com.quick.voice.proto.PublishReq;if(e.sdp!=null&&(o.sdp=String(e.sdp)),e.tracks){if(!Array.isArray(e.tracks))throw TypeError(".com.quick.voice.proto.PublishReq.tracks: array expected");o.tracks=[];for(let A=0;A<e.tracks.length;++A){if(typeof e.tracks[A]!="object")throw TypeError(".com.quick.voice.proto.PublishReq.tracks: object expected");o.tracks[A]=$root.com.quick.voice.proto.Track.fromObject(e.tracks[A])}}return e.callAction!=null&&(o.callAction=e.callAction|0),o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.tracks=[]),o.defaults&&(A.sdp="",A.callAction=0),e.sdp!=null&&e.hasOwnProperty("sdp")&&(A.sdp=e.sdp),e.tracks&&e.tracks.length){A.tracks=[];for(let U=0;U<e.tracks.length;++U)A.tracks[U]=$root.com.quick.voice.proto.Track.toObject(e.tracks[U],o)}return e.callAction!=null&&e.hasOwnProperty("callAction")&&(A.callAction=e.callAction),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.PublishReq"},R}(),M.PublishRsp=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.remoteSdp="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.remoteSdp!=null&&Object.hasOwnProperty.call(e,"remoteSdp")&&o.uint32(10).string(e.remoteSdp),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.PublishRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.remoteSdp=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&!$util.isString(e.remoteSdp)?"remoteSdp: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.PublishRsp)return e;let o=new $root.com.quick.voice.proto.PublishRsp;return e.remoteSdp!=null&&(o.remoteSdp=String(e.remoteSdp)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.remoteSdp=""),e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&(A.remoteSdp=e.remoteSdp),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.PublishRsp"},R}(),M.PublishNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.PublishNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.PublishNotify)return e;let o=new $root.com.quick.voice.proto.PublishNotify;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.PublishNotify.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.PublishNotify"},R}(),M.SubscribeReq=function(){function R(N){if(this.users=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.users=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.users!=null&&e.users.length)for(let A=0;A<e.users.length;++A)$root.com.quick.voice.proto.User.encode(e.users[A],o.uint32(10).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.SubscribeReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.users&&U.users.length||(U.users=[]),U.users.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.users!=null&&e.hasOwnProperty("users")){if(!Array.isArray(e.users))return"users: array expected";for(let o=0;o<e.users.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.users[o]);if(A)return"users."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.SubscribeReq)return e;let o=new $root.com.quick.voice.proto.SubscribeReq;if(e.users){if(!Array.isArray(e.users))throw TypeError(".com.quick.voice.proto.SubscribeReq.users: array expected");o.users=[];for(let A=0;A<e.users.length;++A){if(typeof e.users[A]!="object")throw TypeError(".com.quick.voice.proto.SubscribeReq.users: object expected");o.users[A]=$root.com.quick.voice.proto.User.fromObject(e.users[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.users=[]),e.users&&e.users.length){A.users=[];for(let U=0;U<e.users.length;++U)A.users[U]=$root.com.quick.voice.proto.User.toObject(e.users[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.SubscribeReq"},R}(),M.SubscribeRsp=function(){function R(N){if(this.users=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.remoteSdp="",R.prototype.users=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.remoteSdp!=null&&Object.hasOwnProperty.call(e,"remoteSdp")&&o.uint32(10).string(e.remoteSdp),e.users!=null&&e.users.length)for(let A=0;A<e.users.length;++A)$root.com.quick.voice.proto.User.encode(e.users[A],o.uint32(18).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.SubscribeRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.remoteSdp=e.string();break}case 2:{U.users&&U.users.length||(U.users=[]),U.users.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&!$util.isString(e.remoteSdp))return"remoteSdp: string expected";if(e.users!=null&&e.hasOwnProperty("users")){if(!Array.isArray(e.users))return"users: array expected";for(let o=0;o<e.users.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.users[o]);if(A)return"users."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.SubscribeRsp)return e;let o=new $root.com.quick.voice.proto.SubscribeRsp;if(e.remoteSdp!=null&&(o.remoteSdp=String(e.remoteSdp)),e.users){if(!Array.isArray(e.users))throw TypeError(".com.quick.voice.proto.SubscribeRsp.users: array expected");o.users=[];for(let A=0;A<e.users.length;++A){if(typeof e.users[A]!="object")throw TypeError(".com.quick.voice.proto.SubscribeRsp.users: object expected");o.users[A]=$root.com.quick.voice.proto.User.fromObject(e.users[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.users=[]),o.defaults&&(A.remoteSdp=""),e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&(A.remoteSdp=e.remoteSdp),e.users&&e.users.length){A.users=[];for(let U=0;U<e.users.length;++U)A.users[U]=$root.com.quick.voice.proto.User.toObject(e.users[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.SubscribeRsp"},R}(),M.RenegotiateReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.userId="",R.prototype.sdp="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(10).string(e.userId),e.sdp!=null&&Object.hasOwnProperty.call(e,"sdp")&&o.uint32(18).string(e.sdp),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.RenegotiateReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.userId=e.string();break}case 2:{U.sdp=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.sdp!=null&&e.hasOwnProperty("sdp")&&!$util.isString(e.sdp)?"sdp: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.RenegotiateReq)return e;let o=new $root.com.quick.voice.proto.RenegotiateReq;return e.userId!=null&&(o.userId=String(e.userId)),e.sdp!=null&&(o.sdp=String(e.sdp)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.userId="",A.sdp=""),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.sdp!=null&&e.hasOwnProperty("sdp")&&(A.sdp=e.sdp),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.RenegotiateReq"},R}(),M.QuitReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.userId="",R.prototype.roomId="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(10).string(e.userId),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(18).string(e.roomId),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.QuitReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.userId=e.string();break}case 2:{U.roomId=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.QuitReq)return e;let o=new $root.com.quick.voice.proto.QuitReq;return e.userId!=null&&(o.userId=String(e.userId)),e.roomId!=null&&(o.roomId=String(e.roomId)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.userId="",A.roomId=""),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.QuitReq"},R}(),M.QuitNotify=function(){function R(e){if(e)for(let o=Object.keys(e),A=0;A<o.length;++A)e[o[A]]!=null&&(this[o[A]]=e[o[A]])}R.prototype.roomId="",R.prototype.user=null,R.prototype.code=null,R.prototype.desc=null;let N;return Object.defineProperty(R.prototype,"_code",{get:$util.oneOfGetter(N=["code"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_desc",{get:$util.oneOfGetter(N=["desc"]),set:$util.oneOfSetter(N)}),R.create=function(o){return new R(o)},R.encode=function(o,A){return A||(A=$Writer.create()),o.roomId!=null&&Object.hasOwnProperty.call(o,"roomId")&&A.uint32(10).string(o.roomId),o.user!=null&&Object.hasOwnProperty.call(o,"user")&&$root.com.quick.voice.proto.User.encode(o.user,A.uint32(18).fork()).ldelim(),o.code!=null&&Object.hasOwnProperty.call(o,"code")&&A.uint32(24).int32(o.code),o.desc!=null&&Object.hasOwnProperty.call(o,"desc")&&A.uint32(34).string(o.desc),A},R.encodeDelimited=function(o,A){return this.encode(o,A).ldelim()},R.decode=function(o,A){o instanceof $Reader||(o=$Reader.create(o));let U=A===void 0?o.len:o.pos+A,L=new $root.com.quick.voice.proto.QuitNotify;for(;o.pos<U;){let F=o.uint32();switch(F>>>3){case 1:{L.roomId=o.string();break}case 2:{L.user=$root.com.quick.voice.proto.User.decode(o,o.uint32());break}case 3:{L.code=o.int32();break}case 4:{L.desc=o.string();break}default:o.skipType(F&7);break}}return L},R.decodeDelimited=function(o){return o instanceof $Reader||(o=new $Reader(o)),this.decode(o,o.uint32())},R.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.roomId!=null&&o.hasOwnProperty("roomId")&&!$util.isString(o.roomId))return"roomId: string expected";if(o.user!=null&&o.hasOwnProperty("user")){let A=$root.com.quick.voice.proto.User.verify(o.user);if(A)return"user."+A}return o.code!=null&&o.hasOwnProperty("code")&&!$util.isInteger(o.code)?"code: integer expected":o.desc!=null&&o.hasOwnProperty("desc")&&!$util.isString(o.desc)?"desc: string expected":null},R.fromObject=function(o){if(o instanceof $root.com.quick.voice.proto.QuitNotify)return o;let A=new $root.com.quick.voice.proto.QuitNotify;if(o.roomId!=null&&(A.roomId=String(o.roomId)),o.user!=null){if(typeof o.user!="object")throw TypeError(".com.quick.voice.proto.QuitNotify.user: object expected");A.user=$root.com.quick.voice.proto.User.fromObject(o.user)}return o.code!=null&&(A.code=o.code|0),o.desc!=null&&(A.desc=String(o.desc)),A},R.toObject=function(o,A){A||(A={});let U={};return A.defaults&&(U.roomId="",U.user=null),o.roomId!=null&&o.hasOwnProperty("roomId")&&(U.roomId=o.roomId),o.user!=null&&o.hasOwnProperty("user")&&(U.user=$root.com.quick.voice.proto.User.toObject(o.user,A)),o.code!=null&&o.hasOwnProperty("code")&&(U.code=o.code,A.oneofs&&(U._code="code")),o.desc!=null&&o.hasOwnProperty("desc")&&(U.desc=o.desc,A.oneofs&&(U._desc="desc")),U},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/com.quick.voice.proto.QuitNotify"},R}(),M.TokenExpireNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.TokenExpireNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.TokenExpireNotify)return e;let o=new $root.com.quick.voice.proto.TokenExpireNotify;return e.roomId!=null&&(o.roomId=String(e.roomId)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.TokenExpireNotify"},R}(),M.UpdateTokenReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.sdkToken="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.sdkToken!=null&&Object.hasOwnProperty.call(e,"sdkToken")&&o.uint32(18).string(e.sdkToken),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.UpdateTokenReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.sdkToken=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":e.sdkToken!=null&&e.hasOwnProperty("sdkToken")&&!$util.isString(e.sdkToken)?"sdkToken: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UpdateTokenReq)return e;let o=new $root.com.quick.voice.proto.UpdateTokenReq;return e.roomId!=null&&(o.roomId=String(e.roomId)),e.sdkToken!=null&&(o.sdkToken=String(e.sdkToken)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.sdkToken=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.sdkToken!=null&&e.hasOwnProperty("sdkToken")&&(A.sdkToken=e.sdkToken),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UpdateTokenReq"},R}(),M.NetQualityChange=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.userId="",R.prototype.roomId="",R.prototype.egress=0,R.prototype.ingress=0,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(10).string(e.userId),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(18).string(e.roomId),e.egress!=null&&Object.hasOwnProperty.call(e,"egress")&&o.uint32(24).int32(e.egress),e.ingress!=null&&Object.hasOwnProperty.call(e,"ingress")&&o.uint32(32).int32(e.ingress),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.NetQualityChange;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.userId=e.string();break}case 2:{U.roomId=e.string();break}case 3:{U.egress=e.int32();break}case 4:{U.ingress=e.int32();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":e.egress!=null&&e.hasOwnProperty("egress")&&!$util.isInteger(e.egress)?"egress: integer expected":e.ingress!=null&&e.hasOwnProperty("ingress")&&!$util.isInteger(e.ingress)?"ingress: integer expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.NetQualityChange)return e;let o=new $root.com.quick.voice.proto.NetQualityChange;return e.userId!=null&&(o.userId=String(e.userId)),e.roomId!=null&&(o.roomId=String(e.roomId)),e.egress!=null&&(o.egress=e.egress|0),e.ingress!=null&&(o.ingress=e.ingress|0),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.userId="",A.roomId="",A.egress=0,A.ingress=0),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.egress!=null&&e.hasOwnProperty("egress")&&(A.egress=e.egress),e.ingress!=null&&e.hasOwnProperty("ingress")&&(A.ingress=e.ingress),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.NetQualityChange"},R}(),M.NetQualityNotify=function(){function R(N){if(this.qualities=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.qualities=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.qualities!=null&&e.qualities.length)for(let A=0;A<e.qualities.length;++A)$root.com.quick.voice.proto.NetQualityChange.encode(e.qualities[A],o.uint32(10).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.NetQualityNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.qualities&&U.qualities.length||(U.qualities=[]),U.qualities.push($root.com.quick.voice.proto.NetQualityChange.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.qualities!=null&&e.hasOwnProperty("qualities")){if(!Array.isArray(e.qualities))return"qualities: array expected";for(let o=0;o<e.qualities.length;++o){let A=$root.com.quick.voice.proto.NetQualityChange.verify(e.qualities[o]);if(A)return"qualities."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.NetQualityNotify)return e;let o=new $root.com.quick.voice.proto.NetQualityNotify;if(e.qualities){if(!Array.isArray(e.qualities))throw TypeError(".com.quick.voice.proto.NetQualityNotify.qualities: array expected");o.qualities=[];for(let A=0;A<e.qualities.length;++A){if(typeof e.qualities[A]!="object")throw TypeError(".com.quick.voice.proto.NetQualityNotify.qualities: object expected");o.qualities[A]=$root.com.quick.voice.proto.NetQualityChange.fromObject(e.qualities[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.qualities=[]),e.qualities&&e.qualities.length){A.qualities=[];for(let U=0;U<e.qualities.length;++U)A.qualities[U]=$root.com.quick.voice.proto.NetQualityChange.toObject(e.qualities[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.NetQualityNotify"},R}(),M.UpdateCall=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.UpdateCall;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UpdateCall)return e;let o=new $root.com.quick.voice.proto.UpdateCall;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.UpdateCall.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UpdateCall"},R}(),M.SyncRoomInfoReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.SyncRoomInfoReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.SyncRoomInfoReq)return e;let o=new $root.com.quick.voice.proto.SyncRoomInfoReq;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.SyncRoomInfoReq.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.SyncRoomInfoReq"},R}(),M.SyncRoomInfoRsp=function(){function R(N){if(this.users=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.isValid=!1,R.prototype.users=$util.emptyArray,R.prototype.isActive=!1,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.isValid!=null&&Object.hasOwnProperty.call(e,"isValid")&&o.uint32(16).bool(e.isValid),e.users!=null&&e.users.length)for(let A=0;A<e.users.length;++A)$root.com.quick.voice.proto.User.encode(e.users[A],o.uint32(26).fork()).ldelim();return e.isActive!=null&&Object.hasOwnProperty.call(e,"isActive")&&o.uint32(32).bool(e.isActive),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.SyncRoomInfoRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.isValid=e.bool();break}case 3:{U.users&&U.users.length||(U.users=[]),U.users.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}case 4:{U.isActive=e.bool();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.isValid!=null&&e.hasOwnProperty("isValid")&&typeof e.isValid!="boolean")return"isValid: boolean expected";if(e.users!=null&&e.hasOwnProperty("users")){if(!Array.isArray(e.users))return"users: array expected";for(let o=0;o<e.users.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.users[o]);if(A)return"users."+A}}return e.isActive!=null&&e.hasOwnProperty("isActive")&&typeof e.isActive!="boolean"?"isActive: boolean expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.SyncRoomInfoRsp)return e;let o=new $root.com.quick.voice.proto.SyncRoomInfoRsp;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.isValid!=null&&(o.isValid=!!e.isValid),e.users){if(!Array.isArray(e.users))throw TypeError(".com.quick.voice.proto.SyncRoomInfoRsp.users: array expected");o.users=[];for(let A=0;A<e.users.length;++A){if(typeof e.users[A]!="object")throw TypeError(".com.quick.voice.proto.SyncRoomInfoRsp.users: object expected");o.users[A]=$root.com.quick.voice.proto.User.fromObject(e.users[A])}}return e.isActive!=null&&(o.isActive=!!e.isActive),o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.users=[]),o.defaults&&(A.roomId="",A.isValid=!1,A.isActive=!1),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.isValid!=null&&e.hasOwnProperty("isValid")&&(A.isValid=e.isValid),e.users&&e.users.length){A.users=[];for(let U=0;U<e.users.length;++U)A.users[U]=$root.com.quick.voice.proto.User.toObject(e.users[U],o)}return e.isActive!=null&&e.hasOwnProperty("isActive")&&(A.isActive=e.isActive),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.SyncRoomInfoRsp"},R}(),M.UpdateTime=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.time=$util.Long?$util.Long.fromBits(0,0,!1):0,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&o.uint32(8).int64(e.time),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.UpdateTime;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.time=e.int64();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.time!=null&&e.hasOwnProperty("time")&&!$util.isInteger(e.time)&&!(e.time&&$util.isInteger(e.time.low)&&$util.isInteger(e.time.high))?"time: integer|Long expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UpdateTime)return e;let o=new $root.com.quick.voice.proto.UpdateTime;return e.time!=null&&($util.Long?(o.time=$util.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?o.time=parseInt(e.time,10):typeof e.time=="number"?o.time=e.time:typeof e.time=="object"&&(o.time=new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),o},R.toObject=function(e,o){o||(o={});let A={};if(o.defaults)if($util.Long){let U=new $util.Long(0,0,!1);A.time=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.time=o.longs===String?"0":0;return e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?A.time=o.longs===String?String(e.time):e.time:A.time=o.longs===String?$util.Long.prototype.toString.call(e.time):o.longs===Number?new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UpdateTime"},R}(),M.CloseTrackReq=function(){function R(N){if(this.tracks=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.sdp="",R.prototype.tracks=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.sdp!=null&&Object.hasOwnProperty.call(e,"sdp")&&o.uint32(10).string(e.sdp),e.tracks!=null&&e.tracks.length)for(let A=0;A<e.tracks.length;++A)$root.com.quick.voice.proto.Track.encode(e.tracks[A],o.uint32(18).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CloseTrackReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.sdp=e.string();break}case 2:{U.tracks&&U.tracks.length||(U.tracks=[]),U.tracks.push($root.com.quick.voice.proto.Track.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.sdp!=null&&e.hasOwnProperty("sdp")&&!$util.isString(e.sdp))return"sdp: string expected";if(e.tracks!=null&&e.hasOwnProperty("tracks")){if(!Array.isArray(e.tracks))return"tracks: array expected";for(let o=0;o<e.tracks.length;++o){let A=$root.com.quick.voice.proto.Track.verify(e.tracks[o]);if(A)return"tracks."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CloseTrackReq)return e;let o=new $root.com.quick.voice.proto.CloseTrackReq;if(e.sdp!=null&&(o.sdp=String(e.sdp)),e.tracks){if(!Array.isArray(e.tracks))throw TypeError(".com.quick.voice.proto.CloseTrackReq.tracks: array expected");o.tracks=[];for(let A=0;A<e.tracks.length;++A){if(typeof e.tracks[A]!="object")throw TypeError(".com.quick.voice.proto.CloseTrackReq.tracks: object expected");o.tracks[A]=$root.com.quick.voice.proto.Track.fromObject(e.tracks[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.tracks=[]),o.defaults&&(A.sdp=""),e.sdp!=null&&e.hasOwnProperty("sdp")&&(A.sdp=e.sdp),e.tracks&&e.tracks.length){A.tracks=[];for(let U=0;U<e.tracks.length;++U)A.tracks[U]=$root.com.quick.voice.proto.Track.toObject(e.tracks[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CloseTrackReq"},R}(),M.CloseTrackRsp=function(){function R(N){if(this.tracks=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.remoteSdp="",R.prototype.tracks=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.remoteSdp!=null&&Object.hasOwnProperty.call(e,"remoteSdp")&&o.uint32(10).string(e.remoteSdp),e.tracks!=null&&e.tracks.length)for(let A=0;A<e.tracks.length;++A)$root.com.quick.voice.proto.Track.encode(e.tracks[A],o.uint32(18).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CloseTrackRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.remoteSdp=e.string();break}case 2:{U.tracks&&U.tracks.length||(U.tracks=[]),U.tracks.push($root.com.quick.voice.proto.Track.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&!$util.isString(e.remoteSdp))return"remoteSdp: string expected";if(e.tracks!=null&&e.hasOwnProperty("tracks")){if(!Array.isArray(e.tracks))return"tracks: array expected";for(let o=0;o<e.tracks.length;++o){let A=$root.com.quick.voice.proto.Track.verify(e.tracks[o]);if(A)return"tracks."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CloseTrackRsp)return e;let o=new $root.com.quick.voice.proto.CloseTrackRsp;if(e.remoteSdp!=null&&(o.remoteSdp=String(e.remoteSdp)),e.tracks){if(!Array.isArray(e.tracks))throw TypeError(".com.quick.voice.proto.CloseTrackRsp.tracks: array expected");o.tracks=[];for(let A=0;A<e.tracks.length;++A){if(typeof e.tracks[A]!="object")throw TypeError(".com.quick.voice.proto.CloseTrackRsp.tracks: object expected");o.tracks[A]=$root.com.quick.voice.proto.Track.fromObject(e.tracks[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.tracks=[]),o.defaults&&(A.remoteSdp=""),e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&(A.remoteSdp=e.remoteSdp),e.tracks&&e.tracks.length){A.tracks=[];for(let U=0;U<e.tracks.length;++U)A.tracks[U]=$root.com.quick.voice.proto.Track.toObject(e.tracks[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CloseTrackRsp"},R}(),M.CloseTrackNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(10).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CloseTrackNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CloseTrackNotify)return e;let o=new $root.com.quick.voice.proto.CloseTrackNotify;if(e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.CloseTrackNotify.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.user=null),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CloseTrackNotify"},R}(),M.ToggleLiveRoomReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ToggleLiveRoomReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ToggleLiveRoomReq)return e;let o=new $root.com.quick.voice.proto.ToggleLiveRoomReq;return e.roomId!=null&&(o.roomId=String(e.roomId)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ToggleLiveRoomReq"},R}(),M.ToggleLiveRoomRsq=function(){function R(N){if(this.roomUsers=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.hash="",R.prototype.roomUsers=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.hash!=null&&Object.hasOwnProperty.call(e,"hash")&&o.uint32(18).string(e.hash),e.roomUsers!=null&&e.roomUsers.length)for(let A=0;A<e.roomUsers.length;++A)$root.com.quick.voice.proto.User.encode(e.roomUsers[A],o.uint32(26).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ToggleLiveRoomRsq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.hash=e.string();break}case 3:{U.roomUsers&&U.roomUsers.length||(U.roomUsers=[]),U.roomUsers.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.hash!=null&&e.hasOwnProperty("hash")&&!$util.isString(e.hash))return"hash: string expected";if(e.roomUsers!=null&&e.hasOwnProperty("roomUsers")){if(!Array.isArray(e.roomUsers))return"roomUsers: array expected";for(let o=0;o<e.roomUsers.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.roomUsers[o]);if(A)return"roomUsers."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ToggleLiveRoomRsq)return e;let o=new $root.com.quick.voice.proto.ToggleLiveRoomRsq;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.hash!=null&&(o.hash=String(e.hash)),e.roomUsers){if(!Array.isArray(e.roomUsers))throw TypeError(".com.quick.voice.proto.ToggleLiveRoomRsq.roomUsers: array expected");o.roomUsers=[];for(let A=0;A<e.roomUsers.length;++A){if(typeof e.roomUsers[A]!="object")throw TypeError(".com.quick.voice.proto.ToggleLiveRoomRsq.roomUsers: object expected");o.roomUsers[A]=$root.com.quick.voice.proto.User.fromObject(e.roomUsers[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.roomUsers=[]),o.defaults&&(A.roomId="",A.hash=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.hash!=null&&e.hasOwnProperty("hash")&&(A.hash=e.hash),e.roomUsers&&e.roomUsers.length){A.roomUsers=[];for(let U=0;U<e.roomUsers.length;++U)A.roomUsers[U]=$root.com.quick.voice.proto.User.toObject(e.roomUsers[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ToggleLiveRoomRsq"},R}(),M.CDNPlayAddressNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.m3u8="",R.prototype.rtmp="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.m3u8!=null&&Object.hasOwnProperty.call(e,"m3u8")&&o.uint32(18).string(e.m3u8),e.rtmp!=null&&Object.hasOwnProperty.call(e,"rtmp")&&o.uint32(26).string(e.rtmp),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CDNPlayAddressNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.m3u8=e.string();break}case 3:{U.rtmp=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":e.m3u8!=null&&e.hasOwnProperty("m3u8")&&!$util.isString(e.m3u8)?"m3u8: string expected":e.rtmp!=null&&e.hasOwnProperty("rtmp")&&!$util.isString(e.rtmp)?"rtmp: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CDNPlayAddressNotify)return e;let o=new $root.com.quick.voice.proto.CDNPlayAddressNotify;return e.roomId!=null&&(o.roomId=String(e.roomId)),e.m3u8!=null&&(o.m3u8=String(e.m3u8)),e.rtmp!=null&&(o.rtmp=String(e.rtmp)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.m3u8="",A.rtmp=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.m3u8!=null&&e.hasOwnProperty("m3u8")&&(A.m3u8=e.m3u8),e.rtmp!=null&&e.hasOwnProperty("rtmp")&&(A.rtmp=e.rtmp),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CDNPlayAddressNotify"},R}(),M.TrackType=function(){const R={},N=Object.create(R);return N[R[0]="Microphone"]=0,N[R[1]="Camera"]=1,N[R[2]="Screen"]=2,N[R[3]="SystemVoice"]=3,N}(),M.ReportInfoReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.actionEvent="",R.prototype.userId="",R.prototype.platform="",R.prototype.time=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.actionData="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.actionEvent!=null&&Object.hasOwnProperty.call(e,"actionEvent")&&o.uint32(10).string(e.actionEvent),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(18).string(e.userId),e.platform!=null&&Object.hasOwnProperty.call(e,"platform")&&o.uint32(26).string(e.platform),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&o.uint32(32).int64(e.time),e.actionData!=null&&Object.hasOwnProperty.call(e,"actionData")&&o.uint32(42).string(e.actionData),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ReportInfoReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.actionEvent=e.string();break}case 2:{U.userId=e.string();break}case 3:{U.platform=e.string();break}case 4:{U.time=e.int64();break}case 5:{U.actionData=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.actionEvent!=null&&e.hasOwnProperty("actionEvent")&&!$util.isString(e.actionEvent)?"actionEvent: string expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.platform!=null&&e.hasOwnProperty("platform")&&!$util.isString(e.platform)?"platform: string expected":e.time!=null&&e.hasOwnProperty("time")&&!$util.isInteger(e.time)&&!(e.time&&$util.isInteger(e.time.low)&&$util.isInteger(e.time.high))?"time: integer|Long expected":e.actionData!=null&&e.hasOwnProperty("actionData")&&!$util.isString(e.actionData)?"actionData: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ReportInfoReq)return e;let o=new $root.com.quick.voice.proto.ReportInfoReq;return e.actionEvent!=null&&(o.actionEvent=String(e.actionEvent)),e.userId!=null&&(o.userId=String(e.userId)),e.platform!=null&&(o.platform=String(e.platform)),e.time!=null&&($util.Long?(o.time=$util.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?o.time=parseInt(e.time,10):typeof e.time=="number"?o.time=e.time:typeof e.time=="object"&&(o.time=new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),e.actionData!=null&&(o.actionData=String(e.actionData)),o},R.toObject=function(e,o){o||(o={});let A={};if(o.defaults){if(A.actionEvent="",A.userId="",A.platform="",$util.Long){let U=new $util.Long(0,0,!1);A.time=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.time=o.longs===String?"0":0;A.actionData=""}return e.actionEvent!=null&&e.hasOwnProperty("actionEvent")&&(A.actionEvent=e.actionEvent),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.platform!=null&&e.hasOwnProperty("platform")&&(A.platform=e.platform),e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?A.time=o.longs===String?String(e.time):e.time:A.time=o.longs===String?$util.Long.prototype.toString.call(e.time):o.longs===Number?new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),e.actionData!=null&&e.hasOwnProperty("actionData")&&(A.actionData=e.actionData),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ReportInfoReq"},R}(),M.UpdatePermissions=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.UpdatePermissions;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UpdatePermissions)return e;let o=new $root.com.quick.voice.proto.UpdatePermissions;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.UpdatePermissions.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UpdatePermissions"},R}(),M.CallType=function(){const R={},N=Object.create(R);return N[R[0]="Normal"]=0,N[R[1]="Meeting"]=1,N[R[2]="Live"]=2,N}(),M.QuitNotifyCode=function(){const R={},N=Object.create(R);return N[R[0]="NormalQuit"]=0,N[R[2021]="Timeout"]=2021,N[R[2011]="TokenExpired"]=2011,N[R[2022]="KickOut"]=2022,N[R[2023]="EndPk"]=2023,N[R[2024]="EndLive"]=2024,N}(),M}(),$}(),D}(),_})(),ignoreEvent=["heartbeat","healthCheck"],enum_notifyName={onChangeNetwork:"网络情况变更",onRoomNetwork:"房间网络情况变更",healthCheck:"心跳检测",onNetQuality:"网络质量回调",onLogin:"登录回调",onLocalStream:"本地媒体流发生变化",onDevicechange:"媒体设备发生变化",onRoomUser:"房间用户变化",onRoomUsers:"房间所有用户所有变化",onRoomUsersStreams:"房间某些用户媒体流变化",onRoomState:"房间状态变化",onJoinRoom:"加入房间回调",onQuitRoom:"退出房间回调",onPublish:"监听到流发布",onCloseTrack:"关闭轨道",onUpdateCall:"更新通讯状态",onUpdateStreams:"更新媒体流",onUpdatePermissions:"更新推流权限通知",onTokenExpired:"Token已过期",onDestroyRoom:"直播模式房间销毁",destroyRoom:"服务器要求销毁房间",onDestroy:"SDK销毁"};ut(enum_notifyName);const notifyName_keys=Object.keys(enum_notifyName);/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(_){let D=_.length;for(;--D>=0;)_[D]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([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]),extra_dbits=new Uint8Array([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]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(_,D,$,M,R){this.static_tree=_,this.extra_bits=D,this.extra_base=$,this.elems=M,this.max_length=R,this.has_stree=_&&_.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(_,D){this.dyn_tree=_,this.max_code=0,this.stat_desc=D}const d_code=_=>_<256?_dist_code[_]:_dist_code[256+(_>>>7)],put_short=(_,D)=>{_.pending_buf[_.pending++]=D&255,_.pending_buf[_.pending++]=D>>>8&255},send_bits=(_,D,$)=>{_.bi_valid>Buf_size-$?(_.bi_buf|=D<<_.bi_valid&65535,put_short(_,_.bi_buf),_.bi_buf=D>>Buf_size-_.bi_valid,_.bi_valid+=$-Buf_size):(_.bi_buf|=D<<_.bi_valid&65535,_.bi_valid+=$)},send_code=(_,D,$)=>{send_bits(_,$[D*2],$[D*2+1])},bi_reverse=(_,D)=>{let $=0;do $|=_&1,_>>>=1,$<<=1;while(--D>0);return $>>>1},bi_flush=_=>{_.bi_valid===16?(put_short(_,_.bi_buf),_.bi_buf=0,_.bi_valid=0):_.bi_valid>=8&&(_.pending_buf[_.pending++]=_.bi_buf&255,_.bi_buf>>=8,_.bi_valid-=8)},gen_bitlen=(_,D)=>{const $=D.dyn_tree,M=D.max_code,R=D.stat_desc.static_tree,N=D.stat_desc.has_stree,e=D.stat_desc.extra_bits,o=D.stat_desc.extra_base,A=D.stat_desc.max_length;let U,L,F,Z,H,z,V=0;for(Z=0;Z<=MAX_BITS$1;Z++)_.bl_count[Z]=0;for($[_.heap[_.heap_max]*2+1]=0,U=_.heap_max+1;U<HEAP_SIZE$1;U++)L=_.heap[U],Z=$[$[L*2+1]*2+1]+1,Z>A&&(Z=A,V++),$[L*2+1]=Z,!(L>M)&&(_.bl_count[Z]++,H=0,L>=o&&(H=e[L-o]),z=$[L*2],_.opt_len+=z*(Z+H),N&&(_.static_len+=z*(R[L*2+1]+H)));if(V!==0){do{for(Z=A-1;_.bl_count[Z]===0;)Z--;_.bl_count[Z]--,_.bl_count[Z+1]+=2,_.bl_count[A]--,V-=2}while(V>0);for(Z=A;Z!==0;Z--)for(L=_.bl_count[Z];L!==0;)F=_.heap[--U],!(F>M)&&($[F*2+1]!==Z&&(_.opt_len+=(Z-$[F*2+1])*$[F*2],$[F*2+1]=Z),L--)}},gen_codes=(_,D,$)=>{const M=new Array(MAX_BITS$1+1);let R=0,N,e;for(N=1;N<=MAX_BITS$1;N++)R=R+$[N-1]<<1,M[N]=R;for(e=0;e<=D;e++){let o=_[e*2+1];o!==0&&(_[e*2]=bi_reverse(M[o]++,o))}},tr_static_init=()=>{let _,D,$,M,R;const N=new Array(MAX_BITS$1+1);for($=0,M=0;M<LENGTH_CODES$1-1;M++)for(base_length[M]=$,_=0;_<1<<extra_lbits[M];_++)_length_code[$++]=M;for(_length_code[$-1]=M,R=0,M=0;M<16;M++)for(base_dist[M]=R,_=0;_<1<<extra_dbits[M];_++)_dist_code[R++]=M;for(R>>=7;M<D_CODES$1;M++)for(base_dist[M]=R<<7,_=0;_<1<<extra_dbits[M]-7;_++)_dist_code[256+R++]=M;for(D=0;D<=MAX_BITS$1;D++)N[D]=0;for(_=0;_<=143;)static_ltree[_*2+1]=8,_++,N[8]++;for(;_<=255;)static_ltree[_*2+1]=9,_++,N[9]++;for(;_<=279;)static_ltree[_*2+1]=7,_++,N[7]++;for(;_<=287;)static_ltree[_*2+1]=8,_++,N[8]++;for(gen_codes(static_ltree,L_CODES$1+1,N),_=0;_<D_CODES$1;_++)static_dtree[_*2+1]=5,static_dtree[_*2]=bi_reverse(_,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS$1+1,L_CODES$1,MAX_BITS$1),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES$1,MAX_BITS$1),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES$1,MAX_BL_BITS)},init_block=_=>{let D;for(D=0;D<L_CODES$1;D++)_.dyn_ltree[D*2]=0;for(D=0;D<D_CODES$1;D++)_.dyn_dtree[D*2]=0;for(D=0;D<BL_CODES$1;D++)_.bl_tree[D*2]=0;_.dyn_ltree[END_BLOCK*2]=1,_.opt_len=_.static_len=0,_.sym_next=_.matches=0},bi_windup=_=>{_.bi_valid>8?put_short(_,_.bi_buf):_.bi_valid>0&&(_.pending_buf[_.pending++]=_.bi_buf),_.bi_buf=0,_.bi_valid=0},smaller=(_,D,$,M)=>{const R=D*2,N=$*2;return _[R]<_[N]||_[R]===_[N]&&M[D]<=M[$]},pqdownheap=(_,D,$)=>{const M=_.heap[$];let R=$<<1;for(;R<=_.heap_len&&(R<_.heap_len&&smaller(D,_.heap[R+1],_.heap[R],_.depth)&&R++,!smaller(D,M,_.heap[R],_.depth));)_.heap[$]=_.heap[R],$=R,R<<=1;_.heap[$]=M},compress_block=(_,D,$)=>{let M,R,N=0,e,o;if(_.sym_next!==0)do M=_.pending_buf[_.sym_buf+N++]&255,M+=(_.pending_buf[_.sym_buf+N++]&255)<<8,R=_.pending_buf[_.sym_buf+N++],M===0?send_code(_,R,D):(e=_length_code[R],send_code(_,e+LITERALS$1+1,D),o=extra_lbits[e],o!==0&&(R-=base_length[e],send_bits(_,R,o)),M--,e=d_code(M),send_code(_,e,$),o=extra_dbits[e],o!==0&&(M-=base_dist[e],send_bits(_,M,o)));while(N<_.sym_next);send_code(_,END_BLOCK,D)},build_tree=(_,D)=>{const $=D.dyn_tree,M=D.stat_desc.static_tree,R=D.stat_desc.has_stree,N=D.stat_desc.elems;let e,o,A=-1,U;for(_.heap_len=0,_.heap_max=HEAP_SIZE$1,e=0;e<N;e++)$[e*2]!==0?(_.heap[++_.heap_len]=A=e,_.depth[e]=0):$[e*2+1]=0;for(;_.heap_len<2;)U=_.heap[++_.heap_len]=A<2?++A:0,$[U*2]=1,_.depth[U]=0,_.opt_len--,R&&(_.static_len-=M[U*2+1]);for(D.max_code=A,e=_.heap_len>>1;e>=1;e--)pqdownheap(_,$,e);U=N;do e=_.heap[1],_.heap[1]=_.heap[_.heap_len--],pqdownheap(_,$,1),o=_.heap[1],_.heap[--_.heap_max]=e,_.heap[--_.heap_max]=o,$[U*2]=$[e*2]+$[o*2],_.depth[U]=(_.depth[e]>=_.depth[o]?_.depth[e]:_.depth[o])+1,$[e*2+1]=$[o*2+1]=U,_.heap[1]=U++,pqdownheap(_,$,1);while(_.heap_len>=2);_.heap[--_.heap_max]=_.heap[1],gen_bitlen(_,D),gen_codes($,A,_.bl_count)},scan_tree=(_,D,$)=>{let M,R=-1,N,e=D[0*2+1],o=0,A=7,U=4;for(e===0&&(A=138,U=3),D[($+1)*2+1]=65535,M=0;M<=$;M++)N=e,e=D[(M+1)*2+1],!(++o<A&&N===e)&&(o<U?_.bl_tree[N*2]+=o:N!==0?(N!==R&&_.bl_tree[N*2]++,_.bl_tree[REP_3_6*2]++):o<=10?_.bl_tree[REPZ_3_10*2]++:_.bl_tree[REPZ_11_138*2]++,o=0,R=N,e===0?(A=138,U=3):N===e?(A=6,U=3):(A=7,U=4))},send_tree=(_,D,$)=>{let M,R=-1,N,e=D[0*2+1],o=0,A=7,U=4;for(e===0&&(A=138,U=3),M=0;M<=$;M++)if(N=e,e=D[(M+1)*2+1],!(++o<A&&N===e)){if(o<U)do send_code(_,N,_.bl_tree);while(--o!==0);else N!==0?(N!==R&&(send_code(_,N,_.bl_tree),o--),send_code(_,REP_3_6,_.bl_tree),send_bits(_,o-3,2)):o<=10?(send_code(_,REPZ_3_10,_.bl_tree),send_bits(_,o-3,3)):(send_code(_,REPZ_11_138,_.bl_tree),send_bits(_,o-11,7));o=0,R=N,e===0?(A=138,U=3):N===e?(A=6,U=3):(A=7,U=4)}},build_bl_tree=_=>{let D;for(scan_tree(_,_.dyn_ltree,_.l_desc.max_code),scan_tree(_,_.dyn_dtree,_.d_desc.max_code),build_tree(_,_.bl_desc),D=BL_CODES$1-1;D>=3&&_.bl_tree[bl_order[D]*2+1]===0;D--);return _.opt_len+=3*(D+1)+5+5+4,D},send_all_trees=(_,D,$,M)=>{let R;for(send_bits(_,D-257,5),send_bits(_,$-1,5),send_bits(_,M-4,4),R=0;R<M;R++)send_bits(_,_.bl_tree[bl_order[R]*2+1],3);send_tree(_,_.dyn_ltree,D-1),send_tree(_,_.dyn_dtree,$-1)},detect_data_type=_=>{let D=4093624447,$;for($=0;$<=31;$++,D>>>=1)if(D&1&&_.dyn_ltree[$*2]!==0)return Z_BINARY;if(_.dyn_ltree[9*2]!==0||_.dyn_ltree[10*2]!==0||_.dyn_ltree[13*2]!==0)return Z_TEXT;for($=32;$<LITERALS$1;$++)if(_.dyn_ltree[$*2]!==0)return Z_TEXT;return Z_BINARY};let static_init_done=!1;const _tr_init$1=_=>{static_init_done||(tr_static_init(),static_init_done=!0),_.l_desc=new TreeDesc(_.dyn_ltree,static_l_desc),_.d_desc=new TreeDesc(_.dyn_dtree,static_d_desc),_.bl_desc=new TreeDesc(_.bl_tree,static_bl_desc),_.bi_buf=0,_.bi_valid=0,init_block(_)},_tr_stored_block$1=(_,D,$,M)=>{send_bits(_,(STORED_BLOCK<<1)+(M?1:0),3),bi_windup(_),put_short(_,$),put_short(_,~$),$&&_.pending_buf.set(_.window.subarray(D,D+$),_.pending),_.pending+=$},_tr_align$1=_=>{send_bits(_,STATIC_TREES<<1,3),send_code(_,END_BLOCK,static_ltree),bi_flush(_)},_tr_flush_block$1=(_,D,$,M)=>{let R,N,e=0;_.level>0?(_.strm.data_type===Z_UNKNOWN$1&&(_.strm.data_type=detect_data_type(_)),build_tree(_,_.l_desc),build_tree(_,_.d_desc),e=build_bl_tree(_),R=_.opt_len+3+7>>>3,N=_.static_len+3+7>>>3,N<=R&&(R=N)):R=N=$+5,$+4<=R&&D!==-1?_tr_stored_block$1(_,D,$,M):_.strategy===Z_FIXED$1||N===R?(send_bits(_,(STATIC_TREES<<1)+(M?1:0),3),compress_block(_,static_ltree,static_dtree)):(send_bits(_,(DYN_TREES<<1)+(M?1:0),3),send_all_trees(_,_.l_desc.max_code+1,_.d_desc.max_code+1,e+1),compress_block(_,_.dyn_ltree,_.dyn_dtree)),init_block(_),M&&bi_windup(_)},_tr_tally$1=(_,D,$)=>(_.pending_buf[_.sym_buf+_.sym_next++]=D,_.pending_buf[_.sym_buf+_.sym_next++]=D>>8,_.pending_buf[_.sym_buf+_.sym_next++]=$,D===0?_.dyn_ltree[$*2]++:(_.matches++,D--,_.dyn_ltree[(_length_code[$]+LITERALS$1+1)*2]++,_.dyn_dtree[d_code(D)*2]++),_.sym_next===_.sym_end);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(_,D,$,M)=>{let R=_&65535|0,N=_>>>16&65535|0,e=0;for(;$!==0;){e=$>2e3?2e3:$,$-=e;do R=R+D[M++]|0,N=N+R|0;while(--e);R%=65521,N%=65521}return R|N<<16|0};var adler32_1=adler32;const makeTable=()=>{let _,D=[];for(var $=0;$<256;$++){_=$;for(var M=0;M<8;M++)_=_&1?3988292384^_>>>1:_>>>1;D[$]=_}return D},crcTable=new Uint32Array(makeTable()),crc32=(_,D,$,M)=>{const R=crcTable,N=M+$;_^=-1;for(let e=M;e<N;e++)_=_>>>8^R[(_^D[e])&255];return _^-1};var crc32_1=crc32,messages={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"},constants$2={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_MEM_ERROR:-4,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};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,GZIP_STATE=57,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(_,D)=>(_.msg=messages[D],D),rank=_=>_*2-(_>4?9:0),zero=_=>{let D=_.length;for(;--D>=0;)_[D]=0},slide_hash=_=>{let D,$,M,R=_.w_size;D=_.hash_size,M=D;do $=_.head[--M],_.head[M]=$>=R?$-R:0;while(--D);D=R,M=D;do $=_.prev[--M],_.prev[M]=$>=R?$-R:0;while(--D)};let HASH_ZLIB=(_,D,$)=>(D<<_.hash_shift^$)&_.hash_mask,HASH=HASH_ZLIB;const flush_pending=_=>{const D=_.state;let $=D.pending;$>_.avail_out&&($=_.avail_out),$!==0&&(_.output.set(D.pending_buf.subarray(D.pending_out,D.pending_out+$),_.next_out),_.next_out+=$,D.pending_out+=$,_.total_out+=$,_.avail_out-=$,D.pending-=$,D.pending===0&&(D.pending_out=0))},flush_block_only=(_,D)=>{_tr_flush_block(_,_.block_start>=0?_.block_start:-1,_.strstart-_.block_start,D),_.block_start=_.strstart,flush_pending(_.strm)},put_byte=(_,D)=>{_.pending_buf[_.pending++]=D},putShortMSB=(_,D)=>{_.pending_buf[_.pending++]=D>>>8&255,_.pending_buf[_.pending++]=D&255},read_buf=(_,D,$,M)=>{let R=_.avail_in;return R>M&&(R=M),R===0?0:(_.avail_in-=R,D.set(_.input.subarray(_.next_in,_.next_in+R),$),_.state.wrap===1?_.adler=adler32_1(_.adler,D,R,$):_.state.wrap===2&&(_.adler=crc32_1(_.adler,D,R,$)),_.next_in+=R,_.total_in+=R,R)},longest_match=(_,D)=>{let $=_.max_chain_length,M=_.strstart,R,N,e=_.prev_length,o=_.nice_match;const A=_.strstart>_.w_size-MIN_LOOKAHEAD?_.strstart-(_.w_size-MIN_LOOKAHEAD):0,U=_.window,L=_.w_mask,F=_.prev,Z=_.strstart+MAX_MATCH;let H=U[M+e-1],z=U[M+e];_.prev_length>=_.good_match&&($>>=2),o>_.lookahead&&(o=_.lookahead);do if(R=D,!(U[R+e]!==z||U[R+e-1]!==H||U[R]!==U[M]||U[++R]!==U[M+1])){M+=2,R++;do;while(U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&M<Z);if(N=MAX_MATCH-(Z-M),M=Z-MAX_MATCH,N>e){if(_.match_start=D,e=N,N>=o)break;H=U[M+e-1],z=U[M+e]}}while((D=F[D&L])>A&&--$!==0);return e<=_.lookahead?e:_.lookahead},fill_window=_=>{const D=_.w_size;let $,M,R;do{if(M=_.window_size-_.lookahead-_.strstart,_.strstart>=D+(D-MIN_LOOKAHEAD)&&(_.window.set(_.window.subarray(D,D+D-M),0),_.match_start-=D,_.strstart-=D,_.block_start-=D,_.insert>_.strstart&&(_.insert=_.strstart),slide_hash(_),M+=D),_.strm.avail_in===0)break;if($=read_buf(_.strm,_.window,_.strstart+_.lookahead,M),_.lookahead+=$,_.lookahead+_.insert>=MIN_MATCH)for(R=_.strstart-_.insert,_.ins_h=_.window[R],_.ins_h=HASH(_,_.ins_h,_.window[R+1]);_.insert&&(_.ins_h=HASH(_,_.ins_h,_.window[R+MIN_MATCH-1]),_.prev[R&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=R,R++,_.insert--,!(_.lookahead+_.insert<MIN_MATCH)););}while(_.lookahead<MIN_LOOKAHEAD&&_.strm.avail_in!==0)},deflate_stored=(_,D)=>{let $=_.pending_buf_size-5>_.w_size?_.w_size:_.pending_buf_size-5,M,R,N,e=0,o=_.strm.avail_in;do{if(M=65535,N=_.bi_valid+42>>3,_.strm.avail_out<N||(N=_.strm.avail_out-N,R=_.strstart-_.block_start,M>R+_.strm.avail_in&&(M=R+_.strm.avail_in),M>N&&(M=N),M<$&&(M===0&&D!==Z_FINISH$3||D===Z_NO_FLUSH$2||M!==R+_.strm.avail_in)))break;e=D===Z_FINISH$3&&M===R+_.strm.avail_in?1:0,_tr_stored_block(_,0,0,e),_.pending_buf[_.pending-4]=M,_.pending_buf[_.pending-3]=M>>8,_.pending_buf[_.pending-2]=~M,_.pending_buf[_.pending-1]=~M>>8,flush_pending(_.strm),R&&(R>M&&(R=M),_.strm.output.set(_.window.subarray(_.block_start,_.block_start+R),_.strm.next_out),_.strm.next_out+=R,_.strm.avail_out-=R,_.strm.total_out+=R,_.block_start+=R,M-=R),M&&(read_buf(_.strm,_.strm.output,_.strm.next_out,M),_.strm.next_out+=M,_.strm.avail_out-=M,_.strm.total_out+=M)}while(e===0);return o-=_.strm.avail_in,o&&(o>=_.w_size?(_.matches=2,_.window.set(_.strm.input.subarray(_.strm.next_in-_.w_size,_.strm.next_in),0),_.strstart=_.w_size,_.insert=_.strstart):(_.window_size-_.strstart<=o&&(_.strstart-=_.w_size,_.window.set(_.window.subarray(_.w_size,_.w_size+_.strstart),0),_.matches<2&&_.matches++,_.insert>_.strstart&&(_.insert=_.strstart)),_.window.set(_.strm.input.subarray(_.strm.next_in-o,_.strm.next_in),_.strstart),_.strstart+=o,_.insert+=o>_.w_size-_.insert?_.w_size-_.insert:o),_.block_start=_.strstart),_.high_water<_.strstart&&(_.high_water=_.strstart),e?BS_FINISH_DONE:D!==Z_NO_FLUSH$2&&D!==Z_FINISH$3&&_.strm.avail_in===0&&_.strstart===_.block_start?BS_BLOCK_DONE:(N=_.window_size-_.strstart,_.strm.avail_in>N&&_.block_start>=_.w_size&&(_.block_start-=_.w_size,_.strstart-=_.w_size,_.window.set(_.window.subarray(_.w_size,_.w_size+_.strstart),0),_.matches<2&&_.matches++,N+=_.w_size,_.insert>_.strstart&&(_.insert=_.strstart)),N>_.strm.avail_in&&(N=_.strm.avail_in),N&&(read_buf(_.strm,_.window,_.strstart,N),_.strstart+=N,_.insert+=N>_.w_size-_.insert?_.w_size-_.insert:N),_.high_water<_.strstart&&(_.high_water=_.strstart),N=_.bi_valid+42>>3,N=_.pending_buf_size-N>65535?65535:_.pending_buf_size-N,$=N>_.w_size?_.w_size:N,R=_.strstart-_.block_start,(R>=$||(R||D===Z_FINISH$3)&&D!==Z_NO_FLUSH$2&&_.strm.avail_in===0&&R<=N)&&(M=R>N?N:R,e=D===Z_FINISH$3&&_.strm.avail_in===0&&M===R?1:0,_tr_stored_block(_,_.block_start,M,e),_.block_start+=M,flush_pending(_.strm)),e?BS_FINISH_STARTED:BS_NEED_MORE)},deflate_fast=(_,D)=>{let $,M;for(;;){if(_.lookahead<MIN_LOOKAHEAD){if(fill_window(_),_.lookahead<MIN_LOOKAHEAD&&D===Z_NO_FLUSH$2)return BS_NEED_MORE;if(_.lookahead===0)break}if($=0,_.lookahead>=MIN_MATCH&&(_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+MIN_MATCH-1]),$=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart),$!==0&&_.strstart-$<=_.w_size-MIN_LOOKAHEAD&&(_.match_length=longest_match(_,$)),_.match_length>=MIN_MATCH)if(M=_tr_tally(_,_.strstart-_.match_start,_.match_length-MIN_MATCH),_.lookahead-=_.match_length,_.match_length<=_.max_lazy_match&&_.lookahead>=MIN_MATCH){_.match_length--;do _.strstart++,_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+MIN_MATCH-1]),$=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart;while(--_.match_length!==0);_.strstart++}else _.strstart+=_.match_length,_.match_length=0,_.ins_h=_.window[_.strstart],_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+1]);else M=_tr_tally(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++;if(M&&(flush_block_only(_,!1),_.strm.avail_out===0))return BS_NEED_MORE}return _.insert=_.strstart<MIN_MATCH-1?_.strstart:MIN_MATCH-1,D===Z_FINISH$3?(flush_block_only(_,!0),_.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):_.sym_next&&(flush_block_only(_,!1),_.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_slow=(_,D)=>{let $,M,R;for(;;){if(_.lookahead<MIN_LOOKAHEAD){if(fill_window(_),_.lookahead<MIN_LOOKAHEAD&&D===Z_NO_FLUSH$2)return BS_NEED_MORE;if(_.lookahead===0)break}if($=0,_.lookahead>=MIN_MATCH&&(_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+MIN_MATCH-1]),$=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart),_.prev_length=_.match_length,_.prev_match=_.match_start,_.match_length=MIN_MATCH-1,$!==0&&_.prev_length<_.max_lazy_match&&_.strstart-$<=_.w_size-MIN_LOOKAHEAD&&(_.match_length=longest_match(_,$),_.match_length<=5&&(_.strategy===Z_FILTERED||_.match_length===MIN_MATCH&&_.strstart-_.match_start>4096)&&(_.match_length=MIN_MATCH-1)),_.prev_length>=MIN_MATCH&&_.match_length<=_.prev_length){R=_.strstart+_.lookahead-MIN_MATCH,M=_tr_tally(_,_.strstart-1-_.prev_match,_.prev_length-MIN_MATCH),_.lookahead-=_.prev_length-1,_.prev_length-=2;do++_.strstart<=R&&(_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+MIN_MATCH-1]),$=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart);while(--_.prev_length!==0);if(_.match_available=0,_.match_length=MIN_MATCH-1,_.strstart++,M&&(flush_block_only(_,!1),_.strm.avail_out===0))return BS_NEED_MORE}else if(_.match_available){if(M=_tr_tally(_,0,_.window[_.strstart-1]),M&&flush_block_only(_,!1),_.strstart++,_.lookahead--,_.strm.avail_out===0)return BS_NEED_MORE}else _.match_available=1,_.strstart++,_.lookahead--}return _.match_available&&(M=_tr_tally(_,0,_.window[_.strstart-1]),_.match_available=0),_.insert=_.strstart<MIN_MATCH-1?_.strstart:MIN_MATCH-1,D===Z_FINISH$3?(flush_block_only(_,!0),_.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):_.sym_next&&(flush_block_only(_,!1),_.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_rle=(_,D)=>{let $,M,R,N;const e=_.window;for(;;){if(_.lookahead<=MAX_MATCH){if(fill_window(_),_.lookahead<=MAX_MATCH&&D===Z_NO_FLUSH$2)return BS_NEED_MORE;if(_.lookahead===0)break}if(_.match_length=0,_.lookahead>=MIN_MATCH&&_.strstart>0&&(R=_.strstart-1,M=e[R],M===e[++R]&&M===e[++R]&&M===e[++R])){N=_.strstart+MAX_MATCH;do;while(M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&R<N);_.match_length=MAX_MATCH-(N-R),_.match_length>_.lookahead&&(_.match_length=_.lookahead)}if(_.match_length>=MIN_MATCH?($=_tr_tally(_,1,_.match_length-MIN_MATCH),_.lookahead-=_.match_length,_.strstart+=_.match_length,_.match_length=0):($=_tr_tally(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++),$&&(flush_block_only(_,!1),_.strm.avail_out===0))return BS_NEED_MORE}return _.insert=0,D===Z_FINISH$3?(flush_block_only(_,!0),_.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):_.sym_next&&(flush_block_only(_,!1),_.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(_,D)=>{let $;for(;;){if(_.lookahead===0&&(fill_window(_),_.lookahead===0)){if(D===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(_.match_length=0,$=_tr_tally(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++,$&&(flush_block_only(_,!1),_.strm.avail_out===0))return BS_NEED_MORE}return _.insert=0,D===Z_FINISH$3?(flush_block_only(_,!0),_.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):_.sym_next&&(flush_block_only(_,!1),_.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(_,D,$,M,R){this.good_length=_,this.max_lazy=D,this.nice_length=$,this.max_chain=M,this.func=R}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=_=>{_.window_size=2*_.w_size,zero(_.head),_.max_lazy_match=configuration_table[_.level].max_lazy,_.good_match=configuration_table[_.level].good_length,_.nice_match=configuration_table[_.level].nice_length,_.max_chain_length=configuration_table[_.level].max_chain,_.strstart=0,_.block_start=0,_.lookahead=0,_.insert=0,_.match_length=_.prev_length=MIN_MATCH-1,_.match_available=0,_.ins_h=0};function DeflateState(){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=Z_DEFLATED$2,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 Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateStateCheck=_=>{if(!_)return 1;const D=_.state;return!D||D.strm!==_||D.status!==INIT_STATE&&D.status!==GZIP_STATE&&D.status!==EXTRA_STATE&&D.status!==NAME_STATE&&D.status!==COMMENT_STATE&&D.status!==HCRC_STATE&&D.status!==BUSY_STATE&&D.status!==FINISH_STATE?1:0},deflateResetKeep=_=>{if(deflateStateCheck(_))return err(_,Z_STREAM_ERROR$2);_.total_in=_.total_out=0,_.data_type=Z_UNKNOWN;const D=_.state;return D.pending=0,D.pending_out=0,D.wrap<0&&(D.wrap=-D.wrap),D.status=D.wrap===2?GZIP_STATE:D.wrap?INIT_STATE:BUSY_STATE,_.adler=D.wrap===2?0:1,D.last_flush=-2,_tr_init(D),Z_OK$3},deflateReset=_=>{const D=deflateResetKeep(_);return D===Z_OK$3&&lm_init(_.state),D},deflateSetHeader=(_,D)=>deflateStateCheck(_)||_.state.wrap!==2?Z_STREAM_ERROR$2:(_.state.gzhead=D,Z_OK$3),deflateInit2=(_,D,$,M,R,N)=>{if(!_)return Z_STREAM_ERROR$2;let e=1;if(D===Z_DEFAULT_COMPRESSION$1&&(D=6),M<0?(e=0,M=-M):M>15&&(e=2,M-=16),R<1||R>MAX_MEM_LEVEL||$!==Z_DEFLATED$2||M<8||M>15||D<0||D>9||N<0||N>Z_FIXED||M===8&&e!==1)return err(_,Z_STREAM_ERROR$2);M===8&&(M=9);const o=new DeflateState;return _.state=o,o.strm=_,o.status=INIT_STATE,o.wrap=e,o.gzhead=null,o.w_bits=M,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=R+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+MIN_MATCH-1)/MIN_MATCH),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<R+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=D,o.strategy=N,o.method=$,deflateReset(_)},deflateInit=(_,D)=>deflateInit2(_,D,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(_,D)=>{if(deflateStateCheck(_)||D>Z_BLOCK$1||D<0)return _?err(_,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const $=_.state;if(!_.output||_.avail_in!==0&&!_.input||$.status===FINISH_STATE&&D!==Z_FINISH$3)return err(_,_.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);const M=$.last_flush;if($.last_flush=D,$.pending!==0){if(flush_pending(_),_.avail_out===0)return $.last_flush=-1,Z_OK$3}else if(_.avail_in===0&&rank(D)<=rank(M)&&D!==Z_FINISH$3)return err(_,Z_BUF_ERROR$1);if($.status===FINISH_STATE&&_.avail_in!==0)return err(_,Z_BUF_ERROR$1);if($.status===INIT_STATE&&$.wrap===0&&($.status=BUSY_STATE),$.status===INIT_STATE){let R=Z_DEFLATED$2+($.w_bits-8<<4)<<8,N=-1;if($.strategy>=Z_HUFFMAN_ONLY||$.level<2?N=0:$.level<6?N=1:$.level===6?N=2:N=3,R|=N<<6,$.strstart!==0&&(R|=PRESET_DICT),R+=31-R%31,putShortMSB($,R),$.strstart!==0&&(putShortMSB($,_.adler>>>16),putShortMSB($,_.adler&65535)),_.adler=1,$.status=BUSY_STATE,flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3}if($.status===GZIP_STATE){if(_.adler=0,put_byte($,31),put_byte($,139),put_byte($,8),$.gzhead)put_byte($,($.gzhead.text?1:0)+($.gzhead.hcrc?2:0)+($.gzhead.extra?4:0)+($.gzhead.name?8:0)+($.gzhead.comment?16:0)),put_byte($,$.gzhead.time&255),put_byte($,$.gzhead.time>>8&255),put_byte($,$.gzhead.time>>16&255),put_byte($,$.gzhead.time>>24&255),put_byte($,$.level===9?2:$.strategy>=Z_HUFFMAN_ONLY||$.level<2?4:0),put_byte($,$.gzhead.os&255),$.gzhead.extra&&$.gzhead.extra.length&&(put_byte($,$.gzhead.extra.length&255),put_byte($,$.gzhead.extra.length>>8&255)),$.gzhead.hcrc&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending,0)),$.gzindex=0,$.status=EXTRA_STATE;else if(put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,$.level===9?2:$.strategy>=Z_HUFFMAN_ONLY||$.level<2?4:0),put_byte($,OS_CODE),$.status=BUSY_STATE,flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3}if($.status===EXTRA_STATE){if($.gzhead.extra){let R=$.pending,N=($.gzhead.extra.length&65535)-$.gzindex;for(;$.pending+N>$.pending_buf_size;){let o=$.pending_buf_size-$.pending;if($.pending_buf.set($.gzhead.extra.subarray($.gzindex,$.gzindex+o),$.pending),$.pending=$.pending_buf_size,$.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),$.gzindex+=o,flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3;R=0,N-=o}let e=new Uint8Array($.gzhead.extra);$.pending_buf.set(e.subarray($.gzindex,$.gzindex+N),$.pending),$.pending+=N,$.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),$.gzindex=0}$.status=NAME_STATE}if($.status===NAME_STATE){if($.gzhead.name){let R=$.pending,N;do{if($.pending===$.pending_buf_size){if($.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3;R=0}$.gzindex<$.gzhead.name.length?N=$.gzhead.name.charCodeAt($.gzindex++)&255:N=0,put_byte($,N)}while(N!==0);$.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),$.gzindex=0}$.status=COMMENT_STATE}if($.status===COMMENT_STATE){if($.gzhead.comment){let R=$.pending,N;do{if($.pending===$.pending_buf_size){if($.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3;R=0}$.gzindex<$.gzhead.comment.length?N=$.gzhead.comment.charCodeAt($.gzindex++)&255:N=0,put_byte($,N)}while(N!==0);$.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R))}$.status=HCRC_STATE}if($.status===HCRC_STATE){if($.gzhead.hcrc){if($.pending+2>$.pending_buf_size&&(flush_pending(_),$.pending!==0))return $.last_flush=-1,Z_OK$3;put_byte($,_.adler&255),put_byte($,_.adler>>8&255),_.adler=0}if($.status=BUSY_STATE,flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3}if(_.avail_in!==0||$.lookahead!==0||D!==Z_NO_FLUSH$2&&$.status!==FINISH_STATE){let R=$.level===0?deflate_stored($,D):$.strategy===Z_HUFFMAN_ONLY?deflate_huff($,D):$.strategy===Z_RLE?deflate_rle($,D):configuration_table[$.level].func($,D);if((R===BS_FINISH_STARTED||R===BS_FINISH_DONE)&&($.status=FINISH_STATE),R===BS_NEED_MORE||R===BS_FINISH_STARTED)return _.avail_out===0&&($.last_flush=-1),Z_OK$3;if(R===BS_BLOCK_DONE&&(D===Z_PARTIAL_FLUSH?_tr_align($):D!==Z_BLOCK$1&&(_tr_stored_block($,0,0,!1),D===Z_FULL_FLUSH$1&&(zero($.head),$.lookahead===0&&($.strstart=0,$.block_start=0,$.insert=0))),flush_pending(_),_.avail_out===0))return $.last_flush=-1,Z_OK$3}return D!==Z_FINISH$3?Z_OK$3:$.wrap<=0?Z_STREAM_END$3:($.wrap===2?(put_byte($,_.adler&255),put_byte($,_.adler>>8&255),put_byte($,_.adler>>16&255),put_byte($,_.adler>>24&255),put_byte($,_.total_in&255),put_byte($,_.total_in>>8&255),put_byte($,_.total_in>>16&255),put_byte($,_.total_in>>24&255)):(putShortMSB($,_.adler>>>16),putShortMSB($,_.adler&65535)),flush_pending(_),$.wrap>0&&($.wrap=-$.wrap),$.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=_=>{if(deflateStateCheck(_))return Z_STREAM_ERROR$2;const D=_.state.status;return _.state=null,D===BUSY_STATE?err(_,Z_DATA_ERROR$2):Z_OK$3},deflateSetDictionary=(_,D)=>{let $=D.length;if(deflateStateCheck(_))return Z_STREAM_ERROR$2;const M=_.state,R=M.wrap;if(R===2||R===1&&M.status!==INIT_STATE||M.lookahead)return Z_STREAM_ERROR$2;if(R===1&&(_.adler=adler32_1(_.adler,D,$,0)),M.wrap=0,$>=M.w_size){R===0&&(zero(M.head),M.strstart=0,M.block_start=0,M.insert=0);let A=new Uint8Array(M.w_size);A.set(D.subarray($-M.w_size,$),0),D=A,$=M.w_size}const N=_.avail_in,e=_.next_in,o=_.input;for(_.avail_in=$,_.next_in=0,_.input=D,fill_window(M);M.lookahead>=MIN_MATCH;){let A=M.strstart,U=M.lookahead-(MIN_MATCH-1);do M.ins_h=HASH(M,M.ins_h,M.window[A+MIN_MATCH-1]),M.prev[A&M.w_mask]=M.head[M.ins_h],M.head[M.ins_h]=A,A++;while(--U);M.strstart=A,M.lookahead=MIN_MATCH-1,fill_window(M)}return M.strstart+=M.lookahead,M.block_start=M.strstart,M.insert=M.lookahead,M.lookahead=0,M.match_length=M.prev_length=MIN_MATCH-1,M.match_available=0,_.next_in=e,_.input=o,_.avail_in=N,M.wrap=R,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(_,D)=>Object.prototype.hasOwnProperty.call(_,D);var assign=function(_){const D=Array.prototype.slice.call(arguments,1);for(;D.length;){const $=D.shift();if($){if(typeof $!="object")throw new TypeError($+"must be non-object");for(const M in $)_has($,M)&&(_[M]=$[M])}}return _},flattenChunks=_=>{let D=0;for(let M=0,R=_.length;M<R;M++)D+=_[M].length;const $=new Uint8Array(D);for(let M=0,R=0,N=_.length;M<N;M++){let e=_[M];$.set(e,R),R+=e.length}return $},common={assign,flattenChunks};let STR_APPLY_UIA_OK=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(_){STR_APPLY_UIA_OK=!1}const _utf8len=new Uint8Array(256);for(let _=0;_<256;_++)_utf8len[_]=_>=252?6:_>=248?5:_>=240?4:_>=224?3:_>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=_=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(_);let D,$,M,R,N,e=_.length,o=0;for(R=0;R<e;R++)$=_.charCodeAt(R),($&64512)===55296&&R+1<e&&(M=_.charCodeAt(R+1),(M&64512)===56320&&($=65536+($-55296<<10)+(M-56320),R++)),o+=$<128?1:$<2048?2:$<65536?3:4;for(D=new Uint8Array(o),N=0,R=0;N<o;R++)$=_.charCodeAt(R),($&64512)===55296&&R+1<e&&(M=_.charCodeAt(R+1),(M&64512)===56320&&($=65536+($-55296<<10)+(M-56320),R++)),$<128?D[N++]=$:$<2048?(D[N++]=192|$>>>6,D[N++]=128|$&63):$<65536?(D[N++]=224|$>>>12,D[N++]=128|$>>>6&63,D[N++]=128|$&63):(D[N++]=240|$>>>18,D[N++]=128|$>>>12&63,D[N++]=128|$>>>6&63,D[N++]=128|$&63);return D};const buf2binstring=(_,D)=>{if(D<65534&&_.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,_.length===D?_:_.subarray(0,D));let $="";for(let M=0;M<D;M++)$+=String.fromCharCode(_[M]);return $};var buf2string=(_,D)=>{const $=D||_.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(_.subarray(0,D));let M,R;const N=new Array($*2);for(R=0,M=0;M<$;){let e=_[M++];if(e<128){N[R++]=e;continue}let o=_utf8len[e];if(o>4){N[R++]=65533,M+=o-1;continue}for(e&=o===2?31:o===3?15:7;o>1&&M<$;)e=e<<6|_[M++]&63,o--;if(o>1){N[R++]=65533;continue}e<65536?N[R++]=e:(e-=65536,N[R++]=55296|e>>10&1023,N[R++]=56320|e&1023)}return buf2binstring(N,R)},utf8border=(_,D)=>{D=D||_.length,D>_.length&&(D=_.length);let $=D-1;for(;$>=0&&(_[$]&192)===128;)$--;return $<0||$===0?D:$+_utf8len[_[$]]>D?$:D},strings={string2buf,buf2string,utf8border};function ZStream(){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}var zstream=ZStream;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2;function Deflate$1(_){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},_||{});let D=this.options;D.raw&&D.windowBits>0?D.windowBits=-D.windowBits:D.gzip&&D.windowBits>0&&D.windowBits<16&&(D.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let $=deflate_1$2.deflateInit2(this.strm,D.level,D.method,D.windowBits,D.memLevel,D.strategy);if($!==Z_OK$2)throw new Error(messages[$]);if(D.header&&deflate_1$2.deflateSetHeader(this.strm,D.header),D.dictionary){let M;if(typeof D.dictionary=="string"?M=strings.string2buf(D.dictionary):toString$1.call(D.dictionary)==="[object ArrayBuffer]"?M=new Uint8Array(D.dictionary):M=D.dictionary,$=deflate_1$2.deflateSetDictionary(this.strm,M),$!==Z_OK$2)throw new Error(messages[$]);this._dict_set=!0}}Deflate$1.prototype.push=function(_,D){const $=this.strm,M=this.options.chunkSize;let R,N;if(this.ended)return!1;for(D===~~D?N=D:N=D===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof _=="string"?$.input=strings.string2buf(_):toString$1.call(_)==="[object ArrayBuffer]"?$.input=new Uint8Array(_):$.input=_,$.next_in=0,$.avail_in=$.input.length;;){if($.avail_out===0&&($.output=new Uint8Array(M),$.next_out=0,$.avail_out=M),(N===Z_SYNC_FLUSH||N===Z_FULL_FLUSH)&&$.avail_out<=6){this.onData($.output.subarray(0,$.next_out)),$.avail_out=0;continue}if(R=deflate_1$2.deflate($,N),R===Z_STREAM_END$2)return $.next_out>0&&this.onData($.output.subarray(0,$.next_out)),R=deflate_1$2.deflateEnd(this.strm),this.onEnd(R),this.ended=!0,R===Z_OK$2;if($.avail_out===0){this.onData($.output);continue}if(N>0&&$.next_out>0){this.onData($.output.subarray(0,$.next_out)),$.avail_out=0;continue}if($.avail_in===0)break}return!0},Deflate$1.prototype.onData=function(_){this.chunks.push(_)},Deflate$1.prototype.onEnd=function(_){_===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=_,this.msg=this.strm.msg};function deflate$1(_,D){const $=new Deflate$1(D);if($.push(_,!0),$.err)throw $.msg||messages[$.err];return $.result}function deflateRaw$1(_,D){return D=D||{},D.raw=!0,deflate$1(_,D)}function gzip$1(_,D){return D=D||{},D.gzip=!0,deflate$1(_,D)}var Deflate_1$1=Deflate$1,deflate_2=deflate$1,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,deflate_1$1={Deflate:Deflate_1$1,deflate:deflate_2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1};const BAD$1=16209,TYPE$1=16191;var inffast=function _(D,$){let M,R,N,e,o,A,U,L,F,Z,H,z,V,W,J,Y,tt,X,nt,dt,et,ft,at,rt;const st=D.state;M=D.next_in,at=D.input,R=M+(D.avail_in-5),N=D.next_out,rt=D.output,e=N-($-D.avail_out),o=N+(D.avail_out-257),A=st.dmax,U=st.wsize,L=st.whave,F=st.wnext,Z=st.window,H=st.hold,z=st.bits,V=st.lencode,W=st.distcode,J=(1<<st.lenbits)-1,Y=(1<<st.distbits)-1;t:do{z<15&&(H+=at[M++]<<z,z+=8,H+=at[M++]<<z,z+=8),tt=V[H&J];e:for(;;){if(X=tt>>>24,H>>>=X,z-=X,X=tt>>>16&255,X===0)rt[N++]=tt&65535;else if(X&16){nt=tt&65535,X&=15,X&&(z<X&&(H+=at[M++]<<z,z+=8),nt+=H&(1<<X)-1,H>>>=X,z-=X),z<15&&(H+=at[M++]<<z,z+=8,H+=at[M++]<<z,z+=8),tt=W[H&Y];i:for(;;){if(X=tt>>>24,H>>>=X,z-=X,X=tt>>>16&255,X&16){if(dt=tt&65535,X&=15,z<X&&(H+=at[M++]<<z,z+=8,z<X&&(H+=at[M++]<<z,z+=8)),dt+=H&(1<<X)-1,dt>A){D.msg="invalid distance too far back",st.mode=BAD$1;break t}if(H>>>=X,z-=X,X=N-e,dt>X){if(X=dt-X,X>L&&st.sane){D.msg="invalid distance too far back",st.mode=BAD$1;break t}if(et=0,ft=Z,F===0){if(et+=U-X,X<nt){nt-=X;do rt[N++]=Z[et++];while(--X);et=N-dt,ft=rt}}else if(F<X){if(et+=U+F-X,X-=F,X<nt){nt-=X;do rt[N++]=Z[et++];while(--X);if(et=0,F<nt){X=F,nt-=X;do rt[N++]=Z[et++];while(--X);et=N-dt,ft=rt}}}else if(et+=F-X,X<nt){nt-=X;do rt[N++]=Z[et++];while(--X);et=N-dt,ft=rt}for(;nt>2;)rt[N++]=ft[et++],rt[N++]=ft[et++],rt[N++]=ft[et++],nt-=3;nt&&(rt[N++]=ft[et++],nt>1&&(rt[N++]=ft[et++]))}else{et=N-dt;do rt[N++]=rt[et++],rt[N++]=rt[et++],rt[N++]=rt[et++],nt-=3;while(nt>2);nt&&(rt[N++]=rt[et++],nt>1&&(rt[N++]=rt[et++]))}}else if((X&64)===0){tt=W[(tt&65535)+(H&(1<<X)-1)];continue i}else{D.msg="invalid distance code",st.mode=BAD$1;break t}break}}else if((X&64)===0){tt=V[(tt&65535)+(H&(1<<X)-1)];continue e}else if(X&32){st.mode=TYPE$1;break t}else{D.msg="invalid literal/length code",st.mode=BAD$1;break t}break}}while(M<R&&N<o);nt=z>>3,M-=nt,z-=nt<<3,H&=(1<<z)-1,D.next_in=M,D.next_out=N,D.avail_in=M<R?5+(R-M):5-(M-R),D.avail_out=N<o?257+(o-N):257-(N-o),st.hold=H,st.bits=z};const MAXBITS=15,ENOUGH_LENS$1=852,ENOUGH_DISTS$1=592,CODES$1=0,LENS$1=1,DISTS$1=2,lbase=new Uint16Array([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]),lext=new Uint8Array([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]),dbase=new Uint16Array([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]),dext=new Uint8Array([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]),inflate_table=(_,D,$,M,R,N,e,o)=>{const A=o.bits;let U=0,L=0,F=0,Z=0,H=0,z=0,V=0,W=0,J=0,Y=0,tt,X,nt,dt,et,ft=null,at;const rt=new Uint16Array(MAXBITS+1),st=new Uint16Array(MAXBITS+1);let Tt=null,Gt,Kt,Wt;for(U=0;U<=MAXBITS;U++)rt[U]=0;for(L=0;L<M;L++)rt[D[$+L]]++;for(H=A,Z=MAXBITS;Z>=1&&rt[Z]===0;Z--);if(H>Z&&(H=Z),Z===0)return R[N++]=1<<24|64<<16|0,R[N++]=1<<24|64<<16|0,o.bits=1,0;for(F=1;F<Z&&rt[F]===0;F++);for(H<F&&(H=F),W=1,U=1;U<=MAXBITS;U++)if(W<<=1,W-=rt[U],W<0)return-1;if(W>0&&(_===CODES$1||Z!==1))return-1;for(st[1]=0,U=1;U<MAXBITS;U++)st[U+1]=st[U]+rt[U];for(L=0;L<M;L++)D[$+L]!==0&&(e[st[D[$+L]]++]=L);if(_===CODES$1?(ft=Tt=e,at=20):_===LENS$1?(ft=lbase,Tt=lext,at=257):(ft=dbase,Tt=dext,at=0),Y=0,L=0,U=F,et=N,z=H,V=0,nt=-1,J=1<<H,dt=J-1,_===LENS$1&&J>ENOUGH_LENS$1||_===DISTS$1&&J>ENOUGH_DISTS$1)return 1;for(;;){Gt=U-V,e[L]+1<at?(Kt=0,Wt=e[L]):e[L]>=at?(Kt=Tt[e[L]-at],Wt=ft[e[L]-at]):(Kt=96,Wt=0),tt=1<<U-V,X=1<<z,F=X;do X-=tt,R[et+(Y>>V)+X]=Gt<<24|Kt<<16|Wt|0;while(X!==0);for(tt=1<<U-1;Y&tt;)tt>>=1;if(tt!==0?(Y&=tt-1,Y+=tt):Y=0,L++,--rt[U]===0){if(U===Z)break;U=D[$+e[L]]}if(U>H&&(Y&dt)!==nt){for(V===0&&(V=H),et+=F,z=U-V,W=1<<z;z+V<Z&&(W-=rt[z+V],!(W<=0));)z++,W<<=1;if(J+=1<<z,_===LENS$1&&J>ENOUGH_LENS$1||_===DISTS$1&&J>ENOUGH_DISTS$1)return 1;nt=Y&dt,R[nt]=H<<24|z<<16|et-N|0}}return Y!==0&&(R[et+Y]=U-V<<24|64<<16|0),o.bits=H,0};var inftrees=inflate_table;const CODES=0,LENS=1,DISTS=2,{Z_FINISH:Z_FINISH$1,Z_BLOCK,Z_TREES,Z_OK:Z_OK$1,Z_STREAM_END:Z_STREAM_END$1,Z_NEED_DICT:Z_NEED_DICT$1,Z_STREAM_ERROR:Z_STREAM_ERROR$1,Z_DATA_ERROR:Z_DATA_ERROR$1,Z_MEM_ERROR:Z_MEM_ERROR$1,Z_BUF_ERROR,Z_DEFLATED}=constants$2,HEAD=16180,FLAGS=16181,TIME=16182,OS=16183,EXLEN=16184,EXTRA=16185,NAME=16186,COMMENT=16187,HCRC=16188,DICTID=16189,DICT=16190,TYPE=16191,TYPEDO=16192,STORED=16193,COPY_=16194,COPY=16195,TABLE=16196,LENLENS=16197,CODELENS=16198,LEN_=16199,LEN=16200,LENEXT=16201,DIST=16202,DISTEXT=16203,MATCH=16204,LIT=16205,CHECK=16206,LENGTH=16207,DONE=16208,BAD=16209,MEM=16210,SYNC=16211,ENOUGH_LENS=852,ENOUGH_DISTS=592,MAX_WBITS=15,DEF_WBITS=MAX_WBITS,zswap32=_=>(_>>>24&255)+(_>>>8&65280)+((_&65280)<<8)+((_&255)<<24);function InflateState(){this.strm=null,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 Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const inflateStateCheck=_=>{if(!_)return 1;const D=_.state;return!D||D.strm!==_||D.mode<HEAD||D.mode>SYNC?1:0},inflateResetKeep=_=>{if(inflateStateCheck(_))return Z_STREAM_ERROR$1;const D=_.state;return _.total_in=_.total_out=D.total=0,_.msg="",D.wrap&&(_.adler=D.wrap&1),D.mode=HEAD,D.last=0,D.havedict=0,D.flags=-1,D.dmax=32768,D.head=null,D.hold=0,D.bits=0,D.lencode=D.lendyn=new Int32Array(ENOUGH_LENS),D.distcode=D.distdyn=new Int32Array(ENOUGH_DISTS),D.sane=1,D.back=-1,Z_OK$1},inflateReset=_=>{if(inflateStateCheck(_))return Z_STREAM_ERROR$1;const D=_.state;return D.wsize=0,D.whave=0,D.wnext=0,inflateResetKeep(_)},inflateReset2=(_,D)=>{let $;if(inflateStateCheck(_))return Z_STREAM_ERROR$1;const M=_.state;return D<0?($=0,D=-D):($=(D>>4)+5,D<48&&(D&=15)),D&&(D<8||D>15)?Z_STREAM_ERROR$1:(M.window!==null&&M.wbits!==D&&(M.window=null),M.wrap=$,M.wbits=D,inflateReset(_))},inflateInit2=(_,D)=>{if(!_)return Z_STREAM_ERROR$1;const $=new InflateState;_.state=$,$.strm=_,$.window=null,$.mode=HEAD;const M=inflateReset2(_,D);return M!==Z_OK$1&&(_.state=null),M},inflateInit=_=>inflateInit2(_,DEF_WBITS);let virgin=!0,lenfix,distfix;const fixedtables=_=>{if(virgin){lenfix=new Int32Array(512),distfix=new Int32Array(32);let D=0;for(;D<144;)_.lens[D++]=8;for(;D<256;)_.lens[D++]=9;for(;D<280;)_.lens[D++]=7;for(;D<288;)_.lens[D++]=8;for(inftrees(LENS,_.lens,0,288,lenfix,0,_.work,{bits:9}),D=0;D<32;)_.lens[D++]=5;inftrees(DISTS,_.lens,0,32,distfix,0,_.work,{bits:5}),virgin=!1}_.lencode=lenfix,_.lenbits=9,_.distcode=distfix,_.distbits=5},updatewindow=(_,D,$,M)=>{let R;const N=_.state;return N.window===null&&(N.wsize=1<<N.wbits,N.wnext=0,N.whave=0,N.window=new Uint8Array(N.wsize)),M>=N.wsize?(N.window.set(D.subarray($-N.wsize,$),0),N.wnext=0,N.whave=N.wsize):(R=N.wsize-N.wnext,R>M&&(R=M),N.window.set(D.subarray($-M,$-M+R),N.wnext),M-=R,M?(N.window.set(D.subarray($-M,$),0),N.wnext=M,N.whave=N.wsize):(N.wnext+=R,N.wnext===N.wsize&&(N.wnext=0),N.whave<N.wsize&&(N.whave+=R))),0},inflate$2=(_,D)=>{let $,M,R,N,e,o,A,U,L,F,Z,H,z,V,W=0,J,Y,tt,X,nt,dt,et,ft;const at=new Uint8Array(4);let rt,st;const Tt=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(inflateStateCheck(_)||!_.output||!_.input&&_.avail_in!==0)return Z_STREAM_ERROR$1;$=_.state,$.mode===TYPE&&($.mode=TYPEDO),e=_.next_out,R=_.output,A=_.avail_out,N=_.next_in,M=_.input,o=_.avail_in,U=$.hold,L=$.bits,F=o,Z=A,ft=Z_OK$1;t:for(;;)switch($.mode){case HEAD:if($.wrap===0){$.mode=TYPEDO;break}for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.wrap&2&&U===35615){$.wbits===0&&($.wbits=15),$.check=0,at[0]=U&255,at[1]=U>>>8&255,$.check=crc32_1($.check,at,2,0),U=0,L=0,$.mode=FLAGS;break}if($.head&&($.head.done=!1),!($.wrap&1)||(((U&255)<<8)+(U>>8))%31){_.msg="incorrect header check",$.mode=BAD;break}if((U&15)!==Z_DEFLATED){_.msg="unknown compression method",$.mode=BAD;break}if(U>>>=4,L-=4,et=(U&15)+8,$.wbits===0&&($.wbits=et),et>15||et>$.wbits){_.msg="invalid window size",$.mode=BAD;break}$.dmax=1<<$.wbits,$.flags=0,_.adler=$.check=1,$.mode=U&512?DICTID:TYPE,U=0,L=0;break;case FLAGS:for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.flags=U,($.flags&255)!==Z_DEFLATED){_.msg="unknown compression method",$.mode=BAD;break}if($.flags&57344){_.msg="unknown header flags set",$.mode=BAD;break}$.head&&($.head.text=U>>8&1),$.flags&512&&$.wrap&4&&(at[0]=U&255,at[1]=U>>>8&255,$.check=crc32_1($.check,at,2,0)),U=0,L=0,$.mode=TIME;case TIME:for(;L<32;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.head&&($.head.time=U),$.flags&512&&$.wrap&4&&(at[0]=U&255,at[1]=U>>>8&255,at[2]=U>>>16&255,at[3]=U>>>24&255,$.check=crc32_1($.check,at,4,0)),U=0,L=0,$.mode=OS;case OS:for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.head&&($.head.xflags=U&255,$.head.os=U>>8),$.flags&512&&$.wrap&4&&(at[0]=U&255,at[1]=U>>>8&255,$.check=crc32_1($.check,at,2,0)),U=0,L=0,$.mode=EXLEN;case EXLEN:if($.flags&1024){for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.length=U,$.head&&($.head.extra_len=U),$.flags&512&&$.wrap&4&&(at[0]=U&255,at[1]=U>>>8&255,$.check=crc32_1($.check,at,2,0)),U=0,L=0}else $.head&&($.head.extra=null);$.mode=EXTRA;case EXTRA:if($.flags&1024&&(H=$.length,H>o&&(H=o),H&&($.head&&(et=$.head.extra_len-$.length,$.head.extra||($.head.extra=new Uint8Array($.head.extra_len)),$.head.extra.set(M.subarray(N,N+H),et)),$.flags&512&&$.wrap&4&&($.check=crc32_1($.check,M,H,N)),o-=H,N+=H,$.length-=H),$.length))break t;$.length=0,$.mode=NAME;case NAME:if($.flags&2048){if(o===0)break t;H=0;do et=M[N+H++],$.head&&et&&$.length<65536&&($.head.name+=String.fromCharCode(et));while(et&&H<o);if($.flags&512&&$.wrap&4&&($.check=crc32_1($.check,M,H,N)),o-=H,N+=H,et)break t}else $.head&&($.head.name=null);$.length=0,$.mode=COMMENT;case COMMENT:if($.flags&4096){if(o===0)break t;H=0;do et=M[N+H++],$.head&&et&&$.length<65536&&($.head.comment+=String.fromCharCode(et));while(et&&H<o);if($.flags&512&&$.wrap&4&&($.check=crc32_1($.check,M,H,N)),o-=H,N+=H,et)break t}else $.head&&($.head.comment=null);$.mode=HCRC;case HCRC:if($.flags&512){for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.wrap&4&&U!==($.check&65535)){_.msg="header crc mismatch",$.mode=BAD;break}U=0,L=0}$.head&&($.head.hcrc=$.flags>>9&1,$.head.done=!0),_.adler=$.check=0,$.mode=TYPE;break;case DICTID:for(;L<32;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}_.adler=$.check=zswap32(U),U=0,L=0,$.mode=DICT;case DICT:if($.havedict===0)return _.next_out=e,_.avail_out=A,_.next_in=N,_.avail_in=o,$.hold=U,$.bits=L,Z_NEED_DICT$1;_.adler=$.check=1,$.mode=TYPE;case TYPE:if(D===Z_BLOCK||D===Z_TREES)break t;case TYPEDO:if($.last){U>>>=L&7,L-=L&7,$.mode=CHECK;break}for(;L<3;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}switch($.last=U&1,U>>>=1,L-=1,U&3){case 0:$.mode=STORED;break;case 1:if(fixedtables($),$.mode=LEN_,D===Z_TREES){U>>>=2,L-=2;break t}break;case 2:$.mode=TABLE;break;case 3:_.msg="invalid block type",$.mode=BAD}U>>>=2,L-=2;break;case STORED:for(U>>>=L&7,L-=L&7;L<32;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if((U&65535)!==(U>>>16^65535)){_.msg="invalid stored block lengths",$.mode=BAD;break}if($.length=U&65535,U=0,L=0,$.mode=COPY_,D===Z_TREES)break t;case COPY_:$.mode=COPY;case COPY:if(H=$.length,H){if(H>o&&(H=o),H>A&&(H=A),H===0)break t;R.set(M.subarray(N,N+H),e),o-=H,N+=H,A-=H,e+=H,$.length-=H;break}$.mode=TYPE;break;case TABLE:for(;L<14;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.nlen=(U&31)+257,U>>>=5,L-=5,$.ndist=(U&31)+1,U>>>=5,L-=5,$.ncode=(U&15)+4,U>>>=4,L-=4,$.nlen>286||$.ndist>30){_.msg="too many length or distance symbols",$.mode=BAD;break}$.have=0,$.mode=LENLENS;case LENLENS:for(;$.have<$.ncode;){for(;L<3;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.lens[Tt[$.have++]]=U&7,U>>>=3,L-=3}for(;$.have<19;)$.lens[Tt[$.have++]]=0;if($.lencode=$.lendyn,$.lenbits=7,rt={bits:$.lenbits},ft=inftrees(CODES,$.lens,0,19,$.lencode,0,$.work,rt),$.lenbits=rt.bits,ft){_.msg="invalid code lengths set",$.mode=BAD;break}$.have=0,$.mode=CODELENS;case CODELENS:for(;$.have<$.nlen+$.ndist;){for(;W=$.lencode[U&(1<<$.lenbits)-1],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if(tt<16)U>>>=J,L-=J,$.lens[$.have++]=tt;else{if(tt===16){for(st=J+2;L<st;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if(U>>>=J,L-=J,$.have===0){_.msg="invalid bit length repeat",$.mode=BAD;break}et=$.lens[$.have-1],H=3+(U&3),U>>>=2,L-=2}else if(tt===17){for(st=J+3;L<st;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}U>>>=J,L-=J,et=0,H=3+(U&7),U>>>=3,L-=3}else{for(st=J+7;L<st;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}U>>>=J,L-=J,et=0,H=11+(U&127),U>>>=7,L-=7}if($.have+H>$.nlen+$.ndist){_.msg="invalid bit length repeat",$.mode=BAD;break}for(;H--;)$.lens[$.have++]=et}}if($.mode===BAD)break;if($.lens[256]===0){_.msg="invalid code -- missing end-of-block",$.mode=BAD;break}if($.lenbits=9,rt={bits:$.lenbits},ft=inftrees(LENS,$.lens,0,$.nlen,$.lencode,0,$.work,rt),$.lenbits=rt.bits,ft){_.msg="invalid literal/lengths set",$.mode=BAD;break}if($.distbits=6,$.distcode=$.distdyn,rt={bits:$.distbits},ft=inftrees(DISTS,$.lens,$.nlen,$.ndist,$.distcode,0,$.work,rt),$.distbits=rt.bits,ft){_.msg="invalid distances set",$.mode=BAD;break}if($.mode=LEN_,D===Z_TREES)break t;case LEN_:$.mode=LEN;case LEN:if(o>=6&&A>=258){_.next_out=e,_.avail_out=A,_.next_in=N,_.avail_in=o,$.hold=U,$.bits=L,inffast(_,Z),e=_.next_out,R=_.output,A=_.avail_out,N=_.next_in,M=_.input,o=_.avail_in,U=$.hold,L=$.bits,$.mode===TYPE&&($.back=-1);break}for($.back=0;W=$.lencode[U&(1<<$.lenbits)-1],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if(Y&&(Y&240)===0){for(X=J,nt=Y,dt=tt;W=$.lencode[dt+((U&(1<<X+nt)-1)>>X)],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(X+J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}U>>>=X,L-=X,$.back+=X}if(U>>>=J,L-=J,$.back+=J,$.length=tt,Y===0){$.mode=LIT;break}if(Y&32){$.back=-1,$.mode=TYPE;break}if(Y&64){_.msg="invalid literal/length code",$.mode=BAD;break}$.extra=Y&15,$.mode=LENEXT;case LENEXT:if($.extra){for(st=$.extra;L<st;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.length+=U&(1<<$.extra)-1,U>>>=$.extra,L-=$.extra,$.back+=$.extra}$.was=$.length,$.mode=DIST;case DIST:for(;W=$.distcode[U&(1<<$.distbits)-1],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if((Y&240)===0){for(X=J,nt=Y,dt=tt;W=$.distcode[dt+((U&(1<<X+nt)-1)>>X)],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(X+J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}U>>>=X,L-=X,$.back+=X}if(U>>>=J,L-=J,$.back+=J,Y&64){_.msg="invalid distance code",$.mode=BAD;break}$.offset=tt,$.extra=Y&15,$.mode=DISTEXT;case DISTEXT:if($.extra){for(st=$.extra;L<st;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.offset+=U&(1<<$.extra)-1,U>>>=$.extra,L-=$.extra,$.back+=$.extra}if($.offset>$.dmax){_.msg="invalid distance too far back",$.mode=BAD;break}$.mode=MATCH;case MATCH:if(A===0)break t;if(H=Z-A,$.offset>H){if(H=$.offset-H,H>$.whave&&$.sane){_.msg="invalid distance too far back",$.mode=BAD;break}H>$.wnext?(H-=$.wnext,z=$.wsize-H):z=$.wnext-H,H>$.length&&(H=$.length),V=$.window}else V=R,z=e-$.offset,H=$.length;H>A&&(H=A),A-=H,$.length-=H;do R[e++]=V[z++];while(--H);$.length===0&&($.mode=LEN);break;case LIT:if(A===0)break t;R[e++]=$.length,A--,$.mode=LEN;break;case CHECK:if($.wrap){for(;L<32;){if(o===0)break t;o--,U|=M[N++]<<L,L+=8}if(Z-=A,_.total_out+=Z,$.total+=Z,$.wrap&4&&Z&&(_.adler=$.check=$.flags?crc32_1($.check,R,Z,e-Z):adler32_1($.check,R,Z,e-Z)),Z=A,$.wrap&4&&($.flags?U:zswap32(U))!==$.check){_.msg="incorrect data check",$.mode=BAD;break}U=0,L=0}$.mode=LENGTH;case LENGTH:if($.wrap&&$.flags){for(;L<32;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.wrap&4&&U!==($.total&4294967295)){_.msg="incorrect length check",$.mode=BAD;break}U=0,L=0}$.mode=DONE;case DONE:ft=Z_STREAM_END$1;break t;case BAD:ft=Z_DATA_ERROR$1;break t;case MEM:return Z_MEM_ERROR$1;case SYNC:default:return Z_STREAM_ERROR$1}return _.next_out=e,_.avail_out=A,_.next_in=N,_.avail_in=o,$.hold=U,$.bits=L,($.wsize||Z!==_.avail_out&&$.mode<BAD&&($.mode<CHECK||D!==Z_FINISH$1))&&updatewindow(_,_.output,_.next_out,Z-_.avail_out),F-=_.avail_in,Z-=_.avail_out,_.total_in+=F,_.total_out+=Z,$.total+=Z,$.wrap&4&&Z&&(_.adler=$.check=$.flags?crc32_1($.check,R,Z,_.next_out-Z):adler32_1($.check,R,Z,_.next_out-Z)),_.data_type=$.bits+($.last?64:0)+($.mode===TYPE?128:0)+($.mode===LEN_||$.mode===COPY_?256:0),(F===0&&Z===0||D===Z_FINISH$1)&&ft===Z_OK$1&&(ft=Z_BUF_ERROR),ft},inflateEnd=_=>{if(inflateStateCheck(_))return Z_STREAM_ERROR$1;let D=_.state;return D.window&&(D.window=null),_.state=null,Z_OK$1},inflateGetHeader=(_,D)=>{if(inflateStateCheck(_))return Z_STREAM_ERROR$1;const $=_.state;return($.wrap&2)===0?Z_STREAM_ERROR$1:($.head=D,D.done=!1,Z_OK$1)},inflateSetDictionary=(_,D)=>{const $=D.length;let M,R,N;return inflateStateCheck(_)||(M=_.state,M.wrap!==0&&M.mode!==DICT)?Z_STREAM_ERROR$1:M.mode===DICT&&(R=1,R=adler32_1(R,D,$,0),R!==M.check)?Z_DATA_ERROR$1:(N=updatewindow(_,D,$,$),N?(M.mode=MEM,Z_MEM_ERROR$1):(M.havedict=1,Z_OK$1))};var inflateReset_1=inflateReset,inflateReset2_1=inflateReset2,inflateResetKeep_1=inflateResetKeep,inflateInit_1=inflateInit,inflateInit2_1=inflateInit2,inflate_2$1=inflate$2,inflateEnd_1=inflateEnd,inflateGetHeader_1=inflateGetHeader,inflateSetDictionary_1=inflateSetDictionary,inflateInfo="pako inflate (from Nodeca project)",inflate_1$2={inflateReset:inflateReset_1,inflateReset2:inflateReset2_1,inflateResetKeep:inflateResetKeep_1,inflateInit:inflateInit_1,inflateInit2:inflateInit2_1,inflate:inflate_2$1,inflateEnd:inflateEnd_1,inflateGetHeader:inflateGetHeader_1,inflateSetDictionary:inflateSetDictionary_1,inflateInfo};function GZheader(){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}var gzheader=GZheader;const toString=Object.prototype.toString,{Z_NO_FLUSH,Z_FINISH,Z_OK,Z_STREAM_END,Z_NEED_DICT,Z_STREAM_ERROR,Z_DATA_ERROR,Z_MEM_ERROR}=constants$2;function Inflate$1(_){this.options=common.assign({chunkSize:1024*64,windowBits:15,to:""},_||{});const D=this.options;D.raw&&D.windowBits>=0&&D.windowBits<16&&(D.windowBits=-D.windowBits,D.windowBits===0&&(D.windowBits=-15)),D.windowBits>=0&&D.windowBits<16&&!(_&&_.windowBits)&&(D.windowBits+=32),D.windowBits>15&&D.windowBits<48&&(D.windowBits&15)===0&&(D.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let $=inflate_1$2.inflateInit2(this.strm,D.windowBits);if($!==Z_OK)throw new Error(messages[$]);if(this.header=new gzheader,inflate_1$2.inflateGetHeader(this.strm,this.header),D.dictionary&&(typeof D.dictionary=="string"?D.dictionary=strings.string2buf(D.dictionary):toString.call(D.dictionary)==="[object ArrayBuffer]"&&(D.dictionary=new Uint8Array(D.dictionary)),D.raw&&($=inflate_1$2.inflateSetDictionary(this.strm,D.dictionary),$!==Z_OK)))throw new Error(messages[$])}Inflate$1.prototype.push=function(_,D){const $=this.strm,M=this.options.chunkSize,R=this.options.dictionary;let N,e,o;if(this.ended)return!1;for(D===~~D?e=D:e=D===!0?Z_FINISH:Z_NO_FLUSH,toString.call(_)==="[object ArrayBuffer]"?$.input=new Uint8Array(_):$.input=_,$.next_in=0,$.avail_in=$.input.length;;){for($.avail_out===0&&($.output=new Uint8Array(M),$.next_out=0,$.avail_out=M),N=inflate_1$2.inflate($,e),N===Z_NEED_DICT&&R&&(N=inflate_1$2.inflateSetDictionary($,R),N===Z_OK?N=inflate_1$2.inflate($,e):N===Z_DATA_ERROR&&(N=Z_NEED_DICT));$.avail_in>0&&N===Z_STREAM_END&&$.state.wrap>0&&_[$.next_in]!==0;)inflate_1$2.inflateReset($),N=inflate_1$2.inflate($,e);switch(N){case Z_STREAM_ERROR:case Z_DATA_ERROR:case Z_NEED_DICT:case Z_MEM_ERROR:return this.onEnd(N),this.ended=!0,!1}if(o=$.avail_out,$.next_out&&($.avail_out===0||N===Z_STREAM_END))if(this.options.to==="string"){let A=strings.utf8border($.output,$.next_out),U=$.next_out-A,L=strings.buf2string($.output,A);$.next_out=U,$.avail_out=M-U,U&&$.output.set($.output.subarray(A,A+U),0),this.onData(L)}else this.onData($.output.length===$.next_out?$.output:$.output.subarray(0,$.next_out));if(!(N===Z_OK&&o===0)){if(N===Z_STREAM_END)return N=inflate_1$2.inflateEnd(this.strm),this.onEnd(N),this.ended=!0,!0;if($.avail_in===0)break}}return!0},Inflate$1.prototype.onData=function(_){this.chunks.push(_)},Inflate$1.prototype.onEnd=function(_){_===Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=_,this.msg=this.strm.msg};function inflate$1(_,D){const $=new Inflate$1(D);if($.push(_),$.err)throw $.msg||messages[$.err];return $.result}function inflateRaw$1(_,D){return D=D||{},D.raw=!0,inflate$1(_,D)}var Inflate_1$1=Inflate$1,inflate_2=inflate$1,inflateRaw_1$1=inflateRaw$1,ungzip$1=inflate$1,inflate_1$1={Inflate:Inflate_1$1,inflate:inflate_2,inflateRaw:inflateRaw_1$1,ungzip:ungzip$1};const{Deflate,deflate,deflateRaw,gzip}=deflate_1$1,{Inflate,inflate,inflateRaw,ungzip}=inflate_1$1;var Deflate_1=Deflate,deflate_1=deflate,deflateRaw_1=deflateRaw,gzip_1=gzip,Inflate_1=Inflate,inflate_1=inflate,inflateRaw_1=inflateRaw,ungzip_1=ungzip,constants_1=constants$2,pako={Deflate:Deflate_1,deflate:deflate_1,deflateRaw:deflateRaw_1,gzip:gzip_1,Inflate:Inflate_1,inflate:inflate_1,inflateRaw:inflateRaw_1,ungzip:ungzip_1,constants:constants_1};const compressArrayBuffer=_=>{const D=new Uint8Array(_),$=pako.deflate(D,{gzip:!0});return new Uint8Array($==null?void 0:$.buffer)},decompressArrayBuffer=_=>{const D=new Uint8Array(_),$=pako.inflate(D,{gzip:!0});return new Uint8Array($==null?void 0:$.buffer)},sendMessageFormat=_=>{const{event:D}=_;switch(_.data_original=_.data,_.time&&(_.timeStr=E(_.time,"YYYY-MM-DD hh:mm:ss",{offset:480})),D){case"login":_.data=com.quick.voice.proto.Login.encode(_.data).finish();break;case"joinRoom":_.data=com.quick.voice.proto.JoinReq.encode(_.data).finish();break;case"quitRoom":_.data=com.quick.voice.proto.QuitReq.encode(_.data).finish();break;case"connectCF":_.data=com.quick.voice.proto.ConnectCFReq.encode(_.data).finish(),_.data=compressArrayBuffer(_.data),_.compress=!0;break;case"publish":_.data=com.quick.voice.proto.PublishReq.encode(_.data).finish(),_.data=compressArrayBuffer(_.data),_.compress=!0;break;case"subscribe":_.data=com.quick.voice.proto.SubscribeReq.encode(_.data).finish();break;case"closeTrack":_.data=com.quick.voice.proto.CloseTrackReq.encode(_.data).finish(),_.data=compressArrayBuffer(_.data),_.compress=!0;break;case"renegotiate":_.data=com.quick.voice.proto.RenegotiateReq.encode(_.data).finish(),_.data=compressArrayBuffer(_.data),_.compress=!0;break;case"syncRoomInfo":_.data=com.quick.voice.proto.SyncRoomInfoReq.encode(_.data).finish();break;case"updateCall":_.data=com.quick.voice.proto.UpdateCall.encode(_.data).finish();break;case"networkQualityChange":_.data=com.quick.voice.proto.NetQualityChange.encode(_.data).finish();break;case"pubNotify":_.data=com.quick.voice.proto.PublishNotify.encode(_.data).finish();break;default:_.data=new Uint8Array;break}return _},onMessageFormat=_=>{const{event:D,compress:$=!1}=_;if(_.data_remote=_.data,_.time&&(_.timeStr=E(_.time,"YYYY-MM-DD hh:mm:ss",{offset:480})),$)try{_.data=decompressArrayBuffer(_.data)}catch(M){console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo:消息解压错误",M)}switch(D){case"login":_.data=com.quick.voice.proto.Login.decode(_.data);break;case"joinRoom":_.data=com.quick.voice.proto.JoinRsp.decode(_.data);break;case"onJoinRoom":_.data=com.quick.voice.proto.JoinNotify.decode(_.data);break;case"onQuitRoom":_.data=com.quick.voice.proto.QuitNotify.decode(_.data);break;case"connectCF":_.data=com.quick.voice.proto.ConnectCFRsp.decode(_.data);break;case"publish":_.data=com.quick.voice.proto.PublishRsp.decode(_.data);break;case"onPublish":_.data=com.quick.voice.proto.PublishNotify.decode(_.data);break;case"subscribe":_.data=com.quick.voice.proto.SubscribeRsp.decode(_.data);break;case"closeTrack":_.data=com.quick.voice.proto.CloseTrackRsp.decode(_.data);break;case"onCloseTrack":_.data=com.quick.voice.proto.CloseTrackNotify.decode(_.data);break;case"onUpdateCall":_.data=com.quick.voice.proto.UpdateCall.decode(_.data);break;case"onUpdatePermissions":_.data=com.quick.voice.proto.UpdatePermissions.decode(_.data);break;case"onNetQuality":_.data=com.quick.voice.proto.NetQualityNotify.decode(_.data);break;case"syncRoomInfo":_.data=com.quick.voice.proto.SyncRoomInfoRsp.decode(_.data);break;case"debugger":_.data=JSON.parse(new TextDecoder().decode(_.data));break}return _},checkReconnect=_=>!0;class CallsWebSocket{constructor(D){lt(this,ct);lt(this,ot,{url:"wss://demo.putplay.cc/websocket",debug:!1,reconnectCount:10,timeout:30*1e3});lt(this,ht,"");lt(this,St,!1);lt(this,wt,0);lt(this,_t,{});lt(this,yt,{});K(this,"onReconnectSuccess",async D=>{});K(this,"onReconnectStop",async D=>{});lt(this,Nt,()=>G(this,St)?com.quick.voice.proto.CommonReq.encode({event:"heartbeat",sn:+`${O(1e5,999999)}`}).finish():"");lt(this,Et,(D,$={})=>{try{const{time:M,event:R,data:N={},data_original:e={},data_remote:o,...A}=$,U=E(M,"YYYY-MM-DD hh:mm:ss",{offset:480});let L={};const F=(Y={})=>{const tt=JSON.parse(JSON.stringify(Y)),X=Object.keys(tt);for(const nt of X)(nt.includes("sdp")||nt.includes("Sdp"))&&(tt[nt]="");return tt};let Z="res ↓";switch(D){case"res":Z="res ↓",L=F(N);break;case"req":Z="req ↑",L=F(e);break}let H="#quickvo.logs";ignoreEvent.includes(R)&&(H="#quickvo.ignoreEvents");const z={"#action":Z,timeStr:U,event:R,data:L,time:M,...A},V=localStorage.getItem(H)||JSON.stringify([]),W=JSON.parse(V),J=[z,...W].slice(0,500);localStorage.setItem(H,JSON.stringify(J))}catch(M){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: updataLogs is error",M)}});lt(this,xt,D=>new Promise(async $=>{const{event:M}=D,R=Date.now();M==="healthCheck"&&(kt(this,wt,R),G(this,ot).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 刷新活性",{activetimeStamp:G(this,wt),activetimeStampStr:E(G(this,wt))}));const N=30*1e3+G(this,ot).timeout;R-G(this,wt)>=N&&G(this,ct)&&(G(this,ot).debug&&console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 活性超时, 尝试重新建立连接",G(this,ct)),await this.connect()),$(G(this,ct))}));K(this,"clearEvents",(D=[])=>{const $=Object.keys(G(this,_t));D.length===0&&(D=$);for(const M of $){if(!D.includes(M))continue;const R=G(this,_t)[M];clearTimeout(R.destructionTimer),delete G(this,_t)[M]}});lt(this,At,(D,{resolve:$,reject:M})=>{const{sn:R}=D,N=()=>{const o=G(this,_t)[R];clearTimeout(o.destructionTimer),delete G(this,_t)[R]},e=setTimeout(()=>{const o=G(this,_t)[R];console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo:event is timeout",o.message),N(),M("event is timeout")},G(this,ot).timeout);G(this,_t)[R]={message:D,resolve:$,reject:M,destruction:N,destructionTimer:e}});lt(this,qt,D=>G(this,_t)[D]);lt(this,Dt,async D=>{const $=Date.now();kt(this,wt,$),G(this,ot).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 重置活性",{activetimeStamp:G(this,wt),activetimeStampStr:E(G(this,wt))}),await this.onReconnectSuccess(D)});K(this,"connect",async(D="")=>{D&&kt(this,ht,D),G(this,ct)&&await G(this,ct).close();const $=`${G(this,ot).url}?s=${G(this,ht)}&t=${Date.now()}`;return kt(this,ct,new k$1({...G(this,ot),url:$,binaryType:"arraybuffer",onMessage:G(this,Ct),checkReconnect,getHeartbeatMsg:G(this,Nt),onReconnectSuccess:G(this,Dt),onReconnectStop:M=>this.onReconnectStop(M)})),await G(this,ct).connect(),kt(this,wt,Date.now()),G(this,ot).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 当前广播事件",G(this,yt)),G(this,ct)});K(this,"close",async()=>{var $;G(this,ot).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: cws is close.");const D=Object.keys(G(this,_t));for(const M of D){const{destructionTimer:R}=G(this,_t)[M];clearTimeout(R)}kt(this,_t,{}),kt(this,yt,{}),await(($=G(this,ct))==null?void 0:$.close())});K(this,"sendMessage",(D,$=!0)=>new Promise(async(M,R)=>{var L;const{event:N,...e}=D,o=Date.now(),A=sendMessageFormat({event:N,sn:+`${o}${O(1e3,9999)}`,time:o,valid:G(this,ot).timeout,version:1,compress:!1,...e});G(this,ot).debug&&(G(this,Et).call(this,"req",A),console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ff9700;padding:16px 0;","------->quickvo: 发送消息↑",A)),await G(this,xt).call(this,A),N==="joinRoom"&&kt(this,St,!1),$&&G(this,At).call(this,A,{resolve:M,reject:R});const U=com.quick.voice.proto.CommonReq.encode(A).finish();(L=G(this,ct))==null||L.sendMessage(U)}));lt(this,Ct,async D=>{const $=new Uint8Array(D),M=com.quick.voice.proto.CommonRsp.decode($),{sn:R,event:N}=M,e=onMessageFormat(M);if(G(this,ot).debug&&(G(this,Et).call(this,"res",e),console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ff0097;padding:16px 0;","------->quickvo: 响应消息↓",e)),await G(this,xt).call(this,e),N==="joinRoom"&&kt(this,St,!0),ignoreEvent.includes(N))return;if(notifyName_keys.includes(N))return this.emitNotify(N,v$1(e,["code","data","desc"]));const A=G(this,qt).call(this,R);if(A){const{resolve:U=F=>{},destruction:L=()=>{}}=A;U(v$1(e,["code","data","desc"])),L()}});K(this,"emitNotify",async(D,$)=>{const M=G(this,yt)[D]||[];for(const R of M){const{callback:N=async()=>{}}=R;await N($)}});K(this,"addNotify",(D,$=!1)=>{const{event:M,sn:R=pt(32)}=D;G(this,yt)[M]||(G(this,yt)[M]=[]);const N=G(this,yt)[M],e=N.findIndex(o=>o.sn===R);return e!==-1&&N.splice(e,1),$?N.unshift(D):N.push(D),R});K(this,"removeNotify",(D=[])=>{if(D.length===0)kt(this,yt,{});else{const $=Object.keys(G(this,yt));for(const M of $)G(this,yt)[M]=G(this,yt)[M].filter(R=>!D.includes(R.sn||""))}G(this,ot).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 移除广播事件",G(this,yt))});kt(this,ot,{...G(this,ot),...D})}}ct=new WeakMap,ot=new WeakMap,ht=new WeakMap,St=new WeakMap,wt=new WeakMap,_t=new WeakMap,yt=new WeakMap,Nt=new WeakMap,Et=new WeakMap,xt=new WeakMap,At=new WeakMap,qt=new WeakMap,Dt=new WeakMap,Ct=new WeakMap;var l=Object.defineProperty,y=_=>{throw TypeError(_)},q=(_,D,$)=>D in _?l(_,D,{enumerable:!0,configurable:!0,writable:!0,value:$}):_[D]=$,s=(_,D,$)=>q(_,typeof D!="symbol"?D+"":D,$),P=(_,D,$)=>D.has(_)||y("Cannot "+$),n=(_,D,$)=>(P(_,D,"read from private field"),$?$.call(_):D.get(_)),m=(_,D,$)=>D.has(_)?y("Cannot add the same private member more than once"):D instanceof WeakSet?D.add(_):D.set(_,$),a,d,u;class k{constructor(D={}){s(this,"queue",[]),s(this,"timer",0),s(this,"activeIndex",0),s(this,"activePromise"),s(this,"options",{timeout:0}),s(this,"add",($,M={})=>new Promise(async(R,N)=>{const e=M.timeout||this.options.timeout,o=M.key||n(this,a).call(this);if(this.queue.findIndex(U=>U.key===o)!==-1)return N(`${o} is exist.`);const A={key:o,func:$,resolve:R,reject:N,timeout:e};this.queue.unshift(A),this.activePromise||n(this,u).call(this)})),s(this,"clear",()=>{this.queue=[],clearTimeout(this.timer)}),m(this,a,()=>(this.activeIndex=this.activeIndex+1,`${this.activeIndex}`)),m(this,d,$=>{const M=this.queue.findIndex(R=>R.key===$);this.queue.splice(M,1)}),m(this,u,async()=>{const $=this.queue.length;if($===0)return;const M=$-1,R=this.queue[M];this.activePromise=R;const{key:N,func:e,resolve:o,reject:A,timeout:U}=this.activePromise;U&&(this.timer=setTimeout(()=>{A(`pr-async-queue: ${N} is timeout.`),n(this,u).call(this)},U)),await e().then(o).catch(A).finally(()=>{clearTimeout(this.timer),this.activePromise=void 0,n(this,d).call(this,N),n(this,u).call(this)})}),this.options={timeout:0,...D}}}a=new WeakMap,d=new WeakMap,u=new WeakMap;class RoomBase{constructor(){K(this,"options",{appid:"",sdkToken:"",roomId:"",userId:"",callType:0,debug:!1,newPublishAutoSubscribe:!0});K(this,"prohibitNotify",!1);K(this,"asyncQueue",new k);K(this,"state","ready");K(this,"createAt",Date.now());K(this,"cwsIns",new CallsWebSocket);K(this,"peerIns",new RTCPeerConnection({bundlePolicy:"max-bundle"}));K(this,"userMap",new Map);K(this,"mediaDevicesErrInfo",{microphoneCamera_audio:"",microphoneCamera_video:"",screenSharing_video:"",screenSharing_audio:""});K(this,"getRoomInfo",()=>{const{options:D,state:$,createAt:M}=this;return{...D,state:$,createAt:M}});K(this,"setRoomState",D=>{this.state=D;const $=enum_roomState[D],M={state:D,stateStr:$};this.cwsIns.emitNotify("onRoomState",{code:200,data:M,desc:"room state is change."})});K(this,"setOptions",async D=>{const $={...this.options,...D};this.options=$});K(this,"initCwsCall",()=>{this.cwsIns=new CallsWebSocket({...this.options})});K(this,"getMediaDevicesErrInfo",async()=>{try{const D=await navigator.mediaDevices.enumerateDevices();D.find(M=>M.kind==="audioinput")||(this.mediaDevicesErrInfo.microphoneCamera_audio="audioinput is not available."),D.find(M=>M.kind==="videoinput")||(this.mediaDevicesErrInfo.microphoneCamera_video="videoinput is not available.")}catch(D){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe:error",D)}return this.mediaDevicesErrInfo});K(this,"getUserMediaKey",(D,$)=>`${D}-${$}`);K(this,"getCallActionMap",(D=0)=>{const M=Number(D).toString(2).padStart(4,"0").split(""),[R,N,e,o]=M;return{microphoneCamera_audio:!!Number(o),microphoneCamera_video:!!Number(e),screenSharing_video:!!Number(N),screenSharing_audio:!!Number(R)}});K(this,"getAverageVolume",(D,$)=>{D.getByteFrequencyData($);let M=0;for(let N=0;N<$.length;N++)M+=$[N];return Math.ceil(M/$.length)});K(this,"getCallAction",async D=>{let $="";const M=N=>D.findIndex(({type:o,enabled:A=!0})=>o===N&&A)===-1?"0":"1";return $=`${M(0)}${$}`,$=`${M(1)}${$}`,$=`${M(2)}${$}`,$=`${M(3)}${$}`,parseInt($,2)});K(this,"getTrackNamesFormTracks",(D,$=[],M="trackName")=>{const R=[];for(const N of D){const{type:e}=N;if($.length===0||$.includes(e)){const o=N[M];o&&R.push(`${o}`)}}return R});K(this,"usersFilter",D=>mt(D,["id","isSelf","joinTime","tracks","callAction","callActionStr","callActionMap","network","updateStreams","permissions","isPublished"]).sort((R,N)=>R.id.localeCompare(N.id,"en")))}}class RoomMedias extends RoomBase{constructor(){super();K(this,"mediaDevices",[]);lt(this,vt,new Map);lt(this,Ot,new Map);lt(this,bt,new Map);lt(this,Ut,()=>{G(this,Ot).set("microphoneCamera_audio",{}),G(this,Ot).set("microphoneCamera_video",{width:{ideal:1920},height:{ideal:1080},frameRate:{min:10,ideal:30}}),G(this,Ot).set("screenSharing_video",{width:{ideal:1920},height:{ideal:1080},frameRate:{min:10,ideal:30}}),G(this,Ot).set("screenSharing_audio",{})});lt(this,Mt,()=>{G(this,vt).set("audioinput","default"),G(this,vt).set("videoinput","default"),G(this,vt).set("audiooutput","default")});K(this,"emitNotifyUpdateUsersStreams",async $=>{this.prohibitNotify||this.cwsIns.emitNotify("onRoomUsersStreams",{code:200,data:$,desc:"users streams is change."})});K(this,"initUserMediaStreamContext",async($,M,R)=>{var A;const[N]=R.getTracks();if(!N){console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: tracks.length is 0.",{userId:$,mediaType:M,stream:R});return}this.removeUserMediaStreamContext($,M);const e=this.getUserMediaKey($,M),{kind:o}=N;switch(o){case"audio":{const U=new AudioMediaContext(N);G(this,bt).set(e,U)}break;case"video":{const U=new VideoMediaContext(N);G(this,bt).set(e,U)}break}{const U=this.getUserMediaStreamContext($,M);if(U&&U.kind==="audio")try{const L=G(this,vt).get("audiooutput");(A=U.audioContext)==null||A.setSinkId(L)}catch(L){console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: setSinkId is error",L)}}});K(this,"getUserMediaStreamContext",($,M)=>{const R=this.getUserMediaKey($,M);return G(this,bt).get(R)});K(this,"getUserAudioMediaStreamContext",($,M)=>{const R=this.getUserMediaKey($,M);return G(this,bt).get(R)});K(this,"removeUserMediaStreamContext",($,M)=>{const R=this.getUserMediaKey($,M),N=G(this,bt).get(R);N==null||N.stop(),G(this,bt).delete(R)});K(this,"getUserStream",($,M)=>{const R=this.getUserMediaStreamContext($,M);return(R==null?void 0:R.getStream())||new MediaStream});K(this,"getUserStreams",($,M=[])=>{M.length===0&&(M=mediaType_keys);const R={};for(const N of M){const e=this.getUserStream($,N);R[N]=e}return R});K(this,"removeUserStreams",async($,M=[])=>{M.length===0&&(M=mediaType_keys);for(const R of M)this.removeUserMediaStreamContext($,R)});K(this,"clearUserStreams",()=>{const $=G(this,bt).values();for(const M of $)M.stop();kt(this,bt,new Map)});K(this,"setMediaTrackConstraints",async($,M)=>{G(this,Ot).set($,M);const N=this.getUserStream(this.options.userId,$).getTracks();if(N.length!==0)for(const e of N){const A={...e.getConstraints(),...M};await e.applyConstraints(A)}});K(this,"changeLocalStream",async $=>{const{userId:M}=this.options,R=G(this,Ot).get($);switch($){case"microphoneCamera_audio":{const N=G(this,vt).get("audioinput"),e=await navigator.mediaDevices.getUserMedia({audio:{deviceId:N,...R},video:!1});await this.initUserMediaStreamContext(M,"microphoneCamera_audio",e)}break;case"microphoneCamera_video":{const N=G(this,vt).get("videoinput"),e=await navigator.mediaDevices.getUserMedia({audio:!1,video:{deviceId:N,...R}});await this.initUserMediaStreamContext(M,"microphoneCamera_video",e)}break;case"screenSharing_audio":{const N=await navigator.mediaDevices.getDisplayMedia({audio:!0,video:!0,...R}),e=N.getTracks();for(const o of e){const{kind:A}=o,U=new MediaStream;U.addTrack(o),N.removeTrack(o),A==="audio"&&await this.initUserMediaStreamContext(M,"screenSharing_audio",U),A==="video"&&await this.initUserMediaStreamContext(M,"screenSharing_video",U)}}break;case"screenSharing_video":{const N=await navigator.mediaDevices.getDisplayMedia({audio:!1,video:!0,...R});await this.initUserMediaStreamContext(M,"screenSharing_video",N)}break}this.emitNotifyUpdateUsersStreams([{userId:M,updateStreams:{[$]:!0}}])});lt(this,It,async()=>!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices?(console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 不支持 enumerateDevices"),[]):(await navigator.mediaDevices.enumerateDevices().then($=>{this.mediaDevices=$}).catch(function($){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: getEnumerateDevices is err",$)}),this.mediaDevices));lt(this,Pt,()=>{navigator.mediaDevices.ondevicechange=async()=>{await G(this,It).call(this),this.cwsIns.emitNotify("onDevicechange",{code:200,data:{},desc:"device is change."})},G(this,It).call(this)});K(this,"getMediaDeviceKind",$=>G(this,vt).get($));K(this,"replaceSenderStream",async($,M)=>{var A;const R=this.userMap.get(this.options.userId);if(!R)return;const{mid:N}=R.tracks.find(U=>U.mediaType===$)||{};if(!N)return;const[e]=M.getTracks(),o=this.peerIns.getTransceivers();for(const U of o){const{sender:L}=U;U.mid===N&&((A=L.track)==null||A.stop(),L.replaceTrack(e))}});K(this,"setMediaDeviceKind",async($,M)=>{var N;G(this,vt).set($,M);const{userId:R}=this.options;if($==="audioinput"&&this.getUserMediaStreamContext(R,"microphoneCamera_audio")){await this.changeLocalStream("microphoneCamera_audio");const o=this.getUserStream(this.options.userId,"microphoneCamera_audio");await this.replaceSenderStream("microphoneCamera_audio",o)}if($==="videoinput"&&this.getUserMediaStreamContext(R,"microphoneCamera_video")){await this.changeLocalStream("microphoneCamera_video");const o=this.getUserStream(this.options.userId,"microphoneCamera_video");await this.replaceSenderStream("microphoneCamera_video",o)}if($==="audiooutput"){const e=G(this,bt).values();for(const o of e)(N=o.audioContext)==null||N.setSinkId(M)}});K(this,"setAudioOutputDevice",$=>this.setMediaDeviceKind("audiooutput",$));K(this,"getEnumerateDevices",async $=>(await G(this,It).call(this),this.mediaDevices.filter(R=>R.kind===$)));K(this,"getEnumerateAudioinputDevices",()=>this.getEnumerateDevices("audioinput"));K(this,"getEnumerateAudioOutputDevices",()=>this.getEnumerateDevices("audiooutput"));K(this,"getEnumerateVideoinputDevices",()=>this.getEnumerateDevices("videoinput"));G(this,Pt).call(this),G(this,Mt).call(this),G(this,Ut).call(this)}}vt=new WeakMap,Ot=new WeakMap,bt=new WeakMap,Ut=new WeakMap,Mt=new WeakMap,It=new WeakMap,Pt=new WeakMap;class RoomUsers extends RoomMedias{constructor(){super();K(this,"getMaxVolumeUser",()=>{const $=Array.from(this.userMap.values(),({id:R})=>R);if($.length===0)return;let M=[];for(const R of $){const N=this.getUserMediaStreamContext(R,"microphoneCamera_audio");if(!N||N.kind!=="audio")continue;const e=N.getVolume();M.push({id:R,volume:e})}return M=M.sort((R,N)=>R.volume-N.volume>0?-1:1),M[0]});K(this,"setAudioFilter",async($={})=>{const M=await this.getUsersId();for(const R of M){{const N=this.getUserMediaStreamContext(R,"microphoneCamera_audio");(N==null?void 0:N.kind)==="audio"&&(N==null||N.setFilter($))}{const N=this.getUserMediaStreamContext(R,"screenSharing_audio");(N==null?void 0:N.kind)==="audio"&&(N==null||N.setFilter($))}}});K(this,"setVolume",($,M,R)=>{const N=this.getUserMediaStreamContext($,M);(N==null?void 0:N.kind)==="audio"&&(N==null||N.setVolumeGain(R))});K(this,"getVolume",($,M)=>{const R=this.getUserMediaStreamContext($,M);let N=0;return(R==null?void 0:R.kind)==="audio"&&(N=R==null?void 0:R.getVolume()),N});K(this,"clearUsers",()=>{this.userMap=new Map});K(this,"removeUsers",async $=>{for(const M of $)this.userMap.delete(M),await this.removeUserStreams(M)});K(this,"createUser",async $=>{const M=Date.now(),R={id:$,permissions:0,callAction:0,callActionStr:"",callActionMap:{microphoneCamera_audio:!1,microphoneCamera_video:!1,screenSharing_video:!1,screenSharing_audio:!1},callState:0,isSelf:$===this.options.userId,isPublished:!1,joinTime:M,updateAt:M,network:{egress:0,ingress:0},tracks:[],updateStreams:{microphoneCamera_audio:!1,microphoneCamera_video:!1,screenSharing_video:!1,screenSharing_audio:!1}};this.userMap.set($,R)});K(this,"getUser",async $=>(this.userMap.has($)||await this.createUser($),this.userMap.get($)));K(this,"getUsers",async($=[])=>{$.length===0&&($=[...this.userMap.keys()]);const M=[];for(const R of $){const N=await this.getUser(R);M.push(N)}return M});K(this,"getAllUserTrackMids",async()=>{const $=await this.getUsers(),M=[];for(const R of $){const{tracks:N=[]}=R;for(const e of N)M.push(e.mid)}return M});K(this,"getUserTrackByTrackName",async $=>{const M=await this.getUsers(),R=[];for(const N of M){const{tracks:e=[]}=N;for(const o of e){const{trackName:A}=o;$.includes(A)&&R.push(o)}}return R});K(this,"getUserTrackFromMid",async $=>{const M=await this.getUsers();let R;for(const N of M){const{tracks:e=[]}=N;for(const o of e)if(o.mid===$){R=o;break}}return R});K(this,"checkUserInRoom",$=>this.userMap.has($));K(this,"getUsersId",async()=>[...this.userMap.keys()]);K(this,"getCaller",async()=>await this.getUser(this.options.userId));K(this,"updateIsPublished",async($,M=!1)=>{const R=await this.getUser($);R.isPublished=M});K(this,"setUserUpdateStreams",async($,M,R=!0)=>{const N=await this.getUser($),e={microphoneCamera_audio:!1,microphoneCamera_video:!1,screenSharing_video:!1,screenSharing_audio:!1};e[M]=R,N.updateStreams=e});K(this,"updateUsertracks",async($,M=[],R)=>{const N=await this.getUser($);R&&(M=[...N.tracks,...M]),M=M.filter(({mid:A=""})=>A!==""),M=it(M,["type"]),M=M.sort((A,U)=>A.type-U.type<0?-1:1);for(const A of M)A.userId=$,A.mediaType=mediaType_keys[A.type],A.enabled===void 0&&(A.enabled=!0);N.updateStreams={microphoneCamera_audio:!1,microphoneCamera_video:!1,screenSharing_video:!1,screenSharing_audio:!1};const e=mt(N.tracks,["mediaType","enabled","mid","msid","trackName"]),o=mt(M,["mediaType","enabled","mid","msid","trackName"]);{const A="microphoneCamera_audio",U=o.find(Z=>Z.mediaType===A),L=e.find(Z=>Z.mediaType===A),F=JSON.stringify(U)!==JSON.stringify(L);N.updateStreams[A]=F}{const A="microphoneCamera_video",U=o.find(Z=>Z.mediaType===A),L=e.find(Z=>Z.mediaType===A),F=JSON.stringify(U)!==JSON.stringify(L);N.updateStreams[A]=F}{const A="screenSharing_audio",U=o.find(Z=>Z.mediaType===A),L=e.find(Z=>Z.mediaType===A),F=JSON.stringify(U)!==JSON.stringify(L);N.updateStreams[A]=F}{const A="screenSharing_video",U=o.find(Z=>Z.mediaType===A),L=e.find(Z=>Z.mediaType===A),F=JSON.stringify(U)!==JSON.stringify(L);N.updateStreams[A]=F}N.tracks=M});K(this,"updateUserCallAction",async($,M=0)=>{const R=await this.getUser($);R.callAction=M,R.callActionStr=M.toString(2).padStart(4,"0"),R.callActionMap=this.getCallActionMap(M)});K(this,"updateUserNetwork",async($,M={egress:5,ingress:5})=>{const R=await this.getUser($);R.network=M});K(this,"updateUserPermissions",async($,M)=>{if(M){const R=await this.getUser($);R.permissions=M}});K(this,"updateUserBase",async $=>{const M=await this.getUser($);M.isSelf=$===this.options.userId,M.updateAt=Date.now()});K(this,"updateUsers",async $=>{for(const M of $){const{id:R,tracks:N,callAction:e,permissions:o,isPublished:A}=M;await this.updateUserBase(R),await this.updateIsPublished(R,A),await this.updateUserPermissions(R,o),await this.updateUsertracks(R,N,!0),await this.updateUserCallAction(R,e),await this.updateUserNetwork(R)}});K(this,"emitNotifyUpdateUser",async $=>{if(this.prohibitNotify)return;const M=await this.getUsers([$]),[R]=this.usersFilter(M);this.cwsIns.emitNotify("onRoomUser",{code:200,data:R,desc:"user info is change."})});K(this,"emitNotifyUpdateUsers",async()=>{if(this.prohibitNotify)return;const $=await this.getUsers(),M=this.usersFilter($);this.cwsIns.emitNotify("onRoomUsers",{code:200,data:M,desc:"all users info is change."})})}}class RoomPeer extends RoomUsers{constructor(){super();K(this,"getPeerStatsTimer",0);K(this,"reports",[]);K(this,"peerNetwork",{lostRate:"0",roundTripTime:"0",jitter:"0"});K(this,"connectedResolveMap",new Map);K(this,"initPeer",()=>{this.peerIns=new RTCPeerConnection({bundlePolicy:"max-bundle"}),G(this,Bt).call(this),G(this,Ft).call(this)});K(this,"initSender",async()=>{this.peerIns.addTransceiver("audio",{direction:"sendonly"});const $=await this.peerIns.createOffer();if(this.options.debug){const M=libExports.parse($.sdp),R=mt(M.media,["mid","msid","type"]);console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ffffff;","------->Breathe: setLocalDescription",{msidArr:R,sdpJson:M,description:$})}await this.peerIns.setLocalDescription($)});K(this,"addSender",async($,M)=>{const{userId:R}=this.options,N=this.peerIns.addTransceiver(M,{direction:"sendonly"}),e=await this.peerIns.createOffer();await this.peerIns.setLocalDescription(e);const{mid:o,sender:A}=N,{track:U}=A;if(!U)return;const{enabled:L}=U,F=mediaType_keys.findIndex(H=>H===$);return{type:F,enabled:L,trackName:`${R}_${F}`,location:"local",mid:o,userId:this.options.userId}});K(this,"clearTransceivers",async()=>{const $=await this.getAllUserTrackMids(),M=this.peerIns.getTransceivers();for(const R of M){const{mid:N}=R;Number(N)===0||$.includes(N)||(R.stop(),console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->Breathe: clearTransceivers: ${N} is stop.`,R))}});K(this,"connectionICE",()=>new Promise(async $=>{if(this.peerIns.connectionState==="connected")return $(!0);const M=pt();this.connectedResolveMap.set(M,$)}));K(this,"onSubscribeUserTracks",$=>{let M=0;return new Promise(async R=>{const N=[];for(const e of $){const{tracks:o=[]}=e;for(const A of o){const{trackName:U,mid:L}=A,[F]=await this.getUserTrackByTrackName([U]);N.push({...F,mid:L})}}{let e=[];const o=async()=>{clearTimeout(M),this.prohibitNotify=!1;const U=new Map;for(const F of e){const{userId:Z,mediaType:H}=F;if(!Z||!H)continue;U.has(Z)||U.set(Z,{userId:Z,tracks:[],updateStreams:{}});const V=U.get(Z);V.tracks.push(F),V.updateStreams[H]=!0}const L=[...U.values()];for(const F of L){const{userId:Z,tracks:H}=F;await this.updateUsertracks(Z,H,!0)}await this.emitNotifyUpdateUsersStreams(L),this.peerIns.removeEventListener("track",A),R(!0)},A=async U=>{await this.connectionICE();const{streams:L,transceiver:F}=U,[Z]=L,{mid:H,receiver:z}=F,{track:V}=z,{id:W,kind:J}=V,Y=N.find(nt=>nt.mid===`${H}`);if(!Y)return;const{userId:tt,mediaType:X}=Y;if(!(!tt||!X)){if(await this.initUserMediaStreamContext(tt,X,Z),J==="audio"){const nt=this.getUserMediaStreamContext(tt,X);(nt==null?void 0:nt.kind)==="audio"&&nt.setMute(!1)}{const nt={...Y,mid:H,msid:W};e.push(nt)}this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#00b60f;",`------->Breathe: await subscribe ${e.length}/${N.length}`,{mediaType:X,mid:H,userTrack:Y,e:U}),N.length===e.length&&o()}};this.peerIns.addEventListener("track",A),M=setTimeout(()=>o(),5*1e3)}})});lt(this,Bt,async()=>{let $=0;const M=()=>{this.setRoomState("disconnected")};this.peerIns.onconnectionstatechange=async()=>{const R=this.peerIns.connectionState;switch(R){case"connected":{clearTimeout($);const N=this.connectedResolveMap.keys();for(const e of N){const o=this.connectedResolveMap.get(e);o&&o(!0),this.connectedResolveMap.delete(e)}}this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#00b60f;",`------->quickvo: connectionState:${R}`);break;case"disconnected":$=setTimeout(M,30*1e3),this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#b60000;",`------->quickvo: connectionState:${R}`);break;case"closed":case"failed":M(),this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#b60000;",`------->quickvo: connectionState:${R}`);break;default:this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#b64900;",`------->quickvo: connectionState:${R}`);break}}});K(this,"closeUserTracks",async($,M=[],R=!1)=>{const N=[];for(const U of M){const{trackName:L,msid:F}=U;F?N.push(F):N.push(L)}const e=U=>N.includes(U),o=await this.getUser($);if(!o)return;for(const U of o.tracks){const{trackName:L,msid:F,userId:Z,mediaType:H}=U;!Z||!H||!e(F||L)||(this.removeUserMediaStreamContext(Z,H),F&&delete U.msid)}if(R){const U=o.tracks.filter(({trackName:L})=>!e(L));await this.updateUsertracks($,U,!1)}const A=this.peerIns.getTransceivers();for(const U of A){const{sender:L,receiver:F}=U;L.track&&e(L.track.id)&&(console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->Breathe: sender: ${L.track.id} is stop.`,U),L.track.enabled=!1,L.track.stop(),L.replaceTrack(null),this.peerIns.removeTrack(L),U.stop()),F.track&&e(F.track.id)&&(console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->Breathe: receiver: ${F.track.id} is stop.`,U),F.track.enabled=!1,F.track.stop(),U.stop())}});K(this,"createOffer",async()=>{const $=await this.peerIns.createOffer();if(this.options.debug){const M=libExports.parse($.sdp),R=mt(M.media,["mid","msid","type"]);console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ffffff;","------->Breathe: createOffer",{msidArr:R,sdpJson:M,description:$})}await this.peerIns.setLocalDescription($)});K(this,"createAnswer",async()=>{const $=await this.peerIns.createAnswer();if(this.options.debug){const M=libExports.parse($.sdp),R=mt(M.media,["mid","msid","type"]);console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ffffff;","------->Breathe: createAnswer",{msidArr:R,sdpJson:M,description:$})}await this.peerIns.setLocalDescription($)});K(this,"getSdp",()=>{var $;return($=this.peerIns.localDescription)==null?void 0:$.sdp});K(this,"setRemoteDescription",async $=>{if(this.options.debug){const M=libExports.parse($.sdp),R=mt(M.media,["mid","msid","type"]);console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ffffff;","------->Breathe: setRemoteDescription",{msidArr:R,sdpJson:M,description:$})}return await this.peerIns.setRemoteDescription($),$});K(this,"getPeerNetwork",()=>this.peerNetwork);K(this,"setCallStrategy",async($,M=[])=>{M.length===0&&(M=mediaType_keys);let R="balanced";switch($){case"qualityPriority":R="maintain-resolution";break;case"fluencyPriority":R="maintain-framerate";break;case"balancedDowngrade":R="balanced";break}const N=await this.getCaller(),e=Array.from(N.tracks,({trackName:A})=>A),o=this.peerIns.getSenders();for(const A of o){const{track:U}=A;if(!U||!e.includes(U.id))continue;const L=A.getParameters();A.setParameters({...L,degradationPreference:R})}});K(this,"setRTCRtpSenderParameters",$=>{try{const M=this.peerIns.getSenders();for(const R of M){const N=R.getParameters();R.setParameters({...N,...$})}}catch(M){console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: setRTCRtpSenderParameters is error.",M)}});lt(this,Lt,async $=>{try{let M=0,R=0,N=0,e=0,o=[],A=[];for(const J of this.reports){const{packetsSent:Y,packetsLost:tt}=J;Y&&(M+=Y),tt&&(R+=tt)}for(const J of $){const{packetsSent:Y,packetsLost:tt,jitter:X,roundTripTime:nt}=J;Y&&(N+=Y),tt&&(e+=tt),X&&A.push(X.toFixed(2)),nt&&o.push((nt*100).toFixed(2))}this.reports=$,A.sort().reverse(),o.sort().reverse();const U=N-M,L=e-R;if(U===0)return;const F=(L/U).toFixed(2),[Z="0"]=o,[H="0"]=A,z={lostRate:F,roundTripTime:Z,jitter:H};JSON.stringify(z)!==JSON.stringify(this.peerNetwork)&&this.cwsIns.emitNotify("onRoomNetwork",{code:200,data:z,desc:"room network is change."}),this.peerNetwork=z;const W=(J,Y,tt)=>{const X=Number(J),nt=Number(Y),dt=Number(tt);let et="0";return X<.03&&nt<100&&dt<.05?et="5":X<.06&&nt<160&&dt<.1?et="4":X<.1&&nt<250&&dt<.15?et="3":X<.15&&nt<400&&dt<.2?et="2":et="1",Number(et)};{const J=W(F,Z,H),Y=await this.getCaller(),{network:tt}=Y,X={egress:J,ingress:J},nt=JSON.stringify(tt)!==JSON.stringify(X);if(await this.updateUserNetwork(this.options.userId,X),nt){this.emitNotifyUpdateUsers();const{userId:dt,roomId:et}=this.options;this.cwsIns.sendMessage({event:"networkQualityChange",data:{...X,userId:dt,roomId:et}},!1)}}}catch(M){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe: setNetQuality is err.",M)}});K(this,"getReportsByMid",async($=[])=>$.length===0?this.reports:this.reports.filter(M=>$.includes(M.mid)));lt(this,Zt,async $=>{const M=["inbound-rtp","remote-inbound-rtp","outbound-rtp"];return new Promise(async R=>{let N=[];try{await this.peerIns.getStats($).then(e=>{N=[...e.values()].filter(A=>M.includes(A.type))})}catch{}R(N)})});lt(this,Ft,()=>{const $=async()=>{if(this.peerIns.connectionState!=="connected")return;const M=await G(this,Zt).call(this);G(this,Lt).call(this,M)};this.getPeerStatsTimer=setInterval($,1*1e3)});K(this,"stopGetPeerStats",()=>clearInterval(this.getPeerStatsTimer))}}Bt=new WeakMap,Lt=new WeakMap,Zt=new WeakMap,Ft=new WeakMap;class RoomCalls extends RoomPeer{constructor(){super();K(this,"sdk_service_version","1.0.3");lt(this,gt,!0);K(this,"setLocalStream",($,M)=>new Promise(async(R,N)=>{try{const{userId:e}=this.options;if(M?await this.changeLocalStream($):this.removeUserMediaStreamContext(e,$),$==="screenSharing_audio"||$==="screenSharing_video"){const U=this.getUserStream(e,$).getTracks();for(const L of U)L.onended=()=>this.stopPublish(["screenSharing_audio","screenSharing_video"])}const o=this.getUserStreams(e);this.cwsIns.emitNotify("onLocalStream",{code:200,data:o,desc:"local stream is change."}),R(o)}catch(e){N(e)}}));K(this,"addNotify",$=>this.cwsIns.addNotify($));K(this,"joinRoom",async $=>new Promise(async(M,R)=>{try{this.setOptions($),this.clearUsers(),this.clearUserStreams(),this.initPeer(),this.cwsIns.clearEvents(),await G(this,jt).call(this),this.setRoomState("connect");const{roomId:N,userId:e,callType:o}=this.options;await this.cwsIns.sendMessage({event:"joinRoom",data:{roomId:N,user:{id:e,callAction:0},callType:o}}).then(async A=>{const{code:U=0,desc:L="服务器繁忙",data:F}=A;if(U!==200)return R(L);const{roomId:Z="",roomUsers:H=[]}=F;if(Z!==N)return R("加入的房间不匹配");G(this,gt)&&this.createSession(),await this.updateUsers(H),this.setRoomState("connected"),await this.emitNotifyUpdateUsers();const z=await this.getUsers();M(z)})}catch(N){console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe:error",N),R(`加入房间失败: ${N.message||N||"服务器繁忙"}`)}}));K(this,"quitRoom",async()=>new Promise(async $=>{const{roomId:M,userId:R}=this.options,N={roomId:M,user:{id:R}};this.cwsIns.sendMessage({event:"quitRoom",data:N}),this.stopGetPeerStats(),this.asyncQueue.clear(),this.clearUsers(),this.clearUserStreams(),this.cwsIns.clearEvents(),await new Promise(e=>setTimeout(()=>e(!0),300)),$(!0)}));K(this,"syncRoomInfo",async()=>new Promise(async($,M)=>{const{userId:R}=this.options,N=await this.getUser(R),{id:e=R,callAction:o=0}=N;await this.cwsIns.sendMessage({event:"syncRoomInfo",data:{user:{id:e,callAction:o}}}).then(async A=>{if(A.code!==200)return M(A.desc);const U=A.data.users;this.clearUsers(),await this.updateUsers(U),await this.updateUsertracks(N.id,N.tracks,!1),await this.subscribe();{const L=await this.getUsers();$(L)}}).catch(A=>M(A))}));K(this,"publish",async($,M=3)=>{G(this,gt)&&await this.connectionICE();const R=()=>new Promise(async(N,e)=>{try{$.includes("screenSharing_audio")&&!$.includes("screenSharing_video")&&($=[...$,"screenSharing_video"]);const o=await this.getCaller(),A=[];for(const Z of $){this.getUserStream(o.id,Z).getTracks().length===0&&await this.setLocalStream(Z,!0);{const V=this.getUserStream(o.id,Z),[W]=V.getTracks();if(!W)continue;const J=await this.addSender(Z,W);J&&A.push(J)}}const U=[...o.tracks,...A],L=await this.getCallAction(U),F=async()=>{this.options.debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->quickvo: surplus publish count is ${M}`),await this.cwsIns.sendMessage({event:"publish",data:{sdp:this.getSdp(),tracks:A,callAction:L}}).then(async Z=>{const{code:H=0,desc:z,data:V}=Z;if(H!==200){if(M>0)return await new Promise(J=>setTimeout(()=>J(!0),300)),M=M-1,F();throw this.options.debug&&console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: publish is error. count 0",{mediaTypes:$}),new Error(z)}const{remoteSdp:W}=V;await this.setRemoteDescription({type:"answer",sdp:W}),await this.connectionICE(),await this.updateUsertracks(o.id,U,!0),await G(this,Rt).call(this,L),G(this,gt)||this.cwsIns.sendMessage({event:"pubNotify",data:{roomId:"",user:{id:o.id,tracks:A}}});{await this.emitNotifyUpdateUsers();const J=await this.getCaller();N(J)}})};await F()}catch(o){e(`发布本地流失败: ${o.message}`)}});return this.asyncQueue.add(R,{key:`publish: ${$.join("-")}`,timeout:10*M*1e3})});K(this,"stopPublish",async($=[])=>{const M=()=>new Promise(async(R,N)=>{try{const e=await this.getCaller();$.length===0&&($=mediaType_keys);const o=e.tracks.filter(({mediaType:U})=>U&&$.includes(U)),A=async()=>{const U=await this.getCaller();await this.emitNotifyUpdateUsers(),R(U)};if(o.length===0)return A();await this.closeUserTracks(e.id,o,!0);{const U=await this.getCallAction(e.tracks);await G(this,Rt).call(this,U)}await this.createOffer(),await this.cwsIns.sendMessage({event:"closeTrack",data:{sdp:this.getSdp(),tracks:o}}).then(async U=>{const{remoteSdp:L}=U.data;await this.setRemoteDescription({type:"answer",sdp:L})}),A()}catch(e){N(e)}});return this.asyncQueue.add(M,{key:`stopPublish: ${$.join("-")}`})});K(this,"subscribe",async($=[],M=3)=>{G(this,gt)&&await this.connectionICE();const R=()=>new Promise(async(N,e)=>{try{this.prohibitNotify=!0;const o=await this.getUsers();let A=[];for(const Z of o){const{isSelf:H,tracks:z=[]}=Z;if(!H){const V=z.filter(({trackName:W,mid:J=""})=>J!==""&&($.includes(W)||$.length===0));V.length!==0&&A.push({...Z,tracks:V})}}const U=async()=>{this.prohibitNotify=!1;const Z=Array.from(A,({id:z})=>z),H=await this.getUsers(Z);await this.emitNotifyUpdateUsers(),N(H)};if(A.length===0)return U();const L=[];for(const Z of A){const{id:H,tracks:z}=Z,V=mt(z,["type","trackName"]),W={id:H,tracks:V};L.push(W)}const F=async()=>{this.options.debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->quickvo: surplus subscribe count is ${M}`),await this.cwsIns.sendMessage({event:"subscribe",data:{users:L}}).then(async Z=>{const{code:H=0,data:z,desc:V}=Z;if(H!==200){if(M>0)return await new Promise(Y=>setTimeout(()=>Y(!0),300)),M=M-1,F();throw this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: subscribe is error. count 0",{trackNames:$}),new Error(V)}const{remoteSdp:W,users:J=[]}=z;this.onSubscribeUserTracks(J).then(()=>U()),await this.setRemoteDescription({type:"offer",sdp:W}),await this.renegotiate()})};await F()}catch(o){e(`订阅流失败: ${o.message}`)}});return this.asyncQueue.add(R,{timeout:30*M*1e3})});K(this,"stopSubscribe",async($=[])=>{const M=()=>new Promise(async(R,N)=>{try{const e=await this.getUsers(),o=[];for(const A of e){const{tracks:U=[]}=A;for(const L of U){const{type:F,mid:Z,trackName:H,mediaType:z,msid:V}=L;if(!(!z||!V)&&($.length===0||$.includes(H))){const W={type:F,mid:Z,trackName:V};o.push(W),await this.closeUserTracks(A.id,[L])}}}if(o.length===0)return R(!0);await this.createOffer(),await this.cwsIns.sendMessage({event:"closeTrack",data:{sdp:this.getSdp(),tracks:o}}).then(async A=>{const{remoteSdp:U}=A.data;await this.setRemoteDescription({type:"answer",sdp:U})}),await this.emitNotifyUpdateUsers(),R(!0)}catch(e){N(`停止订阅流: ${e.message}`)}});return this.asyncQueue.add(M,{key:"stopSubscribe"})});K(this,"inactiveTracks",async($,M)=>{const R=async()=>{const N=await this.getCaller();if(!N)return;const{tracks:e=[]}=N,o=[...e];for(let U of o){const{mediaType:L}=U;if(L&&$.includes(L)){U.enabled=M;const Z=(await this.getUserStream(N.id,L)).getTracks();for(const H of Z)H.enabled=M}}const A=await this.getCallAction(o);await G(this,Rt).call(this,A),await this.emitNotifyUpdateUsers()};return this.asyncQueue.add(R,{key:"inactiveTracks"})});K(this,"debugger",()=>new Promise(async($,M)=>{await this.cwsIns.sendMessage({event:"debugger"},!1).then(async R=>{if(R.code!==200)return M(R.desc);$(!0)}).catch(R=>{M(R)})}));lt(this,Rt,async $=>new Promise(async(M,R)=>{const{roomId:N,userId:e}=this.options,o={roomId:N,user:{id:e,callAction:$}};await this.cwsIns.sendMessage({event:"updateCall",data:o}).then(async A=>{const{code:U=0}=A;if(U!==200)return R(A);await this.updateUserCallAction(e,$),M($)}).catch(A=>R(A))}));K(this,"createSession",async()=>(await this.initSender(),new Promise(async($,M)=>await this.cwsIns.sendMessage({event:"connectCF",data:{sdp:this.getSdp()}}).then(async R=>{const{code:N=0,desc:e,data:o}=R;if(N!==200)return M(e);const{remoteSdp:A}=o;await this.setRemoteDescription({type:"answer",sdp:A}),await this.connectionICE(),$(!0)}))));K(this,"renegotiate",async()=>new Promise(async($,M)=>{await this.createAnswer(),await this.cwsIns.sendMessage({event:"renegotiate",data:{sdp:this.getSdp()}}).then(async R=>{if(R.code!==200)return M("协商流错误");$(!0)}).catch(R=>{console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe:error",R),M(`协商流错误: ${R.message||R}`)})}));lt(this,jt,async()=>new Promise(async($,M)=>{try{this.setRoomState("checkAuth");const{appid:R}=this.options,{userId:N,sdkToken:e,roomId:o}=this.options,A={a:e,b:N,c:R,r:o,v:this.sdk_service_version},U=btoa(encodeURI(JSON.stringify(A)));await this.cwsIns.connect(U),$(!0)}catch(R){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe:error",R),M(R)}}));this.setRoomState("ready")}}gt=new WeakMap,Rt=new WeakMap,jt=new WeakMap;class Room extends RoomCalls{constructor(){super()}}class QuickVO extends Room{constructor($){super();lt(this,$t,new Map);lt(this,Ht,()=>{{const $=async M=>{const{qualities:R}=M.data;for(const N of R){const{userId:e,egress:o,ingress:A}=N;if(!this.checkUserInRoom(e))return;await this.updateUserNetwork(e,{egress:o,ingress:A})}await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onNetQuality",callback:$},!0)}{const $=async M=>{const R=M.data.user;await this.updateUsers([R]),await this.updateUsertracks(R.id,R.track,!1),await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onJoinRoom",callback:$},!0)}{const $=async M=>{await this.removeUsers([M.data.user.id]),await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onQuitRoom",callback:$},!0)}{const $=async M=>{await this.updateUsers([M.data.user]);{const R=M.data.user,{id:N,tracks:e=[]}=R;await this.updateUsertracks(N,e,!0)}if(this.options.newPublishAutoSubscribe){const R=this.getTrackNamesFormTracks(M.data.user.tracks);await this.subscribe(R)}else await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onPublish",callback:$},!0)}{const $=async M=>{const{id:R,tracks:N}=M.data.user;this.checkUserInRoom(R)&&(await this.closeUserTracks(R,N,!0),await this.emitNotifyUpdateUsers())};this.cwsIns.addNotify({event:"onCloseTrack",callback:$},!0)}{const $=async M=>{const{id:R,callAction:N}=M.data.user;if(!this.checkUserInRoom(R))return;const e=await this.getUser(R),{tracks:o=[]}=e,A=this.getUserStreams(R),U=this.getCallActionMap(N),L=[];for(const F of o){const{type:Z}=F,H=mediaType_keys[Z],z=U[H];if(Z===0){const{microphoneCamera_audio:W}=A,J=W.getTracks();for(const Y of J)Y.enabled=z}if(Z===1){const{microphoneCamera_video:W}=A,J=W.getTracks();for(const Y of J)Y.enabled=z}if(Z===2){const{screenSharing_video:W}=A,J=W.getTracks();for(const Y of J)Y.enabled=z}if(Z===3){const{screenSharing_audio:W}=A,J=W.getTracks();for(const Y of J)Y.enabled=z}const V={...F,enabled:z};L.push(V)}await this.updateUsertracks(R,L,!0),await this.updateUserCallAction(R,N),this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onUpdateCall",callback:$},!0)}{const $=async M=>{const{user:R}=M.data,{id:N,permissions:e=1}=R;e===1?await this.removeUsers([N]):e===3&&await this.updateUsers([R]),await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onUpdatePermissions",callback:$},!0)}this.cwsIns.addNotify({event:"onTokenExpired",callback:async $=>this.destroy()},!0),this.cwsIns.addNotify({event:"destroyRoom",callback:this.destroy},!0)});lt(this,zt,()=>{this.cwsIns.onReconnectSuccess=async()=>{this.syncRoomInfo()}});lt(this,Jt,async()=>{this.cwsIns.onReconnectStop=async()=>{this.destroy()}});K(this,"addRequestAnimationFrame",async($,M)=>{{const N=G(this,$t).get($);N&&cancelAnimationFrame(N)}const R=(N=Date.now())=>{M(N);const e=requestAnimationFrame(R);G(this,$t).set($,e)};R()});K(this,"clearRequestAnimationFrame",async($=[])=>{$.length===0&&($=[...G(this,$t).keys()]);const M=[];for(const R of $){const N=G(this,$t).get(R);N&&(cancelAnimationFrame(N),M.push(N))}return M});K(this,"destroy",async()=>{this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 销毁SDK"),this.stopGetPeerStats(),this.asyncQueue.clear(),this.clearUsers(),this.clearUserStreams(),this.cwsIns.clearEvents(),this.cwsIns.emitNotify("onDestroy",{code:200,data:{},desc:"sdk is destroy."}),await this.cwsIns.close()});this.setOptions($),this.initCwsCall(),G(this,zt).call(this),G(this,Jt).call(this),G(this,Ht).call(this)}}$t=new WeakMap,Ht=new WeakMap,zt=new WeakMap,Jt=new WeakMap,exports.QuickVO=QuickVO,exports.ignoreEvent=ignoreEvent,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
3
+ `},writer$1}var hasRequiredLib;function requireLib(){if(hasRequiredLib)return lib;hasRequiredLib=1;var _=requireParser(),D=requireWriter$1(),$=requireGrammar();return lib.grammar=$,lib.write=D,lib.parse=_.parse,lib.parseParams=_.parseParams,lib.parseFmtpConfig=_.parseFmtpConfig,lib.parsePayloads=_.parsePayloads,lib.parseRemoteCandidates=_.parseRemoteCandidates,lib.parseImageAttributes=_.parseImageAttributes,lib.parseSimulcastStreamList=_.parseSimulcastStreamList,lib}var libExports=requireLib();class AudioMediaContext{constructor(D){K(this,"options",{autoGainControl:!1,noiseSuppression:!1,echoCancellation:!1});K(this,"kind","audio");K(this,"stream",new MediaStream);K(this,"audio",new Audio);K(this,"audioContext",new(window.AudioContext||window.webkitAudioContext));K(this,"mediaStreamAudioSourceNode");K(this,"autoGainNode");K(this,"biquadFilterNode");K(this,"delayNode");K(this,"gainNode");K(this,"analyserNode");K(this,"analyserArrayData");K(this,"stop",()=>{const D=this.stream.getTracks();for(const $ of D)$.enabled=!1,$.stop(),this.stream.removeTrack($)});K(this,"replaceStream",D=>{this.stop();const[$]=D.getAudioTracks();this.stream.addTrack($)});K(this,"getStream",()=>this.mediaStreamAudioSourceNode.mediaStream);K(this,"setMute",(D=!0)=>{D?this.analyserNode.disconnect(this.audioContext.destination):this.analyserNode.connect(this.audioContext.destination)});K(this,"setVolumeGain",D=>{this.gainNode.gain.setValueAtTime(D,this.audioContext.currentTime)});K(this,"getVolume",()=>{const{analyserNode:D,analyserArrayData:$}=this;D.getByteFrequencyData($);let M=0;for(let N=0;N<$.length;N++)M+=$[N];return Math.ceil(M/$.length)});K(this,"setFilter",(D={})=>{this.options={...this.options,...D};const{autoGainControl:$,noiseSuppression:M,echoCancellation:R}=this.options,{mediaStreamAudioSourceNode:N,autoGainNode:e,biquadFilterNode:o,delayNode:A,gainNode:U}=this,L=N;return $&&L.connect(e),M&&L.connect(o),R&&L.connect(A),L.connect(U),D});this.stream.addTrack(D),this.audio.srcObject=this.stream,this.audioContext=new(window.AudioContext||window.webkitAudioContext),this.mediaStreamAudioSourceNode=this.audioContext.createMediaStreamSource(this.stream),this.autoGainNode=this.audioContext.createGain(),this.autoGainNode.gain.setValueAtTime(.8,this.audioContext.currentTime),this.biquadFilterNode=this.audioContext.createBiquadFilter(),this.biquadFilterNode.type="lowpass",this.biquadFilterNode.frequency.value=1e3,this.delayNode=this.audioContext.createDelay(),this.delayNode.delayTime.value=.5,this.gainNode=this.audioContext.createGain(),this.gainNode.gain.setValueAtTime(.5,this.audioContext.currentTime),this.analyserNode=this.audioContext.createAnalyser(),this.analyserNode.fftSize=1024,this.analyserArrayData=new Uint8Array(this.analyserNode.frequencyBinCount);const{gainNode:$,analyserNode:M}=this;$.connect(M),this.audioContext.state==="suspended"?document.addEventListener("touchend",()=>{this.audioContext.resume().then(()=>this.setFilter())},{once:!0}):this.setFilter()}}class VideoMediaContext{constructor(D){K(this,"kind","video");K(this,"stream",new MediaStream);K(this,"stop",()=>{const D=this.stream.getTracks();for(const $ of D)$.enabled=!1,$.stop(),this.stream.removeTrack($)});K(this,"replaceStream",D=>{this.stop();const[$]=D.getVideoTracks();this.stream.addTrack($)});K(this,"getStream",()=>this.stream);this.stream.addTrack(D)}}const enum_roomState={ready:"已就绪",checkAuth:"正在鉴权",connect:"连接中",connected:"已连接",reconnect:"正在重新连接",disconnected:"已断开"};ut(enum_roomState);var S=Object.defineProperty,v=_=>{throw TypeError(_)},I=(_,D,$)=>D in _?S(_,D,{enumerable:!0,configurable:!0,writable:!0,value:$}):_[D]=$,l$1=(_,D,$)=>I(_,typeof D!="symbol"?D+"":D,$),C=(_,D,$)=>D.has(_)||v("Cannot "+$),t=(_,D,$)=>(C(_,D,"read from private field"),$?$.call(_):D.get(_)),c=(_,D,$)=>D.has(_)?v("Cannot add the same private member more than once"):D instanceof WeakSet?D.add(_):D.set(_,$),i=(_,D,$,M)=>(C(_,D,"write to private field"),D.set(_,$),$),s$1,r,h,p,m$1,f,d$1,x,g,b,B,y$1,T,w;let k$1=class{constructor(D){c(this,s$1,{url:"",binaryType:"blob",timeout:6*1e3,debug:!1,sendBeforAutoConnect:!1,reconnectCount:-1,reconnectTime:60*1e3,reconnectIntervalTime:5e3,heartbeatIntervalTime:1e4,checkReconnect:$=>!0,onReconnectSuccess:async $=>{},onReconnectStop:async $=>{},getHeartbeatMsg:()=>JSON.stringify({event:"heartbeat"}),onMessage:$=>{}}),l$1(this,"ws"),c(this,r,-1),c(this,h,-1),c(this,p,0),c(this,m$1,0),c(this,f,!1),c(this,d$1,$=>{}),l$1(this,"close",async($=1e3,M="correctly close.")=>{var R;this.ws&&(i(this,f,!0),t(this,w).call(this),(R=this.ws)==null||R.close($,M))}),l$1(this,"connect",()=>new Promise(async $=>{i(this,d$1,$),this.ws=new WebSocket(t(this,s$1).url),this.ws.binaryType=t(this,s$1).binaryType,this.ws.onopen=t(this,b),this.ws.onmessage=t(this,g),this.ws.onerror=t(this,B),this.ws.onclose=t(this,y$1)})),l$1(this,"reconnect",async $=>new Promise((M,R)=>{t(this,s$1).debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: await reconnect.");const N=e=>(t(this,s$1).debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;",`------->pr-ws: ${e}`),t(this,s$1).onReconnectStop({msg:e}),R(e));if(t(this,x).call(this)===!1)return N("stop reconnect. exceed maxReconnectionTime.");if(t(this,r)!==-1&&t(this,r)===0)return N("stop reconnect. surplusReconnectCount is 0.");if(!t(this,s$1).checkReconnect($))return N("stop reconnect. checkReconnect is false.");t(this,s$1).debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;",`------->pr-ws: await ${t(this,s$1).reconnectIntervalTime}ms run reconnect. surplusReconnectCount is ${t(this,r)}`,$),i(this,p,setTimeout(async()=>{i(this,r,Math.max(-1,t(this,r)-1)),await this.connect();try{await t(this,s$1).onReconnectSuccess(this.ws)}catch(e){console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->pr-ws: onReconnectSuccess is error",e)}M(!0)},t(this,s$1).reconnectIntervalTime))})),l$1(this,"sendMessage",async $=>{var M;(!this.ws||this.ws.readyState!==1)&&(t(this,s$1).debug&&console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: ws is not ready."),t(this,s$1).sendBeforAutoConnect&&(t(this,s$1).debug&&console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: await ws connect."),await this.connect())),(M=this.ws)==null||M.send($)}),c(this,x,()=>{const $=Date.now();return t(this,h)===-1&&i(this,h,$+t(this,s$1).reconnectTime),!($>t(this,h))}),c(this,g,$=>{const{data:M}=$;t(this,s$1).onMessage(M)}),c(this,b,()=>{t(this,s$1).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: connect is success.",this.ws),i(this,r,t(this,s$1).reconnectCount),i(this,h,-1),t(this,T).call(this),t(this,d$1).call(this,this.ws)}),c(this,B,$=>{t(this,s$1).debug&&console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;","------->pr-ws: connect is error.",$)}),c(this,y$1,$=>{if(t(this,s$1).debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;padding:16px 0;",`------->pr-ws: connect is close. code: ${$.code}, permanentClosed is ${t(this,f)}.`,$),t(this,w).call(this),!t(this,f)&&$.code!==1e3)return this.reconnect($);this.ws=void 0}),c(this,T,()=>{i(this,m$1,setInterval(()=>{const $=t(this,s$1).getHeartbeatMsg();$&&this.sendMessage($)},t(this,s$1).heartbeatIntervalTime))}),c(this,w,()=>{clearInterval(t(this,p)),clearInterval(t(this,m$1))}),i(this,s$1,{...t(this,s$1),...D}),i(this,r,t(this,s$1).reconnectCount)}};s$1=new WeakMap,r=new WeakMap,h=new WeakMap,p=new WeakMap,m$1=new WeakMap,f=new WeakMap,d$1=new WeakMap,x=new WeakMap,g=new WeakMap,b=new WeakMap,B=new WeakMap,y$1=new WeakMap,T=new WeakMap,w=new WeakMap;var indexMinimal={},minimal$1={},aspromise,hasRequiredAspromise;function requireAspromise(){if(hasRequiredAspromise)return aspromise;hasRequiredAspromise=1,aspromise=_;function _(D,$){for(var M=new Array(arguments.length-1),R=0,N=2,e=!0;N<arguments.length;)M[R++]=arguments[N++];return new Promise(function(A,U){M[R]=function(F){if(e)if(e=!1,F)U(F);else{for(var Z=new Array(arguments.length-1),H=0;H<Z.length;)Z[H++]=arguments[H];A.apply(null,Z)}};try{D.apply($||null,M)}catch(L){e&&(e=!1,U(L))}})}return aspromise}var base64={},hasRequiredBase64;function requireBase64(){return hasRequiredBase64||(hasRequiredBase64=1,function(_){var D=_;D.length=function(o){var A=o.length;if(!A)return 0;for(var U=0;--A%4>1&&o.charAt(A)==="=";)++U;return Math.ceil(o.length*3)/4-U};for(var $=new Array(64),M=new Array(123),R=0;R<64;)M[$[R]=R<26?R+65:R<52?R+71:R<62?R-4:R-59|43]=R++;D.encode=function(o,A,U){for(var L=null,F=[],Z=0,H=0,z;A<U;){var G=o[A++];switch(H){case 0:F[Z++]=$[G>>2],z=(G&3)<<4,H=1;break;case 1:F[Z++]=$[z|G>>4],z=(G&15)<<2,H=2;break;case 2:F[Z++]=$[z|G>>6],F[Z++]=$[G&63],H=0;break}Z>8191&&((L||(L=[])).push(String.fromCharCode.apply(String,F)),Z=0)}return H&&(F[Z++]=$[z],F[Z++]=61,H===1&&(F[Z++]=61)),L?(Z&&L.push(String.fromCharCode.apply(String,F.slice(0,Z))),L.join("")):String.fromCharCode.apply(String,F.slice(0,Z))};var N="invalid encoding";D.decode=function(o,A,U){for(var L=U,F=0,Z,H=0;H<o.length;){var z=o.charCodeAt(H++);if(z===61&&F>1)break;if((z=M[z])===void 0)throw Error(N);switch(F){case 0:Z=z,F=1;break;case 1:A[U++]=Z<<2|(z&48)>>4,Z=z,F=2;break;case 2:A[U++]=(Z&15)<<4|(z&60)>>2,Z=z,F=3;break;case 3:A[U++]=(Z&3)<<6|z,F=0;break}}if(F===1)throw Error(N);return U-L},D.test=function(o){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(o)}}(base64)),base64}var eventemitter,hasRequiredEventemitter;function requireEventemitter(){if(hasRequiredEventemitter)return eventemitter;hasRequiredEventemitter=1,eventemitter=_;function _(){this._listeners={}}return _.prototype.on=function($,M,R){return(this._listeners[$]||(this._listeners[$]=[])).push({fn:M,ctx:R||this}),this},_.prototype.off=function($,M){if($===void 0)this._listeners={};else if(M===void 0)this._listeners[$]=[];else for(var R=this._listeners[$],N=0;N<R.length;)R[N].fn===M?R.splice(N,1):++N;return this},_.prototype.emit=function($){var M=this._listeners[$];if(M){for(var R=[],N=1;N<arguments.length;)R.push(arguments[N++]);for(N=0;N<M.length;)M[N].fn.apply(M[N++].ctx,R)}return this},eventemitter}var float,hasRequiredFloat;function requireFloat(){if(hasRequiredFloat)return float;hasRequiredFloat=1,float=_(_);function _(N){return typeof Float32Array<"u"?function(){var e=new Float32Array([-0]),o=new Uint8Array(e.buffer),A=o[3]===128;function U(H,z,G){e[0]=H,z[G]=o[0],z[G+1]=o[1],z[G+2]=o[2],z[G+3]=o[3]}function L(H,z,G){e[0]=H,z[G]=o[3],z[G+1]=o[2],z[G+2]=o[1],z[G+3]=o[0]}N.writeFloatLE=A?U:L,N.writeFloatBE=A?L:U;function F(H,z){return o[0]=H[z],o[1]=H[z+1],o[2]=H[z+2],o[3]=H[z+3],e[0]}function Z(H,z){return o[3]=H[z],o[2]=H[z+1],o[1]=H[z+2],o[0]=H[z+3],e[0]}N.readFloatLE=A?F:Z,N.readFloatBE=A?Z:F}():function(){function e(A,U,L,F){var Z=U<0?1:0;if(Z&&(U=-U),U===0)A(1/U>0?0:2147483648,L,F);else if(isNaN(U))A(2143289344,L,F);else if(U>34028234663852886e22)A((Z<<31|2139095040)>>>0,L,F);else if(U<11754943508222875e-54)A((Z<<31|Math.round(U/1401298464324817e-60))>>>0,L,F);else{var H=Math.floor(Math.log(U)/Math.LN2),z=Math.round(U*Math.pow(2,-H)*8388608)&8388607;A((Z<<31|H+127<<23|z)>>>0,L,F)}}N.writeFloatLE=e.bind(null,D),N.writeFloatBE=e.bind(null,$);function o(A,U,L){var F=A(U,L),Z=(F>>31)*2+1,H=F>>>23&255,z=F&8388607;return H===255?z?NaN:Z*(1/0):H===0?Z*1401298464324817e-60*z:Z*Math.pow(2,H-150)*(z+8388608)}N.readFloatLE=o.bind(null,M),N.readFloatBE=o.bind(null,R)}(),typeof Float64Array<"u"?function(){var e=new Float64Array([-0]),o=new Uint8Array(e.buffer),A=o[7]===128;function U(H,z,G){e[0]=H,z[G]=o[0],z[G+1]=o[1],z[G+2]=o[2],z[G+3]=o[3],z[G+4]=o[4],z[G+5]=o[5],z[G+6]=o[6],z[G+7]=o[7]}function L(H,z,G){e[0]=H,z[G]=o[7],z[G+1]=o[6],z[G+2]=o[5],z[G+3]=o[4],z[G+4]=o[3],z[G+5]=o[2],z[G+6]=o[1],z[G+7]=o[0]}N.writeDoubleLE=A?U:L,N.writeDoubleBE=A?L:U;function F(H,z){return o[0]=H[z],o[1]=H[z+1],o[2]=H[z+2],o[3]=H[z+3],o[4]=H[z+4],o[5]=H[z+5],o[6]=H[z+6],o[7]=H[z+7],e[0]}function Z(H,z){return o[7]=H[z],o[6]=H[z+1],o[5]=H[z+2],o[4]=H[z+3],o[3]=H[z+4],o[2]=H[z+5],o[1]=H[z+6],o[0]=H[z+7],e[0]}N.readDoubleLE=A?F:Z,N.readDoubleBE=A?Z:F}():function(){function e(A,U,L,F,Z,H){var z=F<0?1:0;if(z&&(F=-F),F===0)A(0,Z,H+U),A(1/F>0?0:2147483648,Z,H+L);else if(isNaN(F))A(0,Z,H+U),A(2146959360,Z,H+L);else if(F>17976931348623157e292)A(0,Z,H+U),A((z<<31|2146435072)>>>0,Z,H+L);else{var G;if(F<22250738585072014e-324)G=F/5e-324,A(G>>>0,Z,H+U),A((z<<31|G/4294967296)>>>0,Z,H+L);else{var W=Math.floor(Math.log(F)/Math.LN2);W===1024&&(W=1023),G=F*Math.pow(2,-W),A(G*4503599627370496>>>0,Z,H+U),A((z<<31|W+1023<<20|G*1048576&1048575)>>>0,Z,H+L)}}}N.writeDoubleLE=e.bind(null,D,0,4),N.writeDoubleBE=e.bind(null,$,4,0);function o(A,U,L,F,Z){var H=A(F,Z+U),z=A(F,Z+L),G=(z>>31)*2+1,W=z>>>20&2047,J=4294967296*(z&1048575)+H;return W===2047?J?NaN:G*(1/0):W===0?G*5e-324*J:G*Math.pow(2,W-1075)*(J+4503599627370496)}N.readDoubleLE=o.bind(null,M,0,4),N.readDoubleBE=o.bind(null,R,4,0)}(),N}function D(N,e,o){e[o]=N&255,e[o+1]=N>>>8&255,e[o+2]=N>>>16&255,e[o+3]=N>>>24}function $(N,e,o){e[o]=N>>>24,e[o+1]=N>>>16&255,e[o+2]=N>>>8&255,e[o+3]=N&255}function M(N,e){return(N[e]|N[e+1]<<8|N[e+2]<<16|N[e+3]<<24)>>>0}function R(N,e){return(N[e]<<24|N[e+1]<<16|N[e+2]<<8|N[e+3])>>>0}return float}var inquire_1,hasRequiredInquire;function requireInquire(){if(hasRequiredInquire)return inquire_1;hasRequiredInquire=1,inquire_1=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(_){}return null}return inquire_1}var utf8={},hasRequiredUtf8;function requireUtf8(){return hasRequiredUtf8||(hasRequiredUtf8=1,function(_){var D=_;D.length=function(M){for(var R=0,N=0,e=0;e<M.length;++e)N=M.charCodeAt(e),N<128?R+=1:N<2048?R+=2:(N&64512)===55296&&(M.charCodeAt(e+1)&64512)===56320?(++e,R+=4):R+=3;return R},D.read=function(M,R,N){var e=N-R;if(e<1)return"";for(var o=null,A=[],U=0,L;R<N;)L=M[R++],L<128?A[U++]=L:L>191&&L<224?A[U++]=(L&31)<<6|M[R++]&63:L>239&&L<365?(L=((L&7)<<18|(M[R++]&63)<<12|(M[R++]&63)<<6|M[R++]&63)-65536,A[U++]=55296+(L>>10),A[U++]=56320+(L&1023)):A[U++]=(L&15)<<12|(M[R++]&63)<<6|M[R++]&63,U>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,A)),U=0);return o?(U&&o.push(String.fromCharCode.apply(String,A.slice(0,U))),o.join("")):String.fromCharCode.apply(String,A.slice(0,U))},D.write=function(M,R,N){for(var e=N,o,A,U=0;U<M.length;++U)o=M.charCodeAt(U),o<128?R[N++]=o:o<2048?(R[N++]=o>>6|192,R[N++]=o&63|128):(o&64512)===55296&&((A=M.charCodeAt(U+1))&64512)===56320?(o=65536+((o&1023)<<10)+(A&1023),++U,R[N++]=o>>18|240,R[N++]=o>>12&63|128,R[N++]=o>>6&63|128,R[N++]=o&63|128):(R[N++]=o>>12|224,R[N++]=o>>6&63|128,R[N++]=o&63|128);return N-e}}(utf8)),utf8}var pool_1,hasRequiredPool;function requirePool(){if(hasRequiredPool)return pool_1;hasRequiredPool=1,pool_1=_;function _(D,$,M){var R=M||8192,N=R>>>1,e=null,o=R;return function(U){if(U<1||U>N)return D(U);o+U>R&&(e=D(R),o=0);var L=$.call(e,o,o+=U);return o&7&&(o=(o|7)+1),L}}return pool_1}var longbits,hasRequiredLongbits;function requireLongbits(){if(hasRequiredLongbits)return longbits;hasRequiredLongbits=1,longbits=D;var _=requireMinimal$1();function D(N,e){this.lo=N>>>0,this.hi=e>>>0}var $=D.zero=new D(0,0);$.toNumber=function(){return 0},$.zzEncode=$.zzDecode=function(){return this},$.length=function(){return 1};var M=D.zeroHash="\0\0\0\0\0\0\0\0";D.fromNumber=function(e){if(e===0)return $;var o=e<0;o&&(e=-e);var A=e>>>0,U=(e-A)/4294967296>>>0;return o&&(U=~U>>>0,A=~A>>>0,++A>4294967295&&(A=0,++U>4294967295&&(U=0))),new D(A,U)},D.from=function(e){if(typeof e=="number")return D.fromNumber(e);if(_.isString(e))if(_.Long)e=_.Long.fromString(e);else return D.fromNumber(parseInt(e,10));return e.low||e.high?new D(e.low>>>0,e.high>>>0):$},D.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var o=~this.lo+1>>>0,A=~this.hi>>>0;return o||(A=A+1>>>0),-(o+A*4294967296)}return this.lo+this.hi*4294967296},D.prototype.toLong=function(e){return _.Long?new _.Long(this.lo|0,this.hi|0,!!e):{low:this.lo|0,high:this.hi|0,unsigned:!!e}};var R=String.prototype.charCodeAt;return D.fromHash=function(e){return e===M?$:new D((R.call(e,0)|R.call(e,1)<<8|R.call(e,2)<<16|R.call(e,3)<<24)>>>0,(R.call(e,4)|R.call(e,5)<<8|R.call(e,6)<<16|R.call(e,7)<<24)>>>0)},D.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},D.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},D.prototype.zzDecode=function(){var e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},D.prototype.length=function(){var e=this.lo,o=(this.lo>>>28|this.hi<<4)>>>0,A=this.hi>>>24;return A===0?o===0?e<16384?e<128?1:2:e<2097152?3:4:o<16384?o<128?5:6:o<2097152?7:8:A<128?9:10},longbits}var hasRequiredMinimal$1;function requireMinimal$1(){return hasRequiredMinimal$1||(hasRequiredMinimal$1=1,function(_){var D=_;D.asPromise=requireAspromise(),D.base64=requireBase64(),D.EventEmitter=requireEventemitter(),D.float=requireFloat(),D.inquire=requireInquire(),D.utf8=requireUtf8(),D.pool=requirePool(),D.LongBits=requireLongbits(),D.isNode=!!(typeof commonjsGlobal<"u"&&commonjsGlobal&&commonjsGlobal.process&&commonjsGlobal.process.versions&&commonjsGlobal.process.versions.node),D.global=D.isNode&&commonjsGlobal||typeof window<"u"&&window||typeof self<"u"&&self||minimal$1,D.emptyArray=Object.freeze?Object.freeze([]):[],D.emptyObject=Object.freeze?Object.freeze({}):{},D.isInteger=Number.isInteger||function(N){return typeof N=="number"&&isFinite(N)&&Math.floor(N)===N},D.isString=function(N){return typeof N=="string"||N instanceof String},D.isObject=function(N){return N&&typeof N=="object"},D.isset=D.isSet=function(N,e){var o=N[e];return o!=null&&N.hasOwnProperty(e)?typeof o!="object"||(Array.isArray(o)?o.length:Object.keys(o).length)>0:!1},D.Buffer=function(){try{var R=D.inquire("buffer").Buffer;return R.prototype.utf8Write?R:null}catch{return null}}(),D._Buffer_from=null,D._Buffer_allocUnsafe=null,D.newBuffer=function(N){return typeof N=="number"?D.Buffer?D._Buffer_allocUnsafe(N):new D.Array(N):D.Buffer?D._Buffer_from(N):typeof Uint8Array>"u"?N:new Uint8Array(N)},D.Array=typeof Uint8Array<"u"?Uint8Array:Array,D.Long=D.global.dcodeIO&&D.global.dcodeIO.Long||D.global.Long||D.inquire("long"),D.key2Re=/^true|false|0|1$/,D.key32Re=/^-?(?:0|[1-9][0-9]*)$/,D.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,D.longToHash=function(N){return N?D.LongBits.from(N).toHash():D.LongBits.zeroHash},D.longFromHash=function(N,e){var o=D.LongBits.fromHash(N);return D.Long?D.Long.fromBits(o.lo,o.hi,e):o.toNumber(!!e)};function $(R,N,e){for(var o=Object.keys(N),A=0;A<o.length;++A)(R[o[A]]===void 0||!e)&&(R[o[A]]=N[o[A]]);return R}D.merge=$,D.lcFirst=function(N){return N.charAt(0).toLowerCase()+N.substring(1)};function M(R){function N(e,o){if(!(this instanceof N))return new N(e,o);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,N):Object.defineProperty(this,"stack",{value:new Error().stack||""}),o&&$(this,o)}return N.prototype=Object.create(Error.prototype,{constructor:{value:N,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return R},set:void 0,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),N}D.newError=M,D.ProtocolError=M("ProtocolError"),D.oneOfGetter=function(N){for(var e={},o=0;o<N.length;++o)e[N[o]]=1;return function(){for(var A=Object.keys(this),U=A.length-1;U>-1;--U)if(e[A[U]]===1&&this[A[U]]!==void 0&&this[A[U]]!==null)return A[U]}},D.oneOfSetter=function(N){return function(e){for(var o=0;o<N.length;++o)N[o]!==e&&delete this[N[o]]}},D.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},D._configure=function(){var R=D.Buffer;if(!R){D._Buffer_from=D._Buffer_allocUnsafe=null;return}D._Buffer_from=R.from!==Uint8Array.from&&R.from||function(e,o){return new R(e,o)},D._Buffer_allocUnsafe=R.allocUnsafe||function(e){return new R(e)}}}(minimal$1)),minimal$1}var writer,hasRequiredWriter;function requireWriter(){if(hasRequiredWriter)return writer;hasRequiredWriter=1,writer=A;var _=requireMinimal$1(),D,$=_.LongBits,M=_.base64,R=_.utf8;function N(W,J,Y){this.fn=W,this.len=J,this.next=void 0,this.val=Y}function e(){}function o(W){this.head=W.head,this.tail=W.tail,this.len=W.len,this.next=W.states}function A(){this.len=0,this.head=new N(e,0,0),this.tail=this.head,this.states=null}var U=function(){return _.Buffer?function(){return(A.create=function(){return new D})()}:function(){return new A}};A.create=U(),A.alloc=function(J){return new _.Array(J)},_.Array!==Array&&(A.alloc=_.pool(A.alloc,_.Array.prototype.subarray)),A.prototype._push=function(J,Y,tt){return this.tail=this.tail.next=new N(J,Y,tt),this.len+=Y,this};function L(W,J,Y){J[Y]=W&255}function F(W,J,Y){for(;W>127;)J[Y++]=W&127|128,W>>>=7;J[Y]=W}function Z(W,J){this.len=W,this.next=void 0,this.val=J}Z.prototype=Object.create(N.prototype),Z.prototype.fn=F,A.prototype.uint32=function(J){return this.len+=(this.tail=this.tail.next=new Z((J=J>>>0)<128?1:J<16384?2:J<2097152?3:J<268435456?4:5,J)).len,this},A.prototype.int32=function(J){return J<0?this._push(H,10,$.fromNumber(J)):this.uint32(J)},A.prototype.sint32=function(J){return this.uint32((J<<1^J>>31)>>>0)};function H(W,J,Y){for(;W.hi;)J[Y++]=W.lo&127|128,W.lo=(W.lo>>>7|W.hi<<25)>>>0,W.hi>>>=7;for(;W.lo>127;)J[Y++]=W.lo&127|128,W.lo=W.lo>>>7;J[Y++]=W.lo}A.prototype.uint64=function(J){var Y=$.from(J);return this._push(H,Y.length(),Y)},A.prototype.int64=A.prototype.uint64,A.prototype.sint64=function(J){var Y=$.from(J).zzEncode();return this._push(H,Y.length(),Y)},A.prototype.bool=function(J){return this._push(L,1,J?1:0)};function z(W,J,Y){J[Y]=W&255,J[Y+1]=W>>>8&255,J[Y+2]=W>>>16&255,J[Y+3]=W>>>24}A.prototype.fixed32=function(J){return this._push(z,4,J>>>0)},A.prototype.sfixed32=A.prototype.fixed32,A.prototype.fixed64=function(J){var Y=$.from(J);return this._push(z,4,Y.lo)._push(z,4,Y.hi)},A.prototype.sfixed64=A.prototype.fixed64,A.prototype.float=function(J){return this._push(_.float.writeFloatLE,4,J)},A.prototype.double=function(J){return this._push(_.float.writeDoubleLE,8,J)};var G=_.Array.prototype.set?function(J,Y,tt){Y.set(J,tt)}:function(J,Y,tt){for(var X=0;X<J.length;++X)Y[tt+X]=J[X]};return A.prototype.bytes=function(J){var Y=J.length>>>0;if(!Y)return this._push(L,1,0);if(_.isString(J)){var tt=A.alloc(Y=M.length(J));M.decode(J,tt,0),J=tt}return this.uint32(Y)._push(G,Y,J)},A.prototype.string=function(J){var Y=R.length(J);return Y?this.uint32(Y)._push(R.write,Y,J):this._push(L,1,0)},A.prototype.fork=function(){return this.states=new o(this),this.head=this.tail=new N(e,0,0),this.len=0,this},A.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new N(e,0,0),this.len=0),this},A.prototype.ldelim=function(){var J=this.head,Y=this.tail,tt=this.len;return this.reset().uint32(tt),tt&&(this.tail.next=J.next,this.tail=Y,this.len+=tt),this},A.prototype.finish=function(){for(var J=this.head.next,Y=this.constructor.alloc(this.len),tt=0;J;)J.fn(J.val,Y,tt),tt+=J.len,J=J.next;return Y},A._configure=function(W){D=W,A.create=U(),D._configure()},writer}var writer_buffer,hasRequiredWriter_buffer;function requireWriter_buffer(){if(hasRequiredWriter_buffer)return writer_buffer;hasRequiredWriter_buffer=1,writer_buffer=$;var _=requireWriter();($.prototype=Object.create(_.prototype)).constructor=$;var D=requireMinimal$1();function $(){_.call(this)}$._configure=function(){$.alloc=D._Buffer_allocUnsafe,$.writeBytesBuffer=D.Buffer&&D.Buffer.prototype instanceof Uint8Array&&D.Buffer.prototype.set.name==="set"?function(N,e,o){e.set(N,o)}:function(N,e,o){if(N.copy)N.copy(e,o,0,N.length);else for(var A=0;A<N.length;)e[o++]=N[A++]}},$.prototype.bytes=function(N){D.isString(N)&&(N=D._Buffer_from(N,"base64"));var e=N.length>>>0;return this.uint32(e),e&&this._push($.writeBytesBuffer,e,N),this};function M(R,N,e){R.length<40?D.utf8.write(R,N,e):N.utf8Write?N.utf8Write(R,e):N.write(R,e)}return $.prototype.string=function(N){var e=D.Buffer.byteLength(N);return this.uint32(e),e&&this._push(M,e,N),this},$._configure(),writer_buffer}var reader,hasRequiredReader;function requireReader(){if(hasRequiredReader)return reader;hasRequiredReader=1,reader=N;var _=requireMinimal$1(),D,$=_.LongBits,M=_.utf8;function R(F,Z){return RangeError("index out of range: "+F.pos+" + "+(Z||1)+" > "+F.len)}function N(F){this.buf=F,this.pos=0,this.len=F.length}var e=typeof Uint8Array<"u"?function(Z){if(Z instanceof Uint8Array||Array.isArray(Z))return new N(Z);throw Error("illegal buffer")}:function(Z){if(Array.isArray(Z))return new N(Z);throw Error("illegal buffer")},o=function(){return _.Buffer?function(H){return(N.create=function(G){return _.Buffer.isBuffer(G)?new D(G):e(G)})(H)}:e};N.create=o(),N.prototype._slice=_.Array.prototype.subarray||_.Array.prototype.slice,N.prototype.uint32=function(){var Z=4294967295;return function(){if(Z=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(Z=(Z|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(Z=(Z|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(Z=(Z|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(Z=(Z|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return Z;if((this.pos+=5)>this.len)throw this.pos=this.len,R(this,10);return Z}}(),N.prototype.int32=function(){return this.uint32()|0},N.prototype.sint32=function(){var Z=this.uint32();return Z>>>1^-(Z&1)|0};function A(){var F=new $(0,0),Z=0;if(this.len-this.pos>4){for(;Z<4;++Z)if(F.lo=(F.lo|(this.buf[this.pos]&127)<<Z*7)>>>0,this.buf[this.pos++]<128)return F;if(F.lo=(F.lo|(this.buf[this.pos]&127)<<28)>>>0,F.hi=(F.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return F;Z=0}else{for(;Z<3;++Z){if(this.pos>=this.len)throw R(this);if(F.lo=(F.lo|(this.buf[this.pos]&127)<<Z*7)>>>0,this.buf[this.pos++]<128)return F}return F.lo=(F.lo|(this.buf[this.pos++]&127)<<Z*7)>>>0,F}if(this.len-this.pos>4){for(;Z<5;++Z)if(F.hi=(F.hi|(this.buf[this.pos]&127)<<Z*7+3)>>>0,this.buf[this.pos++]<128)return F}else for(;Z<5;++Z){if(this.pos>=this.len)throw R(this);if(F.hi=(F.hi|(this.buf[this.pos]&127)<<Z*7+3)>>>0,this.buf[this.pos++]<128)return F}throw Error("invalid varint encoding")}N.prototype.bool=function(){return this.uint32()!==0};function U(F,Z){return(F[Z-4]|F[Z-3]<<8|F[Z-2]<<16|F[Z-1]<<24)>>>0}N.prototype.fixed32=function(){if(this.pos+4>this.len)throw R(this,4);return U(this.buf,this.pos+=4)},N.prototype.sfixed32=function(){if(this.pos+4>this.len)throw R(this,4);return U(this.buf,this.pos+=4)|0};function L(){if(this.pos+8>this.len)throw R(this,8);return new $(U(this.buf,this.pos+=4),U(this.buf,this.pos+=4))}return N.prototype.float=function(){if(this.pos+4>this.len)throw R(this,4);var Z=_.float.readFloatLE(this.buf,this.pos);return this.pos+=4,Z},N.prototype.double=function(){if(this.pos+8>this.len)throw R(this,4);var Z=_.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,Z},N.prototype.bytes=function(){var Z=this.uint32(),H=this.pos,z=this.pos+Z;if(z>this.len)throw R(this,Z);if(this.pos+=Z,Array.isArray(this.buf))return this.buf.slice(H,z);if(H===z){var G=_.Buffer;return G?G.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,H,z)},N.prototype.string=function(){var Z=this.bytes();return M.read(Z,0,Z.length)},N.prototype.skip=function(Z){if(typeof Z=="number"){if(this.pos+Z>this.len)throw R(this,Z);this.pos+=Z}else do if(this.pos>=this.len)throw R(this);while(this.buf[this.pos++]&128);return this},N.prototype.skipType=function(F){switch(F){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(F=this.uint32()&7)!==4;)this.skipType(F);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+F+" at offset "+this.pos)}return this},N._configure=function(F){D=F,N.create=o(),D._configure();var Z=_.Long?"toLong":"toNumber";_.merge(N.prototype,{int64:function(){return A.call(this)[Z](!1)},uint64:function(){return A.call(this)[Z](!0)},sint64:function(){return A.call(this).zzDecode()[Z](!1)},fixed64:function(){return L.call(this)[Z](!0)},sfixed64:function(){return L.call(this)[Z](!1)}})},reader}var reader_buffer,hasRequiredReader_buffer;function requireReader_buffer(){if(hasRequiredReader_buffer)return reader_buffer;hasRequiredReader_buffer=1,reader_buffer=$;var _=requireReader();($.prototype=Object.create(_.prototype)).constructor=$;var D=requireMinimal$1();function $(M){_.call(this,M)}return $._configure=function(){D.Buffer&&($.prototype._slice=D.Buffer.prototype.slice)},$.prototype.string=function(){var R=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+R,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+R,this.len))},$._configure(),reader_buffer}var rpc={},service,hasRequiredService;function requireService(){if(hasRequiredService)return service;hasRequiredService=1,service=D;var _=requireMinimal$1();(D.prototype=Object.create(_.EventEmitter.prototype)).constructor=D;function D($,M,R){if(typeof $!="function")throw TypeError("rpcImpl must be a function");_.EventEmitter.call(this),this.rpcImpl=$,this.requestDelimited=!!M,this.responseDelimited=!!R}return D.prototype.rpcCall=function $(M,R,N,e,o){if(!e)throw TypeError("request must be specified");var A=this;if(!o)return _.asPromise($,A,M,R,N,e);if(!A.rpcImpl){setTimeout(function(){o(Error("already ended"))},0);return}try{return A.rpcImpl(M,R[A.requestDelimited?"encodeDelimited":"encode"](e).finish(),function(L,F){if(L)return A.emit("error",L,M),o(L);if(F===null){A.end(!0);return}if(!(F instanceof N))try{F=N[A.responseDelimited?"decodeDelimited":"decode"](F)}catch(Z){return A.emit("error",Z,M),o(Z)}return A.emit("data",F,M),o(null,F)})}catch(U){A.emit("error",U,M),setTimeout(function(){o(U)},0);return}},D.prototype.end=function(M){return this.rpcImpl&&(M||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this},service}var hasRequiredRpc;function requireRpc(){return hasRequiredRpc||(hasRequiredRpc=1,function(_){var D=_;D.Service=requireService()}(rpc)),rpc}var roots,hasRequiredRoots;function requireRoots(){return hasRequiredRoots||(hasRequiredRoots=1,roots={}),roots}var hasRequiredIndexMinimal;function requireIndexMinimal(){return hasRequiredIndexMinimal||(hasRequiredIndexMinimal=1,function(_){var D=_;D.build="minimal",D.Writer=requireWriter(),D.BufferWriter=requireWriter_buffer(),D.Reader=requireReader(),D.BufferReader=requireReader_buffer(),D.util=requireMinimal$1(),D.rpc=requireRpc(),D.roots=requireRoots(),D.configure=$;function $(){D.util._configure(),D.Writer._configure(D.BufferWriter),D.Reader._configure(D.BufferReader)}$()}(indexMinimal)),indexMinimal}var minimal,hasRequiredMinimal;function requireMinimal(){return hasRequiredMinimal||(hasRequiredMinimal=1,minimal=requireIndexMinimal()),minimal}var minimalExports=requireMinimal();const $Reader=minimalExports.Reader,$Writer=minimalExports.Writer,$util=minimalExports.util,$root=minimalExports.roots.default||(minimalExports.roots.default={}),com=$root.com=(()=>{const _={};return _.quick=function(){const D={};return D.voice=function(){const $={};return $.proto=function(){const M={};return M.CommonReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.event="",R.prototype.data=$util.newBuffer([]),R.prototype.sn=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.time=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.valid=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.version=0,R.prototype.compress=!1,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.event!=null&&Object.hasOwnProperty.call(e,"event")&&o.uint32(10).string(e.event),e.data!=null&&Object.hasOwnProperty.call(e,"data")&&o.uint32(18).bytes(e.data),e.sn!=null&&Object.hasOwnProperty.call(e,"sn")&&o.uint32(24).int64(e.sn),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&o.uint32(32).int64(e.time),e.valid!=null&&Object.hasOwnProperty.call(e,"valid")&&o.uint32(40).int64(e.valid),e.version!=null&&Object.hasOwnProperty.call(e,"version")&&o.uint32(48).int32(e.version),e.compress!=null&&Object.hasOwnProperty.call(e,"compress")&&o.uint32(56).bool(e.compress),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CommonReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.event=e.string();break}case 2:{U.data=e.bytes();break}case 3:{U.sn=e.int64();break}case 4:{U.time=e.int64();break}case 5:{U.valid=e.int64();break}case 6:{U.version=e.int32();break}case 7:{U.compress=e.bool();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.event!=null&&e.hasOwnProperty("event")&&!$util.isString(e.event)?"event: string expected":e.data!=null&&e.hasOwnProperty("data")&&!(e.data&&typeof e.data.length=="number"||$util.isString(e.data))?"data: buffer expected":e.sn!=null&&e.hasOwnProperty("sn")&&!$util.isInteger(e.sn)&&!(e.sn&&$util.isInteger(e.sn.low)&&$util.isInteger(e.sn.high))?"sn: integer|Long expected":e.time!=null&&e.hasOwnProperty("time")&&!$util.isInteger(e.time)&&!(e.time&&$util.isInteger(e.time.low)&&$util.isInteger(e.time.high))?"time: integer|Long expected":e.valid!=null&&e.hasOwnProperty("valid")&&!$util.isInteger(e.valid)&&!(e.valid&&$util.isInteger(e.valid.low)&&$util.isInteger(e.valid.high))?"valid: integer|Long expected":e.version!=null&&e.hasOwnProperty("version")&&!$util.isInteger(e.version)?"version: integer expected":e.compress!=null&&e.hasOwnProperty("compress")&&typeof e.compress!="boolean"?"compress: boolean expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CommonReq)return e;let o=new $root.com.quick.voice.proto.CommonReq;return e.event!=null&&(o.event=String(e.event)),e.data!=null&&(typeof e.data=="string"?$util.base64.decode(e.data,o.data=$util.newBuffer($util.base64.length(e.data)),0):e.data.length>=0&&(o.data=e.data)),e.sn!=null&&($util.Long?(o.sn=$util.Long.fromValue(e.sn)).unsigned=!1:typeof e.sn=="string"?o.sn=parseInt(e.sn,10):typeof e.sn=="number"?o.sn=e.sn:typeof e.sn=="object"&&(o.sn=new $util.LongBits(e.sn.low>>>0,e.sn.high>>>0).toNumber())),e.time!=null&&($util.Long?(o.time=$util.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?o.time=parseInt(e.time,10):typeof e.time=="number"?o.time=e.time:typeof e.time=="object"&&(o.time=new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),e.valid!=null&&($util.Long?(o.valid=$util.Long.fromValue(e.valid)).unsigned=!1:typeof e.valid=="string"?o.valid=parseInt(e.valid,10):typeof e.valid=="number"?o.valid=e.valid:typeof e.valid=="object"&&(o.valid=new $util.LongBits(e.valid.low>>>0,e.valid.high>>>0).toNumber())),e.version!=null&&(o.version=e.version|0),e.compress!=null&&(o.compress=!!e.compress),o},R.toObject=function(e,o){o||(o={});let A={};if(o.defaults){if(A.event="",o.bytes===String?A.data="":(A.data=[],o.bytes!==Array&&(A.data=$util.newBuffer(A.data))),$util.Long){let U=new $util.Long(0,0,!1);A.sn=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.sn=o.longs===String?"0":0;if($util.Long){let U=new $util.Long(0,0,!1);A.time=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.time=o.longs===String?"0":0;if($util.Long){let U=new $util.Long(0,0,!1);A.valid=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.valid=o.longs===String?"0":0;A.version=0,A.compress=!1}return e.event!=null&&e.hasOwnProperty("event")&&(A.event=e.event),e.data!=null&&e.hasOwnProperty("data")&&(A.data=o.bytes===String?$util.base64.encode(e.data,0,e.data.length):o.bytes===Array?Array.prototype.slice.call(e.data):e.data),e.sn!=null&&e.hasOwnProperty("sn")&&(typeof e.sn=="number"?A.sn=o.longs===String?String(e.sn):e.sn:A.sn=o.longs===String?$util.Long.prototype.toString.call(e.sn):o.longs===Number?new $util.LongBits(e.sn.low>>>0,e.sn.high>>>0).toNumber():e.sn),e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?A.time=o.longs===String?String(e.time):e.time:A.time=o.longs===String?$util.Long.prototype.toString.call(e.time):o.longs===Number?new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),e.valid!=null&&e.hasOwnProperty("valid")&&(typeof e.valid=="number"?A.valid=o.longs===String?String(e.valid):e.valid:A.valid=o.longs===String?$util.Long.prototype.toString.call(e.valid):o.longs===Number?new $util.LongBits(e.valid.low>>>0,e.valid.high>>>0).toNumber():e.valid),e.version!=null&&e.hasOwnProperty("version")&&(A.version=e.version),e.compress!=null&&e.hasOwnProperty("compress")&&(A.compress=e.compress),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CommonReq"},R}(),M.CommonRsp=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.event="",R.prototype.data=$util.newBuffer([]),R.prototype.sn=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.time=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.valid=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.code=0,R.prototype.desc="",R.prototype.version=0,R.prototype.compress=!1,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.event!=null&&Object.hasOwnProperty.call(e,"event")&&o.uint32(10).string(e.event),e.data!=null&&Object.hasOwnProperty.call(e,"data")&&o.uint32(18).bytes(e.data),e.sn!=null&&Object.hasOwnProperty.call(e,"sn")&&o.uint32(24).int64(e.sn),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&o.uint32(32).int64(e.time),e.valid!=null&&Object.hasOwnProperty.call(e,"valid")&&o.uint32(40).int64(e.valid),e.code!=null&&Object.hasOwnProperty.call(e,"code")&&o.uint32(48).int32(e.code),e.desc!=null&&Object.hasOwnProperty.call(e,"desc")&&o.uint32(58).string(e.desc),e.version!=null&&Object.hasOwnProperty.call(e,"version")&&o.uint32(64).int32(e.version),e.compress!=null&&Object.hasOwnProperty.call(e,"compress")&&o.uint32(72).bool(e.compress),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CommonRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.event=e.string();break}case 2:{U.data=e.bytes();break}case 3:{U.sn=e.int64();break}case 4:{U.time=e.int64();break}case 5:{U.valid=e.int64();break}case 6:{U.code=e.int32();break}case 7:{U.desc=e.string();break}case 8:{U.version=e.int32();break}case 9:{U.compress=e.bool();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.event!=null&&e.hasOwnProperty("event")&&!$util.isString(e.event)?"event: string expected":e.data!=null&&e.hasOwnProperty("data")&&!(e.data&&typeof e.data.length=="number"||$util.isString(e.data))?"data: buffer expected":e.sn!=null&&e.hasOwnProperty("sn")&&!$util.isInteger(e.sn)&&!(e.sn&&$util.isInteger(e.sn.low)&&$util.isInteger(e.sn.high))?"sn: integer|Long expected":e.time!=null&&e.hasOwnProperty("time")&&!$util.isInteger(e.time)&&!(e.time&&$util.isInteger(e.time.low)&&$util.isInteger(e.time.high))?"time: integer|Long expected":e.valid!=null&&e.hasOwnProperty("valid")&&!$util.isInteger(e.valid)&&!(e.valid&&$util.isInteger(e.valid.low)&&$util.isInteger(e.valid.high))?"valid: integer|Long expected":e.code!=null&&e.hasOwnProperty("code")&&!$util.isInteger(e.code)?"code: integer expected":e.desc!=null&&e.hasOwnProperty("desc")&&!$util.isString(e.desc)?"desc: string expected":e.version!=null&&e.hasOwnProperty("version")&&!$util.isInteger(e.version)?"version: integer expected":e.compress!=null&&e.hasOwnProperty("compress")&&typeof e.compress!="boolean"?"compress: boolean expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CommonRsp)return e;let o=new $root.com.quick.voice.proto.CommonRsp;return e.event!=null&&(o.event=String(e.event)),e.data!=null&&(typeof e.data=="string"?$util.base64.decode(e.data,o.data=$util.newBuffer($util.base64.length(e.data)),0):e.data.length>=0&&(o.data=e.data)),e.sn!=null&&($util.Long?(o.sn=$util.Long.fromValue(e.sn)).unsigned=!1:typeof e.sn=="string"?o.sn=parseInt(e.sn,10):typeof e.sn=="number"?o.sn=e.sn:typeof e.sn=="object"&&(o.sn=new $util.LongBits(e.sn.low>>>0,e.sn.high>>>0).toNumber())),e.time!=null&&($util.Long?(o.time=$util.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?o.time=parseInt(e.time,10):typeof e.time=="number"?o.time=e.time:typeof e.time=="object"&&(o.time=new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),e.valid!=null&&($util.Long?(o.valid=$util.Long.fromValue(e.valid)).unsigned=!1:typeof e.valid=="string"?o.valid=parseInt(e.valid,10):typeof e.valid=="number"?o.valid=e.valid:typeof e.valid=="object"&&(o.valid=new $util.LongBits(e.valid.low>>>0,e.valid.high>>>0).toNumber())),e.code!=null&&(o.code=e.code|0),e.desc!=null&&(o.desc=String(e.desc)),e.version!=null&&(o.version=e.version|0),e.compress!=null&&(o.compress=!!e.compress),o},R.toObject=function(e,o){o||(o={});let A={};if(o.defaults){if(A.event="",o.bytes===String?A.data="":(A.data=[],o.bytes!==Array&&(A.data=$util.newBuffer(A.data))),$util.Long){let U=new $util.Long(0,0,!1);A.sn=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.sn=o.longs===String?"0":0;if($util.Long){let U=new $util.Long(0,0,!1);A.time=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.time=o.longs===String?"0":0;if($util.Long){let U=new $util.Long(0,0,!1);A.valid=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.valid=o.longs===String?"0":0;A.code=0,A.desc="",A.version=0,A.compress=!1}return e.event!=null&&e.hasOwnProperty("event")&&(A.event=e.event),e.data!=null&&e.hasOwnProperty("data")&&(A.data=o.bytes===String?$util.base64.encode(e.data,0,e.data.length):o.bytes===Array?Array.prototype.slice.call(e.data):e.data),e.sn!=null&&e.hasOwnProperty("sn")&&(typeof e.sn=="number"?A.sn=o.longs===String?String(e.sn):e.sn:A.sn=o.longs===String?$util.Long.prototype.toString.call(e.sn):o.longs===Number?new $util.LongBits(e.sn.low>>>0,e.sn.high>>>0).toNumber():e.sn),e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?A.time=o.longs===String?String(e.time):e.time:A.time=o.longs===String?$util.Long.prototype.toString.call(e.time):o.longs===Number?new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),e.valid!=null&&e.hasOwnProperty("valid")&&(typeof e.valid=="number"?A.valid=o.longs===String?String(e.valid):e.valid:A.valid=o.longs===String?$util.Long.prototype.toString.call(e.valid):o.longs===Number?new $util.LongBits(e.valid.low>>>0,e.valid.high>>>0).toNumber():e.valid),e.code!=null&&e.hasOwnProperty("code")&&(A.code=e.code),e.desc!=null&&e.hasOwnProperty("desc")&&(A.desc=e.desc),e.version!=null&&e.hasOwnProperty("version")&&(A.version=e.version),e.compress!=null&&e.hasOwnProperty("compress")&&(A.compress=e.compress),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CommonRsp"},R}(),M.User=function(){function R(e){if(this.tracks=[],e)for(let o=Object.keys(e),A=0;A<o.length;++A)e[o[A]]!=null&&(this[o[A]]=e[o[A]])}R.prototype.id="",R.prototype.callAction=null,R.prototype.callState=null,R.prototype.joinTime=null,R.prototype.tracks=$util.emptyArray,R.prototype.permissions=null,R.prototype.isPublished=null;let N;return Object.defineProperty(R.prototype,"_callAction",{get:$util.oneOfGetter(N=["callAction"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_callState",{get:$util.oneOfGetter(N=["callState"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_joinTime",{get:$util.oneOfGetter(N=["joinTime"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_permissions",{get:$util.oneOfGetter(N=["permissions"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_isPublished",{get:$util.oneOfGetter(N=["isPublished"]),set:$util.oneOfSetter(N)}),R.create=function(o){return new R(o)},R.encode=function(o,A){if(A||(A=$Writer.create()),o.id!=null&&Object.hasOwnProperty.call(o,"id")&&A.uint32(10).string(o.id),o.callAction!=null&&Object.hasOwnProperty.call(o,"callAction")&&A.uint32(16).int32(o.callAction),o.callState!=null&&Object.hasOwnProperty.call(o,"callState")&&A.uint32(24).int32(o.callState),o.joinTime!=null&&Object.hasOwnProperty.call(o,"joinTime")&&A.uint32(32).int64(o.joinTime),o.tracks!=null&&o.tracks.length)for(let U=0;U<o.tracks.length;++U)$root.com.quick.voice.proto.Track.encode(o.tracks[U],A.uint32(42).fork()).ldelim();return o.permissions!=null&&Object.hasOwnProperty.call(o,"permissions")&&A.uint32(48).int32(o.permissions),o.isPublished!=null&&Object.hasOwnProperty.call(o,"isPublished")&&A.uint32(56).bool(o.isPublished),A},R.encodeDelimited=function(o,A){return this.encode(o,A).ldelim()},R.decode=function(o,A){o instanceof $Reader||(o=$Reader.create(o));let U=A===void 0?o.len:o.pos+A,L=new $root.com.quick.voice.proto.User;for(;o.pos<U;){let F=o.uint32();switch(F>>>3){case 1:{L.id=o.string();break}case 2:{L.callAction=o.int32();break}case 3:{L.callState=o.int32();break}case 4:{L.joinTime=o.int64();break}case 5:{L.tracks&&L.tracks.length||(L.tracks=[]),L.tracks.push($root.com.quick.voice.proto.Track.decode(o,o.uint32()));break}case 6:{L.permissions=o.int32();break}case 7:{L.isPublished=o.bool();break}default:o.skipType(F&7);break}}return L},R.decodeDelimited=function(o){return o instanceof $Reader||(o=new $Reader(o)),this.decode(o,o.uint32())},R.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.id!=null&&o.hasOwnProperty("id")&&!$util.isString(o.id))return"id: string expected";if(o.callAction!=null&&o.hasOwnProperty("callAction")&&!$util.isInteger(o.callAction))return"callAction: integer expected";if(o.callState!=null&&o.hasOwnProperty("callState")&&!$util.isInteger(o.callState))return"callState: integer expected";if(o.joinTime!=null&&o.hasOwnProperty("joinTime")&&!$util.isInteger(o.joinTime)&&!(o.joinTime&&$util.isInteger(o.joinTime.low)&&$util.isInteger(o.joinTime.high)))return"joinTime: integer|Long expected";if(o.tracks!=null&&o.hasOwnProperty("tracks")){if(!Array.isArray(o.tracks))return"tracks: array expected";for(let A=0;A<o.tracks.length;++A){let U=$root.com.quick.voice.proto.Track.verify(o.tracks[A]);if(U)return"tracks."+U}}return o.permissions!=null&&o.hasOwnProperty("permissions")&&!$util.isInteger(o.permissions)?"permissions: integer expected":o.isPublished!=null&&o.hasOwnProperty("isPublished")&&typeof o.isPublished!="boolean"?"isPublished: boolean expected":null},R.fromObject=function(o){if(o instanceof $root.com.quick.voice.proto.User)return o;let A=new $root.com.quick.voice.proto.User;if(o.id!=null&&(A.id=String(o.id)),o.callAction!=null&&(A.callAction=o.callAction|0),o.callState!=null&&(A.callState=o.callState|0),o.joinTime!=null&&($util.Long?(A.joinTime=$util.Long.fromValue(o.joinTime)).unsigned=!1:typeof o.joinTime=="string"?A.joinTime=parseInt(o.joinTime,10):typeof o.joinTime=="number"?A.joinTime=o.joinTime:typeof o.joinTime=="object"&&(A.joinTime=new $util.LongBits(o.joinTime.low>>>0,o.joinTime.high>>>0).toNumber())),o.tracks){if(!Array.isArray(o.tracks))throw TypeError(".com.quick.voice.proto.User.tracks: array expected");A.tracks=[];for(let U=0;U<o.tracks.length;++U){if(typeof o.tracks[U]!="object")throw TypeError(".com.quick.voice.proto.User.tracks: object expected");A.tracks[U]=$root.com.quick.voice.proto.Track.fromObject(o.tracks[U])}}return o.permissions!=null&&(A.permissions=o.permissions|0),o.isPublished!=null&&(A.isPublished=!!o.isPublished),A},R.toObject=function(o,A){A||(A={});let U={};if((A.arrays||A.defaults)&&(U.tracks=[]),A.defaults&&(U.id=""),o.id!=null&&o.hasOwnProperty("id")&&(U.id=o.id),o.callAction!=null&&o.hasOwnProperty("callAction")&&(U.callAction=o.callAction,A.oneofs&&(U._callAction="callAction")),o.callState!=null&&o.hasOwnProperty("callState")&&(U.callState=o.callState,A.oneofs&&(U._callState="callState")),o.joinTime!=null&&o.hasOwnProperty("joinTime")&&(typeof o.joinTime=="number"?U.joinTime=A.longs===String?String(o.joinTime):o.joinTime:U.joinTime=A.longs===String?$util.Long.prototype.toString.call(o.joinTime):A.longs===Number?new $util.LongBits(o.joinTime.low>>>0,o.joinTime.high>>>0).toNumber():o.joinTime,A.oneofs&&(U._joinTime="joinTime")),o.tracks&&o.tracks.length){U.tracks=[];for(let L=0;L<o.tracks.length;++L)U.tracks[L]=$root.com.quick.voice.proto.Track.toObject(o.tracks[L],A)}return o.permissions!=null&&o.hasOwnProperty("permissions")&&(U.permissions=o.permissions,A.oneofs&&(U._permissions="permissions")),o.isPublished!=null&&o.hasOwnProperty("isPublished")&&(U.isPublished=o.isPublished,A.oneofs&&(U._isPublished="isPublished")),U},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/com.quick.voice.proto.User"},R}(),M.Login=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.appid="",R.prototype.userId="",R.prototype.sdkToken="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.appid!=null&&Object.hasOwnProperty.call(e,"appid")&&o.uint32(10).string(e.appid),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(18).string(e.userId),e.sdkToken!=null&&Object.hasOwnProperty.call(e,"sdkToken")&&o.uint32(26).string(e.sdkToken),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.Login;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.appid=e.string();break}case 2:{U.userId=e.string();break}case 3:{U.sdkToken=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.appid!=null&&e.hasOwnProperty("appid")&&!$util.isString(e.appid)?"appid: string expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.sdkToken!=null&&e.hasOwnProperty("sdkToken")&&!$util.isString(e.sdkToken)?"sdkToken: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.Login)return e;let o=new $root.com.quick.voice.proto.Login;return e.appid!=null&&(o.appid=String(e.appid)),e.userId!=null&&(o.userId=String(e.userId)),e.sdkToken!=null&&(o.sdkToken=String(e.sdkToken)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.appid="",A.userId="",A.sdkToken=""),e.appid!=null&&e.hasOwnProperty("appid")&&(A.appid=e.appid),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.sdkToken!=null&&e.hasOwnProperty("sdkToken")&&(A.sdkToken=e.sdkToken),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.Login"},R}(),M.Track=function(){function R(e){if(e)for(let o=Object.keys(e),A=0;A<o.length;++A)e[o[A]]!=null&&(this[o[A]]=e[o[A]])}R.prototype.mid="",R.prototype.trackName=null,R.prototype.location=null,R.prototype.userId=null,R.prototype.code=null,R.prototype.desc=null,R.prototype.type=null,R.prototype.isValid=null;let N;return Object.defineProperty(R.prototype,"_trackName",{get:$util.oneOfGetter(N=["trackName"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_location",{get:$util.oneOfGetter(N=["location"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_userId",{get:$util.oneOfGetter(N=["userId"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_code",{get:$util.oneOfGetter(N=["code"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_desc",{get:$util.oneOfGetter(N=["desc"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_type",{get:$util.oneOfGetter(N=["type"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_isValid",{get:$util.oneOfGetter(N=["isValid"]),set:$util.oneOfSetter(N)}),R.create=function(o){return new R(o)},R.encode=function(o,A){return A||(A=$Writer.create()),o.mid!=null&&Object.hasOwnProperty.call(o,"mid")&&A.uint32(10).string(o.mid),o.trackName!=null&&Object.hasOwnProperty.call(o,"trackName")&&A.uint32(18).string(o.trackName),o.location!=null&&Object.hasOwnProperty.call(o,"location")&&A.uint32(26).string(o.location),o.userId!=null&&Object.hasOwnProperty.call(o,"userId")&&A.uint32(34).string(o.userId),o.code!=null&&Object.hasOwnProperty.call(o,"code")&&A.uint32(40).int32(o.code),o.desc!=null&&Object.hasOwnProperty.call(o,"desc")&&A.uint32(50).string(o.desc),o.type!=null&&Object.hasOwnProperty.call(o,"type")&&A.uint32(56).int32(o.type),o.isValid!=null&&Object.hasOwnProperty.call(o,"isValid")&&A.uint32(64).bool(o.isValid),A},R.encodeDelimited=function(o,A){return this.encode(o,A).ldelim()},R.decode=function(o,A){o instanceof $Reader||(o=$Reader.create(o));let U=A===void 0?o.len:o.pos+A,L=new $root.com.quick.voice.proto.Track;for(;o.pos<U;){let F=o.uint32();switch(F>>>3){case 1:{L.mid=o.string();break}case 2:{L.trackName=o.string();break}case 3:{L.location=o.string();break}case 4:{L.userId=o.string();break}case 5:{L.code=o.int32();break}case 6:{L.desc=o.string();break}case 7:{L.type=o.int32();break}case 8:{L.isValid=o.bool();break}default:o.skipType(F&7);break}}return L},R.decodeDelimited=function(o){return o instanceof $Reader||(o=new $Reader(o)),this.decode(o,o.uint32())},R.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.mid!=null&&o.hasOwnProperty("mid")&&!$util.isString(o.mid))return"mid: string expected";if(o.trackName!=null&&o.hasOwnProperty("trackName")&&!$util.isString(o.trackName))return"trackName: string expected";if(o.location!=null&&o.hasOwnProperty("location")&&!$util.isString(o.location))return"location: string expected";if(o.userId!=null&&o.hasOwnProperty("userId")&&!$util.isString(o.userId))return"userId: string expected";if(o.code!=null&&o.hasOwnProperty("code")&&!$util.isInteger(o.code))return"code: integer expected";if(o.desc!=null&&o.hasOwnProperty("desc")&&!$util.isString(o.desc))return"desc: string expected";if(o.type!=null&&o.hasOwnProperty("type"))switch(o.type){default:return"type: enum value expected";case 0:case 1:case 2:case 3:break}return o.isValid!=null&&o.hasOwnProperty("isValid")&&typeof o.isValid!="boolean"?"isValid: boolean expected":null},R.fromObject=function(o){if(o instanceof $root.com.quick.voice.proto.Track)return o;let A=new $root.com.quick.voice.proto.Track;switch(o.mid!=null&&(A.mid=String(o.mid)),o.trackName!=null&&(A.trackName=String(o.trackName)),o.location!=null&&(A.location=String(o.location)),o.userId!=null&&(A.userId=String(o.userId)),o.code!=null&&(A.code=o.code|0),o.desc!=null&&(A.desc=String(o.desc)),o.type){default:if(typeof o.type=="number"){A.type=o.type;break}break;case"Microphone":case 0:A.type=0;break;case"Camera":case 1:A.type=1;break;case"Screen":case 2:A.type=2;break;case"SystemVoice":case 3:A.type=3;break}return o.isValid!=null&&(A.isValid=!!o.isValid),A},R.toObject=function(o,A){A||(A={});let U={};return A.defaults&&(U.mid=""),o.mid!=null&&o.hasOwnProperty("mid")&&(U.mid=o.mid),o.trackName!=null&&o.hasOwnProperty("trackName")&&(U.trackName=o.trackName,A.oneofs&&(U._trackName="trackName")),o.location!=null&&o.hasOwnProperty("location")&&(U.location=o.location,A.oneofs&&(U._location="location")),o.userId!=null&&o.hasOwnProperty("userId")&&(U.userId=o.userId,A.oneofs&&(U._userId="userId")),o.code!=null&&o.hasOwnProperty("code")&&(U.code=o.code,A.oneofs&&(U._code="code")),o.desc!=null&&o.hasOwnProperty("desc")&&(U.desc=o.desc,A.oneofs&&(U._desc="desc")),o.type!=null&&o.hasOwnProperty("type")&&(U.type=A.enums===String?$root.com.quick.voice.proto.TrackType[o.type]===void 0?o.type:$root.com.quick.voice.proto.TrackType[o.type]:o.type,A.oneofs&&(U._type="type")),o.isValid!=null&&o.hasOwnProperty("isValid")&&(U.isValid=o.isValid,A.oneofs&&(U._isValid="isValid")),U},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/com.quick.voice.proto.Track"},R}(),M.JoinReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.prototype.callType=0,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),e.callType!=null&&Object.hasOwnProperty.call(e,"callType")&&o.uint32(24).int32(e.callType),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.JoinReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}case 3:{U.callType=e.int32();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}if(e.callType!=null&&e.hasOwnProperty("callType"))switch(e.callType){default:return"callType: enum value expected";case 0:case 1:case 2:break}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.JoinReq)return e;let o=new $root.com.quick.voice.proto.JoinReq;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.JoinReq.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}switch(e.callType){default:if(typeof e.callType=="number"){o.callType=e.callType;break}break;case"Normal":case 0:o.callType=0;break;case"Meeting":case 1:o.callType=1;break;case"Live":case 2:o.callType=2;break}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null,A.callType=o.enums===String?"Normal":0),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),e.callType!=null&&e.hasOwnProperty("callType")&&(A.callType=o.enums===String?$root.com.quick.voice.proto.CallType[e.callType]===void 0?e.callType:$root.com.quick.voice.proto.CallType[e.callType]:e.callType),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.JoinReq"},R}(),M.JoinRsp=function(){function R(N){if(this.roomUsers=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.roomUsers=$util.emptyArray,R.prototype.callType=0,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.roomUsers!=null&&e.roomUsers.length)for(let A=0;A<e.roomUsers.length;++A)$root.com.quick.voice.proto.User.encode(e.roomUsers[A],o.uint32(18).fork()).ldelim();return e.callType!=null&&Object.hasOwnProperty.call(e,"callType")&&o.uint32(24).int32(e.callType),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.JoinRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.roomUsers&&U.roomUsers.length||(U.roomUsers=[]),U.roomUsers.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}case 3:{U.callType=e.int32();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.roomUsers!=null&&e.hasOwnProperty("roomUsers")){if(!Array.isArray(e.roomUsers))return"roomUsers: array expected";for(let o=0;o<e.roomUsers.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.roomUsers[o]);if(A)return"roomUsers."+A}}if(e.callType!=null&&e.hasOwnProperty("callType"))switch(e.callType){default:return"callType: enum value expected";case 0:case 1:case 2:break}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.JoinRsp)return e;let o=new $root.com.quick.voice.proto.JoinRsp;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.roomUsers){if(!Array.isArray(e.roomUsers))throw TypeError(".com.quick.voice.proto.JoinRsp.roomUsers: array expected");o.roomUsers=[];for(let A=0;A<e.roomUsers.length;++A){if(typeof e.roomUsers[A]!="object")throw TypeError(".com.quick.voice.proto.JoinRsp.roomUsers: object expected");o.roomUsers[A]=$root.com.quick.voice.proto.User.fromObject(e.roomUsers[A])}}switch(e.callType){default:if(typeof e.callType=="number"){o.callType=e.callType;break}break;case"Normal":case 0:o.callType=0;break;case"Meeting":case 1:o.callType=1;break;case"Live":case 2:o.callType=2;break}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.roomUsers=[]),o.defaults&&(A.roomId="",A.callType=o.enums===String?"Normal":0),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.roomUsers&&e.roomUsers.length){A.roomUsers=[];for(let U=0;U<e.roomUsers.length;++U)A.roomUsers[U]=$root.com.quick.voice.proto.User.toObject(e.roomUsers[U],o)}return e.callType!=null&&e.hasOwnProperty("callType")&&(A.callType=o.enums===String?$root.com.quick.voice.proto.CallType[e.callType]===void 0?e.callType:$root.com.quick.voice.proto.CallType[e.callType]:e.callType),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.JoinRsp"},R}(),M.JoinNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.JoinNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.JoinNotify)return e;let o=new $root.com.quick.voice.proto.JoinNotify;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.JoinNotify.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.JoinNotify"},R}(),M.ConnectCFReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.sdp="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.sdp!=null&&Object.hasOwnProperty.call(e,"sdp")&&o.uint32(10).string(e.sdp),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ConnectCFReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.sdp=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.sdp!=null&&e.hasOwnProperty("sdp")&&!$util.isString(e.sdp)?"sdp: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ConnectCFReq)return e;let o=new $root.com.quick.voice.proto.ConnectCFReq;return e.sdp!=null&&(o.sdp=String(e.sdp)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.sdp=""),e.sdp!=null&&e.hasOwnProperty("sdp")&&(A.sdp=e.sdp),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ConnectCFReq"},R}(),M.ConnectCFRsp=function(){function R(N){if(this.subscribeUsers=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.remoteSdp="",R.prototype.subscribeUsers=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.remoteSdp!=null&&Object.hasOwnProperty.call(e,"remoteSdp")&&o.uint32(10).string(e.remoteSdp),e.subscribeUsers!=null&&e.subscribeUsers.length)for(let A=0;A<e.subscribeUsers.length;++A)$root.com.quick.voice.proto.User.encode(e.subscribeUsers[A],o.uint32(18).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ConnectCFRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.remoteSdp=e.string();break}case 2:{U.subscribeUsers&&U.subscribeUsers.length||(U.subscribeUsers=[]),U.subscribeUsers.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&!$util.isString(e.remoteSdp))return"remoteSdp: string expected";if(e.subscribeUsers!=null&&e.hasOwnProperty("subscribeUsers")){if(!Array.isArray(e.subscribeUsers))return"subscribeUsers: array expected";for(let o=0;o<e.subscribeUsers.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.subscribeUsers[o]);if(A)return"subscribeUsers."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ConnectCFRsp)return e;let o=new $root.com.quick.voice.proto.ConnectCFRsp;if(e.remoteSdp!=null&&(o.remoteSdp=String(e.remoteSdp)),e.subscribeUsers){if(!Array.isArray(e.subscribeUsers))throw TypeError(".com.quick.voice.proto.ConnectCFRsp.subscribeUsers: array expected");o.subscribeUsers=[];for(let A=0;A<e.subscribeUsers.length;++A){if(typeof e.subscribeUsers[A]!="object")throw TypeError(".com.quick.voice.proto.ConnectCFRsp.subscribeUsers: object expected");o.subscribeUsers[A]=$root.com.quick.voice.proto.User.fromObject(e.subscribeUsers[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.subscribeUsers=[]),o.defaults&&(A.remoteSdp=""),e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&(A.remoteSdp=e.remoteSdp),e.subscribeUsers&&e.subscribeUsers.length){A.subscribeUsers=[];for(let U=0;U<e.subscribeUsers.length;++U)A.subscribeUsers[U]=$root.com.quick.voice.proto.User.toObject(e.subscribeUsers[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ConnectCFRsp"},R}(),M.PublishReq=function(){function R(N){if(this.tracks=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.sdp="",R.prototype.tracks=$util.emptyArray,R.prototype.callAction=0,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.sdp!=null&&Object.hasOwnProperty.call(e,"sdp")&&o.uint32(10).string(e.sdp),e.tracks!=null&&e.tracks.length)for(let A=0;A<e.tracks.length;++A)$root.com.quick.voice.proto.Track.encode(e.tracks[A],o.uint32(18).fork()).ldelim();return e.callAction!=null&&Object.hasOwnProperty.call(e,"callAction")&&o.uint32(24).int32(e.callAction),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.PublishReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.sdp=e.string();break}case 2:{U.tracks&&U.tracks.length||(U.tracks=[]),U.tracks.push($root.com.quick.voice.proto.Track.decode(e,e.uint32()));break}case 3:{U.callAction=e.int32();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.sdp!=null&&e.hasOwnProperty("sdp")&&!$util.isString(e.sdp))return"sdp: string expected";if(e.tracks!=null&&e.hasOwnProperty("tracks")){if(!Array.isArray(e.tracks))return"tracks: array expected";for(let o=0;o<e.tracks.length;++o){let A=$root.com.quick.voice.proto.Track.verify(e.tracks[o]);if(A)return"tracks."+A}}return e.callAction!=null&&e.hasOwnProperty("callAction")&&!$util.isInteger(e.callAction)?"callAction: integer expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.PublishReq)return e;let o=new $root.com.quick.voice.proto.PublishReq;if(e.sdp!=null&&(o.sdp=String(e.sdp)),e.tracks){if(!Array.isArray(e.tracks))throw TypeError(".com.quick.voice.proto.PublishReq.tracks: array expected");o.tracks=[];for(let A=0;A<e.tracks.length;++A){if(typeof e.tracks[A]!="object")throw TypeError(".com.quick.voice.proto.PublishReq.tracks: object expected");o.tracks[A]=$root.com.quick.voice.proto.Track.fromObject(e.tracks[A])}}return e.callAction!=null&&(o.callAction=e.callAction|0),o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.tracks=[]),o.defaults&&(A.sdp="",A.callAction=0),e.sdp!=null&&e.hasOwnProperty("sdp")&&(A.sdp=e.sdp),e.tracks&&e.tracks.length){A.tracks=[];for(let U=0;U<e.tracks.length;++U)A.tracks[U]=$root.com.quick.voice.proto.Track.toObject(e.tracks[U],o)}return e.callAction!=null&&e.hasOwnProperty("callAction")&&(A.callAction=e.callAction),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.PublishReq"},R}(),M.PublishRsp=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.remoteSdp="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.remoteSdp!=null&&Object.hasOwnProperty.call(e,"remoteSdp")&&o.uint32(10).string(e.remoteSdp),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.PublishRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.remoteSdp=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&!$util.isString(e.remoteSdp)?"remoteSdp: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.PublishRsp)return e;let o=new $root.com.quick.voice.proto.PublishRsp;return e.remoteSdp!=null&&(o.remoteSdp=String(e.remoteSdp)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.remoteSdp=""),e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&(A.remoteSdp=e.remoteSdp),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.PublishRsp"},R}(),M.PublishNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.PublishNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.PublishNotify)return e;let o=new $root.com.quick.voice.proto.PublishNotify;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.PublishNotify.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.PublishNotify"},R}(),M.SubscribeReq=function(){function R(N){if(this.users=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.users=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.users!=null&&e.users.length)for(let A=0;A<e.users.length;++A)$root.com.quick.voice.proto.User.encode(e.users[A],o.uint32(10).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.SubscribeReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.users&&U.users.length||(U.users=[]),U.users.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.users!=null&&e.hasOwnProperty("users")){if(!Array.isArray(e.users))return"users: array expected";for(let o=0;o<e.users.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.users[o]);if(A)return"users."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.SubscribeReq)return e;let o=new $root.com.quick.voice.proto.SubscribeReq;if(e.users){if(!Array.isArray(e.users))throw TypeError(".com.quick.voice.proto.SubscribeReq.users: array expected");o.users=[];for(let A=0;A<e.users.length;++A){if(typeof e.users[A]!="object")throw TypeError(".com.quick.voice.proto.SubscribeReq.users: object expected");o.users[A]=$root.com.quick.voice.proto.User.fromObject(e.users[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.users=[]),e.users&&e.users.length){A.users=[];for(let U=0;U<e.users.length;++U)A.users[U]=$root.com.quick.voice.proto.User.toObject(e.users[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.SubscribeReq"},R}(),M.SubscribeRsp=function(){function R(N){if(this.users=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.remoteSdp="",R.prototype.users=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.remoteSdp!=null&&Object.hasOwnProperty.call(e,"remoteSdp")&&o.uint32(10).string(e.remoteSdp),e.users!=null&&e.users.length)for(let A=0;A<e.users.length;++A)$root.com.quick.voice.proto.User.encode(e.users[A],o.uint32(18).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.SubscribeRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.remoteSdp=e.string();break}case 2:{U.users&&U.users.length||(U.users=[]),U.users.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&!$util.isString(e.remoteSdp))return"remoteSdp: string expected";if(e.users!=null&&e.hasOwnProperty("users")){if(!Array.isArray(e.users))return"users: array expected";for(let o=0;o<e.users.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.users[o]);if(A)return"users."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.SubscribeRsp)return e;let o=new $root.com.quick.voice.proto.SubscribeRsp;if(e.remoteSdp!=null&&(o.remoteSdp=String(e.remoteSdp)),e.users){if(!Array.isArray(e.users))throw TypeError(".com.quick.voice.proto.SubscribeRsp.users: array expected");o.users=[];for(let A=0;A<e.users.length;++A){if(typeof e.users[A]!="object")throw TypeError(".com.quick.voice.proto.SubscribeRsp.users: object expected");o.users[A]=$root.com.quick.voice.proto.User.fromObject(e.users[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.users=[]),o.defaults&&(A.remoteSdp=""),e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&(A.remoteSdp=e.remoteSdp),e.users&&e.users.length){A.users=[];for(let U=0;U<e.users.length;++U)A.users[U]=$root.com.quick.voice.proto.User.toObject(e.users[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.SubscribeRsp"},R}(),M.RenegotiateReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.userId="",R.prototype.sdp="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(10).string(e.userId),e.sdp!=null&&Object.hasOwnProperty.call(e,"sdp")&&o.uint32(18).string(e.sdp),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.RenegotiateReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.userId=e.string();break}case 2:{U.sdp=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.sdp!=null&&e.hasOwnProperty("sdp")&&!$util.isString(e.sdp)?"sdp: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.RenegotiateReq)return e;let o=new $root.com.quick.voice.proto.RenegotiateReq;return e.userId!=null&&(o.userId=String(e.userId)),e.sdp!=null&&(o.sdp=String(e.sdp)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.userId="",A.sdp=""),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.sdp!=null&&e.hasOwnProperty("sdp")&&(A.sdp=e.sdp),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.RenegotiateReq"},R}(),M.QuitReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.userId="",R.prototype.roomId="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(10).string(e.userId),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(18).string(e.roomId),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.QuitReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.userId=e.string();break}case 2:{U.roomId=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.QuitReq)return e;let o=new $root.com.quick.voice.proto.QuitReq;return e.userId!=null&&(o.userId=String(e.userId)),e.roomId!=null&&(o.roomId=String(e.roomId)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.userId="",A.roomId=""),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.QuitReq"},R}(),M.QuitNotify=function(){function R(e){if(e)for(let o=Object.keys(e),A=0;A<o.length;++A)e[o[A]]!=null&&(this[o[A]]=e[o[A]])}R.prototype.roomId="",R.prototype.user=null,R.prototype.code=null,R.prototype.desc=null;let N;return Object.defineProperty(R.prototype,"_code",{get:$util.oneOfGetter(N=["code"]),set:$util.oneOfSetter(N)}),Object.defineProperty(R.prototype,"_desc",{get:$util.oneOfGetter(N=["desc"]),set:$util.oneOfSetter(N)}),R.create=function(o){return new R(o)},R.encode=function(o,A){return A||(A=$Writer.create()),o.roomId!=null&&Object.hasOwnProperty.call(o,"roomId")&&A.uint32(10).string(o.roomId),o.user!=null&&Object.hasOwnProperty.call(o,"user")&&$root.com.quick.voice.proto.User.encode(o.user,A.uint32(18).fork()).ldelim(),o.code!=null&&Object.hasOwnProperty.call(o,"code")&&A.uint32(24).int32(o.code),o.desc!=null&&Object.hasOwnProperty.call(o,"desc")&&A.uint32(34).string(o.desc),A},R.encodeDelimited=function(o,A){return this.encode(o,A).ldelim()},R.decode=function(o,A){o instanceof $Reader||(o=$Reader.create(o));let U=A===void 0?o.len:o.pos+A,L=new $root.com.quick.voice.proto.QuitNotify;for(;o.pos<U;){let F=o.uint32();switch(F>>>3){case 1:{L.roomId=o.string();break}case 2:{L.user=$root.com.quick.voice.proto.User.decode(o,o.uint32());break}case 3:{L.code=o.int32();break}case 4:{L.desc=o.string();break}default:o.skipType(F&7);break}}return L},R.decodeDelimited=function(o){return o instanceof $Reader||(o=new $Reader(o)),this.decode(o,o.uint32())},R.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.roomId!=null&&o.hasOwnProperty("roomId")&&!$util.isString(o.roomId))return"roomId: string expected";if(o.user!=null&&o.hasOwnProperty("user")){let A=$root.com.quick.voice.proto.User.verify(o.user);if(A)return"user."+A}return o.code!=null&&o.hasOwnProperty("code")&&!$util.isInteger(o.code)?"code: integer expected":o.desc!=null&&o.hasOwnProperty("desc")&&!$util.isString(o.desc)?"desc: string expected":null},R.fromObject=function(o){if(o instanceof $root.com.quick.voice.proto.QuitNotify)return o;let A=new $root.com.quick.voice.proto.QuitNotify;if(o.roomId!=null&&(A.roomId=String(o.roomId)),o.user!=null){if(typeof o.user!="object")throw TypeError(".com.quick.voice.proto.QuitNotify.user: object expected");A.user=$root.com.quick.voice.proto.User.fromObject(o.user)}return o.code!=null&&(A.code=o.code|0),o.desc!=null&&(A.desc=String(o.desc)),A},R.toObject=function(o,A){A||(A={});let U={};return A.defaults&&(U.roomId="",U.user=null),o.roomId!=null&&o.hasOwnProperty("roomId")&&(U.roomId=o.roomId),o.user!=null&&o.hasOwnProperty("user")&&(U.user=$root.com.quick.voice.proto.User.toObject(o.user,A)),o.code!=null&&o.hasOwnProperty("code")&&(U.code=o.code,A.oneofs&&(U._code="code")),o.desc!=null&&o.hasOwnProperty("desc")&&(U.desc=o.desc,A.oneofs&&(U._desc="desc")),U},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/com.quick.voice.proto.QuitNotify"},R}(),M.TokenExpireNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.TokenExpireNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.TokenExpireNotify)return e;let o=new $root.com.quick.voice.proto.TokenExpireNotify;return e.roomId!=null&&(o.roomId=String(e.roomId)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.TokenExpireNotify"},R}(),M.UpdateTokenReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.sdkToken="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.sdkToken!=null&&Object.hasOwnProperty.call(e,"sdkToken")&&o.uint32(18).string(e.sdkToken),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.UpdateTokenReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.sdkToken=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":e.sdkToken!=null&&e.hasOwnProperty("sdkToken")&&!$util.isString(e.sdkToken)?"sdkToken: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UpdateTokenReq)return e;let o=new $root.com.quick.voice.proto.UpdateTokenReq;return e.roomId!=null&&(o.roomId=String(e.roomId)),e.sdkToken!=null&&(o.sdkToken=String(e.sdkToken)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.sdkToken=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.sdkToken!=null&&e.hasOwnProperty("sdkToken")&&(A.sdkToken=e.sdkToken),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UpdateTokenReq"},R}(),M.NetQualityChange=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.userId="",R.prototype.roomId="",R.prototype.egress=0,R.prototype.ingress=0,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(10).string(e.userId),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(18).string(e.roomId),e.egress!=null&&Object.hasOwnProperty.call(e,"egress")&&o.uint32(24).int32(e.egress),e.ingress!=null&&Object.hasOwnProperty.call(e,"ingress")&&o.uint32(32).int32(e.ingress),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.NetQualityChange;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.userId=e.string();break}case 2:{U.roomId=e.string();break}case 3:{U.egress=e.int32();break}case 4:{U.ingress=e.int32();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":e.egress!=null&&e.hasOwnProperty("egress")&&!$util.isInteger(e.egress)?"egress: integer expected":e.ingress!=null&&e.hasOwnProperty("ingress")&&!$util.isInteger(e.ingress)?"ingress: integer expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.NetQualityChange)return e;let o=new $root.com.quick.voice.proto.NetQualityChange;return e.userId!=null&&(o.userId=String(e.userId)),e.roomId!=null&&(o.roomId=String(e.roomId)),e.egress!=null&&(o.egress=e.egress|0),e.ingress!=null&&(o.ingress=e.ingress|0),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.userId="",A.roomId="",A.egress=0,A.ingress=0),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.egress!=null&&e.hasOwnProperty("egress")&&(A.egress=e.egress),e.ingress!=null&&e.hasOwnProperty("ingress")&&(A.ingress=e.ingress),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.NetQualityChange"},R}(),M.NetQualityNotify=function(){function R(N){if(this.qualities=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.qualities=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.qualities!=null&&e.qualities.length)for(let A=0;A<e.qualities.length;++A)$root.com.quick.voice.proto.NetQualityChange.encode(e.qualities[A],o.uint32(10).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.NetQualityNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.qualities&&U.qualities.length||(U.qualities=[]),U.qualities.push($root.com.quick.voice.proto.NetQualityChange.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.qualities!=null&&e.hasOwnProperty("qualities")){if(!Array.isArray(e.qualities))return"qualities: array expected";for(let o=0;o<e.qualities.length;++o){let A=$root.com.quick.voice.proto.NetQualityChange.verify(e.qualities[o]);if(A)return"qualities."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.NetQualityNotify)return e;let o=new $root.com.quick.voice.proto.NetQualityNotify;if(e.qualities){if(!Array.isArray(e.qualities))throw TypeError(".com.quick.voice.proto.NetQualityNotify.qualities: array expected");o.qualities=[];for(let A=0;A<e.qualities.length;++A){if(typeof e.qualities[A]!="object")throw TypeError(".com.quick.voice.proto.NetQualityNotify.qualities: object expected");o.qualities[A]=$root.com.quick.voice.proto.NetQualityChange.fromObject(e.qualities[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.qualities=[]),e.qualities&&e.qualities.length){A.qualities=[];for(let U=0;U<e.qualities.length;++U)A.qualities[U]=$root.com.quick.voice.proto.NetQualityChange.toObject(e.qualities[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.NetQualityNotify"},R}(),M.UpdateCall=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.UpdateCall;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UpdateCall)return e;let o=new $root.com.quick.voice.proto.UpdateCall;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.UpdateCall.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UpdateCall"},R}(),M.SyncRoomInfoReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.SyncRoomInfoReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.SyncRoomInfoReq)return e;let o=new $root.com.quick.voice.proto.SyncRoomInfoReq;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.SyncRoomInfoReq.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.SyncRoomInfoReq"},R}(),M.SyncRoomInfoRsp=function(){function R(N){if(this.users=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.isValid=!1,R.prototype.users=$util.emptyArray,R.prototype.isActive=!1,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.isValid!=null&&Object.hasOwnProperty.call(e,"isValid")&&o.uint32(16).bool(e.isValid),e.users!=null&&e.users.length)for(let A=0;A<e.users.length;++A)$root.com.quick.voice.proto.User.encode(e.users[A],o.uint32(26).fork()).ldelim();return e.isActive!=null&&Object.hasOwnProperty.call(e,"isActive")&&o.uint32(32).bool(e.isActive),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.SyncRoomInfoRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.isValid=e.bool();break}case 3:{U.users&&U.users.length||(U.users=[]),U.users.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}case 4:{U.isActive=e.bool();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.isValid!=null&&e.hasOwnProperty("isValid")&&typeof e.isValid!="boolean")return"isValid: boolean expected";if(e.users!=null&&e.hasOwnProperty("users")){if(!Array.isArray(e.users))return"users: array expected";for(let o=0;o<e.users.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.users[o]);if(A)return"users."+A}}return e.isActive!=null&&e.hasOwnProperty("isActive")&&typeof e.isActive!="boolean"?"isActive: boolean expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.SyncRoomInfoRsp)return e;let o=new $root.com.quick.voice.proto.SyncRoomInfoRsp;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.isValid!=null&&(o.isValid=!!e.isValid),e.users){if(!Array.isArray(e.users))throw TypeError(".com.quick.voice.proto.SyncRoomInfoRsp.users: array expected");o.users=[];for(let A=0;A<e.users.length;++A){if(typeof e.users[A]!="object")throw TypeError(".com.quick.voice.proto.SyncRoomInfoRsp.users: object expected");o.users[A]=$root.com.quick.voice.proto.User.fromObject(e.users[A])}}return e.isActive!=null&&(o.isActive=!!e.isActive),o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.users=[]),o.defaults&&(A.roomId="",A.isValid=!1,A.isActive=!1),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.isValid!=null&&e.hasOwnProperty("isValid")&&(A.isValid=e.isValid),e.users&&e.users.length){A.users=[];for(let U=0;U<e.users.length;++U)A.users[U]=$root.com.quick.voice.proto.User.toObject(e.users[U],o)}return e.isActive!=null&&e.hasOwnProperty("isActive")&&(A.isActive=e.isActive),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.SyncRoomInfoRsp"},R}(),M.UpdateTime=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.time=$util.Long?$util.Long.fromBits(0,0,!1):0,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&o.uint32(8).int64(e.time),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.UpdateTime;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.time=e.int64();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.time!=null&&e.hasOwnProperty("time")&&!$util.isInteger(e.time)&&!(e.time&&$util.isInteger(e.time.low)&&$util.isInteger(e.time.high))?"time: integer|Long expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UpdateTime)return e;let o=new $root.com.quick.voice.proto.UpdateTime;return e.time!=null&&($util.Long?(o.time=$util.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?o.time=parseInt(e.time,10):typeof e.time=="number"?o.time=e.time:typeof e.time=="object"&&(o.time=new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),o},R.toObject=function(e,o){o||(o={});let A={};if(o.defaults)if($util.Long){let U=new $util.Long(0,0,!1);A.time=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.time=o.longs===String?"0":0;return e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?A.time=o.longs===String?String(e.time):e.time:A.time=o.longs===String?$util.Long.prototype.toString.call(e.time):o.longs===Number?new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UpdateTime"},R}(),M.CloseTrackReq=function(){function R(N){if(this.tracks=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.sdp="",R.prototype.tracks=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.sdp!=null&&Object.hasOwnProperty.call(e,"sdp")&&o.uint32(10).string(e.sdp),e.tracks!=null&&e.tracks.length)for(let A=0;A<e.tracks.length;++A)$root.com.quick.voice.proto.Track.encode(e.tracks[A],o.uint32(18).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CloseTrackReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.sdp=e.string();break}case 2:{U.tracks&&U.tracks.length||(U.tracks=[]),U.tracks.push($root.com.quick.voice.proto.Track.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.sdp!=null&&e.hasOwnProperty("sdp")&&!$util.isString(e.sdp))return"sdp: string expected";if(e.tracks!=null&&e.hasOwnProperty("tracks")){if(!Array.isArray(e.tracks))return"tracks: array expected";for(let o=0;o<e.tracks.length;++o){let A=$root.com.quick.voice.proto.Track.verify(e.tracks[o]);if(A)return"tracks."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CloseTrackReq)return e;let o=new $root.com.quick.voice.proto.CloseTrackReq;if(e.sdp!=null&&(o.sdp=String(e.sdp)),e.tracks){if(!Array.isArray(e.tracks))throw TypeError(".com.quick.voice.proto.CloseTrackReq.tracks: array expected");o.tracks=[];for(let A=0;A<e.tracks.length;++A){if(typeof e.tracks[A]!="object")throw TypeError(".com.quick.voice.proto.CloseTrackReq.tracks: object expected");o.tracks[A]=$root.com.quick.voice.proto.Track.fromObject(e.tracks[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.tracks=[]),o.defaults&&(A.sdp=""),e.sdp!=null&&e.hasOwnProperty("sdp")&&(A.sdp=e.sdp),e.tracks&&e.tracks.length){A.tracks=[];for(let U=0;U<e.tracks.length;++U)A.tracks[U]=$root.com.quick.voice.proto.Track.toObject(e.tracks[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CloseTrackReq"},R}(),M.CloseTrackRsp=function(){function R(N){if(this.tracks=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.remoteSdp="",R.prototype.tracks=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.remoteSdp!=null&&Object.hasOwnProperty.call(e,"remoteSdp")&&o.uint32(10).string(e.remoteSdp),e.tracks!=null&&e.tracks.length)for(let A=0;A<e.tracks.length;++A)$root.com.quick.voice.proto.Track.encode(e.tracks[A],o.uint32(18).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CloseTrackRsp;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.remoteSdp=e.string();break}case 2:{U.tracks&&U.tracks.length||(U.tracks=[]),U.tracks.push($root.com.quick.voice.proto.Track.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&!$util.isString(e.remoteSdp))return"remoteSdp: string expected";if(e.tracks!=null&&e.hasOwnProperty("tracks")){if(!Array.isArray(e.tracks))return"tracks: array expected";for(let o=0;o<e.tracks.length;++o){let A=$root.com.quick.voice.proto.Track.verify(e.tracks[o]);if(A)return"tracks."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CloseTrackRsp)return e;let o=new $root.com.quick.voice.proto.CloseTrackRsp;if(e.remoteSdp!=null&&(o.remoteSdp=String(e.remoteSdp)),e.tracks){if(!Array.isArray(e.tracks))throw TypeError(".com.quick.voice.proto.CloseTrackRsp.tracks: array expected");o.tracks=[];for(let A=0;A<e.tracks.length;++A){if(typeof e.tracks[A]!="object")throw TypeError(".com.quick.voice.proto.CloseTrackRsp.tracks: object expected");o.tracks[A]=$root.com.quick.voice.proto.Track.fromObject(e.tracks[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.tracks=[]),o.defaults&&(A.remoteSdp=""),e.remoteSdp!=null&&e.hasOwnProperty("remoteSdp")&&(A.remoteSdp=e.remoteSdp),e.tracks&&e.tracks.length){A.tracks=[];for(let U=0;U<e.tracks.length;++U)A.tracks[U]=$root.com.quick.voice.proto.Track.toObject(e.tracks[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CloseTrackRsp"},R}(),M.CloseTrackNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(10).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CloseTrackNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CloseTrackNotify)return e;let o=new $root.com.quick.voice.proto.CloseTrackNotify;if(e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.CloseTrackNotify.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.user=null),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CloseTrackNotify"},R}(),M.ToggleLiveRoomReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ToggleLiveRoomReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ToggleLiveRoomReq)return e;let o=new $root.com.quick.voice.proto.ToggleLiveRoomReq;return e.roomId!=null&&(o.roomId=String(e.roomId)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ToggleLiveRoomReq"},R}(),M.ToggleLiveRoomRsq=function(){function R(N){if(this.roomUsers=[],N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.hash="",R.prototype.roomUsers=$util.emptyArray,R.create=function(e){return new R(e)},R.encode=function(e,o){if(o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.hash!=null&&Object.hasOwnProperty.call(e,"hash")&&o.uint32(18).string(e.hash),e.roomUsers!=null&&e.roomUsers.length)for(let A=0;A<e.roomUsers.length;++A)$root.com.quick.voice.proto.User.encode(e.roomUsers[A],o.uint32(26).fork()).ldelim();return o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ToggleLiveRoomRsq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.hash=e.string();break}case 3:{U.roomUsers&&U.roomUsers.length||(U.roomUsers=[]),U.roomUsers.push($root.com.quick.voice.proto.User.decode(e,e.uint32()));break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.hash!=null&&e.hasOwnProperty("hash")&&!$util.isString(e.hash))return"hash: string expected";if(e.roomUsers!=null&&e.hasOwnProperty("roomUsers")){if(!Array.isArray(e.roomUsers))return"roomUsers: array expected";for(let o=0;o<e.roomUsers.length;++o){let A=$root.com.quick.voice.proto.User.verify(e.roomUsers[o]);if(A)return"roomUsers."+A}}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ToggleLiveRoomRsq)return e;let o=new $root.com.quick.voice.proto.ToggleLiveRoomRsq;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.hash!=null&&(o.hash=String(e.hash)),e.roomUsers){if(!Array.isArray(e.roomUsers))throw TypeError(".com.quick.voice.proto.ToggleLiveRoomRsq.roomUsers: array expected");o.roomUsers=[];for(let A=0;A<e.roomUsers.length;++A){if(typeof e.roomUsers[A]!="object")throw TypeError(".com.quick.voice.proto.ToggleLiveRoomRsq.roomUsers: object expected");o.roomUsers[A]=$root.com.quick.voice.proto.User.fromObject(e.roomUsers[A])}}return o},R.toObject=function(e,o){o||(o={});let A={};if((o.arrays||o.defaults)&&(A.roomUsers=[]),o.defaults&&(A.roomId="",A.hash=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.hash!=null&&e.hasOwnProperty("hash")&&(A.hash=e.hash),e.roomUsers&&e.roomUsers.length){A.roomUsers=[];for(let U=0;U<e.roomUsers.length;++U)A.roomUsers[U]=$root.com.quick.voice.proto.User.toObject(e.roomUsers[U],o)}return A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ToggleLiveRoomRsq"},R}(),M.CDNPlayAddressNotify=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.m3u8="",R.prototype.rtmp="",R.prototype.flv="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.m3u8!=null&&Object.hasOwnProperty.call(e,"m3u8")&&o.uint32(18).string(e.m3u8),e.rtmp!=null&&Object.hasOwnProperty.call(e,"rtmp")&&o.uint32(26).string(e.rtmp),e.flv!=null&&Object.hasOwnProperty.call(e,"flv")&&o.uint32(34).string(e.flv),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.CDNPlayAddressNotify;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.m3u8=e.string();break}case 3:{U.rtmp=e.string();break}case 4:{U.flv=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId)?"roomId: string expected":e.m3u8!=null&&e.hasOwnProperty("m3u8")&&!$util.isString(e.m3u8)?"m3u8: string expected":e.rtmp!=null&&e.hasOwnProperty("rtmp")&&!$util.isString(e.rtmp)?"rtmp: string expected":e.flv!=null&&e.hasOwnProperty("flv")&&!$util.isString(e.flv)?"flv: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.CDNPlayAddressNotify)return e;let o=new $root.com.quick.voice.proto.CDNPlayAddressNotify;return e.roomId!=null&&(o.roomId=String(e.roomId)),e.m3u8!=null&&(o.m3u8=String(e.m3u8)),e.rtmp!=null&&(o.rtmp=String(e.rtmp)),e.flv!=null&&(o.flv=String(e.flv)),o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.m3u8="",A.rtmp="",A.flv=""),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.m3u8!=null&&e.hasOwnProperty("m3u8")&&(A.m3u8=e.m3u8),e.rtmp!=null&&e.hasOwnProperty("rtmp")&&(A.rtmp=e.rtmp),e.flv!=null&&e.hasOwnProperty("flv")&&(A.flv=e.flv),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.CDNPlayAddressNotify"},R}(),M.TrackType=function(){const R={},N=Object.create(R);return N[R[0]="Microphone"]=0,N[R[1]="Camera"]=1,N[R[2]="Screen"]=2,N[R[3]="SystemVoice"]=3,N}(),M.ReportInfoReq=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.actionEvent="",R.prototype.userId="",R.prototype.platform="",R.prototype.time=$util.Long?$util.Long.fromBits(0,0,!1):0,R.prototype.actionData="",R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.actionEvent!=null&&Object.hasOwnProperty.call(e,"actionEvent")&&o.uint32(10).string(e.actionEvent),e.userId!=null&&Object.hasOwnProperty.call(e,"userId")&&o.uint32(18).string(e.userId),e.platform!=null&&Object.hasOwnProperty.call(e,"platform")&&o.uint32(26).string(e.platform),e.time!=null&&Object.hasOwnProperty.call(e,"time")&&o.uint32(32).int64(e.time),e.actionData!=null&&Object.hasOwnProperty.call(e,"actionData")&&o.uint32(42).string(e.actionData),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.ReportInfoReq;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.actionEvent=e.string();break}case 2:{U.userId=e.string();break}case 3:{U.platform=e.string();break}case 4:{U.time=e.int64();break}case 5:{U.actionData=e.string();break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){return typeof e!="object"||e===null?"object expected":e.actionEvent!=null&&e.hasOwnProperty("actionEvent")&&!$util.isString(e.actionEvent)?"actionEvent: string expected":e.userId!=null&&e.hasOwnProperty("userId")&&!$util.isString(e.userId)?"userId: string expected":e.platform!=null&&e.hasOwnProperty("platform")&&!$util.isString(e.platform)?"platform: string expected":e.time!=null&&e.hasOwnProperty("time")&&!$util.isInteger(e.time)&&!(e.time&&$util.isInteger(e.time.low)&&$util.isInteger(e.time.high))?"time: integer|Long expected":e.actionData!=null&&e.hasOwnProperty("actionData")&&!$util.isString(e.actionData)?"actionData: string expected":null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.ReportInfoReq)return e;let o=new $root.com.quick.voice.proto.ReportInfoReq;return e.actionEvent!=null&&(o.actionEvent=String(e.actionEvent)),e.userId!=null&&(o.userId=String(e.userId)),e.platform!=null&&(o.platform=String(e.platform)),e.time!=null&&($util.Long?(o.time=$util.Long.fromValue(e.time)).unsigned=!1:typeof e.time=="string"?o.time=parseInt(e.time,10):typeof e.time=="number"?o.time=e.time:typeof e.time=="object"&&(o.time=new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber())),e.actionData!=null&&(o.actionData=String(e.actionData)),o},R.toObject=function(e,o){o||(o={});let A={};if(o.defaults){if(A.actionEvent="",A.userId="",A.platform="",$util.Long){let U=new $util.Long(0,0,!1);A.time=o.longs===String?U.toString():o.longs===Number?U.toNumber():U}else A.time=o.longs===String?"0":0;A.actionData=""}return e.actionEvent!=null&&e.hasOwnProperty("actionEvent")&&(A.actionEvent=e.actionEvent),e.userId!=null&&e.hasOwnProperty("userId")&&(A.userId=e.userId),e.platform!=null&&e.hasOwnProperty("platform")&&(A.platform=e.platform),e.time!=null&&e.hasOwnProperty("time")&&(typeof e.time=="number"?A.time=o.longs===String?String(e.time):e.time:A.time=o.longs===String?$util.Long.prototype.toString.call(e.time):o.longs===Number?new $util.LongBits(e.time.low>>>0,e.time.high>>>0).toNumber():e.time),e.actionData!=null&&e.hasOwnProperty("actionData")&&(A.actionData=e.actionData),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.ReportInfoReq"},R}(),M.UpdatePermissions=function(){function R(N){if(N)for(let e=Object.keys(N),o=0;o<e.length;++o)N[e[o]]!=null&&(this[e[o]]=N[e[o]])}return R.prototype.roomId="",R.prototype.user=null,R.create=function(e){return new R(e)},R.encode=function(e,o){return o||(o=$Writer.create()),e.roomId!=null&&Object.hasOwnProperty.call(e,"roomId")&&o.uint32(10).string(e.roomId),e.user!=null&&Object.hasOwnProperty.call(e,"user")&&$root.com.quick.voice.proto.User.encode(e.user,o.uint32(18).fork()).ldelim(),o},R.encodeDelimited=function(e,o){return this.encode(e,o).ldelim()},R.decode=function(e,o){e instanceof $Reader||(e=$Reader.create(e));let A=o===void 0?e.len:e.pos+o,U=new $root.com.quick.voice.proto.UpdatePermissions;for(;e.pos<A;){let L=e.uint32();switch(L>>>3){case 1:{U.roomId=e.string();break}case 2:{U.user=$root.com.quick.voice.proto.User.decode(e,e.uint32());break}default:e.skipType(L&7);break}}return U},R.decodeDelimited=function(e){return e instanceof $Reader||(e=new $Reader(e)),this.decode(e,e.uint32())},R.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.roomId!=null&&e.hasOwnProperty("roomId")&&!$util.isString(e.roomId))return"roomId: string expected";if(e.user!=null&&e.hasOwnProperty("user")){let o=$root.com.quick.voice.proto.User.verify(e.user);if(o)return"user."+o}return null},R.fromObject=function(e){if(e instanceof $root.com.quick.voice.proto.UpdatePermissions)return e;let o=new $root.com.quick.voice.proto.UpdatePermissions;if(e.roomId!=null&&(o.roomId=String(e.roomId)),e.user!=null){if(typeof e.user!="object")throw TypeError(".com.quick.voice.proto.UpdatePermissions.user: object expected");o.user=$root.com.quick.voice.proto.User.fromObject(e.user)}return o},R.toObject=function(e,o){o||(o={});let A={};return o.defaults&&(A.roomId="",A.user=null),e.roomId!=null&&e.hasOwnProperty("roomId")&&(A.roomId=e.roomId),e.user!=null&&e.hasOwnProperty("user")&&(A.user=$root.com.quick.voice.proto.User.toObject(e.user,o)),A},R.prototype.toJSON=function(){return this.constructor.toObject(this,minimalExports.util.toJSONOptions)},R.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/com.quick.voice.proto.UpdatePermissions"},R}(),M.CallType=function(){const R={},N=Object.create(R);return N[R[0]="Normal"]=0,N[R[1]="Meeting"]=1,N[R[2]="Live"]=2,N}(),M.QuitNotifyCode=function(){const R={},N=Object.create(R);return N[R[0]="NormalQuit"]=0,N[R[2021]="Timeout"]=2021,N[R[2011]="TokenExpired"]=2011,N[R[2022]="KickOut"]=2022,N[R[2023]="EndPk"]=2023,N[R[2024]="EndLive"]=2024,N}(),M}(),$}(),D}(),_})(),ignoreEvent=["heartbeat","healthCheck"],enum_notifyName={onChangeNetwork:"网络情况变更",onRoomNetwork:"房间网络情况变更",healthCheck:"心跳检测",onNetQuality:"网络质量回调",onLogin:"登录回调",onLocalStream:"本地媒体流发生变化",onDevicechange:"媒体设备发生变化",onRoomUser:"房间用户变化",onRoomUsers:"房间所有用户所有变化",onRoomUsersStreams:"房间某些用户媒体流变化",onRoomState:"房间状态变化",onJoinRoom:"加入房间回调",onQuitRoom:"退出房间回调",onPublish:"监听到流发布",onCloseTrack:"关闭轨道",onUpdateCall:"更新通讯状态",onUpdateStreams:"更新媒体流",onUpdatePermissions:"更新推流权限通知",onTokenExpired:"Token已过期",onDestroyRoom:"直播模式房间销毁",destroyRoom:"服务器要求销毁房间",onDestroy:"SDK销毁"};ut(enum_notifyName);const notifyName_keys=Object.keys(enum_notifyName);/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(_){let D=_.length;for(;--D>=0;)_[D]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([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]),extra_dbits=new Uint8Array([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]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(_,D,$,M,R){this.static_tree=_,this.extra_bits=D,this.extra_base=$,this.elems=M,this.max_length=R,this.has_stree=_&&_.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(_,D){this.dyn_tree=_,this.max_code=0,this.stat_desc=D}const d_code=_=>_<256?_dist_code[_]:_dist_code[256+(_>>>7)],put_short=(_,D)=>{_.pending_buf[_.pending++]=D&255,_.pending_buf[_.pending++]=D>>>8&255},send_bits=(_,D,$)=>{_.bi_valid>Buf_size-$?(_.bi_buf|=D<<_.bi_valid&65535,put_short(_,_.bi_buf),_.bi_buf=D>>Buf_size-_.bi_valid,_.bi_valid+=$-Buf_size):(_.bi_buf|=D<<_.bi_valid&65535,_.bi_valid+=$)},send_code=(_,D,$)=>{send_bits(_,$[D*2],$[D*2+1])},bi_reverse=(_,D)=>{let $=0;do $|=_&1,_>>>=1,$<<=1;while(--D>0);return $>>>1},bi_flush=_=>{_.bi_valid===16?(put_short(_,_.bi_buf),_.bi_buf=0,_.bi_valid=0):_.bi_valid>=8&&(_.pending_buf[_.pending++]=_.bi_buf&255,_.bi_buf>>=8,_.bi_valid-=8)},gen_bitlen=(_,D)=>{const $=D.dyn_tree,M=D.max_code,R=D.stat_desc.static_tree,N=D.stat_desc.has_stree,e=D.stat_desc.extra_bits,o=D.stat_desc.extra_base,A=D.stat_desc.max_length;let U,L,F,Z,H,z,G=0;for(Z=0;Z<=MAX_BITS$1;Z++)_.bl_count[Z]=0;for($[_.heap[_.heap_max]*2+1]=0,U=_.heap_max+1;U<HEAP_SIZE$1;U++)L=_.heap[U],Z=$[$[L*2+1]*2+1]+1,Z>A&&(Z=A,G++),$[L*2+1]=Z,!(L>M)&&(_.bl_count[Z]++,H=0,L>=o&&(H=e[L-o]),z=$[L*2],_.opt_len+=z*(Z+H),N&&(_.static_len+=z*(R[L*2+1]+H)));if(G!==0){do{for(Z=A-1;_.bl_count[Z]===0;)Z--;_.bl_count[Z]--,_.bl_count[Z+1]+=2,_.bl_count[A]--,G-=2}while(G>0);for(Z=A;Z!==0;Z--)for(L=_.bl_count[Z];L!==0;)F=_.heap[--U],!(F>M)&&($[F*2+1]!==Z&&(_.opt_len+=(Z-$[F*2+1])*$[F*2],$[F*2+1]=Z),L--)}},gen_codes=(_,D,$)=>{const M=new Array(MAX_BITS$1+1);let R=0,N,e;for(N=1;N<=MAX_BITS$1;N++)R=R+$[N-1]<<1,M[N]=R;for(e=0;e<=D;e++){let o=_[e*2+1];o!==0&&(_[e*2]=bi_reverse(M[o]++,o))}},tr_static_init=()=>{let _,D,$,M,R;const N=new Array(MAX_BITS$1+1);for($=0,M=0;M<LENGTH_CODES$1-1;M++)for(base_length[M]=$,_=0;_<1<<extra_lbits[M];_++)_length_code[$++]=M;for(_length_code[$-1]=M,R=0,M=0;M<16;M++)for(base_dist[M]=R,_=0;_<1<<extra_dbits[M];_++)_dist_code[R++]=M;for(R>>=7;M<D_CODES$1;M++)for(base_dist[M]=R<<7,_=0;_<1<<extra_dbits[M]-7;_++)_dist_code[256+R++]=M;for(D=0;D<=MAX_BITS$1;D++)N[D]=0;for(_=0;_<=143;)static_ltree[_*2+1]=8,_++,N[8]++;for(;_<=255;)static_ltree[_*2+1]=9,_++,N[9]++;for(;_<=279;)static_ltree[_*2+1]=7,_++,N[7]++;for(;_<=287;)static_ltree[_*2+1]=8,_++,N[8]++;for(gen_codes(static_ltree,L_CODES$1+1,N),_=0;_<D_CODES$1;_++)static_dtree[_*2+1]=5,static_dtree[_*2]=bi_reverse(_,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS$1+1,L_CODES$1,MAX_BITS$1),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES$1,MAX_BITS$1),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES$1,MAX_BL_BITS)},init_block=_=>{let D;for(D=0;D<L_CODES$1;D++)_.dyn_ltree[D*2]=0;for(D=0;D<D_CODES$1;D++)_.dyn_dtree[D*2]=0;for(D=0;D<BL_CODES$1;D++)_.bl_tree[D*2]=0;_.dyn_ltree[END_BLOCK*2]=1,_.opt_len=_.static_len=0,_.sym_next=_.matches=0},bi_windup=_=>{_.bi_valid>8?put_short(_,_.bi_buf):_.bi_valid>0&&(_.pending_buf[_.pending++]=_.bi_buf),_.bi_buf=0,_.bi_valid=0},smaller=(_,D,$,M)=>{const R=D*2,N=$*2;return _[R]<_[N]||_[R]===_[N]&&M[D]<=M[$]},pqdownheap=(_,D,$)=>{const M=_.heap[$];let R=$<<1;for(;R<=_.heap_len&&(R<_.heap_len&&smaller(D,_.heap[R+1],_.heap[R],_.depth)&&R++,!smaller(D,M,_.heap[R],_.depth));)_.heap[$]=_.heap[R],$=R,R<<=1;_.heap[$]=M},compress_block=(_,D,$)=>{let M,R,N=0,e,o;if(_.sym_next!==0)do M=_.pending_buf[_.sym_buf+N++]&255,M+=(_.pending_buf[_.sym_buf+N++]&255)<<8,R=_.pending_buf[_.sym_buf+N++],M===0?send_code(_,R,D):(e=_length_code[R],send_code(_,e+LITERALS$1+1,D),o=extra_lbits[e],o!==0&&(R-=base_length[e],send_bits(_,R,o)),M--,e=d_code(M),send_code(_,e,$),o=extra_dbits[e],o!==0&&(M-=base_dist[e],send_bits(_,M,o)));while(N<_.sym_next);send_code(_,END_BLOCK,D)},build_tree=(_,D)=>{const $=D.dyn_tree,M=D.stat_desc.static_tree,R=D.stat_desc.has_stree,N=D.stat_desc.elems;let e,o,A=-1,U;for(_.heap_len=0,_.heap_max=HEAP_SIZE$1,e=0;e<N;e++)$[e*2]!==0?(_.heap[++_.heap_len]=A=e,_.depth[e]=0):$[e*2+1]=0;for(;_.heap_len<2;)U=_.heap[++_.heap_len]=A<2?++A:0,$[U*2]=1,_.depth[U]=0,_.opt_len--,R&&(_.static_len-=M[U*2+1]);for(D.max_code=A,e=_.heap_len>>1;e>=1;e--)pqdownheap(_,$,e);U=N;do e=_.heap[1],_.heap[1]=_.heap[_.heap_len--],pqdownheap(_,$,1),o=_.heap[1],_.heap[--_.heap_max]=e,_.heap[--_.heap_max]=o,$[U*2]=$[e*2]+$[o*2],_.depth[U]=(_.depth[e]>=_.depth[o]?_.depth[e]:_.depth[o])+1,$[e*2+1]=$[o*2+1]=U,_.heap[1]=U++,pqdownheap(_,$,1);while(_.heap_len>=2);_.heap[--_.heap_max]=_.heap[1],gen_bitlen(_,D),gen_codes($,A,_.bl_count)},scan_tree=(_,D,$)=>{let M,R=-1,N,e=D[0*2+1],o=0,A=7,U=4;for(e===0&&(A=138,U=3),D[($+1)*2+1]=65535,M=0;M<=$;M++)N=e,e=D[(M+1)*2+1],!(++o<A&&N===e)&&(o<U?_.bl_tree[N*2]+=o:N!==0?(N!==R&&_.bl_tree[N*2]++,_.bl_tree[REP_3_6*2]++):o<=10?_.bl_tree[REPZ_3_10*2]++:_.bl_tree[REPZ_11_138*2]++,o=0,R=N,e===0?(A=138,U=3):N===e?(A=6,U=3):(A=7,U=4))},send_tree=(_,D,$)=>{let M,R=-1,N,e=D[0*2+1],o=0,A=7,U=4;for(e===0&&(A=138,U=3),M=0;M<=$;M++)if(N=e,e=D[(M+1)*2+1],!(++o<A&&N===e)){if(o<U)do send_code(_,N,_.bl_tree);while(--o!==0);else N!==0?(N!==R&&(send_code(_,N,_.bl_tree),o--),send_code(_,REP_3_6,_.bl_tree),send_bits(_,o-3,2)):o<=10?(send_code(_,REPZ_3_10,_.bl_tree),send_bits(_,o-3,3)):(send_code(_,REPZ_11_138,_.bl_tree),send_bits(_,o-11,7));o=0,R=N,e===0?(A=138,U=3):N===e?(A=6,U=3):(A=7,U=4)}},build_bl_tree=_=>{let D;for(scan_tree(_,_.dyn_ltree,_.l_desc.max_code),scan_tree(_,_.dyn_dtree,_.d_desc.max_code),build_tree(_,_.bl_desc),D=BL_CODES$1-1;D>=3&&_.bl_tree[bl_order[D]*2+1]===0;D--);return _.opt_len+=3*(D+1)+5+5+4,D},send_all_trees=(_,D,$,M)=>{let R;for(send_bits(_,D-257,5),send_bits(_,$-1,5),send_bits(_,M-4,4),R=0;R<M;R++)send_bits(_,_.bl_tree[bl_order[R]*2+1],3);send_tree(_,_.dyn_ltree,D-1),send_tree(_,_.dyn_dtree,$-1)},detect_data_type=_=>{let D=4093624447,$;for($=0;$<=31;$++,D>>>=1)if(D&1&&_.dyn_ltree[$*2]!==0)return Z_BINARY;if(_.dyn_ltree[9*2]!==0||_.dyn_ltree[10*2]!==0||_.dyn_ltree[13*2]!==0)return Z_TEXT;for($=32;$<LITERALS$1;$++)if(_.dyn_ltree[$*2]!==0)return Z_TEXT;return Z_BINARY};let static_init_done=!1;const _tr_init$1=_=>{static_init_done||(tr_static_init(),static_init_done=!0),_.l_desc=new TreeDesc(_.dyn_ltree,static_l_desc),_.d_desc=new TreeDesc(_.dyn_dtree,static_d_desc),_.bl_desc=new TreeDesc(_.bl_tree,static_bl_desc),_.bi_buf=0,_.bi_valid=0,init_block(_)},_tr_stored_block$1=(_,D,$,M)=>{send_bits(_,(STORED_BLOCK<<1)+(M?1:0),3),bi_windup(_),put_short(_,$),put_short(_,~$),$&&_.pending_buf.set(_.window.subarray(D,D+$),_.pending),_.pending+=$},_tr_align$1=_=>{send_bits(_,STATIC_TREES<<1,3),send_code(_,END_BLOCK,static_ltree),bi_flush(_)},_tr_flush_block$1=(_,D,$,M)=>{let R,N,e=0;_.level>0?(_.strm.data_type===Z_UNKNOWN$1&&(_.strm.data_type=detect_data_type(_)),build_tree(_,_.l_desc),build_tree(_,_.d_desc),e=build_bl_tree(_),R=_.opt_len+3+7>>>3,N=_.static_len+3+7>>>3,N<=R&&(R=N)):R=N=$+5,$+4<=R&&D!==-1?_tr_stored_block$1(_,D,$,M):_.strategy===Z_FIXED$1||N===R?(send_bits(_,(STATIC_TREES<<1)+(M?1:0),3),compress_block(_,static_ltree,static_dtree)):(send_bits(_,(DYN_TREES<<1)+(M?1:0),3),send_all_trees(_,_.l_desc.max_code+1,_.d_desc.max_code+1,e+1),compress_block(_,_.dyn_ltree,_.dyn_dtree)),init_block(_),M&&bi_windup(_)},_tr_tally$1=(_,D,$)=>(_.pending_buf[_.sym_buf+_.sym_next++]=D,_.pending_buf[_.sym_buf+_.sym_next++]=D>>8,_.pending_buf[_.sym_buf+_.sym_next++]=$,D===0?_.dyn_ltree[$*2]++:(_.matches++,D--,_.dyn_ltree[(_length_code[$]+LITERALS$1+1)*2]++,_.dyn_dtree[d_code(D)*2]++),_.sym_next===_.sym_end);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(_,D,$,M)=>{let R=_&65535|0,N=_>>>16&65535|0,e=0;for(;$!==0;){e=$>2e3?2e3:$,$-=e;do R=R+D[M++]|0,N=N+R|0;while(--e);R%=65521,N%=65521}return R|N<<16|0};var adler32_1=adler32;const makeTable=()=>{let _,D=[];for(var $=0;$<256;$++){_=$;for(var M=0;M<8;M++)_=_&1?3988292384^_>>>1:_>>>1;D[$]=_}return D},crcTable=new Uint32Array(makeTable()),crc32=(_,D,$,M)=>{const R=crcTable,N=M+$;_^=-1;for(let e=M;e<N;e++)_=_>>>8^R[(_^D[e])&255];return _^-1};var crc32_1=crc32,messages={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"},constants$2={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_MEM_ERROR:-4,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};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,GZIP_STATE=57,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(_,D)=>(_.msg=messages[D],D),rank=_=>_*2-(_>4?9:0),zero=_=>{let D=_.length;for(;--D>=0;)_[D]=0},slide_hash=_=>{let D,$,M,R=_.w_size;D=_.hash_size,M=D;do $=_.head[--M],_.head[M]=$>=R?$-R:0;while(--D);D=R,M=D;do $=_.prev[--M],_.prev[M]=$>=R?$-R:0;while(--D)};let HASH_ZLIB=(_,D,$)=>(D<<_.hash_shift^$)&_.hash_mask,HASH=HASH_ZLIB;const flush_pending=_=>{const D=_.state;let $=D.pending;$>_.avail_out&&($=_.avail_out),$!==0&&(_.output.set(D.pending_buf.subarray(D.pending_out,D.pending_out+$),_.next_out),_.next_out+=$,D.pending_out+=$,_.total_out+=$,_.avail_out-=$,D.pending-=$,D.pending===0&&(D.pending_out=0))},flush_block_only=(_,D)=>{_tr_flush_block(_,_.block_start>=0?_.block_start:-1,_.strstart-_.block_start,D),_.block_start=_.strstart,flush_pending(_.strm)},put_byte=(_,D)=>{_.pending_buf[_.pending++]=D},putShortMSB=(_,D)=>{_.pending_buf[_.pending++]=D>>>8&255,_.pending_buf[_.pending++]=D&255},read_buf=(_,D,$,M)=>{let R=_.avail_in;return R>M&&(R=M),R===0?0:(_.avail_in-=R,D.set(_.input.subarray(_.next_in,_.next_in+R),$),_.state.wrap===1?_.adler=adler32_1(_.adler,D,R,$):_.state.wrap===2&&(_.adler=crc32_1(_.adler,D,R,$)),_.next_in+=R,_.total_in+=R,R)},longest_match=(_,D)=>{let $=_.max_chain_length,M=_.strstart,R,N,e=_.prev_length,o=_.nice_match;const A=_.strstart>_.w_size-MIN_LOOKAHEAD?_.strstart-(_.w_size-MIN_LOOKAHEAD):0,U=_.window,L=_.w_mask,F=_.prev,Z=_.strstart+MAX_MATCH;let H=U[M+e-1],z=U[M+e];_.prev_length>=_.good_match&&($>>=2),o>_.lookahead&&(o=_.lookahead);do if(R=D,!(U[R+e]!==z||U[R+e-1]!==H||U[R]!==U[M]||U[++R]!==U[M+1])){M+=2,R++;do;while(U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&U[++M]===U[++R]&&M<Z);if(N=MAX_MATCH-(Z-M),M=Z-MAX_MATCH,N>e){if(_.match_start=D,e=N,N>=o)break;H=U[M+e-1],z=U[M+e]}}while((D=F[D&L])>A&&--$!==0);return e<=_.lookahead?e:_.lookahead},fill_window=_=>{const D=_.w_size;let $,M,R;do{if(M=_.window_size-_.lookahead-_.strstart,_.strstart>=D+(D-MIN_LOOKAHEAD)&&(_.window.set(_.window.subarray(D,D+D-M),0),_.match_start-=D,_.strstart-=D,_.block_start-=D,_.insert>_.strstart&&(_.insert=_.strstart),slide_hash(_),M+=D),_.strm.avail_in===0)break;if($=read_buf(_.strm,_.window,_.strstart+_.lookahead,M),_.lookahead+=$,_.lookahead+_.insert>=MIN_MATCH)for(R=_.strstart-_.insert,_.ins_h=_.window[R],_.ins_h=HASH(_,_.ins_h,_.window[R+1]);_.insert&&(_.ins_h=HASH(_,_.ins_h,_.window[R+MIN_MATCH-1]),_.prev[R&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=R,R++,_.insert--,!(_.lookahead+_.insert<MIN_MATCH)););}while(_.lookahead<MIN_LOOKAHEAD&&_.strm.avail_in!==0)},deflate_stored=(_,D)=>{let $=_.pending_buf_size-5>_.w_size?_.w_size:_.pending_buf_size-5,M,R,N,e=0,o=_.strm.avail_in;do{if(M=65535,N=_.bi_valid+42>>3,_.strm.avail_out<N||(N=_.strm.avail_out-N,R=_.strstart-_.block_start,M>R+_.strm.avail_in&&(M=R+_.strm.avail_in),M>N&&(M=N),M<$&&(M===0&&D!==Z_FINISH$3||D===Z_NO_FLUSH$2||M!==R+_.strm.avail_in)))break;e=D===Z_FINISH$3&&M===R+_.strm.avail_in?1:0,_tr_stored_block(_,0,0,e),_.pending_buf[_.pending-4]=M,_.pending_buf[_.pending-3]=M>>8,_.pending_buf[_.pending-2]=~M,_.pending_buf[_.pending-1]=~M>>8,flush_pending(_.strm),R&&(R>M&&(R=M),_.strm.output.set(_.window.subarray(_.block_start,_.block_start+R),_.strm.next_out),_.strm.next_out+=R,_.strm.avail_out-=R,_.strm.total_out+=R,_.block_start+=R,M-=R),M&&(read_buf(_.strm,_.strm.output,_.strm.next_out,M),_.strm.next_out+=M,_.strm.avail_out-=M,_.strm.total_out+=M)}while(e===0);return o-=_.strm.avail_in,o&&(o>=_.w_size?(_.matches=2,_.window.set(_.strm.input.subarray(_.strm.next_in-_.w_size,_.strm.next_in),0),_.strstart=_.w_size,_.insert=_.strstart):(_.window_size-_.strstart<=o&&(_.strstart-=_.w_size,_.window.set(_.window.subarray(_.w_size,_.w_size+_.strstart),0),_.matches<2&&_.matches++,_.insert>_.strstart&&(_.insert=_.strstart)),_.window.set(_.strm.input.subarray(_.strm.next_in-o,_.strm.next_in),_.strstart),_.strstart+=o,_.insert+=o>_.w_size-_.insert?_.w_size-_.insert:o),_.block_start=_.strstart),_.high_water<_.strstart&&(_.high_water=_.strstart),e?BS_FINISH_DONE:D!==Z_NO_FLUSH$2&&D!==Z_FINISH$3&&_.strm.avail_in===0&&_.strstart===_.block_start?BS_BLOCK_DONE:(N=_.window_size-_.strstart,_.strm.avail_in>N&&_.block_start>=_.w_size&&(_.block_start-=_.w_size,_.strstart-=_.w_size,_.window.set(_.window.subarray(_.w_size,_.w_size+_.strstart),0),_.matches<2&&_.matches++,N+=_.w_size,_.insert>_.strstart&&(_.insert=_.strstart)),N>_.strm.avail_in&&(N=_.strm.avail_in),N&&(read_buf(_.strm,_.window,_.strstart,N),_.strstart+=N,_.insert+=N>_.w_size-_.insert?_.w_size-_.insert:N),_.high_water<_.strstart&&(_.high_water=_.strstart),N=_.bi_valid+42>>3,N=_.pending_buf_size-N>65535?65535:_.pending_buf_size-N,$=N>_.w_size?_.w_size:N,R=_.strstart-_.block_start,(R>=$||(R||D===Z_FINISH$3)&&D!==Z_NO_FLUSH$2&&_.strm.avail_in===0&&R<=N)&&(M=R>N?N:R,e=D===Z_FINISH$3&&_.strm.avail_in===0&&M===R?1:0,_tr_stored_block(_,_.block_start,M,e),_.block_start+=M,flush_pending(_.strm)),e?BS_FINISH_STARTED:BS_NEED_MORE)},deflate_fast=(_,D)=>{let $,M;for(;;){if(_.lookahead<MIN_LOOKAHEAD){if(fill_window(_),_.lookahead<MIN_LOOKAHEAD&&D===Z_NO_FLUSH$2)return BS_NEED_MORE;if(_.lookahead===0)break}if($=0,_.lookahead>=MIN_MATCH&&(_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+MIN_MATCH-1]),$=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart),$!==0&&_.strstart-$<=_.w_size-MIN_LOOKAHEAD&&(_.match_length=longest_match(_,$)),_.match_length>=MIN_MATCH)if(M=_tr_tally(_,_.strstart-_.match_start,_.match_length-MIN_MATCH),_.lookahead-=_.match_length,_.match_length<=_.max_lazy_match&&_.lookahead>=MIN_MATCH){_.match_length--;do _.strstart++,_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+MIN_MATCH-1]),$=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart;while(--_.match_length!==0);_.strstart++}else _.strstart+=_.match_length,_.match_length=0,_.ins_h=_.window[_.strstart],_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+1]);else M=_tr_tally(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++;if(M&&(flush_block_only(_,!1),_.strm.avail_out===0))return BS_NEED_MORE}return _.insert=_.strstart<MIN_MATCH-1?_.strstart:MIN_MATCH-1,D===Z_FINISH$3?(flush_block_only(_,!0),_.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):_.sym_next&&(flush_block_only(_,!1),_.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_slow=(_,D)=>{let $,M,R;for(;;){if(_.lookahead<MIN_LOOKAHEAD){if(fill_window(_),_.lookahead<MIN_LOOKAHEAD&&D===Z_NO_FLUSH$2)return BS_NEED_MORE;if(_.lookahead===0)break}if($=0,_.lookahead>=MIN_MATCH&&(_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+MIN_MATCH-1]),$=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart),_.prev_length=_.match_length,_.prev_match=_.match_start,_.match_length=MIN_MATCH-1,$!==0&&_.prev_length<_.max_lazy_match&&_.strstart-$<=_.w_size-MIN_LOOKAHEAD&&(_.match_length=longest_match(_,$),_.match_length<=5&&(_.strategy===Z_FILTERED||_.match_length===MIN_MATCH&&_.strstart-_.match_start>4096)&&(_.match_length=MIN_MATCH-1)),_.prev_length>=MIN_MATCH&&_.match_length<=_.prev_length){R=_.strstart+_.lookahead-MIN_MATCH,M=_tr_tally(_,_.strstart-1-_.prev_match,_.prev_length-MIN_MATCH),_.lookahead-=_.prev_length-1,_.prev_length-=2;do++_.strstart<=R&&(_.ins_h=HASH(_,_.ins_h,_.window[_.strstart+MIN_MATCH-1]),$=_.prev[_.strstart&_.w_mask]=_.head[_.ins_h],_.head[_.ins_h]=_.strstart);while(--_.prev_length!==0);if(_.match_available=0,_.match_length=MIN_MATCH-1,_.strstart++,M&&(flush_block_only(_,!1),_.strm.avail_out===0))return BS_NEED_MORE}else if(_.match_available){if(M=_tr_tally(_,0,_.window[_.strstart-1]),M&&flush_block_only(_,!1),_.strstart++,_.lookahead--,_.strm.avail_out===0)return BS_NEED_MORE}else _.match_available=1,_.strstart++,_.lookahead--}return _.match_available&&(M=_tr_tally(_,0,_.window[_.strstart-1]),_.match_available=0),_.insert=_.strstart<MIN_MATCH-1?_.strstart:MIN_MATCH-1,D===Z_FINISH$3?(flush_block_only(_,!0),_.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):_.sym_next&&(flush_block_only(_,!1),_.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_rle=(_,D)=>{let $,M,R,N;const e=_.window;for(;;){if(_.lookahead<=MAX_MATCH){if(fill_window(_),_.lookahead<=MAX_MATCH&&D===Z_NO_FLUSH$2)return BS_NEED_MORE;if(_.lookahead===0)break}if(_.match_length=0,_.lookahead>=MIN_MATCH&&_.strstart>0&&(R=_.strstart-1,M=e[R],M===e[++R]&&M===e[++R]&&M===e[++R])){N=_.strstart+MAX_MATCH;do;while(M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&M===e[++R]&&R<N);_.match_length=MAX_MATCH-(N-R),_.match_length>_.lookahead&&(_.match_length=_.lookahead)}if(_.match_length>=MIN_MATCH?($=_tr_tally(_,1,_.match_length-MIN_MATCH),_.lookahead-=_.match_length,_.strstart+=_.match_length,_.match_length=0):($=_tr_tally(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++),$&&(flush_block_only(_,!1),_.strm.avail_out===0))return BS_NEED_MORE}return _.insert=0,D===Z_FINISH$3?(flush_block_only(_,!0),_.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):_.sym_next&&(flush_block_only(_,!1),_.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(_,D)=>{let $;for(;;){if(_.lookahead===0&&(fill_window(_),_.lookahead===0)){if(D===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(_.match_length=0,$=_tr_tally(_,0,_.window[_.strstart]),_.lookahead--,_.strstart++,$&&(flush_block_only(_,!1),_.strm.avail_out===0))return BS_NEED_MORE}return _.insert=0,D===Z_FINISH$3?(flush_block_only(_,!0),_.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):_.sym_next&&(flush_block_only(_,!1),_.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(_,D,$,M,R){this.good_length=_,this.max_lazy=D,this.nice_length=$,this.max_chain=M,this.func=R}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=_=>{_.window_size=2*_.w_size,zero(_.head),_.max_lazy_match=configuration_table[_.level].max_lazy,_.good_match=configuration_table[_.level].good_length,_.nice_match=configuration_table[_.level].nice_length,_.max_chain_length=configuration_table[_.level].max_chain,_.strstart=0,_.block_start=0,_.lookahead=0,_.insert=0,_.match_length=_.prev_length=MIN_MATCH-1,_.match_available=0,_.ins_h=0};function DeflateState(){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=Z_DEFLATED$2,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 Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateStateCheck=_=>{if(!_)return 1;const D=_.state;return!D||D.strm!==_||D.status!==INIT_STATE&&D.status!==GZIP_STATE&&D.status!==EXTRA_STATE&&D.status!==NAME_STATE&&D.status!==COMMENT_STATE&&D.status!==HCRC_STATE&&D.status!==BUSY_STATE&&D.status!==FINISH_STATE?1:0},deflateResetKeep=_=>{if(deflateStateCheck(_))return err(_,Z_STREAM_ERROR$2);_.total_in=_.total_out=0,_.data_type=Z_UNKNOWN;const D=_.state;return D.pending=0,D.pending_out=0,D.wrap<0&&(D.wrap=-D.wrap),D.status=D.wrap===2?GZIP_STATE:D.wrap?INIT_STATE:BUSY_STATE,_.adler=D.wrap===2?0:1,D.last_flush=-2,_tr_init(D),Z_OK$3},deflateReset=_=>{const D=deflateResetKeep(_);return D===Z_OK$3&&lm_init(_.state),D},deflateSetHeader=(_,D)=>deflateStateCheck(_)||_.state.wrap!==2?Z_STREAM_ERROR$2:(_.state.gzhead=D,Z_OK$3),deflateInit2=(_,D,$,M,R,N)=>{if(!_)return Z_STREAM_ERROR$2;let e=1;if(D===Z_DEFAULT_COMPRESSION$1&&(D=6),M<0?(e=0,M=-M):M>15&&(e=2,M-=16),R<1||R>MAX_MEM_LEVEL||$!==Z_DEFLATED$2||M<8||M>15||D<0||D>9||N<0||N>Z_FIXED||M===8&&e!==1)return err(_,Z_STREAM_ERROR$2);M===8&&(M=9);const o=new DeflateState;return _.state=o,o.strm=_,o.status=INIT_STATE,o.wrap=e,o.gzhead=null,o.w_bits=M,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=R+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+MIN_MATCH-1)/MIN_MATCH),o.window=new Uint8Array(o.w_size*2),o.head=new Uint16Array(o.hash_size),o.prev=new Uint16Array(o.w_size),o.lit_bufsize=1<<R+6,o.pending_buf_size=o.lit_bufsize*4,o.pending_buf=new Uint8Array(o.pending_buf_size),o.sym_buf=o.lit_bufsize,o.sym_end=(o.lit_bufsize-1)*3,o.level=D,o.strategy=N,o.method=$,deflateReset(_)},deflateInit=(_,D)=>deflateInit2(_,D,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(_,D)=>{if(deflateStateCheck(_)||D>Z_BLOCK$1||D<0)return _?err(_,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const $=_.state;if(!_.output||_.avail_in!==0&&!_.input||$.status===FINISH_STATE&&D!==Z_FINISH$3)return err(_,_.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);const M=$.last_flush;if($.last_flush=D,$.pending!==0){if(flush_pending(_),_.avail_out===0)return $.last_flush=-1,Z_OK$3}else if(_.avail_in===0&&rank(D)<=rank(M)&&D!==Z_FINISH$3)return err(_,Z_BUF_ERROR$1);if($.status===FINISH_STATE&&_.avail_in!==0)return err(_,Z_BUF_ERROR$1);if($.status===INIT_STATE&&$.wrap===0&&($.status=BUSY_STATE),$.status===INIT_STATE){let R=Z_DEFLATED$2+($.w_bits-8<<4)<<8,N=-1;if($.strategy>=Z_HUFFMAN_ONLY||$.level<2?N=0:$.level<6?N=1:$.level===6?N=2:N=3,R|=N<<6,$.strstart!==0&&(R|=PRESET_DICT),R+=31-R%31,putShortMSB($,R),$.strstart!==0&&(putShortMSB($,_.adler>>>16),putShortMSB($,_.adler&65535)),_.adler=1,$.status=BUSY_STATE,flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3}if($.status===GZIP_STATE){if(_.adler=0,put_byte($,31),put_byte($,139),put_byte($,8),$.gzhead)put_byte($,($.gzhead.text?1:0)+($.gzhead.hcrc?2:0)+($.gzhead.extra?4:0)+($.gzhead.name?8:0)+($.gzhead.comment?16:0)),put_byte($,$.gzhead.time&255),put_byte($,$.gzhead.time>>8&255),put_byte($,$.gzhead.time>>16&255),put_byte($,$.gzhead.time>>24&255),put_byte($,$.level===9?2:$.strategy>=Z_HUFFMAN_ONLY||$.level<2?4:0),put_byte($,$.gzhead.os&255),$.gzhead.extra&&$.gzhead.extra.length&&(put_byte($,$.gzhead.extra.length&255),put_byte($,$.gzhead.extra.length>>8&255)),$.gzhead.hcrc&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending,0)),$.gzindex=0,$.status=EXTRA_STATE;else if(put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,0),put_byte($,$.level===9?2:$.strategy>=Z_HUFFMAN_ONLY||$.level<2?4:0),put_byte($,OS_CODE),$.status=BUSY_STATE,flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3}if($.status===EXTRA_STATE){if($.gzhead.extra){let R=$.pending,N=($.gzhead.extra.length&65535)-$.gzindex;for(;$.pending+N>$.pending_buf_size;){let o=$.pending_buf_size-$.pending;if($.pending_buf.set($.gzhead.extra.subarray($.gzindex,$.gzindex+o),$.pending),$.pending=$.pending_buf_size,$.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),$.gzindex+=o,flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3;R=0,N-=o}let e=new Uint8Array($.gzhead.extra);$.pending_buf.set(e.subarray($.gzindex,$.gzindex+N),$.pending),$.pending+=N,$.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),$.gzindex=0}$.status=NAME_STATE}if($.status===NAME_STATE){if($.gzhead.name){let R=$.pending,N;do{if($.pending===$.pending_buf_size){if($.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3;R=0}$.gzindex<$.gzhead.name.length?N=$.gzhead.name.charCodeAt($.gzindex++)&255:N=0,put_byte($,N)}while(N!==0);$.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),$.gzindex=0}$.status=COMMENT_STATE}if($.status===COMMENT_STATE){if($.gzhead.comment){let R=$.pending,N;do{if($.pending===$.pending_buf_size){if($.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R)),flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3;R=0}$.gzindex<$.gzhead.comment.length?N=$.gzhead.comment.charCodeAt($.gzindex++)&255:N=0,put_byte($,N)}while(N!==0);$.gzhead.hcrc&&$.pending>R&&(_.adler=crc32_1(_.adler,$.pending_buf,$.pending-R,R))}$.status=HCRC_STATE}if($.status===HCRC_STATE){if($.gzhead.hcrc){if($.pending+2>$.pending_buf_size&&(flush_pending(_),$.pending!==0))return $.last_flush=-1,Z_OK$3;put_byte($,_.adler&255),put_byte($,_.adler>>8&255),_.adler=0}if($.status=BUSY_STATE,flush_pending(_),$.pending!==0)return $.last_flush=-1,Z_OK$3}if(_.avail_in!==0||$.lookahead!==0||D!==Z_NO_FLUSH$2&&$.status!==FINISH_STATE){let R=$.level===0?deflate_stored($,D):$.strategy===Z_HUFFMAN_ONLY?deflate_huff($,D):$.strategy===Z_RLE?deflate_rle($,D):configuration_table[$.level].func($,D);if((R===BS_FINISH_STARTED||R===BS_FINISH_DONE)&&($.status=FINISH_STATE),R===BS_NEED_MORE||R===BS_FINISH_STARTED)return _.avail_out===0&&($.last_flush=-1),Z_OK$3;if(R===BS_BLOCK_DONE&&(D===Z_PARTIAL_FLUSH?_tr_align($):D!==Z_BLOCK$1&&(_tr_stored_block($,0,0,!1),D===Z_FULL_FLUSH$1&&(zero($.head),$.lookahead===0&&($.strstart=0,$.block_start=0,$.insert=0))),flush_pending(_),_.avail_out===0))return $.last_flush=-1,Z_OK$3}return D!==Z_FINISH$3?Z_OK$3:$.wrap<=0?Z_STREAM_END$3:($.wrap===2?(put_byte($,_.adler&255),put_byte($,_.adler>>8&255),put_byte($,_.adler>>16&255),put_byte($,_.adler>>24&255),put_byte($,_.total_in&255),put_byte($,_.total_in>>8&255),put_byte($,_.total_in>>16&255),put_byte($,_.total_in>>24&255)):(putShortMSB($,_.adler>>>16),putShortMSB($,_.adler&65535)),flush_pending(_),$.wrap>0&&($.wrap=-$.wrap),$.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=_=>{if(deflateStateCheck(_))return Z_STREAM_ERROR$2;const D=_.state.status;return _.state=null,D===BUSY_STATE?err(_,Z_DATA_ERROR$2):Z_OK$3},deflateSetDictionary=(_,D)=>{let $=D.length;if(deflateStateCheck(_))return Z_STREAM_ERROR$2;const M=_.state,R=M.wrap;if(R===2||R===1&&M.status!==INIT_STATE||M.lookahead)return Z_STREAM_ERROR$2;if(R===1&&(_.adler=adler32_1(_.adler,D,$,0)),M.wrap=0,$>=M.w_size){R===0&&(zero(M.head),M.strstart=0,M.block_start=0,M.insert=0);let A=new Uint8Array(M.w_size);A.set(D.subarray($-M.w_size,$),0),D=A,$=M.w_size}const N=_.avail_in,e=_.next_in,o=_.input;for(_.avail_in=$,_.next_in=0,_.input=D,fill_window(M);M.lookahead>=MIN_MATCH;){let A=M.strstart,U=M.lookahead-(MIN_MATCH-1);do M.ins_h=HASH(M,M.ins_h,M.window[A+MIN_MATCH-1]),M.prev[A&M.w_mask]=M.head[M.ins_h],M.head[M.ins_h]=A,A++;while(--U);M.strstart=A,M.lookahead=MIN_MATCH-1,fill_window(M)}return M.strstart+=M.lookahead,M.block_start=M.strstart,M.insert=M.lookahead,M.lookahead=0,M.match_length=M.prev_length=MIN_MATCH-1,M.match_available=0,_.next_in=e,_.input=o,_.avail_in=N,M.wrap=R,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(_,D)=>Object.prototype.hasOwnProperty.call(_,D);var assign=function(_){const D=Array.prototype.slice.call(arguments,1);for(;D.length;){const $=D.shift();if($){if(typeof $!="object")throw new TypeError($+"must be non-object");for(const M in $)_has($,M)&&(_[M]=$[M])}}return _},flattenChunks=_=>{let D=0;for(let M=0,R=_.length;M<R;M++)D+=_[M].length;const $=new Uint8Array(D);for(let M=0,R=0,N=_.length;M<N;M++){let e=_[M];$.set(e,R),R+=e.length}return $},common={assign,flattenChunks};let STR_APPLY_UIA_OK=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(_){STR_APPLY_UIA_OK=!1}const _utf8len=new Uint8Array(256);for(let _=0;_<256;_++)_utf8len[_]=_>=252?6:_>=248?5:_>=240?4:_>=224?3:_>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=_=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(_);let D,$,M,R,N,e=_.length,o=0;for(R=0;R<e;R++)$=_.charCodeAt(R),($&64512)===55296&&R+1<e&&(M=_.charCodeAt(R+1),(M&64512)===56320&&($=65536+($-55296<<10)+(M-56320),R++)),o+=$<128?1:$<2048?2:$<65536?3:4;for(D=new Uint8Array(o),N=0,R=0;N<o;R++)$=_.charCodeAt(R),($&64512)===55296&&R+1<e&&(M=_.charCodeAt(R+1),(M&64512)===56320&&($=65536+($-55296<<10)+(M-56320),R++)),$<128?D[N++]=$:$<2048?(D[N++]=192|$>>>6,D[N++]=128|$&63):$<65536?(D[N++]=224|$>>>12,D[N++]=128|$>>>6&63,D[N++]=128|$&63):(D[N++]=240|$>>>18,D[N++]=128|$>>>12&63,D[N++]=128|$>>>6&63,D[N++]=128|$&63);return D};const buf2binstring=(_,D)=>{if(D<65534&&_.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,_.length===D?_:_.subarray(0,D));let $="";for(let M=0;M<D;M++)$+=String.fromCharCode(_[M]);return $};var buf2string=(_,D)=>{const $=D||_.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(_.subarray(0,D));let M,R;const N=new Array($*2);for(R=0,M=0;M<$;){let e=_[M++];if(e<128){N[R++]=e;continue}let o=_utf8len[e];if(o>4){N[R++]=65533,M+=o-1;continue}for(e&=o===2?31:o===3?15:7;o>1&&M<$;)e=e<<6|_[M++]&63,o--;if(o>1){N[R++]=65533;continue}e<65536?N[R++]=e:(e-=65536,N[R++]=55296|e>>10&1023,N[R++]=56320|e&1023)}return buf2binstring(N,R)},utf8border=(_,D)=>{D=D||_.length,D>_.length&&(D=_.length);let $=D-1;for(;$>=0&&(_[$]&192)===128;)$--;return $<0||$===0?D:$+_utf8len[_[$]]>D?$:D},strings={string2buf,buf2string,utf8border};function ZStream(){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}var zstream=ZStream;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2;function Deflate$1(_){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},_||{});let D=this.options;D.raw&&D.windowBits>0?D.windowBits=-D.windowBits:D.gzip&&D.windowBits>0&&D.windowBits<16&&(D.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let $=deflate_1$2.deflateInit2(this.strm,D.level,D.method,D.windowBits,D.memLevel,D.strategy);if($!==Z_OK$2)throw new Error(messages[$]);if(D.header&&deflate_1$2.deflateSetHeader(this.strm,D.header),D.dictionary){let M;if(typeof D.dictionary=="string"?M=strings.string2buf(D.dictionary):toString$1.call(D.dictionary)==="[object ArrayBuffer]"?M=new Uint8Array(D.dictionary):M=D.dictionary,$=deflate_1$2.deflateSetDictionary(this.strm,M),$!==Z_OK$2)throw new Error(messages[$]);this._dict_set=!0}}Deflate$1.prototype.push=function(_,D){const $=this.strm,M=this.options.chunkSize;let R,N;if(this.ended)return!1;for(D===~~D?N=D:N=D===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof _=="string"?$.input=strings.string2buf(_):toString$1.call(_)==="[object ArrayBuffer]"?$.input=new Uint8Array(_):$.input=_,$.next_in=0,$.avail_in=$.input.length;;){if($.avail_out===0&&($.output=new Uint8Array(M),$.next_out=0,$.avail_out=M),(N===Z_SYNC_FLUSH||N===Z_FULL_FLUSH)&&$.avail_out<=6){this.onData($.output.subarray(0,$.next_out)),$.avail_out=0;continue}if(R=deflate_1$2.deflate($,N),R===Z_STREAM_END$2)return $.next_out>0&&this.onData($.output.subarray(0,$.next_out)),R=deflate_1$2.deflateEnd(this.strm),this.onEnd(R),this.ended=!0,R===Z_OK$2;if($.avail_out===0){this.onData($.output);continue}if(N>0&&$.next_out>0){this.onData($.output.subarray(0,$.next_out)),$.avail_out=0;continue}if($.avail_in===0)break}return!0},Deflate$1.prototype.onData=function(_){this.chunks.push(_)},Deflate$1.prototype.onEnd=function(_){_===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=_,this.msg=this.strm.msg};function deflate$1(_,D){const $=new Deflate$1(D);if($.push(_,!0),$.err)throw $.msg||messages[$.err];return $.result}function deflateRaw$1(_,D){return D=D||{},D.raw=!0,deflate$1(_,D)}function gzip$1(_,D){return D=D||{},D.gzip=!0,deflate$1(_,D)}var Deflate_1$1=Deflate$1,deflate_2=deflate$1,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,deflate_1$1={Deflate:Deflate_1$1,deflate:deflate_2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1};const BAD$1=16209,TYPE$1=16191;var inffast=function _(D,$){let M,R,N,e,o,A,U,L,F,Z,H,z,G,W,J,Y,tt,X,ot,dt,et,lt,rt,nt;const ct=D.state;M=D.next_in,rt=D.input,R=M+(D.avail_in-5),N=D.next_out,nt=D.output,e=N-($-D.avail_out),o=N+(D.avail_out-257),A=ct.dmax,U=ct.wsize,L=ct.whave,F=ct.wnext,Z=ct.window,H=ct.hold,z=ct.bits,G=ct.lencode,W=ct.distcode,J=(1<<ct.lenbits)-1,Y=(1<<ct.distbits)-1;t:do{z<15&&(H+=rt[M++]<<z,z+=8,H+=rt[M++]<<z,z+=8),tt=G[H&J];e:for(;;){if(X=tt>>>24,H>>>=X,z-=X,X=tt>>>16&255,X===0)nt[N++]=tt&65535;else if(X&16){ot=tt&65535,X&=15,X&&(z<X&&(H+=rt[M++]<<z,z+=8),ot+=H&(1<<X)-1,H>>>=X,z-=X),z<15&&(H+=rt[M++]<<z,z+=8,H+=rt[M++]<<z,z+=8),tt=W[H&Y];i:for(;;){if(X=tt>>>24,H>>>=X,z-=X,X=tt>>>16&255,X&16){if(dt=tt&65535,X&=15,z<X&&(H+=rt[M++]<<z,z+=8,z<X&&(H+=rt[M++]<<z,z+=8)),dt+=H&(1<<X)-1,dt>A){D.msg="invalid distance too far back",ct.mode=BAD$1;break t}if(H>>>=X,z-=X,X=N-e,dt>X){if(X=dt-X,X>L&&ct.sane){D.msg="invalid distance too far back",ct.mode=BAD$1;break t}if(et=0,lt=Z,F===0){if(et+=U-X,X<ot){ot-=X;do nt[N++]=Z[et++];while(--X);et=N-dt,lt=nt}}else if(F<X){if(et+=U+F-X,X-=F,X<ot){ot-=X;do nt[N++]=Z[et++];while(--X);if(et=0,F<ot){X=F,ot-=X;do nt[N++]=Z[et++];while(--X);et=N-dt,lt=nt}}}else if(et+=F-X,X<ot){ot-=X;do nt[N++]=Z[et++];while(--X);et=N-dt,lt=nt}for(;ot>2;)nt[N++]=lt[et++],nt[N++]=lt[et++],nt[N++]=lt[et++],ot-=3;ot&&(nt[N++]=lt[et++],ot>1&&(nt[N++]=lt[et++]))}else{et=N-dt;do nt[N++]=nt[et++],nt[N++]=nt[et++],nt[N++]=nt[et++],ot-=3;while(ot>2);ot&&(nt[N++]=nt[et++],ot>1&&(nt[N++]=nt[et++]))}}else if((X&64)===0){tt=W[(tt&65535)+(H&(1<<X)-1)];continue i}else{D.msg="invalid distance code",ct.mode=BAD$1;break t}break}}else if((X&64)===0){tt=G[(tt&65535)+(H&(1<<X)-1)];continue e}else if(X&32){ct.mode=TYPE$1;break t}else{D.msg="invalid literal/length code",ct.mode=BAD$1;break t}break}}while(M<R&&N<o);ot=z>>3,M-=ot,z-=ot<<3,H&=(1<<z)-1,D.next_in=M,D.next_out=N,D.avail_in=M<R?5+(R-M):5-(M-R),D.avail_out=N<o?257+(o-N):257-(N-o),ct.hold=H,ct.bits=z};const MAXBITS=15,ENOUGH_LENS$1=852,ENOUGH_DISTS$1=592,CODES$1=0,LENS$1=1,DISTS$1=2,lbase=new Uint16Array([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]),lext=new Uint8Array([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]),dbase=new Uint16Array([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]),dext=new Uint8Array([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]),inflate_table=(_,D,$,M,R,N,e,o)=>{const A=o.bits;let U=0,L=0,F=0,Z=0,H=0,z=0,G=0,W=0,J=0,Y=0,tt,X,ot,dt,et,lt=null,rt;const nt=new Uint16Array(MAXBITS+1),ct=new Uint16Array(MAXBITS+1);let _t=null,Wt,Jt,Kt;for(U=0;U<=MAXBITS;U++)nt[U]=0;for(L=0;L<M;L++)nt[D[$+L]]++;for(H=A,Z=MAXBITS;Z>=1&&nt[Z]===0;Z--);if(H>Z&&(H=Z),Z===0)return R[N++]=1<<24|64<<16|0,R[N++]=1<<24|64<<16|0,o.bits=1,0;for(F=1;F<Z&&nt[F]===0;F++);for(H<F&&(H=F),W=1,U=1;U<=MAXBITS;U++)if(W<<=1,W-=nt[U],W<0)return-1;if(W>0&&(_===CODES$1||Z!==1))return-1;for(ct[1]=0,U=1;U<MAXBITS;U++)ct[U+1]=ct[U]+nt[U];for(L=0;L<M;L++)D[$+L]!==0&&(e[ct[D[$+L]]++]=L);if(_===CODES$1?(lt=_t=e,rt=20):_===LENS$1?(lt=lbase,_t=lext,rt=257):(lt=dbase,_t=dext,rt=0),Y=0,L=0,U=F,et=N,z=H,G=0,ot=-1,J=1<<H,dt=J-1,_===LENS$1&&J>ENOUGH_LENS$1||_===DISTS$1&&J>ENOUGH_DISTS$1)return 1;for(;;){Wt=U-G,e[L]+1<rt?(Jt=0,Kt=e[L]):e[L]>=rt?(Jt=_t[e[L]-rt],Kt=lt[e[L]-rt]):(Jt=96,Kt=0),tt=1<<U-G,X=1<<z,F=X;do X-=tt,R[et+(Y>>G)+X]=Wt<<24|Jt<<16|Kt|0;while(X!==0);for(tt=1<<U-1;Y&tt;)tt>>=1;if(tt!==0?(Y&=tt-1,Y+=tt):Y=0,L++,--nt[U]===0){if(U===Z)break;U=D[$+e[L]]}if(U>H&&(Y&dt)!==ot){for(G===0&&(G=H),et+=F,z=U-G,W=1<<z;z+G<Z&&(W-=nt[z+G],!(W<=0));)z++,W<<=1;if(J+=1<<z,_===LENS$1&&J>ENOUGH_LENS$1||_===DISTS$1&&J>ENOUGH_DISTS$1)return 1;ot=Y&dt,R[ot]=H<<24|z<<16|et-N|0}}return Y!==0&&(R[et+Y]=U-G<<24|64<<16|0),o.bits=H,0};var inftrees=inflate_table;const CODES=0,LENS=1,DISTS=2,{Z_FINISH:Z_FINISH$1,Z_BLOCK,Z_TREES,Z_OK:Z_OK$1,Z_STREAM_END:Z_STREAM_END$1,Z_NEED_DICT:Z_NEED_DICT$1,Z_STREAM_ERROR:Z_STREAM_ERROR$1,Z_DATA_ERROR:Z_DATA_ERROR$1,Z_MEM_ERROR:Z_MEM_ERROR$1,Z_BUF_ERROR,Z_DEFLATED}=constants$2,HEAD=16180,FLAGS=16181,TIME=16182,OS=16183,EXLEN=16184,EXTRA=16185,NAME=16186,COMMENT=16187,HCRC=16188,DICTID=16189,DICT=16190,TYPE=16191,TYPEDO=16192,STORED=16193,COPY_=16194,COPY=16195,TABLE=16196,LENLENS=16197,CODELENS=16198,LEN_=16199,LEN=16200,LENEXT=16201,DIST=16202,DISTEXT=16203,MATCH=16204,LIT=16205,CHECK=16206,LENGTH=16207,DONE=16208,BAD=16209,MEM=16210,SYNC=16211,ENOUGH_LENS=852,ENOUGH_DISTS=592,MAX_WBITS=15,DEF_WBITS=MAX_WBITS,zswap32=_=>(_>>>24&255)+(_>>>8&65280)+((_&65280)<<8)+((_&255)<<24);function InflateState(){this.strm=null,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 Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const inflateStateCheck=_=>{if(!_)return 1;const D=_.state;return!D||D.strm!==_||D.mode<HEAD||D.mode>SYNC?1:0},inflateResetKeep=_=>{if(inflateStateCheck(_))return Z_STREAM_ERROR$1;const D=_.state;return _.total_in=_.total_out=D.total=0,_.msg="",D.wrap&&(_.adler=D.wrap&1),D.mode=HEAD,D.last=0,D.havedict=0,D.flags=-1,D.dmax=32768,D.head=null,D.hold=0,D.bits=0,D.lencode=D.lendyn=new Int32Array(ENOUGH_LENS),D.distcode=D.distdyn=new Int32Array(ENOUGH_DISTS),D.sane=1,D.back=-1,Z_OK$1},inflateReset=_=>{if(inflateStateCheck(_))return Z_STREAM_ERROR$1;const D=_.state;return D.wsize=0,D.whave=0,D.wnext=0,inflateResetKeep(_)},inflateReset2=(_,D)=>{let $;if(inflateStateCheck(_))return Z_STREAM_ERROR$1;const M=_.state;return D<0?($=0,D=-D):($=(D>>4)+5,D<48&&(D&=15)),D&&(D<8||D>15)?Z_STREAM_ERROR$1:(M.window!==null&&M.wbits!==D&&(M.window=null),M.wrap=$,M.wbits=D,inflateReset(_))},inflateInit2=(_,D)=>{if(!_)return Z_STREAM_ERROR$1;const $=new InflateState;_.state=$,$.strm=_,$.window=null,$.mode=HEAD;const M=inflateReset2(_,D);return M!==Z_OK$1&&(_.state=null),M},inflateInit=_=>inflateInit2(_,DEF_WBITS);let virgin=!0,lenfix,distfix;const fixedtables=_=>{if(virgin){lenfix=new Int32Array(512),distfix=new Int32Array(32);let D=0;for(;D<144;)_.lens[D++]=8;for(;D<256;)_.lens[D++]=9;for(;D<280;)_.lens[D++]=7;for(;D<288;)_.lens[D++]=8;for(inftrees(LENS,_.lens,0,288,lenfix,0,_.work,{bits:9}),D=0;D<32;)_.lens[D++]=5;inftrees(DISTS,_.lens,0,32,distfix,0,_.work,{bits:5}),virgin=!1}_.lencode=lenfix,_.lenbits=9,_.distcode=distfix,_.distbits=5},updatewindow=(_,D,$,M)=>{let R;const N=_.state;return N.window===null&&(N.wsize=1<<N.wbits,N.wnext=0,N.whave=0,N.window=new Uint8Array(N.wsize)),M>=N.wsize?(N.window.set(D.subarray($-N.wsize,$),0),N.wnext=0,N.whave=N.wsize):(R=N.wsize-N.wnext,R>M&&(R=M),N.window.set(D.subarray($-M,$-M+R),N.wnext),M-=R,M?(N.window.set(D.subarray($-M,$),0),N.wnext=M,N.whave=N.wsize):(N.wnext+=R,N.wnext===N.wsize&&(N.wnext=0),N.whave<N.wsize&&(N.whave+=R))),0},inflate$2=(_,D)=>{let $,M,R,N,e,o,A,U,L,F,Z,H,z,G,W=0,J,Y,tt,X,ot,dt,et,lt;const rt=new Uint8Array(4);let nt,ct;const _t=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(inflateStateCheck(_)||!_.output||!_.input&&_.avail_in!==0)return Z_STREAM_ERROR$1;$=_.state,$.mode===TYPE&&($.mode=TYPEDO),e=_.next_out,R=_.output,A=_.avail_out,N=_.next_in,M=_.input,o=_.avail_in,U=$.hold,L=$.bits,F=o,Z=A,lt=Z_OK$1;t:for(;;)switch($.mode){case HEAD:if($.wrap===0){$.mode=TYPEDO;break}for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.wrap&2&&U===35615){$.wbits===0&&($.wbits=15),$.check=0,rt[0]=U&255,rt[1]=U>>>8&255,$.check=crc32_1($.check,rt,2,0),U=0,L=0,$.mode=FLAGS;break}if($.head&&($.head.done=!1),!($.wrap&1)||(((U&255)<<8)+(U>>8))%31){_.msg="incorrect header check",$.mode=BAD;break}if((U&15)!==Z_DEFLATED){_.msg="unknown compression method",$.mode=BAD;break}if(U>>>=4,L-=4,et=(U&15)+8,$.wbits===0&&($.wbits=et),et>15||et>$.wbits){_.msg="invalid window size",$.mode=BAD;break}$.dmax=1<<$.wbits,$.flags=0,_.adler=$.check=1,$.mode=U&512?DICTID:TYPE,U=0,L=0;break;case FLAGS:for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.flags=U,($.flags&255)!==Z_DEFLATED){_.msg="unknown compression method",$.mode=BAD;break}if($.flags&57344){_.msg="unknown header flags set",$.mode=BAD;break}$.head&&($.head.text=U>>8&1),$.flags&512&&$.wrap&4&&(rt[0]=U&255,rt[1]=U>>>8&255,$.check=crc32_1($.check,rt,2,0)),U=0,L=0,$.mode=TIME;case TIME:for(;L<32;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.head&&($.head.time=U),$.flags&512&&$.wrap&4&&(rt[0]=U&255,rt[1]=U>>>8&255,rt[2]=U>>>16&255,rt[3]=U>>>24&255,$.check=crc32_1($.check,rt,4,0)),U=0,L=0,$.mode=OS;case OS:for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.head&&($.head.xflags=U&255,$.head.os=U>>8),$.flags&512&&$.wrap&4&&(rt[0]=U&255,rt[1]=U>>>8&255,$.check=crc32_1($.check,rt,2,0)),U=0,L=0,$.mode=EXLEN;case EXLEN:if($.flags&1024){for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.length=U,$.head&&($.head.extra_len=U),$.flags&512&&$.wrap&4&&(rt[0]=U&255,rt[1]=U>>>8&255,$.check=crc32_1($.check,rt,2,0)),U=0,L=0}else $.head&&($.head.extra=null);$.mode=EXTRA;case EXTRA:if($.flags&1024&&(H=$.length,H>o&&(H=o),H&&($.head&&(et=$.head.extra_len-$.length,$.head.extra||($.head.extra=new Uint8Array($.head.extra_len)),$.head.extra.set(M.subarray(N,N+H),et)),$.flags&512&&$.wrap&4&&($.check=crc32_1($.check,M,H,N)),o-=H,N+=H,$.length-=H),$.length))break t;$.length=0,$.mode=NAME;case NAME:if($.flags&2048){if(o===0)break t;H=0;do et=M[N+H++],$.head&&et&&$.length<65536&&($.head.name+=String.fromCharCode(et));while(et&&H<o);if($.flags&512&&$.wrap&4&&($.check=crc32_1($.check,M,H,N)),o-=H,N+=H,et)break t}else $.head&&($.head.name=null);$.length=0,$.mode=COMMENT;case COMMENT:if($.flags&4096){if(o===0)break t;H=0;do et=M[N+H++],$.head&&et&&$.length<65536&&($.head.comment+=String.fromCharCode(et));while(et&&H<o);if($.flags&512&&$.wrap&4&&($.check=crc32_1($.check,M,H,N)),o-=H,N+=H,et)break t}else $.head&&($.head.comment=null);$.mode=HCRC;case HCRC:if($.flags&512){for(;L<16;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.wrap&4&&U!==($.check&65535)){_.msg="header crc mismatch",$.mode=BAD;break}U=0,L=0}$.head&&($.head.hcrc=$.flags>>9&1,$.head.done=!0),_.adler=$.check=0,$.mode=TYPE;break;case DICTID:for(;L<32;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}_.adler=$.check=zswap32(U),U=0,L=0,$.mode=DICT;case DICT:if($.havedict===0)return _.next_out=e,_.avail_out=A,_.next_in=N,_.avail_in=o,$.hold=U,$.bits=L,Z_NEED_DICT$1;_.adler=$.check=1,$.mode=TYPE;case TYPE:if(D===Z_BLOCK||D===Z_TREES)break t;case TYPEDO:if($.last){U>>>=L&7,L-=L&7,$.mode=CHECK;break}for(;L<3;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}switch($.last=U&1,U>>>=1,L-=1,U&3){case 0:$.mode=STORED;break;case 1:if(fixedtables($),$.mode=LEN_,D===Z_TREES){U>>>=2,L-=2;break t}break;case 2:$.mode=TABLE;break;case 3:_.msg="invalid block type",$.mode=BAD}U>>>=2,L-=2;break;case STORED:for(U>>>=L&7,L-=L&7;L<32;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if((U&65535)!==(U>>>16^65535)){_.msg="invalid stored block lengths",$.mode=BAD;break}if($.length=U&65535,U=0,L=0,$.mode=COPY_,D===Z_TREES)break t;case COPY_:$.mode=COPY;case COPY:if(H=$.length,H){if(H>o&&(H=o),H>A&&(H=A),H===0)break t;R.set(M.subarray(N,N+H),e),o-=H,N+=H,A-=H,e+=H,$.length-=H;break}$.mode=TYPE;break;case TABLE:for(;L<14;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.nlen=(U&31)+257,U>>>=5,L-=5,$.ndist=(U&31)+1,U>>>=5,L-=5,$.ncode=(U&15)+4,U>>>=4,L-=4,$.nlen>286||$.ndist>30){_.msg="too many length or distance symbols",$.mode=BAD;break}$.have=0,$.mode=LENLENS;case LENLENS:for(;$.have<$.ncode;){for(;L<3;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.lens[_t[$.have++]]=U&7,U>>>=3,L-=3}for(;$.have<19;)$.lens[_t[$.have++]]=0;if($.lencode=$.lendyn,$.lenbits=7,nt={bits:$.lenbits},lt=inftrees(CODES,$.lens,0,19,$.lencode,0,$.work,nt),$.lenbits=nt.bits,lt){_.msg="invalid code lengths set",$.mode=BAD;break}$.have=0,$.mode=CODELENS;case CODELENS:for(;$.have<$.nlen+$.ndist;){for(;W=$.lencode[U&(1<<$.lenbits)-1],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if(tt<16)U>>>=J,L-=J,$.lens[$.have++]=tt;else{if(tt===16){for(ct=J+2;L<ct;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if(U>>>=J,L-=J,$.have===0){_.msg="invalid bit length repeat",$.mode=BAD;break}et=$.lens[$.have-1],H=3+(U&3),U>>>=2,L-=2}else if(tt===17){for(ct=J+3;L<ct;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}U>>>=J,L-=J,et=0,H=3+(U&7),U>>>=3,L-=3}else{for(ct=J+7;L<ct;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}U>>>=J,L-=J,et=0,H=11+(U&127),U>>>=7,L-=7}if($.have+H>$.nlen+$.ndist){_.msg="invalid bit length repeat",$.mode=BAD;break}for(;H--;)$.lens[$.have++]=et}}if($.mode===BAD)break;if($.lens[256]===0){_.msg="invalid code -- missing end-of-block",$.mode=BAD;break}if($.lenbits=9,nt={bits:$.lenbits},lt=inftrees(LENS,$.lens,0,$.nlen,$.lencode,0,$.work,nt),$.lenbits=nt.bits,lt){_.msg="invalid literal/lengths set",$.mode=BAD;break}if($.distbits=6,$.distcode=$.distdyn,nt={bits:$.distbits},lt=inftrees(DISTS,$.lens,$.nlen,$.ndist,$.distcode,0,$.work,nt),$.distbits=nt.bits,lt){_.msg="invalid distances set",$.mode=BAD;break}if($.mode=LEN_,D===Z_TREES)break t;case LEN_:$.mode=LEN;case LEN:if(o>=6&&A>=258){_.next_out=e,_.avail_out=A,_.next_in=N,_.avail_in=o,$.hold=U,$.bits=L,inffast(_,Z),e=_.next_out,R=_.output,A=_.avail_out,N=_.next_in,M=_.input,o=_.avail_in,U=$.hold,L=$.bits,$.mode===TYPE&&($.back=-1);break}for($.back=0;W=$.lencode[U&(1<<$.lenbits)-1],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if(Y&&(Y&240)===0){for(X=J,ot=Y,dt=tt;W=$.lencode[dt+((U&(1<<X+ot)-1)>>X)],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(X+J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}U>>>=X,L-=X,$.back+=X}if(U>>>=J,L-=J,$.back+=J,$.length=tt,Y===0){$.mode=LIT;break}if(Y&32){$.back=-1,$.mode=TYPE;break}if(Y&64){_.msg="invalid literal/length code",$.mode=BAD;break}$.extra=Y&15,$.mode=LENEXT;case LENEXT:if($.extra){for(ct=$.extra;L<ct;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.length+=U&(1<<$.extra)-1,U>>>=$.extra,L-=$.extra,$.back+=$.extra}$.was=$.length,$.mode=DIST;case DIST:for(;W=$.distcode[U&(1<<$.distbits)-1],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if((Y&240)===0){for(X=J,ot=Y,dt=tt;W=$.distcode[dt+((U&(1<<X+ot)-1)>>X)],J=W>>>24,Y=W>>>16&255,tt=W&65535,!(X+J<=L);){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}U>>>=X,L-=X,$.back+=X}if(U>>>=J,L-=J,$.back+=J,Y&64){_.msg="invalid distance code",$.mode=BAD;break}$.offset=tt,$.extra=Y&15,$.mode=DISTEXT;case DISTEXT:if($.extra){for(ct=$.extra;L<ct;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}$.offset+=U&(1<<$.extra)-1,U>>>=$.extra,L-=$.extra,$.back+=$.extra}if($.offset>$.dmax){_.msg="invalid distance too far back",$.mode=BAD;break}$.mode=MATCH;case MATCH:if(A===0)break t;if(H=Z-A,$.offset>H){if(H=$.offset-H,H>$.whave&&$.sane){_.msg="invalid distance too far back",$.mode=BAD;break}H>$.wnext?(H-=$.wnext,z=$.wsize-H):z=$.wnext-H,H>$.length&&(H=$.length),G=$.window}else G=R,z=e-$.offset,H=$.length;H>A&&(H=A),A-=H,$.length-=H;do R[e++]=G[z++];while(--H);$.length===0&&($.mode=LEN);break;case LIT:if(A===0)break t;R[e++]=$.length,A--,$.mode=LEN;break;case CHECK:if($.wrap){for(;L<32;){if(o===0)break t;o--,U|=M[N++]<<L,L+=8}if(Z-=A,_.total_out+=Z,$.total+=Z,$.wrap&4&&Z&&(_.adler=$.check=$.flags?crc32_1($.check,R,Z,e-Z):adler32_1($.check,R,Z,e-Z)),Z=A,$.wrap&4&&($.flags?U:zswap32(U))!==$.check){_.msg="incorrect data check",$.mode=BAD;break}U=0,L=0}$.mode=LENGTH;case LENGTH:if($.wrap&&$.flags){for(;L<32;){if(o===0)break t;o--,U+=M[N++]<<L,L+=8}if($.wrap&4&&U!==($.total&4294967295)){_.msg="incorrect length check",$.mode=BAD;break}U=0,L=0}$.mode=DONE;case DONE:lt=Z_STREAM_END$1;break t;case BAD:lt=Z_DATA_ERROR$1;break t;case MEM:return Z_MEM_ERROR$1;case SYNC:default:return Z_STREAM_ERROR$1}return _.next_out=e,_.avail_out=A,_.next_in=N,_.avail_in=o,$.hold=U,$.bits=L,($.wsize||Z!==_.avail_out&&$.mode<BAD&&($.mode<CHECK||D!==Z_FINISH$1))&&updatewindow(_,_.output,_.next_out,Z-_.avail_out),F-=_.avail_in,Z-=_.avail_out,_.total_in+=F,_.total_out+=Z,$.total+=Z,$.wrap&4&&Z&&(_.adler=$.check=$.flags?crc32_1($.check,R,Z,_.next_out-Z):adler32_1($.check,R,Z,_.next_out-Z)),_.data_type=$.bits+($.last?64:0)+($.mode===TYPE?128:0)+($.mode===LEN_||$.mode===COPY_?256:0),(F===0&&Z===0||D===Z_FINISH$1)&&lt===Z_OK$1&&(lt=Z_BUF_ERROR),lt},inflateEnd=_=>{if(inflateStateCheck(_))return Z_STREAM_ERROR$1;let D=_.state;return D.window&&(D.window=null),_.state=null,Z_OK$1},inflateGetHeader=(_,D)=>{if(inflateStateCheck(_))return Z_STREAM_ERROR$1;const $=_.state;return($.wrap&2)===0?Z_STREAM_ERROR$1:($.head=D,D.done=!1,Z_OK$1)},inflateSetDictionary=(_,D)=>{const $=D.length;let M,R,N;return inflateStateCheck(_)||(M=_.state,M.wrap!==0&&M.mode!==DICT)?Z_STREAM_ERROR$1:M.mode===DICT&&(R=1,R=adler32_1(R,D,$,0),R!==M.check)?Z_DATA_ERROR$1:(N=updatewindow(_,D,$,$),N?(M.mode=MEM,Z_MEM_ERROR$1):(M.havedict=1,Z_OK$1))};var inflateReset_1=inflateReset,inflateReset2_1=inflateReset2,inflateResetKeep_1=inflateResetKeep,inflateInit_1=inflateInit,inflateInit2_1=inflateInit2,inflate_2$1=inflate$2,inflateEnd_1=inflateEnd,inflateGetHeader_1=inflateGetHeader,inflateSetDictionary_1=inflateSetDictionary,inflateInfo="pako inflate (from Nodeca project)",inflate_1$2={inflateReset:inflateReset_1,inflateReset2:inflateReset2_1,inflateResetKeep:inflateResetKeep_1,inflateInit:inflateInit_1,inflateInit2:inflateInit2_1,inflate:inflate_2$1,inflateEnd:inflateEnd_1,inflateGetHeader:inflateGetHeader_1,inflateSetDictionary:inflateSetDictionary_1,inflateInfo};function GZheader(){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}var gzheader=GZheader;const toString=Object.prototype.toString,{Z_NO_FLUSH,Z_FINISH,Z_OK,Z_STREAM_END,Z_NEED_DICT,Z_STREAM_ERROR,Z_DATA_ERROR,Z_MEM_ERROR}=constants$2;function Inflate$1(_){this.options=common.assign({chunkSize:1024*64,windowBits:15,to:""},_||{});const D=this.options;D.raw&&D.windowBits>=0&&D.windowBits<16&&(D.windowBits=-D.windowBits,D.windowBits===0&&(D.windowBits=-15)),D.windowBits>=0&&D.windowBits<16&&!(_&&_.windowBits)&&(D.windowBits+=32),D.windowBits>15&&D.windowBits<48&&(D.windowBits&15)===0&&(D.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let $=inflate_1$2.inflateInit2(this.strm,D.windowBits);if($!==Z_OK)throw new Error(messages[$]);if(this.header=new gzheader,inflate_1$2.inflateGetHeader(this.strm,this.header),D.dictionary&&(typeof D.dictionary=="string"?D.dictionary=strings.string2buf(D.dictionary):toString.call(D.dictionary)==="[object ArrayBuffer]"&&(D.dictionary=new Uint8Array(D.dictionary)),D.raw&&($=inflate_1$2.inflateSetDictionary(this.strm,D.dictionary),$!==Z_OK)))throw new Error(messages[$])}Inflate$1.prototype.push=function(_,D){const $=this.strm,M=this.options.chunkSize,R=this.options.dictionary;let N,e,o;if(this.ended)return!1;for(D===~~D?e=D:e=D===!0?Z_FINISH:Z_NO_FLUSH,toString.call(_)==="[object ArrayBuffer]"?$.input=new Uint8Array(_):$.input=_,$.next_in=0,$.avail_in=$.input.length;;){for($.avail_out===0&&($.output=new Uint8Array(M),$.next_out=0,$.avail_out=M),N=inflate_1$2.inflate($,e),N===Z_NEED_DICT&&R&&(N=inflate_1$2.inflateSetDictionary($,R),N===Z_OK?N=inflate_1$2.inflate($,e):N===Z_DATA_ERROR&&(N=Z_NEED_DICT));$.avail_in>0&&N===Z_STREAM_END&&$.state.wrap>0&&_[$.next_in]!==0;)inflate_1$2.inflateReset($),N=inflate_1$2.inflate($,e);switch(N){case Z_STREAM_ERROR:case Z_DATA_ERROR:case Z_NEED_DICT:case Z_MEM_ERROR:return this.onEnd(N),this.ended=!0,!1}if(o=$.avail_out,$.next_out&&($.avail_out===0||N===Z_STREAM_END))if(this.options.to==="string"){let A=strings.utf8border($.output,$.next_out),U=$.next_out-A,L=strings.buf2string($.output,A);$.next_out=U,$.avail_out=M-U,U&&$.output.set($.output.subarray(A,A+U),0),this.onData(L)}else this.onData($.output.length===$.next_out?$.output:$.output.subarray(0,$.next_out));if(!(N===Z_OK&&o===0)){if(N===Z_STREAM_END)return N=inflate_1$2.inflateEnd(this.strm),this.onEnd(N),this.ended=!0,!0;if($.avail_in===0)break}}return!0},Inflate$1.prototype.onData=function(_){this.chunks.push(_)},Inflate$1.prototype.onEnd=function(_){_===Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=_,this.msg=this.strm.msg};function inflate$1(_,D){const $=new Inflate$1(D);if($.push(_),$.err)throw $.msg||messages[$.err];return $.result}function inflateRaw$1(_,D){return D=D||{},D.raw=!0,inflate$1(_,D)}var Inflate_1$1=Inflate$1,inflate_2=inflate$1,inflateRaw_1$1=inflateRaw$1,ungzip$1=inflate$1,inflate_1$1={Inflate:Inflate_1$1,inflate:inflate_2,inflateRaw:inflateRaw_1$1,ungzip:ungzip$1};const{Deflate,deflate,deflateRaw,gzip}=deflate_1$1,{Inflate,inflate,inflateRaw,ungzip}=inflate_1$1;var Deflate_1=Deflate,deflate_1=deflate,deflateRaw_1=deflateRaw,gzip_1=gzip,Inflate_1=Inflate,inflate_1=inflate,inflateRaw_1=inflateRaw,ungzip_1=ungzip,constants_1=constants$2,pako={Deflate:Deflate_1,deflate:deflate_1,deflateRaw:deflateRaw_1,gzip:gzip_1,Inflate:Inflate_1,inflate:inflate_1,inflateRaw:inflateRaw_1,ungzip:ungzip_1,constants:constants_1};const compressArrayBuffer=_=>{const D=new Uint8Array(_),$=pako.deflate(D,{gzip:!0});return new Uint8Array($==null?void 0:$.buffer)},decompressArrayBuffer=_=>{const D=new Uint8Array(_),$=pako.inflate(D,{gzip:!0});return new Uint8Array($==null?void 0:$.buffer)},sendMessageFormat=_=>{const{event:D}=_;switch(_.data_original=_.data,_.time&&(_.timeStr=E(_.time,"YYYY-MM-DD hh:mm:ss",{offset:480})),D){case"login":_.data=com.quick.voice.proto.Login.encode(_.data).finish();break;case"joinRoom":_.data=com.quick.voice.proto.JoinReq.encode(_.data).finish();break;case"quitRoom":_.data=com.quick.voice.proto.QuitReq.encode(_.data).finish();break;case"connectCF":_.data=com.quick.voice.proto.ConnectCFReq.encode(_.data).finish(),_.data=compressArrayBuffer(_.data),_.compress=!0;break;case"publish":_.data=com.quick.voice.proto.PublishReq.encode(_.data).finish(),_.data=compressArrayBuffer(_.data),_.compress=!0;break;case"subscribe":_.data=com.quick.voice.proto.SubscribeReq.encode(_.data).finish();break;case"closeTrack":_.data=com.quick.voice.proto.CloseTrackReq.encode(_.data).finish(),_.data=compressArrayBuffer(_.data),_.compress=!0;break;case"renegotiate":_.data=com.quick.voice.proto.RenegotiateReq.encode(_.data).finish(),_.data=compressArrayBuffer(_.data),_.compress=!0;break;case"syncRoomInfo":_.data=com.quick.voice.proto.SyncRoomInfoReq.encode(_.data).finish();break;case"updateCall":_.data=com.quick.voice.proto.UpdateCall.encode(_.data).finish();break;case"networkQualityChange":_.data=com.quick.voice.proto.NetQualityChange.encode(_.data).finish();break;case"pubNotify":_.data=com.quick.voice.proto.PublishNotify.encode(_.data).finish();break;default:_.data=new Uint8Array;break}return _},onMessageFormat=_=>{const{event:D,compress:$=!1}=_;if(_.data_remote=_.data,_.time&&(_.timeStr=E(_.time,"YYYY-MM-DD hh:mm:ss",{offset:480})),$)try{_.data=decompressArrayBuffer(_.data)}catch(M){console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo:消息解压错误",M)}switch(D){case"login":_.data=com.quick.voice.proto.Login.decode(_.data);break;case"joinRoom":_.data=com.quick.voice.proto.JoinRsp.decode(_.data);break;case"onJoinRoom":_.data=com.quick.voice.proto.JoinNotify.decode(_.data);break;case"onQuitRoom":_.data=com.quick.voice.proto.QuitNotify.decode(_.data);break;case"connectCF":_.data=com.quick.voice.proto.ConnectCFRsp.decode(_.data);break;case"publish":_.data=com.quick.voice.proto.PublishRsp.decode(_.data);break;case"onPublish":_.data=com.quick.voice.proto.PublishNotify.decode(_.data);break;case"subscribe":_.data=com.quick.voice.proto.SubscribeRsp.decode(_.data);break;case"closeTrack":_.data=com.quick.voice.proto.CloseTrackRsp.decode(_.data);break;case"onCloseTrack":_.data=com.quick.voice.proto.CloseTrackNotify.decode(_.data);break;case"onUpdateCall":_.data=com.quick.voice.proto.UpdateCall.decode(_.data);break;case"onUpdatePermissions":_.data=com.quick.voice.proto.UpdatePermissions.decode(_.data);break;case"onNetQuality":_.data=com.quick.voice.proto.NetQualityNotify.decode(_.data);break;case"syncRoomInfo":_.data=com.quick.voice.proto.SyncRoomInfoRsp.decode(_.data);break;case"debugger":_.data=JSON.parse(new TextDecoder().decode(_.data));break}return _},checkReconnect=_=>!0;class CallsWebSocket{constructor(D){ft(this,at);ft(this,st,{url:"wss://demo.putplay.cc/websocket",debug:!1,reconnectCount:10,timeout:30*1e3});ft(this,ht,"");ft(this,Ot,!1);ft(this,vt,0);ft(this,yt,{});ft(this,kt,{});K(this,"onReconnectSuccess",async D=>{});K(this,"onReconnectStop",async D=>{});ft(this,Nt,()=>V(this,Ot)?com.quick.voice.proto.CommonReq.encode({event:"heartbeat",sn:+`${O(1e5,999999)}`}).finish():"");ft(this,Et,(D,$={})=>{try{const{time:M,event:R,data:N={},data_original:e={},data_remote:o,...A}=$,U=E(M,"YYYY-MM-DD hh:mm:ss",{offset:480});let L={};const F=(Y={})=>{const tt=JSON.parse(JSON.stringify(Y)),X=Object.keys(tt);for(const ot of X)(ot.includes("sdp")||ot.includes("Sdp"))&&(tt[ot]="");return tt};let Z="res ↓";switch(D){case"res":Z="res ↓",L=F(N);break;case"req":Z="req ↑",L=F(e);break}let H="#quickvo.logs";ignoreEvent.includes(R)&&(H="#quickvo.ignoreEvents");const z={"#action":Z,timeStr:U,event:R,data:L,time:M,...A},G=localStorage.getItem(H)||JSON.stringify([]),W=JSON.parse(G),J=[z,...W].slice(0,500);localStorage.setItem(H,JSON.stringify(J))}catch(M){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: updataLogs is error",M)}});ft(this,xt,D=>new Promise(async $=>{const{event:M}=D,R=Date.now();M==="healthCheck"&&(bt(this,vt,R),V(this,st).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 刷新活性",{activetimeStamp:V(this,vt),activetimeStampStr:E(V(this,vt))}));const N=30*1e3+V(this,st).timeout;R-V(this,vt)>=N&&V(this,at)&&(V(this,st).debug&&console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 活性超时, 尝试重新建立连接",V(this,at)),await this.connect()),$(V(this,at))}));K(this,"clearEvents",(D=[])=>{const $=Object.keys(V(this,yt));D.length===0&&(D=$);for(const M of $){if(!D.includes(M))continue;const R=V(this,yt)[M];clearTimeout(R.destructionTimer),delete V(this,yt)[M]}});ft(this,At,(D,{resolve:$,reject:M})=>{const{sn:R}=D,N=()=>{const o=V(this,yt)[R];clearTimeout(o.destructionTimer),delete V(this,yt)[R]},e=setTimeout(()=>{const o=V(this,yt)[R];console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo:event is timeout",o.message),N(),M("event is timeout")},V(this,st).timeout);V(this,yt)[R]={message:D,resolve:$,reject:M,destruction:N,destructionTimer:e}});ft(this,qt,D=>V(this,yt)[D]);ft(this,Dt,async D=>{const $=Date.now();bt(this,vt,$),V(this,st).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 重置活性",{activetimeStamp:V(this,vt),activetimeStampStr:E(V(this,vt))}),await this.onReconnectSuccess(D)});K(this,"connect",async(D="")=>{D&&bt(this,ht,D),V(this,at)&&await V(this,at).close();const $=`${V(this,st).url}?s=${V(this,ht)}&t=${Date.now()}`;return bt(this,at,new k$1({...V(this,st),url:$,binaryType:"arraybuffer",onMessage:V(this,Ct),checkReconnect,getHeartbeatMsg:V(this,Nt),onReconnectSuccess:V(this,Dt),onReconnectStop:M=>this.onReconnectStop(M)})),await V(this,at).connect(),bt(this,vt,Date.now()),V(this,st).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 当前广播事件",V(this,kt)),V(this,at)});K(this,"close",async()=>{var $;V(this,st).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: cws is close.");const D=Object.keys(V(this,yt));for(const M of D){const{destructionTimer:R}=V(this,yt)[M];clearTimeout(R)}bt(this,yt,{}),bt(this,kt,{}),await(($=V(this,at))==null?void 0:$.close())});K(this,"sendMessage",(D,$=!0)=>new Promise(async(M,R)=>{var L;const{event:N,...e}=D,o=Date.now(),A=sendMessageFormat({event:N,sn:+`${o}${O(1e3,9999)}`,time:o,valid:V(this,st).timeout,version:1,compress:!1,...e});V(this,st).debug&&(V(this,Et).call(this,"req",A),console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ff9700;padding:16px 0;","------->quickvo: 发送消息↑",A)),await V(this,xt).call(this,A),N==="joinRoom"&&bt(this,Ot,!1),$&&V(this,At).call(this,A,{resolve:M,reject:R});const U=com.quick.voice.proto.CommonReq.encode(A).finish();(L=V(this,at))==null||L.sendMessage(U)}));ft(this,Ct,async D=>{const $=new Uint8Array(D),M=com.quick.voice.proto.CommonRsp.decode($),{sn:R,event:N}=M,e=onMessageFormat(M);if(V(this,st).debug&&(V(this,Et).call(this,"res",e),console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ff0097;padding:16px 0;","------->quickvo: 响应消息↓",e)),await V(this,xt).call(this,e),N==="joinRoom"&&bt(this,Ot,!0),ignoreEvent.includes(N))return;if(notifyName_keys.includes(N))return this.emitNotify(N,v$1(e,["code","data","desc"]));const A=V(this,qt).call(this,R);if(A){const{resolve:U=F=>{},destruction:L=()=>{}}=A;U(v$1(e,["code","data","desc"])),L()}});K(this,"emitNotify",async(D,$)=>{const M=V(this,kt)[D]||[];for(const R of M){const{callback:N=async()=>{}}=R;await N($)}});K(this,"addNotify",(D,$=!1)=>{const{event:M,sn:R=pt(32)}=D;V(this,kt)[M]||(V(this,kt)[M]=[]);const N=V(this,kt)[M],e=N.findIndex(o=>o.sn===R);return e!==-1&&N.splice(e,1),$?N.unshift(D):N.push(D),R});K(this,"removeNotify",(D=[])=>{if(D.length===0)bt(this,kt,{});else{const $=Object.keys(V(this,kt));for(const M of $)V(this,kt)[M]=V(this,kt)[M].filter(R=>!D.includes(R.sn||""))}V(this,st).debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 移除广播事件",V(this,kt))});bt(this,st,{...V(this,st),...D})}}at=new WeakMap,st=new WeakMap,ht=new WeakMap,Ot=new WeakMap,vt=new WeakMap,yt=new WeakMap,kt=new WeakMap,Nt=new WeakMap,Et=new WeakMap,xt=new WeakMap,At=new WeakMap,qt=new WeakMap,Dt=new WeakMap,Ct=new WeakMap;var l=Object.defineProperty,y=_=>{throw TypeError(_)},q=(_,D,$)=>D in _?l(_,D,{enumerable:!0,configurable:!0,writable:!0,value:$}):_[D]=$,s=(_,D,$)=>q(_,typeof D!="symbol"?D+"":D,$),P=(_,D,$)=>D.has(_)||y("Cannot "+$),n=(_,D,$)=>(P(_,D,"read from private field"),$?$.call(_):D.get(_)),m=(_,D,$)=>D.has(_)?y("Cannot add the same private member more than once"):D instanceof WeakSet?D.add(_):D.set(_,$),a,d,u;class k{constructor(D={}){s(this,"queue",[]),s(this,"timer",0),s(this,"activeIndex",0),s(this,"activePromise"),s(this,"options",{timeout:0}),s(this,"add",($,M={})=>new Promise(async(R,N)=>{const e=M.timeout||this.options.timeout,o=M.key||n(this,a).call(this);if(this.queue.findIndex(U=>U.key===o)!==-1)return N(`${o} is exist.`);const A={key:o,func:$,resolve:R,reject:N,timeout:e};this.queue.unshift(A),this.activePromise||n(this,u).call(this)})),s(this,"clear",()=>{this.queue=[],clearTimeout(this.timer)}),m(this,a,()=>(this.activeIndex=this.activeIndex+1,`${this.activeIndex}`)),m(this,d,$=>{const M=this.queue.findIndex(R=>R.key===$);this.queue.splice(M,1)}),m(this,u,async()=>{const $=this.queue.length;if($===0)return;const M=$-1,R=this.queue[M];this.activePromise=R;const{key:N,func:e,resolve:o,reject:A,timeout:U}=this.activePromise;U&&(this.timer=setTimeout(()=>{A(`pr-async-queue: ${N} is timeout.`),n(this,u).call(this)},U)),await e().then(o).catch(A).finally(()=>{clearTimeout(this.timer),this.activePromise=void 0,n(this,d).call(this,N),n(this,u).call(this)})}),this.options={timeout:0,...D}}}a=new WeakMap,d=new WeakMap,u=new WeakMap;class RoomBase{constructor(){K(this,"options",{appid:"",sdkToken:"",roomId:"",userId:"",callType:0,debug:!1,newPublishAutoSubscribe:!0});K(this,"prohibitNotify",!1);K(this,"asyncQueue",new k);K(this,"state","ready");K(this,"createAt",Date.now());K(this,"cwsIns",new CallsWebSocket);K(this,"peerIns",new RTCPeerConnection({bundlePolicy:"max-bundle"}));K(this,"userMap",new Map);K(this,"mediaDevicesErrInfo",{microphoneCamera_audio:"",microphoneCamera_video:"",screenSharing_video:"",screenSharing_audio:""});K(this,"getRoomInfo",()=>{const{options:D,state:$,createAt:M}=this;return{...D,state:$,createAt:M}});K(this,"setRoomState",D=>{this.state=D;const $=enum_roomState[D],M={state:D,stateStr:$};this.cwsIns.emitNotify("onRoomState",{code:200,data:M,desc:"room state is change."})});K(this,"setOptions",async D=>{const $={...this.options,...D};this.options=$});K(this,"initCwsCall",()=>{this.cwsIns=new CallsWebSocket({...this.options})});K(this,"getMediaDevicesErrInfo",async()=>{try{const D=await navigator.mediaDevices.enumerateDevices();D.find(M=>M.kind==="audioinput")||(this.mediaDevicesErrInfo.microphoneCamera_audio="audioinput is not available."),D.find(M=>M.kind==="videoinput")||(this.mediaDevicesErrInfo.microphoneCamera_video="videoinput is not available.")}catch(D){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe:error",D)}return this.mediaDevicesErrInfo});K(this,"getUserMediaKey",(D,$)=>`${D}-${$}`);K(this,"getCallActionMap",(D=0)=>{const M=Number(D).toString(2).padStart(4,"0").split(""),[R,N,e,o]=M;return{microphoneCamera_audio:!!Number(o),microphoneCamera_video:!!Number(e),screenSharing_video:!!Number(N),screenSharing_audio:!!Number(R)}});K(this,"getAverageVolume",(D,$)=>{D.getByteFrequencyData($);let M=0;for(let N=0;N<$.length;N++)M+=$[N];return Math.ceil(M/$.length)});K(this,"getCallAction",async D=>{let $="";const M=N=>D.findIndex(({type:o,enabled:A=!0})=>o===N&&A)===-1?"0":"1";return $=`${M(0)}${$}`,$=`${M(1)}${$}`,$=`${M(2)}${$}`,$=`${M(3)}${$}`,parseInt($,2)});K(this,"getTrackNamesFormTracks",(D,$=[],M="trackName")=>{const R=[];for(const N of D){const{type:e}=N;if($.length===0||$.includes(e)){const o=N[M];o&&R.push(`${o}`)}}return R});K(this,"usersFilter",D=>mt(D,["id","isSelf","joinTime","tracks","callAction","callActionStr","callActionMap","network","updateStreams","permissions","isPublished"]).sort((R,N)=>R.id.localeCompare(N.id,"en")))}}class RoomMedias extends RoomBase{constructor(){super();K(this,"mediaDevices",[]);ft(this,St,new Map);ft(this,gt,new Map);ft(this,wt,new Map);ft(this,Ut,()=>{V(this,gt).set("microphoneCamera_audio",{}),V(this,gt).set("microphoneCamera_video",{width:{ideal:1920},height:{ideal:1080},frameRate:{min:10,ideal:30}}),V(this,gt).set("screenSharing_video",{width:{ideal:1920},height:{ideal:1080},frameRate:{min:10,ideal:30}}),V(this,gt).set("screenSharing_audio",{})});ft(this,Mt,()=>{V(this,St).set("audioinput","default"),V(this,St).set("videoinput","default"),V(this,St).set("audiooutput","default")});K(this,"emitNotifyUpdateUsersStreams",async $=>{this.prohibitNotify||this.cwsIns.emitNotify("onRoomUsersStreams",{code:200,data:$,desc:"users streams is change."})});K(this,"initUserMediaStreamContext",async($,M,R)=>{var A;const[N]=R.getTracks();if(!N){console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: tracks.length is 0.",{userId:$,mediaType:M,stream:R});return}this.removeUserMediaStreamContext($,M);const e=this.getUserMediaKey($,M),{kind:o}=N;switch(o){case"audio":{const U=new AudioMediaContext(N);V(this,wt).set(e,U)}break;case"video":{const U=new VideoMediaContext(N);V(this,wt).set(e,U)}break}{const U=this.getUserMediaStreamContext($,M);if(U&&U.kind==="audio")try{const L=V(this,St).get("audiooutput");(A=U.audioContext)==null||A.setSinkId(L)}catch(L){console.warn("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: setSinkId is error",L)}}});K(this,"getUserMediaStreamContext",($,M)=>{const R=this.getUserMediaKey($,M);return V(this,wt).get(R)});K(this,"getUserAudioMediaStreamContext",($,M)=>{const R=this.getUserMediaKey($,M);return V(this,wt).get(R)});K(this,"removeUserMediaStreamContext",($,M)=>{const R=this.getUserMediaKey($,M),N=V(this,wt).get(R);N==null||N.stop(),V(this,wt).delete(R)});K(this,"getUserStream",($,M)=>{const R=this.getUserMediaStreamContext($,M);return(R==null?void 0:R.getStream())||new MediaStream});K(this,"getUserStreams",($,M=[])=>{M.length===0&&(M=mediaType_keys);const R={};for(const N of M){const e=this.getUserStream($,N);R[N]=e}return R});K(this,"removeUserStreams",async($,M=[])=>{M.length===0&&(M=mediaType_keys);for(const R of M)this.removeUserMediaStreamContext($,R)});K(this,"clearUserStreams",()=>{const $=V(this,wt).values();for(const M of $)M.stop();bt(this,wt,new Map)});K(this,"setMediaTrackConstraints",async($,M)=>{V(this,gt).set($,M);const N=this.getUserStream(this.options.userId,$).getTracks();if(N.length!==0)for(const e of N){const A={...e.getConstraints(),...M};await e.applyConstraints(A)}});K(this,"changeLocalStream",async $=>{const{userId:M}=this.options,R=V(this,gt).get($);switch($){case"microphoneCamera_audio":{const N=V(this,St).get("audioinput"),e=await navigator.mediaDevices.getUserMedia({audio:{deviceId:N,...R},video:!1});await this.initUserMediaStreamContext(M,"microphoneCamera_audio",e)}break;case"microphoneCamera_video":{const N=V(this,St).get("videoinput"),e=await navigator.mediaDevices.getUserMedia({audio:!1,video:{deviceId:N,...R}});await this.initUserMediaStreamContext(M,"microphoneCamera_video",e)}break;case"screenSharing_audio":{const N=await navigator.mediaDevices.getDisplayMedia({audio:!0,video:!0,...R}),e=N.getTracks();for(const o of e){const{kind:A}=o,U=new MediaStream;U.addTrack(o),N.removeTrack(o),A==="audio"&&await this.initUserMediaStreamContext(M,"screenSharing_audio",U),A==="video"&&await this.initUserMediaStreamContext(M,"screenSharing_video",U)}}break;case"screenSharing_video":{const N=await navigator.mediaDevices.getDisplayMedia({audio:!1,video:!0,...R});await this.initUserMediaStreamContext(M,"screenSharing_video",N)}break}this.emitNotifyUpdateUsersStreams([{userId:M,updateStreams:{[$]:!0}}])});ft(this,It,async()=>!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices?(console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 不支持 enumerateDevices"),[]):(await navigator.mediaDevices.enumerateDevices().then($=>{this.mediaDevices=$}).catch(function($){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: getEnumerateDevices is err",$)}),this.mediaDevices));ft(this,Pt,()=>{navigator.mediaDevices.ondevicechange=async()=>{await V(this,It).call(this),this.cwsIns.emitNotify("onDevicechange",{code:200,data:{},desc:"device is change."})},V(this,It).call(this)});K(this,"getMediaDeviceKind",$=>V(this,St).get($));K(this,"replaceSenderStream",async($,M)=>{var A;const R=this.userMap.get(this.options.userId);if(!R)return;const{mid:N}=R.tracks.find(U=>U.mediaType===$)||{};if(!N)return;const[e]=M.getTracks(),o=this.peerIns.getTransceivers();for(const U of o){const{sender:L}=U;U.mid===N&&((A=L.track)==null||A.stop(),L.replaceTrack(e))}});K(this,"setMediaDeviceKind",async($,M)=>{var N;V(this,St).set($,M);const{userId:R}=this.options;if($==="audioinput"&&this.getUserMediaStreamContext(R,"microphoneCamera_audio")){await this.changeLocalStream("microphoneCamera_audio");const o=this.getUserStream(this.options.userId,"microphoneCamera_audio");await this.replaceSenderStream("microphoneCamera_audio",o)}if($==="videoinput"&&this.getUserMediaStreamContext(R,"microphoneCamera_video")){await this.changeLocalStream("microphoneCamera_video");const o=this.getUserStream(this.options.userId,"microphoneCamera_video");await this.replaceSenderStream("microphoneCamera_video",o)}if($==="audiooutput"){const e=V(this,wt).values();for(const o of e)(N=o.audioContext)==null||N.setSinkId(M)}});K(this,"setAudioOutputDevice",$=>this.setMediaDeviceKind("audiooutput",$));K(this,"getEnumerateDevices",async $=>(await V(this,It).call(this),this.mediaDevices.filter(R=>R.kind===$)));K(this,"getEnumerateAudioinputDevices",()=>this.getEnumerateDevices("audioinput"));K(this,"getEnumerateAudioOutputDevices",()=>this.getEnumerateDevices("audiooutput"));K(this,"getEnumerateVideoinputDevices",()=>this.getEnumerateDevices("videoinput"));V(this,Pt).call(this),V(this,Mt).call(this),V(this,Ut).call(this)}}St=new WeakMap,gt=new WeakMap,wt=new WeakMap,Ut=new WeakMap,Mt=new WeakMap,It=new WeakMap,Pt=new WeakMap;class RoomUsers extends RoomMedias{constructor(){super();K(this,"getMaxVolumeUser",()=>{const $=Array.from(this.userMap.values(),({id:R})=>R);if($.length===0)return;let M=[];for(const R of $){const N=this.getUserMediaStreamContext(R,"microphoneCamera_audio");if(!N||N.kind!=="audio")continue;const e=N.getVolume();M.push({id:R,volume:e})}return M=M.sort((R,N)=>R.volume-N.volume>0?-1:1),M[0]});K(this,"setAudioFilter",async($={})=>{const M=await this.getUsersId();for(const R of M){{const N=this.getUserMediaStreamContext(R,"microphoneCamera_audio");(N==null?void 0:N.kind)==="audio"&&(N==null||N.setFilter($))}{const N=this.getUserMediaStreamContext(R,"screenSharing_audio");(N==null?void 0:N.kind)==="audio"&&(N==null||N.setFilter($))}}});K(this,"setVolume",($,M,R)=>{const N=this.getUserMediaStreamContext($,M);(N==null?void 0:N.kind)==="audio"&&(N==null||N.setVolumeGain(R))});K(this,"getVolume",($,M)=>{const R=this.getUserMediaStreamContext($,M);let N=0;return(R==null?void 0:R.kind)==="audio"&&(N=R==null?void 0:R.getVolume()),N});K(this,"clearUsers",()=>{this.userMap=new Map});K(this,"removeUsers",async $=>{for(const M of $)this.userMap.delete(M),await this.removeUserStreams(M)});K(this,"createUser",async $=>{const M=Date.now(),R={id:$,permissions:0,callAction:0,callActionStr:"",callActionMap:{microphoneCamera_audio:!1,microphoneCamera_video:!1,screenSharing_video:!1,screenSharing_audio:!1},callState:0,isSelf:$===this.options.userId,isPublished:!1,joinTime:M,updateAt:M,network:{egress:0,ingress:0},tracks:[],updateStreams:{microphoneCamera_audio:!1,microphoneCamera_video:!1,screenSharing_video:!1,screenSharing_audio:!1}};this.userMap.set($,R)});K(this,"getUser",async $=>(this.userMap.has($)||await this.createUser($),this.userMap.get($)));K(this,"getUsers",async($=[])=>{$.length===0&&($=[...this.userMap.keys()]);const M=[];for(const R of $){const N=await this.getUser(R);M.push(N)}return M});K(this,"getAllUserTrackMids",async()=>{const $=await this.getUsers(),M=[];for(const R of $){const{tracks:N=[]}=R;for(const e of N)M.push(e.mid)}return M});K(this,"getUserTrackByTrackName",async $=>{const M=await this.getUsers(),R=[];for(const N of M){const{tracks:e=[]}=N;for(const o of e){const{trackName:A}=o;$.includes(A)&&R.push(o)}}return R});K(this,"getUserTrackFromMid",async $=>{const M=await this.getUsers();let R;for(const N of M){const{tracks:e=[]}=N;for(const o of e)if(o.mid===$){R=o;break}}return R});K(this,"checkUserInRoom",$=>this.userMap.has($));K(this,"getUsersId",async()=>[...this.userMap.keys()]);K(this,"getCaller",async()=>await this.getUser(this.options.userId));K(this,"updateIsPublished",async($,M=!1)=>{const R=await this.getUser($);R.isPublished=M});K(this,"setUserUpdateStreams",async($,M,R=!0)=>{const N=await this.getUser($),e={microphoneCamera_audio:!1,microphoneCamera_video:!1,screenSharing_video:!1,screenSharing_audio:!1};e[M]=R,N.updateStreams=e});K(this,"updateUsertracks",async($,M=[],R)=>{const N=await this.getUser($);R&&(M=[...N.tracks,...M]),M=M.filter(({mid:A=""})=>A!==""),M=it(M,["type"]),M=M.sort((A,U)=>A.type-U.type<0?-1:1);for(const A of M)A.userId=$,A.mediaType=mediaType_keys[A.type],A.enabled===void 0&&(A.enabled=!0);N.updateStreams={microphoneCamera_audio:!1,microphoneCamera_video:!1,screenSharing_video:!1,screenSharing_audio:!1};const e=mt(N.tracks,["mediaType","enabled","mid","msid","trackName"]),o=mt(M,["mediaType","enabled","mid","msid","trackName"]);{const A="microphoneCamera_audio",U=o.find(Z=>Z.mediaType===A),L=e.find(Z=>Z.mediaType===A),F=JSON.stringify(U)!==JSON.stringify(L);N.updateStreams[A]=F}{const A="microphoneCamera_video",U=o.find(Z=>Z.mediaType===A),L=e.find(Z=>Z.mediaType===A),F=JSON.stringify(U)!==JSON.stringify(L);N.updateStreams[A]=F}{const A="screenSharing_audio",U=o.find(Z=>Z.mediaType===A),L=e.find(Z=>Z.mediaType===A),F=JSON.stringify(U)!==JSON.stringify(L);N.updateStreams[A]=F}{const A="screenSharing_video",U=o.find(Z=>Z.mediaType===A),L=e.find(Z=>Z.mediaType===A),F=JSON.stringify(U)!==JSON.stringify(L);N.updateStreams[A]=F}N.tracks=M});K(this,"updateUserCallAction",async($,M=0)=>{const R=await this.getUser($);R.callAction=M,R.callActionStr=M.toString(2).padStart(4,"0"),R.callActionMap=this.getCallActionMap(M)});K(this,"updateUserNetwork",async($,M={egress:5,ingress:5})=>{const R=await this.getUser($);R.network=M});K(this,"updateUserPermissions",async($,M)=>{if(M){const R=await this.getUser($);R.permissions=M}});K(this,"updateUserBase",async $=>{const M=await this.getUser($);M.isSelf=$===this.options.userId,M.updateAt=Date.now()});K(this,"updateUsers",async $=>{for(const M of $){const{id:R,tracks:N,callAction:e,permissions:o,isPublished:A}=M;await this.updateUserBase(R),await this.updateIsPublished(R,A),await this.updateUserPermissions(R,o),await this.updateUsertracks(R,N,!0),await this.updateUserCallAction(R,e),await this.updateUserNetwork(R)}});K(this,"emitNotifyUpdateUser",async $=>{if(this.prohibitNotify)return;const M=await this.getUsers([$]),[R]=this.usersFilter(M);this.cwsIns.emitNotify("onRoomUser",{code:200,data:R,desc:"user info is change."})});K(this,"emitNotifyUpdateUsers",async()=>{if(this.prohibitNotify)return;const $=await this.getUsers(),M=this.usersFilter($);this.cwsIns.emitNotify("onRoomUsers",{code:200,data:M,desc:"all users info is change."})})}}class RoomPeer extends RoomUsers{constructor(){super();K(this,"getPeerStatsTimer",0);K(this,"reports",[]);K(this,"peerNetwork",{lostRate:"0",roundTripTime:"0",jitter:"0"});K(this,"connectedResolveMap",new Map);K(this,"initPeer",()=>{this.peerIns=new RTCPeerConnection({bundlePolicy:"max-bundle"}),V(this,Bt).call(this),V(this,Zt).call(this)});K(this,"initSender",async()=>{this.peerIns.addTransceiver("audio",{direction:"sendonly"});const $=await this.peerIns.createOffer();if(this.options.debug){const M=libExports.parse($.sdp),R=mt(M.media,["mid","msid","type"]);console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ffffff;","------->Breathe: setLocalDescription",{msidArr:R,sdpJson:M,description:$})}await this.peerIns.setLocalDescription($)});K(this,"addSender",async($,M)=>{const{userId:R}=this.options,N=this.peerIns.addTransceiver(M,{direction:"sendonly"}),e=await this.peerIns.createOffer();await this.peerIns.setLocalDescription(e);const{mid:o,sender:A}=N,{track:U}=A;if(!U)return;const{enabled:L}=U,F=mediaType_keys.findIndex(H=>H===$);return{type:F,enabled:L,trackName:`${R}_${F}`,location:"local",mid:o,userId:this.options.userId}});K(this,"clearTransceivers",async()=>{const $=await this.getAllUserTrackMids(),M=this.peerIns.getTransceivers();for(const R of M){const{mid:N}=R;Number(N)===0||$.includes(N)||(R.stop(),console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->Breathe: clearTransceivers: ${N} is stop.`,R))}});K(this,"connectionICE",()=>new Promise(async $=>{if(this.peerIns.connectionState==="connected")return $(!0);const M=pt();this.connectedResolveMap.set(M,$)}));K(this,"onSubscribeUserTracks",$=>{let M=0;return new Promise(async R=>{const N=[];for(const e of $){const{tracks:o=[]}=e;for(const A of o){const{trackName:U,mid:L}=A,[F]=await this.getUserTrackByTrackName([U]);N.push({...F,mid:L})}}{let e=[];const o=async()=>{clearTimeout(M),this.prohibitNotify=!1;const U=new Map;for(const F of e){const{userId:Z,mediaType:H}=F;if(!Z||!H)continue;U.has(Z)||U.set(Z,{userId:Z,tracks:[],updateStreams:{}});const G=U.get(Z);G.tracks.push(F),G.updateStreams[H]=!0}const L=[...U.values()];for(const F of L){const{userId:Z,tracks:H}=F;await this.updateUsertracks(Z,H,!0)}await this.emitNotifyUpdateUsersStreams(L),this.peerIns.removeEventListener("track",A),R(!0)},A=async U=>{await this.connectionICE();const{streams:L,transceiver:F}=U,[Z]=L,{mid:H,receiver:z}=F,{track:G}=z,{id:W,kind:J}=G,Y=N.find(ot=>ot.mid===`${H}`);if(!Y)return;const{userId:tt,mediaType:X}=Y;if(!(!tt||!X)){if(await this.initUserMediaStreamContext(tt,X,Z),J==="audio"){const ot=this.getUserMediaStreamContext(tt,X);(ot==null?void 0:ot.kind)==="audio"&&ot.setMute(!1)}{const ot={...Y,mid:H,msid:W};e.push(ot)}this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#00b60f;",`------->Breathe: await subscribe ${e.length}/${N.length}`,{mediaType:X,mid:H,userTrack:Y,e:U}),N.length===e.length&&o()}};this.peerIns.addEventListener("track",A),M=setTimeout(()=>o(),5*1e3)}})});ft(this,Bt,async()=>{let $=0;const M=()=>{this.setRoomState("disconnected")};this.peerIns.onconnectionstatechange=async()=>{const R=this.peerIns.connectionState;switch(R){case"connected":{clearTimeout($);const N=this.connectedResolveMap.keys();for(const e of N){const o=this.connectedResolveMap.get(e);o&&o(!0),this.connectedResolveMap.delete(e)}}this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#00b60f;",`------->quickvo: connectionState:${R}`);break;case"disconnected":$=setTimeout(M,30*1e3),this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#b60000;",`------->quickvo: connectionState:${R}`);break;case"closed":case"failed":M(),this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#b60000;",`------->quickvo: connectionState:${R}`);break;default:this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#b64900;",`------->quickvo: connectionState:${R}`);break}}});K(this,"closeUserTracks",async($,M=[],R=!1)=>{const N=[];for(const U of M){const{trackName:L}=U;N.push(L)}const e=U=>N.includes(U),o=await this.getUser($);if(!o)return;for(const U of o.tracks){const{trackName:L,msid:F,userId:Z,mediaType:H}=U;!Z||!H||!e(L)||(this.removeUserMediaStreamContext(Z,H),F&&delete U.msid)}if(R){const U=o.tracks.filter(({trackName:L})=>!e(L));await this.updateUsertracks($,U,!1)}const A=this.peerIns.getTransceivers();for(const U of A){const{sender:L,receiver:F}=U;L.track&&e(L.track.id)&&(console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->Breathe: sender: ${L.track.id} is stop.`,U),L.track.enabled=!1,L.track.stop(),L.replaceTrack(null),this.peerIns.removeTrack(L),U.stop()),F.track&&e(F.track.id)&&(console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->Breathe: receiver: ${F.track.id} is stop.`,U),F.track.enabled=!1,F.track.stop(),U.stop())}});K(this,"createOffer",async()=>{const $=await this.peerIns.createOffer();if(this.options.debug){const M=libExports.parse($.sdp),R=mt(M.media,["mid","msid","type"]);console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ffffff;","------->Breathe: createOffer",{msidArr:R,sdpJson:M,description:$})}await this.peerIns.setLocalDescription($)});K(this,"createAnswer",async()=>{const $=await this.peerIns.createAnswer();if(this.options.debug){const M=libExports.parse($.sdp),R=mt(M.media,["mid","msid","type"]);console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ffffff;","------->Breathe: createAnswer",{msidArr:R,sdpJson:M,description:$})}await this.peerIns.setLocalDescription($)});K(this,"getSdp",()=>{var $;return($=this.peerIns.localDescription)==null?void 0:$.sdp});K(this,"setRemoteDescription",async $=>{if(this.options.debug){const M=libExports.parse($.sdp),R=mt(M.media,["mid","msid","type"]);console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#ffffff;","------->Breathe: setRemoteDescription",{msidArr:R,sdpJson:M,description:$})}return await this.peerIns.setRemoteDescription($),$});K(this,"getPeerNetwork",()=>this.peerNetwork);K(this,"setCallStrategy",async($,M=[])=>{M.length===0&&(M=mediaType_keys);let R="balanced";switch($){case"qualityPriority":R="maintain-resolution";break;case"fluencyPriority":R="maintain-framerate";break;case"balancedDowngrade":R="balanced";break}const N=await this.getCaller(),e=Array.from(N.tracks,({trackName:A})=>A),o=this.peerIns.getSenders();for(const A of o){const{track:U}=A;if(!U||!e.includes(U.id))continue;const L=A.getParameters();A.setParameters({...L,degradationPreference:R})}});K(this,"setRTCRtpSenderParameters",$=>{try{const M=this.peerIns.getSenders();for(const R of M){const N=R.getParameters();R.setParameters({...N,...$})}}catch(M){console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: setRTCRtpSenderParameters is error.",M)}});K(this,"getReportsByMid",async($=[])=>$.length===0?this.reports:this.reports.filter(M=>$.includes(M.mid)));ft(this,Lt,async()=>{try{const $=await this.peerIns.getStats(),M=["inbound-rtp","remote-inbound-rtp","outbound-rtp"],N=[...$.values()].filter(dt=>M.includes(dt.type));let e=0,o=0,A=0,U=0,L=0,F=0,Z=[],H=[];for(const dt of this.reports){const{packetsSent:et,packetsLost:lt}=dt;et&&(A+=et),lt&&(U+=lt)}this.reports=N;for(const dt of this.reports){const{bytesReceived:et,bytesSent:lt,packetsSent:rt,packetsLost:nt,jitter:ct,roundTripTime:_t}=dt;et&&(e=et),lt&&(o=lt),rt&&(L+=rt),nt&&(F+=nt),_t&&Z.push((_t*100).toFixed(2)),ct&&H.push(ct.toFixed(2))}H.sort().reverse(),Z.sort().reverse();const z=L-A,G=F-U,W=z===0?"0.00":(G/z).toFixed(2),[J="0"]=Z,[Y="0"]=H,tt={inboundBytes:e,outboundBytes:o,lostRate:W,roundTripTime:J,jitter:Y};JSON.stringify(tt)!==JSON.stringify(this.peerNetwork)&&this.cwsIns.emitNotify("onRoomNetwork",{code:200,data:tt,desc:"room network is change."}),this.peerNetwork=tt;const ot=(dt,et,lt)=>{const rt=Number(dt),nt=Number(et),ct=Number(lt);let _t="0";return rt<.03&&nt<100&&ct<.05?_t="5":rt<.06&&nt<160&&ct<.1?_t="4":rt<.1&&nt<250&&ct<.15?_t="3":rt<.15&&nt<400&&ct<.2?_t="2":_t="1",Number(_t)};{const dt=ot(W,J,Y),et=await this.getCaller(),{network:lt}=et,rt={egress:dt,ingress:dt},nt=JSON.stringify(lt)!==JSON.stringify(rt);if(await this.updateUserNetwork(this.options.userId,rt),nt){this.emitNotifyUpdateUsers();const{userId:ct,roomId:_t}=this.options;this.cwsIns.sendMessage({event:"networkQualityChange",data:{...rt,userId:ct,roomId:_t}},!1)}}}catch($){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe: setNetQuality is err.",$)}});ft(this,Zt,()=>{const $=async()=>{this.peerIns.connectionState==="connected"&&V(this,Lt).call(this)};this.getPeerStatsTimer=setInterval($,1*1e3)});K(this,"stopGetPeerStats",()=>clearInterval(this.getPeerStatsTimer))}}Bt=new WeakMap,Lt=new WeakMap,Zt=new WeakMap;class RoomCalls extends RoomPeer{constructor(){super();K(this,"sdk_service_version","1.0.3");ft(this,$t,!0);K(this,"setLocalStream",($,M)=>new Promise(async(R,N)=>{try{const{userId:e}=this.options;if(M?await this.changeLocalStream($):this.removeUserMediaStreamContext(e,$),$==="screenSharing_audio"||$==="screenSharing_video"){const U=this.getUserStream(e,$).getTracks();for(const L of U)L.onended=()=>this.stopPublish(["screenSharing_audio","screenSharing_video"])}const o=this.getUserStreams(e);this.cwsIns.emitNotify("onLocalStream",{code:200,data:o,desc:"local stream is change."}),R(o)}catch(e){N(e)}}));K(this,"addNotify",$=>this.cwsIns.addNotify($));K(this,"joinRoom",async $=>new Promise(async(M,R)=>{try{this.setOptions($),this.clearUsers(),this.clearUserStreams(),this.initPeer(),this.cwsIns.clearEvents(),await V(this,Ft).call(this),this.setRoomState("connect");const{roomId:N,userId:e,callType:o}=this.options;await this.cwsIns.sendMessage({event:"joinRoom",data:{roomId:N,user:{id:e,callAction:0},callType:o}}).then(async A=>{const{code:U=0,desc:L="服务器繁忙",data:F}=A;if(U!==200)return R(L);const{roomId:Z="",roomUsers:H=[]}=F;if(Z!==N)return R("加入的房间不匹配");V(this,$t)&&this.createSession(),await this.updateUsers(H),this.setRoomState("connected"),await this.emitNotifyUpdateUsers();const z=await this.getUsers();M(z)})}catch(N){console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe:error",N),R(`加入房间失败: ${N.message||N||"服务器繁忙"}`)}}));K(this,"quitRoom",async()=>new Promise(async $=>{const{roomId:M,userId:R}=this.options,N={roomId:M,user:{id:R}};this.cwsIns.sendMessage({event:"quitRoom",data:N}),this.stopGetPeerStats(),this.asyncQueue.clear(),this.clearUsers(),this.clearUserStreams(),this.cwsIns.clearEvents(),await new Promise(e=>setTimeout(()=>e(!0),300)),$(!0)}));K(this,"syncRoomInfo",async()=>new Promise(async($,M)=>{const{userId:R}=this.options,N=await this.getUser(R),{id:e=R,callAction:o=0}=N;await this.cwsIns.sendMessage({event:"syncRoomInfo",data:{user:{id:e,callAction:o}}}).then(async A=>{if(A.code!==200)return M(A.desc);const U=A.data.users;this.clearUsers(),await this.updateUsers(U),await this.updateUsertracks(N.id,N.tracks,!1),await this.subscribe();{const L=await this.getUsers();$(L)}}).catch(A=>M(A))}));K(this,"publish",async($,M=3)=>{V(this,$t)&&await this.connectionICE();const R=()=>new Promise(async(N,e)=>{try{$.includes("screenSharing_audio")&&!$.includes("screenSharing_video")&&($=[...$,"screenSharing_video"]);const o=await this.getCaller(),A=[];for(const Z of $){this.getUserStream(o.id,Z).getTracks().length===0&&await this.setLocalStream(Z,!0);{const G=this.getUserStream(o.id,Z),[W]=G.getTracks();if(!W)continue;const J=await this.addSender(Z,W);J&&A.push(J)}}const U=[...o.tracks,...A],L=await this.getCallAction(U),F=async()=>{this.options.debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->quickvo: surplus publish count is ${M}`),await this.cwsIns.sendMessage({event:"publish",data:{sdp:this.getSdp(),tracks:A,callAction:L}}).then(async Z=>{const{code:H=0,desc:z,data:G}=Z;if(H!==200){if(M>0)return await new Promise(J=>setTimeout(()=>J(!0),300)),M=M-1,F();throw this.options.debug&&console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: publish is error. count 0",{mediaTypes:$}),new Error(z)}const{remoteSdp:W}=G;await this.setRemoteDescription({type:"answer",sdp:W}),await this.connectionICE(),await this.updateUsertracks(o.id,U,!0),await V(this,Rt).call(this,L),V(this,$t)||this.cwsIns.sendMessage({event:"pubNotify",data:{roomId:"",user:{id:o.id,tracks:A}}});{await this.emitNotifyUpdateUsers();const J=await this.getCaller();N(J)}})};await F()}catch(o){e(`发布本地流失败: ${o.message}`)}});return this.asyncQueue.add(R,{key:`publish: ${$.join("-")}`,timeout:10*M*1e3})});K(this,"stopPublish",async($=[])=>{const M=()=>new Promise(async(R,N)=>{try{const e=await this.getCaller();$.length===0&&($=mediaType_keys);const o=e.tracks.filter(({mediaType:U})=>U&&$.includes(U)),A=async()=>{const U=await this.getCaller();await this.emitNotifyUpdateUsers(),R(U)};if(o.length===0)return A();await this.closeUserTracks(e.id,o,!0);{const U=await this.getCallAction(e.tracks);await V(this,Rt).call(this,U)}await this.createOffer(),await this.cwsIns.sendMessage({event:"closeTrack",data:{sdp:this.getSdp(),tracks:o}}).then(async U=>{const{remoteSdp:L}=U.data;await this.setRemoteDescription({type:"answer",sdp:L})}),A()}catch(e){N(e)}});return this.asyncQueue.add(M,{key:`stopPublish: ${$.join("-")}`})});K(this,"subscribe",async($=[],M=3)=>{V(this,$t)&&await this.connectionICE();const R=()=>new Promise(async(N,e)=>{try{this.prohibitNotify=!0;const o=await this.getUsers();let A=[];for(const Z of o){const{isSelf:H,tracks:z=[]}=Z;if(!H){const G=z.filter(({trackName:W,mid:J=""})=>J!==""&&($.includes(W)||$.length===0));G.length!==0&&A.push({...Z,tracks:G})}}const U=async()=>{this.prohibitNotify=!1;const Z=Array.from(A,({id:z})=>z),H=await this.getUsers(Z);await this.emitNotifyUpdateUsers(),N(H)};if(A.length===0)return U();const L=[];for(const Z of A){const{id:H,tracks:z}=Z,G=mt(z,["type","trackName"]),W={id:H,tracks:G};L.push(W)}const F=async()=>{this.options.debug&&console.info("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;",`------->quickvo: surplus subscribe count is ${M}`),await this.cwsIns.sendMessage({event:"subscribe",data:{users:L}}).then(async Z=>{const{code:H=0,data:z,desc:G}=Z;if(H!==200){if(M>0)return await new Promise(Y=>setTimeout(()=>Y(!0),300)),M=M-1,F();throw this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: subscribe is error. count 0",{trackNames:$}),new Error(G)}const{remoteSdp:W,users:J=[]}=z;this.onSubscribeUserTracks(J).then(()=>U()),await this.setRemoteDescription({type:"offer",sdp:W}),await this.renegotiate()})};await F()}catch(o){e(`订阅流失败: ${o.message}`)}});return this.asyncQueue.add(R,{timeout:30*M*1e3})});K(this,"stopSubscribe",async($=[])=>{const M=()=>new Promise(async(R,N)=>{try{const e=await this.getUsers(),o=[];for(const A of e){const{tracks:U=[]}=A;for(const L of U){const{type:F,mid:Z,trackName:H,mediaType:z,msid:G}=L;if(!(!z||!G)&&($.length===0||$.includes(H))){const W={type:F,mid:Z,trackName:G};o.push(W),await this.closeUserTracks(A.id,[L])}}}if(o.length===0)return R(!0);await this.createOffer(),await this.cwsIns.sendMessage({event:"closeTrack",data:{sdp:this.getSdp(),tracks:o}}).then(async A=>{const{remoteSdp:U}=A.data;await this.setRemoteDescription({type:"answer",sdp:U})}),await this.emitNotifyUpdateUsers(),R(!0)}catch(e){N(`停止订阅流: ${e.message}`)}});return this.asyncQueue.add(M,{key:"stopSubscribe"})});K(this,"inactiveTracks",async($,M)=>{const R=async()=>{const N=await this.getCaller();if(!N)return;const{tracks:e=[]}=N,o=[...e];for(let U of o){const{mediaType:L}=U;if(L&&$.includes(L)){U.enabled=M;const Z=this.getUserStream(N.id,L).getTracks();for(const H of Z)H.enabled=M}}const A=await this.getCallAction(o);await V(this,Rt).call(this,A),await this.emitNotifyUpdateUsers()};return this.asyncQueue.add(R,{key:"inactiveTracks"})});K(this,"debugger",()=>new Promise(async($,M)=>{await this.cwsIns.sendMessage({event:"debugger"},!1).then(async R=>{if(R.code!==200)return M(R.desc);$(!0)}).catch(R=>{M(R)})}));ft(this,Rt,async $=>new Promise(async(M,R)=>{const{roomId:N,userId:e}=this.options,o={roomId:N,user:{id:e,callAction:$}};await this.cwsIns.sendMessage({event:"updateCall",data:o}).then(async A=>{const{code:U=0}=A;if(U!==200)return R(A);await this.updateUserCallAction(e,$),M($)}).catch(A=>R(A))}));K(this,"createSession",async()=>(await this.initSender(),new Promise(async($,M)=>await this.cwsIns.sendMessage({event:"connectCF",data:{sdp:this.getSdp()}}).then(async R=>{const{code:N=0,desc:e,data:o}=R;if(N!==200)return M(e);const{remoteSdp:A}=o;await this.setRemoteDescription({type:"answer",sdp:A}),await this.connectionICE(),$(!0)}))));K(this,"renegotiate",async()=>new Promise(async($,M)=>{await this.createAnswer(),await this.cwsIns.sendMessage({event:"renegotiate",data:{sdp:this.getSdp()}}).then(async R=>{if(R.code!==200)return M("协商流错误");$(!0)}).catch(R=>{console.error("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe:error",R),M(`协商流错误: ${R.message||R}`)})}));ft(this,Ft,async()=>new Promise(async($,M)=>{try{this.setRoomState("checkAuth");const{appid:R}=this.options,{userId:N,sdkToken:e,roomId:o}=this.options,A={a:e,b:N,c:R,r:o,v:this.sdk_service_version},U=btoa(encodeURI(JSON.stringify(A)));await this.cwsIns.connect(U),$(!0)}catch(R){console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->Breathe:error",R),M(R)}}));this.setRoomState("ready")}}$t=new WeakMap,Rt=new WeakMap,Ft=new WeakMap;class Room extends RoomCalls{constructor(){super()}}class QuickVO extends Room{constructor($){super();ft(this,Tt,new Map);ft(this,jt,()=>{{const $=async M=>{const{qualities:R}=M.data;for(const N of R){const{userId:e,egress:o,ingress:A}=N;if(!this.checkUserInRoom(e))return;await this.updateUserNetwork(e,{egress:o,ingress:A})}await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onNetQuality",callback:$},!0)}{const $=async M=>{const R=M.data.user;await this.updateUsers([R]),await this.updateUsertracks(R.id,R.track,!1),await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onJoinRoom",callback:$},!0)}{const $=async M=>{await this.removeUsers([M.data.user.id]),await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onQuitRoom",callback:$},!0)}{const $=async M=>{await this.updateUsers([M.data.user]);{const R=M.data.user,{id:N,tracks:e=[]}=R;await this.updateUsertracks(N,e,!0)}if(this.options.newPublishAutoSubscribe){const R=this.getTrackNamesFormTracks(M.data.user.tracks);await this.subscribe(R)}else await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onPublish",callback:$},!0)}{const $=async M=>{const{id:R,tracks:N}=M.data.user;await this.closeUserTracks(R,N,!0),await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onCloseTrack",callback:$},!0)}{const $=async M=>{const{id:R,callAction:N}=M.data.user;if(!this.checkUserInRoom(R))return;const e=await this.getUser(R),{tracks:o=[]}=e,A=this.getUserStreams(R),U=this.getCallActionMap(N),L=[];for(const F of o){const{type:Z}=F,H=mediaType_keys[Z],z=U[H];if(Z===0){const{microphoneCamera_audio:W}=A,J=W.getTracks();for(const Y of J)Y.enabled=z}if(Z===1){const{microphoneCamera_video:W}=A,J=W.getTracks();for(const Y of J)Y.enabled=z}if(Z===2){const{screenSharing_video:W}=A,J=W.getTracks();for(const Y of J)Y.enabled=z}if(Z===3){const{screenSharing_audio:W}=A,J=W.getTracks();for(const Y of J)Y.enabled=z}const G={...F,enabled:z};L.push(G)}await this.updateUsertracks(R,L,!0),await this.updateUserCallAction(R,N),this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onUpdateCall",callback:$},!0)}{const $=async M=>{const{user:R}=M.data,{id:N,permissions:e=1}=R;e===1?await this.removeUsers([N]):e===3&&await this.updateUsers([R]),await this.emitNotifyUpdateUsers()};this.cwsIns.addNotify({event:"onUpdatePermissions",callback:$},!0)}this.cwsIns.addNotify({event:"onTokenExpired",callback:async $=>this.destroy()},!0),this.cwsIns.addNotify({event:"destroyRoom",callback:this.destroy},!0)});ft(this,Ht,()=>{this.cwsIns.onReconnectSuccess=async()=>{this.syncRoomInfo()}});ft(this,zt,async()=>{this.cwsIns.onReconnectStop=async()=>{this.destroy()}});K(this,"addRequestAnimationFrame",async($,M)=>{{const N=V(this,Tt).get($);N&&cancelAnimationFrame(N)}const R=(N=Date.now())=>{M(N);const e=requestAnimationFrame(R);V(this,Tt).set($,e)};R()});K(this,"clearRequestAnimationFrame",async($=[])=>{$.length===0&&($=[...V(this,Tt).keys()]);const M=[];for(const R of $){const N=V(this,Tt).get(R);N&&(cancelAnimationFrame(N),M.push(N))}return M});K(this,"destroy",async()=>{this.options.debug&&console.log("\x1B[38;2;0;151;255m%c%s\x1B[0m","color:#0097ff;","------->quickvo: 销毁SDK"),this.stopGetPeerStats(),this.asyncQueue.clear(),this.clearUsers(),this.clearUserStreams(),this.cwsIns.clearEvents(),this.cwsIns.emitNotify("onDestroy",{code:200,data:{},desc:"sdk is destroy."}),await this.cwsIns.close()});this.setOptions($),this.initCwsCall(),V(this,Ht).call(this),V(this,zt).call(this),V(this,jt).call(this)}}Tt=new WeakMap,jt=new WeakMap,Ht=new WeakMap,zt=new WeakMap,exports.QuickVO=QuickVO,exports.ignoreEvent=ignoreEvent,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});