@onyx-p/imlib-web 3.0.5 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.umd.js CHANGED
@@ -34,4 +34,4 @@ return function(){var t=e,r=t.lib,n=r.WordArray,o=r.Hasher,s=t.algo,i=n.create([
34
34
  * limitations under the License.
35
35
  *
36
36
  * SPDX-License-Identifier: Apache-2.0
37
- */var Pr=null;try{Pr=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function Lr(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function Dr(e){return!0===(e&&e.__isLong__)}function Ur(e){var t=Math.clz32(e&-e);return e?31-t:t}Lr.prototype.__isLong__,Object.defineProperty(Lr.prototype,"__isLong__",{value:!0}),Lr.isLong=Dr;var jr={},Br={};function Fr(e,t){var r,n,o;return t?(o=0<=(e>>>=0)&&e<256)&&(n=Br[e])?n:(r=Gr(e,0,!0),o&&(Br[e]=r),r):(o=-128<=(e|=0)&&e<128)&&(n=jr[e])?n:(r=Gr(e,e<0?-1:0,!1),o&&(jr[e]=r),r)}function xr(e,t){if(isNaN(e))return t?Zr:Jr;if(t){if(e<0)return Zr;if(e>=zr)return tn}else{if(e<=-$r)return rn;if(e+1>=$r)return en}return e<0?xr(-e,t).neg():Gr(e%Hr|0,e/Hr|0,t)}function Gr(e,t,r){return new Lr(e,t,r)}Lr.fromInt=Fr,Lr.fromNumber=xr,Lr.fromBits=Gr;var qr=Math.pow;function Vr(e,t,r){if(0===e.length)throw Error("empty string");if("number"==typeof t?(r=t,t=!1):t=!!t,"NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return t?Zr:Jr;if((r=r||10)<2||36<r)throw RangeError("radix");var n;if((n=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===n)return Vr(e.substring(1),t,r).neg();for(var o=xr(qr(r,8)),s=Jr,i=0;i<e.length;i+=8){var a=Math.min(8,e.length-i),c=parseInt(e.substring(i,i+a),r);if(a<8){var l=xr(qr(r,a));s=s.mul(l).add(xr(c))}else s=(s=s.mul(o)).add(xr(c))}return s.unsigned=t,s}function Kr(e,t){return"number"==typeof e?xr(e,t):"string"==typeof e?Vr(e,t):Gr(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}Lr.fromString=Vr,Lr.fromValue=Kr;var Hr=4294967296,zr=Hr*Hr,$r=zr/2,Wr=Fr(1<<24),Jr=Fr(0);Lr.ZERO=Jr;var Zr=Fr(0,!0);Lr.UZERO=Zr;var Xr=Fr(1);Lr.ONE=Xr;var Yr=Fr(1,!0);Lr.UONE=Yr;var Qr=Fr(-1);Lr.NEG_ONE=Qr;var en=Gr(-1,2147483647,!1);Lr.MAX_VALUE=en;var tn=Gr(-1,-1,!0);Lr.MAX_UNSIGNED_VALUE=tn;var rn=Gr(0,-2147483648,!1);Lr.MIN_VALUE=rn;var nn=Lr.prototype;nn.toInt=function(){return this.unsigned?this.low>>>0:this.low},nn.toNumber=function(){return this.unsigned?(this.high>>>0)*Hr+(this.low>>>0):this.high*Hr+(this.low>>>0)},nn.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(rn)){var t=xr(e),r=this.div(t),n=r.mul(t).sub(this);return r.toString(e)+n.toInt().toString(e)}return"-"+this.neg().toString(e)}for(var o=xr(qr(e,6),this.unsigned),s=this,i="";;){var a=s.div(o),c=(s.sub(a.mul(o)).toInt()>>>0).toString(e);if((s=a).isZero())return c+i;for(;c.length<6;)c="0"+c;i=""+c+i}},nn.getHighBits=function(){return this.high},nn.getHighBitsUnsigned=function(){return this.high>>>0},nn.getLowBits=function(){return this.low},nn.getLowBitsUnsigned=function(){return this.low>>>0},nn.getNumBitsAbs=function(){if(this.isNegative())return this.eq(rn)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<<t);t--);return 0!=this.high?t+33:t+1},nn.isZero=function(){return 0===this.high&&0===this.low},nn.eqz=nn.isZero,nn.isNegative=function(){return!this.unsigned&&this.high<0},nn.isPositive=function(){return this.unsigned||this.high>=0},nn.isOdd=function(){return!(1&~this.low)},nn.isEven=function(){return!(1&this.low)},nn.equals=function(e){return Dr(e)||(e=Kr(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},nn.eq=nn.equals,nn.notEquals=function(e){return!this.eq(e)},nn.neq=nn.notEquals,nn.ne=nn.notEquals,nn.lessThan=function(e){return this.comp(e)<0},nn.lt=nn.lessThan,nn.lessThanOrEqual=function(e){return this.comp(e)<=0},nn.lte=nn.lessThanOrEqual,nn.le=nn.lessThanOrEqual,nn.greaterThan=function(e){return this.comp(e)>0},nn.gt=nn.greaterThan,nn.greaterThanOrEqual=function(e){return this.comp(e)>=0},nn.gte=nn.greaterThanOrEqual,nn.ge=nn.greaterThanOrEqual,nn.compare=function(e){if(Dr(e)||(e=Kr(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},nn.comp=nn.compare,nn.negate=function(){return!this.unsigned&&this.eq(rn)?rn:this.not().add(Xr)},nn.neg=nn.negate,nn.add=function(e){Dr(e)||(e=Kr(e));var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,s=e.high>>>16,i=65535&e.high,a=e.low>>>16,c=0,l=0,u=0,d=0;return u+=(d+=o+(65535&e.low))>>>16,l+=(u+=n+a)>>>16,c+=(l+=r+i)>>>16,c+=t+s,Gr((u&=65535)<<16|(d&=65535),(c&=65535)<<16|(l&=65535),this.unsigned)},nn.subtract=function(e){return Dr(e)||(e=Kr(e)),this.add(e.neg())},nn.sub=nn.subtract,nn.multiply=function(e){if(this.isZero())return this;if(Dr(e)||(e=Kr(e)),Pr)return Gr(Pr.mul(this.low,this.high,e.low,e.high),Pr.get_high(),this.unsigned);if(e.isZero())return this.unsigned?Zr:Jr;if(this.eq(rn))return e.isOdd()?rn:Jr;if(e.eq(rn))return this.isOdd()?rn:Jr;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Wr)&&e.lt(Wr))return xr(this.toNumber()*e.toNumber(),this.unsigned);var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,s=e.high>>>16,i=65535&e.high,a=e.low>>>16,c=65535&e.low,l=0,u=0,d=0,g=0;return d+=(g+=o*c)>>>16,u+=(d+=n*c)>>>16,d&=65535,u+=(d+=o*a)>>>16,l+=(u+=r*c)>>>16,u&=65535,l+=(u+=n*a)>>>16,u&=65535,l+=(u+=o*i)>>>16,l+=t*c+r*a+n*i+o*s,Gr((d&=65535)<<16|(g&=65535),(l&=65535)<<16|(u&=65535),this.unsigned)},nn.mul=nn.multiply,nn.divide=function(e){if(Dr(e)||(e=Kr(e)),e.isZero())throw Error("division by zero");var t,r,n;if(Pr)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?Gr((this.unsigned?Pr.div_u:Pr.div_s)(this.low,this.high,e.low,e.high),Pr.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?Zr:Jr;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Zr;if(e.gt(this.shru(1)))return Yr;n=Zr}else{if(this.eq(rn))return e.eq(Xr)||e.eq(Qr)?rn:e.eq(rn)?Xr:(t=this.shr(1).div(e).shl(1)).eq(Jr)?e.isNegative()?Xr:Qr:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(rn))return this.unsigned?Zr:Jr;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=Jr}for(r=this;r.gte(e);){t=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var o=Math.ceil(Math.log(t)/Math.LN2),s=o<=48?1:qr(2,o-48),i=xr(t),a=i.mul(e);a.isNegative()||a.gt(r);)a=(i=xr(t-=s,this.unsigned)).mul(e);i.isZero()&&(i=Xr),n=n.add(i),r=r.sub(a)}return n},nn.div=nn.divide,nn.modulo=function(e){return Dr(e)||(e=Kr(e)),Pr?Gr((this.unsigned?Pr.rem_u:Pr.rem_s)(this.low,this.high,e.low,e.high),Pr.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},nn.mod=nn.modulo,nn.rem=nn.modulo,nn.not=function(){return Gr(~this.low,~this.high,this.unsigned)},nn.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},nn.clz=nn.countLeadingZeros,nn.countTrailingZeros=function(){return this.low?Ur(this.low):Ur(this.high)+32},nn.ctz=nn.countTrailingZeros,nn.and=function(e){return Dr(e)||(e=Kr(e)),Gr(this.low&e.low,this.high&e.high,this.unsigned)},nn.or=function(e){return Dr(e)||(e=Kr(e)),Gr(this.low|e.low,this.high|e.high,this.unsigned)},nn.xor=function(e){return Dr(e)||(e=Kr(e)),Gr(this.low^e.low,this.high^e.high,this.unsigned)},nn.shiftLeft=function(e){return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gr(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Gr(0,this.low<<e-32,this.unsigned)},nn.shl=nn.shiftLeft,nn.shiftRight=function(e){return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gr(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Gr(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},nn.shr=nn.shiftRight,nn.shiftRightUnsigned=function(e){return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gr(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):Gr(32===e?this.high:this.high>>>e-32,0,this.unsigned)},nn.shru=nn.shiftRightUnsigned,nn.shr_u=nn.shiftRightUnsigned,nn.rotateLeft=function(e){var t;return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?Gr(this.high,this.low,this.unsigned):e<32?(t=32-e,Gr(this.low<<e|this.high>>>t,this.high<<e|this.low>>>t,this.unsigned)):(t=32-(e-=32),Gr(this.high<<e|this.low>>>t,this.low<<e|this.high>>>t,this.unsigned))},nn.rotl=nn.rotateLeft,nn.rotateRight=function(e){var t;return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?Gr(this.high,this.low,this.unsigned):e<32?(t=32-e,Gr(this.high<<t|this.low>>>e,this.low<<t|this.high>>>e,this.unsigned)):(t=32-(e-=32),Gr(this.low<<t|this.high>>>e,this.high<<t|this.low>>>e,this.unsigned))},nn.rotr=nn.rotateRight,nn.toSigned=function(){return this.unsigned?Gr(this.low,this.high,!1):this},nn.toUnsigned=function(){return this.unsigned?this:Gr(this.low,this.high,!0)},nn.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},nn.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},nn.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},Lr.fromBytes=function(e,t,r){return r?Lr.fromBytesLE(e,t):Lr.fromBytesBE(e,t)},Lr.fromBytesLE=function(e,t){return new Lr(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},Lr.fromBytesBE=function(e,t){return new Lr(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};var on=new class{_user;constructor(){this._user=this.createDefaultUser()}get uid(){return this.user.uid}get isActive(){return this.user.active}get user(){return this._user}setLogged(e){this._user={active:!0,uid:Lr.isLong(e.uid)?e.uid.toString():e.uid,deviceId:Lr.isLong(e.deviceId)?e.deviceId.toString():e.deviceId,sessionId:Lr.isLong(e.sessionId)?e.sessionId.toString():e.sessionId}}logOut(){this._user=this.createDefaultUser()}createDefaultUser(){return{active:!1,uid:"0",deviceId:"0",sessionId:"0",token:""}}};const sn={webSocketTimeout:5e3,signalTimeout:3e4,pingInterval:15e3,pingTimeout:5e3,pingFailedTimes:2,reconnectIntervalMin:250,reconnectIntervalMax:64e3,reconnectRaisingBase:2};const an=t=>e.ConnectionStatus[t],cn=e=>{const t=new kr;return t.writeIn8(67),t.writeIn8(255),t.writeInt32(e.length+7),t.writeArr(Array.from(e)),t.writeIn8(0),new Int8Array(t.getBytesArray()).buffer},ln=e=>{const t=new Mr(new Uint8Array(e));t.readInt8(),t.readInt8();const r=t.readInt32(),n=t.readArr(r-7);if(t.readInt8(),e.byteLength!==r)throw new Error("packet resolve failed");return n};var un=new class{url="";watcher;options;socket;status=e.ConnectionStatus.DISCONNECTED;autoReconnect=!1;isConnected=!1;responseCallbacks=new Map;failedCount=0;reconnectTimer;connectResolve;pendingMessages=[];constructor(e){this.options=Object.assign(sn,e)}setServerInfo(e){this.url=e}setCallback(e){this.watcher=e}async connect(){return this.autoReconnect=!0,new Promise(t=>{this.connectResolve=t,this.open().then(r=>{t(r),r===e.ErrorCode.SUCCESS?(this.isConnected=!0,this.onConnect()):this.onDisconnect(r===e.ErrorCode.TIMEOUT?e.ConnectionStatus.NETWORK_UNAVAILABLE:e.ConnectionStatus.WEBSOCKET_UNAVAILABLE)})})}async request(t,r,n,o=this.options.signalTimeout){const{code:s,data:i}=await this.sendRawData(t,nt(r)&&nt(n.encoder)?n.encoder.encode(r).finish():new Uint8Array,o);if(0!==s)return{code:s,msg:"time out",data:null};if(!nt(i)||!nt(n.decoder))return{code:e.ErrorCode.SUCCESS,msg:""};const a=n.decoder?.decode(i);return a.errorCode?{code:a.errorCode,msg:a.errorMessage,data:null}:{data:a,code:e.ErrorCode.SUCCESS,msg:""}}async send(t,r,n,o=this.options.signalTimeout){const s=await this.request(t,r,n,o);return s.code!==e.ErrorCode.SUCCESS?{code:Nr(s.code),msg:s.msg,data:null}:{data:s.data,code:e.ErrorCode.SUCCESS,msg:s.msg}}async sendRawData(t,r,n=this.options.signalTimeout){if(!this.socket)return{code:e.ErrorCode.RC_NET_CHANNEL_INVALID};const o=this.generateMessageSeq();this.isConnected?this.doSendRawData(t,r,o):this.pendingMessages.push({cmdId:t,body:r,messageSeq:o});const s=await new Promise(e=>{this.responseCallbacks.set(o,e),setTimeout(()=>{this.responseCallbacks.get(o)&&this.responseCallbacks.delete(o),e(null)},n)});return s?{code:0,data:s}:(Yi.warn(`send timeout -> cmd: 0x${t.toString(16)}, messageSeq: ${o}, timeout: ${n}`),{code:e.ErrorCode.TIMEOUT})}doSendRawData(e,t,r){const n={cmdId:e,messageSeq:Lr.fromNumber(r),deviceId:Lr.fromString(on.user.deviceId),sessionId:Lr.fromString(on.user.sessionId),uid:Lr.fromString(on.user.uid),protocolVersion:0,destId:"",body:t,deviceCode:Tt.getDeviceCode()??"",deviceType:Tt.getDeviceType()};e!==At.Heartbean&&Yi.info(`websocket send -> cmd: 0x${e.toString(16)}, messageSeq: ${r}`),this.socket?.send(cn(Sr.encode(n).finish()))}close(){this.autoReconnect=!1,this.doClose(),this.setStatus(e.ConnectionStatus.DISCONNECTED),this.connectResolve?.(e.ErrorCode.RC_SOCKET_DISCONNECTED)}async open(){const t=this.url;Yi.info(`connect start -> ${t}`),this.setStatus(e.ConnectionStatus.CONNECTING);const r=function(e,t){const r=new WebSocket(e,t);return r.binaryType="arraybuffer",{onClose(e){r.onclose=t=>{const{code:r,reason:n}=t;e?.(r,n)}},onError(e){r.onerror=t=>{e(t)}},onMessage(e){r.onmessage=t=>{e(t.data)}},onOpen(e){r.onopen=e},send(e){r.send(e)},close(e,t){r.close(e,t)}}}(this.url);this.socket=r;return await new Promise(n=>{r.onMessage(e=>{"ArrayBuffer"===rt(e)?this.onReceiveMessage(e):Yi.error("Socket received invalid data:",e)}),r.onClose((t,r)=>{Yi.warn("websocket closed -> code:",t,"reason:",r),this.onDisconnect(e.ConnectionStatus.CONNECTION_CLOSED),n(e.ErrorCode.RC_SOCKET_DISCONNECTED)}),r.onError(t=>{Yi.warn("websocket error -> ",t),this.onDisconnect(e.ConnectionStatus.WEBSOCKET_ERROR),n(e.ErrorCode.RC_SOCKET_NOT_CREATED)}),r.onOpen(()=>{Yi.info("websocket open -> ",t),n(e.ErrorCode.SUCCESS)}),setTimeout(()=>{n(e.ErrorCode.TIMEOUT)},this.options.webSocketTimeout)})}async checkAlive(){if(!this.socket||!this.isConnected)return;Yi.debug("send ping ->");const t={pingId:Lr.ZERO,disconnectDelay:Lr.ZERO},{code:r}=await this.send(At.Heartbean,t,{encoder:Rr},this.options.pingTimeout);r===e.ErrorCode.SUCCESS?(Yi.debug("recv pong <-"),this.failedCount=0,setTimeout(()=>this.checkAlive(),this.options.pingInterval)):(this.failedCount+=1,Yi.warn(`ping failed count: ${this.failedCount}, code: ${r}`),this.failedCount>=this.options.pingFailedTimes?(this.failedCount=0,Yi.warn("ping timeout, close current websocket to reconnect!"),this.onDisconnect(e.ConnectionStatus.NETWORK_UNAVAILABLE)):this.checkAlive())}onReceiveMessage(t){let r;try{const e=ln(t);r=Er.decode(e)}catch(t){return Yi.error("unpack payload error -> ",t),void this.onDisconnect(e.ConnectionStatus.DISCONNECT_BY_SERVER)}if(r.code)return Yi.error("on received message error -> ",r.code),void this.onDisconnect(e.ConnectionStatus.DISCONNECT_BY_SERVER);if(r.cmdId===At.SessionKilledPush)return void this.onDisconnect(e.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT);if(r.cmdId===At.SignOutPish||r.cmdId===At.SignOutPish2)return Yi.warn("on received signoutpush -> ",r.cmdId),void this.onDisconnect(e.ConnectionStatus.DISCONNECT_BY_SERVER);if(r.cmdId===At.UserFrozenToLogin||r.cmdId===At.UserFrozenToLogin2)return void this.onDisconnect(e.ConnectionStatus.BLOCKED);const n=Lr.isLong(r.messageSeq)?r.messageSeq.toNumber():0,o=n>0?this.responseCallbacks.get(n):null;nt(o)?(r.cmdId!==At.HeartbeanResp&&Yi.info(`websocket recv ack -> messageSeq: ${n}`),o(r.body),this.responseCallbacks.delete(n)):(Yi.info(`websocket recv -> cmd: 0x${r.cmdId.toString(16)}`),this.watcher?.message(r.cmdId,r.body))}async try2Reconnect(){this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},5e3)}async onConnect(){for(this.setStatus(e.ConnectionStatus.CONNECTED),this.checkAlive(),nt(this.reconnectTimer)&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null);this.pendingMessages.length>0;){let{cmdId:e,body:t,messageSeq:r}=this.pendingMessages.shift();this.doSendRawData(e,t,r),await new Promise(e=>setTimeout(e,200))}}onDisconnect(e){nt(this.socket)&&(this.doClose(),this.isConnectionAvailable()&&(this.setStatus(e),this.autoReconnect&&this.isConnectionAvailable()&&this.try2Reconnect()))}doClose(){if(nt(this.socket)){this.pendingMessages.length=0;const e=this.socket;this.socket=null,e.onClose(null),e.close()}nt(this.reconnectTimer)&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.isConnected=!1;for(const e of this.responseCallbacks.values())e(null);this.responseCallbacks.clear()}isConnectionAvailable(){return this.status!==e.ConnectionStatus.DISCONNECTED&&this.status!==e.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT&&this.status!==e.ConnectionStatus.BLOCKED&&this.status!==e.ConnectionStatus.DISCONNECT_BY_SERVER}setStatus(e){Yi.info(`socketServer is changing status from ${an(this.status)} to ${an(e)}`),this.status=e,this.watcher?.status(e)}idCount=0;generateMessageSeq(){return++this.idCount}};const dn=br.Reader,gn=br.Writer,pn=br.util,fn=br.roots.default||(br.roots.default={}),hn=fn.SendPrivateChatMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(26).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(34).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(40).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(48).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(58).string(e.mediaAttribute),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.SendPrivateChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgPreContent=e.string();break;case 4:n.msgPostContent=e.string();break;case 5:n.mediaFlag=e.bool();break;case 6:n.mediaConstructor=e.int32();break;case 7:n.mediaAttribute=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendPrivateChatMessageReq"},e})(),yn=fn.SendPrivateChatMessageResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgSendTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(24).int64(e.localId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(32).int64(e.msgId),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(40).int64(e.msgSendTime),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.SendPrivateChatMessageResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.localId=e.int64();break;case 4:n.msgId=e.int64();break;case 5:n.msgSendTime=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendPrivateChatMessageResp"},e})(),mn=fn.DeletePrivateChatDialogReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DeletePrivateChatDialogReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.destId=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeletePrivateChatDialogReq"},e})(),vn=fn.GetNewMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.offset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.rows=0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.offset&&Object.hasOwnProperty.call(e,"offset")&&t.uint32(8).int64(e.offset),null!=e.rows&&Object.hasOwnProperty.call(e,"rows")&&t.uint32(16).int32(e.rows),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetNewMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.offset=e.int64();break;case 2:n.rows=e.int32();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetNewMessageReq"},e})(),bn=fn.GetNewMessageResp=(()=>{function e(e){if(this.msg={},this.reference={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.offset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.seqno=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msg=pn.emptyObject,e.prototype.reference=pn.emptyObject,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.offset&&Object.hasOwnProperty.call(e,"offset")&&t.uint32(24).int64(e.offset),null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(32).int64(e.seqno),null!=e.msg&&Object.hasOwnProperty.call(e,"msg"))for(let r=Object.keys(e.msg),n=0;n<r.length;++n)t.uint32(42).fork().uint32(10).string(r[n]),fn.DialogMessageList.encode(e.msg[r[n]],t.uint32(18).fork()).ldelim().ldelim();if(null!=e.reference&&Object.hasOwnProperty.call(e,"reference"))for(let r=Object.keys(e.reference),n=0;n<r.length;++n)t.uint32(50).fork().uint32(10).string(r[n]),fn.ReferenceDialogMessage.encode(e.reference[r[n]],t.uint32(18).fork()).ldelim().ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetNewMessageResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:s.offset=e.int64();break;case 4:s.seqno=e.int64();break;case 5:{s.msg===pn.emptyObject&&(s.msg={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.DialogMessageList.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.msg[r]=n;break}case 6:{s.reference===pn.emptyObject&&(s.reference={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.ReferenceDialogMessage.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.reference[r]=n;break}default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetNewMessageResp"},e})();fn.DialogMessageList=(()=>{function e(e){if(this.dialogMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.dialogMessage=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.dialogMessage&&e.dialogMessage.length)for(let r=0;r<e.dialogMessage.length;++r)fn.DialogMessage.encode(e.dialogMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DialogMessageList;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.dialogMessage&&n.dialogMessage.length||(n.dialogMessage=[]),n.dialogMessage.push(fn.DialogMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DialogMessageList"},e})(),fn.DialogMessage=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgStatus=0,e.prototype.srcId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.isOut=!1,e.prototype.senderCategory=0,e.prototype.msgCategory=0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.msgSendTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.burnAfterReadingFlag=!1,e.prototype.atFlag=!1,e.prototype.replyFlag=!1,e.prototype.referenceFlag=!1,e.prototype.msgIdReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.uploadFlag=!1,e.prototype.burnAfterReadingTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.sharingGroupFlag=!1,e.prototype.seqno=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.replyMarkup="",e.prototype.extra="",e.prototype.msgArrival=!1,e.prototype.msgRead=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(8).int64(e.msgId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgStatus&&Object.hasOwnProperty.call(e,"msgStatus")&&t.uint32(24).int32(e.msgStatus),null!=e.srcId&&Object.hasOwnProperty.call(e,"srcId")&&t.uint32(32).int64(e.srcId),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(40).int64(e.destId),null!=e.isOut&&Object.hasOwnProperty.call(e,"isOut")&&t.uint32(48).bool(e.isOut),null!=e.senderCategory&&Object.hasOwnProperty.call(e,"senderCategory")&&t.uint32(56).int32(e.senderCategory),null!=e.msgCategory&&Object.hasOwnProperty.call(e,"msgCategory")&&t.uint32(64).int32(e.msgCategory),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(74).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(82).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(88).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(96).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(106).string(e.mediaAttribute),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(112).int64(e.msgSendTime),null!=e.burnAfterReadingFlag&&Object.hasOwnProperty.call(e,"burnAfterReadingFlag")&&t.uint32(120).bool(e.burnAfterReadingFlag),null!=e.atFlag&&Object.hasOwnProperty.call(e,"atFlag")&&t.uint32(128).bool(e.atFlag),null!=e.replyFlag&&Object.hasOwnProperty.call(e,"replyFlag")&&t.uint32(136).bool(e.replyFlag),null!=e.referenceFlag&&Object.hasOwnProperty.call(e,"referenceFlag")&&t.uint32(144).bool(e.referenceFlag),null!=e.msgIdReferenced&&Object.hasOwnProperty.call(e,"msgIdReferenced")&&t.uint32(152).int64(e.msgIdReferenced),null!=e.uploadFlag&&Object.hasOwnProperty.call(e,"uploadFlag")&&t.uint32(160).bool(e.uploadFlag),null!=e.burnAfterReadingTime&&Object.hasOwnProperty.call(e,"burnAfterReadingTime")&&t.uint32(168).int64(e.burnAfterReadingTime),null!=e.sharingGroupFlag&&Object.hasOwnProperty.call(e,"sharingGroupFlag")&&t.uint32(176).bool(e.sharingGroupFlag),null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(184).int64(e.seqno),null!=e.replyMarkup&&Object.hasOwnProperty.call(e,"replyMarkup")&&t.uint32(194).string(e.replyMarkup),null!=e.extra&&Object.hasOwnProperty.call(e,"extra")&&t.uint32(202).string(e.extra),null!=e.msgArrival&&Object.hasOwnProperty.call(e,"msgArrival")&&t.uint32(208).bool(e.msgArrival),null!=e.msgRead&&Object.hasOwnProperty.call(e,"msgRead")&&t.uint32(216).bool(e.msgRead),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DialogMessage;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.msgId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgStatus=e.int32();break;case 4:n.srcId=e.int64();break;case 5:n.destId=e.int64();break;case 6:n.isOut=e.bool();break;case 7:n.senderCategory=e.int32();break;case 8:n.msgCategory=e.int32();break;case 9:n.msgPreContent=e.string();break;case 10:n.msgPostContent=e.string();break;case 11:n.mediaFlag=e.bool();break;case 12:n.mediaConstructor=e.int32();break;case 13:n.mediaAttribute=e.string();break;case 14:n.msgSendTime=e.int64();break;case 15:n.burnAfterReadingFlag=e.bool();break;case 16:n.atFlag=e.bool();break;case 17:n.replyFlag=e.bool();break;case 18:n.referenceFlag=e.bool();break;case 19:n.msgIdReferenced=e.int64();break;case 20:n.uploadFlag=e.bool();break;case 21:n.burnAfterReadingTime=e.int64();break;case 22:n.sharingGroupFlag=e.bool();break;case 23:n.seqno=e.int64();break;case 24:n.replyMarkup=e.string();break;case 25:n.extra=e.string();break;case 26:n.msgArrival=e.bool();break;case 27:n.msgRead=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DialogMessage"},e})(),fn.ReferenceDialogMessage=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.srcId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.srcName="",e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.destName="",e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.msgSendTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(8).int64(e.msgId),null!=e.srcId&&Object.hasOwnProperty.call(e,"srcId")&&t.uint32(16).int64(e.srcId),null!=e.srcName&&Object.hasOwnProperty.call(e,"srcName")&&t.uint32(26).string(e.srcName),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(32).int64(e.destId),null!=e.destName&&Object.hasOwnProperty.call(e,"destName")&&t.uint32(42).string(e.destName),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(50).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(58).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(64).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(72).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(82).string(e.mediaAttribute),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(88).int64(e.msgSendTime),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.ReferenceDialogMessage;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.msgId=e.int64();break;case 2:n.srcId=e.int64();break;case 3:n.srcName=e.string();break;case 4:n.destId=e.int64();break;case 5:n.destName=e.string();break;case 6:n.msgPreContent=e.string();break;case 7:n.msgPostContent=e.string();break;case 8:n.mediaFlag=e.bool();break;case 9:n.mediaConstructor=e.int32();break;case 10:n.mediaAttribute=e.string();break;case 11:n.msgSendTime=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReferenceDialogMessage"},e})();const Cn=fn.UpdatePrivateChatDialogStickyConfigReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.stickyFlag=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.stickyFlag&&Object.hasOwnProperty.call(e,"stickyFlag")&&t.uint32(16).bool(e.stickyFlag),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.UpdatePrivateChatDialogStickyConfigReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.stickyFlag=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/UpdatePrivateChatDialogStickyConfigReq"},e})(),wn=fn.UpdatePrivateChatDialogMuteConfigReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.muteFlag=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.muteFlag&&Object.hasOwnProperty.call(e,"muteFlag")&&t.uint32(16).bool(e.muteFlag),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.UpdatePrivateChatDialogMuteConfigReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.muteFlag=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/UpdatePrivateChatDialogMuteConfigReq"},e})(),On=fn.DeleteChatMessageReq=(()=>{function e(e){if(this.msgIdList=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgIdList=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),null!=e.msgIdList&&e.msgIdList.length){t.uint32(26).fork();for(let r=0;r<e.msgIdList.length;++r)t.int64(e.msgIdList[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DeleteChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.msgId=e.int64();break;case 3:if(n.msgIdList&&n.msgIdList.length||(n.msgIdList=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.msgIdList.push(e.int64())}else n.msgIdList.push(e.int64());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeleteChatMessageReq"},e})();fn.DeletePrivateChatHistoryReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DeletePrivateChatHistoryReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.msgId=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeletePrivateChatHistoryReq"},e})();const In=fn.CleanHistoryMessageReq=(()=>{function e(e){if(this.msgIdList=[],this.destIdList=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId="",e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgIdList=pn.emptyArray,e.prototype.destIdList=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(10).string(e.destId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),null!=e.msgIdList&&e.msgIdList.length){t.uint32(26).fork();for(let r=0;r<e.msgIdList.length;++r)t.int64(e.msgIdList[r]);t.ldelim()}if(null!=e.destIdList&&e.destIdList.length)for(let r=0;r<e.destIdList.length;++r)t.uint32(34).string(e.destIdList[r]);return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.CleanHistoryMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.string();break;case 2:n.msgId=e.int64();break;case 3:if(n.msgIdList&&n.msgIdList.length||(n.msgIdList=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.msgIdList.push(e.int64())}else n.msgIdList.push(e.int64());break;case 4:n.destIdList&&n.destIdList.length||(n.destIdList=[]),n.destIdList.push(e.string());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/CleanHistoryMessageReq"},e})(),Sn=fn.GetBriefDialogListReq=(()=>{function e(e){if(this.destId=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&e.destId.length){t.uint32(10).fork();for(let r=0;r<e.destId.length;++r)t.int64(e.destId[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetBriefDialogListReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)if(n.destId&&n.destId.length||(n.destId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.destId.push(e.int64())}else n.destId.push(e.int64());else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetBriefDialogListReq"},e})(),En=fn.GetBriefDialogListResp=(()=>{function e(e){if(this.notExistDestId=[],this.briefDialog={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.notExistDestId=pn.emptyArray,e.prototype.seqno=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.briefDialog=pn.emptyObject,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.notExistDestId&&e.notExistDestId.length){t.uint32(26).fork();for(let r=0;r<e.notExistDestId.length;++r)t.int64(e.notExistDestId[r]);t.ldelim()}if(null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(32).int64(e.seqno),null!=e.briefDialog&&Object.hasOwnProperty.call(e,"briefDialog"))for(let r=Object.keys(e.briefDialog),n=0;n<r.length;++n)t.uint32(42).fork().uint32(10).string(r[n]),fn.BriefDialog.encode(e.briefDialog[r[n]],t.uint32(18).fork()).ldelim().ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetBriefDialogListResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:if(s.notExistDestId&&s.notExistDestId.length||(s.notExistDestId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)s.notExistDestId.push(e.int64())}else s.notExistDestId.push(e.int64());break;case 4:s.seqno=e.int64();break;case 5:{s.briefDialog===pn.emptyObject&&(s.briefDialog={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.BriefDialog.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.briefDialog[r]=n;break}default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetBriefDialogListResp"},e})();fn.BriefDialog=(()=>{function e(e){if(this.groupMemberSmallAvatarUrl=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.dialogTitle="",e.prototype.smallAvatarUrl="",e.prototype.backgroundImage="",e.prototype.stickyFlag=!1,e.prototype.muteFlag=!1,e.prototype.blockFlag=!1,e.prototype.burnAfterReadingFlag=!1,e.prototype.takeScreenshotFlag=!1,e.prototype.groupFlag=!1,e.prototype.totalMemberNumber=0,e.prototype.groupMemberSmallAvatarUrl=pn.emptyArray,e.prototype.burnAfterReadingTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.dialogMenuContent="",e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.dialogTitle&&Object.hasOwnProperty.call(e,"dialogTitle")&&t.uint32(18).string(e.dialogTitle),null!=e.smallAvatarUrl&&Object.hasOwnProperty.call(e,"smallAvatarUrl")&&t.uint32(26).string(e.smallAvatarUrl),null!=e.backgroundImage&&Object.hasOwnProperty.call(e,"backgroundImage")&&t.uint32(34).string(e.backgroundImage),null!=e.stickyFlag&&Object.hasOwnProperty.call(e,"stickyFlag")&&t.uint32(40).bool(e.stickyFlag),null!=e.muteFlag&&Object.hasOwnProperty.call(e,"muteFlag")&&t.uint32(48).bool(e.muteFlag),null!=e.blockFlag&&Object.hasOwnProperty.call(e,"blockFlag")&&t.uint32(56).bool(e.blockFlag),null!=e.burnAfterReadingFlag&&Object.hasOwnProperty.call(e,"burnAfterReadingFlag")&&t.uint32(64).bool(e.burnAfterReadingFlag),null!=e.takeScreenshotFlag&&Object.hasOwnProperty.call(e,"takeScreenshotFlag")&&t.uint32(72).bool(e.takeScreenshotFlag),null!=e.groupFlag&&Object.hasOwnProperty.call(e,"groupFlag")&&t.uint32(80).bool(e.groupFlag),null!=e.totalMemberNumber&&Object.hasOwnProperty.call(e,"totalMemberNumber")&&t.uint32(88).int32(e.totalMemberNumber),null!=e.groupMemberSmallAvatarUrl&&e.groupMemberSmallAvatarUrl.length)for(let r=0;r<e.groupMemberSmallAvatarUrl.length;++r)t.uint32(98).string(e.groupMemberSmallAvatarUrl[r]);return null!=e.burnAfterReadingTime&&Object.hasOwnProperty.call(e,"burnAfterReadingTime")&&t.uint32(104).int64(e.burnAfterReadingTime),null!=e.dialogMenuContent&&Object.hasOwnProperty.call(e,"dialogMenuContent")&&t.uint32(114).string(e.dialogMenuContent),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.BriefDialog;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.dialogTitle=e.string();break;case 3:n.smallAvatarUrl=e.string();break;case 4:n.backgroundImage=e.string();break;case 5:n.stickyFlag=e.bool();break;case 6:n.muteFlag=e.bool();break;case 7:n.blockFlag=e.bool();break;case 8:n.burnAfterReadingFlag=e.bool();break;case 9:n.takeScreenshotFlag=e.bool();break;case 10:n.groupFlag=e.bool();break;case 11:n.totalMemberNumber=e.int32();break;case 12:n.groupMemberSmallAvatarUrl&&n.groupMemberSmallAvatarUrl.length||(n.groupMemberSmallAvatarUrl=[]),n.groupMemberSmallAvatarUrl.push(e.string());break;case 13:n.burnAfterReadingTime=e.int64();break;case 14:n.dialogMenuContent=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/BriefDialog"},e})();const Rn=fn.GetDialogKeyReq=(()=>{function e(e){if(this.destId=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.emptyArray,e.prototype.clientSign="",e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&e.destId.length){t.uint32(10).fork();for(let r=0;r<e.destId.length;++r)t.int64(e.destId[r]);t.ldelim()}return null!=e.clientSign&&Object.hasOwnProperty.call(e,"clientSign")&&t.uint32(18).string(e.clientSign),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetDialogKeyReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:if(n.destId&&n.destId.length||(n.destId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.destId.push(e.int64())}else n.destId.push(e.int64());break;case 2:n.clientSign=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetDialogKeyReq"},e})(),Tn=fn.GetDialogKeyResp=(()=>{function e(e){if(this.retryUid=[],this.entry={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.dialogKeyVersion=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.retryUid=pn.emptyArray,e.prototype.entry=pn.emptyObject,e.prototype.serverSign="",e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.dialogKeyVersion&&Object.hasOwnProperty.call(e,"dialogKeyVersion")&&t.uint32(24).int64(e.dialogKeyVersion),null!=e.retryUid&&e.retryUid.length){t.uint32(34).fork();for(let r=0;r<e.retryUid.length;++r)t.int64(e.retryUid[r]);t.ldelim()}if(null!=e.entry&&Object.hasOwnProperty.call(e,"entry"))for(let r=Object.keys(e.entry),n=0;n<r.length;++n)t.uint32(42).fork().uint32(10).string(r[n]),fn.AesKeyAndIV.encode(e.entry[r[n]],t.uint32(18).fork()).ldelim().ldelim();return null!=e.serverSign&&Object.hasOwnProperty.call(e,"serverSign")&&t.uint32(50).string(e.serverSign),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetDialogKeyResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:s.dialogKeyVersion=e.int64();break;case 4:if(s.retryUid&&s.retryUid.length||(s.retryUid=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)s.retryUid.push(e.int64())}else s.retryUid.push(e.int64());break;case 5:{s.entry===pn.emptyObject&&(s.entry={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.AesKeyAndIV.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.entry[r]=n;break}case 6:s.serverSign=e.string();break;default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetDialogKeyResp"},e})();fn.AesKeyAndIV=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.aesKey="",e.prototype.aesIV="",e.encode=function(e,t){return t||(t=gn.create()),null!=e.aesKey&&Object.hasOwnProperty.call(e,"aesKey")&&t.uint32(10).string(e.aesKey),null!=e.aesIV&&Object.hasOwnProperty.call(e,"aesIV")&&t.uint32(18).string(e.aesIV),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.AesKeyAndIV;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.aesKey=e.string();break;case 2:n.aesIV=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/AesKeyAndIV"},e})();const An=fn.RecallPrivateChatMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.RecallPrivateChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.msgId=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/RecallPrivateChatMessageReq"},e})(),_n=fn.GetHistoryMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.dialogKeys="",e.prototype.offset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.oldOffset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.rows=0,e.prototype.newToOld=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.dialogKeys&&Object.hasOwnProperty.call(e,"dialogKeys")&&t.uint32(10).string(e.dialogKeys),null!=e.offset&&Object.hasOwnProperty.call(e,"offset")&&t.uint32(16).int64(e.offset),null!=e.oldOffset&&Object.hasOwnProperty.call(e,"oldOffset")&&t.uint32(24).int64(e.oldOffset),null!=e.rows&&Object.hasOwnProperty.call(e,"rows")&&t.uint32(32).int32(e.rows),null!=e.newToOld&&Object.hasOwnProperty.call(e,"newToOld")&&t.uint32(40).bool(e.newToOld),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetHistoryMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.dialogKeys=e.string();break;case 2:n.offset=e.int64();break;case 3:n.oldOffset=e.int64();break;case 4:n.rows=e.int32();break;case 5:n.newToOld=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetHistoryMessageReq"},e})(),kn=fn.GetHistoryMessageResp=(()=>{function e(e){if(this.reference={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.msg=null,e.prototype.isEnd=!1,e.prototype.reference=pn.emptyObject,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.msg&&Object.hasOwnProperty.call(e,"msg")&&fn.DialogMessageList.encode(e.msg,t.uint32(26).fork()).ldelim(),null!=e.isEnd&&Object.hasOwnProperty.call(e,"isEnd")&&t.uint32(32).bool(e.isEnd),null!=e.reference&&Object.hasOwnProperty.call(e,"reference"))for(let r=Object.keys(e.reference),n=0;n<r.length;++n)t.uint32(42).fork().uint32(10).string(r[n]),fn.ReferenceDialogMessage.encode(e.reference[r[n]],t.uint32(18).fork()).ldelim().ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetHistoryMessageResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:s.msg=fn.DialogMessageList.decode(e,e.uint32());break;case 4:s.isEnd=e.bool();break;case 5:{s.reference===pn.emptyObject&&(s.reference={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.ReferenceDialogMessage.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.reference[r]=n;break}default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetHistoryMessageResp"},e})(),Mn=fn.GetWebDialogListReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.type=0,e.prototype.offset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.rows=0,e.prototype.newToOld=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.type&&Object.hasOwnProperty.call(e,"type")&&t.uint32(8).int32(e.type),null!=e.offset&&Object.hasOwnProperty.call(e,"offset")&&t.uint32(16).int64(e.offset),null!=e.rows&&Object.hasOwnProperty.call(e,"rows")&&t.uint32(24).int32(e.rows),null!=e.newToOld&&Object.hasOwnProperty.call(e,"newToOld")&&t.uint32(32).bool(e.newToOld),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetWebDialogListReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.type=e.int32();break;case 2:n.offset=e.int64();break;case 3:n.rows=e.int32();break;case 4:n.newToOld=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetWebDialogListReq"},e})(),Nn=fn.GetWebDialogListResp=(()=>{function e(e){if(this.fullDialog=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.fullDialog=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.fullDialog&&e.fullDialog.length)for(let r=0;r<e.fullDialog.length;++r)fn.WebFullDialog.encode(e.fullDialog[r],t.uint32(26).fork()).ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetWebDialogListResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.fullDialog&&n.fullDialog.length||(n.fullDialog=[]),n.fullDialog.push(fn.WebFullDialog.decode(e,e.uint32()));break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetWebDialogListResp"},e})();fn.WebFullDialog=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.dialog=null,e.prototype.msg=null,e.encode=function(e,t){return t||(t=gn.create()),null!=e.dialog&&Object.hasOwnProperty.call(e,"dialog")&&fn.BriefDialog.encode(e.dialog,t.uint32(10).fork()).ldelim(),null!=e.msg&&Object.hasOwnProperty.call(e,"msg")&&fn.DialogMessage.encode(e.msg,t.uint32(18).fork()).ldelim(),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.WebFullDialog;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.dialog=fn.BriefDialog.decode(e,e.uint32());break;case 2:n.msg=fn.DialogMessage.decode(e,e.uint32());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/WebFullDialog"},e})();const Pn=fn.GetNewSettingDialogListReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.time=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.time&&Object.hasOwnProperty.call(e,"time")&&t.uint32(8).int64(e.time),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetNewSettingDialogListReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.time=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetNewSettingDialogListReq"},e})(),Ln=fn.GetNewSettingDialogListResp=(()=>{function e(e){if(this.briefDialog={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.briefDialog=pn.emptyObject,e.prototype.setTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.briefDialog&&Object.hasOwnProperty.call(e,"briefDialog"))for(let r=Object.keys(e.briefDialog),n=0;n<r.length;++n)t.uint32(26).fork().uint32(10).string(r[n]),fn.BriefDialog.encode(e.briefDialog[r[n]],t.uint32(18).fork()).ldelim().ldelim();return null!=e.setTime&&Object.hasOwnProperty.call(e,"setTime")&&t.uint32(32).int64(e.setTime),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetNewSettingDialogListResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:{s.briefDialog===pn.emptyObject&&(s.briefDialog={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.BriefDialog.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.briefDialog[r]=n;break}case 4:s.setTime=e.int64();break;default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetNewSettingDialogListResp"},e})(),Dn=fn.NewMessageNotificationResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.seqno=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(24).int64(e.seqno),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.NewMessageNotificationResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.seqno=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/NewMessageNotificationResp"},e})();fn.ChatMessage=(()=>{function e(e){if(this.msgId=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.msgId&&e.msgId.length){t.uint32(18).fork();for(let r=0;r<e.msgId.length;++r)t.int64(e.msgId[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.ChatMessage;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:if(n.msgId&&n.msgId.length||(n.msgId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.msgId.push(e.int64())}else n.msgId.push(e.int64());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ChatMessage"},e})();const Un=fn.SendPrivateChatArrivalAckReq=(()=>{function e(e){if(this.chatMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.chatMessage=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.chatMessage&&e.chatMessage.length)for(let r=0;r<e.chatMessage.length;++r)fn.ChatMessage.encode(e.chatMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.SendPrivateChatArrivalAckReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.chatMessage&&n.chatMessage.length||(n.chatMessage=[]),n.chatMessage.push(fn.ChatMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendPrivateChatArrivalAckReq"},e})(),jn=fn.SendPrivateChatReadAckReq=(()=>{function e(e){if(this.chatMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.chatMessage=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.chatMessage&&e.chatMessage.length)for(let r=0;r<e.chatMessage.length;++r)fn.ChatMessage.encode(e.chatMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.SendPrivateChatReadAckReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.chatMessage&&n.chatMessage.length||(n.chatMessage=[]),n.chatMessage.push(fn.ChatMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendPrivateChatReadAckReq"},e})(),Bn=fn.ReplyPrivateChatMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.msgIdReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgSrcIdReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgDestIdReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContentReferenced="",e.prototype.msgPostContentReferenced="",e.prototype.mediaFlagReferenced=!1,e.prototype.mediaConstructorReferenced=0,e.prototype.mediaAttributeReferenced="",e.prototype.msgSendTimeReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(26).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(34).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(40).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(48).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(58).string(e.mediaAttribute),null!=e.msgIdReferenced&&Object.hasOwnProperty.call(e,"msgIdReferenced")&&t.uint32(64).int64(e.msgIdReferenced),null!=e.msgSrcIdReferenced&&Object.hasOwnProperty.call(e,"msgSrcIdReferenced")&&t.uint32(72).int64(e.msgSrcIdReferenced),null!=e.msgDestIdReferenced&&Object.hasOwnProperty.call(e,"msgDestIdReferenced")&&t.uint32(80).int64(e.msgDestIdReferenced),null!=e.msgPreContentReferenced&&Object.hasOwnProperty.call(e,"msgPreContentReferenced")&&t.uint32(90).string(e.msgPreContentReferenced),null!=e.msgPostContentReferenced&&Object.hasOwnProperty.call(e,"msgPostContentReferenced")&&t.uint32(98).string(e.msgPostContentReferenced),null!=e.mediaFlagReferenced&&Object.hasOwnProperty.call(e,"mediaFlagReferenced")&&t.uint32(104).bool(e.mediaFlagReferenced),null!=e.mediaConstructorReferenced&&Object.hasOwnProperty.call(e,"mediaConstructorReferenced")&&t.uint32(112).int32(e.mediaConstructorReferenced),null!=e.mediaAttributeReferenced&&Object.hasOwnProperty.call(e,"mediaAttributeReferenced")&&t.uint32(122).string(e.mediaAttributeReferenced),null!=e.msgSendTimeReferenced&&Object.hasOwnProperty.call(e,"msgSendTimeReferenced")&&t.uint32(128).int64(e.msgSendTimeReferenced),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.ReplyPrivateChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgPreContent=e.string();break;case 4:n.msgPostContent=e.string();break;case 5:n.mediaFlag=e.bool();break;case 6:n.mediaConstructor=e.int32();break;case 7:n.mediaAttribute=e.string();break;case 8:n.msgIdReferenced=e.int64();break;case 9:n.msgSrcIdReferenced=e.int64();break;case 10:n.msgDestIdReferenced=e.int64();break;case 11:n.msgPreContentReferenced=e.string();break;case 12:n.msgPostContentReferenced=e.string();break;case 13:n.mediaFlagReferenced=e.bool();break;case 14:n.mediaConstructorReferenced=e.int32();break;case 15:n.mediaAttributeReferenced=e.string();break;case 16:n.msgSendTimeReferenced=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReplyPrivateChatMessageReq"},e})(),Fn=fn.ReplyPrivateChatMessageResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgSendTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(24).int64(e.localId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(32).int64(e.msgId),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(40).int64(e.msgSendTime),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.ReplyPrivateChatMessageResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.localId=e.int64();break;case 4:n.msgId=e.int64();break;case 5:n.msgSendTime=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReplyPrivateChatMessageResp"},e})(),xn=fn.MessageReadedNoticeReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.MessageReadedNoticeReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.destId=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/MessageReadedNoticeReq"},e})(),Gn=fn.MessageReadedNoticeResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.encode=function(e,t){return t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.MessageReadedNoticeResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/MessageReadedNoticeResp"},e})(),qn=br.Reader,Vn=br.Writer,Kn=br.util,Hn=br.roots.default||(br.roots.default={}),zn=Hn.SendGroupChatMessageReq=(()=>{function e(e){if(this.at=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.localId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.at=Kn.emptyArray,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(26).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(34).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(40).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(48).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(58).string(e.mediaAttribute),null!=e.at&&e.at.length){t.uint32(66).fork();for(let r=0;r<e.at.length;++r)t.int64(e.at[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.SendGroupChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgPreContent=e.string();break;case 4:n.msgPostContent=e.string();break;case 5:n.mediaFlag=e.bool();break;case 6:n.mediaConstructor=e.int32();break;case 7:n.mediaAttribute=e.string();break;case 8:if(n.at&&n.at.length||(n.at=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.at.push(e.int64())}else n.at.push(e.int64());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendGroupChatMessageReq"},e})(),$n=Hn.SendGroupChatMessageResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.localId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgSendTime=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.seqno=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(24).int64(e.localId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(32).int64(e.msgId),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(40).int64(e.msgSendTime),null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(48).int64(e.seqno),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.SendGroupChatMessageResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.localId=e.int64();break;case 4:n.msgId=e.int64();break;case 5:n.msgSendTime=e.int64();break;case 6:n.seqno=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendGroupChatMessageResp"},e})();Hn.DeleteGroupChatHistoryReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.DeleteGroupChatHistoryReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.groupId=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeleteGroupChatHistoryReq"},e})();const Wn=Hn.UpdateGroupChatDialogStickyConfigReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.stickyFlag=!1,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.stickyFlag&&Object.hasOwnProperty.call(e,"stickyFlag")&&t.uint32(16).bool(e.stickyFlag),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.UpdateGroupChatDialogStickyConfigReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.stickyFlag=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/UpdateGroupChatDialogStickyConfigReq"},e})(),Jn=Hn.UpdateGroupChatDialogMuteConfigReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.muteFlag=!1,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.muteFlag&&Object.hasOwnProperty.call(e,"muteFlag")&&t.uint32(16).bool(e.muteFlag),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.UpdateGroupChatDialogMuteConfigReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.muteFlag=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/UpdateGroupChatDialogMuteConfigReq"},e})(),Zn=Hn.RecallGroupChatMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.RecallGroupChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.msgId=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/RecallGroupChatMessageReq"},e})();Hn.DeleteGroupChatDialogReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.DeleteGroupChatDialogReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.groupId=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeleteGroupChatDialogReq"},e})(),Hn.GroupChatMessage=(()=>{function e(e){if(this.msgId=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.userId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgId=Kn.emptyArray,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.userId&&Object.hasOwnProperty.call(e,"userId")&&t.uint32(16).int64(e.userId),null!=e.msgId&&e.msgId.length){t.uint32(26).fork();for(let r=0;r<e.msgId.length;++r)t.int64(e.msgId[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.GroupChatMessage;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.userId=e.int64();break;case 3:if(n.msgId&&n.msgId.length||(n.msgId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.msgId.push(e.int64())}else n.msgId.push(e.int64());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GroupChatMessage"},e})();const Xn=Hn.SendGroupChatArrivalAckReq=(()=>{function e(e){if(this.groupChatMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupChatMessage=Kn.emptyArray,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupChatMessage&&e.groupChatMessage.length)for(let r=0;r<e.groupChatMessage.length;++r)Hn.GroupChatMessage.encode(e.groupChatMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.SendGroupChatArrivalAckReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.groupChatMessage&&n.groupChatMessage.length||(n.groupChatMessage=[]),n.groupChatMessage.push(Hn.GroupChatMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendGroupChatArrivalAckReq"},e})(),Yn=Hn.SendGroupChatReadAckReq=(()=>{function e(e){if(this.groupChatMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupChatMessage=Kn.emptyArray,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupChatMessage&&e.groupChatMessage.length)for(let r=0;r<e.groupChatMessage.length;++r)Hn.GroupChatMessage.encode(e.groupChatMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.SendGroupChatReadAckReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.groupChatMessage&&n.groupChatMessage.length||(n.groupChatMessage=[]),n.groupChatMessage.push(Hn.GroupChatMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendGroupChatReadAckReq"},e})(),Qn=Hn.ReplyGroupChatMessageReq=(()=>{function e(e){if(this.at=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.localId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.at=Kn.emptyArray,e.prototype.msgIdReferenced=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgSrcIdReferenced=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgDestIdReferenced=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContentReferenced="",e.prototype.msgPostContentReferenced="",e.prototype.mediaFlagReferenced=!1,e.prototype.mediaConstructorReferenced=0,e.prototype.mediaAttributeReferenced="",e.prototype.msgSendTimeReferenced=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(26).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(34).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(40).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(48).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(58).string(e.mediaAttribute),null!=e.at&&e.at.length){t.uint32(66).fork();for(let r=0;r<e.at.length;++r)t.int64(e.at[r]);t.ldelim()}return null!=e.msgIdReferenced&&Object.hasOwnProperty.call(e,"msgIdReferenced")&&t.uint32(72).int64(e.msgIdReferenced),null!=e.msgSrcIdReferenced&&Object.hasOwnProperty.call(e,"msgSrcIdReferenced")&&t.uint32(80).int64(e.msgSrcIdReferenced),null!=e.msgDestIdReferenced&&Object.hasOwnProperty.call(e,"msgDestIdReferenced")&&t.uint32(88).int64(e.msgDestIdReferenced),null!=e.msgPreContentReferenced&&Object.hasOwnProperty.call(e,"msgPreContentReferenced")&&t.uint32(98).string(e.msgPreContentReferenced),null!=e.msgPostContentReferenced&&Object.hasOwnProperty.call(e,"msgPostContentReferenced")&&t.uint32(106).string(e.msgPostContentReferenced),null!=e.mediaFlagReferenced&&Object.hasOwnProperty.call(e,"mediaFlagReferenced")&&t.uint32(112).bool(e.mediaFlagReferenced),null!=e.mediaConstructorReferenced&&Object.hasOwnProperty.call(e,"mediaConstructorReferenced")&&t.uint32(120).int32(e.mediaConstructorReferenced),null!=e.mediaAttributeReferenced&&Object.hasOwnProperty.call(e,"mediaAttributeReferenced")&&t.uint32(130).string(e.mediaAttributeReferenced),null!=e.msgSendTimeReferenced&&Object.hasOwnProperty.call(e,"msgSendTimeReferenced")&&t.uint32(136).int64(e.msgSendTimeReferenced),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.ReplyGroupChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgPreContent=e.string();break;case 4:n.msgPostContent=e.string();break;case 5:n.mediaFlag=e.bool();break;case 6:n.mediaConstructor=e.int32();break;case 7:n.mediaAttribute=e.string();break;case 8:if(n.at&&n.at.length||(n.at=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.at.push(e.int64())}else n.at.push(e.int64());break;case 9:n.msgIdReferenced=e.int64();break;case 10:n.msgSrcIdReferenced=e.int64();break;case 11:n.msgDestIdReferenced=e.int64();break;case 12:n.msgPreContentReferenced=e.string();break;case 13:n.msgPostContentReferenced=e.string();break;case 14:n.mediaFlagReferenced=e.bool();break;case 15:n.mediaConstructorReferenced=e.int32();break;case 16:n.mediaAttributeReferenced=e.string();break;case 17:n.msgSendTimeReferenced=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReplyGroupChatMessageReq"},e})(),eo=Hn.ReplyGroupChatMessageResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.localId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgSendTime=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(24).int64(e.localId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(32).int64(e.msgId),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(40).int64(e.msgSendTime),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.ReplyGroupChatMessageResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.localId=e.int64();break;case 4:n.msgId=e.int64();break;case 5:n.msgSendTime=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReplyGroupChatMessageResp"},e})();function to(t){return(ut(t)?Lr.fromString(t):t).greaterThan(Lr.fromNumber(9e10))?e.ConversationType.GROUP:e.ConversationType.PRIVATE}const ro=e=>e.targetId,no=e=>({conversationType:to(e),targetId:Lr.isLong(e)?e.toString():e});function oo(e,t,r){return e&&r.uint32(8).int64(e),r.uint32(16).int32(t.pinned),r.uint32(24).int64(t.msgId),r}class so{static encode(e,t=br.Writer.create()){return oo(e.destId,e,t)}}class io{static encode(e,t=br.Writer.create()){return oo(e.groupId,e,t)}}class ao{static encode(e,t=br.Writer.create()){return t.uint32(8).int64(e.msgId),t.uint32(16).int64(e.destId),e.content&&t.uint32(26).string(e.content),t}}class co{static encode(e,t=br.Writer.create()){return t.uint32(8).int64(e.msgId),t.uint32(16).int64(e.groupId),e.content&&t.uint32(26).string(e.content),t}}function lo(e,t,r){return e&&r.uint32(8).int64(e),r.uint32(16).bool(t.burnAfterReadingFlag),r.uint32(24).int64(t.burnAfterReadingTime),r}class uo{static encode(e,t=br.Writer.create()){return lo(e.destId,e,t)}}class go{static encode(e,t=br.Writer.create()){return lo(e.groupId,e,t)}}function po(e){return String(e)}function fo(e,t){const r=e.pos+t,n=[];for(;e.pos<r;)n.push(po(e.int64()));return n}function ho(e,t){const r=void 0===t?e.len:e.pos+t,n={id:"0",title:"",colorId:-1,categories:0,excludeMuted:!1,excludeRead:!1,sortIndex:0,includeDestIds:[],excludeDestIds:[],excludeFolded:!1};for(;e.pos<r;){const t=e.uint32();switch(t>>>3){case 1:n.id=po(e.int64());break;case 2:n.title=e.string();break;case 3:n.colorId=e.int32();break;case 4:n.categories=e.int32();break;case 5:n.excludeMuted=e.bool();break;case 6:n.excludeRead=e.bool();break;case 7:n.sortIndex=e.int32();break;case 8:2==(7&t)?n.includeDestIds.push(...fo(e,e.uint32())):n.includeDestIds.push(po(e.int64()));break;case 9:2==(7&t)?n.excludeDestIds.push(...fo(e,e.uint32())):n.excludeDestIds.push(po(e.int64()));break;case 10:n.excludeFolded=e.bool();break;default:e.skipType(7&t)}}return n}function yo(e,t){const r=void 0===t?e.len:e.pos+t,n={filters:[],displayTags:!1};for(;e.pos<r;){const t=e.uint32();switch(t>>>3){case 1:n.filters.push(ho(e,e.uint32()));break;case 2:n.displayTags=e.bool();break;default:e.skipType(7&t)}}return n}class mo{static encode(e={},t=br.Writer.create()){return t}}class vo{errorCode=0;errorMessage="";config={filters:[],displayTags:!1};static decode(e,t){const r=e instanceof br.Reader?e:br.Reader.create(e),n=void 0===t?r.len:r.pos+t,o=new vo;for(;r.pos<n;){const e=r.uint32();switch(e>>>3){case 1:o.errorCode=r.int32();break;case 2:o.errorMessage=r.string();break;case 3:o.config=yo(r,r.uint32());break;default:r.skipType(7&e)}}return o}}const bo=()=>un.send(At.GetServerTime,null,{decoder:Tr}),Co=e=>un.send(At.GetDialogKey,{destId:e,clientSign:""},{encoder:Rn,decoder:Tn}),wo=e=>un.send(At.SendPrivateChatMessage,e,{encoder:hn,decoder:yn}),Oo=e=>un.send(At.SendQuotePrivateChatMessage,e,{encoder:Bn,decoder:Fn}),Io=e=>un.send(At.SendGroupChatMessage,e,{encoder:zn,decoder:$n}),So=e=>un.send(At.SendQuoteGroupChatMessage,e,{encoder:Qn,decoder:eo}),Eo=(e,t)=>un.send(At.GetNewMessage,{offset:e,rows:t},{encoder:vn,decoder:bn}),Ro=(t,r)=>{let n;return n=to(t)==e.ConversationType.GROUP?un.send(At.RecallGroupMessage,{groupId:Lr.fromString(t),msgId:Lr.fromString(r)},{encoder:Zn,decoder:Ar}):un.send(At.RecallPrivateMessage,{destId:Lr.fromString(t),msgId:Lr.fromString(r)},{encoder:An,decoder:Ar}),n},To=(t,r,n)=>{const o=Lr.fromString(r);return to(t)===e.ConversationType.GROUP?un.send(At.PostGroupChatComment,{groupId:Lr.fromString(t),msgId:o,content:n},{encoder:co,decoder:Ar}):un.send(At.PostPrivateChatComment,{destId:Lr.fromString(t),msgId:o,content:n},{encoder:ao,decoder:Ar})},Ao=(t,r,n)=>{const o=Lr.fromString(r);return to(t)===e.ConversationType.GROUP?un.send(At.PinnedGroupMessage,{groupId:Lr.fromString(t),pinned:n,msgId:o},{encoder:io,decoder:Ar}):un.send(At.PinnedPrivateMessage,{destId:Lr.fromString(t),pinned:n,msgId:o},{encoder:so,decoder:Ar})},_o=e=>{const t={dialogKeys:e.dialogId,newToOld:e.newToOld,rows:e.count};return e.newToOld?t.offset=Lr.fromString(e.offset):t.oldOffset=Lr.fromString(e.offset),un.send(At.GetRemoteMessages,t,{encoder:_n,decoder:kn})},ko=(e,t)=>un.send(At.DeleteChatMessages,{destId:Lr.fromString(e),msgIdList:t.map(e=>Lr.fromString(e))},{encoder:On,decoder:Ar}),Mo=e=>un.send(At.ClearChatHistoryMessage,{destId:e},{encoder:In,decoder:Ar}),No=e=>un.send(At.GetDialogList,e,{encoder:Mn,decoder:Nn}),Po=e=>un.send(At.GetBriefDialogList,{destId:e.map(e=>Lr.fromString(e))},{encoder:Sn,decoder:En}),Lo=(t,r)=>{let n;return n=to(t)==e.ConversationType.GROUP?un.send(At.UpdateGroupChatMuteConfig,{groupId:Lr.fromString(t),muteFlag:r},{encoder:Jn,decoder:Ar}):un.send(At.UpdatePrivateChatMuteConfig,{destId:Lr.fromString(t),muteFlag:r},{encoder:wn,decoder:Ar}),n},Do=(t,r)=>{let n;return n=to(t)==e.ConversationType.GROUP?un.send(At.UpdateGroupChatStickyConfig,{groupId:Lr.fromString(t),stickyFlag:r},{encoder:Wn,decoder:Ar}):un.send(At.UpdatePrivateChatStickyConfig,{destId:Lr.fromString(t),stickyFlag:r},{encoder:Cn,decoder:Ar}),n},Uo=(t,r,n)=>{const o=Lr.fromString(t),s=Lr.fromNumber(n);return to(t)===e.ConversationType.GROUP?un.send(At.UpdateGroupChatBurnAfterReadingConfig,{groupId:o,burnAfterReadingFlag:r,burnAfterReadingTime:s},{encoder:go,decoder:Ar}):un.send(At.UpdatePrivateChatBurnAfterReadingConfig,{destId:o,burnAfterReadingFlag:r,burnAfterReadingTime:s},{encoder:uo,decoder:Ar})},jo=e=>un.send(At.DeletePrivateDialog,{destId:Lr.fromString(e)},{encoder:mn,decoder:Ar}),Bo=e=>un.send(At.GetDialogChangedStatus,{time:Lr.fromNumber(e)},{encoder:Pn,decoder:Ln}),Fo=e=>un.send(At.PostAnalyticsLogs,{data:e},{encoder:_r,decoder:Ar}),xo=()=>un.send(At.GetDialogFilterConfig,{},{encoder:mo,decoder:vo}),Go=e=>un.send(At.SYNC_CONVERSATION_READ_STATUS,{destId:Lr.fromString(e)},{encoder:xn,decoder:Gn});var qo=Object.freeze({__proto__:null,clearHistoryMessage:Mo,commentChatMessage:To,deleteDialog:jo,deleteMessages:ko,getBriefDialogList:Po,getDialogChangedStatus:Bo,getDialogFilterConfig:xo,getDialogKey:Co,getDialogList:No,getNewMessages:Eo,getRemoteMessages:_o,getServerTime:bo,postAnalyticsLogs:Fo,recallChatMessage:Ro,sendGroupChatArrivalAck:e=>un.send(At.SendGroupChatArrivalAck,e,{encoder:Xn,decoder:Ar}),sendGroupChatMessage:Io,sendGroupChatReadAck:e=>un.send(At.SendGroupChatReadAck,e,{encoder:Yn,decoder:Ar}),sendPrivateChatArrivalAck:e=>un.send(At.SendPrivateChatArrivalAck,e,{encoder:Un,decoder:Ar}),sendPrivateChatMessage:wo,sendPrivateChatReadAck:e=>un.send(At.SendPrivateChatReadAck,e,{encoder:jn,decoder:Ar}),sendQuoteGroupChatMessage:So,sendQuotePrivateChatMessage:Oo,syncConversationReadStatus:Go,updateChatBurnAfterReadingConfig:Uo,updateChatMuteConfig:Lo,updateChatStickyConfig:Do,updateMessagePinned:Ao});let Vo=0;const Ko=()=>(new Date).getTime()+Vo,Ho=new Set;var zo={addMessage(e){Ho.add(e)},remove(e){Ho.delete(e)},has:e=>Ho.has(e),reset(){Ho.clear()}};const $o=new Set;var Wo={addMessage(e){$o.add(e)},remove(e){$o.delete(e)},has:e=>$o.has(e),reset(){$o.clear()}};const Jo=new Map;function Zo(e,t){Jo.set(e,t)}function Xo(e,t){const r=Jo.get(e);if(!r)return console.warn(`No message constructor found for type: ${e}`),null;try{return new r(t)}catch(t){return console.error(`Failed to decode message type ${e}:`,t),null}}var Yo=new class{aesKeyRecord=new Map;async getDialogAesKey(e){return dt(e)?this.aesKeyRecord.has(e)?this.aesKeyRecord.get(e):new Promise(t=>{this.getDialogAesKeyListFromRemote([e]).then(r=>{t(r.get(e))}),setTimeout(()=>{t(null)},8e3)}):null}getDialogAesKeyList(e){return new Promise(t=>{const r=new Map;this.getDialogAesKeyListInBatches(e,(n,o)=>{if(o.size)for(const[e,t]of o)r.set(e,t);(r.size===e.length||n)&&t(r)})})}getDialogAesKeyListInBatches(e,t){const r=new Map,n=[];e.forEach(e=>{if(!dt(e))return;const t=this.getDialogAesKeyFromLocal(e);t?r.set(e,t):n.push(e)}),t(!1,r),n.length&&this.getDialogAesKeyListFromRemote(n).then(e=>{t(!0,e)})}reset(){this.aesKeyRecord.clear()}async getDialogAesKeyListFromRemote(t){if(!t.length)return new Map;try{const{code:r,data:n}=await Co(t.map(e=>Lr.fromString(e)));if(r===e.ErrorCode.SUCCESS){const e=new Map;for(const t in n.entry){const r=n.entry[t];if(r.aesKey?.length&&r.aesIV?.length){const n={key:r.aesKey,iv:r.aesIV};e.set(t,n),this.aesKeyRecord.set(t,n)}}return e}}catch(e){Yi.error("getDialogAesKeyListFromRemote error",e)}return new Map}getDialogAesKeyFromLocal(e){return dt(e)?this.aesKeyRecord.get(e):null}};const Qo="time",es=(e,t)=>[e,t,Qo].join("_");class ts{appkey;userId;inBoxOffset=Lr.ZERO;constructor(e,t){this.appkey=e,this.userId=t}setInboxOffset(e){if(this.inBoxOffset>e)return;this.inBoxOffset=e;const t=es(this.appkey,this.userId);wt.set(t,e.toString())}getInboxOffset(){if(this.inBoxOffset.isZero()){const e=es(this.appkey,this.userId);this.inBoxOffset=Lr.fromString(wt.get(e)??"0")}return this.inBoxOffset}}const rs=(e,t)=>{if(!dt(e))return"";const r=tt.AES.encrypt(e,tt.enc.Utf8.parse(t.key),{iv:nt(t.iv)?tt.enc.Utf8.parse(t.iv):void 0});return Array.from(os(r.ciphertext.words)).map(e=>e.toString(16).padStart(2,"0")).join("")},ns=(e,t)=>{const r=new Uint8Array(e.match(/.{1,2}/g)?.map(e=>parseInt(e,16))||[]),n=window.btoa(String.fromCharCode(...r));return tt.AES.decrypt(n,tt.enc.Utf8.parse(t.key),{iv:nt(t.iv)?tt.enc.Utf8.parse(t.iv):void 0}).toString(tt.enc.Utf8)},os=e=>{const t=[];let r,n,o;for(n=0;n<e.length;++n)for(r=e[n],o=3;o>=0;--o)t.push(r>>8*o&255);return new Uint8Array(t)},ss={TEXT:0,IMAGE:805310464,GIF:805310475,FILE:805310490,AUDIO:805310481,VIDEO:805310470,RECALL:1610678302,STORED_RECALL:1610678301,LOCATION:805310469,CHAT_RECORD:805310489,CONTACT:268439554,GROUP_INVITATION:805310467,REDPACKET:268439616,TRANSFER:268439600,LINK:268439556},is=1610678290,as=1610743841,cs={GROUP_ARRIVAL_RECEIPT:1610743844,GROUP_READ_RECEIPT:1610743845,PRIVATE_ARRIVAL_RECEIPT:1610678284,PRIVATE_READ_RECEIPT:1610678285,PRIVATE_OPEN_BURNAFTERREADING:1610678274,PRIVATE_CLOSE_BURNAFTERREADING:1610678275,GROUP_OPEN_BURNAFTERREADING:1610743816,GROUP_CLOSE_BURNAFTERREADING:1610743817,MESSAGE_READ:1610678295,CHANGE_GROUP_TITLE:1610743809,CHANGE_GROUP_AVATAR:1610809394,PRIVATE_MESSAGE_PINNED:1610711169,GROUP_MESSAGE_PINNED:1610776706,CHAT_COMMENT:1610678301};function ls(e){return e===ss.RECALL||e===ss.STORED_RECALL}function us(e){return e===is||e===as?ss.RECALL:e}function ds(e){if(!nt(e))return e;if(Array.isArray(e))return e.map(e=>ds(e));if(ct(e)){const t={};return Object.keys(e).forEach(r=>{t[r]=ds(e[r])}),t}return e}const gs={unreadMessageCount:{keyName:"c",defaultVal:0},lastUnreadTime:{keyName:"lt",defaultVal:0},notificationStatus:{keyName:"nc",defaultVal:2},notificationLevel:{keyName:"nl",defaultVal:0},isTop:{keyName:"it",defaultVal:!1},mentionedUIds:{keyName:"mu",defaultVal:null},dialogTitle:{keyName:"dt",defaultVal:null},smallAvatarUrl:{keyName:"sa",defaultVal:null},burnAfterReadingFlag:{keyName:"brf",defaultVal:!1},burnAfterReadingTime:{keyName:"brt",defaultVal:0},updateTime:{keyName:"ut",defaultVal:0}};class ps{localStore;constructor(e,t){const r=`con-${e}-${t}`;this.localStore=new It(r)}getStoreKey(e){return`${e.conversationType}_${e.targetId}\n }`}getConOptionByKey(t){const r=(t=t||"").split("_");if(r.length>=2){const e=r.shift(),t=r.shift();return{conversationType:Number(e),targetId:t}}return{conversationType:e.ConversationType.PRIVATE,targetId:"0"}}updateUnreadCount(t){const{conversationType:r,targetId:n,content:o,messageType:s,sentTime:i,isCounted:a,messageDirection:c}=t,l=c===e.MessageDirection.SEND,u=ls(s),d=ct(o),g={conversationType:r,targetId:n},p=this.get(g)||{},f=p.lastUnreadTime||Lr.ZERO,h=p.unreadMessageCount||0;if(!(i<=f)&&!l){if(a&&(p.unreadMessageCount=h+1,f||(p.lastUnreadTime=i)),u&&d){o.sentTime>=f&&h&&(p.unreadMessageCount=h-1)}this.set(g,p)}}updateMentionedData(t){const{conversationType:r,targetId:n,messageUId:o,messageType:s,isMentioned:i,messageDirection:a,content:c}=t;if(!o||a===e.MessageDirection.SEND||!i&&!ls(s))return;const l=this.getStoreKey({conversationType:r,targetId:n}),u=this.localStore.get(l)||{},d=gs.mentionedUIds.keyName,g=u[d]||[];if(i&&r===e.ConversationType.GROUP&&(g.includes(o.toString())||g.push(o.toString())),ls(s)&&r===e.ConversationType.GROUP){const e=c,t=g.indexOf(e.messageUId?.toString()??"");t>=0&&g.splice(t,1)}g.length?u[d]=g:delete u[d],gt(u)?this.localStore.set(l,u):this.localStore.remove(l)}updateUpdateTime(e,t){const r=this.getStoreKey(e),n=this.localStore.get(r)||{};n[gs.updateTime.keyName]=t,this.localStore.set(r,n)}set(e,t){const r=this.getStoreKey(e),n=this.localStore.get(r)||{};for(const e of ft(t)){const r=gs[e],o=t[e];if(it(r?.keyName)||it(o))continue;o===r.defaultVal?delete n[r.keyName]:n[r.keyName]=o,n[gs.unreadMessageCount.keyName]||(delete n[gs.lastUnreadTime.keyName],delete n[gs.mentionedUIds.keyName])}gt(n)?this.localStore.set(r,n):this.localStore.remove(r)}remove(e){const t=this.getStoreKey(e);this.localStore.remove(t)}get(e){const t=this.getStoreKey(e),r=this.localStore.get(t)||{},n={};for(const e of ft(gs)){const{keyName:t,defaultVal:o}=gs[e];"mentionedUIds"===e?(n.unreadMentionedCount=r[t]?.length??0,n.hasMentioned=!!n.unreadMentionedCount):n[e]=r[t]||ds(o)}return n}getAll(){const e=this.localStore.getCache()||{},t=[];for(const r in e){const n=this.getConOptionByKey(r),o=e[r];for(const e of ft(gs)){const{keyName:t,defaultVal:r}=gs[e];"mentionedUIds"!==e&&(n[e]=o[t]||ds(r))}t.push(n)}return t}}const fs=t=>{const r=t.destId??"",n=no(r);if(!n)return;t.dialogTitle,t.smallAvatarUrl;return{...n,unreadMessageCount:0,notificationStatus:t.muteFlag?e.NotificationStatus.OPEN:e.NotificationStatus.CLOSE,notificationLevel:t.muteFlag?e.NotificationLevel.NOT_MESSAGE_NOTIFICATION:e.NotificationLevel.ALL_MESSAGE,isTop:!!t.stickyFlag,dialogTitle:t.dialogTitle,smallAvatarUrl:t.smallAvatarUrl,lastUnreadTime:"0",burnAfterReadingFlag:!!t.burnAfterReadingFlag,burnAfterReadingTime:t.burnAfterReadingTime&&t.burnAfterReadingTime.toNumber()}};class hs{events={};on(e,t,r){const n=this.events[e]||(this.events[e]=[]);n.some(e=>e.listener===t&&e.target===r)||n.push({listener:t,target:r})}emit(e,...t){const r=this.events[e];r?.length&&r.map(e=>{const{target:r,listener:n}=e;try{n.call(r,...t)}catch(e){}})}off(e,t,r){let n=this.events[e];n?.length&&(n=n.filter(e=>e.listener!==t||e.target!==r),n.length?this.events[e]=n:delete this.events[e])}once(e,t,r){const n=(...o)=>{t.call(r,...o),this.off(e,n,r)};return this.on(e,n,r),this}}const ys="STATUS_CHANGED";class ms{storageKey;eventEmitter;isPulling=!1;constructor(e,t){this.storageKey=`con-s-${e}-${t}`,this.eventEmitter=new hs}async pull(){if(this.isPulling)return;let t;this.isPulling=!0;const r=wt.get(this.storageKey);t=ot(r)&&r>0?r:Ko()-1e4;let{code:n,data:o}=await Bo(t);n===e.ErrorCode.SUCCESS&&(Lr.isLong(o.setTime)&&o.setTime.toNumber()>0&&wt.set(this.storageKey,o.setTime.toNumber()),o.briefDialog&&ft(o.briefDialog).forEach(e=>{const t=o.briefDialog[e],r=fs(t);r&&this.eventEmitter.emit(ys,r)})),this.isPulling=!1}watch(e){this.eventEmitter.on(ys,t=>{e(t)})}}class vs{updatedConversationFunc;store;draftMap=new Map;localConversationSet=new Set;updatedConversations=[];notify;statusManager;constructor(e,t,r){this.updatedConversationFunc=r,this.store=new ps(e,t),this.notify=yt(this.notifyConversationChanged.bind(this),0),this.statusManager=new ms(e,t),this.statusManager.watch(e=>{this.addStatus(e,!0)})}getConversationKey(e){return`${e.conversationType}_${e.targetId}\n }`}setUpdatedConversation(e){const t=this.updatedConversations.findIndex(t=>this.getConversationKey(e.conversation)===this.getConversationKey(t.conversation));t>=0?(e={conversation:Object.assign(this.updatedConversations[t].conversation,e.conversation),updatedItems:Object.assign(this.updatedConversations[t].updatedItems,e.updatedItems),removed:e.removed||this.updatedConversations[t].removed},this.updatedConversations[t]=e):this.updatedConversations.push(e),this.notify()}notifyConversationChanged(){const e=this.updatedConversations.map(e=>e.removed?{conversation:e.conversation,updatedItems:e.updatedItems,removed:!0}:{conversation:{...e.conversation,...this.store.get(e.conversation)},updatedItems:e.updatedItems});this.updatedConversations=[],this.updatedConversationFunc?.(e)}syncConversationStatus(){this.statusManager.pull()}async loadConvsationsIfNotExist(t){if(!t?.length)return;const r=t.filter(e=>!this.localConversationSet.has(this.getConversationKey(e)));if(!r.length)return;const n=r.map(ro);if(!n.length)return;const{code:o,data:s}=await Po(n);o===e.ErrorCode.SUCCESS&&ft(s.briefDialog).forEach(e=>{const t=s.briefDialog[e],r=fs(t);r&&(this.localConversationSet.add(this.getConversationKey(r)),this.addStatus(r,!0))})}addLocalConversation(e){const{conversationType:t,targetId:r,isTop:n,notificationStatus:o,notificationLevel:s,dialogTitle:i,smallAvatarUrl:a,burnAfterReadingFlag:c,burnAfterReadingTime:l,updateTime:u}=e;this.localConversationSet.add(this.getConversationKey(e)),this.addStatus({conversationType:t,targetId:r,isTop:n,notificationStatus:o,notificationLevel:s,dialogTitle:i,smallAvatarUrl:a,burnAfterReadingFlag:c,burnAfterReadingTime:l,updateTime:u},!1)}addStatus(e,t=!1){const{conversationType:r,targetId:n,notificationStatus:o,notificationLevel:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,burnAfterReadingFlag:l,burnAfterReadingTime:u,updateTime:d}=e,g={conversationType:r,targetId:n},p=Ko(),f=this.store.get(g),h={};nt(s)&&f.notificationLevel!==s&&(h.notificationLevel={time:p,val:s}),nt(o)&&f.notificationStatus!==o&&(h.notificationStatus={time:p,val:o}),nt(i)&&f.isTop!==i&&(h.isTop={time:p,val:i}),nt(a)&&f.dialogTitle!==a&&(h.dialogTitle={time:p,val:a}),nt(c)&&f.smallAvatarUrl!==c&&(h.smallAvatarUrl={time:p,val:c}),nt(l)&&f.burnAfterReadingFlag!==l&&(h.burnAfterReadingFlag={time:p,val:l}),nt(u)&&f.burnAfterReadingTime!==u&&(h.burnAfterReadingTime={time:p,val:u}),this.store.set(g,{notificationStatus:o,isTop:i,notificationLevel:s,dialogTitle:a,smallAvatarUrl:c,burnAfterReadingFlag:l,burnAfterReadingTime:u,updateTime:d}),Object.keys(h).length&&t&&this.setUpdatedConversation({conversation:g,updatedItems:h})}setConversationCacheByMessage(e){const{conversationType:t,isPersited:r,targetId:n}=e;if(!r)return;const o={conversationType:t,targetId:n},s={conversation:o,updatedItems:{}},i=ds(this.get(o));this.store.updateUnreadCount(e),this.store.updateMentionedData(e),this.store.updateUpdateTime(o,parseInt(e.sentTime));const a=this.get(o);i.unreadMessageCount!==a.unreadMessageCount&&(s.updatedItems.unreadMessageCount={time:parseInt(e.sentTime),val:a.unreadMessageCount}),i.hasMentioned!==a.hasMentioned&&(s.updatedItems.hasMentioned={time:parseInt(e.sentTime),val:a.hasMentioned}),i.unreadMentionedCount!==a.unreadMentionedCount&&(s.updatedItems.unreadMentionedCount={time:parseInt(e.sentTime),val:a.unreadMentionedCount}),Object.keys(s.updatedItems).length&&this.setUpdatedConversation(s)}get(e){return this.store.get(e)}getAllUnreadCount(t,r){const n=this.store.getAll();let o=0;return n.forEach(({unreadMessageCount:n,notificationStatus:s,notificationLevel:i,conversationType:a})=>{n=n||0;const c=s===e.NotificationStatus.OPEN||i>0;!r&&c||(t.length>0?t.includes(+a)&&(o+=+n):o+=+n)}),o}getUnreadCount(e){return this.store.get(e).unreadMessageCount||0}clearUnreadCount(e){const t=this.store.get(e),{unreadMessageCount:r,unreadMentionedCount:n}=t;(r||n)&&(t.unreadMessageCount=0,t.hasMentioned=!1,t.unreadMentionedCount=0),this.store.set(e,t);const o={};r&&(o.unreadMessageCount={val:0,time:Ko()}),n&&(o.hasMentioned={val:!1,time:Ko()},o.unreadMentionedCount={val:0,time:Ko()}),Object.keys(o).length&&this.setUpdatedConversation({conversation:e,updatedItems:o})}clearAllUnreadCount(){this.store.getAll().forEach(e=>this.clearUnreadCount(e))}getNotificationLevel(e){return this.store.get(e).notificationLevel}getNotificationStatus(e){return this.store.get(e).notificationStatus||2}setDraft(e,t){this.draftMap.set(this.getConversationKey(e),t)}getDraft(e){return this.draftMap.get(this.getConversationKey(e))??""}clearDraft(e){this.draftMap.delete(this.getConversationKey(e))}getBlockConversationList(){return this.store.getAll().filter(t=>t.notificationStatus===e.NotificationStatus.OPEN||t.notificationLevel>0).map(e=>({conversationType:e.conversationType,targetId:e.targetId}))}getTopConversationList(){return(this.store.getAll()||{}).filter(e=>e.isTop).map(e=>({conversationType:e.conversationType,targetId:e.targetId}))}getUnreadMentionedCount(e){return this.get(e).unreadMentionedCount||0}getAllUnreadMentionedCount(){const e=this.store.getAll();let t=0;return e.forEach(({unreadMentionedCount:e})=>{e=e||0,t+=Number(e)}),t}getConversationState(e){let t=this.get(e);if(t){let{unreadMessageCount:r,unreadMentionedCount:n,notificationLevel:o,notificationStatus:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,updateTime:l}=t;return{...e,unreadCount:r,unreadMentionedCount:n??0,notificationLevel:o,notificationStatus:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,updateTime:l}}return null}getAllConversationState(){return this.store.getAll().map(({conversationType:e,targetId:t,unreadMessageCount:r,unreadMentionedCount:n,notificationLevel:o,notificationStatus:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,updateTime:l})=>({conversationType:e,targetId:t,unreadCount:r,unreadMentionedCount:n??0,notificationLevel:o,notificationStatus:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,updateTime:l}))}remove(e){this.store.remove(e),this.localConversationSet.delete(this.getConversationKey(e)),this.setUpdatedConversation({conversation:e,updatedItems:{},removed:!0})}clearHistoryMessages(e){this.clearUnreadCount(e);const t={conversation:e,updatedItems:{}};t.conversation.latestMessage=void 0,t.updatedItems.latestMessage={val:null,time:Ko()},this.setUpdatedConversation(t)}updateLatestMessage(e,t){nt(t)&&this.store.set(e,{updateTime:parseInt(t.sentTime)});const r={conversation:e,updatedItems:{}};nt(t)&&(r.conversation.updateTime=parseInt(t.sentTime)),r.conversation.latestMessage=t,r.updatedItems.latestMessage={val:t,time:Ko()},this.setUpdatedConversation(r)}destroyed(){this.updatedConversationFunc=void 0}}const bs={addStatus:function(e,t){},setConversationCacheByMessage:function(e){},updateLatestMessage:function(e,t){},get:function(e){return null},getAllUnreadCount:function(e,t){return 0},getUnreadCount:function(e){return 0},clearUnreadCount:function(e){},clearAllUnreadCount(){},getNotificationLevel:function(t){return e.NotificationLevel.NOT_SET},getNotificationStatus:function(t){return e.NotificationStatus.CLOSE},setDraft:function(e,t){},getDraft:function(e){return""},clearDraft:function(e){},getBlockConversationList:function(){return[]},getTopConversationList:function(){return[]},getUnreadMentionedCount:function(e){return 0},getAllUnreadMentionedCount:function(){return 0},getConversationState:e=>null,getAllConversationState:function(){return[]},addLocalConversation:function(e){},loadConvsationsIfNotExist:function(e){return Promise.resolve()},destroyed(){},syncConversationStatus:function(){},remove:function(e){},clearHistoryMessages:function(e){}};let Cs;var ws={create(e,t,r){Cs=new vs(e,t,r)},get:()=>Cs??bs};const Os=(t,r,n=e.SentStatus.SENDING)=>{const o=ws.get().get(r.conversation);return{conversationType:r.conversation.conversationType,targetId:r.conversation.targetId,senderUserId:r.senderUserId,messageDirection:e.MessageDirection.SEND,isCounted:t.isCounted,isMentioned:!1,content:ds(t.content),messageType:t.messageType,isOffLineMessage:!1,isPersited:t.isPersited,messageId:r.messageId,messageUId:"local"+r.sentTime,sentTime:r.sentTime,sentStatus:n,receivedTime:r.sentTime,isStatusMessage:t.isStatusMessage,receivedStatus:e.ReceivedStatus.IDLE,disableNotification:!0,burnAfterReadingFlag:o?.burnAfterReadingFlag??!1,burnAfterReadingTime:o?.burnAfterReadingTime??0,pinned:!1}};function Is(e){if(e instanceof Error){const t=e.cause;return{type:e.constructor?.name??"Error",name:e.name,message:e.message,stack:e.stack,...void 0===t?{}:{cause:Is(t)}}}let t;try{t="string"==typeof e?e:JSON.stringify(e)??String(e)}catch{t=String(e)}return{type:null===e?"null":typeof e,value:t}}function Ss(e){const t={...e};return"content"in t&&delete t.content,"quotedReply"in t&&delete t.quotedReply,"msgPreContent"in t&&delete t.msgPreContent,"msgPostContent"in t&&delete t.msgPostContent,t}const Es=(e,t,r,n)=>{const o=new Map;return e.forEach(e=>{const s=Rs(e,t.get(e),r.get(e),n);s.length&&o.set(e,s)}),o},Rs=(t,r,n,o)=>{const s=no(t);if(!s)return[];const i=ws.get().get(s);let a=[];return r.forEach(t=>{const r=t;let c=r.mediaConstructor,l=Ts(r,n);if(!l)return;if(c===is||c===as){const{msgId:e}=l,t={messageUId:e};c=us(c),l=t}const u=Xo(c,l);if(nt(u)){const c={...s,senderUserId:r.srcId.toString(),messageDirection:r.isOut?e.MessageDirection.SEND:e.MessageDirection.RECEIVE,isCounted:u.isCounted,isMentioned:r.atFlag,content:u.content,messageType:u.messageType,isOffLineMessage:!1,isPersited:u.isPersited,messageId:Lr.isLong(r.localId)?r.localId.toNumber():0,messageUId:r.msgId.toString(),sentTime:r.seqno.toString(),sentStatus:e.SentStatus.SENT,receivedTime:Ko().toString(),isStatusMessage:u.isStatusMessage,receivedStatus:r.msgRead?e.ReceivedStatus.READ:r.msgArrival?e.ReceivedStatus.RECEIVED:e.ReceivedStatus.IDLE,disableNotification:i?.notificationStatus===e.NotificationStatus.OPEN||r.srcId.toString()==on.uid,burnAfterReadingFlag:r.burnAfterReadingFlag,burnAfterReadingTime:r.burnAfterReadingTime&&r.burnAfterReadingTime.toNumber(),pinned:!1};if(c.isStatusMessage&&Lr.fromNumber(Ko()).subtract(c.sentTime).greaterThan(6e3))return;if(r.msgIdReferenced&&Lr.isLong(r.msgIdReferenced)){const t=o[r.msgIdReferenced.toString()];if(t){let r=Ts({mediaAttribute:t.mediaAttribute,msgPreContent:t.msgPreContent,msgPostContent:t.msgPostContent,mediaConstructor:t.mediaConstructor??0,msgId:t.msgId??Lr.fromNumber(0)},n);if(r){const n=Xo(t.mediaConstructor??0,r);nt(n)&&(c.quotedReply=((t,r,n)=>({conversationType:n.conversationType,targetId:t.destId.toString(),senderUserId:t.srcId.toString(),messageDirection:t.srcId.toString()===on.uid?e.MessageDirection.SEND:e.MessageDirection.RECEIVE,isCounted:r.isCounted,isMentioned:!1,content:ds(r.content),messageType:r.messageType,isOffLineMessage:!1,isPersited:r.isPersited,messageId:1,messageUId:t.msgId.toString(),sentTime:t.msgSendTime.toString(),sentStatus:e.SentStatus.SENT,receivedTime:t.msgSendTime.toString(),isStatusMessage:r.isStatusMessage,receivedStatus:e.ReceivedStatus.RECEIVED,disableNotification:!0,burnAfterReadingFlag:!1,burnAfterReadingTime:0,pinned:!1,senderUserName:t.srcName}))(t,n,s))}}}dt(c.messageUId)?a.push(c):Yi.error("message is invalid",Ss(t))}}),a},Ts=(e,t)=>{try{let r,n;return r=e.mediaAttribute?.length?ns(e.mediaAttribute,t):e.msgPreContent??"",e.msgPostContent?.length&&(n=ns(e.msgPostContent,t)),As(e.mediaConstructor,r,n)}catch(t){return Yi.error("decode message content fail",e,t),null}},As=(e,t,r)=>{let n={};if(t?.length){const e=_s(t);n=JSON.parse(e,Ps)}return e===ss.TEXT&&void 0!==r&&(n.content=r),n},_s=e=>{let t=e.replace(/("[\w\d_]+"\s*:\s*)(?<!\d\.)(\d{15,})(?!\.\d*)([\s,}\]])/g,'$1"$2"$3');return t=t.replace(/(\[\s*|,\s*)(?<!\d\.)(\d{15,})(?!\.\d*)([\s,\]])/g,'$1"$2"$3'),t},ks=new Set(["destId","groupId","groupUin","msgId"]),Ms=new Set(["msgIdList"]),Ns=(e,t)=>{if("string"==typeof t)return t;if("number"==typeof t&&Number.isSafeInteger(t))return t.toString();throw new TypeError(`${e} must be an Int64 string or a safe integer, received ${typeof t}`)},Ps=(e,t)=>null==t?t:ks.has(e)?Ns(e,t):Ms.has(e)?Array.isArray(t)?t.map(t=>Ns(e,t)):Ns(e,t):t;var Ls={parse:function(e,t,r){const n=new Map;if(Object.keys(e).forEach(t=>{const r=e[t].dialogMessage?.filter(e=>!e.sharingGroupFlag);r?.length&&n.set(t,r)}),!n.size)return void r(!0,new Map);const o=new Set([...n.keys()]);Yo.getDialogAesKeyListInBatches([...n.keys()],(e,s)=>{try{if(s.size){const e=[...s.keys()];for(const t of e)o.delete(t);r(!o.size,Es(e,n,s,t))}o.size&&e&&r(!0,new Map)}catch(t){Yi.error("parseDialogsMessages error",t),o.size&&e&&r(!0,new Map)}})},parseSingleDialogMessages:Rs,decodeChatRecordMsgDetails2ReceivedMessages:(t,r)=>{let n=[];return r.forEach(r=>{const o=As(r.mediaConstructor,r.mediaAttribute,r.msgPostContent);if(!o)return;const s=Xo(r.mediaConstructor,o);if(nt(s)){const o={...t,senderUserId:r.srcId.toString(),messageDirection:r.srcId==on.uid?e.MessageDirection.SEND:e.MessageDirection.RECEIVE,isCounted:s.isCounted,isMentioned:!1,content:s.content,messageType:s.messageType,isOffLineMessage:!1,isPersited:s.isPersited,messageId:0,messageUId:r.msgId+"",sentTime:r.msgSendTime+"",sentStatus:e.SentStatus.SENT,receivedTime:r.msgSendTime+"",isStatusMessage:s.isStatusMessage,receivedStatus:e.ReceivedStatus.READ,disableNotification:!1};n.push(o)}}),n},encodeReceivedMessage2ChatRecordMsgDetail:e=>{const t=Xo(e.messageType,e.content);if(!t)return null;const r=JSON.stringify(t.content),n=e.messageType===ss.TEXT?t.content.content:void 0;return{senderNickname:e.senderNickname,senderAvatar:e.senderAvatar||void 0,msgId:e.messageUId,srcId:e.senderUserId,destId:e.targetId,mediaConstructor:e.messageType,mediaAttribute:r,msgPostContent:n,msgSendTime:e.sentTime}}};const Ds="unreadMessageUids";class Us{api;localStore;constructor(e,t,r=qo){this.api=r;const n=`receipt-v2-${e}-${t}`;this.localStore=new It(n)}storeUnreadMessageUids(t){const r=t.filter(t=>t.isCounted&&t.messageDirection!==e.MessageDirection.SEND).map(e=>({uid:e.messageUId,timestamp:Date.now()})),n=[...this.localStore.get(Ds)||[],...r];this.localStore.set(Ds,n)}cleanExpiredMessages(){const e=this.localStore.get(Ds)||[],t=Date.now(),r=e.filter(e=>t-e.timestamp<=1728e5);this.localStore.set(Ds,r)}formatReceiptMessages(t){const r=[],n=[];t.forEach(t=>{t.conversationType===e.ConversationType.PRIVATE?r.push(t):n.push(t)});return{privateReceiptMessages:Object.entries(r.reduce((e,t)=>(e[t.targetId]||(e[t.targetId]=[]),e[t.targetId].push(t.messageUId),e),{})).map(([e,t])=>({destId:Lr.fromString(e),msgId:t.map(e=>Lr.fromString(e))})),groupReceiptMessages:n.reduce((e,t)=>{const r=e.find(e=>e.groupId.equals(Lr.fromString(t.targetId))&&e.userId.equals(Lr.fromString(t.senderUserId)));return r?r.msgId.push(Lr.fromString(t.messageUId)):e.push({groupId:Lr.fromString(t.targetId),userId:Lr.fromString(t.senderUserId),msgId:[Lr.fromString(t.messageUId)]}),e},[])}}filterValidMessages(t){return t.filter(t=>t.isCounted&&t.messageDirection!==e.MessageDirection.SEND)}async sendArrivalReceipts(e){this.storeUnreadMessageUids(e);const t=this.filterValidMessages(e),{privateReceiptMessages:r,groupReceiptMessages:n}=this.formatReceiptMessages(t);r.length&&await this.api.sendPrivateChatArrivalAck({chatMessage:r}),n.length&&await this.api.sendGroupChatArrivalAck({groupChatMessage:n})}async sendReadReceipts(e){const t=this.localStore.get(Ds)||[],r=this.filterValidMessages(e).filter(e=>t.some(t=>t.uid===e.messageUId));try{const{privateReceiptMessages:e,groupReceiptMessages:t}=this.formatReceiptMessages(r);e.length&&await this.api.sendPrivateChatReadAck({chatMessage:e}),t.length&&await this.api.sendGroupChatReadAck({groupChatMessage:t});const n=this.localStore.get(Ds)||[],o=r.map(e=>e.messageUId),s=n.filter(e=>!o.includes(e.uid));this.localStore.set(Ds,s)}catch(e){throw console.error("发送已读回执失败:",e),e}}}let js;var Bs={create(e,t){js=new Us(e,t),js.cleanExpiredMessages()},get:()=>js};let Fs=0,xs=0;function Gs(e,t){Fs=e+100,xs=t+100}function qs(){return xs++,xs}function Vs(){return Fs--,Fs}function Ks(){return xs}async function Hs(e,t){const r=await e.request(t);if(r.ok)return r.value;const n=new Error(r.error.message);throw n.name=r.error.name,n.stack=r.error.stack,n}function zs(e,t,r){if(!e)return null;if(!/^[0-9a-f]+$/i.test(e)||e.length%2!=0)return e;const n=r.lib.CipherParams.create({ciphertext:r.enc.Hex.parse(e)}),o=r.AES.decrypt(n,r.enc.Utf8.parse(t.key),{iv:r.enc.Utf8.parse(t.iv)}).toString(r.enc.Utf8);if(!o)throw new Error("Unable to decrypt a legacy message");return JSON.parse(o)}function $s(e,t,r=tt){const n={...e};return"string"==typeof n.content&&(n.content=zs(n.content,t,r)),n.quotedReply&&"string"==typeof n.quotedReply.content&&(n.quotedReply={...n.quotedReply,content:zs(n.quotedReply.content,t,r)}),n}function Ws(e,t){return new Promise((r,n)=>{const o=e.open(t);o.onsuccess=()=>r(o.result),o.onerror=()=>n(o.error??new Error("Unable to open legacy database"))})}function Js(e,t,r,n,o){return new Promise((s,i)=>{const a=e.transaction(t,"readonly"),c=a.objectStore(t),l=void 0===r?void 0:o.lowerBound(r,!0),u=c.openCursor(l),d=[];let g;u.onsuccess=()=>{const e=u.result;!e||d.length>=n?s({values:d,lastKey:g}):(d.push(e.value),g=e.primaryKey,d.length>=n?s({values:d,lastKey:g}):e.continue())},u.onerror=()=>i(u.error??new Error(`Unable to read ${t}`)),a.onabort=()=>i(a.error??new Error(`Unable to read ${t}`))})}async function Zs(e,t){if("function"!=typeof e.databases)throw new Error("IndexedDB.databases() is required for safe legacy migration");return(await e.databases()).some(e=>e.name===t)}function Xs(e,t){return new Promise((r,n)=>{const o=e.transaction(t,"readonly"),s=o.objectStore(t).count();s.onsuccess=()=>r(s.result),s.onerror=()=>n(s.error??new Error(`Unable to count ${t}`)),o.onabort=()=>n(o.error??new Error(`Unable to count ${t}`))})}async function Ys({appKey:e,userId:t,bridge:r,indexedDBFactory:n=indexedDB,keyRange:o=IDBKeyRange,batchSize:s=200,onProgress:i}){if("complete"===await Hs(r,{type:"read",method:"getLegacyMigrationState",args:[]}))return{migrated:!1,messages:0,dialogStates:0};const a=`im_message_cache_1_${e}_${t}`;if(!await Zs(n,a))return{migrated:!1,messages:0,dialogStates:0};const c=await Ws(n,a),l=function(e,t){const r="im_message_cache_salt_prefix",n=tt.SHA256(`${r}${e}_${t}im_message_cache_salt_suffix`).toString(),o=n.substring(0,16),s=n.substring(16,48),i=tt.SHA256(`${o}:${r}:${t}:${e}`).toString().substring(0,8);return{key:tt.PBKDF2(s,i,{keySize:8,iterations:1e3,hasher:tt.algo.SHA256}).toString().substring(0,32),iv:o}}(e,t);let u=0,d=0;try{if(c.objectStoreNames.contains("messages_new")){let e;for(;;){const t=await Js(c,"messages_new",e,s,o);if(0===t.values.length)break;const n=t.values.map(e=>$s(e,l));if(await Hs(r,{type:"write",method:"importLegacyBatch",args:[{messages:n,dialogStates:[]}]}),u+=n.length,i?.({processedMessages:u,processedDialogStates:d}),e=t.lastKey,t.values.length<s)break}}if(c.objectStoreNames.contains("dialogStates_new")){let e;for(;;){const t=await Js(c,"dialogStates_new",e,s,o);if(0===t.values.length)break;if(await Hs(r,{type:"write",method:"importLegacyBatch",args:[{messages:[],dialogStates:t.values}]}),d+=t.values.length,i?.({processedMessages:u,processedDialogStates:d}),e=t.lastKey,t.values.length<s)break}}return await Hs(r,{type:"write",method:"completeLegacyMigration",args:[]}),{migrated:!0,messages:u,dialogStates:d}}finally{c.close()}}class Qs{appKey;userId;bridge;options;initialization=null;constructor(e,t,r=function(){const e=globalThis;if(!e.acimDatabase)throw new Error("ACIM database preload bridge is unavailable; install the Electron preload entry first");return e.acimDatabase}(),n={}){this.appKey=e,this.userId=t,this.bridge=r,this.options=n}initDB(){return this.initialization||(this.initialization=Hs(this.bridge,{type:"open",options:{appKey:this.appKey,userId:this.userId}}).then(async()=>{const e=this.options.indexedDBFactory??("undefined"==typeof indexedDB?void 0:indexedDB),t=this.options.keyRange??("undefined"==typeof IDBKeyRange?void 0:IDBKeyRange);"manual"!==this.options.legacyMigrationMode&&e&&t&&await Ys(this.migrationOptions({indexedDBFactory:e,keyRange:t}))})),this.initialization}async migrateLegacyDatabase(e){return await this.initDB(),Ys(this.migrationOptions({onProgress:e}))}async getLegacyMigrationInfo(){return await this.initDB(),async function({appKey:e,userId:t,bridge:r,indexedDBFactory:n=indexedDB}){const o=await Hs(r,{type:"read",method:"getLegacyMigrationState",args:[]}),s=`im_message_cache_1_${e}_${t}`;if(!await Zs(n,s))return{state:o,exists:!1,totalMessages:0,totalDialogStates:0};const i=await Ws(n,s);try{return{state:o,exists:!0,totalMessages:i.objectStoreNames.contains("messages_new")?await Xs(i,"messages_new"):0,totalDialogStates:i.objectStoreNames.contains("dialogStates_new")?await Xs(i,"dialogStates_new"):0}}finally{i.close()}}(this.migrationOptions())}async getLegacyMediaReferences(e=0,t=500){return this.read("getLegacyMediaReferences",[e,t])}async deleteLegacyDatabase(){await this.initDB(),await async function({appKey:e,userId:t,indexedDBFactory:r=indexedDB}){const n=`im_message_cache_1_${e}_${t}`;await Zs(r,n)&&await new Promise((e,t)=>{const o=r.deleteDatabase(n);o.onsuccess=()=>e(),o.onerror=()=>t(o.error??new Error("Unable to delete legacy database")),o.onblocked=()=>t(new Error("Legacy database deletion was blocked"))})}({appKey:this.appKey,userId:this.userId,indexedDBFactory:this.options.indexedDBFactory})}async close(){this.initialization&&(await this.initialization,await Hs(this.bridge,{type:"close"}),this.initialization=null)}async deleteDatabase(){await this.close(),await Hs(this.bridge,{type:"delete",options:{appKey:this.appKey,userId:this.userId}})}async addMessages(e,t,r){const n=e.filter(e=>e.isPersited);await this.write("addMessages",[n,ro(t),r])}async getMessages(e,t="0",r=20,n=!0){return this.read("getMessages",[ro(e),t,r,n])}getPreviousMessages(e,t="0",r=20){return this.getMessages(e,t,r,!0)}getMessagesByType(e,t,r="0",n=50,o=!0){return this.read("getMessagesByType",[ro(e),t,r,n,o])}getLatestMessage(e){return this.read("getLatestMessage",[ro(e)])}async getLatestMessages(e){const t=e.map(ro);return this.read("getLatestMessages",[t])}getMessageById(e){return this.read("getMessageById",[e])}getMessageByUId(e){return this.read("getMessageByUId",[e])}getPinnedMessages(e,t=50){return this.read("getPinnedMessages",[ro(e),t])}getMessageIdRange(){return this.read("getMessageIdRange",[])}getDialogLoadedState(e){return this.read("getDialogLoadedState",[e])}async clearConversationCache(e){await this.write("clearConversationCache",[ro(e)])}async clearAllCache(){await this.write("clearAllCache",[])}async removeMessagesByUId(e){await this.write("removeMessagesByUId",[e])}async updateMessageReceiptStatus(t,r){const n=0===r?e.ReceivedStatus.RECEIVED:e.ReceivedStatus.READ;await this.write("updateMessageReceiptStatus",[t.messageUIdList,n])}async markMessagesRead(t,r){await this.write("updateMessageReceiptStatus",[t,e.ReceivedStatus.READ,r])}async setMessagePinned(e,t,r){await this.write("setMessagePinned",[ro(e),t,r])}async setMessageReactions(e,t,r){return this.write("setMessageReactions",[ro(e),t,r])}async unpinAllMessages(e){await this.write("unpinAllMessages",[ro(e)])}clearBurnAfterReadingExpiredMessages(e){return this.write("clearBurnAfterReadingExpiredMessages",[ro(e)])}async upsertMessage(e){await this.write("upsertMessage",[e,ro(e)])}async convertToRecallMessages(e){await this.write("convertToRecallMessages",[e,ss.RECALL])}searchTextMessages(e,t){return this.read("searchTextMessages",[ro(e),t])}searchMessages(e,t=500){return this.read("searchMessages",[e,void 0,t])}migrationOptions(e={}){return{appKey:this.appKey,userId:this.userId,bridge:this.bridge,indexedDBFactory:this.options.indexedDBFactory,keyRange:this.options.keyRange,...e}}async read(e,t){return await this.initDB(),Hs(this.bridge,{type:"read",method:e,args:t})}async write(e,t){return await this.initDB(),Hs(this.bridge,{type:"write",method:e,args:t})}}let ei=null;var ti={create:(e,t,r={})=>(ei=new Qs(e,t,void 0,r),ei),get:()=>ei};function ri(e){if(null==e)return"";if("string"==typeof e)return e;if("number"==typeof e&&Number.isFinite(e))return String(e);if("object"==typeof e&&"function"==typeof e.toString){const t=e.toString;if(t!==Object.prototype.toString){const r=t.call(e);if("string"==typeof r)return r}}return""}function ni(e,t){const r=ri(t.uid),n=(e??[]).filter(e=>ri(e.uid)!==r);return t.content.trim()?[{...t,uid:r},...n]:n}class oi{handlers=new Map;register(e,t){this.handlers.set(e,t)}contains(e){return this.handlers.has(e)}async process(e,t){const r=this.handlers.get(e.messageType);return!!r&&(await r.process(e,t),r.shouldConsume?.(e)??r.consumed)}}class si{consumed;callback;constructor(e,t){this.consumed=e,this.callback=t}async process(e,t){await this.callback(e,t)}}class ii{receivedStatus;receiptType;publish;consumed=!0;constructor(e,t,r){this.receivedStatus=e,this.receiptType=t,this.publish=r}async process(t,r){const n=t.content,o=n.msgIdList;if(null==o)return;const s=(Array.isArray(o)?o:[o]).map(e=>e.toString()),i=new Set(s);for(const t of r)t.messageDirection===e.MessageDirection.SEND&&i.has(t.messageUId)&&t.receivedStatus<this.receivedStatus&&(t.receivedStatus=this.receivedStatus);await this.publish({conversation:{conversationType:t.conversationType,targetId:n.groupId??n.destId??t.targetId},messageUIdList:s},this.receiptType)}}class ai{setMessagePinned;unpinAllMessages;publish;consumed=!1;constructor(e,t,r){this.setMessagePinned=e,this.unpinAllMessages=t,this.publish=r}shouldConsume(t){return t.content.pinned!==e.MessagePinnedOperation.PIN}async process(t,r){const n=t.content.pinned;if(n!==e.MessagePinnedOperation.PIN&&n!==e.MessagePinnedOperation.UNPIN&&n!==e.MessagePinnedOperation.UNPIN_ALL)return;const o={conversationType:t.conversationType,targetId:t.targetId},s=String(t.content.msgId??"");if(n===e.MessagePinnedOperation.UNPIN_ALL)r.forEach(e=>{e.pinned=!1}),await this.unpinAllMessages(o);else{const t=n===e.MessagePinnedOperation.PIN;r.forEach(e=>{e.messageUId===s&&(e.pinned=t)}),await this.setMessagePinned(o,s,t)}await this.publish({conversation:o,messageUId:n===e.MessagePinnedOperation.UNPIN_ALL?void 0:s,operation:n})}}function ci(e){if(null==e)return"";if("string"==typeof e)return e;if("number"==typeof e&&Number.isFinite(e))return String(e);if("object"==typeof e&&"function"==typeof e.toString){const t=e.toString;if(t!==Object.prototype.toString){const r=t.call(e);if("string"==typeof r&&"[object Object]"!==r)return r}}return""}class li{getMessageByUId;setMessageReactions;publish;consumed=!0;constructor(e,t,r){this.getMessageByUId=e,this.setMessageReactions=t,this.publish=r}async process(e,t){const r=e.content,n=ci(r.uid);if(!n||"0"===n)return;const o=ci(r.msgId);if(!o||"0"===o)return;const s={conversationType:e.conversationType,targetId:e.targetId},i=t.find(t=>t!==e&&ci(t.messageUId)===o),a=await this.getMessageByUId(o),c=i??a;if(!c)return void Yi.warn("chat comment notification: target message not found",o);const l=c.reactions??(c===a?void 0:a?.reactions),u={uid:n,msgId:o,content:r.content??"",nickname:r.nickName??r.nickname??"",time:Number(r.time)||0},d=ni(l,u);c.reactions=d;(await this.setMessageReactions(s,o,d)||i)&&await this.publish({conversation:s,messageUId:o,reactions:d,change:u})}}class ui{watcher;pullingMsg=!1;letterbox;serverMsgSeqno=Lr.ZERO;pullOfflineFinished=!1;intervalTimer;retryTimer;latestSyncTimestamp=0;started=!1;notificationProcessor=new oi;constructor(e,t){this.watcher=e,this.letterbox=new ts(t.appkey,on.uid.toString()),this.registerNotificationHandlers()}registerNotificationHandlers(){this.notificationProcessor.register(cs.MESSAGE_READ,new si(!0,e=>{const{toPc:t,destId:r}=e.content;t&&ws.get().clearUnreadCount({conversationType:to(Lr.fromString(r)),targetId:r})})),this.notificationProcessor.register(cs.CHANGE_GROUP_TITLE,new si(!1,e=>{this.handleGroupTitleChangeMessage(e)})),this.notificationProcessor.register(cs.CHANGE_GROUP_AVATAR,new si(!1,e=>{this.handleGroupAvatarChangeMessage(e)}));const t=new si(!1,e=>{this.handleBurnAfterReadingMessage(e)});[cs.PRIVATE_OPEN_BURNAFTERREADING,cs.GROUP_OPEN_BURNAFTERREADING,cs.PRIVATE_CLOSE_BURNAFTERREADING,cs.GROUP_CLOSE_BURNAFTERREADING].forEach(e=>{this.notificationProcessor.register(e,t)});const r=(e,t)=>this.watcher.onReceiptReceived?.(e,t);this.notificationProcessor.register(cs.GROUP_ARRIVAL_RECEIPT,new ii(e.ReceivedStatus.RECEIVED,0,r)),this.notificationProcessor.register(cs.PRIVATE_ARRIVAL_RECEIPT,new ii(e.ReceivedStatus.RECEIVED,0,r)),this.notificationProcessor.register(cs.GROUP_READ_RECEIPT,new ii(e.ReceivedStatus.READ,1,r)),this.notificationProcessor.register(cs.PRIVATE_READ_RECEIPT,new ii(e.ReceivedStatus.READ,1,r));const n=new ai(async(e,t,r)=>{await(ti.get()?.setMessagePinned(e,t,r))},async e=>{await(ti.get()?.unpinAllMessages(e))},e=>this.watcher.onMessagePinnedChanged?.(e));this.notificationProcessor.register(cs.PRIVATE_MESSAGE_PINNED,n),this.notificationProcessor.register(cs.GROUP_MESSAGE_PINNED,n),this.notificationProcessor.register(cs.CHAT_COMMENT,new li(async e=>ti.get()?.getMessageByUId(e),async(e,t,r)=>await(ti.get()?.setMessageReactions(e,t,r))??!1,e=>this.watcher.onMessageReactionsChanged?.(e)))}start(){this.started=!0,this.pullOfflineFinished=!1,this.startPullInterval()}stop(){this.started=!1,this.stopPullInterval(),this.cancelRetryTask()}syncMsg(e){this.serverMsgSeqno=e,this.pullMsg()}startPullInterval(){this.stopPullInterval();this.intervalTimer=setInterval(()=>{Date.now()-this.latestSyncTimestamp>=18e4&&this.pullMsg()},3e4),this.latestSyncTimestamp=Date.now(),this.pullMsg()}stopPullInterval(){this.intervalTimer&&(clearInterval(this.intervalTimer),this.intervalTimer=null)}try2RePullMsg(){this.retryTimer=setTimeout(()=>{this.retryTimer=null,this.pullMsg()},1e3)}cancelRetryTask(){this.retryTimer&&(clearTimeout(this.retryTimer),this.retryTimer=null)}async pullMsg(){if(this.pullingMsg)return;if(!this.started)return;this.cancelRetryTask(),this.pullingMsg=!0;const t=this.letterbox.getInboxOffset();Yi.info(`pullMsg -> time: ${t}`),this.latestSyncTimestamp=Date.now();const{code:r,data:n}=await Eo(t,60);if(r!==e.ErrorCode.SUCCESS)return Yi.warn("pullMsg failed -> code:",r),this.pullingMsg=!1,void(Hi.loader?.getConnectionStatus()==e.ConnectionStatus.CONNECTED&&this.try2RePullMsg());const{offset:o,seqno:s,msg:i,reference:a}=n,c=Object.keys(i).map(e=>({conversationType:to(Lr.fromString(e)),targetId:e}));await ws.get().loadConvsationsIfNotExist(c),Ls.parse(i,a,async(e,r)=>{let n,i=[];try{for(const[e,t]of r.entries()){if(n=e,i=t,0===t.length)return;await this.processMessages(t,!this.pullOfflineFinished)}}catch(e){Yi.error("processMessages error ->",Is(e),"context ->",{inboxTime:t,offset:o?.toString(),seqno:s?.toString(),dialogId:n,isOfflineMessage:!this.pullOfflineFinished,messageCount:i.length,messages:(a=i,a.map(Ss))})}var a;if(e)try{let e;s&&(Lr.isLong(s)?e=s:"string"==typeof s?e=Lr.fromString(s):"number"==typeof s&&(e=Lr.fromNumber(s))),e&&Lr.isLong(e)&&e.ge(this.serverMsgSeqno)&&(this.serverMsgSeqno=e);const t=this.serverMsgSeqno.lessThanOrEqual(o);Yi.info(`pullMsg success -> syncTime: ${o}, finished: ${t}`),this.letterbox?.setInboxOffset(o),this.pullingMsg=!1,t&&!this.pullOfflineFinished&&(this.pullOfflineFinished=!0,this.watcher.pullFinished&&this.watcher.pullFinished()),t||this.pullMsg()}catch(e){Yi.error("setPullMsgDone error",e),this.pullingMsg=!1}})}async processMessages(e,t){const r={conversationType:e[0].conversationType,targetId:e[0].targetId};let n=[];const o=[];let s=[];for(const r of e)this.notificationProcessor.contains(r.messageType)&&await this.notificationProcessor.process(r,e)||(ls(r.messageType)&&Wo.has(r.content.messageUId)?r.content.messageUId?(Wo.remove(r.content.messageUId),s.push(r.content.messageUId)):Yi.error("recallMessage's messageUId is undefined",Ss(r)):r.messageUId?(r.isOffLineMessage=t,(!r.messageId||r.messageId>Ks())&&(r.messageId=qs()),ws.get().setConversationCacheByMessage(r),n.push(r),ls(r.messageType)&&o.push(n.length-1)):Yi.error("message's messageUId is undefined",Ss(r)));let i=[];for(let e=o.length-1;e>=0;e--){const t=o[e],r=n[t],a=r.content,c=n.findIndex(e=>e.messageUId===a.messageUId);if(-1!==c){const e=n[c];r.messageId=e.messageId,r.sentTime=e.sentTime,n[c]=r,n[t]=e,i.push(t)}else s.push(a.messageUId),i.push(t)}if(i.length){let e=[];n.forEach((t,r)=>{i.includes(r)||e.push(t)}),n=e}const a=n;if(a.length&&(await(ti.get()?.addMessages(a,{conversationType:a[0].conversationType,targetId:a[0].targetId})),this.handleBatchMessages(a),Bs.get()?.sendArrivalReceipts(a)),s.length){await(ti.get()?.convertToRecallMessages(s)),this.watcher.onRecall?.(s);const e=await(ti.get()?.getLatestMessage(r));ws.get().updateLatestMessage(r,e)}if(n.some(e=>e.isPersited)){const e=await(ti.get()?.getLatestMessage(r));ws.get().updateLatestMessage(r,e)}}handleBurnAfterReadingMessage(e){const t=e.content,r=e.conversationType,n=e.targetId,{templateId:o,burnAfterReadingTime:s}=t,i=60010010===o||60010011===o;ws.get().addStatus({conversationType:r,targetId:n,burnAfterReadingFlag:i,burnAfterReadingTime:i?s:null},!0)}handleGroupTitleChangeMessage(e){const t=e.content,r=t.groupUin??e.targetId;ws.get().addStatus({conversationType:e.conversationType,targetId:r,dialogTitle:t.newTitle},!0)}handleGroupAvatarChangeMessage(e){const t=e.content,r=t.groupId??e.targetId;ws.get().addStatus({conversationType:e.conversationType,targetId:r,smallAvatarUrl:t.smallAvatarUrl},!0)}async handleBatchMessages(t){const r=t.filter(t=>t.messageDirection!==e.MessageDirection.SEND||!t.messageId||!zo.has(t.messageId)||(zo.remove(t.messageId),!1));r.length&&this.watcher.batchMessage?.(r)}}const di={filters:[],displayTags:!1};let gi=di,pi=0;async function fi(){const t=++pi;return(async()=>{try{const n=await xo();return t!==pi?gi:n.code!==e.ErrorCode.SUCCESS?(Yi.warn("getDialogFilterConfig failed",n.code,n.msg),gi=di,gi):(r=n.data?.config,gi=r?{filters:(r.filters??[]).filter(e=>{const t=e.title?.trim(),r=e.id?.trim();if(!t||!r||"0"===r)return!1;const n=e.colorId??-1;return!(n<-1||n>7)}),displayTags:Boolean(r.displayTags)}:di,gi)}catch(e){return t!==pi||(Yi.warn("getDialogFilterConfig threw",e),gi=di),gi}var r})()}class hi{messageType;content;isPersited;isCounted;isStatusMessage;constructor(e,t,r=!0,n=!0,o=!1){this.messageType=e,this.content=t,o?(this.isPersited=!1,this.isCounted=!1):(this.isPersited=r,this.isCounted=n),this.isStatusMessage=o}}const yi=(e,t,r,n)=>function(o){return new hi(e,o,t,r,n)},mi=yi(ss.TEXT,!0,!0,!1),vi=yi(ss.IMAGE,!0,!0,!1),bi=yi(ss.GIF,!0,!0,!1),Ci=yi(ss.AUDIO,!0,!0,!1),wi=yi(ss.FILE,!0,!0,!1),Oi=yi(ss.VIDEO,!0,!0,!1);let Ii=yi(ss.LOCATION,!0,!0,!1),Si=yi(ss.CHAT_RECORD,!0,!0,!1),Ei=yi(ss.CONTACT,!0,!0,!1),Ri=yi(ss.GROUP_INVITATION,!0,!0,!1),Ti=yi(ss.REDPACKET,!0,!0,!1),Ai=yi(ss.TRANSFER,!0,!0,!1),_i=yi(ss.LINK,!0,!0,!1);const ki=yi(cs.GROUP_ARRIVAL_RECEIPT,!1,!1,!1),Mi=yi(cs.GROUP_READ_RECEIPT,!1,!1,!1),Ni=yi(cs.PRIVATE_ARRIVAL_RECEIPT,!1,!1,!1),Pi=yi(cs.PRIVATE_READ_RECEIPT,!1,!1,!1),Li=yi(cs.PRIVATE_OPEN_BURNAFTERREADING,!1,!1,!1),Di=yi(cs.PRIVATE_CLOSE_BURNAFTERREADING,!1,!1,!1),Ui=yi(cs.GROUP_OPEN_BURNAFTERREADING,!1,!1,!1),ji=yi(cs.GROUP_CLOSE_BURNAFTERREADING,!1,!1,!1),Bi=yi(cs.MESSAGE_READ,!1,!1,!1),Fi=yi(cs.CHANGE_GROUP_TITLE,!0,!1,!1),xi=yi(cs.CHANGE_GROUP_AVATAR,!0,!1,!1),Gi=yi(cs.PRIVATE_MESSAGE_PINNED,!0,!1,!1),qi=yi(cs.GROUP_MESSAGE_PINNED,!0,!1,!1),Vi=yi(cs.CHAT_COMMENT,!1,!1,!1),Ki=yi(ss.RECALL,!0,!1,!1);class Hi{options;connectionStatus=e.ConnectionStatus.DISCONNECTED;isInternalConnected=!1;watcher;messageLoader;static _loader;static init(e){return this._loader||(this._loader=new Hi(e)),this._loader}static get loader(){return this._loader}constructor(e){this.options=e,this.watcher={onConnecting:void 0,onConnected:void 0,onDisconnect:void 0,onSuspend:void 0,pullFinished:void 0,batchMessage:void 0,conversationState:void 0,onPush:void 0,onRecall:void 0,onReceiptReceived:void 0,onMessagePinnedChanged:void 0,onMessageReactionsChanged:void 0,onDialogFilterConfig:void 0},un.setServerInfo(this.getWebSocketUrl()),un.setCallback({status:this.connectionStatusListener.bind(this),message:this.messageListener.bind(this)}),this.registerMessage()}getWebSocketUrl(){const e=this.options?.serverInfo;return dt(e)?ut(t=e)&&/wss?:\/\//.test(t)?e:"ws://"+e:"wss://web.sugramapp.com:3443";var t}registerMessage(){Zo(ss.TEXT,mi),Zo(ss.IMAGE,vi),Zo(ss.GIF,bi),Zo(ss.AUDIO,Ci),Zo(ss.FILE,wi),Zo(ss.VIDEO,Oi),Zo(ss.RECALL,Ki),Zo(ss.LOCATION,Ii),Zo(ss.CHAT_RECORD,Si),Zo(ss.CONTACT,Ei),Zo(ss.GROUP_INVITATION,Ri),Zo(ss.REDPACKET,Ti),Zo(ss.TRANSFER,Ai),Zo(ss.LINK,_i),Zo(cs.GROUP_ARRIVAL_RECEIPT,ki),Zo(cs.GROUP_READ_RECEIPT,Mi),Zo(cs.PRIVATE_ARRIVAL_RECEIPT,Ni),Zo(cs.PRIVATE_READ_RECEIPT,Pi),Zo(cs.PRIVATE_OPEN_BURNAFTERREADING,Li),Zo(cs.PRIVATE_CLOSE_BURNAFTERREADING,Di),Zo(cs.GROUP_OPEN_BURNAFTERREADING,Ui),Zo(cs.GROUP_CLOSE_BURNAFTERREADING,ji),Zo(cs.MESSAGE_READ,Bi),Zo(cs.CHANGE_GROUP_TITLE,Fi),Zo(cs.CHANGE_GROUP_AVATAR,xi),Zo(cs.PRIVATE_MESSAGE_PINNED,Gi),Zo(cs.GROUP_MESSAGE_PINNED,qi),Zo(cs.CHAT_COMMENT,Vi)}async connect(){if(this.connectionStatus===e.ConnectionStatus.CONNECTED)return{code:e.ErrorCode.SUCCESS};if(this.connectionStatus===e.ConnectionStatus.CONNECTING)return{code:e.ErrorCode.BIZ_ERROR_CONNECTING};un.close();const t=await un.connect();return this.isInternalConnected=!0,{code:t}}reconnect(){return this.isInternalConnected?Promise.resolve({code:e.ErrorCode.CAN_NOT_RECONNECT}):this.connect()}disconnect(){return this.isInternalConnected=!1,un.close(),Promise.resolve()}async setUserLogged(){$i.setUserId(on.uid.toString()),ws.get().destroyed(),ws.create(this.options.appkey,on.uid.toString(),this.watcher.conversationState),Bs.create(this.options.appkey,on.uid.toString()),this.messageLoader?.stop(),this.messageLoader=new ui(this.watcher,this.options),zo.reset(),Wo.reset(),Yo.reset();const t=ti.create(this.options.appkey,on.uid.toString(),{legacyMigrationMode:this.options.legacyMigrationMode??"automatic"});await t.initDB();const r=await t.getMessageIdRange();if(r){const{oldest:e,newest:t}=r;Gs(e,t)}else Gs(1e4,1e4);this.getConnectionStatus()===e.ConnectionStatus.CONNECTED&&this.handleUserConnected()}async setUserLogout(){this.messageLoader?.stop(),await(ti.get()?.close());const e=(pi+=1,gi=di,gi);this.watcher.onDialogFilterConfig?.(e)}getConnectionStatus(){return this.connectionStatus}assignWatcher(e){ft(this.watcher).forEach(t=>{if(Object.prototype.hasOwnProperty.call(e,t)){const r=e[t];this.watcher[t]=at(r)?r:void 0}})}resetWatcher(){ft(this.watcher).forEach(e=>{this.watcher[e]=void 0})}async connectionStatusListener(t){switch(this.connectionStatus=t,t){case e.ConnectionStatus.BLOCKED:case e.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT:case e.ConnectionStatus.DISCONNECT_BY_SERVER:this.handleDisconnect();break;case e.ConnectionStatus.CONNECTING:this.handleConnecting();break;case e.ConnectionStatus.CONNECTED:this.handleConnected();break;case e.ConnectionStatus.DISCONNECTED:this.handleDisconnect()}}handleConnecting(){this.watcher.onConnecting?.()}handleConnected(){on.isActive&&(this.handleUserConnected(),(async()=>{const t=(new Date).getTime(),{code:r,data:n}=await bo();if(r===e.ErrorCode.SUCCESS){const{currentTimeMillis:e}=n;Vo=e.toNumber()-t}})()),this.watcher.onConnected?.(),Yi.cleanupOldLogs()}handleDisconnect(){this.watcher.onDisconnect?.(),this.messageLoader?.stop()}handleSuspend(){this.watcher.onSuspend?.()}handleUserConnected(){Yi.info("user connected -> ",on.uid.toString()),this.messageLoader||(this.messageLoader=new ui(this.watcher,this.options)),this.messageLoader?.start(),fi().then(e=>{this.watcher.onDialogFilterConfig?.(e)}),setTimeout(()=>{this.connectionStatus===e.ConnectionStatus.CONNECTED&&ws.get().syncConversationStatus()},2e3)}messageListener(e,t){if(e===At.NewMessagePush){const e=Dn.decode(t);this.messageLoader?.syncMsg(e.seqno)}else e===At.DialogChangedPush?ws.get().syncConversationStatus():this.watcher.onPush?.(e,t)}}class zi{static instance;messageQueue;config;flushTimer=null;userId=null;isFlushing=!1;constructor(e){this.config=e,this.messageQueue=new Et,this.startFlushTimer()}static getInstance(e){return zi.instance||(zi.instance=new zi(e)),zi.instance}trackEvent(e,t){const r={type:e,...this.collectAutomaticProperties(),content:t};this.messageQueue.enqueue(r),this.config.debugMode&&this.flush()}collectAutomaticProperties(){return{user_id:this.userId,os:"web",appVersion:Tt.appVersion,eventTime:Date.now()}}async flush(){if(!this.shouldFlush()||this.isFlushing)return;this.isFlushing=!0;let e=[];try{if(e=await this.messageQueue.dequeue(this.config.flushBulkSize),0===e.length)return;const t=await async function(e){const t=JSON.stringify(e),r=(new TextEncoder).encode(t);if("CompressionStream"in window){const e=new Response(r).body?.pipeThrough(new CompressionStream("gzip"));if(e){const t=await new Response(e).arrayBuffer();return btoa(String.fromCharCode(...new Uint8Array(t)))}}return btoa(t)}(e);await this.sendData(t)}catch(t){console.error("Failed to flush analytics data:",t),await this.messageQueue.requeueToEnd(e)}finally{this.isFlushing=!1}}shouldFlush(){return Hi.loader?.getConnectionStatus()==e.ConnectionStatus.CONNECTED}async sendData(t){try{const r=await Fo(t);if(r.code!==e.ErrorCode.SUCCESS)throw new Error(`Socket error! status: ${r.code}`)}catch(e){throw e}}startFlushTimer(){this.config.flushInterval>0&&(this.flushTimer=setInterval(()=>{this.flush()},this.config.flushInterval))}setUserId(e){this.userId=e}destroy(){this.flushTimer&&clearInterval(this.flushTimer),this.messageQueue.clear()}}var $i=zi.getInstance({flushInterval:6e4,flushBulkSize:100,debugMode:!1});const Wi=wt.get("ACIM-slf")===(new Date).getDate();const Ji={[e.LogLevel.DEBUG]:console.debug,[e.LogLevel.INFO]:console.info,[e.LogLevel.WARN]:console.warn,[e.LogLevel.ERROR]:console.error,[e.LogLevel.FATAL]:console.log,[e.LogLevel.NONE]:null},Zi={[e.LogLevel.DEBUG]:console.debug,[e.LogLevel.INFO]:console.info,[e.LogLevel.WARN]:console.warn,[e.LogLevel.ERROR]:console.error,[e.LogLevel.FATAL]:console.log,[e.LogLevel.NONE]:null},Xi=e=>ut(e)||ot(e)||it(e)||st(e)?e:e instanceof Error?JSON.stringify({name:e.name,message:e.message,stack:e.stack}):JSON.stringify(e);var Yi=new class{debug;info;warn;error;fatal;outLevel=e.LogLevel.WARN;tag;logStdout;constructor(t){this.tag=t,this.debug=this.log.bind(this,e.LogLevel.DEBUG),this.info=this.log.bind(this,e.LogLevel.INFO),this.warn=this.log.bind(this,e.LogLevel.WARN),this.error=this.log.bind(this,e.LogLevel.ERROR),this.fatal=this.log.bind(this,e.LogLevel.FATAL)}async addLog(t,r){const n={timestamp:(new Date).toISOString(),level:t,content:r};try{t===e.LogLevel.ERROR&&$i.trackEvent("error_log",{timestamp:n.timestamp,content:n.content})}catch(e){console.error("Failed to add log:",e)}}getCallerLocation(){try{const e=(new Error).stack;if(!e)return null;const t=e.split("\n");for(let e=4;e<t.length;e++){const r=t[e].trim();if(r&&!r.includes("logger.ts")&&!r.includes("at Logger.")){const e=r.match(/at\s+(?:.*?\s+)?\(?(.+?):(\d+):(\d+)\)?/)||r.match(/at\s+(.+?):(\d+):(\d+)/);if(e){const t=e[1],r=e[2];return`${t.split("/").pop()||t.split("\\").pop()||t}:${r}`}}}}catch(e){}return null}defaultStdout(e,t,...r){const n=Ji[e];if(nt(n)){const o=this.getCallerLocation(),s=Zi[e];s?o?s(`${t} @ ${o}:`,...r):s(`${t}:`,...r):o?n(`${t} @ ${o}:`,...r):n(`${t}:`,...r)}}reqInfo(...e){this.info(...e)}setLogLevel(e){this.outLevel=e}setLogStdout(e){this.logStdout=e}log(t,...r){if(Wi){const n=`${(new Date).toISOString()}[${this.tag}][${e.LogLevel[t]}]`;return this.defaultStdout(t,n,...r),void this.addLog(t,r.map(Xi).join(" "))}if(t<this.outLevel)return;const n=`${(new Date).toISOString()}[${this.tag}][${e.LogLevel[t]}]`,o=`${n} - ${r.map(Xi).join(" ")}`;if(this.logStdout)return this.logStdout(t,o),void this.addLog(t,r.map(Xi).join(" "));this.defaultStdout(t,n,...r),this.addLog(t,r.map(Xi).join(" "))}async exportLogs(){return[]}async clearLogs(){}async cleanupOldLogs(){}}("ACLog");const Qi=dt,ea=ot,ta=st,ra=ct,na=lt,oa=t=>ot(t)&&Object.prototype.hasOwnProperty.call(e.ConversationType,t),sa=t=>{if(!ct(t))return!1;const{conversationType:r,targetId:n,channelId:o}=t;return ot(r)&&Object.prototype.hasOwnProperty.call(e.ConversationType,r)&&(ot(n)||dt(n)||Lr.isLong(n)&&!n.isZero())&&(!nt(o)||ut(o)&&!/_/g.test(o)&&o.length<=20)};class ia extends Error{constructor(e){super(e),this.name="ACAssertError"}}const aa=(e,t,r,n=!1)=>{if(!ca(e,t,r,n))throw new ia(`'${e}' is invalid: ${JSON.stringify(t)}`)},ca=(e,t,r,n=!1)=>{const o=n&&!r(t)||!n&&nt(t)&&!r(t);return o&&Yi.error(`'${e}' is invalid: ${JSON.stringify(t)}`),!o};var la,ua,da,ga,pa={exports:{}},fa={exports:{}},ha={exports:{}};var ya,ma={};var va,ba,Ca,wa,Oa,Ia,Sa,Ea,Ra,Ta,Aa,_a,ka,Ma,Na,Pa,La,Da,Ua,ja={};function Ba(){return va||(va=1,function(e){var t=e,r=Ic(),n=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function o(e,t){var r=0,o={};for(t|=0;r<e.length;)o[n[r+t]]=e[r++];return o}t.basic=o([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),t.defaults=o([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",r.emptyArray,null]),t.long=o([0,0,0,1,1],7),t.mapKey=o([0,0,0,5,5,0,0,0,1,1,0,2],2),t.packed=o([1,5,0,0,0,5,5,0,0,0,1,1,0])}(ja)),ja}function Fa(){if(Ca)return ba;Ca=1,ba=i;var e=Sc();((i.prototype=Object.create(e.prototype)).constructor=i).className="Field";var t,r=Ec(),n=Ba(),o=Ic(),s=/^required|optional|repeated$/;function i(t,r,i,a,c,l,u){if(o.isObject(a)?(u=c,l=a,a=c=void 0):o.isObject(c)&&(u=l,l=c,c=void 0),e.call(this,t,l),!o.isInteger(r)||r<0)throw TypeError("id must be a non-negative integer");if(!o.isString(i))throw TypeError("type must be a string");if(void 0!==a&&!s.test(a=a.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(void 0!==c&&!o.isString(c))throw TypeError("extend must be a string");"proto3_optional"===a&&(a="optional"),this.rule=a&&"optional"!==a?a:void 0,this.type=i,this.id=r,this.extend=c||void 0,this.required="required"===a,this.optional=!this.required,this.repeated="repeated"===a,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!o.Long&&void 0!==n.long[i],this.bytes="bytes"===i,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=u}return i.fromJSON=function(e,t){return new i(e,t.id,t.type,t.rule,t.extend,t.options,t.comment)},Object.defineProperty(i.prototype,"packed",{get:function(){return null===this._packed&&(this._packed=!1!==this.getOption("packed")),this._packed}}),i.prototype.setOption=function(t,r,n){return"packed"===t&&(this._packed=null),e.prototype.setOption.call(this,t,r,n)},i.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return o.toObject(["rule","optional"!==this.rule&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},i.prototype.resolve=function(){if(this.resolved)return this;if(void 0===(this.typeDefault=n.defaults[this.type])?(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof t?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]):this.options&&this.options.proto3_optional&&(this.typeDefault=null),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof r&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(void 0===this.options.packed||!this.resolvedType||this.resolvedType instanceof r)||delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=o.Long.fromNumber(this.typeDefault,"u"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&"string"==typeof this.typeDefault){var s;o.base64.test(this.typeDefault)?o.base64.decode(this.typeDefault,s=o.newBuffer(o.base64.length(this.typeDefault)),0):o.utf8.write(this.typeDefault,s=o.newBuffer(o.utf8.length(this.typeDefault)),0),this.typeDefault=s}return this.map?this.defaultValue=o.emptyObject:this.repeated?this.defaultValue=o.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof t&&(this.parent.ctor.prototype[this.name]=this.defaultValue),e.prototype.resolve.call(this)},i.d=function(e,t,r,n){return"function"==typeof t?t=o.decorateType(t).name:t&&"object"==typeof t&&(t=o.decorateEnum(t).name),function(s,a){o.decorateType(s.constructor).add(new i(a,e,t,r,{default:n}))}},i._configure=function(e){t=e},ba}function xa(){if(Oa)return wa;Oa=1,wa=n;var e=Sc();((n.prototype=Object.create(e.prototype)).constructor=n).className="OneOf";var t=Fa(),r=Ic();function n(t,r,n,o){if(Array.isArray(r)||(n=r,r=void 0),e.call(this,t,n),void 0!==r&&!Array.isArray(r))throw TypeError("fieldNames must be an Array");this.oneof=r||[],this.fieldsArray=[],this.comment=o}function o(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}return n.fromJSON=function(e,t){return new n(e,t.oneof,t.options,t.comment)},n.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return r.toObject(["options",this.options,"oneof",this.oneof,"comment",t?this.comment:void 0])},n.prototype.add=function(e){if(!(e instanceof t))throw TypeError("field must be a Field");return e.parent&&e.parent!==this.parent&&e.parent.remove(e),this.oneof.push(e.name),this.fieldsArray.push(e),e.partOf=this,o(this),this},n.prototype.remove=function(e){if(!(e instanceof t))throw TypeError("field must be a Field");var r=this.fieldsArray.indexOf(e);if(r<0)throw Error(e+" is not a member of "+this);return this.fieldsArray.splice(r,1),(r=this.oneof.indexOf(e.name))>-1&&this.oneof.splice(r,1),e.partOf=null,this},n.prototype.onAdd=function(t){e.prototype.onAdd.call(this,t);for(var r=0;r<this.oneof.length;++r){var n=t.get(this.oneof[r]);n&&!n.partOf&&(n.partOf=this,this.fieldsArray.push(n))}o(this)},n.prototype.onRemove=function(t){for(var r,n=0;n<this.fieldsArray.length;++n)(r=this.fieldsArray[n]).parent&&r.parent.remove(r);e.prototype.onRemove.call(this,t)},n.d=function(){for(var e=new Array(arguments.length),t=0;t<arguments.length;)e[t]=arguments[t++];return function(t,o){r.decorateType(t.constructor).add(new n(o,e)),Object.defineProperty(t,o,{get:r.oneOfGetter(e),set:r.oneOfSetter(e)})}},wa}function Ga(){if(Sa)return Ia;Sa=1,Ia=c;var e=Sc();((c.prototype=Object.create(e.prototype)).constructor=c).className="Namespace";var t,r,n,o=Fa(),s=Ic(),i=xa();function a(e,t){if(e&&e.length){for(var r={},n=0;n<e.length;++n)r[e[n].name]=e[n].toJSON(t);return r}}function c(t,r){e.call(this,t,r),this.nested=void 0,this._nestedArray=null}function l(e){return e._nestedArray=null,e}return c.fromJSON=function(e,t){return new c(e,t.options).addJSON(t.nested)},c.arrayToJSON=a,c.isReservedId=function(e,t){if(e)for(var r=0;r<e.length;++r)if("string"!=typeof e[r]&&e[r][0]<=t&&e[r][1]>t)return!0;return!1},c.isReservedName=function(e,t){if(e)for(var r=0;r<e.length;++r)if(e[r]===t)return!0;return!1},Object.defineProperty(c.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=s.toArray(this.nested))}}),c.prototype.toJSON=function(e){return s.toObject(["options",this.options,"nested",a(this.nestedArray,e)])},c.prototype.addJSON=function(e){if(e)for(var s,i=Object.keys(e),a=0;a<i.length;++a)s=e[i[a]],this.add((void 0!==s.fields?t.fromJSON:void 0!==s.values?n.fromJSON:void 0!==s.methods?r.fromJSON:void 0!==s.id?o.fromJSON:c.fromJSON)(i[a],s));return this},c.prototype.get=function(e){return this.nested&&this.nested[e]||null},c.prototype.getEnum=function(e){if(this.nested&&this.nested[e]instanceof n)return this.nested[e].values;throw Error("no such enum: "+e)},c.prototype.add=function(e){if(!(e instanceof o&&void 0!==e.extend||e instanceof t||e instanceof i||e instanceof n||e instanceof r||e instanceof c))throw TypeError("object must be a valid nested object");if(this.nested){var s=this.get(e.name);if(s){if(!(s instanceof c&&e instanceof c)||s instanceof t||s instanceof r)throw Error("duplicate name '"+e.name+"' in "+this);for(var a=s.nestedArray,u=0;u<a.length;++u)e.add(a[u]);this.remove(s),this.nested||(this.nested={}),e.setOptions(s.options,!0)}}else this.nested={};return this.nested[e.name]=e,e.onAdd(this),l(this)},c.prototype.remove=function(t){if(!(t instanceof e))throw TypeError("object must be a ReflectionObject");if(t.parent!==this)throw Error(t+" is not a member of "+this);return delete this.nested[t.name],Object.keys(this.nested).length||(this.nested=void 0),t.onRemove(this),l(this)},c.prototype.define=function(e,t){if(s.isString(e))e=e.split(".");else if(!Array.isArray(e))throw TypeError("illegal path");if(e&&e.length&&""===e[0])throw Error("path must be relative");for(var r=this;e.length>0;){var n=e.shift();if(r.nested&&r.nested[n]){if(!((r=r.nested[n])instanceof c))throw Error("path conflicts with non-namespace objects")}else r.add(r=new c(n))}return t&&r.addJSON(t),r},c.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t<e.length;)e[t]instanceof c?e[t++].resolveAll():e[t++].resolve();return this.resolve()},c.prototype.lookup=function(e,t,r){if("boolean"==typeof t?(r=t,t=void 0):t&&!Array.isArray(t)&&(t=[t]),s.isString(e)&&e.length){if("."===e)return this.root;e=e.split(".")}else if(!e.length)return this;if(""===e[0])return this.root.lookup(e.slice(1),t);var n=this.get(e[0]);if(n){if(1===e.length){if(!t||t.indexOf(n.constructor)>-1)return n}else if(n instanceof c&&(n=n.lookup(e.slice(1),t,!0)))return n}else for(var o=0;o<this.nestedArray.length;++o)if(this._nestedArray[o]instanceof c&&(n=this._nestedArray[o].lookup(e,t,!0)))return n;return null===this.parent||r?null:this.parent.lookup(e,t)},c.prototype.lookupType=function(e){var r=this.lookup(e,[t]);if(!r)throw Error("no such type: "+e);return r},c.prototype.lookupEnum=function(e){var t=this.lookup(e,[n]);if(!t)throw Error("no such Enum '"+e+"' in "+this);return t},c.prototype.lookupTypeOrEnum=function(e){var r=this.lookup(e,[t,n]);if(!r)throw Error("no such Type or Enum '"+e+"' in "+this);return r},c.prototype.lookupService=function(e){var t=this.lookup(e,[r]);if(!t)throw Error("no such Service '"+e+"' in "+this);return t},c._configure=function(e,o,s){t=e,r=o,n=s},Ia}function qa(){if(Ra)return Ea;Ra=1,Ea=n;var e=Fa();((n.prototype=Object.create(e.prototype)).constructor=n).className="MapField";var t=Ba(),r=Ic();function n(t,n,o,s,i,a){if(e.call(this,t,n,s,void 0,void 0,i,a),!r.isString(o))throw TypeError("keyType must be a string");this.keyType=o,this.resolvedKeyType=null,this.map=!0}return n.fromJSON=function(e,t){return new n(e,t.id,t.keyType,t.type,t.options,t.comment)},n.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return r.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},n.prototype.resolve=function(){if(this.resolved)return this;if(void 0===t.mapKey[this.keyType])throw Error("invalid key type: "+this.keyType);return e.prototype.resolve.call(this)},n.d=function(e,t,o){return"function"==typeof o?o=r.decorateType(o).name:o&&"object"==typeof o&&(o=r.decorateEnum(o).name),function(s,i){r.decorateType(s.constructor).add(new n(i,e,t,o))}},Ea}function Va(){if(Aa)return Ta;Aa=1,Ta=r;var e=Sc();((r.prototype=Object.create(e.prototype)).constructor=r).className="Method";var t=Ic();function r(r,n,o,s,i,a,c,l,u){if(t.isObject(i)?(c=i,i=a=void 0):t.isObject(a)&&(c=a,a=void 0),void 0!==n&&!t.isString(n))throw TypeError("type must be a string");if(!t.isString(o))throw TypeError("requestType must be a string");if(!t.isString(s))throw TypeError("responseType must be a string");e.call(this,r,c),this.type=n||"rpc",this.requestType=o,this.requestStream=!!i||void 0,this.responseType=s,this.responseStream=!!a||void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=l,this.parsedOptions=u}return r.fromJSON=function(e,t){return new r(e,t.type,t.requestType,t.responseType,t.requestStream,t.responseStream,t.options,t.comment,t.parsedOptions)},r.prototype.toJSON=function(e){var r=!!e&&Boolean(e.keepComments);return t.toObject(["type","rpc"!==this.type&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",r?this.comment:void 0,"parsedOptions",this.parsedOptions])},r.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),e.prototype.resolve.call(this))},Ta}function Ka(){if(ka)return _a;ka=1,_a=o;var e=Ga();((o.prototype=Object.create(e.prototype)).constructor=o).className="Service";var t=Va(),r=Ic(),n=yr();function o(t,r){e.call(this,t,r),this.methods={},this._methodsArray=null}function s(e){return e._methodsArray=null,e}return o.fromJSON=function(e,r){var n=new o(e,r.options);if(r.methods)for(var s=Object.keys(r.methods),i=0;i<s.length;++i)n.add(t.fromJSON(s[i],r.methods[s[i]]));return r.nested&&n.addJSON(r.nested),n.comment=r.comment,n},o.prototype.toJSON=function(t){var n=e.prototype.toJSON.call(this,t),o=!!t&&Boolean(t.keepComments);return r.toObject(["options",n&&n.options||void 0,"methods",e.arrayToJSON(this.methodsArray,t)||{},"nested",n&&n.nested||void 0,"comment",o?this.comment:void 0])},Object.defineProperty(o.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=r.toArray(this.methods))}}),o.prototype.get=function(t){return this.methods[t]||e.prototype.get.call(this,t)},o.prototype.resolveAll=function(){for(var t=this.methodsArray,r=0;r<t.length;++r)t[r].resolve();return e.prototype.resolve.call(this)},o.prototype.add=function(r){if(this.get(r.name))throw Error("duplicate name '"+r.name+"' in "+this);return r instanceof t?(this.methods[r.name]=r,r.parent=this,s(this)):e.prototype.add.call(this,r)},o.prototype.remove=function(r){if(r instanceof t){if(this.methods[r.name]!==r)throw Error(r+" is not a member of "+this);return delete this.methods[r.name],r.parent=null,s(this)}return e.prototype.remove.call(this,r)},o.prototype.create=function(e,t,o){for(var s,i=new n.Service(e,t,o),a=0;a<this.methodsArray.length;++a){var c=r.lcFirst((s=this._methodsArray[a]).resolve().name).replace(/[^$\w_]/g,"");i[c]=r.codegen(["r","c"],r.isReserved(c)?c+"_":c)("return this.rpcCall(m,q,s,r,c)")({m:s,q:s.resolvedRequestType.ctor,s:s.resolvedResponseType.ctor})}return i},_a}function Ha(){if(Na)return Ma;Na=1,Ma=t;var e=or();function t(e){if(e)for(var t=Object.keys(e),r=0;r<t.length;++r)this[t[r]]=e[t[r]]}return t.create=function(e){return this.$type.create(e)},t.encode=function(e,t){return this.$type.encode(e,t)},t.encodeDelimited=function(e,t){return this.$type.encodeDelimited(e,t)},t.decode=function(e){return this.$type.decode(e)},t.decodeDelimited=function(e){return this.$type.decodeDelimited(e)},t.verify=function(e){return this.$type.verify(e)},t.fromObject=function(e){return this.$type.fromObject(e)},t.toObject=function(e,t){return this.$type.toObject(e,t)},t.prototype.toJSON=function(){return this.$type.toObject(this,e.toJSONOptions)},Ma}function za(){if(La)return Pa;La=1,Pa=function(o){var s=r.codegen(["r","l"],o.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(o.fieldsArray.filter(function(e){return e.map}).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");o.group&&s("if((t&7)===4)")("break");s("switch(t>>>3){");for(var i=0;i<o.fieldsArray.length;++i){var a=o._fieldsArray[i].resolve(),c=a.resolvedType instanceof e?"int32":a.type,l="m"+r.safeProp(a.name);s("case %i: {",a.id),a.map?(s("if(%s===util.emptyObject)",l)("%s={}",l)("var c2 = r.uint32()+r.pos"),void 0!==t.defaults[a.keyType]?s("k=%j",t.defaults[a.keyType]):s("k=null"),void 0!==t.defaults[c]?s("value=%j",t.defaults[c]):s("value=null"),s("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",a.keyType)("case 2:"),void 0===t.basic[c]?s("value=types[%i].decode(r,r.uint32())",i):s("value=r.%s()",c),s("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),void 0!==t.long[a.keyType]?s('%s[typeof k==="object"?util.longToHash(k):k]=value',l):s("%s[k]=value",l)):a.repeated?(s("if(!(%s&&%s.length))",l,l)("%s=[]",l),void 0!==t.packed[c]&&s("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",l,c)("}else"),void 0===t.basic[c]?s(a.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",l,i):s("%s.push(r.%s())",l,c)):void 0===t.basic[c]?s(a.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",l,i):s("%s=r.%s()",l,c),s("break")("}")}for(s("default:")("r.skipType(t&7)")("break")("}")("}"),i=0;i<o._fieldsArray.length;++i){var u=o._fieldsArray[i];u.required&&s("if(!m.hasOwnProperty(%j))",u.name)("throw util.ProtocolError(%j,{instance:m})",n(u))}return s("return m")};var e=Ec(),t=Ba(),r=Ic();function n(e){return"missing required '"+e.name+"'"}return Pa}function $a(){if(Ua)return Da;Ua=1,Da=function(e){var s=t.codegen(["m"],e.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),i=e.oneofsArray,a={};i.length&&s("var p={}");for(var c=0;c<e.fieldsArray.length;++c){var l=e._fieldsArray[c].resolve(),u="m"+t.safeProp(l.name);if(l.optional&&s("if(%s!=null&&m.hasOwnProperty(%j)){",u,l.name),l.map)s("if(!util.isObject(%s))",u)("return%j",r(l,"object"))("var k=Object.keys(%s)",u)("for(var i=0;i<k.length;++i){"),o(s,l,"k[i]"),n(s,l,c,u+"[k[i]]")("}");else if(l.repeated)s("if(!Array.isArray(%s))",u)("return%j",r(l,"array"))("for(var i=0;i<%s.length;++i){",u),n(s,l,c,u+"[i]")("}");else{if(l.partOf){var d=t.safeProp(l.partOf.name);1===a[l.partOf.name]&&s("if(p%s===1)",d)("return%j",l.partOf.name+": multiple values"),a[l.partOf.name]=1,s("p%s=1",d)}n(s,l,c,u)}l.optional&&s("}")}return s("return null")};var e=Ec(),t=Ic();function r(e,t){return e.name+": "+t+(e.repeated&&"array"!==t?"[]":e.map&&"object"!==t?"{k:"+e.keyType+"}":"")+" expected"}function n(t,n,o,s){if(n.resolvedType)if(n.resolvedType instanceof e){t("switch(%s){",s)("default:")("return%j",r(n,"enum value"));for(var i=Object.keys(n.resolvedType.values),a=0;a<i.length;++a)t("case %i:",n.resolvedType.values[i[a]]);t("break")("}")}else t("{")("var e=types[%i].verify(%s);",o,s)("if(e)")("return%j+e",n.name+".")("}");else switch(n.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":t("if(!util.isInteger(%s))",s)("return%j",r(n,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":t("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",s,s,s,s)("return%j",r(n,"integer|Long"));break;case"float":case"double":t('if(typeof %s!=="number")',s)("return%j",r(n,"number"));break;case"bool":t('if(typeof %s!=="boolean")',s)("return%j",r(n,"boolean"));break;case"string":t("if(!util.isString(%s))",s)("return%j",r(n,"string"));break;case"bytes":t('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',s,s,s)("return%j",r(n,"buffer"))}return t}function o(e,t,n){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",n)("return%j",r(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",n)("return%j",r(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",n)("return%j",r(t,"boolean key"))}return e}return Da}var Wa,Ja={};function Za(){return Wa||(Wa=1,function(e){var t=e,r=Ec(),n=Ic();function o(e,t,n,o){var s=!1;if(t.resolvedType)if(t.resolvedType instanceof r){e("switch(d%s){",o);for(var i=t.resolvedType.values,a=Object.keys(i),c=0;c<a.length;++c)i[a[c]]!==t.typeDefault||s||(e("default:")('if(typeof(d%s)==="number"){m%s=d%s;break}',o,o,o),t.repeated||e("break"),s=!0),e("case%j:",a[c])("case %i:",i[a[c]])("m%s=%j",o,i[a[c]])("break");e("}")}else e('if(typeof d%s!=="object")',o)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",o,n,o);else{var l=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",o,o);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",o,o);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",o,o);break;case"uint64":l=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",o,o,l)('else if(typeof d%s==="string")',o)("m%s=parseInt(d%s,10)",o,o)('else if(typeof d%s==="number")',o)("m%s=d%s",o,o)('else if(typeof d%s==="object")',o)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",o,o,o,l?"true":"");break;case"bytes":e('if(typeof d%s==="string")',o)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",o,o,o)("else if(d%s.length >= 0)",o)("m%s=d%s",o,o);break;case"string":e("m%s=String(d%s)",o,o);break;case"bool":e("m%s=Boolean(d%s)",o,o)}}return e}function s(e,t,n,o){if(t.resolvedType)t.resolvedType instanceof r?e("d%s=o.enums===String?(types[%i].values[m%s]===undefined?m%s:types[%i].values[m%s]):m%s",o,n,o,o,n,o,o):e("d%s=types[%i].toObject(m%s,o)",o,n,o);else{var s=!1;switch(t.type){case"double":case"float":e("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",o,o,o,o);break;case"uint64":s=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',o)("d%s=o.longs===String?String(m%s):m%s",o,o,o)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",o,o,o,o,s?"true":"",o);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",o,o,o,o,o);break;default:e("d%s=m%s",o,o)}}return e}t.fromObject=function(e){var t=e.fieldsArray,s=n.codegen(["d"],e.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!t.length)return s("return new this.ctor");s("var m=new this.ctor");for(var i=0;i<t.length;++i){var a=t[i].resolve(),c=n.safeProp(a.name);a.map?(s("if(d%s){",c)('if(typeof d%s!=="object")',c)("throw TypeError(%j)",a.fullName+": object expected")("m%s={}",c)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",c),o(s,a,i,c+"[ks[i]]")("}")("}")):a.repeated?(s("if(d%s){",c)("if(!Array.isArray(d%s))",c)("throw TypeError(%j)",a.fullName+": array expected")("m%s=[]",c)("for(var i=0;i<d%s.length;++i){",c),o(s,a,i,c+"[i]")("}")("}")):(a.resolvedType instanceof r||s("if(d%s!=null){",c),o(s,a,i,c),a.resolvedType instanceof r||s("}"))}return s("return m")},t.toObject=function(e){var t=e.fieldsArray.slice().sort(n.compareFieldsById);if(!t.length)return n.codegen()("return {}");for(var o=n.codegen(["m","o"],e.name+"$toObject")("if(!o)")("o={}")("var d={}"),i=[],a=[],c=[],l=0;l<t.length;++l)t[l].partOf||(t[l].resolve().repeated?i:t[l].map?a:c).push(t[l]);if(i.length){for(o("if(o.arrays||o.defaults){"),l=0;l<i.length;++l)o("d%s=[]",n.safeProp(i[l].name));o("}")}if(a.length){for(o("if(o.objects||o.defaults){"),l=0;l<a.length;++l)o("d%s={}",n.safeProp(a[l].name));o("}")}if(c.length){for(o("if(o.defaults){"),l=0;l<c.length;++l){var u=c[l],d=n.safeProp(u.name);if(u.resolvedType instanceof r)o("d%s=o.enums===String?%j:%j",d,u.resolvedType.valuesById[u.typeDefault],u.typeDefault);else if(u.long)o("if(util.Long){")("var n=new util.Long(%i,%i,%j)",u.typeDefault.low,u.typeDefault.high,u.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",d)("}else")("d%s=o.longs===String?%j:%i",d,u.typeDefault.toString(),u.typeDefault.toNumber());else if(u.bytes){var g="["+Array.prototype.slice.call(u.typeDefault).join(",")+"]";o("if(o.bytes===String)d%s=%j",d,String.fromCharCode.apply(String,u.typeDefault))("else{")("d%s=%s",d,g)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",d,d)("}")}else o("d%s=%j",d,u.typeDefault)}o("}")}var p=!1;for(l=0;l<t.length;++l){u=t[l];var f=e._fieldsArray.indexOf(u);d=n.safeProp(u.name);u.map?(p||(p=!0,o("var ks2")),o("if(m%s&&(ks2=Object.keys(m%s)).length){",d,d)("d%s={}",d)("for(var j=0;j<ks2.length;++j){"),s(o,u,f,d+"[ks2[j]]")("}")):u.repeated?(o("if(m%s&&m%s.length){",d,d)("d%s=[]",d)("for(var j=0;j<m%s.length;++j){",d),s(o,u,f,d+"[j]")("}")):(o("if(m%s!=null&&m.hasOwnProperty(%j)){",d,u.name),s(o,u,f,d),u.partOf&&o("if(o.oneofs)")("d%s=%j",n.safeProp(u.partOf.name),u.name)),o("}")}return o("return d")}}(Ja)),Ja}var Xa,Ya,Qa,ec,tc,rc,nc,oc,sc,ic,ac,cc,lc,uc,dc,gc,pc,fc,hc,yc,mc,vc,bc={};function Cc(){return Xa||(Xa=1,function(e){var t=e,r=Ha();t[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=e["@type"].substring(e["@type"].lastIndexOf("/")+1),r=this.lookup(t);if(r){var n="."===e["@type"].charAt(0)?e["@type"].slice(1):e["@type"];return-1===n.indexOf("/")&&(n="/"+n),this.create({type_url:n,value:r.encode(r.fromObject(e)).finish()})}}return this.fromObject(e)},toObject:function(e,t){var n="",o="";if(t&&t.json&&e.type_url&&e.value){o=e.type_url.substring(e.type_url.lastIndexOf("/")+1),n=e.type_url.substring(0,e.type_url.lastIndexOf("/")+1);var s=this.lookup(o);s&&(e=s.decode(e.value))}if(!(e instanceof this.ctor)&&e instanceof r){var i=e.$type.toObject(e,t);return""===n&&(n="type.googleapis.com/"),o=n+("."===e.$type.fullName[0]?e.$type.fullName.slice(1):e.$type.fullName),i["@type"]=o,i}return this.toObject(e,t)}}}(bc)),bc}function wc(){if(Qa)return Ya;Qa=1,Ya=h;var e=Ga();((h.prototype=Object.create(e.prototype)).constructor=h).className="Type";var t=Ec(),r=xa(),n=Fa(),o=qa(),s=Ka(),i=Ha(),a=ir(),c=sr(),l=Ic(),u=Rc(),d=za(),g=$a(),p=Za(),f=Cc();function h(t,r){e.call(this,t,r),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}function y(e){return e._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}return Object.defineProperties(h.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var r=this.fields[e[t]],n=r.id;if(this._fieldsById[n])throw Error("duplicate id "+n+" in "+this);this._fieldsById[n]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=l.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=l.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=h.generateConstructor(this)())},set:function(e){var t=e.prototype;t instanceof i||((e.prototype=new i).constructor=e,l.merge(e.prototype,t)),e.$type=e.prototype.$type=this,l.merge(e,i,!0),this._ctor=e;for(var r=0;r<this.fieldsArray.length;++r)this._fieldsArray[r].resolve();var n={};for(r=0;r<this.oneofsArray.length;++r)n[this._oneofsArray[r].resolve().name]={get:l.oneOfGetter(this._oneofsArray[r].oneof),set:l.oneOfSetter(this._oneofsArray[r].oneof)};r&&Object.defineProperties(e.prototype,n)}}}),h.generateConstructor=function(e){for(var t,r=l.codegen(["p"],e.name),n=0;n<e.fieldsArray.length;++n)(t=e._fieldsArray[n]).map?r("this%s={}",l.safeProp(t.name)):t.repeated&&r("this%s=[]",l.safeProp(t.name));return r("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")},h.fromJSON=function(i,a){var c=new h(i,a.options);c.extensions=a.extensions,c.reserved=a.reserved;for(var l=Object.keys(a.fields),u=0;u<l.length;++u)c.add((void 0!==a.fields[l[u]].keyType?o.fromJSON:n.fromJSON)(l[u],a.fields[l[u]]));if(a.oneofs)for(l=Object.keys(a.oneofs),u=0;u<l.length;++u)c.add(r.fromJSON(l[u],a.oneofs[l[u]]));if(a.nested)for(l=Object.keys(a.nested),u=0;u<l.length;++u){var d=a.nested[l[u]];c.add((void 0!==d.id?n.fromJSON:void 0!==d.fields?h.fromJSON:void 0!==d.values?t.fromJSON:void 0!==d.methods?s.fromJSON:e.fromJSON)(l[u],d))}return a.extensions&&a.extensions.length&&(c.extensions=a.extensions),a.reserved&&a.reserved.length&&(c.reserved=a.reserved),a.group&&(c.group=!0),a.comment&&(c.comment=a.comment),c},h.prototype.toJSON=function(t){var r=e.prototype.toJSON.call(this,t),n=!!t&&Boolean(t.keepComments);return l.toObject(["options",r&&r.options||void 0,"oneofs",e.arrayToJSON(this.oneofsArray,t),"fields",e.arrayToJSON(this.fieldsArray.filter(function(e){return!e.declaringField}),t)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",r&&r.nested||void 0,"comment",n?this.comment:void 0])},h.prototype.resolveAll=function(){for(var t=this.fieldsArray,r=0;r<t.length;)t[r++].resolve();var n=this.oneofsArray;for(r=0;r<n.length;)n[r++].resolve();return e.prototype.resolveAll.call(this)},h.prototype.get=function(e){return this.fields[e]||this.oneofs&&this.oneofs[e]||this.nested&&this.nested[e]||null},h.prototype.add=function(t){if(this.get(t.name))throw Error("duplicate name '"+t.name+"' in "+this);if(t instanceof n&&void 0===t.extend){if(this._fieldsById?this._fieldsById[t.id]:this.fieldsById[t.id])throw Error("duplicate id "+t.id+" in "+this);if(this.isReservedId(t.id))throw Error("id "+t.id+" is reserved in "+this);if(this.isReservedName(t.name))throw Error("name '"+t.name+"' is reserved in "+this);return t.parent&&t.parent.remove(t),this.fields[t.name]=t,t.message=this,t.onAdd(this),y(this)}return t instanceof r?(this.oneofs||(this.oneofs={}),this.oneofs[t.name]=t,t.onAdd(this),y(this)):e.prototype.add.call(this,t)},h.prototype.remove=function(t){if(t instanceof n&&void 0===t.extend){if(!this.fields||this.fields[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.fields[t.name],t.parent=null,t.onRemove(this),y(this)}if(t instanceof r){if(!this.oneofs||this.oneofs[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.oneofs[t.name],t.parent=null,t.onRemove(this),y(this)}return e.prototype.remove.call(this,t)},h.prototype.isReservedId=function(t){return e.isReservedId(this.reserved,t)},h.prototype.isReservedName=function(t){return e.isReservedName(this.reserved,t)},h.prototype.create=function(e){return new this.ctor(e)},h.prototype.setup=function(){for(var e=this.fullName,t=[],r=0;r<this.fieldsArray.length;++r)t.push(this._fieldsArray[r].resolve().resolvedType);this.encode=u(this)({Writer:c,types:t,util:l}),this.decode=d(this)({Reader:a,types:t,util:l}),this.verify=g(this)({types:t,util:l}),this.fromObject=p.fromObject(this)({types:t,util:l}),this.toObject=p.toObject(this)({types:t,util:l});var n=f[e];if(n){var o=Object.create(this);o.fromObject=this.fromObject,this.fromObject=n.fromObject.bind(o),o.toObject=this.toObject,this.toObject=n.toObject.bind(o)}return this},h.prototype.encode=function(e,t){return this.setup().encode(e,t)},h.prototype.encodeDelimited=function(e,t){return this.encode(e,t&&t.len?t.fork():t).ldelim()},h.prototype.decode=function(e,t){return this.setup().decode(e,t)},h.prototype.decodeDelimited=function(e){return e instanceof a||(e=a.create(e)),this.decode(e,e.uint32())},h.prototype.verify=function(e){return this.setup().verify(e)},h.prototype.fromObject=function(e){return this.setup().fromObject(e)},h.prototype.toObject=function(e,t){return this.setup().toObject(e,t)},h.d=function(e){return function(t){l.decorateType(t,e)}},Ya}function Oc(){if(tc)return ec;tc=1,ec=c;var e=Ga();((c.prototype=Object.create(e.prototype)).constructor=c).className="Root";var t,r,n,o=Fa(),s=Ec(),i=xa(),a=Ic();function c(t){e.call(this,"",t),this.deferred=[],this.files=[]}function l(){}c.fromJSON=function(e,t){return t||(t=new c),e.options&&t.setOptions(e.options),t.addJSON(e.nested)},c.prototype.resolvePath=a.path.resolve,c.prototype.fetch=a.fetch,c.prototype.load=function e(t,o,s){"function"==typeof o&&(s=o,o=void 0);var i=this;if(!s)return a.asPromise(e,i,t,o);var c=s===l;function u(e,t){if(s){if(c)throw e;var r=s;s=null,r(e,t)}}function d(e){var t=e.lastIndexOf("google/protobuf/");if(t>-1){var r=e.substring(t);if(r in n)return r}return null}function g(e,t){try{if(a.isString(t)&&"{"===t.charAt(0)&&(t=JSON.parse(t)),a.isString(t)){r.filename=e;var n,s=r(t,i,o),l=0;if(s.imports)for(;l<s.imports.length;++l)(n=d(s.imports[l])||i.resolvePath(e,s.imports[l]))&&p(n);if(s.weakImports)for(l=0;l<s.weakImports.length;++l)(n=d(s.weakImports[l])||i.resolvePath(e,s.weakImports[l]))&&p(n,!0)}else i.setOptions(t.options).addJSON(t.nested)}catch(e){u(e)}c||f||u(null,i)}function p(e,t){if(e=d(e)||e,!(i.files.indexOf(e)>-1))if(i.files.push(e),e in n)c?g(e,n[e]):(++f,setTimeout(function(){--f,g(e,n[e])}));else if(c){var r;try{r=a.fs.readFileSync(e).toString("utf8")}catch(e){return void(t||u(e))}g(e,r)}else++f,i.fetch(e,function(r,n){--f,s&&(r?t?f||u(null,i):u(r):g(e,n))})}var f=0;a.isString(t)&&(t=[t]);for(var h,y=0;y<t.length;++y)(h=i.resolvePath("",t[y]))&&p(h);if(c)return i;f||u(null,i)},c.prototype.loadSync=function(e,t){if(!a.isNode)throw Error("not supported");return this.load(e,t,l)},c.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(e){return"'extend "+e.extend+"' in "+e.parent.fullName}).join(", "));return e.prototype.resolveAll.call(this)};var u=/^[A-Z]/;function d(e,t){var r=t.parent.lookup(t.extend);if(r){var n=new o(t.fullName,t.id,t.type,t.rule,void 0,t.options);return r.get(n.name)||(n.declaringField=t,t.extensionField=n,r.add(n)),!0}return!1}return c.prototype._handleAdd=function(e){if(e instanceof o)void 0===e.extend||e.extensionField||d(0,e)||this.deferred.push(e);else if(e instanceof s)u.test(e.name)&&(e.parent[e.name]=e.values);else if(!(e instanceof i)){if(e instanceof t)for(var r=0;r<this.deferred.length;)d(0,this.deferred[r])?this.deferred.splice(r,1):++r;for(var n=0;n<e.nestedArray.length;++n)this._handleAdd(e._nestedArray[n]);u.test(e.name)&&(e.parent[e.name]=e)}},c.prototype._handleRemove=function(t){if(t instanceof o){if(void 0!==t.extend)if(t.extensionField)t.extensionField.parent.remove(t.extensionField),t.extensionField=null;else{var r=this.deferred.indexOf(t);r>-1&&this.deferred.splice(r,1)}}else if(t instanceof s)u.test(t.name)&&delete t.parent[t.name];else if(t instanceof e){for(var n=0;n<t.nestedArray.length;++n)this._handleRemove(t._nestedArray[n]);u.test(t.name)&&delete t.parent[t.name]}},c._configure=function(e,o,s){t=e,r=o,n=s},ec}function Ic(){if(rc)return ha.exports;rc=1;var e,t,r=ha.exports=or(),n=mr();r.codegen=function(){if(ua)return la;function e(t,r){"string"==typeof t&&(r=t,t=void 0);var n=[];function o(t){if("string"!=typeof t){var r=s();if(e.verbose&&console.log("codegen: "+r),r="return "+r,t){for(var i=Object.keys(t),a=new Array(i.length+1),c=new Array(i.length),l=0;l<i.length;)a[l]=i[l],c[l]=t[i[l++]];return a[l]=r,Function.apply(null,a).apply(null,c)}return Function(r)()}for(var u=new Array(arguments.length-1),d=0;d<u.length;)u[d]=arguments[++d];if(d=0,t=t.replace(/%([%dfijs])/g,function(e,t){var r=u[d++];switch(t){case"d":case"f":return String(Number(r));case"i":return String(Math.floor(r));case"j":return JSON.stringify(r);case"s":return String(r)}return"%"}),d!==u.length)throw Error("parameter count mismatch");return n.push(t),o}function s(e){return"function "+(e||r||"")+"("+(t&&t.join(",")||"")+"){\n "+n.join("\n ")+"\n}"}return o.toString=s,o}return ua=1,la=e,e.verbose=!1,la}(),r.fetch=function(){if(ga)return da;ga=1,da=r;var e=Pt(),t=qt()("fs");function r(n,o,s){return"function"==typeof o?(s=o,o={}):o||(o={}),s?!o.xhr&&t&&t.readFile?t.readFile(n,function(e,t){return e&&"undefined"!=typeof XMLHttpRequest?r.xhr(n,o,s):e?s(e):s(null,o.binary?t:t.toString("utf8"))}):r.xhr(n,o,s):e(r,this,n,o)}return r.xhr=function(e,t,r){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(4===n.readyState){if(0!==n.status&&200!==n.status)return r(Error("status "+n.status));if(t.binary){var e=n.response;if(!e){e=[];for(var o=0;o<n.responseText.length;++o)e.push(255&n.responseText.charCodeAt(o))}return r(null,"undefined"!=typeof Uint8Array?new Uint8Array(e):e)}return r(null,n.responseText)}},t.binary&&("overrideMimeType"in n&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.responseType="arraybuffer"),n.open("GET",e),n.send()},da}(),r.path=(ya||(ya=1,function(e){var t=e,r=t.isAbsolute=function(e){return/^(?:\/|\w+:)/.test(e)},n=t.normalize=function(e){var t=(e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),n=r(e),o="";n&&(o=t.shift()+"/");for(var s=0;s<t.length;)".."===t[s]?s>0&&".."!==t[s-1]?t.splice(--s,2):n?t.splice(s,1):++s:"."===t[s]?t.splice(s,1):++s;return o+t.join("/")};t.resolve=function(e,t,o){return o||(t=n(t)),r(t)?t:(o||(e=n(e)),(e=e.replace(/(?:\/|^)[^/]+$/,"")).length?n(e+"/"+t):t)}}(ma)),ma),r.fs=r.inquire("fs"),r.toArray=function(e){if(e){for(var t=Object.keys(e),r=new Array(t.length),n=0;n<t.length;)r[n]=e[t[n++]];return r}return[]},r.toObject=function(e){for(var t={},r=0;r<e.length;){var n=e[r++],o=e[r++];void 0!==o&&(t[n]=o)}return t};var o=/\\/g,s=/"/g;r.isReserved=function(e){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(e)},r.safeProp=function(e){return!/^[$\w_]+$/.test(e)||r.isReserved(e)?'["'+e.replace(o,"\\\\").replace(s,'\\"')+'"]':"."+e},r.ucFirst=function(e){return e.charAt(0).toUpperCase()+e.substring(1)};var i=/_([a-z])/g;r.camelCase=function(e){return e.substring(0,1)+e.substring(1).replace(i,function(e,t){return t.toUpperCase()})},r.compareFieldsById=function(e,t){return e.id-t.id},r.decorateType=function(t,n){if(t.$type)return n&&t.$type.name!==n&&(r.decorateRoot.remove(t.$type),t.$type.name=n,r.decorateRoot.add(t.$type)),t.$type;e||(e=wc());var o=new e(n||t.name);return r.decorateRoot.add(o),o.ctor=t,Object.defineProperty(t,"$type",{value:o,enumerable:!1}),Object.defineProperty(t.prototype,"$type",{value:o,enumerable:!1}),o};var a=0;return r.decorateEnum=function(e){if(e.$type)return e.$type;t||(t=Ec());var n=new t("Enum"+a++,e);return r.decorateRoot.add(n),Object.defineProperty(e,"$type",{value:n,enumerable:!1}),n},r.setProperty=function(e,t,r){if("object"!=typeof e)throw TypeError("dst must be an object");if(!t)throw TypeError("path must be specified");return function e(t,r,n){var o=r.shift();if("__proto__"===o||"prototype"===o)return t;if(r.length>0)t[o]=e(t[o]||{},r,n);else{var s=t[o];s&&(n=[].concat(s).concat(n)),t[o]=n}return t}(e,t=t.split("."),r)},Object.defineProperty(r,"decorateRoot",{get:function(){return n.decorated||(n.decorated=new(Oc()))}}),ha.exports}function Sc(){if(oc)return nc;oc=1,nc=r,r.className="ReflectionObject";var e,t=Ic();function r(e,r){if(!t.isString(e))throw TypeError("name must be a string");if(r&&!t.isObject(r))throw TypeError("options must be an object");this.options=r,this.parsedOptions=null,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}return Object.defineProperties(r.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}}),r.prototype.toJSON=function(){throw Error()},r.prototype.onAdd=function(t){this.parent&&this.parent!==t&&this.parent.remove(this),this.parent=t,this.resolved=!1;var r=t.root;r instanceof e&&r._handleAdd(this)},r.prototype.onRemove=function(t){var r=t.root;r instanceof e&&r._handleRemove(this),this.parent=null,this.resolved=!1},r.prototype.resolve=function(){return this.resolved||this.root instanceof e&&(this.resolved=!0),this},r.prototype.getOption=function(e){if(this.options)return this.options[e]},r.prototype.setOption=function(e,t,r){return r&&this.options&&void 0!==this.options[e]||((this.options||(this.options={}))[e]=t),this},r.prototype.setParsedOption=function(e,r,n){this.parsedOptions||(this.parsedOptions=[]);var o=this.parsedOptions;if(n){var s=o.find(function(t){return Object.prototype.hasOwnProperty.call(t,e)});if(s){var i=s[e];t.setProperty(i,n,r)}else(s={})[e]=t.setProperty({},n,r),o.push(s)}else{var a={};a[e]=r,o.push(a)}return this},r.prototype.setOptions=function(e,t){if(e)for(var r=Object.keys(e),n=0;n<r.length;++n)this.setOption(r[n],e[r[n]],t);return this},r.prototype.toString=function(){var e=this.constructor.className,t=this.fullName;return t.length?e+" "+t:e},r._configure=function(t){e=t},nc}function Ec(){if(ic)return sc;ic=1,sc=n;var e=Sc();((n.prototype=Object.create(e.prototype)).constructor=n).className="Enum";var t=Ga(),r=Ic();function n(t,r,n,o,s,i){if(e.call(this,t,n),r&&"object"!=typeof r)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=o,this.comments=s||{},this.valuesOptions=i,this.reserved=void 0,r)for(var a=Object.keys(r),c=0;c<a.length;++c)"number"==typeof r[a[c]]&&(this.valuesById[this.values[a[c]]=r[a[c]]]=a[c])}return n.fromJSON=function(e,t){var r=new n(e,t.values,t.options,t.comment,t.comments);return r.reserved=t.reserved,r},n.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return r.toObject(["options",this.options,"valuesOptions",this.valuesOptions,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",t?this.comment:void 0,"comments",t?this.comments:void 0])},n.prototype.add=function(e,t,n,o){if(!r.isString(e))throw TypeError("name must be a string");if(!r.isInteger(t))throw TypeError("id must be an integer");if(void 0!==this.values[e])throw Error("duplicate name '"+e+"' in "+this);if(this.isReservedId(t))throw Error("id "+t+" is reserved in "+this);if(this.isReservedName(e))throw Error("name '"+e+"' is reserved in "+this);if(void 0!==this.valuesById[t]){if(!this.options||!this.options.allow_alias)throw Error("duplicate id "+t+" in "+this);this.values[e]=t}else this.valuesById[this.values[e]=t]=e;return o&&(void 0===this.valuesOptions&&(this.valuesOptions={}),this.valuesOptions[e]=o||null),this.comments[e]=n||null,this},n.prototype.remove=function(e){if(!r.isString(e))throw TypeError("name must be a string");var t=this.values[e];if(null==t)throw Error("name '"+e+"' does not exist in "+this);return delete this.valuesById[t],delete this.values[e],delete this.comments[e],this.valuesOptions&&delete this.valuesOptions[e],this},n.prototype.isReservedId=function(e){return t.isReservedId(this.reserved,e)},n.prototype.isReservedName=function(e){return t.isReservedName(this.reserved,e)},sc}function Rc(){if(cc)return ac;cc=1,ac=function(o){for(var s,i=r.codegen(["m","w"],o.name+"$encode")("if(!w)")("w=Writer.create()"),a=o.fieldsArray.slice().sort(r.compareFieldsById),c=0;c<a.length;++c){var l=a[c].resolve(),u=o._fieldsArray.indexOf(l),d=l.resolvedType instanceof e?"int32":l.type,g=t.basic[d];s="m"+r.safeProp(l.name),l.map?(i("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",s,l.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",s)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(l.id<<3|2)>>>0,8|t.mapKey[l.keyType],l.keyType),void 0===g?i("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",u,s):i(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|g,d,s),i("}")("}")):l.repeated?(i("if(%s!=null&&%s.length){",s,s),l.packed&&void 0!==t.packed[d]?i("w.uint32(%i).fork()",(l.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",s)("w.%s(%s[i])",d,s)("w.ldelim()"):(i("for(var i=0;i<%s.length;++i)",s),void 0===g?n(i,l,u,s+"[i]"):i("w.uint32(%i).%s(%s[i])",(l.id<<3|g)>>>0,d,s)),i("}")):(l.optional&&i("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",s,l.name),void 0===g?n(i,l,u,s):i("w.uint32(%i).%s(%s)",(l.id<<3|g)>>>0,d,s))}return i("return w")};var e=Ec(),t=Ba(),r=Ic();function n(e,t,r,n){return t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,n,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,n,(t.id<<3|2)>>>0)}return ac}function Tc(){if(dc)return uc;dc=1,uc=u;var e=/[\s{}=;:[\],'"()<>]/g,t=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,r=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,n=/^ *[*/]+ */,o=/^\s*\*?\/*/,s=/\n/g,i=/\s/,a=/\\(.?)/g,c={0:"\0",r:"\r",n:"\n",t:"\t"};function l(e){return e.replace(a,function(e,t){switch(t){case"\\":case"":return t;default:return c[t]||""}})}function u(a,c){a=a.toString();var u=0,d=a.length,g=1,p=0,f={},h=[],y=null;function m(e){return Error("illegal "+e+" (line "+g+")")}function v(e){return a.charAt(e)}function b(e,t,r){var i,l={type:a.charAt(e++),lineEmpty:!1,leading:r},u=e-(c?2:3);do{if(--u<0||"\n"===(i=a.charAt(u))){l.lineEmpty=!0;break}}while(" "===i||"\t"===i);for(var d=a.substring(e,t).split(s),h=0;h<d.length;++h)d[h]=d[h].replace(c?o:n,"").trim();l.text=d.join("\n").trim(),f[g]=l,p=g}function C(e){var t=w(e),r=a.substring(e,t);return/^\s*\/\//.test(r)}function w(e){for(var t=e;t<d&&"\n"!==v(t);)t++;return t}function O(){if(h.length>0)return h.shift();if(y)return function(){var e="'"===y?r:t;e.lastIndex=u-1;var n=e.exec(a);if(!n)throw m("string");return u=e.lastIndex,I(y),y=null,l(n[1])}();var n,o,s,p,f,O=0===u;do{if(u===d)return null;for(n=!1;i.test(s=v(u));)if("\n"===s&&(O=!0,++g),++u===d)return null;if("/"===v(u)){if(++u===d)throw m("comment");if("/"===v(u))if(c){if(p=u,f=!1,C(u-1)){f=!0;do{if((u=w(u))===d)break;if(u++,!O)break}while(C(u))}else u=Math.min(d,w(u)+1);f&&(b(p,u,O),O=!0),g++,n=!0}else{for(f="/"===v(p=u+1);"\n"!==v(++u);)if(u===d)return null;++u,f&&(b(p,u-1,O),O=!0),++g,n=!0}else{if("*"!==(s=v(u)))return"/";p=u+1,f=c||"*"===v(p);do{if("\n"===s&&++g,++u===d)throw m("comment");o=s,s=v(u)}while("*"!==o||"/"!==s);++u,f&&(b(p,u-2,O),O=!0),n=!0}}}while(n);var S=u;if(e.lastIndex=0,!e.test(v(S++)))for(;S<d&&!e.test(v(S));)++S;var E=a.substring(u,u=S);return'"'!==E&&"'"!==E||(y=E),E}function I(e){h.push(e)}function S(){if(!h.length){var e=O();if(null===e)return null;I(e)}return h[0]}return Object.defineProperty({next:O,peek:S,push:I,skip:function(e,t){var r=S();if(r===e)return O(),!0;if(!t)throw m("token '"+r+"', '"+e+"' expected");return!1},cmnt:function(e){var t,r=null;return void 0===e?(t=f[g-1],delete f[g-1],t&&(c||"*"===t.type||t.lineEmpty)&&(r=t.leading?t.text:null)):(p<e&&S(),t=f[e],delete f[e],!t||t.lineEmpty||!c&&"/"!==t.type||(r=t.leading?null:t.text)),r}},"line",{get:function(){return g}})}return u.unescape=l,uc}function Ac(){if(pc)return gc;pc=1,gc=w,w.filename=null,w.defaults={keepCase:!1};var e=Tc(),t=Oc(),r=wc(),n=Fa(),o=qa(),s=xa(),i=Ec(),a=Ka(),c=Va(),l=Ba(),u=Ic(),d=/^[1-9][0-9]*$/,g=/^-?[1-9][0-9]*$/,p=/^0[x][0-9a-fA-F]+$/,f=/^-?0[x][0-9a-fA-F]+$/,h=/^0[0-7]+$/,y=/^-?0[0-7]+$/,m=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,v=/^[a-zA-Z_][a-zA-Z_0-9]*$/,b=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,C=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;function w(O,I,S){I instanceof t||(S=I,I=new t),S||(S=w.defaults);var E,R,T,A,_,k=S.preferTrailingComment||!1,M=e(O,S.alternateCommentMode||!1),N=M.next,P=M.push,L=M.peek,D=M.skip,U=M.cmnt,j=!0,B=!1,F=I,x=S.keepCase?function(e){return e}:u.camelCase;function G(e,t,r){var n=w.filename;return r||(w.filename=null),Error("illegal "+(t||"token")+" '"+e+"' ("+(n?n+", ":"")+"line "+M.line+")")}function q(){var e,t=[];do{if('"'!==(e=N())&&"'"!==e)throw G(e);t.push(N()),D(e),e=L()}while('"'===e||"'"===e);return t.join("")}function V(e){var t=N();switch(t){case"'":case'"':return P(t),q();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return function(e,t){var r=1;"-"===e.charAt(0)&&(r=-1,e=e.substring(1));switch(e){case"inf":case"INF":case"Inf":return r*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(d.test(e))return r*parseInt(e,10);if(p.test(e))return r*parseInt(e,16);if(h.test(e))return r*parseInt(e,8);if(m.test(e))return r*parseFloat(e);throw G(e,"number",t)}(t,!0)}catch(r){if(e&&b.test(t))return t;throw G(t,"value")}}function K(e,t){var r,n;do{!t||'"'!==(r=L())&&"'"!==r?e.push([n=H(N()),D("to",!0)?H(N()):n]):e.push(q())}while(D(",",!0));var o={options:void 0,setOption:function(e,t){void 0===this.options&&(this.options={}),this.options[e]=t}};Z(o,function(e){if("option"!==e)throw G(e);ee(o,e),D(";")},function(){ne(o)})}function H(e,t){switch(e){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!t&&"-"===e.charAt(0))throw G(e,"id");if(g.test(e))return parseInt(e,10);if(f.test(e))return parseInt(e,16);if(y.test(e))return parseInt(e,8);throw G(e,"id")}function z(){if(void 0!==E)throw G("package");if(E=N(),!b.test(E))throw G(E,"name");F=F.define(E),D(";")}function $(){var e,t=L();switch(t){case"weak":e=T||(T=[]),N();break;case"public":N();default:e=R||(R=[])}t=q(),D(";"),e.push(t)}function W(){if(D("="),A=q(),!(B="proto3"===A)&&"proto2"!==A)throw G(A,"syntax");I.setOption("syntax",A),D(";")}function J(e,t){switch(t){case"option":return ee(e,t),D(";"),!0;case"message":return X(e,t),!0;case"enum":return Q(e,t),!0;case"service":return function(e,t){if(!v.test(t=N()))throw G(t,"service name");var r=new a(t);Z(r,function(e){if(!J(r,e)){if("rpc"!==e)throw G(e);!function(e,t){var r=U(),n=t;if(!v.test(t=N()))throw G(t,"name");var o,s,i,a,l=t;D("("),D("stream",!0)&&(s=!0);if(!b.test(t=N()))throw G(t);o=t,D(")"),D("returns"),D("("),D("stream",!0)&&(a=!0);if(!b.test(t=N()))throw G(t);i=t,D(")");var u=new c(l,n,o,i,s,a);u.comment=r,Z(u,function(e){if("option"!==e)throw G(e);ee(u,e),D(";")}),e.add(u)}(r,e)}}),e.add(r)}(e,t),!0;case"extend":return function(e,t){if(!b.test(t=N()))throw G(t,"reference");var r=t;Z(null,function(t){switch(t){case"required":case"repeated":Y(e,t,r);break;case"optional":Y(e,B?"proto3_optional":"optional",r);break;default:if(!B||!b.test(t))throw G(t);P(t),Y(e,"optional",r)}})}(e,t),!0}return!1}function Z(e,t,r){var n=M.line;if(e&&("string"!=typeof e.comment&&(e.comment=U()),e.filename=w.filename),D("{",!0)){for(var o;"}"!==(o=N());)t(o);D(";",!0)}else r&&r(),D(";"),e&&("string"!=typeof e.comment||k)&&(e.comment=U(n)||e.comment)}function X(e,t){if(!v.test(t=N()))throw G(t,"type name");var n=new r(t);Z(n,function(e){if(!J(n,e))switch(e){case"map":!function(e){D("<");var t=N();if(void 0===l.mapKey[t])throw G(t,"type");D(",");var r=N();if(!b.test(r))throw G(r,"type");D(">");var n=N();if(!v.test(n))throw G(n,"name");D("=");var s=new o(x(n),H(N()),t,r);Z(s,function(e){if("option"!==e)throw G(e);ee(s,e),D(";")},function(){ne(s)}),e.add(s)}(n);break;case"required":case"repeated":Y(n,e);break;case"optional":Y(n,B?"proto3_optional":"optional");break;case"oneof":!function(e,t){if(!v.test(t=N()))throw G(t,"name");var r=new s(x(t));Z(r,function(e){"option"===e?(ee(r,e),D(";")):(P(e),Y(r,"optional"))}),e.add(r)}(n,e);break;case"extensions":K(n.extensions||(n.extensions=[]));break;case"reserved":K(n.reserved||(n.reserved=[]),!0);break;default:if(!B||!b.test(e))throw G(e);P(e),Y(n,"optional")}}),e.add(n)}function Y(e,t,o){var i=N();if("group"!==i){for(;i.endsWith(".")||L().startsWith(".");)i+=N();if(!b.test(i))throw G(i,"type");var a=N();if(!v.test(a))throw G(a,"name");a=x(a),D("=");var c=new n(a,H(N()),i,t,o);if(Z(c,function(e){if("option"!==e)throw G(e);ee(c,e),D(";")},function(){ne(c)}),"proto3_optional"===t){var d=new s("_"+a);c.setOption("proto3_optional",!0),d.add(c),e.add(d)}else e.add(c);B||!c.repeated||void 0===l.packed[i]&&void 0!==l.basic[i]||c.setOption("packed",!1,!0)}else!function(e,t){var o=N();if(!v.test(o))throw G(o,"name");var s=u.lcFirst(o);o===s&&(o=u.ucFirst(o));D("=");var i=H(N()),a=new r(o);a.group=!0;var c=new n(s,i,o,t);c.filename=w.filename,Z(a,function(e){switch(e){case"option":ee(a,e),D(";");break;case"required":case"repeated":Y(a,e);break;case"optional":Y(a,B?"proto3_optional":"optional");break;case"message":X(a,e);break;case"enum":Q(a,e);break;default:throw G(e)}}),e.add(a).add(c)}(e,t)}function Q(e,t){if(!v.test(t=N()))throw G(t,"name");var r=new i(t);Z(r,function(e){switch(e){case"option":ee(r,e),D(";");break;case"reserved":K(r.reserved||(r.reserved=[]),!0);break;default:!function(e,t){if(!v.test(t))throw G(t,"name");D("=");var r=H(N(),!0),n={options:void 0,setOption:function(e,t){void 0===this.options&&(this.options={}),this.options[e]=t}};Z(n,function(e){if("option"!==e)throw G(e);ee(n,e),D(";")},function(){ne(n)}),e.add(t,r,n.comment,n.options)}(r,e)}}),e.add(r)}function ee(e,t){var r=D("(",!0);if(!b.test(t=N()))throw G(t,"name");var n,o=t,s=o;r&&(D(")"),s=o="("+o+")",t=L(),C.test(t)&&(n=t.slice(1),o+=t,N())),D("="),function(e,t,r,n){e.setParsedOption&&e.setParsedOption(t,r,n)}(e,s,te(e,o),n)}function te(e,t){if(D("{",!0)){for(var r={};!D("}",!0);){if(!v.test(_=N()))throw G(_,"name");if(null===_)throw G(_,"end of input");var n,o=_;if(D(":",!0),"{"===L())n=te(e,t+"."+_);else if("["===L()){var s;if(n=[],D("[",!0)){do{s=V(!0),n.push(s)}while(D(",",!0));D("]"),void 0!==s&&re(e,t+"."+_,s)}}else n=V(!0),re(e,t+"."+_,n);var i=r[o];i&&(n=[].concat(i).concat(n)),r[o]=n,D(",",!0),D(";",!0)}return r}var a=V(!0);return re(e,t,a),a}function re(e,t,r){e.setOption&&e.setOption(t,r)}function ne(e){if(D("[",!0)){do{ee(e,"option")}while(D(",",!0));D("]")}return e}for(;null!==(_=N());)switch(_){case"package":if(!j)throw G(_);z();break;case"import":if(!j)throw G(_);$();break;case"syntax":if(!j)throw G(_);W();break;case"option":ee(F,_),D(";");break;default:if(J(F,_)){j=!1;continue}throw G(_)}return w.filename=null,{package:E,imports:R,weakImports:T,syntax:A,root:I}}return gc}function _c(){if(yc)return pa.exports;yc=1;var e=pa.exports=function(){if(lc)return fa.exports;lc=1;var e=fa.exports=vr();return e.build="light",e.load=function(t,r,n){return"function"==typeof r?(n=r,r=new e.Root):r||(r=new e.Root),r.load(t,n)},e.loadSync=function(t,r){return r||(r=new e.Root),r.loadSync(t)},e.encoder=Rc(),e.decoder=za(),e.verifier=$a(),e.converter=Za(),e.ReflectionObject=Sc(),e.Namespace=Ga(),e.Root=Oc(),e.Enum=Ec(),e.Type=wc(),e.Field=Fa(),e.OneOf=xa(),e.MapField=qa(),e.Service=Ka(),e.Method=Va(),e.Message=Ha(),e.wrappers=Cc(),e.types=Ba(),e.util=Ic(),e.ReflectionObject._configure(e.Root),e.Namespace._configure(e.Type,e.Service,e.Enum),e.Root._configure(e.Type),e.Field._configure(e.Type),fa.exports}();return e.build="full",e.tokenize=Tc(),e.parse=Ac(),e.common=function(){if(hc)return fc;hc=1,fc=r;var e,t=/\/|\./;function r(e,n){t.test(e)||(e="google/protobuf/"+e+".proto",n={nested:{google:{nested:{protobuf:{nested:n}}}}}),r[e]=n}return r("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}}),r("duration",{Duration:e={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),r("timestamp",{Timestamp:e}),r("empty",{Empty:{fields:{}}}),r("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),r("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}}),r("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}}),r.get=function(e){return r[e]||null},fc}(),e.Root._configure(e.Type,e.parse,e.common),pa.exports}var kc=h(vc?mc:(vc=1,mc=_c()));const Mc=e=>{const t=window.URL||window.webkitURL;return t?t.createObjectURL(e):""},Nc=e=>{const t=e.name;return dt(t)?t.substring(t.lastIndexOf(".")+1):e.type.indexOf("/")>0?e.type.substring(e.type.lastIndexOf("/")+1):""},Pc=e=>{(window.URL||window.webkitURL).revokeObjectURL(e)},Lc=e=>{const t=e.match(/data:([^;]+)/)[1],r=e.replace(/^[^,]+,/,""),n=window.atob(r);let o=n.length;const s=new Uint8Array(n.length);for(;o--;)s[o]=n.charCodeAt(o);return new Blob([s],{type:t})},Dc=1680,Uc=160,jc=e=>new Promise((t,r)=>{const n=e=>{0!==e.width||0!==e.height?t(e):r()},o=new Image;if(o.addEventListener("load",e=>n(e.target)),o.addEventListener("error",r),o.src=e,o.complete)return void n(o);const s=setInterval(()=>{o.complete&&(n(o),clearInterval(s))},40)}),Bc=(e,t)=>{const r=document.createElement("canvas"),n=r.getContext("2d"),o=function(e,t,r){let n=e,o=t,s=0,i=0;const a=e*t,c=r.maxWidth*r.maxHeight;if(a<=c)return s=(r.maxWidth-n)/2,i=(r.maxHeight-o)/2,{w:n,h:o,x:s,y:i};const l=Math.sqrt(c/a);return n=e*l,o=t*l,s=(r.maxWidth-n)/2,i=(r.maxHeight-o)/2,{w:n,h:o,x:s,y:i}}(e.width,e.height,t);r.width=o.w,r.height=o.h,n.fillStyle="#FFFFFF",n.fillRect(0,0,r.width,r.height),n?.drawImage(e,0,0,o.w,o.h);try{let e=r.toDataURL("image/jpeg",t.quality);return Lc(e)}catch(e){throw new Error(e)}};function Fc(e){const t=Math.max(0,e),r=t%60,n=Math.floor(t/60%60),o=Math.floor(t/3600);return o>0?`${o}:${n.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`:`${n}:${r.toString().padStart(2,"0")}`}const xc={maxHeight:500,maxWidth:500,quality:.6,scale:2.4};class Gc{async create(e,t){try{const r=Mc(e),n=await jc(r);let o,s,i;if(Pc(r),t?.full)o=e,s=n.width,i=n.height;else{const t=((e,t=1,r="image/jpeg")=>{t=Math.min(1,t);const n=e.width,o=e.height;let s=n,i=o;if(t<1){const e=n<o,t=e?o/Dc:n/Dc;n>Dc&&o>Dc?e?(i=Dc,s/=t):(s=Dc,i/=t):n>Dc&&o>Uc?(s=Dc,i/=t,i<Uc&&(i=Uc,s=n/(o/Uc))):o>Dc&&n>Uc&&(i=Dc,s/=t,s<Uc&&(s=Uc,i=o/(n/Uc)))}s=Math.floor(s),i=Math.floor(i);const a=document.createElement("canvas");a.width=s,a.height=i;const c=a.getContext("2d");return c.fillStyle="#FFF",c.fillRect(0,0,s,i),c.drawImage(e,0,0,n,o,0,0,s,i),r&&"image/png"!=r||(r="image/jpeg"),{imageFile:Lc(a.toDataURL(r,Math.min(.92,t))),compressWidth:s,compressHeight:i}})(n,.85,e.type);o=t.imageFile,s=t.compressWidth,i=t.compressHeight}const a=Bc(n,xc);return{success:!0,message:new vi({thumbnailObjectKey:Mc(a),originalObjectKey:Mc(o),width:s,height:i}),files:[a,o]}}catch(e){return{success:!1}}}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n,o],encryptedKey:s}=t;return r.originalObjectKey=o,r.thumbnailObjectKey=n,r.encryptKey=s,r}}class qc{async create(e){if(e.size>2097152)return{success:!1};try{const t=Mc(e),r=await jc(t);return{success:!0,message:new bi({originalObjectKey:t,extension:Nc(e),width:r.width,height:r.height}),files:[e]}}catch{return{success:!1}}}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n],encryptedKey:o}=t;return r.originalObjectKey=n,r.encryptKey=o,r}}let Vc;class Kc{create(e){return(t=e,pt(t.arrayBuffer)?t.arrayBuffer():new Promise((e,r)=>{const n=new FileReader;n.addEventListener("load",t=>{t.target?e(t.target.result):r("null")}),n.addEventListener("error",e=>r(e)),n.readAsArrayBuffer(t)})).then(this.getAudioInfo).then(t=>({success:!0,message:new Ci({audioObjectKey:Mc(e),length:t.duration,extension:Nc(e)}),files:[e]})).catch(()=>({success:!1}));var t}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n],encryptedKey:o}=t;return r.audioObjectKey=n,r.encryptKey=o,r}getAudioInfo(e){const t=Vc||new AudioContext;return Vc=t,new Promise((r,n)=>{t.decodeAudioData(e,function(e){r({duration:e.duration,length:e.length})},n)})}}class Hc{async create(e){return e.size>104857600?{success:!1}:{success:!0,message:new wi({fileKey:"",title:e.name,extension:Nc(e),size:e.size}),files:[e]}}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n],encryptedKey:o}=t;return r.fileKey=n,r.encryptKey=o,r}}class zc{async create(e){try{if(e.size>104857600)return{success:!1};const t=Mc(e),r=document.createElement("video");r.src=t,await new Promise((e,t)=>{r.onloadedmetadata=e,r.onerror=t}),r.currentTime=.001,await new Promise(e=>{r.onseeked=e});const n=r.duration,o=r.videoWidth,s=r.videoHeight,i=Math.min(xc.maxWidth/o,xc.maxHeight/s,xc.scale),a=Math.floor(o*i),c=Math.floor(s*i),l=document.createElement("canvas");l.width=a,l.height=c;const u=l.getContext("2d");u?.drawImage(r,0,0,a,c);const d=await new Promise(e=>{l.toBlob(t=>e(t),"image/jpeg",xc.quality)});return Pc(t),{success:!0,message:new Oi({videoObjectKey:"",thumbnailObjectKey:"",during:Fc(n),width:o,height:s,extension:Nc(e)}),files:[e,d]}}catch(e){return{success:!1}}}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n,o],encryptedKey:s}=t;return r.videoObjectKey=n,r.thumbnailObjectKey=o,r.encryptKey=s,r}}var $c;!function(e){e[e.IMAGE=1]="IMAGE",e[e.GIF=2]="GIF",e[e.AUDIO=3]="AUDIO",e[e.FILE=4]="FILE",e[e.SIGHT=5]="SIGHT"}($c||($c={}));async function Wc(t,r,n){try{return dl(t,r,n,await nl(r))}catch{return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}}const Jc=new Set([ss.TEXT,ss.IMAGE,ss.GIF,ss.VIDEO,ss.FILE,ss.AUDIO,ss.LOCATION,ss.CHAT_RECORD,ss.CONTACT,ss.GROUP_INVITATION,ss.LINK]),Zc=new Set(Jc);function Xc(e,t){const r=[],n=(e,n)=>{let o=t;for(const t of e)o=o?.[t];"string"==typeof o&&o.length>0&&r.push({path:e,sourceUrl:o,encryptKey:n})},o="string"==typeof t.encryptKey?t.encryptKey:void 0;switch(e){case ss.TEXT:{const e=t.linkPreview;e&&"object"==typeof e&&n(["linkPreview","originalObjectKey"],"string"==typeof e.encryptKey?e.encryptKey:void 0);break}case ss.IMAGE:n(["thumbnailObjectKey"],o),n(["originalObjectKey"],o);break;case ss.GIF:n(["originalObjectKey"],o);break;case ss.VIDEO:n(["thumbnailObjectKey"],o),n(["videoObjectKey"],o);break;case ss.FILE:n(["fileKey"],o),n(["thumbnailObjectKey"],o);break;case ss.AUDIO:n(["audioObjectKey"],o);break;case ss.LOCATION:n(["thumbnailObjectKey"],o);break;case ss.CHAT_RECORD:n(["msgDataFileKey"],o)}return r}function Yc(e,t,r){let n=e;for(let e=0;e<t.length-1;e++){const r=t[e];if(!r||!n[r]||"object"!=typeof n[r])throw new Error("Invalid forwarded resource path");n=n[r]}const o=t[t.length-1];if(!o)throw new Error("Invalid forwarded resource field");n[o]=r}function Qc(e,t){const r=Tt.getUploader();if(!r?.copy)return Promise.resolve({finished:!1,message:t});const n=r.copy.bind(r);return new Promise(r=>{try{n(e,{onError:()=>r({finished:!1,message:t}),onCompleted:()=>r({finished:!0,message:t})})}catch(e){r({finished:!1,message:t})}})}function el(e){const t=Xo(e.messageType,e.content);if(!t)return;const r=e.messageType===ss.TEXT?t.content.content:void 0;return{senderNickname:e.senderNickname,...e.senderAvatar?{senderAvatar:e.senderAvatar}:{},msgId:e.messageUId,srcId:e.senderUserId,destId:e.targetId,mediaConstructor:e.messageType,mediaAttribute:JSON.stringify(t.content),...void 0!==r?{msgPostContent:r}:{},msgSendTime:e.sentTime}}async function tl(t,r,n){if(!Jc.has(r.messageType))return{code:e.ErrorCode.NOT_SUPPORT};const o=ds(r.content??{});delete o.mentionedInfo;const s=Xc(r.messageType,o);let i;if(s.length>0){const n=Tt.getUploader();if(!n?.prepareCopy||!n.copy)return{code:e.ErrorCode.NOT_SUPPORT};try{i=await n.prepareCopy({sourceConversation:{conversationType:r.conversationType,targetId:r.targetId},targetConversation:t,items:s.map(e=>({sourceUrl:e.sourceUrl,...e.encryptKey?{encryptKey:e.encryptKey}:{}}))})}catch{return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}if(i.items.length!==s.length)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};for(let t=0;t<s.length;t++){const r=s[t],n=i.items[t];if(!r||!n?.url)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};Yc(o,r.path,n.url)}}const a=Xo(r.messageType,o);if(!a)return{code:e.ErrorCode.NOT_SUPPORT};const c=i;return dl(t,a,n,c?{task:e=>Qc(c,e)}:void 0)}async function rl(t,r,n,o){if(!r.length||!n)return{code:e.ErrorCode.PARAMETER_ERROR};if(r.some(e=>!Zc.has(e.messageType)))return{code:e.ErrorCode.NOT_SUPPORT};const s=r[0];if(!s||r.some(e=>e.conversationType!==s.conversationType||e.targetId!==s.targetId))return{code:e.ErrorCode.PARAMETER_ERROR};const i=r.map(e=>({...e,content:ds(e.content??{})}));for(const e of i)delete e.content.mentionedInfo;const a=[];for(const e of i)for(const t of Xc(e.messageType,e.content))a.push({content:e.content,binding:t});const c=Tt.getUploader();if(!c)return{code:e.ErrorCode.NOT_SUPPORT};let l;if(a.length){if(!c.prepareCopy||!c.copy)return{code:e.ErrorCode.NOT_SUPPORT};try{l=await c.prepareCopy({sourceConversation:{conversationType:s.conversationType,targetId:s.targetId},targetConversation:t,items:a.map(({binding:e})=>({sourceUrl:e.sourceUrl,...e.encryptKey?{encryptKey:e.encryptKey}:{}}))})}catch(t){return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}if(l.items.length!==a.length)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};for(let t=0;t<a.length;t++){const r=a[t],n=l.items[t];if(!r||!n?.url)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};Yc(r.content,r.binding.path,n.url)}}const u=i.map(el);if(u.some(e=>!e))return{code:e.ErrorCode.NOT_SUPPORT};const d=u;let g;try{g=await c.prepare([new Blob([JSON.stringify(d)],{type:"application/json"})])}catch(t){return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}const p=g.items[0];if(1!==g.items.length||!p?.url)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};const f={chatTitle:n,msgDataFileKey:p.url,encryptKey:g.encryptKey,msgList:d.slice(0,4).map(e=>({srcId:e.srcId,senderNickname:e.senderNickname,mediaConstructor:e.mediaConstructor,...void 0!==e.msgPostContent?{msgPostContent:e.msgPostContent}:{},...void 0!==e.mediaAttribute?{mediaAttribute:e.mediaAttribute}:{}}))},h=new Si(f),y=l;return dl(t,h,o,{uploadItems:g,task:async e=>{if(y){const t=await Qc(y,e);if(!t.finished)return t}return function(e,t,r){return new Promise(n=>{try{e.upload(t,{onError:()=>n({finished:!1,message:r}),onCompleted:()=>n({finished:!0,message:r})})}catch(e){n({finished:!1,message:r})}})}(c,g,e)}})}async function nl(e){if(e.messageType!==ss.TEXT)return;const t=e.content,r=t.linkPreview;if(!r?.image)return;if(!(r.image instanceof Blob))throw new Error("Link preview image must be a Blob");const n=Tt.getUploader();if(!n)throw new Error("Uploader is not configured");const o=await n.prepare([r.image]),s=o.items[0];if(!s)throw new Error("Link preview image upload was not prepared");const i={...r};return delete i.image,i.originalObjectKey=s.url,i.encryptKey=o.encryptKey,e.content={...t,linkPreview:i},{uploadItems:o,task:e=>new Promise(t=>{n.upload(o,{onError:()=>t({finished:!1,message:e}),onCompleted:()=>t({finished:!0,message:e})})})}}const ol=ll.bind(null,$c.IMAGE),sl=ll.bind(null,$c.GIF),il=ll.bind(null,$c.AUDIO),al=ll.bind(null,$c.SIGHT),cl=ll.bind(null,$c.FILE);async function ll(t,r,n,o,s){const i=(e=>{let t;switch(e){case $c.IMAGE:t=new Gc;break;case $c.AUDIO:t=new Kc;break;case $c.GIF:t=new qc;break;case $c.FILE:t=new Hc;break;case $c.SIGHT:t=new zc}return t})(t);if(!i)return{code:e.ErrorCode.NOT_SUPPORT};const{success:a,message:c,files:l}=await i.create(n.file,s);if(!a||!c||!l)return{code:e.ErrorCode.MEDIA_EXCEPTION};c.content.user=n.user,c.content.extra=n.extra;const u=Tt.getUploader();try{const e=await u.prepare(l);return c.content=i.updateMessageRemoteUrlProperty(c.content,{urls:e.items.map(e=>e.url),encryptedKey:e.encryptKey}),dl(r,c,s,{uploadItems:e,task:t=>new Promise(r=>{u.upload(e,{onProgress:e=>o?.onProgress?.(e),onError:()=>{r({finished:!1,message:t})},onCompleted:e=>{r({finished:!0,message:o?.onComplete?.(e)??t})}})})})}catch(t){return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}}const ul=async(t,r,n)=>{let o;try{o=await nl(t)}catch{return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}const s=await gl({conversationType:r.conversationType,targetId:r.targetId},t,r,n,o?.uploadItems);if(s.code!==e.ErrorCode.SUCCESS||!s.message||!s.sentArgs)return{code:s.code};const i=Os(s.message,s.sentArgs);if(i.quotedReply=r,await yl(i,s.sentArgs),o){const r=await o.task(t);if(!r.finished)return pl(i,e.ErrorCode.UPLOAD_FILE_FAILED),await yl(i,s.sentArgs),{code:e.ErrorCode.UPLOAD_FILE_FAILED,data:i};t=r.message}const a=ro(r),c=await Yo.getDialogAesKey(a.toString());if(!c)return pl(i,e.ErrorCode.MSG_ENCRYPT_ERROR),await yl(i,s.sentArgs),{code:e.ErrorCode.MSG_ENCRYPT_ERROR,data:i};let l,u,d,g;if(t.messageType===ss.TEXT){let e=ds(t.content),r=e.content;delete e.content,l=rs(r,c),u=JSON.stringify(ht(e))}else u=JSON.stringify(ht(t.content));const p=rs(u,c);if(r){if(r.messageType===ss.TEXT){let e=ds(r.content),t=e.content;delete e.content,d=rs(t,c),g=JSON.stringify(ht(e))}else g=JSON.stringify(ht(r.content));g=rs(g,c)}zo.addMessage(s.sentArgs.messageId);const f={localId:Lr.fromNumber(s.sentArgs.messageId),mediaFlag:t.messageType!==ss.TEXT,mediaConstructor:t.messageType,msgPreContent:"",msgPostContent:l,mediaAttribute:p,msgIdReferenced:Lr.fromString(r.messageUId),msgSrcIdReferenced:Lr.fromString(r.senderUserId),msgDestIdReferenced:r.messageDirection==e.MessageDirection.RECEIVE?Lr.fromString(on.uid):Lr.fromString(r.targetId),msgPostContentReferenced:d,mediaFlagReferenced:r.messageType!==ss.TEXT,mediaConstructorReferenced:r.messageType,mediaAttributeReferenced:g,msgSendTimeReferenced:Lr.fromString(r.sentTime)};let h;if(r.conversationType===e.ConversationType.GROUP){const e={...f,groupId:Lr.fromString(a)};if(nt(t.content.mentionedInfo)){const r=t.content.mentionedInfo;r.userList?.length&&(e.at=r.userList.map(e=>Lr.fromString(e.uin)),e.msgPreContent=JSON.stringify({atInfo:JSON.stringify(r.userList)}))}h=await So(e)}else{const e={...f,destId:Lr.fromString(a)};h=await Oo(e)}const y=ds(i);return h.code===e.ErrorCode.SUCCESS?(y.sentTime=h.data.msgSendTime.toString(),y.messageUId=h.data.msgId.toString(),y.sentStatus=e.SentStatus.SENT,await yl(y,s.sentArgs)):(pl(y,h.code),await yl(y,s.sentArgs)),{code:h.code,data:y}};async function dl(t,r,n,o){const s=await gl(t,r,null,n,o?.uploadItems);if(s.code!==e.ErrorCode.SUCCESS||!s.message||!s.sentArgs)return{code:s.code};{const e=Os(s.message,s.sentArgs);await yl(e,s.sentArgs)}let{message:i,sentArgs:a}=s;if(nt(o)){const t=await o.task(i);if(i=t.message,!t.finished){const t=Os(s.message,s.sentArgs,e.SentStatus.FAILED);return pl(t,e.ErrorCode.UPLOAD_FILE_FAILED),await yl(t,a),{code:e.ErrorCode.UPLOAD_FILE_FAILED,data:t}}}return async function(t,r){const n=ro(r.conversation),o=Os(t,r),s=await Yo.getDialogAesKey(n.toString());if(!s)return pl(o,e.ErrorCode.MSG_ENCRYPT_ERROR),await yl(o,r),{code:e.ErrorCode.MSG_ENCRYPT_ERROR,data:o};let i,a;if(t.messageType===ss.TEXT){let e=ds(t.content),r=e.content;delete e.content,i=rs(r,s),a=JSON.stringify(ht(e))}else a=JSON.stringify(ht(t.content));const c=rs(a,s);zo.addMessage(r.messageId);const l={localId:Lr.fromNumber(r.messageId),mediaFlag:t.messageType!==ss.TEXT,mediaConstructor:t.messageType,msgPreContent:"",msgPostContent:i,mediaAttribute:c};let u;if(r.conversation.conversationType===e.ConversationType.GROUP){const e={...l,groupId:Lr.fromString(n)};if(nt(t.content.mentionedInfo)){const r=t.content.mentionedInfo;r.userList?.length&&(e.at=r.userList.map(e=>Lr.fromString(e.uin)),e.msgPreContent=JSON.stringify({atInfo:JSON.stringify(r.userList)}))}u=await Io(e)}else{const e={...l,destId:Lr.fromString(n)};u=await wo(e)}u.code===e.ErrorCode.SUCCESS?(o.sentTime=u.data.msgSendTime.toString(),o.messageUId=u.data.msgId.toString(),o.sentStatus=e.SentStatus.SENT,await yl(o,r)):(pl(o,u.code),await yl(o,r));return{code:u.code,data:o}}(i,a)}async function gl(t,r,n,o,s){if(((e,t="utf-8")=>{let r=0;if("utf-16"===t)for(let t=0,n=e.length;t<n;t++)r+=e.charCodeAt(t)<=65535?2:4;else for(let t=0,n=e.length;t<n;t++){const n=e.charCodeAt(t);r+=n<127?1:n<=2047?2:n<=65535?3:4}return r})(JSON.stringify(ht(r.content)))>81920)return{code:e.ErrorCode.RC_MSG_CONTENT_EXCEED_LIMIT};r.isPersited&&await ws.get().loadConvsationsIfNotExist([t]);const i={conversation:t,senderUserId:on.uid,messageId:qs(),sentTime:hl().toString(),pushConfig:o?.pushConfig};if(o?.onSendBefore){const e=Os(r,i);n&&(e.quotedReply=n),o.onSendBefore(e,s)}return{code:e.ErrorCode.SUCCESS,message:r,sentArgs:i}}function pl(t,r){t.sentStatus=e.SentStatus.FAILED,t.sendErrorCode=r}let fl=1;function hl(){fl++;const e=Ko();return fl<e&&(fl=e),fl}async function yl(e,t){try{const r=ti.get();if(e.isPersited&&r){await r.upsertMessage(e);const n=await r.getLatestMessage(t.conversation);let o=e;n&&Lr.fromString(n.sentTime).greaterThan(Lr.fromString(e.sentTime))&&(o=n),ws.get().updateLatestMessage(t.conversation,o)}}catch(e){Yi.error("saveSentMessage -> ",e)}}class ml extends hs{options;static imClient;libLoader;constructor(e){if(ml.imClient)return Yi.warn("Please do not perform the init method repeatedly"),ml.imClient;super(),this.options=e,this.fixedProtobuf(),nt(e.logLevel)&&Yi.setLogLevel(e.logLevel),nt(e.logStdout)&&Yi.setLogStdout(e.logStdout),Yi.debug("IMClient.init -> "),nt(e.uploader)&&Tt.setUploader(e.uploader),Tt.setDeviceCode(e.deviceCode),Tt.setDeviceType(e.deviceType),this.libLoader=Hi.init(e),this.watch(),ml.imClient=this}fixedProtobuf(){kc.util.Long=Lr,kc.configure()}watch(){this.libLoader.assignWatcher({onConnecting:()=>{this.emit(e.Events.CONNECTING)},onConnected:()=>{this.emit(e.Events.CONNECTED)},onDisconnect:()=>{this.emit(e.Events.DISCONNECT,this.libLoader.getConnectionStatus())},onSuspend:()=>{this.emit(e.Events.SUSPEND,this.libLoader.getConnectionStatus())},batchMessage:t=>{this.emit(e.Events.MESSAGES,{messages:t})},pullFinished:()=>{this.emit(e.Events.PULL_OFFLINE_MESSAGE_FINISHED)},conversationState:t=>{this.emit(e.Events.CONVERSATION,{conversations:t})},onPush:(t,r)=>{this.emit(e.Events.PUSH,{cmdId:t,body:r})},onRecall:t=>{t.forEach(t=>{this.emit(e.Events.RECALL,t)})},onReceiptReceived:async(t,r)=>{try{await(ti.get()?.updateMessageReceiptStatus(t,r))}catch(e){Yi.error("updateMessageReceiptStatus -> ",e)}0===r?this.emit(e.Events.ARRIVAL_RECEIPT_RECEIVED,t):this.emit(e.Events.READ_RECEIPT_RECEIVED,t)},onMessagePinnedChanged:t=>{this.emit(e.Events.MESSAGE_PINNED_CHANGED,t)},onMessageReactionsChanged:t=>{this.emit(e.Events.MESSAGE_REACTIONS_CHANGED,t)},onDialogFilterConfig:t=>{this.emit(e.Events.DIALOG_FILTER_CONFIG,t)}})}connect(){return this.libLoader.connect()}disconnect(){return this.libLoader.disconnect()}setUserLogged(e){return e.uid!==on.uid.toString()?(on.setLogged(e),this.libLoader.setUserLogged()):Promise.resolve()}async logOut(){on.logOut(),await this.libLoader.setUserLogout()}async deleteLocalDatabase(e){await this.logOut();const t=new Qs(this.options.appkey,e);await t.deleteDatabase()}getConnectionStatus(){return this.libLoader.getConnectionStatus()}getServerTime=Ko;async insertMessage(t,r,n){(!r.messageId||r.messageId>Ks())&&(r.messageId=qs(),r.messageUId="local_"+r.messageId),ws.get().setConversationCacheByMessage(r);try{const e=ti.get();if(r.isPersited&&e){await e.upsertMessage(r);const t=await e.getLatestMessage(r);let n=r;t&&Lr.fromString(t.sentTime).greaterThan(Lr.fromString(r.sentTime))&&(n=t),ws.get().updateLatestMessage(r,n)}}catch(e){Yi.error("insertMessage -> ",e)}return{code:e.ErrorCode.SUCCESS,data:r}}sendMessage=Wc;forwardMessage=tl;mergeForwardMessages=rl;sendImageMessage=ol;sendGIFMessage=sl;sendHQVoiceMessage=il;sendFileMessage=cl;sendSightMessage=al;async recallMsg(t,r){return await(async(t,r)=>{const n=ro(t);Wo.addMessage(r.messageUId);const o=await Ro(n,r.messageUId);if(o.code!==e.ErrorCode.SUCCESS)return{code:o.code};const s=new Ki({messageUId:r.messageUId}),i={conversation:t,senderUserId:on.uid,messageId:0,sentTime:Ko().toString()},a=Os(s,i,e.SentStatus.SENT);a.burnAfterReadingFlag=!1,a.burnAfterReadingTime=0,ws.get().setConversationCacheByMessage(a);const c=ti.get();return c&&(await c.convertToRecallMessages([r.messageUId]),ws.get().updateLatestMessage(t,await c.getLatestMessage(t))),{code:e.ErrorCode.SUCCESS,data:a}})(t,r)}async commentMsg(t,r){const{code:o}=await To(ro(t),r.messageUId,r.content);if(o!==e.ErrorCode.SUCCESS)return{code:o,msg:n(o)};const s=await this.getMessageByUId(r.messageUId);if(!s)return Yi.warn("commentMsg: target message not found",r.messageUId),{code:e.ErrorCode.SUCCESS};const i={uid:on.uid,msgId:r.messageUId,content:r.content,nickname:r.nickname??"",time:Ko()},a=ni(s.reactions,i);return await(ti.get()?.setMessageReactions(t,r.messageUId,a))?(s.reactions=a,this.emit(e.Events.MESSAGE_REACTIONS_CHANGED,{conversation:t,messageUId:r.messageUId,reactions:a,change:i}),{code:e.ErrorCode.SUCCESS,data:{reactions:a}}):(Yi.warn("commentMsg: failed to persist reactions",r.messageUId),{code:e.ErrorCode.SUCCESS})}sendQuoteReplyMessage=ul;async getRemoteHistoryMessages(t,r){const o=r.timestamp??"0",s=r.count??20,i=ro(t);return _o({dialogId:i,offset:o,count:s,newToOld:0===r.order}).then(({code:t,data:r})=>new Promise(r=>{t===e.ErrorCode.SUCCESS?r({code:e.ErrorCode.SUCCESS,data:{list:[],hasMore:!1}}):r({code:t,msg:n(t)})}))}async getPreviousHistoryMessages(t,r,n=20){const o=await ti.get().getPreviousMessages(t,r??"0",n);if(!r&&o.messages.length&&ws.get().updateLatestMessage(t,o.messages[o.messages.length-1]),o.messages.length>=n||!o.hasMore)return{code:e.ErrorCode.SUCCESS,data:{list:o.messages,hasMore:o.hasMore}};const s=o.messages[0]?.sentTime??r,i=await this.getRemoteHistoryMessages(t,{timestamp:s,count:n-o.messages.length,order:0});if(i.code!==e.ErrorCode.SUCCESS)return i;const a=i.data.list;for(let e=a.length-1;e>=0;e--){const t=a[e];(!t.messageId||t.messageId>Ks())&&(t.messageId=Vs())}s&&"0"!=s||ws.get().updateLatestMessage(t,a[a.length-1]),await ti.get().addMessages(a,t,!i.data.hasMore);const c=await ti.get().getPreviousMessages(t,r??"0",n);return!r&&c.messages.length&&ws.get().updateLatestMessage(t,c.messages[c.messages.length-1]),{code:e.ErrorCode.SUCCESS,data:{list:c.messages,hasMore:c.hasMore}}}async getHistoryMessages(t,r){const n=r.timestamp??"0",o=r.count??20,s=await ti.get().getMessages(t,n,o,0===r.order);return{code:e.ErrorCode.SUCCESS,data:{list:s.messages,hasMore:s.hasMore}}}async getMessagesByType(t,r,n){const o=ti.get();if(!o)return{code:e.ErrorCode.SUCCESS,data:{list:[],hasMore:!1}};const s=await o.getMessagesByType(t,r,n.timestamp??"0",n.count??50,1!==n.order);return{code:e.ErrorCode.SUCCESS,data:{list:s.messages,hasMore:s.hasMore}}}async setMessagePinned(t,r,n,o="everyone"){if(n&&"me"===o)return await(ti.get()?.setMessagePinned(t,r,!0)),this.emit(e.Events.MESSAGE_PINNED_CHANGED,{conversation:t,messageUId:r,operation:e.MessagePinnedOperation.PIN}),e.ErrorCode.SUCCESS;const s=n?e.MessagePinnedOperation.PIN:e.MessagePinnedOperation.UNPIN;return(await Ao(ro(t),r,s)).code}async unpinAllMessages(t){return(await Ao(ro(t),"0",e.MessagePinnedOperation.UNPIN_ALL)).code}async getPinnedMessages(t,r=50){const n=await(ti.get()?.getPinnedMessages(t,r))??[];return{code:e.ErrorCode.SUCCESS,data:n}}async deleteRemoteMessage(t,r){const n=await ko(ro(t),r.map(e=>e.messageUId)).then(e=>e.code);if(n===e.ErrorCode.SUCCESS){const e=await(ti.get()?.getLatestMessage(t));if(await(ti.get()?.removeMessagesByUId(r.map(e=>e.messageUId))),e&&r.some(t=>t.messageUId===e.messageUId)){const e=await(ti.get()?.getLatestMessage(t));ws.get().updateLatestMessage(t,e)}}return n}async deleteLocalMessages(t,r){const n=ti.get();if(!n||0===r.length)return e.ErrorCode.SUCCESS;const o=await n.getLatestMessage(t);return await n.removeMessagesByUId(r),o&&r.includes(o.messageUId)&&ws.get().updateLatestMessage(t,await n.getLatestMessage(t)),e.ErrorCode.SUCCESS}async deleteHistoryMessages(e){return await(ti.get()?.clearConversationCache(e)),ws.get().clearHistoryMessages(e),Mo(ro(e)).then(e=>e.code)}async getConversationList(t,r,n,o){const s={rows:t,type:r??0,offset:Lr.fromNumber(n),newToOld:0===o},{code:i,data:a}=await No(s);if(i!==e.ErrorCode.SUCCESS)return{code:i};const c=a.fullDialog.map(e=>e.dialog?.destId).filter(nt);await Yo.getDialogAesKeyList(c.map(e=>e.toString()));let l=1e4;const u=[];for(const e of a.fullDialog){const t=this.formatConversation(e);t&&u.push(t)}const d=await(ti.get()?.getLatestMessages(u))??{},g=[];for(const e of u){const t={conversationType:e.conversationType,targetId:e.targetId},r=e.latestMessage;e.latestMessage=d[ro(t)];const n=ws.get().get(t);if(n){const{unreadMessageCount:t,hasMentioned:r,lastUnreadTime:o,updateTime:s}=n;t&&(e.unreadMessageCount=t),r&&(e.hasMentioned=r),o&&(e.lastUnreadTime=o),s&&(e.updateTime=s)}nt(e.latestMessage)&&!e.updateTime&&(e.updateTime=parseInt(e.latestMessage.sentTime)),e.updateTime||(r?e.updateTime=parseInt(r.sentTime):(e.updateTime=l,l++)),ws.get().addLocalConversation(e),g.push(e)}return g.sort((e,t)=>(e.updateTime??0)-(t.updateTime??0)),{code:e.ErrorCode.SUCCESS,data:g}}getBlockConversationList(){const t=ws.get().getBlockConversationList();return Promise.resolve({code:e.ErrorCode.SUCCESS,data:t})}getTopConversationList(){const t=ws.get().getTopConversationList();return Promise.resolve({code:e.ErrorCode.SUCCESS,data:t})}async getConversation(t){const r=ws.get().get(t);if(!r)return{code:e.ErrorCode.CONVER_GET_ERROR};const n=await(ti.get()?.getLatestMessage(t)),o={...t,...r,updateTime:nt(n?.sentTime)?parseInt(n.sentTime):void 0,latestMessage:n};return{code:e.ErrorCode.SUCCESS,data:o}}removeConversation(e){return ws.get().remove(e),jo(ro(e)).then(e=>e.code)}getUnreadMentionedCount(e){return ws.get().getUnreadMentionedCount(e)}getAllUnreadMentionedCount(){return ws.get().getAllUnreadMentionedCount()}getConversationState(e){return ws.get().getConversationState(e)}getAllConversationState(){return ws.get().getAllConversationState()}getAllConversationUnreadCount(e,t){return ws.get().getAllUnreadCount(e,t)}getConversationUnreadCount(e){return ws.get().getUnreadCount(e)}clearConversationUnreadCount(e){ws.get().getUnreadCount(e)>0&&Go(e.targetId),ws.get().clearUnreadCount(e)}clearAllConversationsUnreadCount(){ws.get().clearAllUnreadCount()}getConversationNotificationLevel(e){return ws.get().getNotificationLevel(e)}setConversationNotificationStatus(t,r){return Lo(ro(t),r===e.NotificationStatus.OPEN).then(n=>(!n.code&&ws.get().addStatus({...t,notificationStatus:r,notificationLevel:r==e.NotificationStatus.OPEN?e.NotificationLevel.AT_USER_NOTIFICATION:e.NotificationLevel.NOT_SET},!0),n.code))}getConversationNotificationStatus(e){return ws.get().getNotificationStatus(e)}setConversationToTop(e,t){return Do(ro(e),t).then(r=>(!r.code&&ws.get().addStatus({...e,isTop:t},!0),r.code))}setConversationBurnAfterReading(e,t,r){return Uo(ro(e),t,t?r:0).then(n=>(!n.code&&ws.get().addStatus({...e,burnAfterReadingFlag:t,burnAfterReadingTime:t?r:null},!0),n.code))}saveConversationMessageDraft(e,t){ws.get().setDraft(e,t)}getConversationMessageDraft(e){return ws.get().getDraft(e)}clearConversationMessageDraft(e){ws.get().clearDraft(e)}async sendReadReceipts(t,r=Date.now()){await(ti.get()?.markMessagesRead(t.map(e=>e.messageUId),r));for(const n of t)(n.receivedStatus??e.ReceivedStatus.IDLE)<e.ReceivedStatus.READ&&(n.receivedStatus=e.ReceivedStatus.READ),n.messageDirection===e.MessageDirection.RECEIVE&&n.burnAfterReadingFlag&&null==n.burnAfterReadingStartedAt&&(n.burnAfterReadingStartedAt=r);await(Bs.get()?.sendReadReceipts(t))}formatConversation(e){const{dialog:t,msg:r}=e,n=t.destId;if(!nt(n))return;const o=fs(t);if(!o)return;const s=Yo.getDialogAesKeyFromLocal(n.toString());if(s){if(nt(r)){const e=Ls.parseSingleDialogMessages(n.toString(),[r],s,{})[0];o.latestMessage=e}return o}}async clearBurnAfterReadingExpiredMessages(e){const t=ti.get();if(!t)return Promise.resolve([]);const r=await t.clearBurnAfterReadingExpiredMessages(e);return r.length>0&&ws.get().updateLatestMessage(e,await t.getLatestMessage(e)),r}async getMessageById(e){return ti.get()?.getMessageById(e)}async getMessageByUId(e){return ti.get()?.getMessageByUId(e)}async updateMessage(e){const t=ti.get();if(!t)throw new Error("Message database is not initialized for a logged-in user");if(!e.isPersited)throw new Error("Cannot update a non-persisted message");if(!(e.messageUId?await t.getMessageByUId(e.messageUId):await t.getMessageById(e.messageId)))throw new Error(`Cannot update missing message ${e.messageUId||e.messageId}`);await t.upsertMessage(e);const r=await t.getLatestMessage(e);return ws.get().updateLatestMessage(e,r),e}async searchTextMessages(e,t){const r=ti.get();return r?r.searchTextMessages(e,t):Promise.resolve([])}async searchMessages(e,t=500){const r=ti.get();return r?r.searchMessages(e,t):Promise.resolve([])}}const vl=br.Reader,bl=br.Writer,Cl=br.util,wl=br.roots.default||(br.roots.default={}),Ol=wl.AuthSignIn2Req=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.langCode="",e.prototype.phoneNum="",e.prototype.password="",e.prototype.appVersionCode=0,e.prototype.deviceType=0,e.prototype.imei="",e.prototype.brand="",e.prototype.model="",e.prototype.apnsToken="",e.prototype.bandId="",e.prototype.appVersion="",e.prototype.osVersion="",e.prototype.version=0,e.encode=function(e,t){return t||(t=bl.create()),null!=e.langCode&&Object.hasOwnProperty.call(e,"langCode")&&t.uint32(10).string(e.langCode),null!=e.phoneNum&&Object.hasOwnProperty.call(e,"phoneNum")&&t.uint32(18).string(e.phoneNum),null!=e.password&&Object.hasOwnProperty.call(e,"password")&&t.uint32(26).string(e.password),null!=e.appVersionCode&&Object.hasOwnProperty.call(e,"appVersionCode")&&t.uint32(32).int32(e.appVersionCode),null!=e.deviceType&&Object.hasOwnProperty.call(e,"deviceType")&&t.uint32(40).int32(e.deviceType),null!=e.imei&&Object.hasOwnProperty.call(e,"imei")&&t.uint32(50).string(e.imei),null!=e.brand&&Object.hasOwnProperty.call(e,"brand")&&t.uint32(58).string(e.brand),null!=e.model&&Object.hasOwnProperty.call(e,"model")&&t.uint32(66).string(e.model),null!=e.apnsToken&&Object.hasOwnProperty.call(e,"apnsToken")&&t.uint32(74).string(e.apnsToken),null!=e.bandId&&Object.hasOwnProperty.call(e,"bandId")&&t.uint32(82).string(e.bandId),null!=e.appVersion&&Object.hasOwnProperty.call(e,"appVersion")&&t.uint32(90).string(e.appVersion),null!=e.osVersion&&Object.hasOwnProperty.call(e,"osVersion")&&t.uint32(98).string(e.osVersion),null!=e.version&&Object.hasOwnProperty.call(e,"version")&&t.uint32(104).int32(e.version),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.AuthSignIn2Req;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.langCode=e.string();break;case 2:n.phoneNum=e.string();break;case 3:n.password=e.string();break;case 4:n.appVersionCode=e.int32();break;case 5:n.deviceType=e.int32();break;case 6:n.imei=e.string();break;case 7:n.brand=e.string();break;case 8:n.model=e.string();break;case 9:n.apnsToken=e.string();break;case 10:n.bandId=e.string();break;case 11:n.appVersion=e.string();break;case 12:n.osVersion=e.string();break;case 13:n.version=e.int32();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/AuthSignIn2Req"},e})(),Il=wl.AuthSignIn2Resp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.deviceId=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.sessionId=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.noNickName=!1,e.prototype.noEmail=!1,e.prototype.cert="",e.prototype.userFileDomain="",e.prototype.dialogFileDomain="",e.prototype.user=null,e.prototype.frozenDays=0,e.encode=function(e,t){return t||(t=bl.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.deviceId&&Object.hasOwnProperty.call(e,"deviceId")&&t.uint32(24).int64(e.deviceId),null!=e.sessionId&&Object.hasOwnProperty.call(e,"sessionId")&&t.uint32(32).int64(e.sessionId),null!=e.noNickName&&Object.hasOwnProperty.call(e,"noNickName")&&t.uint32(40).bool(e.noNickName),null!=e.noEmail&&Object.hasOwnProperty.call(e,"noEmail")&&t.uint32(48).bool(e.noEmail),null!=e.cert&&Object.hasOwnProperty.call(e,"cert")&&t.uint32(58).string(e.cert),null!=e.userFileDomain&&Object.hasOwnProperty.call(e,"userFileDomain")&&t.uint32(74).string(e.userFileDomain),null!=e.dialogFileDomain&&Object.hasOwnProperty.call(e,"dialogFileDomain")&&t.uint32(82).string(e.dialogFileDomain),null!=e.user&&Object.hasOwnProperty.call(e,"user")&&wl.User.encode(e.user,t.uint32(90).fork()).ldelim(),null!=e.frozenDays&&Object.hasOwnProperty.call(e,"frozenDays")&&t.uint32(104).int32(e.frozenDays),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.AuthSignIn2Resp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.deviceId=e.int64();break;case 4:n.sessionId=e.int64();break;case 5:n.noNickName=e.bool();break;case 6:n.noEmail=e.bool();break;case 7:n.cert=e.string();break;case 9:n.userFileDomain=e.string();break;case 10:n.dialogFileDomain=e.string();break;case 11:n.user=wl.User.decode(e,e.uint32());break;case 13:n.frozenDays=e.int32();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/AuthSignIn2Resp"},e})();wl.User=(()=>{function e(e){if(this.aliasMobile=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.uid=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.nickName="",e.prototype.langCode="",e.prototype.phone="",e.prototype.numberInPhoneBook="",e.prototype.smallAvatarUrl="",e.prototype.originalAvatarUrl="",e.prototype.email="",e.prototype.qrcodeString="",e.prototype.gender=0,e.prototype.contactStatus=0,e.prototype.alias="",e.prototype.aliasMobile=Cl.emptyArray,e.prototype.aliasDesp="",e.encode=function(e,t){if(t||(t=bl.create()),null!=e.uid&&Object.hasOwnProperty.call(e,"uid")&&t.uint32(8).int64(e.uid),null!=e.nickName&&Object.hasOwnProperty.call(e,"nickName")&&t.uint32(18).string(e.nickName),null!=e.langCode&&Object.hasOwnProperty.call(e,"langCode")&&t.uint32(26).string(e.langCode),null!=e.phone&&Object.hasOwnProperty.call(e,"phone")&&t.uint32(34).string(e.phone),null!=e.numberInPhoneBook&&Object.hasOwnProperty.call(e,"numberInPhoneBook")&&t.uint32(42).string(e.numberInPhoneBook),null!=e.smallAvatarUrl&&Object.hasOwnProperty.call(e,"smallAvatarUrl")&&t.uint32(50).string(e.smallAvatarUrl),null!=e.originalAvatarUrl&&Object.hasOwnProperty.call(e,"originalAvatarUrl")&&t.uint32(58).string(e.originalAvatarUrl),null!=e.email&&Object.hasOwnProperty.call(e,"email")&&t.uint32(66).string(e.email),null!=e.qrcodeString&&Object.hasOwnProperty.call(e,"qrcodeString")&&t.uint32(74).string(e.qrcodeString),null!=e.gender&&Object.hasOwnProperty.call(e,"gender")&&t.uint32(80).int32(e.gender),null!=e.contactStatus&&Object.hasOwnProperty.call(e,"contactStatus")&&t.uint32(88).int32(e.contactStatus),null!=e.alias&&Object.hasOwnProperty.call(e,"alias")&&t.uint32(98).string(e.alias),null!=e.aliasMobile&&e.aliasMobile.length)for(let r=0;r<e.aliasMobile.length;++r)t.uint32(106).string(e.aliasMobile[r]);return null!=e.aliasDesp&&Object.hasOwnProperty.call(e,"aliasDesp")&&t.uint32(114).string(e.aliasDesp),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.User;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.uid=e.int64();break;case 2:n.nickName=e.string();break;case 3:n.langCode=e.string();break;case 4:n.phone=e.string();break;case 5:n.numberInPhoneBook=e.string();break;case 6:n.smallAvatarUrl=e.string();break;case 7:n.originalAvatarUrl=e.string();break;case 8:n.email=e.string();break;case 9:n.qrcodeString=e.string();break;case 10:n.gender=e.int32();break;case 11:n.contactStatus=e.int32();break;case 12:n.alias=e.string();break;case 13:n.aliasMobile&&n.aliasMobile.length||(n.aliasMobile=[]),n.aliasMobile.push(e.string());break;case 14:n.aliasDesp=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/User"},e})();const Sl=wl.WebGetLoginCodeReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.account="",e.prototype.langCode="",e.encode=function(e,t){return t||(t=bl.create()),null!=e.account&&Object.hasOwnProperty.call(e,"account")&&t.uint32(10).string(e.account),null!=e.langCode&&Object.hasOwnProperty.call(e,"langCode")&&t.uint32(18).string(e.langCode),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.WebGetLoginCodeReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.account=e.string();break;case 2:n.langCode=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/WebGetLoginCodeReq"},e})(),El=wl.WebGetLoginCodeResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.encode=function(e,t){return t||(t=bl.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.WebGetLoginCodeResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/WebGetLoginCodeResp"},e})(),Rl=wl.WebGetLoginCodeVerifyReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.account="",e.prototype.langCode="",e.prototype.code="",e.encode=function(e,t){return t||(t=bl.create()),null!=e.account&&Object.hasOwnProperty.call(e,"account")&&t.uint32(10).string(e.account),null!=e.langCode&&Object.hasOwnProperty.call(e,"langCode")&&t.uint32(18).string(e.langCode),null!=e.code&&Object.hasOwnProperty.call(e,"code")&&t.uint32(26).string(e.code),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.WebGetLoginCodeVerifyReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.account=e.string();break;case 2:n.langCode=e.string();break;case 3:n.code=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/WebGetLoginCodeVerifyReq"},e})(),Tl=wl.ClickOKToWebResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.deviceId=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.sessionId=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.noNickName=!1,e.prototype.noEmail=!1,e.prototype.cert="",e.prototype.userFileDomain="",e.prototype.dialogFileDomain="",e.prototype.user=null,e.encode=function(e,t){return t||(t=bl.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.deviceId&&Object.hasOwnProperty.call(e,"deviceId")&&t.uint32(24).int64(e.deviceId),null!=e.sessionId&&Object.hasOwnProperty.call(e,"sessionId")&&t.uint32(32).int64(e.sessionId),null!=e.noNickName&&Object.hasOwnProperty.call(e,"noNickName")&&t.uint32(40).bool(e.noNickName),null!=e.noEmail&&Object.hasOwnProperty.call(e,"noEmail")&&t.uint32(48).bool(e.noEmail),null!=e.cert&&Object.hasOwnProperty.call(e,"cert")&&t.uint32(58).string(e.cert),null!=e.userFileDomain&&Object.hasOwnProperty.call(e,"userFileDomain")&&t.uint32(74).string(e.userFileDomain),null!=e.dialogFileDomain&&Object.hasOwnProperty.call(e,"dialogFileDomain")&&t.uint32(82).string(e.dialogFileDomain),null!=e.user&&Object.hasOwnProperty.call(e,"user")&&wl.User.encode(e.user,t.uint32(90).fork()).ldelim(),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.ClickOKToWebResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.deviceId=e.int64();break;case 4:n.sessionId=e.int64();break;case 5:n.noNickName=e.bool();break;case 6:n.noEmail=e.bool();break;case 7:n.cert=e.string();break;case 9:n.userFileDomain=e.string();break;case 10:n.dialogFileDomain=e.string();break;case 11:n.user=wl.User.decode(e,e.uint32());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ClickOKToWebResp"},e})();let Al;const _l=async(t,r,n)=>{if(r instanceof hi==!1)return Yi.warn("send message fail -> message parameter is not an instance of BaseMessage"),{code:e.ErrorCode.PARAMETER_ERROR};aa("conversation",t,sa,!0),kl(t);const o=await Al.sendMessage(t,r,n);return Ml(t,o.code),o},kl=e=>{const t="conversationType:"+e.conversationType+",targetId:"+e.targetId;Yi.debug("send message ->"+t)},Ml=(t,r)=>{if(r!==e.ErrorCode.SUCCESS){const e="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.warn("send message fail ->"+r+":"+n(r)+","+e)}};e.ChatRecordMessage=Si,e.ContactMessage=Ei,e.ErrorDesc=n,e.FileMessage=wi,e.GIFMessage=bi,e.GroupCloseBurnAfterReadingMessage=ji,e.GroupMessagePinnedNotification=qi,e.GroupOpenBurnAfterReadingMessage=Ui,e.HQVoiceMessage=Ci,e.ImageMessage=vi,e.InvitationMessage=Ri,e.LinkMessage=_i,e.LocationMessage=Ii,e.MessageTypes=ss,e.NotiMessageTypes=cs,e.PrivateCloseBurnAfterReadingMessage=Di,e.PrivateMessagePinnedNotification=Gi,e.PrivateOpenBurnAfterReadingMessage=Li,e.RecallCommandMessage=Ki,e.RedEnvelopeMessage=Ti,e.TextMessage=mi,e.TransferMessage=Ai,e.VideoMessage=Oi,e.addEventListener=(e,t,r)=>{Al.on(e,t,r)},e.clearAllMessagesUnreadStatus=()=>(Yi.debug("clear allMessagesUnreadStatus"),Al.clearAllConversationsUnreadCount(),Promise.resolve({code:e.ErrorCode.SUCCESS})),e.clearBurnAfterReadingExpiredMessages=async t=>{aa("conversation",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("clear burn after reading expired messages ->"+r);const n=await Al.clearBurnAfterReadingExpiredMessages(t);return n.length>0&&Yi.debug(`已清除会话 ${r} 中的 ${n.length} 条阅后即焚过期消息`),Promise.resolve({code:e.ErrorCode.SUCCESS,data:n})},e.clearHistoryMessages=async t=>{aa("conversation",t,sa);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("clear message ->"+r);const o=await Al.deleteHistoryMessages(t);return o!==e.ErrorCode.SUCCESS?(Yi.warn("clear message ->"+o+":"+n(o)+","+r),{code:o,msg:n(o)}):{code:e.ErrorCode.SUCCESS}},e.clearMessagesUnreadStatus=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;return Yi.debug("clear unreadMsgNum ->"+r),Al.clearConversationUnreadCount(t),Promise.resolve({code:e.ErrorCode.SUCCESS})},e.clearTextMessageDraft=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;return Yi.debug("delete draft ->"+r),Al.clearConversationMessageDraft(t),Promise.resolve({code:e.ErrorCode.SUCCESS})},e.commentMessage=async(t,r)=>{aa("options.messageUId",r.messageUId,Qi,!0),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId+",messageUId:"+r.messageUId;Yi.debug("comment message ->"+o);const s=await Al.commentMsg(t,r);return s.code!==e.ErrorCode.SUCCESS&&Yi.warn("comment message fail ->"+s.code+":"+n(s.code)+","+o),s},e.connect=async()=>{const t=await Al.connect();return t.code===e.ErrorCode.SUCCESS?{code:t.code}:{code:t.code,msg:n(t.code)}},e.deleteLegacyDatabase=async()=>{const e=ti.get();if(!e)throw new Error("Message database is not initialized for a logged-in user");await e.deleteLegacyDatabase()},e.deleteLocalDatabase=e=>Al.deleteLocalDatabase(e),e.deleteLocalMessages=async(e,t)=>(aa("conversation",e,sa,!0),aa("messageUIds",t,e=>lt(e)&&e.length>0,!0),t.forEach(e=>{aa("messageUIds.messageUId",e,Qi,!0)}),{code:await Al.deleteLocalMessages(e,t)}),e.deleteMessages=async(t,r)=>{aa("messages",r,e=>lt(e)&&!!e.length,!0),r.forEach(e=>{aa("messages.messageUId",e.messageUId,Qi,!0),aa("messages.sentTime",e.sentTime,ea,!1),aa("messages.messageDirection",e.messageDirection,e=>1===e||2===e,!1)}),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("delete messages ->"+o);const s=await Al.deleteRemoteMessage(t,r);return s!==e.ErrorCode.SUCCESS?(Yi.warn("delete message fail ->"+s+":"+n(s)+","+o),{code:s,msg:n(s)}):{code:e.ErrorCode.SUCCESS}},e.disconnect=()=>Al.disconnect(),e.encodeReceivedMessage2ChatRecordMsgDetail=e=>Ls.encodeReceivedMessage2ChatRecordMsgDetail(e),e.forwardMessage=async(e,t,r)=>{aa("conversation",e,sa,!0),aa("originalMessage",t,ra,!0),kl(e);const n=await Al.forwardMessage(e,t,r);return Ml(e,n.code),n},e.getAllConversationState=()=>{Yi.debug("getAllConversationState");const t=Al.getAllConversationState();return Promise.resolve({code:e.ErrorCode.SUCCESS,data:t})},e.getAllUnreadMentionedCount=()=>{Yi.debug("getAllUnreadMentionedCount");const t=Al.getAllUnreadMentionedCount();return Promise.resolve({code:e.ErrorCode.SUCCESS,data:t})},e.getBlockedConversationList=()=>Al.getBlockConversationList(),e.getCachedDialogFilterConfig=()=>gi,e.getConnectionStatus=()=>Al.getConnectionStatus(),e.getConversation=async t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("get conversation ->"+r);const{code:o,data:s}=await Al.getConversation(t);return o!==e.ErrorCode.SUCCESS?(Yi.warn("get conversation fail ->"+o+":"+n(o)+","+r),{code:o,msg:n(o)}):{code:o,data:s}},e.getConversationList=async t=>{Yi.debug("get conversation list ->");const{code:r,data:o}=await Al.getConversationList(t?.count??20,null,t?.startTime??0,t?.order??0);return r!==e.ErrorCode.SUCCESS&&Yi.warn("get conversation list fail ->"+r+":"+n(r)),{code:r,msg:n(r),data:o}},e.getConversationNotificationLevel=t=>{aa("options",t,sa,!0),Yi.info("getConversationNotificationLevel ->targetId:"+t.targetId+",conversationType:"+t.conversationType);const r=Al.getConversationNotificationLevel(t);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:r})},e.getConversationNotificationStatus=t=>{aa("options",t,sa,!0),Yi.info("getConversationNotificationStatus ->targetId:"+t.targetId+",conversationType:"+t.conversationType);const r=Al.getConversationNotificationStatus(t);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:r})},e.getConversationState=e=>(Yi.debug("getConversationState"),Al.getConversationState(e)),e.getHistoryMessages=async(t,r)=>{aa("options.count",r.count??0,ea),aa("options.order",r.order??0,e=>0===e||1===e),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("get history messages ->"+o),nt(r.timestamp)&&(r.timestamp=r.timestamp.toString());let s=await Al.getHistoryMessages(t,r);return s.code!==e.ErrorCode.SUCCESS&&Yi.warn("get history message fail ->"+s.code+":"+n(s.code)+","+o),s},e.getLegacyMediaReferences=async(e=0,t=500)=>{const r=ti.get();if(!r)throw new Error("Message database is not initialized for a logged-in user");return r.getLegacyMediaReferences(e,t)},e.getLegacyMigrationInfo=async()=>{const e=ti.get();if(!e)throw new Error("Message database is not initialized for a logged-in user");return e.getLegacyMigrationInfo()},e.getMessageById=async t=>{const r=await Al.getMessageById(t);return{code:e.ErrorCode.SUCCESS,data:r}},e.getMessageByUId=async t=>{const r=await Al.getMessageByUId(t);return{code:e.ErrorCode.SUCCESS,data:r}},e.getMessagesByType=async(e,t,r={})=>{aa("conversation",e,sa,!0);const n=Array.isArray(t)?[...t]:[t];return n.forEach((e,t)=>{aa(`messageTypes[${t}]`,e,ea,!0)}),nt(r.count)&&aa("options.count",r.count,ea,!0),nt(r.order)&&aa("options.order",r.order,e=>0===e||1===e),nt(r.timestamp)&&(r.timestamp=r.timestamp.toString()),Al.getMessagesByType(e,n,r)},e.getPinnedMessages=async(e,t=50)=>(aa("conversation",e,sa,!0),aa("count",t,e=>Number.isInteger(e)&&e>0,!0),Al.getPinnedMessages(e,t)),e.getRemoteHistoryMessages=async(t,r)=>{aa("options.count",r.count??0,ea),aa("options.order",r.order??0,e=>0===e||1===e),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;let s;return Yi.debug("get remote history message ->"+o),nt(r.timestamp)&&(r.timestamp=r.timestamp.toString()),s=r.order?await Al.getHistoryMessages(t,r):await Al.getPreviousHistoryMessages(t,r.timestamp,r.count),s.code!==e.ErrorCode.SUCCESS&&Yi.warn("get remote history message fail ->"+s.code+":"+n(s.code)+","+o),s},e.getServerTime=()=>Al.getServerTime(),e.getTextMessageDraft=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("get draft ->"+r);const n=Al.getConversationMessageDraft(t);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:n})},e.getTopConversationList=()=>Al.getTopConversationList(),e.getTotalUnreadCount=(t,r)=>{if(Yi.debug("get total unread count -> ConversationType:"+JSON.stringify(r)+" includeMuted:"+t),aa("includeMuted",t,ta,!1),aa("conversationTypes",r,na,!1),r)for(const e of r)aa("conversationType",e,oa,!0);const n=Al.getAllConversationUnreadCount(r??[],t??!1);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:n})},e.getUnreadCount=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("get unreadCount ->"+r);const n=Al.getConversationUnreadCount(t);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:n})},e.getUnreadMentionedCount=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;return Yi.debug("get unreadMentionedCount ->"+r),Promise.resolve({code:e.ErrorCode.SUCCESS,data:Al.getUnreadMentionedCount(t)})},e.init=e=>{Al=Al||new ml(e)},e.insertMessage=async(e,t,r)=>Al.insertMessage(e,t,r),e.isRecallMessageType=ls,e.logOut=()=>Al.logOut(),e.mergeForwardMessages=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("originalMessages",t,na,!0),aa("chatTitle",r,Qi,!0),kl(e);const o=await Al.mergeForwardMessages(e,t,r,n);return Ml(e,o.code),o},e.migrateLegacyDatabase=async e=>{const t=ti.get();if(!t)throw new Error("Message database is not initialized for a logged-in user");return t.migrateLegacyDatabase(e)},e.mockGetLoginCode=e=>(e=>un.request(805404721,{langCode:e.langCode,account:e.phone},{encoder:Sl,decoder:El}))(e),e.mockLogin=e=>(e=>un.request(805376017,{langCode:e.langCode,phoneNum:e.phone,password:tt.SHA256(e.password).toString(),deviceType:7,imei:"59bc678b-fe6d-4e67-87c6-b0692205134b",brand:"Chrome",model:"Mozilla",appVersion:"1.0.0",osVersion:"1.0.0"},{encoder:Ol,decoder:Il}))(e),e.mockVerifyLoginCode=e=>(e=>un.request(805404723,{langCode:e.country,account:e.phone,code:e.code},{encoder:Rl,decoder:Tl}))(e),e.onceEventListener=function(e,t,r){Al.once(e,t,r)},e.parseChatRecordMsgDetails=(e,t)=>Ls.decodeChatRecordMsgDetails2ReceivedMessages(e,t),e.recallMessage=async(t,r)=>{aa("options.messageUId",r.messageUId,Qi,!0),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId+",messageUId:"+r.messageUId;Yi.debug("recall message ->"+o);const s=await Al.recallMsg(t,r);return s.code!==e.ErrorCode.SUCCESS&&Yi.warn("recall message fail ->"+s.code+":"+n(s.code)+","+o),s},e.registerMessageType=(e,t,r,n)=>{let o=function(o){return new hi(e,o,t,r,n)};return Zo(e,o),o},e.remapIncomingRecallConstructor=us,e.removeConversation=async t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("remove conversation ->"+r);const o=await Al.removeConversation(t);return o!==e.ErrorCode.SUCCESS?(Yi.warn("remove conversation fail ->"+o+":"+n(o)+","+r),{code:o,msg:n(o)}):{code:o}},e.removeEventListener=(e,t,r)=>{Al?.off(e,t,r)},e.request=(e,t,r,n=3e4)=>un.request(e,t,r,n),e.saveTextMessageDraft=(t,r)=>{aa("options",t,sa,!0),aa("draft",r,Qi,!0);const n="conversationType:"+t.conversationType+",targetId:"+t.targetId;return Yi.debug("set draft ->"+n),Al.saveConversationMessageDraft(t,r),Promise.resolve({code:e.ErrorCode.SUCCESS})},e.searchMessages=async(t,r=500)=>{const n=await Al.searchMessages(t,r);return{code:e.ErrorCode.SUCCESS,data:n}},e.searchTextMessages=async(t,r)=>{const n=await Al.searchTextMessages(t,r);return{code:e.ErrorCode.SUCCESS,data:n}},e.sendFileMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob,!0);const o="conversationType:"+e.conversationType+",targetId:"+e.targetId;Yi.debug("send message ->"+o),kl(e);const s=await Al.sendFileMessage(e,t,r,n);return Ml(e,s.code),s},e.sendGIFMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob&&e.type.endsWith("image/gif"),!0);const o="conversationType:"+e.conversationType+",targetId:"+e.targetId;Yi.debug("send message ->"+o),kl(e);const s=await Al.sendGIFMessage(e,t,r,n);return Ml(e,s.code),s},e.sendHQVoiceMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob,!0),kl(e);const o=await Al.sendHQVoiceMessage(e,t,r,n);return Ml(e,o.code),o},e.sendImageMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob&&e.type.startsWith("image/"),!0);const o="conversationType:"+e.conversationType+",targetId:"+e.targetId;Yi.debug("send message ->"+o),kl(e);const s=await Al.sendImageMessage(e,t,r,n);return Ml(e,s.code),s},e.sendMessage=_l,e.sendQuoteReplyMessage=async(e,t,r)=>await Al.sendQuoteReplyMessage(e,t,r),e.sendReadReceipts=async(t,r=Date.now())=>{try{return await Al.sendReadReceipts(t,r),{code:e.ErrorCode.SUCCESS}}catch(t){return{code:e.ErrorCode.UNKNOWN}}},e.sendSightMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob&&e.type.startsWith("video/"),!0),kl(e);const o=await Al.sendSightMessage(e,t,r,n);return Ml(e,o.code),o},e.sendTextMessage=(e,t,r)=>{const n=new mi(t);return _l(e,n,r)},e.setConversationBurnAfterReading=async(t,r,o=0)=>{aa("conversation",t,sa,!0),aa("enabled",r,ta,!0),aa("burnAfterReadingTime",o,e=>Number.isSafeInteger(e)&&e>=0,!0);const s=await Al.setConversationBurnAfterReading(t,r,r?o:0);return s!==e.ErrorCode.SUCCESS?{code:s,msg:n(s)}:{code:e.ErrorCode.SUCCESS}},e.setConversationNotificationStatus=async(t,r)=>{aa("options",t,sa,!0),aa("notificationStatus",r,e=>1===e||2===e,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("set conversation status ->"+o);const s=await Al.setConversationNotificationStatus(t,r);return s!==e.ErrorCode.SUCCESS?(Yi.warn("set conversation status fail ->"+s+":"+n(s)+","+o),{code:s,msg:n(s)}):{code:s}},e.setConversationToTop=async(t,r=!0)=>{aa("options",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("set conversation status ->"+o);const s=await Al.setConversationToTop(t,r);return s!==e.ErrorCode.SUCCESS?(Yi.warn("set conversation status fail ->"+s+":"+n(s)+","+o),{code:s,msg:n(s)}):{code:s}},e.setMessagePinned=async(t,r,o,s="everyone")=>{aa("conversation",t,sa,!0),aa("messageUId",r,Qi,!0),aa("pinned",o,ta,!0),aa("scope",s,e=>"everyone"===e||"me"===e,!0);const i=await Al.setMessagePinned(t,r,o,s);return i!==e.ErrorCode.SUCCESS?{code:i,msg:n(i)}:{code:e.ErrorCode.SUCCESS}},e.setUserLogged=e=>Al.setUserLogged(e),e.unpinAllMessages=async t=>{aa("conversation",t,sa,!0);const r=await Al.unpinAllMessages(t);return r!==e.ErrorCode.SUCCESS?{code:r,msg:n(r)}:{code:e.ErrorCode.SUCCESS}},e.updateMessage=async t=>{try{const r=await Al.updateMessage(t);return{code:e.ErrorCode.SUCCESS,data:r}}catch(t){return Yi.error("updateMessage -> ",t),{code:e.ErrorCode.UNKNOWN,msg:t instanceof Error?t.message:String(t)}}}});
37
+ */var Pr=null;try{Pr=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(e){}function Lr(e,t,r){this.low=0|e,this.high=0|t,this.unsigned=!!r}function Dr(e){return!0===(e&&e.__isLong__)}function Ur(e){var t=Math.clz32(e&-e);return e?31-t:t}Lr.prototype.__isLong__,Object.defineProperty(Lr.prototype,"__isLong__",{value:!0}),Lr.isLong=Dr;var jr={},Br={};function Fr(e,t){var r,n,o;return t?(o=0<=(e>>>=0)&&e<256)&&(n=Br[e])?n:(r=Gr(e,0,!0),o&&(Br[e]=r),r):(o=-128<=(e|=0)&&e<128)&&(n=jr[e])?n:(r=Gr(e,e<0?-1:0,!1),o&&(jr[e]=r),r)}function xr(e,t){if(isNaN(e))return t?Zr:Jr;if(t){if(e<0)return Zr;if(e>=zr)return tn}else{if(e<=-$r)return rn;if(e+1>=$r)return en}return e<0?xr(-e,t).neg():Gr(e%Hr|0,e/Hr|0,t)}function Gr(e,t,r){return new Lr(e,t,r)}Lr.fromInt=Fr,Lr.fromNumber=xr,Lr.fromBits=Gr;var qr=Math.pow;function Vr(e,t,r){if(0===e.length)throw Error("empty string");if("number"==typeof t?(r=t,t=!1):t=!!t,"NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return t?Zr:Jr;if((r=r||10)<2||36<r)throw RangeError("radix");var n;if((n=e.indexOf("-"))>0)throw Error("interior hyphen");if(0===n)return Vr(e.substring(1),t,r).neg();for(var o=xr(qr(r,8)),s=Jr,i=0;i<e.length;i+=8){var a=Math.min(8,e.length-i),c=parseInt(e.substring(i,i+a),r);if(a<8){var l=xr(qr(r,a));s=s.mul(l).add(xr(c))}else s=(s=s.mul(o)).add(xr(c))}return s.unsigned=t,s}function Kr(e,t){return"number"==typeof e?xr(e,t):"string"==typeof e?Vr(e,t):Gr(e.low,e.high,"boolean"==typeof t?t:e.unsigned)}Lr.fromString=Vr,Lr.fromValue=Kr;var Hr=4294967296,zr=Hr*Hr,$r=zr/2,Wr=Fr(1<<24),Jr=Fr(0);Lr.ZERO=Jr;var Zr=Fr(0,!0);Lr.UZERO=Zr;var Xr=Fr(1);Lr.ONE=Xr;var Yr=Fr(1,!0);Lr.UONE=Yr;var Qr=Fr(-1);Lr.NEG_ONE=Qr;var en=Gr(-1,2147483647,!1);Lr.MAX_VALUE=en;var tn=Gr(-1,-1,!0);Lr.MAX_UNSIGNED_VALUE=tn;var rn=Gr(0,-2147483648,!1);Lr.MIN_VALUE=rn;var nn=Lr.prototype;nn.toInt=function(){return this.unsigned?this.low>>>0:this.low},nn.toNumber=function(){return this.unsigned?(this.high>>>0)*Hr+(this.low>>>0):this.high*Hr+(this.low>>>0)},nn.toString=function(e){if((e=e||10)<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative()){if(this.eq(rn)){var t=xr(e),r=this.div(t),n=r.mul(t).sub(this);return r.toString(e)+n.toInt().toString(e)}return"-"+this.neg().toString(e)}for(var o=xr(qr(e,6),this.unsigned),s=this,i="";;){var a=s.div(o),c=(s.sub(a.mul(o)).toInt()>>>0).toString(e);if((s=a).isZero())return c+i;for(;c.length<6;)c="0"+c;i=""+c+i}},nn.getHighBits=function(){return this.high},nn.getHighBitsUnsigned=function(){return this.high>>>0},nn.getLowBits=function(){return this.low},nn.getLowBitsUnsigned=function(){return this.low>>>0},nn.getNumBitsAbs=function(){if(this.isNegative())return this.eq(rn)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;t>0&&!(e&1<<t);t--);return 0!=this.high?t+33:t+1},nn.isZero=function(){return 0===this.high&&0===this.low},nn.eqz=nn.isZero,nn.isNegative=function(){return!this.unsigned&&this.high<0},nn.isPositive=function(){return this.unsigned||this.high>=0},nn.isOdd=function(){return!(1&~this.low)},nn.isEven=function(){return!(1&this.low)},nn.equals=function(e){return Dr(e)||(e=Kr(e)),(this.unsigned===e.unsigned||this.high>>>31!=1||e.high>>>31!=1)&&(this.high===e.high&&this.low===e.low)},nn.eq=nn.equals,nn.notEquals=function(e){return!this.eq(e)},nn.neq=nn.notEquals,nn.ne=nn.notEquals,nn.lessThan=function(e){return this.comp(e)<0},nn.lt=nn.lessThan,nn.lessThanOrEqual=function(e){return this.comp(e)<=0},nn.lte=nn.lessThanOrEqual,nn.le=nn.lessThanOrEqual,nn.greaterThan=function(e){return this.comp(e)>0},nn.gt=nn.greaterThan,nn.greaterThanOrEqual=function(e){return this.comp(e)>=0},nn.gte=nn.greaterThanOrEqual,nn.ge=nn.greaterThanOrEqual,nn.compare=function(e){if(Dr(e)||(e=Kr(e)),this.eq(e))return 0;var t=this.isNegative(),r=e.isNegative();return t&&!r?-1:!t&&r?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},nn.comp=nn.compare,nn.negate=function(){return!this.unsigned&&this.eq(rn)?rn:this.not().add(Xr)},nn.neg=nn.negate,nn.add=function(e){Dr(e)||(e=Kr(e));var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,s=e.high>>>16,i=65535&e.high,a=e.low>>>16,c=0,l=0,u=0,d=0;return u+=(d+=o+(65535&e.low))>>>16,l+=(u+=n+a)>>>16,c+=(l+=r+i)>>>16,c+=t+s,Gr((u&=65535)<<16|(d&=65535),(c&=65535)<<16|(l&=65535),this.unsigned)},nn.subtract=function(e){return Dr(e)||(e=Kr(e)),this.add(e.neg())},nn.sub=nn.subtract,nn.multiply=function(e){if(this.isZero())return this;if(Dr(e)||(e=Kr(e)),Pr)return Gr(Pr.mul(this.low,this.high,e.low,e.high),Pr.get_high(),this.unsigned);if(e.isZero())return this.unsigned?Zr:Jr;if(this.eq(rn))return e.isOdd()?rn:Jr;if(e.eq(rn))return this.isOdd()?rn:Jr;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Wr)&&e.lt(Wr))return xr(this.toNumber()*e.toNumber(),this.unsigned);var t=this.high>>>16,r=65535&this.high,n=this.low>>>16,o=65535&this.low,s=e.high>>>16,i=65535&e.high,a=e.low>>>16,c=65535&e.low,l=0,u=0,d=0,g=0;return d+=(g+=o*c)>>>16,u+=(d+=n*c)>>>16,d&=65535,u+=(d+=o*a)>>>16,l+=(u+=r*c)>>>16,u&=65535,l+=(u+=n*a)>>>16,u&=65535,l+=(u+=o*i)>>>16,l+=t*c+r*a+n*i+o*s,Gr((d&=65535)<<16|(g&=65535),(l&=65535)<<16|(u&=65535),this.unsigned)},nn.mul=nn.multiply,nn.divide=function(e){if(Dr(e)||(e=Kr(e)),e.isZero())throw Error("division by zero");var t,r,n;if(Pr)return this.unsigned||-2147483648!==this.high||-1!==e.low||-1!==e.high?Gr((this.unsigned?Pr.div_u:Pr.div_s)(this.low,this.high,e.low,e.high),Pr.get_high(),this.unsigned):this;if(this.isZero())return this.unsigned?Zr:Jr;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Zr;if(e.gt(this.shru(1)))return Yr;n=Zr}else{if(this.eq(rn))return e.eq(Xr)||e.eq(Qr)?rn:e.eq(rn)?Xr:(t=this.shr(1).div(e).shl(1)).eq(Jr)?e.isNegative()?Xr:Qr:(r=this.sub(e.mul(t)),n=t.add(r.div(e)));if(e.eq(rn))return this.unsigned?Zr:Jr;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();n=Jr}for(r=this;r.gte(e);){t=Math.max(1,Math.floor(r.toNumber()/e.toNumber()));for(var o=Math.ceil(Math.log(t)/Math.LN2),s=o<=48?1:qr(2,o-48),i=xr(t),a=i.mul(e);a.isNegative()||a.gt(r);)a=(i=xr(t-=s,this.unsigned)).mul(e);i.isZero()&&(i=Xr),n=n.add(i),r=r.sub(a)}return n},nn.div=nn.divide,nn.modulo=function(e){return Dr(e)||(e=Kr(e)),Pr?Gr((this.unsigned?Pr.rem_u:Pr.rem_s)(this.low,this.high,e.low,e.high),Pr.get_high(),this.unsigned):this.sub(this.div(e).mul(e))},nn.mod=nn.modulo,nn.rem=nn.modulo,nn.not=function(){return Gr(~this.low,~this.high,this.unsigned)},nn.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32},nn.clz=nn.countLeadingZeros,nn.countTrailingZeros=function(){return this.low?Ur(this.low):Ur(this.high)+32},nn.ctz=nn.countTrailingZeros,nn.and=function(e){return Dr(e)||(e=Kr(e)),Gr(this.low&e.low,this.high&e.high,this.unsigned)},nn.or=function(e){return Dr(e)||(e=Kr(e)),Gr(this.low|e.low,this.high|e.high,this.unsigned)},nn.xor=function(e){return Dr(e)||(e=Kr(e)),Gr(this.low^e.low,this.high^e.high,this.unsigned)},nn.shiftLeft=function(e){return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gr(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Gr(0,this.low<<e-32,this.unsigned)},nn.shl=nn.shiftLeft,nn.shiftRight=function(e){return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gr(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Gr(this.high>>e-32,this.high>=0?0:-1,this.unsigned)},nn.shr=nn.shiftRight,nn.shiftRightUnsigned=function(e){return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:e<32?Gr(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):Gr(32===e?this.high:this.high>>>e-32,0,this.unsigned)},nn.shru=nn.shiftRightUnsigned,nn.shr_u=nn.shiftRightUnsigned,nn.rotateLeft=function(e){var t;return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?Gr(this.high,this.low,this.unsigned):e<32?(t=32-e,Gr(this.low<<e|this.high>>>t,this.high<<e|this.low>>>t,this.unsigned)):(t=32-(e-=32),Gr(this.high<<e|this.low>>>t,this.low<<e|this.high>>>t,this.unsigned))},nn.rotl=nn.rotateLeft,nn.rotateRight=function(e){var t;return Dr(e)&&(e=e.toInt()),0==(e&=63)?this:32===e?Gr(this.high,this.low,this.unsigned):e<32?(t=32-e,Gr(this.high<<t|this.low>>>e,this.low<<t|this.high>>>e,this.unsigned)):(t=32-(e-=32),Gr(this.low<<t|this.high>>>e,this.high<<t|this.low>>>e,this.unsigned))},nn.rotr=nn.rotateRight,nn.toSigned=function(){return this.unsigned?Gr(this.low,this.high,!1):this},nn.toUnsigned=function(){return this.unsigned?this:Gr(this.low,this.high,!0)},nn.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()},nn.toBytesLE=function(){var e=this.high,t=this.low;return[255&t,t>>>8&255,t>>>16&255,t>>>24,255&e,e>>>8&255,e>>>16&255,e>>>24]},nn.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,255&e,t>>>24,t>>>16&255,t>>>8&255,255&t]},Lr.fromBytes=function(e,t,r){return r?Lr.fromBytesLE(e,t):Lr.fromBytesBE(e,t)},Lr.fromBytesLE=function(e,t){return new Lr(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)},Lr.fromBytesBE=function(e,t){return new Lr(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};var on=new class{_user;constructor(){this._user=this.createDefaultUser()}get uid(){return this.user.uid}get isActive(){return this.user.active}get user(){return this._user}setLogged(e){this._user={active:!0,uid:Lr.isLong(e.uid)?e.uid.toString():e.uid,deviceId:Lr.isLong(e.deviceId)?e.deviceId.toString():e.deviceId,sessionId:Lr.isLong(e.sessionId)?e.sessionId.toString():e.sessionId}}logOut(){this._user=this.createDefaultUser()}createDefaultUser(){return{active:!1,uid:"0",deviceId:"0",sessionId:"0",token:""}}};const sn={webSocketTimeout:5e3,signalTimeout:3e4,pingInterval:15e3,pingTimeout:5e3,pingFailedTimes:2,reconnectIntervalMin:250,reconnectIntervalMax:64e3,reconnectRaisingBase:2};const an=t=>e.ConnectionStatus[t],cn=e=>{const t=new kr;return t.writeIn8(67),t.writeIn8(255),t.writeInt32(e.length+7),t.writeArr(Array.from(e)),t.writeIn8(0),new Int8Array(t.getBytesArray()).buffer},ln=e=>{const t=new Mr(new Uint8Array(e));t.readInt8(),t.readInt8();const r=t.readInt32(),n=t.readArr(r-7);if(t.readInt8(),e.byteLength!==r)throw new Error("packet resolve failed");return n};var un=new class{url="";watcher;options;socket;status=e.ConnectionStatus.DISCONNECTED;autoReconnect=!1;isConnected=!1;responseCallbacks=new Map;failedCount=0;reconnectTimer;connectResolve;pendingMessages=[];constructor(e){this.options=Object.assign(sn,e)}setServerInfo(e){this.url=e}setCallback(e){this.watcher=e}async connect(){return this.autoReconnect=!0,new Promise(t=>{this.connectResolve=t,this.open().then(r=>{t(r),r===e.ErrorCode.SUCCESS?(this.isConnected=!0,this.onConnect()):this.onDisconnect(r===e.ErrorCode.TIMEOUT?e.ConnectionStatus.NETWORK_UNAVAILABLE:e.ConnectionStatus.WEBSOCKET_UNAVAILABLE)})})}async request(t,r,n,o=this.options.signalTimeout){const{code:s,data:i}=await this.sendRawData(t,nt(r)&&nt(n.encoder)?n.encoder.encode(r).finish():new Uint8Array,o);if(0!==s)return{code:s,msg:"time out",data:null};if(!nt(i)||!nt(n.decoder))return{code:e.ErrorCode.SUCCESS,msg:""};const a=n.decoder?.decode(i);return a.errorCode?{code:a.errorCode,msg:a.errorMessage,data:null}:{data:a,code:e.ErrorCode.SUCCESS,msg:""}}async send(t,r,n,o=this.options.signalTimeout){const s=await this.request(t,r,n,o);return s.code!==e.ErrorCode.SUCCESS?{code:Nr(s.code),msg:s.msg,data:null}:{data:s.data,code:e.ErrorCode.SUCCESS,msg:s.msg}}async sendRawData(t,r,n=this.options.signalTimeout){if(!this.socket)return{code:e.ErrorCode.RC_NET_CHANNEL_INVALID};const o=this.generateMessageSeq();this.isConnected?this.doSendRawData(t,r,o):this.pendingMessages.push({cmdId:t,body:r,messageSeq:o});const s=await new Promise(e=>{this.responseCallbacks.set(o,e),setTimeout(()=>{this.responseCallbacks.get(o)&&this.responseCallbacks.delete(o),e(null)},n)});return s?{code:0,data:s}:(Yi.warn(`send timeout -> cmd: 0x${t.toString(16)}, messageSeq: ${o}, timeout: ${n}`),{code:e.ErrorCode.TIMEOUT})}doSendRawData(e,t,r){const n={cmdId:e,messageSeq:Lr.fromNumber(r),deviceId:Lr.fromString(on.user.deviceId),sessionId:Lr.fromString(on.user.sessionId),uid:Lr.fromString(on.user.uid),protocolVersion:0,destId:"",body:t,deviceCode:Tt.getDeviceCode()??"",deviceType:Tt.getDeviceType()};e!==At.Heartbean&&Yi.info(`websocket send -> cmd: 0x${e.toString(16)}, messageSeq: ${r}`),this.socket?.send(cn(Sr.encode(n).finish()))}close(){this.autoReconnect=!1,this.doClose(),this.setStatus(e.ConnectionStatus.DISCONNECTED),this.connectResolve?.(e.ErrorCode.RC_SOCKET_DISCONNECTED)}async open(){const t=this.url;Yi.info(`connect start -> ${t}`),this.setStatus(e.ConnectionStatus.CONNECTING);const r=function(e,t){const r=new WebSocket(e,t);return r.binaryType="arraybuffer",{onClose(e){r.onclose=t=>{const{code:r,reason:n}=t;e?.(r,n)}},onError(e){r.onerror=t=>{e(t)}},onMessage(e){r.onmessage=t=>{e(t.data)}},onOpen(e){r.onopen=e},send(e){r.send(e)},close(e,t){r.close(e,t)}}}(this.url);this.socket=r;return await new Promise(n=>{r.onMessage(e=>{"ArrayBuffer"===rt(e)?this.onReceiveMessage(e):Yi.error("Socket received invalid data:",e)}),r.onClose((t,r)=>{Yi.warn("websocket closed -> code:",t,"reason:",r),this.onDisconnect(e.ConnectionStatus.CONNECTION_CLOSED),n(e.ErrorCode.RC_SOCKET_DISCONNECTED)}),r.onError(t=>{Yi.warn("websocket error -> ",t),this.onDisconnect(e.ConnectionStatus.WEBSOCKET_ERROR),n(e.ErrorCode.RC_SOCKET_NOT_CREATED)}),r.onOpen(()=>{Yi.info("websocket open -> ",t),n(e.ErrorCode.SUCCESS)}),setTimeout(()=>{n(e.ErrorCode.TIMEOUT)},this.options.webSocketTimeout)})}async checkAlive(){if(!this.socket||!this.isConnected)return;Yi.debug("send ping ->");const t={pingId:Lr.ZERO,disconnectDelay:Lr.ZERO},{code:r}=await this.send(At.Heartbean,t,{encoder:Rr},this.options.pingTimeout);r===e.ErrorCode.SUCCESS?(Yi.debug("recv pong <-"),this.failedCount=0,setTimeout(()=>this.checkAlive(),this.options.pingInterval)):(this.failedCount+=1,Yi.warn(`ping failed count: ${this.failedCount}, code: ${r}`),this.failedCount>=this.options.pingFailedTimes?(this.failedCount=0,Yi.warn("ping timeout, close current websocket to reconnect!"),this.onDisconnect(e.ConnectionStatus.NETWORK_UNAVAILABLE)):this.checkAlive())}onReceiveMessage(t){let r;try{const e=ln(t);r=Er.decode(e)}catch(t){return Yi.error("unpack payload error -> ",t),void this.onDisconnect(e.ConnectionStatus.DISCONNECT_BY_SERVER)}if(r.code)return Yi.error("on received message error -> ",r.code),void this.onDisconnect(e.ConnectionStatus.DISCONNECT_BY_SERVER);if(r.cmdId===At.SessionKilledPush)return void this.onDisconnect(e.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT);if(r.cmdId===At.SignOutPish||r.cmdId===At.SignOutPish2)return Yi.warn("on received signoutpush -> ",r.cmdId),void this.onDisconnect(e.ConnectionStatus.DISCONNECT_BY_SERVER);if(r.cmdId===At.UserFrozenToLogin||r.cmdId===At.UserFrozenToLogin2)return void this.onDisconnect(e.ConnectionStatus.BLOCKED);const n=Lr.isLong(r.messageSeq)?r.messageSeq.toNumber():0,o=n>0?this.responseCallbacks.get(n):null;nt(o)?(r.cmdId!==At.HeartbeanResp&&Yi.info(`websocket recv ack -> messageSeq: ${n}`),o(r.body),this.responseCallbacks.delete(n)):(Yi.info(`websocket recv -> cmd: 0x${r.cmdId.toString(16)}`),this.watcher?.message(r.cmdId,r.body))}async try2Reconnect(){this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},5e3)}async onConnect(){for(this.setStatus(e.ConnectionStatus.CONNECTED),this.checkAlive(),nt(this.reconnectTimer)&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null);this.pendingMessages.length>0;){let{cmdId:e,body:t,messageSeq:r}=this.pendingMessages.shift();this.doSendRawData(e,t,r),await new Promise(e=>setTimeout(e,200))}}onDisconnect(e){nt(this.socket)&&(this.doClose(),this.isConnectionAvailable()&&(this.setStatus(e),this.autoReconnect&&this.isConnectionAvailable()&&this.try2Reconnect()))}doClose(){if(nt(this.socket)){this.pendingMessages.length=0;const e=this.socket;this.socket=null,e.onClose(null),e.close()}nt(this.reconnectTimer)&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.isConnected=!1;for(const e of this.responseCallbacks.values())e(null);this.responseCallbacks.clear()}isConnectionAvailable(){return this.status!==e.ConnectionStatus.DISCONNECTED&&this.status!==e.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT&&this.status!==e.ConnectionStatus.BLOCKED&&this.status!==e.ConnectionStatus.DISCONNECT_BY_SERVER}setStatus(e){Yi.info(`socketServer is changing status from ${an(this.status)} to ${an(e)}`),this.status=e,this.watcher?.status(e)}idCount=0;generateMessageSeq(){return++this.idCount}};const dn=br.Reader,gn=br.Writer,pn=br.util,fn=br.roots.default||(br.roots.default={}),hn=fn.SendPrivateChatMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(26).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(34).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(40).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(48).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(58).string(e.mediaAttribute),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.SendPrivateChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgPreContent=e.string();break;case 4:n.msgPostContent=e.string();break;case 5:n.mediaFlag=e.bool();break;case 6:n.mediaConstructor=e.int32();break;case 7:n.mediaAttribute=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendPrivateChatMessageReq"},e})(),yn=fn.SendPrivateChatMessageResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgSendTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(24).int64(e.localId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(32).int64(e.msgId),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(40).int64(e.msgSendTime),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.SendPrivateChatMessageResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.localId=e.int64();break;case 4:n.msgId=e.int64();break;case 5:n.msgSendTime=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendPrivateChatMessageResp"},e})(),mn=fn.DeletePrivateChatDialogReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DeletePrivateChatDialogReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.destId=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeletePrivateChatDialogReq"},e})(),vn=fn.GetNewMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.offset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.rows=0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.offset&&Object.hasOwnProperty.call(e,"offset")&&t.uint32(8).int64(e.offset),null!=e.rows&&Object.hasOwnProperty.call(e,"rows")&&t.uint32(16).int32(e.rows),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetNewMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.offset=e.int64();break;case 2:n.rows=e.int32();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetNewMessageReq"},e})(),bn=fn.GetNewMessageResp=(()=>{function e(e){if(this.msg={},this.reference={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.offset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.seqno=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msg=pn.emptyObject,e.prototype.reference=pn.emptyObject,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.offset&&Object.hasOwnProperty.call(e,"offset")&&t.uint32(24).int64(e.offset),null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(32).int64(e.seqno),null!=e.msg&&Object.hasOwnProperty.call(e,"msg"))for(let r=Object.keys(e.msg),n=0;n<r.length;++n)t.uint32(42).fork().uint32(10).string(r[n]),fn.DialogMessageList.encode(e.msg[r[n]],t.uint32(18).fork()).ldelim().ldelim();if(null!=e.reference&&Object.hasOwnProperty.call(e,"reference"))for(let r=Object.keys(e.reference),n=0;n<r.length;++n)t.uint32(50).fork().uint32(10).string(r[n]),fn.ReferenceDialogMessage.encode(e.reference[r[n]],t.uint32(18).fork()).ldelim().ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetNewMessageResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:s.offset=e.int64();break;case 4:s.seqno=e.int64();break;case 5:{s.msg===pn.emptyObject&&(s.msg={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.DialogMessageList.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.msg[r]=n;break}case 6:{s.reference===pn.emptyObject&&(s.reference={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.ReferenceDialogMessage.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.reference[r]=n;break}default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetNewMessageResp"},e})();fn.DialogMessageList=(()=>{function e(e){if(this.dialogMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.dialogMessage=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.dialogMessage&&e.dialogMessage.length)for(let r=0;r<e.dialogMessage.length;++r)fn.DialogMessage.encode(e.dialogMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DialogMessageList;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.dialogMessage&&n.dialogMessage.length||(n.dialogMessage=[]),n.dialogMessage.push(fn.DialogMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DialogMessageList"},e})(),fn.DialogMessage=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgStatus=0,e.prototype.srcId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.isOut=!1,e.prototype.senderCategory=0,e.prototype.msgCategory=0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.msgSendTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.burnAfterReadingFlag=!1,e.prototype.atFlag=!1,e.prototype.replyFlag=!1,e.prototype.referenceFlag=!1,e.prototype.msgIdReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.uploadFlag=!1,e.prototype.burnAfterReadingTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.sharingGroupFlag=!1,e.prototype.seqno=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.replyMarkup="",e.prototype.extra="",e.prototype.msgArrival=!1,e.prototype.msgRead=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(8).int64(e.msgId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgStatus&&Object.hasOwnProperty.call(e,"msgStatus")&&t.uint32(24).int32(e.msgStatus),null!=e.srcId&&Object.hasOwnProperty.call(e,"srcId")&&t.uint32(32).int64(e.srcId),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(40).int64(e.destId),null!=e.isOut&&Object.hasOwnProperty.call(e,"isOut")&&t.uint32(48).bool(e.isOut),null!=e.senderCategory&&Object.hasOwnProperty.call(e,"senderCategory")&&t.uint32(56).int32(e.senderCategory),null!=e.msgCategory&&Object.hasOwnProperty.call(e,"msgCategory")&&t.uint32(64).int32(e.msgCategory),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(74).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(82).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(88).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(96).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(106).string(e.mediaAttribute),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(112).int64(e.msgSendTime),null!=e.burnAfterReadingFlag&&Object.hasOwnProperty.call(e,"burnAfterReadingFlag")&&t.uint32(120).bool(e.burnAfterReadingFlag),null!=e.atFlag&&Object.hasOwnProperty.call(e,"atFlag")&&t.uint32(128).bool(e.atFlag),null!=e.replyFlag&&Object.hasOwnProperty.call(e,"replyFlag")&&t.uint32(136).bool(e.replyFlag),null!=e.referenceFlag&&Object.hasOwnProperty.call(e,"referenceFlag")&&t.uint32(144).bool(e.referenceFlag),null!=e.msgIdReferenced&&Object.hasOwnProperty.call(e,"msgIdReferenced")&&t.uint32(152).int64(e.msgIdReferenced),null!=e.uploadFlag&&Object.hasOwnProperty.call(e,"uploadFlag")&&t.uint32(160).bool(e.uploadFlag),null!=e.burnAfterReadingTime&&Object.hasOwnProperty.call(e,"burnAfterReadingTime")&&t.uint32(168).int64(e.burnAfterReadingTime),null!=e.sharingGroupFlag&&Object.hasOwnProperty.call(e,"sharingGroupFlag")&&t.uint32(176).bool(e.sharingGroupFlag),null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(184).int64(e.seqno),null!=e.replyMarkup&&Object.hasOwnProperty.call(e,"replyMarkup")&&t.uint32(194).string(e.replyMarkup),null!=e.extra&&Object.hasOwnProperty.call(e,"extra")&&t.uint32(202).string(e.extra),null!=e.msgArrival&&Object.hasOwnProperty.call(e,"msgArrival")&&t.uint32(208).bool(e.msgArrival),null!=e.msgRead&&Object.hasOwnProperty.call(e,"msgRead")&&t.uint32(216).bool(e.msgRead),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DialogMessage;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.msgId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgStatus=e.int32();break;case 4:n.srcId=e.int64();break;case 5:n.destId=e.int64();break;case 6:n.isOut=e.bool();break;case 7:n.senderCategory=e.int32();break;case 8:n.msgCategory=e.int32();break;case 9:n.msgPreContent=e.string();break;case 10:n.msgPostContent=e.string();break;case 11:n.mediaFlag=e.bool();break;case 12:n.mediaConstructor=e.int32();break;case 13:n.mediaAttribute=e.string();break;case 14:n.msgSendTime=e.int64();break;case 15:n.burnAfterReadingFlag=e.bool();break;case 16:n.atFlag=e.bool();break;case 17:n.replyFlag=e.bool();break;case 18:n.referenceFlag=e.bool();break;case 19:n.msgIdReferenced=e.int64();break;case 20:n.uploadFlag=e.bool();break;case 21:n.burnAfterReadingTime=e.int64();break;case 22:n.sharingGroupFlag=e.bool();break;case 23:n.seqno=e.int64();break;case 24:n.replyMarkup=e.string();break;case 25:n.extra=e.string();break;case 26:n.msgArrival=e.bool();break;case 27:n.msgRead=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DialogMessage"},e})(),fn.ReferenceDialogMessage=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.srcId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.srcName="",e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.destName="",e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.msgSendTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(8).int64(e.msgId),null!=e.srcId&&Object.hasOwnProperty.call(e,"srcId")&&t.uint32(16).int64(e.srcId),null!=e.srcName&&Object.hasOwnProperty.call(e,"srcName")&&t.uint32(26).string(e.srcName),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(32).int64(e.destId),null!=e.destName&&Object.hasOwnProperty.call(e,"destName")&&t.uint32(42).string(e.destName),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(50).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(58).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(64).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(72).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(82).string(e.mediaAttribute),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(88).int64(e.msgSendTime),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.ReferenceDialogMessage;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.msgId=e.int64();break;case 2:n.srcId=e.int64();break;case 3:n.srcName=e.string();break;case 4:n.destId=e.int64();break;case 5:n.destName=e.string();break;case 6:n.msgPreContent=e.string();break;case 7:n.msgPostContent=e.string();break;case 8:n.mediaFlag=e.bool();break;case 9:n.mediaConstructor=e.int32();break;case 10:n.mediaAttribute=e.string();break;case 11:n.msgSendTime=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReferenceDialogMessage"},e})();const Cn=fn.UpdatePrivateChatDialogStickyConfigReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.stickyFlag=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.stickyFlag&&Object.hasOwnProperty.call(e,"stickyFlag")&&t.uint32(16).bool(e.stickyFlag),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.UpdatePrivateChatDialogStickyConfigReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.stickyFlag=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/UpdatePrivateChatDialogStickyConfigReq"},e})(),wn=fn.UpdatePrivateChatDialogMuteConfigReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.muteFlag=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.muteFlag&&Object.hasOwnProperty.call(e,"muteFlag")&&t.uint32(16).bool(e.muteFlag),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.UpdatePrivateChatDialogMuteConfigReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.muteFlag=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/UpdatePrivateChatDialogMuteConfigReq"},e})(),On=fn.DeleteChatMessageReq=(()=>{function e(e){if(this.msgIdList=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgIdList=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),null!=e.msgIdList&&e.msgIdList.length){t.uint32(26).fork();for(let r=0;r<e.msgIdList.length;++r)t.int64(e.msgIdList[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DeleteChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.msgId=e.int64();break;case 3:if(n.msgIdList&&n.msgIdList.length||(n.msgIdList=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.msgIdList.push(e.int64())}else n.msgIdList.push(e.int64());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeleteChatMessageReq"},e})();fn.DeletePrivateChatHistoryReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.DeletePrivateChatHistoryReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.msgId=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeletePrivateChatHistoryReq"},e})();const In=fn.CleanHistoryMessageReq=(()=>{function e(e){if(this.msgIdList=[],this.destIdList=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId="",e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgIdList=pn.emptyArray,e.prototype.destIdList=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(10).string(e.destId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),null!=e.msgIdList&&e.msgIdList.length){t.uint32(26).fork();for(let r=0;r<e.msgIdList.length;++r)t.int64(e.msgIdList[r]);t.ldelim()}if(null!=e.destIdList&&e.destIdList.length)for(let r=0;r<e.destIdList.length;++r)t.uint32(34).string(e.destIdList[r]);return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.CleanHistoryMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.string();break;case 2:n.msgId=e.int64();break;case 3:if(n.msgIdList&&n.msgIdList.length||(n.msgIdList=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.msgIdList.push(e.int64())}else n.msgIdList.push(e.int64());break;case 4:n.destIdList&&n.destIdList.length||(n.destIdList=[]),n.destIdList.push(e.string());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/CleanHistoryMessageReq"},e})(),Sn=fn.GetBriefDialogListReq=(()=>{function e(e){if(this.destId=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&e.destId.length){t.uint32(10).fork();for(let r=0;r<e.destId.length;++r)t.int64(e.destId[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetBriefDialogListReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)if(n.destId&&n.destId.length||(n.destId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.destId.push(e.int64())}else n.destId.push(e.int64());else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetBriefDialogListReq"},e})(),En=fn.GetBriefDialogListResp=(()=>{function e(e){if(this.notExistDestId=[],this.briefDialog={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.notExistDestId=pn.emptyArray,e.prototype.seqno=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.briefDialog=pn.emptyObject,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.notExistDestId&&e.notExistDestId.length){t.uint32(26).fork();for(let r=0;r<e.notExistDestId.length;++r)t.int64(e.notExistDestId[r]);t.ldelim()}if(null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(32).int64(e.seqno),null!=e.briefDialog&&Object.hasOwnProperty.call(e,"briefDialog"))for(let r=Object.keys(e.briefDialog),n=0;n<r.length;++n)t.uint32(42).fork().uint32(10).string(r[n]),fn.BriefDialog.encode(e.briefDialog[r[n]],t.uint32(18).fork()).ldelim().ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetBriefDialogListResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:if(s.notExistDestId&&s.notExistDestId.length||(s.notExistDestId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)s.notExistDestId.push(e.int64())}else s.notExistDestId.push(e.int64());break;case 4:s.seqno=e.int64();break;case 5:{s.briefDialog===pn.emptyObject&&(s.briefDialog={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.BriefDialog.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.briefDialog[r]=n;break}default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetBriefDialogListResp"},e})();fn.BriefDialog=(()=>{function e(e){if(this.groupMemberSmallAvatarUrl=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.dialogTitle="",e.prototype.smallAvatarUrl="",e.prototype.backgroundImage="",e.prototype.stickyFlag=!1,e.prototype.muteFlag=!1,e.prototype.blockFlag=!1,e.prototype.burnAfterReadingFlag=!1,e.prototype.takeScreenshotFlag=!1,e.prototype.groupFlag=!1,e.prototype.totalMemberNumber=0,e.prototype.groupMemberSmallAvatarUrl=pn.emptyArray,e.prototype.burnAfterReadingTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.dialogMenuContent="",e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.dialogTitle&&Object.hasOwnProperty.call(e,"dialogTitle")&&t.uint32(18).string(e.dialogTitle),null!=e.smallAvatarUrl&&Object.hasOwnProperty.call(e,"smallAvatarUrl")&&t.uint32(26).string(e.smallAvatarUrl),null!=e.backgroundImage&&Object.hasOwnProperty.call(e,"backgroundImage")&&t.uint32(34).string(e.backgroundImage),null!=e.stickyFlag&&Object.hasOwnProperty.call(e,"stickyFlag")&&t.uint32(40).bool(e.stickyFlag),null!=e.muteFlag&&Object.hasOwnProperty.call(e,"muteFlag")&&t.uint32(48).bool(e.muteFlag),null!=e.blockFlag&&Object.hasOwnProperty.call(e,"blockFlag")&&t.uint32(56).bool(e.blockFlag),null!=e.burnAfterReadingFlag&&Object.hasOwnProperty.call(e,"burnAfterReadingFlag")&&t.uint32(64).bool(e.burnAfterReadingFlag),null!=e.takeScreenshotFlag&&Object.hasOwnProperty.call(e,"takeScreenshotFlag")&&t.uint32(72).bool(e.takeScreenshotFlag),null!=e.groupFlag&&Object.hasOwnProperty.call(e,"groupFlag")&&t.uint32(80).bool(e.groupFlag),null!=e.totalMemberNumber&&Object.hasOwnProperty.call(e,"totalMemberNumber")&&t.uint32(88).int32(e.totalMemberNumber),null!=e.groupMemberSmallAvatarUrl&&e.groupMemberSmallAvatarUrl.length)for(let r=0;r<e.groupMemberSmallAvatarUrl.length;++r)t.uint32(98).string(e.groupMemberSmallAvatarUrl[r]);return null!=e.burnAfterReadingTime&&Object.hasOwnProperty.call(e,"burnAfterReadingTime")&&t.uint32(104).int64(e.burnAfterReadingTime),null!=e.dialogMenuContent&&Object.hasOwnProperty.call(e,"dialogMenuContent")&&t.uint32(114).string(e.dialogMenuContent),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.BriefDialog;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.dialogTitle=e.string();break;case 3:n.smallAvatarUrl=e.string();break;case 4:n.backgroundImage=e.string();break;case 5:n.stickyFlag=e.bool();break;case 6:n.muteFlag=e.bool();break;case 7:n.blockFlag=e.bool();break;case 8:n.burnAfterReadingFlag=e.bool();break;case 9:n.takeScreenshotFlag=e.bool();break;case 10:n.groupFlag=e.bool();break;case 11:n.totalMemberNumber=e.int32();break;case 12:n.groupMemberSmallAvatarUrl&&n.groupMemberSmallAvatarUrl.length||(n.groupMemberSmallAvatarUrl=[]),n.groupMemberSmallAvatarUrl.push(e.string());break;case 13:n.burnAfterReadingTime=e.int64();break;case 14:n.dialogMenuContent=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/BriefDialog"},e})();const Rn=fn.GetDialogKeyReq=(()=>{function e(e){if(this.destId=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.emptyArray,e.prototype.clientSign="",e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&e.destId.length){t.uint32(10).fork();for(let r=0;r<e.destId.length;++r)t.int64(e.destId[r]);t.ldelim()}return null!=e.clientSign&&Object.hasOwnProperty.call(e,"clientSign")&&t.uint32(18).string(e.clientSign),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetDialogKeyReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:if(n.destId&&n.destId.length||(n.destId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.destId.push(e.int64())}else n.destId.push(e.int64());break;case 2:n.clientSign=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetDialogKeyReq"},e})(),Tn=fn.GetDialogKeyResp=(()=>{function e(e){if(this.retryUid=[],this.entry={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.dialogKeyVersion=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.retryUid=pn.emptyArray,e.prototype.entry=pn.emptyObject,e.prototype.serverSign="",e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.dialogKeyVersion&&Object.hasOwnProperty.call(e,"dialogKeyVersion")&&t.uint32(24).int64(e.dialogKeyVersion),null!=e.retryUid&&e.retryUid.length){t.uint32(34).fork();for(let r=0;r<e.retryUid.length;++r)t.int64(e.retryUid[r]);t.ldelim()}if(null!=e.entry&&Object.hasOwnProperty.call(e,"entry"))for(let r=Object.keys(e.entry),n=0;n<r.length;++n)t.uint32(42).fork().uint32(10).string(r[n]),fn.AesKeyAndIV.encode(e.entry[r[n]],t.uint32(18).fork()).ldelim().ldelim();return null!=e.serverSign&&Object.hasOwnProperty.call(e,"serverSign")&&t.uint32(50).string(e.serverSign),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetDialogKeyResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:s.dialogKeyVersion=e.int64();break;case 4:if(s.retryUid&&s.retryUid.length||(s.retryUid=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)s.retryUid.push(e.int64())}else s.retryUid.push(e.int64());break;case 5:{s.entry===pn.emptyObject&&(s.entry={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.AesKeyAndIV.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.entry[r]=n;break}case 6:s.serverSign=e.string();break;default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetDialogKeyResp"},e})();fn.AesKeyAndIV=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.aesKey="",e.prototype.aesIV="",e.encode=function(e,t){return t||(t=gn.create()),null!=e.aesKey&&Object.hasOwnProperty.call(e,"aesKey")&&t.uint32(10).string(e.aesKey),null!=e.aesIV&&Object.hasOwnProperty.call(e,"aesIV")&&t.uint32(18).string(e.aesIV),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.AesKeyAndIV;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.aesKey=e.string();break;case 2:n.aesIV=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/AesKeyAndIV"},e})();const An=fn.RecallPrivateChatMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.RecallPrivateChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.msgId=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/RecallPrivateChatMessageReq"},e})(),_n=fn.GetHistoryMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.dialogKeys="",e.prototype.offset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.oldOffset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.rows=0,e.prototype.newToOld=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.dialogKeys&&Object.hasOwnProperty.call(e,"dialogKeys")&&t.uint32(10).string(e.dialogKeys),null!=e.offset&&Object.hasOwnProperty.call(e,"offset")&&t.uint32(16).int64(e.offset),null!=e.oldOffset&&Object.hasOwnProperty.call(e,"oldOffset")&&t.uint32(24).int64(e.oldOffset),null!=e.rows&&Object.hasOwnProperty.call(e,"rows")&&t.uint32(32).int32(e.rows),null!=e.newToOld&&Object.hasOwnProperty.call(e,"newToOld")&&t.uint32(40).bool(e.newToOld),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetHistoryMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.dialogKeys=e.string();break;case 2:n.offset=e.int64();break;case 3:n.oldOffset=e.int64();break;case 4:n.rows=e.int32();break;case 5:n.newToOld=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetHistoryMessageReq"},e})(),kn=fn.GetHistoryMessageResp=(()=>{function e(e){if(this.reference={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.msg=null,e.prototype.isEnd=!1,e.prototype.reference=pn.emptyObject,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.msg&&Object.hasOwnProperty.call(e,"msg")&&fn.DialogMessageList.encode(e.msg,t.uint32(26).fork()).ldelim(),null!=e.isEnd&&Object.hasOwnProperty.call(e,"isEnd")&&t.uint32(32).bool(e.isEnd),null!=e.reference&&Object.hasOwnProperty.call(e,"reference"))for(let r=Object.keys(e.reference),n=0;n<r.length;++n)t.uint32(42).fork().uint32(10).string(r[n]),fn.ReferenceDialogMessage.encode(e.reference[r[n]],t.uint32(18).fork()).ldelim().ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetHistoryMessageResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:s.msg=fn.DialogMessageList.decode(e,e.uint32());break;case 4:s.isEnd=e.bool();break;case 5:{s.reference===pn.emptyObject&&(s.reference={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.ReferenceDialogMessage.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.reference[r]=n;break}default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetHistoryMessageResp"},e})(),Mn=fn.GetWebDialogListReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.type=0,e.prototype.offset=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.rows=0,e.prototype.newToOld=!1,e.encode=function(e,t){return t||(t=gn.create()),null!=e.type&&Object.hasOwnProperty.call(e,"type")&&t.uint32(8).int32(e.type),null!=e.offset&&Object.hasOwnProperty.call(e,"offset")&&t.uint32(16).int64(e.offset),null!=e.rows&&Object.hasOwnProperty.call(e,"rows")&&t.uint32(24).int32(e.rows),null!=e.newToOld&&Object.hasOwnProperty.call(e,"newToOld")&&t.uint32(32).bool(e.newToOld),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetWebDialogListReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.type=e.int32();break;case 2:n.offset=e.int64();break;case 3:n.rows=e.int32();break;case 4:n.newToOld=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetWebDialogListReq"},e})(),Nn=fn.GetWebDialogListResp=(()=>{function e(e){if(this.fullDialog=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.fullDialog=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.fullDialog&&e.fullDialog.length)for(let r=0;r<e.fullDialog.length;++r)fn.WebFullDialog.encode(e.fullDialog[r],t.uint32(26).fork()).ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetWebDialogListResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.fullDialog&&n.fullDialog.length||(n.fullDialog=[]),n.fullDialog.push(fn.WebFullDialog.decode(e,e.uint32()));break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetWebDialogListResp"},e})();fn.WebFullDialog=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.dialog=null,e.prototype.msg=null,e.encode=function(e,t){return t||(t=gn.create()),null!=e.dialog&&Object.hasOwnProperty.call(e,"dialog")&&fn.BriefDialog.encode(e.dialog,t.uint32(10).fork()).ldelim(),null!=e.msg&&Object.hasOwnProperty.call(e,"msg")&&fn.DialogMessage.encode(e.msg,t.uint32(18).fork()).ldelim(),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.WebFullDialog;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.dialog=fn.BriefDialog.decode(e,e.uint32());break;case 2:n.msg=fn.DialogMessage.decode(e,e.uint32());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/WebFullDialog"},e})();const Pn=fn.GetNewSettingDialogListReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.time=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.time&&Object.hasOwnProperty.call(e,"time")&&t.uint32(8).int64(e.time),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.GetNewSettingDialogListReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.time=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetNewSettingDialogListReq"},e})(),Ln=fn.GetNewSettingDialogListResp=(()=>{function e(e){if(this.briefDialog={},e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.briefDialog=pn.emptyObject,e.prototype.setTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.briefDialog&&Object.hasOwnProperty.call(e,"briefDialog"))for(let r=Object.keys(e.briefDialog),n=0;n<r.length;++n)t.uint32(26).fork().uint32(10).string(r[n]),fn.BriefDialog.encode(e.briefDialog[r[n]],t.uint32(18).fork()).ldelim().ldelim();return null!=e.setTime&&Object.hasOwnProperty.call(e,"setTime")&&t.uint32(32).int64(e.setTime),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r,n,o=void 0===t?e.len:e.pos+t,s=new fn.GetNewSettingDialogListResp;for(;e.pos<o;){let t=e.uint32();switch(t>>>3){case 1:s.errorCode=e.int32();break;case 2:s.errorMessage=e.string();break;case 3:{s.briefDialog===pn.emptyObject&&(s.briefDialog={});let t=e.uint32()+e.pos;for(r="",n=null;e.pos<t;){let t=e.uint32();switch(t>>>3){case 1:r=e.string();break;case 2:n=fn.BriefDialog.decode(e,e.uint32());break;default:e.skipType(7&t)}}s.briefDialog[r]=n;break}case 4:s.setTime=e.int64();break;default:e.skipType(7&t)}}return s},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GetNewSettingDialogListResp"},e})(),Dn=fn.NewMessageNotificationResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.seqno=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(24).int64(e.seqno),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.NewMessageNotificationResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.seqno=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/NewMessageNotificationResp"},e})();fn.ChatMessage=(()=>{function e(e){if(this.msgId=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.msgId&&e.msgId.length){t.uint32(18).fork();for(let r=0;r<e.msgId.length;++r)t.int64(e.msgId[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.ChatMessage;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:if(n.msgId&&n.msgId.length||(n.msgId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.msgId.push(e.int64())}else n.msgId.push(e.int64());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ChatMessage"},e})();const Un=fn.SendPrivateChatArrivalAckReq=(()=>{function e(e){if(this.chatMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.chatMessage=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.chatMessage&&e.chatMessage.length)for(let r=0;r<e.chatMessage.length;++r)fn.ChatMessage.encode(e.chatMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.SendPrivateChatArrivalAckReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.chatMessage&&n.chatMessage.length||(n.chatMessage=[]),n.chatMessage.push(fn.ChatMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendPrivateChatArrivalAckReq"},e})(),jn=fn.SendPrivateChatReadAckReq=(()=>{function e(e){if(this.chatMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.chatMessage=pn.emptyArray,e.encode=function(e,t){if(t||(t=gn.create()),null!=e.chatMessage&&e.chatMessage.length)for(let r=0;r<e.chatMessage.length;++r)fn.ChatMessage.encode(e.chatMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.SendPrivateChatReadAckReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.chatMessage&&n.chatMessage.length||(n.chatMessage=[]),n.chatMessage.push(fn.ChatMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendPrivateChatReadAckReq"},e})(),Bn=fn.ReplyPrivateChatMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.msgIdReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgSrcIdReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgDestIdReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContentReferenced="",e.prototype.msgPostContentReferenced="",e.prototype.mediaFlagReferenced=!1,e.prototype.mediaConstructorReferenced=0,e.prototype.mediaAttributeReferenced="",e.prototype.msgSendTimeReferenced=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(26).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(34).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(40).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(48).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(58).string(e.mediaAttribute),null!=e.msgIdReferenced&&Object.hasOwnProperty.call(e,"msgIdReferenced")&&t.uint32(64).int64(e.msgIdReferenced),null!=e.msgSrcIdReferenced&&Object.hasOwnProperty.call(e,"msgSrcIdReferenced")&&t.uint32(72).int64(e.msgSrcIdReferenced),null!=e.msgDestIdReferenced&&Object.hasOwnProperty.call(e,"msgDestIdReferenced")&&t.uint32(80).int64(e.msgDestIdReferenced),null!=e.msgPreContentReferenced&&Object.hasOwnProperty.call(e,"msgPreContentReferenced")&&t.uint32(90).string(e.msgPreContentReferenced),null!=e.msgPostContentReferenced&&Object.hasOwnProperty.call(e,"msgPostContentReferenced")&&t.uint32(98).string(e.msgPostContentReferenced),null!=e.mediaFlagReferenced&&Object.hasOwnProperty.call(e,"mediaFlagReferenced")&&t.uint32(104).bool(e.mediaFlagReferenced),null!=e.mediaConstructorReferenced&&Object.hasOwnProperty.call(e,"mediaConstructorReferenced")&&t.uint32(112).int32(e.mediaConstructorReferenced),null!=e.mediaAttributeReferenced&&Object.hasOwnProperty.call(e,"mediaAttributeReferenced")&&t.uint32(122).string(e.mediaAttributeReferenced),null!=e.msgSendTimeReferenced&&Object.hasOwnProperty.call(e,"msgSendTimeReferenced")&&t.uint32(128).int64(e.msgSendTimeReferenced),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.ReplyPrivateChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.destId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgPreContent=e.string();break;case 4:n.msgPostContent=e.string();break;case 5:n.mediaFlag=e.bool();break;case 6:n.mediaConstructor=e.int32();break;case 7:n.mediaAttribute=e.string();break;case 8:n.msgIdReferenced=e.int64();break;case 9:n.msgSrcIdReferenced=e.int64();break;case 10:n.msgDestIdReferenced=e.int64();break;case 11:n.msgPreContentReferenced=e.string();break;case 12:n.msgPostContentReferenced=e.string();break;case 13:n.mediaFlagReferenced=e.bool();break;case 14:n.mediaConstructorReferenced=e.int32();break;case 15:n.mediaAttributeReferenced=e.string();break;case 16:n.msgSendTimeReferenced=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReplyPrivateChatMessageReq"},e})(),Fn=fn.ReplyPrivateChatMessageResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.localId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.prototype.msgSendTime=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(24).int64(e.localId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(32).int64(e.msgId),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(40).int64(e.msgSendTime),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.ReplyPrivateChatMessageResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.localId=e.int64();break;case 4:n.msgId=e.int64();break;case 5:n.msgSendTime=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReplyPrivateChatMessageResp"},e})(),xn=fn.MessageReadedNoticeReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.destId=pn.Long?pn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=gn.create()),null!=e.destId&&Object.hasOwnProperty.call(e,"destId")&&t.uint32(8).int64(e.destId),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.MessageReadedNoticeReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.destId=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/MessageReadedNoticeReq"},e})(),Gn=fn.MessageReadedNoticeResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.encode=function(e,t){return t||(t=gn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),t},e.decode=function(e,t){e instanceof dn||(e=dn.create(e));let r=void 0===t?e.len:e.pos+t,n=new fn.MessageReadedNoticeResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/MessageReadedNoticeResp"},e})(),qn=br.Reader,Vn=br.Writer,Kn=br.util,Hn=br.roots.default||(br.roots.default={}),zn=Hn.SendGroupChatMessageReq=(()=>{function e(e){if(this.at=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.localId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.at=Kn.emptyArray,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(26).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(34).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(40).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(48).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(58).string(e.mediaAttribute),null!=e.at&&e.at.length){t.uint32(66).fork();for(let r=0;r<e.at.length;++r)t.int64(e.at[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.SendGroupChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgPreContent=e.string();break;case 4:n.msgPostContent=e.string();break;case 5:n.mediaFlag=e.bool();break;case 6:n.mediaConstructor=e.int32();break;case 7:n.mediaAttribute=e.string();break;case 8:if(n.at&&n.at.length||(n.at=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.at.push(e.int64())}else n.at.push(e.int64());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendGroupChatMessageReq"},e})(),$n=Hn.SendGroupChatMessageResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.localId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgSendTime=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.seqno=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(24).int64(e.localId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(32).int64(e.msgId),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(40).int64(e.msgSendTime),null!=e.seqno&&Object.hasOwnProperty.call(e,"seqno")&&t.uint32(48).int64(e.seqno),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.SendGroupChatMessageResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.localId=e.int64();break;case 4:n.msgId=e.int64();break;case 5:n.msgSendTime=e.int64();break;case 6:n.seqno=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendGroupChatMessageResp"},e})();Hn.DeleteGroupChatHistoryReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.DeleteGroupChatHistoryReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.groupId=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeleteGroupChatHistoryReq"},e})();const Wn=Hn.UpdateGroupChatDialogStickyConfigReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.stickyFlag=!1,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.stickyFlag&&Object.hasOwnProperty.call(e,"stickyFlag")&&t.uint32(16).bool(e.stickyFlag),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.UpdateGroupChatDialogStickyConfigReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.stickyFlag=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/UpdateGroupChatDialogStickyConfigReq"},e})(),Jn=Hn.UpdateGroupChatDialogMuteConfigReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.muteFlag=!1,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.muteFlag&&Object.hasOwnProperty.call(e,"muteFlag")&&t.uint32(16).bool(e.muteFlag),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.UpdateGroupChatDialogMuteConfigReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.muteFlag=e.bool();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/UpdateGroupChatDialogMuteConfigReq"},e})(),Zn=Hn.RecallGroupChatMessageReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(16).int64(e.msgId),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.RecallGroupChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.msgId=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/RecallGroupChatMessageReq"},e})();Hn.DeleteGroupChatDialogReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.DeleteGroupChatDialogReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.groupId=e.int64();else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/DeleteGroupChatDialogReq"},e})(),Hn.GroupChatMessage=(()=>{function e(e){if(this.msgId=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.userId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgId=Kn.emptyArray,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.userId&&Object.hasOwnProperty.call(e,"userId")&&t.uint32(16).int64(e.userId),null!=e.msgId&&e.msgId.length){t.uint32(26).fork();for(let r=0;r<e.msgId.length;++r)t.int64(e.msgId[r]);t.ldelim()}return t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.GroupChatMessage;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.userId=e.int64();break;case 3:if(n.msgId&&n.msgId.length||(n.msgId=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.msgId.push(e.int64())}else n.msgId.push(e.int64());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/GroupChatMessage"},e})();const Xn=Hn.SendGroupChatArrivalAckReq=(()=>{function e(e){if(this.groupChatMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupChatMessage=Kn.emptyArray,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupChatMessage&&e.groupChatMessage.length)for(let r=0;r<e.groupChatMessage.length;++r)Hn.GroupChatMessage.encode(e.groupChatMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.SendGroupChatArrivalAckReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.groupChatMessage&&n.groupChatMessage.length||(n.groupChatMessage=[]),n.groupChatMessage.push(Hn.GroupChatMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendGroupChatArrivalAckReq"},e})(),Yn=Hn.SendGroupChatReadAckReq=(()=>{function e(e){if(this.groupChatMessage=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupChatMessage=Kn.emptyArray,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupChatMessage&&e.groupChatMessage.length)for(let r=0;r<e.groupChatMessage.length;++r)Hn.GroupChatMessage.encode(e.groupChatMessage[r],t.uint32(10).fork()).ldelim();return t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.SendGroupChatReadAckReq;for(;e.pos<r;){let t=e.uint32();if(t>>>3==1)n.groupChatMessage&&n.groupChatMessage.length||(n.groupChatMessage=[]),n.groupChatMessage.push(Hn.GroupChatMessage.decode(e,e.uint32()));else e.skipType(7&t)}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/SendGroupChatReadAckReq"},e})(),Qn=Hn.ReplyGroupChatMessageReq=(()=>{function e(e){if(this.at=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.groupId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.localId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContent="",e.prototype.msgPostContent="",e.prototype.mediaFlag=!1,e.prototype.mediaConstructor=0,e.prototype.mediaAttribute="",e.prototype.at=Kn.emptyArray,e.prototype.msgIdReferenced=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgSrcIdReferenced=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgDestIdReferenced=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgPreContentReferenced="",e.prototype.msgPostContentReferenced="",e.prototype.mediaFlagReferenced=!1,e.prototype.mediaConstructorReferenced=0,e.prototype.mediaAttributeReferenced="",e.prototype.msgSendTimeReferenced=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){if(t||(t=Vn.create()),null!=e.groupId&&Object.hasOwnProperty.call(e,"groupId")&&t.uint32(8).int64(e.groupId),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(16).int64(e.localId),null!=e.msgPreContent&&Object.hasOwnProperty.call(e,"msgPreContent")&&t.uint32(26).string(e.msgPreContent),null!=e.msgPostContent&&Object.hasOwnProperty.call(e,"msgPostContent")&&t.uint32(34).string(e.msgPostContent),null!=e.mediaFlag&&Object.hasOwnProperty.call(e,"mediaFlag")&&t.uint32(40).bool(e.mediaFlag),null!=e.mediaConstructor&&Object.hasOwnProperty.call(e,"mediaConstructor")&&t.uint32(48).int32(e.mediaConstructor),null!=e.mediaAttribute&&Object.hasOwnProperty.call(e,"mediaAttribute")&&t.uint32(58).string(e.mediaAttribute),null!=e.at&&e.at.length){t.uint32(66).fork();for(let r=0;r<e.at.length;++r)t.int64(e.at[r]);t.ldelim()}return null!=e.msgIdReferenced&&Object.hasOwnProperty.call(e,"msgIdReferenced")&&t.uint32(72).int64(e.msgIdReferenced),null!=e.msgSrcIdReferenced&&Object.hasOwnProperty.call(e,"msgSrcIdReferenced")&&t.uint32(80).int64(e.msgSrcIdReferenced),null!=e.msgDestIdReferenced&&Object.hasOwnProperty.call(e,"msgDestIdReferenced")&&t.uint32(88).int64(e.msgDestIdReferenced),null!=e.msgPreContentReferenced&&Object.hasOwnProperty.call(e,"msgPreContentReferenced")&&t.uint32(98).string(e.msgPreContentReferenced),null!=e.msgPostContentReferenced&&Object.hasOwnProperty.call(e,"msgPostContentReferenced")&&t.uint32(106).string(e.msgPostContentReferenced),null!=e.mediaFlagReferenced&&Object.hasOwnProperty.call(e,"mediaFlagReferenced")&&t.uint32(112).bool(e.mediaFlagReferenced),null!=e.mediaConstructorReferenced&&Object.hasOwnProperty.call(e,"mediaConstructorReferenced")&&t.uint32(120).int32(e.mediaConstructorReferenced),null!=e.mediaAttributeReferenced&&Object.hasOwnProperty.call(e,"mediaAttributeReferenced")&&t.uint32(130).string(e.mediaAttributeReferenced),null!=e.msgSendTimeReferenced&&Object.hasOwnProperty.call(e,"msgSendTimeReferenced")&&t.uint32(136).int64(e.msgSendTimeReferenced),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.ReplyGroupChatMessageReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.groupId=e.int64();break;case 2:n.localId=e.int64();break;case 3:n.msgPreContent=e.string();break;case 4:n.msgPostContent=e.string();break;case 5:n.mediaFlag=e.bool();break;case 6:n.mediaConstructor=e.int32();break;case 7:n.mediaAttribute=e.string();break;case 8:if(n.at&&n.at.length||(n.at=[]),2==(7&t)){let t=e.uint32()+e.pos;for(;e.pos<t;)n.at.push(e.int64())}else n.at.push(e.int64());break;case 9:n.msgIdReferenced=e.int64();break;case 10:n.msgSrcIdReferenced=e.int64();break;case 11:n.msgDestIdReferenced=e.int64();break;case 12:n.msgPreContentReferenced=e.string();break;case 13:n.msgPostContentReferenced=e.string();break;case 14:n.mediaFlagReferenced=e.bool();break;case 15:n.mediaConstructorReferenced=e.int32();break;case 16:n.mediaAttributeReferenced=e.string();break;case 17:n.msgSendTimeReferenced=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReplyGroupChatMessageReq"},e})(),eo=Hn.ReplyGroupChatMessageResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.localId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgId=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.prototype.msgSendTime=Kn.Long?Kn.Long.fromBits(0,0,!1):0,e.encode=function(e,t){return t||(t=Vn.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.localId&&Object.hasOwnProperty.call(e,"localId")&&t.uint32(24).int64(e.localId),null!=e.msgId&&Object.hasOwnProperty.call(e,"msgId")&&t.uint32(32).int64(e.msgId),null!=e.msgSendTime&&Object.hasOwnProperty.call(e,"msgSendTime")&&t.uint32(40).int64(e.msgSendTime),t},e.decode=function(e,t){e instanceof qn||(e=qn.create(e));let r=void 0===t?e.len:e.pos+t,n=new Hn.ReplyGroupChatMessageResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.localId=e.int64();break;case 4:n.msgId=e.int64();break;case 5:n.msgSendTime=e.int64();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ReplyGroupChatMessageResp"},e})();function to(t){return(ut(t)?Lr.fromString(t):t).greaterThan(Lr.fromNumber(9e10))?e.ConversationType.GROUP:e.ConversationType.PRIVATE}const ro=e=>e.targetId,no=e=>({conversationType:to(e),targetId:Lr.isLong(e)?e.toString():e});function oo(e,t,r){return e&&r.uint32(8).int64(e),r.uint32(16).int32(t.pinned),r.uint32(24).int64(t.msgId),r}class so{static encode(e,t=br.Writer.create()){return oo(e.destId,e,t)}}class io{static encode(e,t=br.Writer.create()){return oo(e.groupId,e,t)}}class ao{static encode(e,t=br.Writer.create()){return t.uint32(8).int64(e.msgId),t.uint32(16).int64(e.destId),e.content&&t.uint32(26).string(e.content),t}}class co{static encode(e,t=br.Writer.create()){return t.uint32(8).int64(e.msgId),t.uint32(16).int64(e.groupId),e.content&&t.uint32(26).string(e.content),t}}function lo(e,t,r){return e&&r.uint32(8).int64(e),r.uint32(16).bool(t.burnAfterReadingFlag),r.uint32(24).int64(t.burnAfterReadingTime),r}class uo{static encode(e,t=br.Writer.create()){return lo(e.destId,e,t)}}class go{static encode(e,t=br.Writer.create()){return lo(e.groupId,e,t)}}function po(e){return String(e)}function fo(e,t){const r=e.pos+t,n=[];for(;e.pos<r;)n.push(po(e.int64()));return n}function ho(e,t){const r=void 0===t?e.len:e.pos+t,n={id:"0",title:"",colorId:-1,categories:0,excludeMuted:!1,excludeRead:!1,sortIndex:0,includeDestIds:[],excludeDestIds:[],excludeFolded:!1};for(;e.pos<r;){const t=e.uint32();switch(t>>>3){case 1:n.id=po(e.int64());break;case 2:n.title=e.string();break;case 3:n.colorId=e.int32();break;case 4:n.categories=e.int32();break;case 5:n.excludeMuted=e.bool();break;case 6:n.excludeRead=e.bool();break;case 7:n.sortIndex=e.int32();break;case 8:2==(7&t)?n.includeDestIds.push(...fo(e,e.uint32())):n.includeDestIds.push(po(e.int64()));break;case 9:2==(7&t)?n.excludeDestIds.push(...fo(e,e.uint32())):n.excludeDestIds.push(po(e.int64()));break;case 10:n.excludeFolded=e.bool();break;default:e.skipType(7&t)}}return n}function yo(e,t){const r=void 0===t?e.len:e.pos+t,n={filters:[],displayTags:!1};for(;e.pos<r;){const t=e.uint32();switch(t>>>3){case 1:n.filters.push(ho(e,e.uint32()));break;case 2:n.displayTags=e.bool();break;default:e.skipType(7&t)}}return n}class mo{static encode(e={},t=br.Writer.create()){return t}}class vo{errorCode=0;errorMessage="";config={filters:[],displayTags:!1};static decode(e,t){const r=e instanceof br.Reader?e:br.Reader.create(e),n=void 0===t?r.len:r.pos+t,o=new vo;for(;r.pos<n;){const e=r.uint32();switch(e>>>3){case 1:o.errorCode=r.int32();break;case 2:o.errorMessage=r.string();break;case 3:o.config=yo(r,r.uint32());break;default:r.skipType(7&e)}}return o}}const bo=()=>un.send(At.GetServerTime,null,{decoder:Tr}),Co=e=>un.send(At.GetDialogKey,{destId:e,clientSign:""},{encoder:Rn,decoder:Tn}),wo=e=>un.send(At.SendPrivateChatMessage,e,{encoder:hn,decoder:yn}),Oo=e=>un.send(At.SendQuotePrivateChatMessage,e,{encoder:Bn,decoder:Fn}),Io=e=>un.send(At.SendGroupChatMessage,e,{encoder:zn,decoder:$n}),So=e=>un.send(At.SendQuoteGroupChatMessage,e,{encoder:Qn,decoder:eo}),Eo=(e,t)=>un.send(At.GetNewMessage,{offset:e,rows:t},{encoder:vn,decoder:bn}),Ro=(t,r)=>{let n;return n=to(t)==e.ConversationType.GROUP?un.send(At.RecallGroupMessage,{groupId:Lr.fromString(t),msgId:Lr.fromString(r)},{encoder:Zn,decoder:Ar}):un.send(At.RecallPrivateMessage,{destId:Lr.fromString(t),msgId:Lr.fromString(r)},{encoder:An,decoder:Ar}),n},To=(t,r,n)=>{const o=Lr.fromString(r);return to(t)===e.ConversationType.GROUP?un.send(At.PostGroupChatComment,{groupId:Lr.fromString(t),msgId:o,content:n},{encoder:co,decoder:Ar}):un.send(At.PostPrivateChatComment,{destId:Lr.fromString(t),msgId:o,content:n},{encoder:ao,decoder:Ar})},Ao=(t,r,n)=>{const o=Lr.fromString(r);return to(t)===e.ConversationType.GROUP?un.send(At.PinnedGroupMessage,{groupId:Lr.fromString(t),pinned:n,msgId:o},{encoder:io,decoder:Ar}):un.send(At.PinnedPrivateMessage,{destId:Lr.fromString(t),pinned:n,msgId:o},{encoder:so,decoder:Ar})},_o=e=>{const t={dialogKeys:e.dialogId,newToOld:e.newToOld,rows:e.count};return e.newToOld?t.offset=Lr.fromString(e.offset):t.oldOffset=Lr.fromString(e.offset),un.send(At.GetRemoteMessages,t,{encoder:_n,decoder:kn})},ko=(e,t)=>un.send(At.DeleteChatMessages,{destId:Lr.fromString(e),msgIdList:t.map(e=>Lr.fromString(e))},{encoder:On,decoder:Ar}),Mo=e=>un.send(At.ClearChatHistoryMessage,{destId:e},{encoder:In,decoder:Ar}),No=e=>un.send(At.GetDialogList,e,{encoder:Mn,decoder:Nn}),Po=e=>un.send(At.GetBriefDialogList,{destId:e.map(e=>Lr.fromString(e))},{encoder:Sn,decoder:En}),Lo=(t,r)=>{let n;return n=to(t)==e.ConversationType.GROUP?un.send(At.UpdateGroupChatMuteConfig,{groupId:Lr.fromString(t),muteFlag:r},{encoder:Jn,decoder:Ar}):un.send(At.UpdatePrivateChatMuteConfig,{destId:Lr.fromString(t),muteFlag:r},{encoder:wn,decoder:Ar}),n},Do=(t,r)=>{let n;return n=to(t)==e.ConversationType.GROUP?un.send(At.UpdateGroupChatStickyConfig,{groupId:Lr.fromString(t),stickyFlag:r},{encoder:Wn,decoder:Ar}):un.send(At.UpdatePrivateChatStickyConfig,{destId:Lr.fromString(t),stickyFlag:r},{encoder:Cn,decoder:Ar}),n},Uo=(t,r,n)=>{const o=Lr.fromString(t),s=Lr.fromNumber(n);return to(t)===e.ConversationType.GROUP?un.send(At.UpdateGroupChatBurnAfterReadingConfig,{groupId:o,burnAfterReadingFlag:r,burnAfterReadingTime:s},{encoder:go,decoder:Ar}):un.send(At.UpdatePrivateChatBurnAfterReadingConfig,{destId:o,burnAfterReadingFlag:r,burnAfterReadingTime:s},{encoder:uo,decoder:Ar})},jo=e=>un.send(At.DeletePrivateDialog,{destId:Lr.fromString(e)},{encoder:mn,decoder:Ar}),Bo=e=>un.send(At.GetDialogChangedStatus,{time:Lr.fromNumber(e)},{encoder:Pn,decoder:Ln}),Fo=e=>un.send(At.PostAnalyticsLogs,{data:e},{encoder:_r,decoder:Ar}),xo=()=>un.send(At.GetDialogFilterConfig,{},{encoder:mo,decoder:vo}),Go=e=>un.send(At.SYNC_CONVERSATION_READ_STATUS,{destId:Lr.fromString(e)},{encoder:xn,decoder:Gn});var qo=Object.freeze({__proto__:null,clearHistoryMessage:Mo,commentChatMessage:To,deleteDialog:jo,deleteMessages:ko,getBriefDialogList:Po,getDialogChangedStatus:Bo,getDialogFilterConfig:xo,getDialogKey:Co,getDialogList:No,getNewMessages:Eo,getRemoteMessages:_o,getServerTime:bo,postAnalyticsLogs:Fo,recallChatMessage:Ro,sendGroupChatArrivalAck:e=>un.send(At.SendGroupChatArrivalAck,e,{encoder:Xn,decoder:Ar}),sendGroupChatMessage:Io,sendGroupChatReadAck:e=>un.send(At.SendGroupChatReadAck,e,{encoder:Yn,decoder:Ar}),sendPrivateChatArrivalAck:e=>un.send(At.SendPrivateChatArrivalAck,e,{encoder:Un,decoder:Ar}),sendPrivateChatMessage:wo,sendPrivateChatReadAck:e=>un.send(At.SendPrivateChatReadAck,e,{encoder:jn,decoder:Ar}),sendQuoteGroupChatMessage:So,sendQuotePrivateChatMessage:Oo,syncConversationReadStatus:Go,updateChatBurnAfterReadingConfig:Uo,updateChatMuteConfig:Lo,updateChatStickyConfig:Do,updateMessagePinned:Ao});let Vo=0;const Ko=()=>(new Date).getTime()+Vo,Ho=new Set;var zo={addMessage(e){Ho.add(e)},remove(e){Ho.delete(e)},has:e=>Ho.has(e),reset(){Ho.clear()}};const $o=new Set;var Wo={addMessage(e){$o.add(e)},remove(e){$o.delete(e)},has:e=>$o.has(e),reset(){$o.clear()}};const Jo=new Map;function Zo(e,t){Jo.set(e,t)}function Xo(e,t){const r=Jo.get(e);if(!r)return console.warn(`No message constructor found for type: ${e}`),null;try{return new r(t)}catch(t){return console.error(`Failed to decode message type ${e}:`,t),null}}var Yo=new class{aesKeyRecord=new Map;async getDialogAesKey(e){return dt(e)?this.aesKeyRecord.has(e)?this.aesKeyRecord.get(e):new Promise(t=>{this.getDialogAesKeyListFromRemote([e]).then(r=>{t(r.get(e))}),setTimeout(()=>{t(null)},8e3)}):null}getDialogAesKeyList(e){return new Promise(t=>{const r=new Map;this.getDialogAesKeyListInBatches(e,(n,o)=>{if(o.size)for(const[e,t]of o)r.set(e,t);(r.size===e.length||n)&&t(r)})})}getDialogAesKeyListInBatches(e,t){const r=new Map,n=[];e.forEach(e=>{if(!dt(e))return;const t=this.getDialogAesKeyFromLocal(e);t?r.set(e,t):n.push(e)}),t(!1,r),n.length&&this.getDialogAesKeyListFromRemote(n).then(e=>{t(!0,e)})}reset(){this.aesKeyRecord.clear()}async getDialogAesKeyListFromRemote(t){if(!t.length)return new Map;try{const{code:r,data:n}=await Co(t.map(e=>Lr.fromString(e)));if(r===e.ErrorCode.SUCCESS){const e=new Map;for(const t in n.entry){const r=n.entry[t];if(r.aesKey?.length&&r.aesIV?.length){const n={key:r.aesKey,iv:r.aesIV};e.set(t,n),this.aesKeyRecord.set(t,n)}}return e}}catch(e){Yi.error("getDialogAesKeyListFromRemote error",e)}return new Map}getDialogAesKeyFromLocal(e){return dt(e)?this.aesKeyRecord.get(e):null}};const Qo="time",es=(e,t)=>[e,t,Qo].join("_");class ts{appkey;userId;inBoxOffset=Lr.ZERO;constructor(e,t){this.appkey=e,this.userId=t}setInboxOffset(e){if(this.inBoxOffset>e)return;this.inBoxOffset=e;const t=es(this.appkey,this.userId);wt.set(t,e.toString())}getInboxOffset(){if(this.inBoxOffset.isZero()){const e=es(this.appkey,this.userId);this.inBoxOffset=Lr.fromString(wt.get(e)??"0")}return this.inBoxOffset}}const rs=(e,t)=>{if(!dt(e))return"";const r=tt.AES.encrypt(e,tt.enc.Utf8.parse(t.key),{iv:nt(t.iv)?tt.enc.Utf8.parse(t.iv):void 0});return Array.from(os(r.ciphertext.words)).map(e=>e.toString(16).padStart(2,"0")).join("")},ns=(e,t)=>{const r=new Uint8Array(e.match(/.{1,2}/g)?.map(e=>parseInt(e,16))||[]),n=window.btoa(String.fromCharCode(...r));return tt.AES.decrypt(n,tt.enc.Utf8.parse(t.key),{iv:nt(t.iv)?tt.enc.Utf8.parse(t.iv):void 0}).toString(tt.enc.Utf8)},os=e=>{const t=[];let r,n,o;for(n=0;n<e.length;++n)for(r=e[n],o=3;o>=0;--o)t.push(r>>8*o&255);return new Uint8Array(t)},ss={TEXT:0,IMAGE:805310464,GIF:805310475,FILE:805310490,AUDIO:805310481,VIDEO:805310470,RECALL:1610678302,STORED_RECALL:1610678301,LOCATION:805310469,CHAT_RECORD:805310489,CONTACT:268439554,GROUP_INVITATION:805310467,REDPACKET:268439616,TRANSFER:268439600,LINK:268439556},is=1610678290,as=1610743841,cs={GROUP_ARRIVAL_RECEIPT:1610743844,GROUP_READ_RECEIPT:1610743845,PRIVATE_ARRIVAL_RECEIPT:1610678284,PRIVATE_READ_RECEIPT:1610678285,PRIVATE_OPEN_BURNAFTERREADING:1610678274,PRIVATE_CLOSE_BURNAFTERREADING:1610678275,GROUP_OPEN_BURNAFTERREADING:1610743816,GROUP_CLOSE_BURNAFTERREADING:1610743817,MESSAGE_READ:1610678295,CHANGE_GROUP_TITLE:1610743809,CHANGE_GROUP_AVATAR:1610809394,PRIVATE_MESSAGE_PINNED:1610711169,GROUP_MESSAGE_PINNED:1610776706,CHAT_COMMENT:1610678301};function ls(e){return e===ss.RECALL||e===ss.STORED_RECALL}function us(e){return e===is||e===as?ss.RECALL:e}function ds(e){if(!nt(e))return e;if(Array.isArray(e))return e.map(e=>ds(e));if(ct(e)){const t={};return Object.keys(e).forEach(r=>{t[r]=ds(e[r])}),t}return e}const gs={unreadMessageCount:{keyName:"c",defaultVal:0},lastUnreadTime:{keyName:"lt",defaultVal:0},notificationStatus:{keyName:"nc",defaultVal:2},notificationLevel:{keyName:"nl",defaultVal:0},isTop:{keyName:"it",defaultVal:!1},mentionedUIds:{keyName:"mu",defaultVal:null},dialogTitle:{keyName:"dt",defaultVal:null},smallAvatarUrl:{keyName:"sa",defaultVal:null},burnAfterReadingFlag:{keyName:"brf",defaultVal:!1},burnAfterReadingTime:{keyName:"brt",defaultVal:0},updateTime:{keyName:"ut",defaultVal:0}};class ps{localStore;constructor(e,t){const r=`con-${e}-${t}`;this.localStore=new It(r)}getStoreKey(e){return`${e.conversationType}_${e.targetId}\n }`}getConOptionByKey(t){const r=(t=t||"").split("_");if(r.length>=2){const e=r.shift(),t=r.shift();return{conversationType:Number(e),targetId:t}}return{conversationType:e.ConversationType.PRIVATE,targetId:"0"}}updateUnreadCount(t){const{conversationType:r,targetId:n,content:o,messageType:s,sentTime:i,isCounted:a,messageDirection:c}=t,l=c===e.MessageDirection.SEND,u=ls(s),d=ct(o),g={conversationType:r,targetId:n},p=this.get(g)||{},f=p.lastUnreadTime||Lr.ZERO,h=p.unreadMessageCount||0;if(!(i<=f)&&!l){if(a&&(p.unreadMessageCount=h+1,f||(p.lastUnreadTime=i)),u&&d){o.sentTime>=f&&h&&(p.unreadMessageCount=h-1)}this.set(g,p)}}updateMentionedData(t){const{conversationType:r,targetId:n,messageUId:o,messageType:s,isMentioned:i,messageDirection:a,content:c}=t;if(!o||a===e.MessageDirection.SEND||!i&&!ls(s))return;const l=this.getStoreKey({conversationType:r,targetId:n}),u=this.localStore.get(l)||{},d=gs.mentionedUIds.keyName,g=u[d]||[];if(i&&r===e.ConversationType.GROUP&&(g.includes(o.toString())||g.push(o.toString())),ls(s)&&r===e.ConversationType.GROUP){const e=c,t=g.indexOf(e.messageUId?.toString()??"");t>=0&&g.splice(t,1)}g.length?u[d]=g:delete u[d],gt(u)?this.localStore.set(l,u):this.localStore.remove(l)}updateUpdateTime(e,t){const r=this.getStoreKey(e),n=this.localStore.get(r)||{},o=gs.updateTime.keyName,s=Number(n[o]||0);n[o]=Math.max(s,t),this.localStore.set(r,n)}set(e,t){const r=this.getStoreKey(e),n=this.localStore.get(r)||{};for(const e of ft(t)){const r=gs[e],o=t[e];if(it(r?.keyName)||it(o))continue;o===r.defaultVal?delete n[r.keyName]:n[r.keyName]=o,n[gs.unreadMessageCount.keyName]||(delete n[gs.lastUnreadTime.keyName],delete n[gs.mentionedUIds.keyName])}gt(n)?this.localStore.set(r,n):this.localStore.remove(r)}remove(e){const t=this.getStoreKey(e);this.localStore.remove(t)}get(e){const t=this.getStoreKey(e),r=this.localStore.get(t)||{},n={};for(const e of ft(gs)){const{keyName:t,defaultVal:o}=gs[e];"mentionedUIds"===e?(n.unreadMentionedCount=r[t]?.length??0,n.hasMentioned=!!n.unreadMentionedCount):n[e]=r[t]||ds(o)}return n}getAll(){const e=this.localStore.getCache()||{},t=[];for(const r in e){const n=this.getConOptionByKey(r),o=e[r];for(const e of ft(gs)){const{keyName:t,defaultVal:r}=gs[e];"mentionedUIds"!==e&&(n[e]=o[t]||ds(r))}t.push(n)}return t}}const fs=t=>{const r=t.destId??"",n=no(r);if(!n)return;t.dialogTitle,t.smallAvatarUrl;return{...n,unreadMessageCount:0,notificationStatus:t.muteFlag?e.NotificationStatus.OPEN:e.NotificationStatus.CLOSE,notificationLevel:t.muteFlag?e.NotificationLevel.NOT_MESSAGE_NOTIFICATION:e.NotificationLevel.ALL_MESSAGE,isTop:!!t.stickyFlag,dialogTitle:t.dialogTitle,smallAvatarUrl:t.smallAvatarUrl,lastUnreadTime:"0",burnAfterReadingFlag:!!t.burnAfterReadingFlag,burnAfterReadingTime:t.burnAfterReadingTime&&t.burnAfterReadingTime.toNumber()}};class hs{events={};on(e,t,r){const n=this.events[e]||(this.events[e]=[]);n.some(e=>e.listener===t&&e.target===r)||n.push({listener:t,target:r})}emit(e,...t){const r=this.events[e];r?.length&&r.map(e=>{const{target:r,listener:n}=e;try{n.call(r,...t)}catch(e){}})}off(e,t,r){let n=this.events[e];n?.length&&(n=n.filter(e=>e.listener!==t||e.target!==r),n.length?this.events[e]=n:delete this.events[e])}once(e,t,r){const n=(...o)=>{t.call(r,...o),this.off(e,n,r)};return this.on(e,n,r),this}}const ys="STATUS_CHANGED";class ms{storageKey;eventEmitter;isPulling=!1;constructor(e,t){this.storageKey=`con-s-${e}-${t}`,this.eventEmitter=new hs}async pull(){if(this.isPulling)return;let t;this.isPulling=!0;const r=wt.get(this.storageKey);t=ot(r)&&r>0?r:Ko()-1e4;let{code:n,data:o}=await Bo(t);n===e.ErrorCode.SUCCESS&&(Lr.isLong(o.setTime)&&o.setTime.toNumber()>0&&wt.set(this.storageKey,o.setTime.toNumber()),o.briefDialog&&ft(o.briefDialog).forEach(e=>{const t=o.briefDialog[e],r=fs(t);r&&this.eventEmitter.emit(ys,r)})),this.isPulling=!1}watch(e){this.eventEmitter.on(ys,t=>{e(t)})}}class vs{updatedConversationFunc;store;draftMap=new Map;localConversationSet=new Set;updatedConversations=[];notify;statusManager;constructor(e,t,r){this.updatedConversationFunc=r,this.store=new ps(e,t),this.notify=yt(this.notifyConversationChanged.bind(this),0),this.statusManager=new ms(e,t),this.statusManager.watch(e=>{this.addStatus(e,!0)})}getConversationKey(e){return`${e.conversationType}_${e.targetId}\n }`}setUpdatedConversation(e){const t=this.updatedConversations.findIndex(t=>this.getConversationKey(e.conversation)===this.getConversationKey(t.conversation));t>=0?(e={conversation:Object.assign(this.updatedConversations[t].conversation,e.conversation),updatedItems:Object.assign(this.updatedConversations[t].updatedItems,e.updatedItems),removed:e.removed||this.updatedConversations[t].removed},this.updatedConversations[t]=e):this.updatedConversations.push(e),this.notify()}notifyConversationChanged(){const e=this.updatedConversations.map(e=>e.removed?{conversation:e.conversation,updatedItems:e.updatedItems,removed:!0}:{conversation:{...e.conversation,...this.store.get(e.conversation)},updatedItems:e.updatedItems});this.updatedConversations=[],this.updatedConversationFunc?.(e)}syncConversationStatus(){this.statusManager.pull()}async loadConvsationsIfNotExist(t){if(!t?.length)return;const r=t.filter(e=>!this.localConversationSet.has(this.getConversationKey(e)));if(!r.length)return;const n=r.map(ro);if(!n.length)return;const{code:o,data:s}=await Po(n);o===e.ErrorCode.SUCCESS&&ft(s.briefDialog).forEach(e=>{const t=s.briefDialog[e],r=fs(t);r&&(this.localConversationSet.add(this.getConversationKey(r)),this.addStatus(r,!0))})}addLocalConversation(e){const{conversationType:t,targetId:r,isTop:n,notificationStatus:o,notificationLevel:s,dialogTitle:i,smallAvatarUrl:a,burnAfterReadingFlag:c,burnAfterReadingTime:l,updateTime:u}=e;this.localConversationSet.add(this.getConversationKey(e)),this.addStatus({conversationType:t,targetId:r,isTop:n,notificationStatus:o,notificationLevel:s,dialogTitle:i,smallAvatarUrl:a,burnAfterReadingFlag:c,burnAfterReadingTime:l,updateTime:u},!1)}addStatus(e,t=!1){const{conversationType:r,targetId:n,notificationStatus:o,notificationLevel:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,burnAfterReadingFlag:l,burnAfterReadingTime:u,updateTime:d}=e,g={conversationType:r,targetId:n},p=Ko(),f=this.store.get(g),h={};nt(s)&&f.notificationLevel!==s&&(h.notificationLevel={time:p,val:s}),nt(o)&&f.notificationStatus!==o&&(h.notificationStatus={time:p,val:o}),nt(i)&&f.isTop!==i&&(h.isTop={time:p,val:i}),nt(a)&&f.dialogTitle!==a&&(h.dialogTitle={time:p,val:a}),nt(c)&&f.smallAvatarUrl!==c&&(h.smallAvatarUrl={time:p,val:c}),nt(l)&&f.burnAfterReadingFlag!==l&&(h.burnAfterReadingFlag={time:p,val:l}),nt(u)&&f.burnAfterReadingTime!==u&&(h.burnAfterReadingTime={time:p,val:u}),this.store.set(g,{notificationStatus:o,isTop:i,notificationLevel:s,dialogTitle:a,smallAvatarUrl:c,burnAfterReadingFlag:l,burnAfterReadingTime:u}),nt(d)&&this.store.updateUpdateTime(g,d),Object.keys(h).length&&t&&this.setUpdatedConversation({conversation:g,updatedItems:h})}setConversationCacheByMessage(e){const{conversationType:t,isPersited:r,targetId:n}=e;if(!r)return;const o={conversationType:t,targetId:n},s={conversation:o,updatedItems:{}},i=ds(this.get(o));this.store.updateUnreadCount(e),this.store.updateMentionedData(e),this.store.updateUpdateTime(o,parseInt(e.sentTime));const a=this.get(o);i.unreadMessageCount!==a.unreadMessageCount&&(s.updatedItems.unreadMessageCount={time:parseInt(e.sentTime),val:a.unreadMessageCount}),i.hasMentioned!==a.hasMentioned&&(s.updatedItems.hasMentioned={time:parseInt(e.sentTime),val:a.hasMentioned}),i.unreadMentionedCount!==a.unreadMentionedCount&&(s.updatedItems.unreadMentionedCount={time:parseInt(e.sentTime),val:a.unreadMentionedCount}),Object.keys(s.updatedItems).length&&this.setUpdatedConversation(s)}get(e){return this.store.get(e)}getAllUnreadCount(t,r){const n=this.store.getAll();let o=0;return n.forEach(({unreadMessageCount:n,notificationStatus:s,notificationLevel:i,conversationType:a})=>{n=n||0;const c=s===e.NotificationStatus.OPEN||i>0;!r&&c||(t.length>0?t.includes(+a)&&(o+=+n):o+=+n)}),o}getUnreadCount(e){return this.store.get(e).unreadMessageCount||0}clearUnreadCount(e){const t=this.store.get(e),{unreadMessageCount:r,unreadMentionedCount:n}=t;(r||n)&&(t.unreadMessageCount=0,t.hasMentioned=!1,t.unreadMentionedCount=0),this.store.set(e,t);const o={};r&&(o.unreadMessageCount={val:0,time:Ko()}),n&&(o.hasMentioned={val:!1,time:Ko()},o.unreadMentionedCount={val:0,time:Ko()}),Object.keys(o).length&&this.setUpdatedConversation({conversation:e,updatedItems:o})}clearAllUnreadCount(){this.store.getAll().forEach(e=>this.clearUnreadCount(e))}getNotificationLevel(e){return this.store.get(e).notificationLevel}getNotificationStatus(e){return this.store.get(e).notificationStatus||2}setDraft(e,t){this.draftMap.set(this.getConversationKey(e),t)}getDraft(e){return this.draftMap.get(this.getConversationKey(e))??""}clearDraft(e){this.draftMap.delete(this.getConversationKey(e))}getBlockConversationList(){return this.store.getAll().filter(t=>t.notificationStatus===e.NotificationStatus.OPEN||t.notificationLevel>0).map(e=>({conversationType:e.conversationType,targetId:e.targetId}))}getTopConversationList(){return(this.store.getAll()||{}).filter(e=>e.isTop).map(e=>({conversationType:e.conversationType,targetId:e.targetId}))}getUnreadMentionedCount(e){return this.get(e).unreadMentionedCount||0}getAllUnreadMentionedCount(){const e=this.store.getAll();let t=0;return e.forEach(({unreadMentionedCount:e})=>{e=e||0,t+=Number(e)}),t}getConversationState(e){let t=this.get(e);if(t){let{unreadMessageCount:r,unreadMentionedCount:n,notificationLevel:o,notificationStatus:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,updateTime:l}=t;return{...e,unreadCount:r,unreadMentionedCount:n??0,notificationLevel:o,notificationStatus:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,updateTime:l}}return null}getAllConversationState(){return this.store.getAll().map(({conversationType:e,targetId:t,unreadMessageCount:r,unreadMentionedCount:n,notificationLevel:o,notificationStatus:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,updateTime:l})=>({conversationType:e,targetId:t,unreadCount:r,unreadMentionedCount:n??0,notificationLevel:o,notificationStatus:s,isTop:i,dialogTitle:a,smallAvatarUrl:c,updateTime:l}))}remove(e){this.store.remove(e),this.localConversationSet.delete(this.getConversationKey(e)),this.setUpdatedConversation({conversation:e,updatedItems:{},removed:!0})}clearHistoryMessages(e){this.clearUnreadCount(e);const t={conversation:e,updatedItems:{}};t.conversation.latestMessage=void 0,t.updatedItems.latestMessage={val:null,time:Ko()},this.setUpdatedConversation(t)}updateLatestMessage(e,t){nt(t)&&this.store.updateUpdateTime(e,parseInt(t.sentTime));const r={conversation:e,updatedItems:{}};nt(t)&&(r.conversation.updateTime=parseInt(t.sentTime)),r.conversation.latestMessage=t,r.updatedItems.latestMessage={val:t,time:Ko()},this.setUpdatedConversation(r)}destroyed(){this.updatedConversationFunc=void 0}}const bs={addStatus:function(e,t){},setConversationCacheByMessage:function(e){},updateLatestMessage:function(e,t){},get:function(e){return null},getAllUnreadCount:function(e,t){return 0},getUnreadCount:function(e){return 0},clearUnreadCount:function(e){},clearAllUnreadCount(){},getNotificationLevel:function(t){return e.NotificationLevel.NOT_SET},getNotificationStatus:function(t){return e.NotificationStatus.CLOSE},setDraft:function(e,t){},getDraft:function(e){return""},clearDraft:function(e){},getBlockConversationList:function(){return[]},getTopConversationList:function(){return[]},getUnreadMentionedCount:function(e){return 0},getAllUnreadMentionedCount:function(){return 0},getConversationState:e=>null,getAllConversationState:function(){return[]},addLocalConversation:function(e){},loadConvsationsIfNotExist:function(e){return Promise.resolve()},destroyed(){},syncConversationStatus:function(){},remove:function(e){},clearHistoryMessages:function(e){}};let Cs;var ws={create(e,t,r){Cs=new vs(e,t,r)},get:()=>Cs??bs};const Os=(t,r,n=e.SentStatus.SENDING)=>{const o=ws.get().get(r.conversation);return{conversationType:r.conversation.conversationType,targetId:r.conversation.targetId,senderUserId:r.senderUserId,messageDirection:e.MessageDirection.SEND,isCounted:t.isCounted,isMentioned:!1,content:ds(t.content),messageType:t.messageType,isOffLineMessage:!1,isPersited:t.isPersited,messageId:r.messageId,messageUId:"local"+r.sentTime,sentTime:r.sentTime,sentStatus:n,receivedTime:r.sentTime,isStatusMessage:t.isStatusMessage,receivedStatus:e.ReceivedStatus.IDLE,disableNotification:!0,burnAfterReadingFlag:o?.burnAfterReadingFlag??!1,burnAfterReadingTime:o?.burnAfterReadingTime??0,pinned:!1}};function Is(e){if(e instanceof Error){const t=e.cause;return{type:e.constructor?.name??"Error",name:e.name,message:e.message,stack:e.stack,...void 0===t?{}:{cause:Is(t)}}}let t;try{t="string"==typeof e?e:JSON.stringify(e)??String(e)}catch{t=String(e)}return{type:null===e?"null":typeof e,value:t}}function Ss(e){const t={...e};return"content"in t&&delete t.content,"quotedReply"in t&&delete t.quotedReply,"msgPreContent"in t&&delete t.msgPreContent,"msgPostContent"in t&&delete t.msgPostContent,t}const Es=(e,t,r,n)=>{const o=new Map;return e.forEach(e=>{const s=Rs(e,t.get(e),r.get(e),n);s.length&&o.set(e,s)}),o},Rs=(t,r,n,o)=>{const s=no(t);if(!s)return[];const i=ws.get().get(s);let a=[];return r.forEach(t=>{const r=t;let c=r.mediaConstructor,l=Ts(r,n);if(!l)return;if(c===is||c===as){const{msgId:e}=l,t={messageUId:e};c=us(c),l=t}const u=Xo(c,l);if(nt(u)){const c={...s,senderUserId:r.srcId.toString(),messageDirection:r.isOut?e.MessageDirection.SEND:e.MessageDirection.RECEIVE,isCounted:u.isCounted,isMentioned:r.atFlag,content:u.content,messageType:u.messageType,isOffLineMessage:!1,isPersited:u.isPersited,messageId:Lr.isLong(r.localId)?r.localId.toNumber():0,messageUId:r.msgId.toString(),sentTime:r.seqno.toString(),sentStatus:e.SentStatus.SENT,receivedTime:Ko().toString(),isStatusMessage:u.isStatusMessage,receivedStatus:r.msgRead?e.ReceivedStatus.READ:r.msgArrival?e.ReceivedStatus.RECEIVED:e.ReceivedStatus.IDLE,disableNotification:i?.notificationStatus===e.NotificationStatus.OPEN||r.srcId.toString()==on.uid,burnAfterReadingFlag:r.burnAfterReadingFlag,burnAfterReadingTime:r.burnAfterReadingTime&&r.burnAfterReadingTime.toNumber(),pinned:!1};if(c.isStatusMessage&&Lr.fromNumber(Ko()).subtract(c.sentTime).greaterThan(6e3))return;if(r.msgIdReferenced&&Lr.isLong(r.msgIdReferenced)){const t=o[r.msgIdReferenced.toString()];if(t){let r=Ts({mediaAttribute:t.mediaAttribute,msgPreContent:t.msgPreContent,msgPostContent:t.msgPostContent,mediaConstructor:t.mediaConstructor??0,msgId:t.msgId??Lr.fromNumber(0)},n);if(r){const n=Xo(t.mediaConstructor??0,r);nt(n)&&(c.quotedReply=((t,r,n)=>({conversationType:n.conversationType,targetId:t.destId.toString(),senderUserId:t.srcId.toString(),messageDirection:t.srcId.toString()===on.uid?e.MessageDirection.SEND:e.MessageDirection.RECEIVE,isCounted:r.isCounted,isMentioned:!1,content:ds(r.content),messageType:r.messageType,isOffLineMessage:!1,isPersited:r.isPersited,messageId:1,messageUId:t.msgId.toString(),sentTime:t.msgSendTime.toString(),sentStatus:e.SentStatus.SENT,receivedTime:t.msgSendTime.toString(),isStatusMessage:r.isStatusMessage,receivedStatus:e.ReceivedStatus.RECEIVED,disableNotification:!0,burnAfterReadingFlag:!1,burnAfterReadingTime:0,pinned:!1,senderUserName:t.srcName}))(t,n,s))}}}dt(c.messageUId)?a.push(c):Yi.error("message is invalid",Ss(t))}}),a},Ts=(e,t)=>{try{let r,n;return r=e.mediaAttribute?.length?ns(e.mediaAttribute,t):e.msgPreContent??"",e.msgPostContent?.length&&(n=ns(e.msgPostContent,t)),As(e.mediaConstructor,r,n)}catch(t){return Yi.error("decode message content fail",e,t),null}},As=(e,t,r)=>{let n={};if(t?.length){const e=_s(t);n=JSON.parse(e,Ps)}return e===ss.TEXT&&void 0!==r&&(n.content=r),n},_s=e=>{let t=e.replace(/("[\w\d_]+"\s*:\s*)(?<!\d\.)(\d{15,})(?!\.\d*)([\s,}\]])/g,'$1"$2"$3');return t=t.replace(/(\[\s*|,\s*)(?<!\d\.)(\d{15,})(?!\.\d*)([\s,\]])/g,'$1"$2"$3'),t},ks=new Set(["destId","groupId","groupUin","msgId"]),Ms=new Set(["msgIdList"]),Ns=(e,t)=>{if("string"==typeof t)return t;if("number"==typeof t&&Number.isSafeInteger(t))return t.toString();throw new TypeError(`${e} must be an Int64 string or a safe integer, received ${typeof t}`)},Ps=(e,t)=>null==t?t:ks.has(e)?Ns(e,t):Ms.has(e)?Array.isArray(t)?t.map(t=>Ns(e,t)):Ns(e,t):t;var Ls={parse:function(e,t,r){const n=new Map;if(Object.keys(e).forEach(t=>{const r=e[t].dialogMessage?.filter(e=>!e.sharingGroupFlag);r?.length&&n.set(t,r)}),!n.size)return void r(!0,new Map);const o=new Set([...n.keys()]);Yo.getDialogAesKeyListInBatches([...n.keys()],(e,s)=>{try{if(s.size){const e=[...s.keys()];for(const t of e)o.delete(t);r(!o.size,Es(e,n,s,t))}o.size&&e&&r(!0,new Map)}catch(t){Yi.error("parseDialogsMessages error",t),o.size&&e&&r(!0,new Map)}})},parseSingleDialogMessages:Rs,decodeChatRecordMsgDetails2ReceivedMessages:(t,r)=>{let n=[];return r.forEach(r=>{const o=As(r.mediaConstructor,r.mediaAttribute,r.msgPostContent);if(!o)return;const s=Xo(r.mediaConstructor,o);if(nt(s)){const o={...t,senderUserId:r.srcId.toString(),messageDirection:r.srcId==on.uid?e.MessageDirection.SEND:e.MessageDirection.RECEIVE,isCounted:s.isCounted,isMentioned:!1,content:s.content,messageType:s.messageType,isOffLineMessage:!1,isPersited:s.isPersited,messageId:0,messageUId:r.msgId+"",sentTime:r.msgSendTime+"",sentStatus:e.SentStatus.SENT,receivedTime:r.msgSendTime+"",isStatusMessage:s.isStatusMessage,receivedStatus:e.ReceivedStatus.READ,disableNotification:!1};n.push(o)}}),n},encodeReceivedMessage2ChatRecordMsgDetail:e=>{const t=Xo(e.messageType,e.content);if(!t)return null;const r=JSON.stringify(t.content),n=e.messageType===ss.TEXT?t.content.content:void 0;return{senderNickname:e.senderNickname,senderAvatar:e.senderAvatar||void 0,msgId:e.messageUId,srcId:e.senderUserId,destId:e.targetId,mediaConstructor:e.messageType,mediaAttribute:r,msgPostContent:n,msgSendTime:e.sentTime}}};const Ds="unreadMessageUids";class Us{api;localStore;constructor(e,t,r=qo){this.api=r;const n=`receipt-v2-${e}-${t}`;this.localStore=new It(n)}storeUnreadMessageUids(t){const r=t.filter(t=>t.isCounted&&t.messageDirection!==e.MessageDirection.SEND).map(e=>({uid:e.messageUId,timestamp:Date.now()})),n=[...this.localStore.get(Ds)||[],...r];this.localStore.set(Ds,n)}cleanExpiredMessages(){const e=this.localStore.get(Ds)||[],t=Date.now(),r=e.filter(e=>t-e.timestamp<=1728e5);this.localStore.set(Ds,r)}formatReceiptMessages(t){const r=[],n=[];t.forEach(t=>{t.conversationType===e.ConversationType.PRIVATE?r.push(t):n.push(t)});return{privateReceiptMessages:Object.entries(r.reduce((e,t)=>(e[t.targetId]||(e[t.targetId]=[]),e[t.targetId].push(t.messageUId),e),{})).map(([e,t])=>({destId:Lr.fromString(e),msgId:t.map(e=>Lr.fromString(e))})),groupReceiptMessages:n.reduce((e,t)=>{const r=e.find(e=>e.groupId.equals(Lr.fromString(t.targetId))&&e.userId.equals(Lr.fromString(t.senderUserId)));return r?r.msgId.push(Lr.fromString(t.messageUId)):e.push({groupId:Lr.fromString(t.targetId),userId:Lr.fromString(t.senderUserId),msgId:[Lr.fromString(t.messageUId)]}),e},[])}}filterValidMessages(t){return t.filter(t=>t.isCounted&&t.messageDirection!==e.MessageDirection.SEND)}async sendArrivalReceipts(e){this.storeUnreadMessageUids(e);const t=this.filterValidMessages(e),{privateReceiptMessages:r,groupReceiptMessages:n}=this.formatReceiptMessages(t);r.length&&await this.api.sendPrivateChatArrivalAck({chatMessage:r}),n.length&&await this.api.sendGroupChatArrivalAck({groupChatMessage:n})}async sendReadReceipts(e){const t=this.localStore.get(Ds)||[],r=this.filterValidMessages(e).filter(e=>t.some(t=>t.uid===e.messageUId));try{const{privateReceiptMessages:e,groupReceiptMessages:t}=this.formatReceiptMessages(r);e.length&&await this.api.sendPrivateChatReadAck({chatMessage:e}),t.length&&await this.api.sendGroupChatReadAck({groupChatMessage:t});const n=this.localStore.get(Ds)||[],o=r.map(e=>e.messageUId),s=n.filter(e=>!o.includes(e.uid));this.localStore.set(Ds,s)}catch(e){throw console.error("发送已读回执失败:",e),e}}}let js;var Bs={create(e,t){js=new Us(e,t),js.cleanExpiredMessages()},get:()=>js};let Fs=0,xs=0;function Gs(e,t){Fs=e+100,xs=t+100}function qs(){return xs++,xs}function Vs(){return Fs--,Fs}function Ks(){return xs}async function Hs(e,t){const r=await e.request(t);if(r.ok)return r.value;const n=new Error(r.error.message);throw n.name=r.error.name,n.stack=r.error.stack,n}function zs(e,t,r){if(!e)return null;if(!/^[0-9a-f]+$/i.test(e)||e.length%2!=0)return e;const n=r.lib.CipherParams.create({ciphertext:r.enc.Hex.parse(e)}),o=r.AES.decrypt(n,r.enc.Utf8.parse(t.key),{iv:r.enc.Utf8.parse(t.iv)}).toString(r.enc.Utf8);if(!o)throw new Error("Unable to decrypt a legacy message");return JSON.parse(o)}function $s(e,t,r=tt){const n={...e};return"string"==typeof n.content&&(n.content=zs(n.content,t,r)),n.quotedReply&&"string"==typeof n.quotedReply.content&&(n.quotedReply={...n.quotedReply,content:zs(n.quotedReply.content,t,r)}),n}function Ws(e,t){return new Promise((r,n)=>{const o=e.open(t);o.onsuccess=()=>r(o.result),o.onerror=()=>n(o.error??new Error("Unable to open legacy database"))})}function Js(e,t,r,n,o){return new Promise((s,i)=>{const a=e.transaction(t,"readonly"),c=a.objectStore(t),l=void 0===r?void 0:o.lowerBound(r,!0),u=c.openCursor(l),d=[];let g;u.onsuccess=()=>{const e=u.result;!e||d.length>=n?s({values:d,lastKey:g}):(d.push(e.value),g=e.primaryKey,d.length>=n?s({values:d,lastKey:g}):e.continue())},u.onerror=()=>i(u.error??new Error(`Unable to read ${t}`)),a.onabort=()=>i(a.error??new Error(`Unable to read ${t}`))})}async function Zs(e,t){if("function"!=typeof e.databases)throw new Error("IndexedDB.databases() is required for safe legacy migration");return(await e.databases()).some(e=>e.name===t)}function Xs(e,t){return new Promise((r,n)=>{const o=e.transaction(t,"readonly"),s=o.objectStore(t).count();s.onsuccess=()=>r(s.result),s.onerror=()=>n(s.error??new Error(`Unable to count ${t}`)),o.onabort=()=>n(o.error??new Error(`Unable to count ${t}`))})}async function Ys({appKey:e,userId:t,bridge:r,indexedDBFactory:n=indexedDB,keyRange:o=IDBKeyRange,batchSize:s=200,onProgress:i}){if("complete"===await Hs(r,{type:"read",method:"getLegacyMigrationState",args:[]}))return{migrated:!1,messages:0,dialogStates:0};const a=`im_message_cache_1_${e}_${t}`;if(!await Zs(n,a))return{migrated:!1,messages:0,dialogStates:0};const c=await Ws(n,a),l=function(e,t){const r="im_message_cache_salt_prefix",n=tt.SHA256(`${r}${e}_${t}im_message_cache_salt_suffix`).toString(),o=n.substring(0,16),s=n.substring(16,48),i=tt.SHA256(`${o}:${r}:${t}:${e}`).toString().substring(0,8);return{key:tt.PBKDF2(s,i,{keySize:8,iterations:1e3,hasher:tt.algo.SHA256}).toString().substring(0,32),iv:o}}(e,t);let u=0,d=0;try{if(c.objectStoreNames.contains("messages_new")){let e;for(;;){const t=await Js(c,"messages_new",e,s,o);if(0===t.values.length)break;const n=t.values.map(e=>$s(e,l));if(await Hs(r,{type:"write",method:"importLegacyBatch",args:[{messages:n,dialogStates:[]}]}),u+=n.length,i?.({processedMessages:u,processedDialogStates:d}),e=t.lastKey,t.values.length<s)break}}if(c.objectStoreNames.contains("dialogStates_new")){let e;for(;;){const t=await Js(c,"dialogStates_new",e,s,o);if(0===t.values.length)break;if(await Hs(r,{type:"write",method:"importLegacyBatch",args:[{messages:[],dialogStates:t.values}]}),d+=t.values.length,i?.({processedMessages:u,processedDialogStates:d}),e=t.lastKey,t.values.length<s)break}}return await Hs(r,{type:"write",method:"completeLegacyMigration",args:[]}),{migrated:!0,messages:u,dialogStates:d}}finally{c.close()}}class Qs{appKey;userId;bridge;options;initialization=null;constructor(e,t,r=function(){const e=globalThis;if(!e.acimDatabase)throw new Error("ACIM database preload bridge is unavailable; install the Electron preload entry first");return e.acimDatabase}(),n={}){this.appKey=e,this.userId=t,this.bridge=r,this.options=n}initDB(){return this.initialization||(this.initialization=Hs(this.bridge,{type:"open",options:{appKey:this.appKey,userId:this.userId}}).then(async()=>{const e=this.options.indexedDBFactory??("undefined"==typeof indexedDB?void 0:indexedDB),t=this.options.keyRange??("undefined"==typeof IDBKeyRange?void 0:IDBKeyRange);"manual"!==this.options.legacyMigrationMode&&e&&t&&await Ys(this.migrationOptions({indexedDBFactory:e,keyRange:t}))})),this.initialization}async migrateLegacyDatabase(e){return await this.initDB(),Ys(this.migrationOptions({onProgress:e}))}async getLegacyMigrationInfo(){return await this.initDB(),async function({appKey:e,userId:t,bridge:r,indexedDBFactory:n=indexedDB}){const o=await Hs(r,{type:"read",method:"getLegacyMigrationState",args:[]}),s=`im_message_cache_1_${e}_${t}`;if(!await Zs(n,s))return{state:o,exists:!1,totalMessages:0,totalDialogStates:0};const i=await Ws(n,s);try{return{state:o,exists:!0,totalMessages:i.objectStoreNames.contains("messages_new")?await Xs(i,"messages_new"):0,totalDialogStates:i.objectStoreNames.contains("dialogStates_new")?await Xs(i,"dialogStates_new"):0}}finally{i.close()}}(this.migrationOptions())}async getLegacyMediaReferences(e=0,t=500){return this.read("getLegacyMediaReferences",[e,t])}async deleteLegacyDatabase(){await this.initDB(),await async function({appKey:e,userId:t,indexedDBFactory:r=indexedDB}){const n=`im_message_cache_1_${e}_${t}`;await Zs(r,n)&&await new Promise((e,t)=>{const o=r.deleteDatabase(n);o.onsuccess=()=>e(),o.onerror=()=>t(o.error??new Error("Unable to delete legacy database")),o.onblocked=()=>t(new Error("Legacy database deletion was blocked"))})}({appKey:this.appKey,userId:this.userId,indexedDBFactory:this.options.indexedDBFactory})}async close(){this.initialization&&(await this.initialization,await Hs(this.bridge,{type:"close"}),this.initialization=null)}async deleteDatabase(){await this.close(),await Hs(this.bridge,{type:"delete",options:{appKey:this.appKey,userId:this.userId}})}async addMessages(e,t,r){const n=e.filter(e=>e.isPersited);await this.write("addMessages",[n,ro(t),r])}async getMessages(e,t="0",r=20,n=!0){return this.read("getMessages",[ro(e),t,r,n])}getPreviousMessages(e,t="0",r=20){return this.getMessages(e,t,r,!0)}getMessagesByType(e,t,r="0",n=50,o=!0){return this.read("getMessagesByType",[ro(e),t,r,n,o])}getLatestMessage(e){return this.read("getLatestMessage",[ro(e)])}async getLatestMessages(e){const t=e.map(ro);return this.read("getLatestMessages",[t])}getMessageById(e){return this.read("getMessageById",[e])}getMessageByUId(e){return this.read("getMessageByUId",[e])}getPinnedMessages(e,t=50){return this.read("getPinnedMessages",[ro(e),t])}getMessageIdRange(){return this.read("getMessageIdRange",[])}getDialogLoadedState(e){return this.read("getDialogLoadedState",[e])}async clearConversationCache(e){await this.write("clearConversationCache",[ro(e)])}async clearAllCache(){await this.write("clearAllCache",[])}async removeMessagesByUId(e){await this.write("removeMessagesByUId",[e])}async updateMessageReceiptStatus(t,r){const n=0===r?e.ReceivedStatus.RECEIVED:e.ReceivedStatus.READ;await this.write("updateMessageReceiptStatus",[t.messageUIdList,n])}async markMessagesRead(t,r){await this.write("updateMessageReceiptStatus",[t,e.ReceivedStatus.READ,r])}async setMessagePinned(e,t,r){await this.write("setMessagePinned",[ro(e),t,r])}async setMessageReactions(e,t,r){return this.write("setMessageReactions",[ro(e),t,r])}async unpinAllMessages(e){await this.write("unpinAllMessages",[ro(e)])}clearBurnAfterReadingExpiredMessages(e){return this.write("clearBurnAfterReadingExpiredMessages",[ro(e)])}async upsertMessage(e){await this.write("upsertMessage",[e,ro(e)])}async convertToRecallMessages(e){await this.write("convertToRecallMessages",[e,ss.RECALL])}searchTextMessages(e,t){return this.read("searchTextMessages",[ro(e),t])}searchMessages(e,t=500){return this.read("searchMessages",[e,void 0,t])}migrationOptions(e={}){return{appKey:this.appKey,userId:this.userId,bridge:this.bridge,indexedDBFactory:this.options.indexedDBFactory,keyRange:this.options.keyRange,...e}}async read(e,t){return await this.initDB(),Hs(this.bridge,{type:"read",method:e,args:t})}async write(e,t){return await this.initDB(),Hs(this.bridge,{type:"write",method:e,args:t})}}let ei=null;var ti={create:(e,t,r={})=>(ei=new Qs(e,t,void 0,r),ei),get:()=>ei};function ri(e){if(null==e)return"";if("string"==typeof e)return e;if("number"==typeof e&&Number.isFinite(e))return String(e);if("object"==typeof e&&"function"==typeof e.toString){const t=e.toString;if(t!==Object.prototype.toString){const r=t.call(e);if("string"==typeof r)return r}}return""}function ni(e,t){const r=ri(t.uid),n=(e??[]).filter(e=>ri(e.uid)!==r);return t.content.trim()?[{...t,uid:r},...n]:n}class oi{handlers=new Map;register(e,t){this.handlers.set(e,t)}contains(e){return this.handlers.has(e)}async process(e,t){const r=this.handlers.get(e.messageType);return!!r&&(await r.process(e,t),r.shouldConsume?.(e)??r.consumed)}}class si{consumed;callback;constructor(e,t){this.consumed=e,this.callback=t}async process(e,t){await this.callback(e,t)}}class ii{receivedStatus;receiptType;publish;consumed=!0;constructor(e,t,r){this.receivedStatus=e,this.receiptType=t,this.publish=r}async process(t,r){const n=t.content,o=n.msgIdList;if(null==o)return;const s=(Array.isArray(o)?o:[o]).map(e=>e.toString()),i=new Set(s);for(const t of r)t.messageDirection===e.MessageDirection.SEND&&i.has(t.messageUId)&&t.receivedStatus<this.receivedStatus&&(t.receivedStatus=this.receivedStatus);await this.publish({conversation:{conversationType:t.conversationType,targetId:n.groupId??n.destId??t.targetId},messageUIdList:s},this.receiptType)}}class ai{setMessagePinned;unpinAllMessages;publish;consumed=!1;constructor(e,t,r){this.setMessagePinned=e,this.unpinAllMessages=t,this.publish=r}shouldConsume(t){return t.content.pinned!==e.MessagePinnedOperation.PIN}async process(t,r){const n=t.content.pinned;if(n!==e.MessagePinnedOperation.PIN&&n!==e.MessagePinnedOperation.UNPIN&&n!==e.MessagePinnedOperation.UNPIN_ALL)return;const o={conversationType:t.conversationType,targetId:t.targetId},s=String(t.content.msgId??"");if(n===e.MessagePinnedOperation.UNPIN_ALL)r.forEach(e=>{e.pinned=!1}),await this.unpinAllMessages(o);else{const t=n===e.MessagePinnedOperation.PIN;r.forEach(e=>{e.messageUId===s&&(e.pinned=t)}),await this.setMessagePinned(o,s,t)}await this.publish({conversation:o,messageUId:n===e.MessagePinnedOperation.UNPIN_ALL?void 0:s,operation:n})}}function ci(e){if(null==e)return"";if("string"==typeof e)return e;if("number"==typeof e&&Number.isFinite(e))return String(e);if("object"==typeof e&&"function"==typeof e.toString){const t=e.toString;if(t!==Object.prototype.toString){const r=t.call(e);if("string"==typeof r&&"[object Object]"!==r)return r}}return""}class li{getMessageByUId;setMessageReactions;publish;consumed=!0;constructor(e,t,r){this.getMessageByUId=e,this.setMessageReactions=t,this.publish=r}async process(e,t){const r=e.content,n=ci(r.uid);if(!n||"0"===n)return;const o=ci(r.msgId);if(!o||"0"===o)return;const s={conversationType:e.conversationType,targetId:e.targetId},i=t.find(t=>t!==e&&ci(t.messageUId)===o),a=await this.getMessageByUId(o),c=i??a;if(!c)return void Yi.warn("chat comment notification: target message not found",o);const l=c.reactions??(c===a?void 0:a?.reactions),u={uid:n,msgId:o,content:r.content??"",nickname:r.nickName??r.nickname??"",time:Number(r.time)||0},d=ni(l,u);c.reactions=d;(await this.setMessageReactions(s,o,d)||i)&&await this.publish({conversation:s,messageUId:o,reactions:d,change:u})}}class ui{watcher;pullingMsg=!1;letterbox;serverMsgSeqno=Lr.ZERO;pullOfflineFinished=!1;intervalTimer;retryTimer;latestSyncTimestamp=0;started=!1;notificationProcessor=new oi;constructor(e,t){this.watcher=e,this.letterbox=new ts(t.appkey,on.uid.toString()),this.registerNotificationHandlers()}registerNotificationHandlers(){this.notificationProcessor.register(cs.MESSAGE_READ,new si(!0,e=>{const{toPc:t,destId:r}=e.content;t&&ws.get().clearUnreadCount({conversationType:to(Lr.fromString(r)),targetId:r})})),this.notificationProcessor.register(cs.CHANGE_GROUP_TITLE,new si(!1,e=>{this.handleGroupTitleChangeMessage(e)})),this.notificationProcessor.register(cs.CHANGE_GROUP_AVATAR,new si(!1,e=>{this.handleGroupAvatarChangeMessage(e)}));const t=new si(!1,e=>{this.handleBurnAfterReadingMessage(e)});[cs.PRIVATE_OPEN_BURNAFTERREADING,cs.GROUP_OPEN_BURNAFTERREADING,cs.PRIVATE_CLOSE_BURNAFTERREADING,cs.GROUP_CLOSE_BURNAFTERREADING].forEach(e=>{this.notificationProcessor.register(e,t)});const r=(e,t)=>this.watcher.onReceiptReceived?.(e,t);this.notificationProcessor.register(cs.GROUP_ARRIVAL_RECEIPT,new ii(e.ReceivedStatus.RECEIVED,0,r)),this.notificationProcessor.register(cs.PRIVATE_ARRIVAL_RECEIPT,new ii(e.ReceivedStatus.RECEIVED,0,r)),this.notificationProcessor.register(cs.GROUP_READ_RECEIPT,new ii(e.ReceivedStatus.READ,1,r)),this.notificationProcessor.register(cs.PRIVATE_READ_RECEIPT,new ii(e.ReceivedStatus.READ,1,r));const n=new ai(async(e,t,r)=>{await(ti.get()?.setMessagePinned(e,t,r))},async e=>{await(ti.get()?.unpinAllMessages(e))},e=>this.watcher.onMessagePinnedChanged?.(e));this.notificationProcessor.register(cs.PRIVATE_MESSAGE_PINNED,n),this.notificationProcessor.register(cs.GROUP_MESSAGE_PINNED,n),this.notificationProcessor.register(cs.CHAT_COMMENT,new li(async e=>ti.get()?.getMessageByUId(e),async(e,t,r)=>await(ti.get()?.setMessageReactions(e,t,r))??!1,e=>this.watcher.onMessageReactionsChanged?.(e)))}start(){this.started=!0,this.pullOfflineFinished=!1,this.startPullInterval()}stop(){this.started=!1,this.stopPullInterval(),this.cancelRetryTask()}syncMsg(e){this.serverMsgSeqno=e,this.pullMsg()}startPullInterval(){this.stopPullInterval();this.intervalTimer=setInterval(()=>{Date.now()-this.latestSyncTimestamp>=18e4&&this.pullMsg()},3e4),this.latestSyncTimestamp=Date.now(),this.pullMsg()}stopPullInterval(){this.intervalTimer&&(clearInterval(this.intervalTimer),this.intervalTimer=null)}try2RePullMsg(){this.retryTimer=setTimeout(()=>{this.retryTimer=null,this.pullMsg()},1e3)}cancelRetryTask(){this.retryTimer&&(clearTimeout(this.retryTimer),this.retryTimer=null)}async pullMsg(){if(this.pullingMsg)return;if(!this.started)return;this.cancelRetryTask(),this.pullingMsg=!0;const t=this.letterbox.getInboxOffset();Yi.info(`pullMsg -> time: ${t}`),this.latestSyncTimestamp=Date.now();const{code:r,data:n}=await Eo(t,60);if(r!==e.ErrorCode.SUCCESS)return Yi.warn("pullMsg failed -> code:",r),this.pullingMsg=!1,void(Hi.loader?.getConnectionStatus()==e.ConnectionStatus.CONNECTED&&this.try2RePullMsg());const{offset:o,seqno:s,msg:i,reference:a}=n,c=Object.keys(i).map(e=>({conversationType:to(Lr.fromString(e)),targetId:e}));await ws.get().loadConvsationsIfNotExist(c),Ls.parse(i,a,async(e,r)=>{let n,i=[];try{for(const[e,t]of r.entries()){if(n=e,i=t,0===t.length)return;await this.processMessages(t,!this.pullOfflineFinished)}}catch(e){Yi.error("processMessages error ->",Is(e),"context ->",{inboxTime:t,offset:o?.toString(),seqno:s?.toString(),dialogId:n,isOfflineMessage:!this.pullOfflineFinished,messageCount:i.length,messages:(a=i,a.map(Ss))})}var a;if(e)try{let e;s&&(Lr.isLong(s)?e=s:"string"==typeof s?e=Lr.fromString(s):"number"==typeof s&&(e=Lr.fromNumber(s))),e&&Lr.isLong(e)&&e.ge(this.serverMsgSeqno)&&(this.serverMsgSeqno=e);const t=this.serverMsgSeqno.lessThanOrEqual(o);Yi.info(`pullMsg success -> syncTime: ${o}, finished: ${t}`),this.letterbox?.setInboxOffset(o),this.pullingMsg=!1,t&&!this.pullOfflineFinished&&(this.pullOfflineFinished=!0,this.watcher.pullFinished&&this.watcher.pullFinished()),t||this.pullMsg()}catch(e){Yi.error("setPullMsgDone error",e),this.pullingMsg=!1}})}async processMessages(e,t){const r={conversationType:e[0].conversationType,targetId:e[0].targetId};let n=[];const o=[];let s=[];for(const r of e)this.notificationProcessor.contains(r.messageType)&&await this.notificationProcessor.process(r,e)||(ls(r.messageType)&&Wo.has(r.content.messageUId)?r.content.messageUId?(Wo.remove(r.content.messageUId),s.push(r.content.messageUId)):Yi.error("recallMessage's messageUId is undefined",Ss(r)):r.messageUId?(r.isOffLineMessage=t,(!r.messageId||r.messageId>Ks())&&(r.messageId=qs()),ws.get().setConversationCacheByMessage(r),n.push(r),ls(r.messageType)&&o.push(n.length-1)):Yi.error("message's messageUId is undefined",Ss(r)));let i=[];for(let e=o.length-1;e>=0;e--){const t=o[e],r=n[t],a=r.content,c=n.findIndex(e=>e.messageUId===a.messageUId);if(-1!==c){const e=n[c];r.messageId=e.messageId,r.sentTime=e.sentTime,n[c]=r,n[t]=e,i.push(t)}else s.push(a.messageUId),i.push(t)}if(i.length){let e=[];n.forEach((t,r)=>{i.includes(r)||e.push(t)}),n=e}const a=n;if(a.length&&(await(ti.get()?.addMessages(a,{conversationType:a[0].conversationType,targetId:a[0].targetId})),this.handleBatchMessages(a),Bs.get()?.sendArrivalReceipts(a)),s.length){await(ti.get()?.convertToRecallMessages(s)),this.watcher.onRecall?.(s);const e=await(ti.get()?.getLatestMessage(r));ws.get().updateLatestMessage(r,e)}if(n.some(e=>e.isPersited)){const e=await(ti.get()?.getLatestMessage(r));ws.get().updateLatestMessage(r,e)}}handleBurnAfterReadingMessage(e){const t=e.content,r=e.conversationType,n=e.targetId,{templateId:o,burnAfterReadingTime:s}=t,i=60010010===o||60010011===o;ws.get().addStatus({conversationType:r,targetId:n,burnAfterReadingFlag:i,burnAfterReadingTime:i?s:null},!0)}handleGroupTitleChangeMessage(e){const t=e.content,r=t.groupUin??e.targetId;ws.get().addStatus({conversationType:e.conversationType,targetId:r,dialogTitle:t.newTitle},!0)}handleGroupAvatarChangeMessage(e){const t=e.content,r=t.groupId??e.targetId;ws.get().addStatus({conversationType:e.conversationType,targetId:r,smallAvatarUrl:t.smallAvatarUrl},!0)}async handleBatchMessages(t){const r=t.filter(t=>t.messageDirection!==e.MessageDirection.SEND||!t.messageId||!zo.has(t.messageId)||(zo.remove(t.messageId),!1));r.length&&this.watcher.batchMessage?.(r)}}const di={filters:[],displayTags:!1};let gi=di,pi=0;async function fi(){const t=++pi;return(async()=>{try{const n=await xo();return t!==pi?gi:n.code!==e.ErrorCode.SUCCESS?(Yi.warn("getDialogFilterConfig failed",n.code,n.msg),gi=di,gi):(r=n.data?.config,gi=r?{filters:(r.filters??[]).filter(e=>{const t=e.title?.trim(),r=e.id?.trim();if(!t||!r||"0"===r)return!1;const n=e.colorId??-1;return!(n<-1||n>7)}),displayTags:Boolean(r.displayTags)}:di,gi)}catch(e){return t!==pi||(Yi.warn("getDialogFilterConfig threw",e),gi=di),gi}var r})()}class hi{messageType;content;isPersited;isCounted;isStatusMessage;constructor(e,t,r=!0,n=!0,o=!1){this.messageType=e,this.content=t,o?(this.isPersited=!1,this.isCounted=!1):(this.isPersited=r,this.isCounted=n),this.isStatusMessage=o}}const yi=(e,t,r,n)=>function(o){return new hi(e,o,t,r,n)},mi=yi(ss.TEXT,!0,!0,!1),vi=yi(ss.IMAGE,!0,!0,!1),bi=yi(ss.GIF,!0,!0,!1),Ci=yi(ss.AUDIO,!0,!0,!1),wi=yi(ss.FILE,!0,!0,!1),Oi=yi(ss.VIDEO,!0,!0,!1);let Ii=yi(ss.LOCATION,!0,!0,!1),Si=yi(ss.CHAT_RECORD,!0,!0,!1),Ei=yi(ss.CONTACT,!0,!0,!1),Ri=yi(ss.GROUP_INVITATION,!0,!0,!1),Ti=yi(ss.REDPACKET,!0,!0,!1),Ai=yi(ss.TRANSFER,!0,!0,!1),_i=yi(ss.LINK,!0,!0,!1);const ki=yi(cs.GROUP_ARRIVAL_RECEIPT,!1,!1,!1),Mi=yi(cs.GROUP_READ_RECEIPT,!1,!1,!1),Ni=yi(cs.PRIVATE_ARRIVAL_RECEIPT,!1,!1,!1),Pi=yi(cs.PRIVATE_READ_RECEIPT,!1,!1,!1),Li=yi(cs.PRIVATE_OPEN_BURNAFTERREADING,!1,!1,!1),Di=yi(cs.PRIVATE_CLOSE_BURNAFTERREADING,!1,!1,!1),Ui=yi(cs.GROUP_OPEN_BURNAFTERREADING,!1,!1,!1),ji=yi(cs.GROUP_CLOSE_BURNAFTERREADING,!1,!1,!1),Bi=yi(cs.MESSAGE_READ,!1,!1,!1),Fi=yi(cs.CHANGE_GROUP_TITLE,!0,!1,!1),xi=yi(cs.CHANGE_GROUP_AVATAR,!0,!1,!1),Gi=yi(cs.PRIVATE_MESSAGE_PINNED,!0,!1,!1),qi=yi(cs.GROUP_MESSAGE_PINNED,!0,!1,!1),Vi=yi(cs.CHAT_COMMENT,!1,!1,!1),Ki=yi(ss.RECALL,!0,!1,!1);class Hi{options;connectionStatus=e.ConnectionStatus.DISCONNECTED;isInternalConnected=!1;watcher;messageLoader;static _loader;static init(e){return this._loader||(this._loader=new Hi(e)),this._loader}static get loader(){return this._loader}constructor(e){this.options=e,this.watcher={onConnecting:void 0,onConnected:void 0,onDisconnect:void 0,onSuspend:void 0,pullFinished:void 0,batchMessage:void 0,conversationState:void 0,onPush:void 0,onRecall:void 0,onReceiptReceived:void 0,onMessagePinnedChanged:void 0,onMessageReactionsChanged:void 0,onDialogFilterConfig:void 0},un.setServerInfo(this.getWebSocketUrl()),un.setCallback({status:this.connectionStatusListener.bind(this),message:this.messageListener.bind(this)}),this.registerMessage()}getWebSocketUrl(){const e=this.options?.serverInfo;return dt(e)?ut(t=e)&&/wss?:\/\//.test(t)?e:"ws://"+e:"wss://web.sugramapp.com:3443";var t}registerMessage(){Zo(ss.TEXT,mi),Zo(ss.IMAGE,vi),Zo(ss.GIF,bi),Zo(ss.AUDIO,Ci),Zo(ss.FILE,wi),Zo(ss.VIDEO,Oi),Zo(ss.RECALL,Ki),Zo(ss.LOCATION,Ii),Zo(ss.CHAT_RECORD,Si),Zo(ss.CONTACT,Ei),Zo(ss.GROUP_INVITATION,Ri),Zo(ss.REDPACKET,Ti),Zo(ss.TRANSFER,Ai),Zo(ss.LINK,_i),Zo(cs.GROUP_ARRIVAL_RECEIPT,ki),Zo(cs.GROUP_READ_RECEIPT,Mi),Zo(cs.PRIVATE_ARRIVAL_RECEIPT,Ni),Zo(cs.PRIVATE_READ_RECEIPT,Pi),Zo(cs.PRIVATE_OPEN_BURNAFTERREADING,Li),Zo(cs.PRIVATE_CLOSE_BURNAFTERREADING,Di),Zo(cs.GROUP_OPEN_BURNAFTERREADING,Ui),Zo(cs.GROUP_CLOSE_BURNAFTERREADING,ji),Zo(cs.MESSAGE_READ,Bi),Zo(cs.CHANGE_GROUP_TITLE,Fi),Zo(cs.CHANGE_GROUP_AVATAR,xi),Zo(cs.PRIVATE_MESSAGE_PINNED,Gi),Zo(cs.GROUP_MESSAGE_PINNED,qi),Zo(cs.CHAT_COMMENT,Vi)}async connect(){if(this.connectionStatus===e.ConnectionStatus.CONNECTED)return{code:e.ErrorCode.SUCCESS};if(this.connectionStatus===e.ConnectionStatus.CONNECTING)return{code:e.ErrorCode.BIZ_ERROR_CONNECTING};un.close();const t=await un.connect();return this.isInternalConnected=!0,{code:t}}reconnect(){return this.isInternalConnected?Promise.resolve({code:e.ErrorCode.CAN_NOT_RECONNECT}):this.connect()}disconnect(){return this.isInternalConnected=!1,un.close(),Promise.resolve()}async setUserLogged(){$i.setUserId(on.uid.toString()),ws.get().destroyed(),ws.create(this.options.appkey,on.uid.toString(),this.watcher.conversationState),Bs.create(this.options.appkey,on.uid.toString()),this.messageLoader?.stop(),this.messageLoader=new ui(this.watcher,this.options),zo.reset(),Wo.reset(),Yo.reset();const t=ti.create(this.options.appkey,on.uid.toString(),{legacyMigrationMode:this.options.legacyMigrationMode??"automatic"});await t.initDB();const r=await t.getMessageIdRange();if(r){const{oldest:e,newest:t}=r;Gs(e,t)}else Gs(1e4,1e4);this.getConnectionStatus()===e.ConnectionStatus.CONNECTED&&this.handleUserConnected()}async setUserLogout(){this.messageLoader?.stop(),await(ti.get()?.close());const e=(pi+=1,gi=di,gi);this.watcher.onDialogFilterConfig?.(e)}getConnectionStatus(){return this.connectionStatus}assignWatcher(e){ft(this.watcher).forEach(t=>{if(Object.prototype.hasOwnProperty.call(e,t)){const r=e[t];this.watcher[t]=at(r)?r:void 0}})}resetWatcher(){ft(this.watcher).forEach(e=>{this.watcher[e]=void 0})}async connectionStatusListener(t){switch(this.connectionStatus=t,t){case e.ConnectionStatus.BLOCKED:case e.ConnectionStatus.KICKED_OFFLINE_BY_OTHER_CLIENT:case e.ConnectionStatus.DISCONNECT_BY_SERVER:this.handleDisconnect();break;case e.ConnectionStatus.CONNECTING:this.handleConnecting();break;case e.ConnectionStatus.CONNECTED:this.handleConnected();break;case e.ConnectionStatus.DISCONNECTED:this.handleDisconnect()}}handleConnecting(){this.watcher.onConnecting?.()}handleConnected(){on.isActive&&(this.handleUserConnected(),(async()=>{const t=(new Date).getTime(),{code:r,data:n}=await bo();if(r===e.ErrorCode.SUCCESS){const{currentTimeMillis:e}=n;Vo=e.toNumber()-t}})()),this.watcher.onConnected?.(),Yi.cleanupOldLogs()}handleDisconnect(){this.watcher.onDisconnect?.(),this.messageLoader?.stop()}handleSuspend(){this.watcher.onSuspend?.()}handleUserConnected(){Yi.info("user connected -> ",on.uid.toString()),this.messageLoader||(this.messageLoader=new ui(this.watcher,this.options)),this.messageLoader?.start(),fi().then(e=>{this.watcher.onDialogFilterConfig?.(e)}),setTimeout(()=>{this.connectionStatus===e.ConnectionStatus.CONNECTED&&ws.get().syncConversationStatus()},2e3)}messageListener(e,t){if(e===At.NewMessagePush){const e=Dn.decode(t);this.messageLoader?.syncMsg(e.seqno)}else e===At.DialogChangedPush?ws.get().syncConversationStatus():this.watcher.onPush?.(e,t)}}class zi{static instance;messageQueue;config;flushTimer=null;userId=null;isFlushing=!1;constructor(e){this.config=e,this.messageQueue=new Et,this.startFlushTimer()}static getInstance(e){return zi.instance||(zi.instance=new zi(e)),zi.instance}trackEvent(e,t){const r={type:e,...this.collectAutomaticProperties(),content:t};this.messageQueue.enqueue(r),this.config.debugMode&&this.flush()}collectAutomaticProperties(){return{user_id:this.userId,os:"web",appVersion:Tt.appVersion,eventTime:Date.now()}}async flush(){if(!this.shouldFlush()||this.isFlushing)return;this.isFlushing=!0;let e=[];try{if(e=await this.messageQueue.dequeue(this.config.flushBulkSize),0===e.length)return;const t=await async function(e){const t=JSON.stringify(e),r=(new TextEncoder).encode(t);if("CompressionStream"in window){const e=new Response(r).body?.pipeThrough(new CompressionStream("gzip"));if(e){const t=await new Response(e).arrayBuffer();return btoa(String.fromCharCode(...new Uint8Array(t)))}}return btoa(t)}(e);await this.sendData(t)}catch(t){console.error("Failed to flush analytics data:",t),await this.messageQueue.requeueToEnd(e)}finally{this.isFlushing=!1}}shouldFlush(){return Hi.loader?.getConnectionStatus()==e.ConnectionStatus.CONNECTED}async sendData(t){try{const r=await Fo(t);if(r.code!==e.ErrorCode.SUCCESS)throw new Error(`Socket error! status: ${r.code}`)}catch(e){throw e}}startFlushTimer(){this.config.flushInterval>0&&(this.flushTimer=setInterval(()=>{this.flush()},this.config.flushInterval))}setUserId(e){this.userId=e}destroy(){this.flushTimer&&clearInterval(this.flushTimer),this.messageQueue.clear()}}var $i=zi.getInstance({flushInterval:6e4,flushBulkSize:100,debugMode:!1});const Wi=wt.get("ACIM-slf")===(new Date).getDate();const Ji={[e.LogLevel.DEBUG]:console.debug,[e.LogLevel.INFO]:console.info,[e.LogLevel.WARN]:console.warn,[e.LogLevel.ERROR]:console.error,[e.LogLevel.FATAL]:console.log,[e.LogLevel.NONE]:null},Zi={[e.LogLevel.DEBUG]:console.debug,[e.LogLevel.INFO]:console.info,[e.LogLevel.WARN]:console.warn,[e.LogLevel.ERROR]:console.error,[e.LogLevel.FATAL]:console.log,[e.LogLevel.NONE]:null},Xi=e=>ut(e)||ot(e)||it(e)||st(e)?e:e instanceof Error?JSON.stringify({name:e.name,message:e.message,stack:e.stack}):JSON.stringify(e);var Yi=new class{debug;info;warn;error;fatal;outLevel=e.LogLevel.WARN;tag;logStdout;constructor(t){this.tag=t,this.debug=this.log.bind(this,e.LogLevel.DEBUG),this.info=this.log.bind(this,e.LogLevel.INFO),this.warn=this.log.bind(this,e.LogLevel.WARN),this.error=this.log.bind(this,e.LogLevel.ERROR),this.fatal=this.log.bind(this,e.LogLevel.FATAL)}async addLog(t,r){const n={timestamp:(new Date).toISOString(),level:t,content:r};try{t===e.LogLevel.ERROR&&$i.trackEvent("error_log",{timestamp:n.timestamp,content:n.content})}catch(e){console.error("Failed to add log:",e)}}getCallerLocation(){try{const e=(new Error).stack;if(!e)return null;const t=e.split("\n");for(let e=4;e<t.length;e++){const r=t[e].trim();if(r&&!r.includes("logger.ts")&&!r.includes("at Logger.")){const e=r.match(/at\s+(?:.*?\s+)?\(?(.+?):(\d+):(\d+)\)?/)||r.match(/at\s+(.+?):(\d+):(\d+)/);if(e){const t=e[1],r=e[2];return`${t.split("/").pop()||t.split("\\").pop()||t}:${r}`}}}}catch(e){}return null}defaultStdout(e,t,...r){const n=Ji[e];if(nt(n)){const o=this.getCallerLocation(),s=Zi[e];s?o?s(`${t} @ ${o}:`,...r):s(`${t}:`,...r):o?n(`${t} @ ${o}:`,...r):n(`${t}:`,...r)}}reqInfo(...e){this.info(...e)}setLogLevel(e){this.outLevel=e}setLogStdout(e){this.logStdout=e}log(t,...r){if(Wi){const n=`${(new Date).toISOString()}[${this.tag}][${e.LogLevel[t]}]`;return this.defaultStdout(t,n,...r),void this.addLog(t,r.map(Xi).join(" "))}if(t<this.outLevel)return;const n=`${(new Date).toISOString()}[${this.tag}][${e.LogLevel[t]}]`,o=`${n} - ${r.map(Xi).join(" ")}`;if(this.logStdout)return this.logStdout(t,o),void this.addLog(t,r.map(Xi).join(" "));this.defaultStdout(t,n,...r),this.addLog(t,r.map(Xi).join(" "))}async exportLogs(){return[]}async clearLogs(){}async cleanupOldLogs(){}}("ACLog");const Qi=dt,ea=ot,ta=st,ra=ct,na=lt,oa=t=>ot(t)&&Object.prototype.hasOwnProperty.call(e.ConversationType,t),sa=t=>{if(!ct(t))return!1;const{conversationType:r,targetId:n,channelId:o}=t;return ot(r)&&Object.prototype.hasOwnProperty.call(e.ConversationType,r)&&(ot(n)||dt(n)||Lr.isLong(n)&&!n.isZero())&&(!nt(o)||ut(o)&&!/_/g.test(o)&&o.length<=20)};class ia extends Error{constructor(e){super(e),this.name="ACAssertError"}}const aa=(e,t,r,n=!1)=>{if(!ca(e,t,r,n))throw new ia(`'${e}' is invalid: ${JSON.stringify(t)}`)},ca=(e,t,r,n=!1)=>{const o=n&&!r(t)||!n&&nt(t)&&!r(t);return o&&Yi.error(`'${e}' is invalid: ${JSON.stringify(t)}`),!o};var la,ua,da,ga,pa={exports:{}},fa={exports:{}},ha={exports:{}};var ya,ma={};var va,ba,Ca,wa,Oa,Ia,Sa,Ea,Ra,Ta,Aa,_a,ka,Ma,Na,Pa,La,Da,Ua,ja={};function Ba(){return va||(va=1,function(e){var t=e,r=Ic(),n=["double","float","int32","uint32","sint32","fixed32","sfixed32","int64","uint64","sint64","fixed64","sfixed64","bool","string","bytes"];function o(e,t){var r=0,o={};for(t|=0;r<e.length;)o[n[r+t]]=e[r++];return o}t.basic=o([1,5,0,0,0,5,5,0,0,0,1,1,0,2,2]),t.defaults=o([0,0,0,0,0,0,0,0,0,0,0,0,!1,"",r.emptyArray,null]),t.long=o([0,0,0,1,1],7),t.mapKey=o([0,0,0,5,5,0,0,0,1,1,0,2],2),t.packed=o([1,5,0,0,0,5,5,0,0,0,1,1,0])}(ja)),ja}function Fa(){if(Ca)return ba;Ca=1,ba=i;var e=Sc();((i.prototype=Object.create(e.prototype)).constructor=i).className="Field";var t,r=Ec(),n=Ba(),o=Ic(),s=/^required|optional|repeated$/;function i(t,r,i,a,c,l,u){if(o.isObject(a)?(u=c,l=a,a=c=void 0):o.isObject(c)&&(u=l,l=c,c=void 0),e.call(this,t,l),!o.isInteger(r)||r<0)throw TypeError("id must be a non-negative integer");if(!o.isString(i))throw TypeError("type must be a string");if(void 0!==a&&!s.test(a=a.toString().toLowerCase()))throw TypeError("rule must be a string rule");if(void 0!==c&&!o.isString(c))throw TypeError("extend must be a string");"proto3_optional"===a&&(a="optional"),this.rule=a&&"optional"!==a?a:void 0,this.type=i,this.id=r,this.extend=c||void 0,this.required="required"===a,this.optional=!this.required,this.repeated="repeated"===a,this.map=!1,this.message=null,this.partOf=null,this.typeDefault=null,this.defaultValue=null,this.long=!!o.Long&&void 0!==n.long[i],this.bytes="bytes"===i,this.resolvedType=null,this.extensionField=null,this.declaringField=null,this._packed=null,this.comment=u}return i.fromJSON=function(e,t){return new i(e,t.id,t.type,t.rule,t.extend,t.options,t.comment)},Object.defineProperty(i.prototype,"packed",{get:function(){return null===this._packed&&(this._packed=!1!==this.getOption("packed")),this._packed}}),i.prototype.setOption=function(t,r,n){return"packed"===t&&(this._packed=null),e.prototype.setOption.call(this,t,r,n)},i.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return o.toObject(["rule","optional"!==this.rule&&this.rule||void 0,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},i.prototype.resolve=function(){if(this.resolved)return this;if(void 0===(this.typeDefault=n.defaults[this.type])?(this.resolvedType=(this.declaringField?this.declaringField.parent:this.parent).lookupTypeOrEnum(this.type),this.resolvedType instanceof t?this.typeDefault=null:this.typeDefault=this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]):this.options&&this.options.proto3_optional&&(this.typeDefault=null),this.options&&null!=this.options.default&&(this.typeDefault=this.options.default,this.resolvedType instanceof r&&"string"==typeof this.typeDefault&&(this.typeDefault=this.resolvedType.values[this.typeDefault])),this.options&&(!0!==this.options.packed&&(void 0===this.options.packed||!this.resolvedType||this.resolvedType instanceof r)||delete this.options.packed,Object.keys(this.options).length||(this.options=void 0)),this.long)this.typeDefault=o.Long.fromNumber(this.typeDefault,"u"===this.type.charAt(0)),Object.freeze&&Object.freeze(this.typeDefault);else if(this.bytes&&"string"==typeof this.typeDefault){var s;o.base64.test(this.typeDefault)?o.base64.decode(this.typeDefault,s=o.newBuffer(o.base64.length(this.typeDefault)),0):o.utf8.write(this.typeDefault,s=o.newBuffer(o.utf8.length(this.typeDefault)),0),this.typeDefault=s}return this.map?this.defaultValue=o.emptyObject:this.repeated?this.defaultValue=o.emptyArray:this.defaultValue=this.typeDefault,this.parent instanceof t&&(this.parent.ctor.prototype[this.name]=this.defaultValue),e.prototype.resolve.call(this)},i.d=function(e,t,r,n){return"function"==typeof t?t=o.decorateType(t).name:t&&"object"==typeof t&&(t=o.decorateEnum(t).name),function(s,a){o.decorateType(s.constructor).add(new i(a,e,t,r,{default:n}))}},i._configure=function(e){t=e},ba}function xa(){if(Oa)return wa;Oa=1,wa=n;var e=Sc();((n.prototype=Object.create(e.prototype)).constructor=n).className="OneOf";var t=Fa(),r=Ic();function n(t,r,n,o){if(Array.isArray(r)||(n=r,r=void 0),e.call(this,t,n),void 0!==r&&!Array.isArray(r))throw TypeError("fieldNames must be an Array");this.oneof=r||[],this.fieldsArray=[],this.comment=o}function o(e){if(e.parent)for(var t=0;t<e.fieldsArray.length;++t)e.fieldsArray[t].parent||e.parent.add(e.fieldsArray[t])}return n.fromJSON=function(e,t){return new n(e,t.oneof,t.options,t.comment)},n.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return r.toObject(["options",this.options,"oneof",this.oneof,"comment",t?this.comment:void 0])},n.prototype.add=function(e){if(!(e instanceof t))throw TypeError("field must be a Field");return e.parent&&e.parent!==this.parent&&e.parent.remove(e),this.oneof.push(e.name),this.fieldsArray.push(e),e.partOf=this,o(this),this},n.prototype.remove=function(e){if(!(e instanceof t))throw TypeError("field must be a Field");var r=this.fieldsArray.indexOf(e);if(r<0)throw Error(e+" is not a member of "+this);return this.fieldsArray.splice(r,1),(r=this.oneof.indexOf(e.name))>-1&&this.oneof.splice(r,1),e.partOf=null,this},n.prototype.onAdd=function(t){e.prototype.onAdd.call(this,t);for(var r=0;r<this.oneof.length;++r){var n=t.get(this.oneof[r]);n&&!n.partOf&&(n.partOf=this,this.fieldsArray.push(n))}o(this)},n.prototype.onRemove=function(t){for(var r,n=0;n<this.fieldsArray.length;++n)(r=this.fieldsArray[n]).parent&&r.parent.remove(r);e.prototype.onRemove.call(this,t)},n.d=function(){for(var e=new Array(arguments.length),t=0;t<arguments.length;)e[t]=arguments[t++];return function(t,o){r.decorateType(t.constructor).add(new n(o,e)),Object.defineProperty(t,o,{get:r.oneOfGetter(e),set:r.oneOfSetter(e)})}},wa}function Ga(){if(Sa)return Ia;Sa=1,Ia=c;var e=Sc();((c.prototype=Object.create(e.prototype)).constructor=c).className="Namespace";var t,r,n,o=Fa(),s=Ic(),i=xa();function a(e,t){if(e&&e.length){for(var r={},n=0;n<e.length;++n)r[e[n].name]=e[n].toJSON(t);return r}}function c(t,r){e.call(this,t,r),this.nested=void 0,this._nestedArray=null}function l(e){return e._nestedArray=null,e}return c.fromJSON=function(e,t){return new c(e,t.options).addJSON(t.nested)},c.arrayToJSON=a,c.isReservedId=function(e,t){if(e)for(var r=0;r<e.length;++r)if("string"!=typeof e[r]&&e[r][0]<=t&&e[r][1]>t)return!0;return!1},c.isReservedName=function(e,t){if(e)for(var r=0;r<e.length;++r)if(e[r]===t)return!0;return!1},Object.defineProperty(c.prototype,"nestedArray",{get:function(){return this._nestedArray||(this._nestedArray=s.toArray(this.nested))}}),c.prototype.toJSON=function(e){return s.toObject(["options",this.options,"nested",a(this.nestedArray,e)])},c.prototype.addJSON=function(e){if(e)for(var s,i=Object.keys(e),a=0;a<i.length;++a)s=e[i[a]],this.add((void 0!==s.fields?t.fromJSON:void 0!==s.values?n.fromJSON:void 0!==s.methods?r.fromJSON:void 0!==s.id?o.fromJSON:c.fromJSON)(i[a],s));return this},c.prototype.get=function(e){return this.nested&&this.nested[e]||null},c.prototype.getEnum=function(e){if(this.nested&&this.nested[e]instanceof n)return this.nested[e].values;throw Error("no such enum: "+e)},c.prototype.add=function(e){if(!(e instanceof o&&void 0!==e.extend||e instanceof t||e instanceof i||e instanceof n||e instanceof r||e instanceof c))throw TypeError("object must be a valid nested object");if(this.nested){var s=this.get(e.name);if(s){if(!(s instanceof c&&e instanceof c)||s instanceof t||s instanceof r)throw Error("duplicate name '"+e.name+"' in "+this);for(var a=s.nestedArray,u=0;u<a.length;++u)e.add(a[u]);this.remove(s),this.nested||(this.nested={}),e.setOptions(s.options,!0)}}else this.nested={};return this.nested[e.name]=e,e.onAdd(this),l(this)},c.prototype.remove=function(t){if(!(t instanceof e))throw TypeError("object must be a ReflectionObject");if(t.parent!==this)throw Error(t+" is not a member of "+this);return delete this.nested[t.name],Object.keys(this.nested).length||(this.nested=void 0),t.onRemove(this),l(this)},c.prototype.define=function(e,t){if(s.isString(e))e=e.split(".");else if(!Array.isArray(e))throw TypeError("illegal path");if(e&&e.length&&""===e[0])throw Error("path must be relative");for(var r=this;e.length>0;){var n=e.shift();if(r.nested&&r.nested[n]){if(!((r=r.nested[n])instanceof c))throw Error("path conflicts with non-namespace objects")}else r.add(r=new c(n))}return t&&r.addJSON(t),r},c.prototype.resolveAll=function(){for(var e=this.nestedArray,t=0;t<e.length;)e[t]instanceof c?e[t++].resolveAll():e[t++].resolve();return this.resolve()},c.prototype.lookup=function(e,t,r){if("boolean"==typeof t?(r=t,t=void 0):t&&!Array.isArray(t)&&(t=[t]),s.isString(e)&&e.length){if("."===e)return this.root;e=e.split(".")}else if(!e.length)return this;if(""===e[0])return this.root.lookup(e.slice(1),t);var n=this.get(e[0]);if(n){if(1===e.length){if(!t||t.indexOf(n.constructor)>-1)return n}else if(n instanceof c&&(n=n.lookup(e.slice(1),t,!0)))return n}else for(var o=0;o<this.nestedArray.length;++o)if(this._nestedArray[o]instanceof c&&(n=this._nestedArray[o].lookup(e,t,!0)))return n;return null===this.parent||r?null:this.parent.lookup(e,t)},c.prototype.lookupType=function(e){var r=this.lookup(e,[t]);if(!r)throw Error("no such type: "+e);return r},c.prototype.lookupEnum=function(e){var t=this.lookup(e,[n]);if(!t)throw Error("no such Enum '"+e+"' in "+this);return t},c.prototype.lookupTypeOrEnum=function(e){var r=this.lookup(e,[t,n]);if(!r)throw Error("no such Type or Enum '"+e+"' in "+this);return r},c.prototype.lookupService=function(e){var t=this.lookup(e,[r]);if(!t)throw Error("no such Service '"+e+"' in "+this);return t},c._configure=function(e,o,s){t=e,r=o,n=s},Ia}function qa(){if(Ra)return Ea;Ra=1,Ea=n;var e=Fa();((n.prototype=Object.create(e.prototype)).constructor=n).className="MapField";var t=Ba(),r=Ic();function n(t,n,o,s,i,a){if(e.call(this,t,n,s,void 0,void 0,i,a),!r.isString(o))throw TypeError("keyType must be a string");this.keyType=o,this.resolvedKeyType=null,this.map=!0}return n.fromJSON=function(e,t){return new n(e,t.id,t.keyType,t.type,t.options,t.comment)},n.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return r.toObject(["keyType",this.keyType,"type",this.type,"id",this.id,"extend",this.extend,"options",this.options,"comment",t?this.comment:void 0])},n.prototype.resolve=function(){if(this.resolved)return this;if(void 0===t.mapKey[this.keyType])throw Error("invalid key type: "+this.keyType);return e.prototype.resolve.call(this)},n.d=function(e,t,o){return"function"==typeof o?o=r.decorateType(o).name:o&&"object"==typeof o&&(o=r.decorateEnum(o).name),function(s,i){r.decorateType(s.constructor).add(new n(i,e,t,o))}},Ea}function Va(){if(Aa)return Ta;Aa=1,Ta=r;var e=Sc();((r.prototype=Object.create(e.prototype)).constructor=r).className="Method";var t=Ic();function r(r,n,o,s,i,a,c,l,u){if(t.isObject(i)?(c=i,i=a=void 0):t.isObject(a)&&(c=a,a=void 0),void 0!==n&&!t.isString(n))throw TypeError("type must be a string");if(!t.isString(o))throw TypeError("requestType must be a string");if(!t.isString(s))throw TypeError("responseType must be a string");e.call(this,r,c),this.type=n||"rpc",this.requestType=o,this.requestStream=!!i||void 0,this.responseType=s,this.responseStream=!!a||void 0,this.resolvedRequestType=null,this.resolvedResponseType=null,this.comment=l,this.parsedOptions=u}return r.fromJSON=function(e,t){return new r(e,t.type,t.requestType,t.responseType,t.requestStream,t.responseStream,t.options,t.comment,t.parsedOptions)},r.prototype.toJSON=function(e){var r=!!e&&Boolean(e.keepComments);return t.toObject(["type","rpc"!==this.type&&this.type||void 0,"requestType",this.requestType,"requestStream",this.requestStream,"responseType",this.responseType,"responseStream",this.responseStream,"options",this.options,"comment",r?this.comment:void 0,"parsedOptions",this.parsedOptions])},r.prototype.resolve=function(){return this.resolved?this:(this.resolvedRequestType=this.parent.lookupType(this.requestType),this.resolvedResponseType=this.parent.lookupType(this.responseType),e.prototype.resolve.call(this))},Ta}function Ka(){if(ka)return _a;ka=1,_a=o;var e=Ga();((o.prototype=Object.create(e.prototype)).constructor=o).className="Service";var t=Va(),r=Ic(),n=yr();function o(t,r){e.call(this,t,r),this.methods={},this._methodsArray=null}function s(e){return e._methodsArray=null,e}return o.fromJSON=function(e,r){var n=new o(e,r.options);if(r.methods)for(var s=Object.keys(r.methods),i=0;i<s.length;++i)n.add(t.fromJSON(s[i],r.methods[s[i]]));return r.nested&&n.addJSON(r.nested),n.comment=r.comment,n},o.prototype.toJSON=function(t){var n=e.prototype.toJSON.call(this,t),o=!!t&&Boolean(t.keepComments);return r.toObject(["options",n&&n.options||void 0,"methods",e.arrayToJSON(this.methodsArray,t)||{},"nested",n&&n.nested||void 0,"comment",o?this.comment:void 0])},Object.defineProperty(o.prototype,"methodsArray",{get:function(){return this._methodsArray||(this._methodsArray=r.toArray(this.methods))}}),o.prototype.get=function(t){return this.methods[t]||e.prototype.get.call(this,t)},o.prototype.resolveAll=function(){for(var t=this.methodsArray,r=0;r<t.length;++r)t[r].resolve();return e.prototype.resolve.call(this)},o.prototype.add=function(r){if(this.get(r.name))throw Error("duplicate name '"+r.name+"' in "+this);return r instanceof t?(this.methods[r.name]=r,r.parent=this,s(this)):e.prototype.add.call(this,r)},o.prototype.remove=function(r){if(r instanceof t){if(this.methods[r.name]!==r)throw Error(r+" is not a member of "+this);return delete this.methods[r.name],r.parent=null,s(this)}return e.prototype.remove.call(this,r)},o.prototype.create=function(e,t,o){for(var s,i=new n.Service(e,t,o),a=0;a<this.methodsArray.length;++a){var c=r.lcFirst((s=this._methodsArray[a]).resolve().name).replace(/[^$\w_]/g,"");i[c]=r.codegen(["r","c"],r.isReserved(c)?c+"_":c)("return this.rpcCall(m,q,s,r,c)")({m:s,q:s.resolvedRequestType.ctor,s:s.resolvedResponseType.ctor})}return i},_a}function Ha(){if(Na)return Ma;Na=1,Ma=t;var e=or();function t(e){if(e)for(var t=Object.keys(e),r=0;r<t.length;++r)this[t[r]]=e[t[r]]}return t.create=function(e){return this.$type.create(e)},t.encode=function(e,t){return this.$type.encode(e,t)},t.encodeDelimited=function(e,t){return this.$type.encodeDelimited(e,t)},t.decode=function(e){return this.$type.decode(e)},t.decodeDelimited=function(e){return this.$type.decodeDelimited(e)},t.verify=function(e){return this.$type.verify(e)},t.fromObject=function(e){return this.$type.fromObject(e)},t.toObject=function(e,t){return this.$type.toObject(e,t)},t.prototype.toJSON=function(){return this.$type.toObject(this,e.toJSONOptions)},Ma}function za(){if(La)return Pa;La=1,Pa=function(o){var s=r.codegen(["r","l"],o.name+"$decode")("if(!(r instanceof Reader))")("r=Reader.create(r)")("var c=l===undefined?r.len:r.pos+l,m=new this.ctor"+(o.fieldsArray.filter(function(e){return e.map}).length?",k,value":""))("while(r.pos<c){")("var t=r.uint32()");o.group&&s("if((t&7)===4)")("break");s("switch(t>>>3){");for(var i=0;i<o.fieldsArray.length;++i){var a=o._fieldsArray[i].resolve(),c=a.resolvedType instanceof e?"int32":a.type,l="m"+r.safeProp(a.name);s("case %i: {",a.id),a.map?(s("if(%s===util.emptyObject)",l)("%s={}",l)("var c2 = r.uint32()+r.pos"),void 0!==t.defaults[a.keyType]?s("k=%j",t.defaults[a.keyType]):s("k=null"),void 0!==t.defaults[c]?s("value=%j",t.defaults[c]):s("value=null"),s("while(r.pos<c2){")("var tag2=r.uint32()")("switch(tag2>>>3){")("case 1: k=r.%s(); break",a.keyType)("case 2:"),void 0===t.basic[c]?s("value=types[%i].decode(r,r.uint32())",i):s("value=r.%s()",c),s("break")("default:")("r.skipType(tag2&7)")("break")("}")("}"),void 0!==t.long[a.keyType]?s('%s[typeof k==="object"?util.longToHash(k):k]=value',l):s("%s[k]=value",l)):a.repeated?(s("if(!(%s&&%s.length))",l,l)("%s=[]",l),void 0!==t.packed[c]&&s("if((t&7)===2){")("var c2=r.uint32()+r.pos")("while(r.pos<c2)")("%s.push(r.%s())",l,c)("}else"),void 0===t.basic[c]?s(a.resolvedType.group?"%s.push(types[%i].decode(r))":"%s.push(types[%i].decode(r,r.uint32()))",l,i):s("%s.push(r.%s())",l,c)):void 0===t.basic[c]?s(a.resolvedType.group?"%s=types[%i].decode(r)":"%s=types[%i].decode(r,r.uint32())",l,i):s("%s=r.%s()",l,c),s("break")("}")}for(s("default:")("r.skipType(t&7)")("break")("}")("}"),i=0;i<o._fieldsArray.length;++i){var u=o._fieldsArray[i];u.required&&s("if(!m.hasOwnProperty(%j))",u.name)("throw util.ProtocolError(%j,{instance:m})",n(u))}return s("return m")};var e=Ec(),t=Ba(),r=Ic();function n(e){return"missing required '"+e.name+"'"}return Pa}function $a(){if(Ua)return Da;Ua=1,Da=function(e){var s=t.codegen(["m"],e.name+"$verify")('if(typeof m!=="object"||m===null)')("return%j","object expected"),i=e.oneofsArray,a={};i.length&&s("var p={}");for(var c=0;c<e.fieldsArray.length;++c){var l=e._fieldsArray[c].resolve(),u="m"+t.safeProp(l.name);if(l.optional&&s("if(%s!=null&&m.hasOwnProperty(%j)){",u,l.name),l.map)s("if(!util.isObject(%s))",u)("return%j",r(l,"object"))("var k=Object.keys(%s)",u)("for(var i=0;i<k.length;++i){"),o(s,l,"k[i]"),n(s,l,c,u+"[k[i]]")("}");else if(l.repeated)s("if(!Array.isArray(%s))",u)("return%j",r(l,"array"))("for(var i=0;i<%s.length;++i){",u),n(s,l,c,u+"[i]")("}");else{if(l.partOf){var d=t.safeProp(l.partOf.name);1===a[l.partOf.name]&&s("if(p%s===1)",d)("return%j",l.partOf.name+": multiple values"),a[l.partOf.name]=1,s("p%s=1",d)}n(s,l,c,u)}l.optional&&s("}")}return s("return null")};var e=Ec(),t=Ic();function r(e,t){return e.name+": "+t+(e.repeated&&"array"!==t?"[]":e.map&&"object"!==t?"{k:"+e.keyType+"}":"")+" expected"}function n(t,n,o,s){if(n.resolvedType)if(n.resolvedType instanceof e){t("switch(%s){",s)("default:")("return%j",r(n,"enum value"));for(var i=Object.keys(n.resolvedType.values),a=0;a<i.length;++a)t("case %i:",n.resolvedType.values[i[a]]);t("break")("}")}else t("{")("var e=types[%i].verify(%s);",o,s)("if(e)")("return%j+e",n.name+".")("}");else switch(n.type){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":t("if(!util.isInteger(%s))",s)("return%j",r(n,"integer"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":t("if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))",s,s,s,s)("return%j",r(n,"integer|Long"));break;case"float":case"double":t('if(typeof %s!=="number")',s)("return%j",r(n,"number"));break;case"bool":t('if(typeof %s!=="boolean")',s)("return%j",r(n,"boolean"));break;case"string":t("if(!util.isString(%s))",s)("return%j",r(n,"string"));break;case"bytes":t('if(!(%s&&typeof %s.length==="number"||util.isString(%s)))',s,s,s)("return%j",r(n,"buffer"))}return t}function o(e,t,n){switch(t.keyType){case"int32":case"uint32":case"sint32":case"fixed32":case"sfixed32":e("if(!util.key32Re.test(%s))",n)("return%j",r(t,"integer key"));break;case"int64":case"uint64":case"sint64":case"fixed64":case"sfixed64":e("if(!util.key64Re.test(%s))",n)("return%j",r(t,"integer|Long key"));break;case"bool":e("if(!util.key2Re.test(%s))",n)("return%j",r(t,"boolean key"))}return e}return Da}var Wa,Ja={};function Za(){return Wa||(Wa=1,function(e){var t=e,r=Ec(),n=Ic();function o(e,t,n,o){var s=!1;if(t.resolvedType)if(t.resolvedType instanceof r){e("switch(d%s){",o);for(var i=t.resolvedType.values,a=Object.keys(i),c=0;c<a.length;++c)i[a[c]]!==t.typeDefault||s||(e("default:")('if(typeof(d%s)==="number"){m%s=d%s;break}',o,o,o),t.repeated||e("break"),s=!0),e("case%j:",a[c])("case %i:",i[a[c]])("m%s=%j",o,i[a[c]])("break");e("}")}else e('if(typeof d%s!=="object")',o)("throw TypeError(%j)",t.fullName+": object expected")("m%s=types[%i].fromObject(d%s)",o,n,o);else{var l=!1;switch(t.type){case"double":case"float":e("m%s=Number(d%s)",o,o);break;case"uint32":case"fixed32":e("m%s=d%s>>>0",o,o);break;case"int32":case"sint32":case"sfixed32":e("m%s=d%s|0",o,o);break;case"uint64":l=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e("if(util.Long)")("(m%s=util.Long.fromValue(d%s)).unsigned=%j",o,o,l)('else if(typeof d%s==="string")',o)("m%s=parseInt(d%s,10)",o,o)('else if(typeof d%s==="number")',o)("m%s=d%s",o,o)('else if(typeof d%s==="object")',o)("m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)",o,o,o,l?"true":"");break;case"bytes":e('if(typeof d%s==="string")',o)("util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)",o,o,o)("else if(d%s.length >= 0)",o)("m%s=d%s",o,o);break;case"string":e("m%s=String(d%s)",o,o);break;case"bool":e("m%s=Boolean(d%s)",o,o)}}return e}function s(e,t,n,o){if(t.resolvedType)t.resolvedType instanceof r?e("d%s=o.enums===String?(types[%i].values[m%s]===undefined?m%s:types[%i].values[m%s]):m%s",o,n,o,o,n,o,o):e("d%s=types[%i].toObject(m%s,o)",o,n,o);else{var s=!1;switch(t.type){case"double":case"float":e("d%s=o.json&&!isFinite(m%s)?String(m%s):m%s",o,o,o,o);break;case"uint64":s=!0;case"int64":case"sint64":case"fixed64":case"sfixed64":e('if(typeof m%s==="number")',o)("d%s=o.longs===String?String(m%s):m%s",o,o,o)("else")("d%s=o.longs===String?util.Long.prototype.toString.call(m%s):o.longs===Number?new util.LongBits(m%s.low>>>0,m%s.high>>>0).toNumber(%s):m%s",o,o,o,o,s?"true":"",o);break;case"bytes":e("d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s",o,o,o,o,o);break;default:e("d%s=m%s",o,o)}}return e}t.fromObject=function(e){var t=e.fieldsArray,s=n.codegen(["d"],e.name+"$fromObject")("if(d instanceof this.ctor)")("return d");if(!t.length)return s("return new this.ctor");s("var m=new this.ctor");for(var i=0;i<t.length;++i){var a=t[i].resolve(),c=n.safeProp(a.name);a.map?(s("if(d%s){",c)('if(typeof d%s!=="object")',c)("throw TypeError(%j)",a.fullName+": object expected")("m%s={}",c)("for(var ks=Object.keys(d%s),i=0;i<ks.length;++i){",c),o(s,a,i,c+"[ks[i]]")("}")("}")):a.repeated?(s("if(d%s){",c)("if(!Array.isArray(d%s))",c)("throw TypeError(%j)",a.fullName+": array expected")("m%s=[]",c)("for(var i=0;i<d%s.length;++i){",c),o(s,a,i,c+"[i]")("}")("}")):(a.resolvedType instanceof r||s("if(d%s!=null){",c),o(s,a,i,c),a.resolvedType instanceof r||s("}"))}return s("return m")},t.toObject=function(e){var t=e.fieldsArray.slice().sort(n.compareFieldsById);if(!t.length)return n.codegen()("return {}");for(var o=n.codegen(["m","o"],e.name+"$toObject")("if(!o)")("o={}")("var d={}"),i=[],a=[],c=[],l=0;l<t.length;++l)t[l].partOf||(t[l].resolve().repeated?i:t[l].map?a:c).push(t[l]);if(i.length){for(o("if(o.arrays||o.defaults){"),l=0;l<i.length;++l)o("d%s=[]",n.safeProp(i[l].name));o("}")}if(a.length){for(o("if(o.objects||o.defaults){"),l=0;l<a.length;++l)o("d%s={}",n.safeProp(a[l].name));o("}")}if(c.length){for(o("if(o.defaults){"),l=0;l<c.length;++l){var u=c[l],d=n.safeProp(u.name);if(u.resolvedType instanceof r)o("d%s=o.enums===String?%j:%j",d,u.resolvedType.valuesById[u.typeDefault],u.typeDefault);else if(u.long)o("if(util.Long){")("var n=new util.Long(%i,%i,%j)",u.typeDefault.low,u.typeDefault.high,u.typeDefault.unsigned)("d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n",d)("}else")("d%s=o.longs===String?%j:%i",d,u.typeDefault.toString(),u.typeDefault.toNumber());else if(u.bytes){var g="["+Array.prototype.slice.call(u.typeDefault).join(",")+"]";o("if(o.bytes===String)d%s=%j",d,String.fromCharCode.apply(String,u.typeDefault))("else{")("d%s=%s",d,g)("if(o.bytes!==Array)d%s=util.newBuffer(d%s)",d,d)("}")}else o("d%s=%j",d,u.typeDefault)}o("}")}var p=!1;for(l=0;l<t.length;++l){u=t[l];var f=e._fieldsArray.indexOf(u);d=n.safeProp(u.name);u.map?(p||(p=!0,o("var ks2")),o("if(m%s&&(ks2=Object.keys(m%s)).length){",d,d)("d%s={}",d)("for(var j=0;j<ks2.length;++j){"),s(o,u,f,d+"[ks2[j]]")("}")):u.repeated?(o("if(m%s&&m%s.length){",d,d)("d%s=[]",d)("for(var j=0;j<m%s.length;++j){",d),s(o,u,f,d+"[j]")("}")):(o("if(m%s!=null&&m.hasOwnProperty(%j)){",d,u.name),s(o,u,f,d),u.partOf&&o("if(o.oneofs)")("d%s=%j",n.safeProp(u.partOf.name),u.name)),o("}")}return o("return d")}}(Ja)),Ja}var Xa,Ya,Qa,ec,tc,rc,nc,oc,sc,ic,ac,cc,lc,uc,dc,gc,pc,fc,hc,yc,mc,vc,bc={};function Cc(){return Xa||(Xa=1,function(e){var t=e,r=Ha();t[".google.protobuf.Any"]={fromObject:function(e){if(e&&e["@type"]){var t=e["@type"].substring(e["@type"].lastIndexOf("/")+1),r=this.lookup(t);if(r){var n="."===e["@type"].charAt(0)?e["@type"].slice(1):e["@type"];return-1===n.indexOf("/")&&(n="/"+n),this.create({type_url:n,value:r.encode(r.fromObject(e)).finish()})}}return this.fromObject(e)},toObject:function(e,t){var n="",o="";if(t&&t.json&&e.type_url&&e.value){o=e.type_url.substring(e.type_url.lastIndexOf("/")+1),n=e.type_url.substring(0,e.type_url.lastIndexOf("/")+1);var s=this.lookup(o);s&&(e=s.decode(e.value))}if(!(e instanceof this.ctor)&&e instanceof r){var i=e.$type.toObject(e,t);return""===n&&(n="type.googleapis.com/"),o=n+("."===e.$type.fullName[0]?e.$type.fullName.slice(1):e.$type.fullName),i["@type"]=o,i}return this.toObject(e,t)}}}(bc)),bc}function wc(){if(Qa)return Ya;Qa=1,Ya=h;var e=Ga();((h.prototype=Object.create(e.prototype)).constructor=h).className="Type";var t=Ec(),r=xa(),n=Fa(),o=qa(),s=Ka(),i=Ha(),a=ir(),c=sr(),l=Ic(),u=Rc(),d=za(),g=$a(),p=Za(),f=Cc();function h(t,r){e.call(this,t,r),this.fields={},this.oneofs=void 0,this.extensions=void 0,this.reserved=void 0,this.group=void 0,this._fieldsById=null,this._fieldsArray=null,this._oneofsArray=null,this._ctor=null}function y(e){return e._fieldsById=e._fieldsArray=e._oneofsArray=null,delete e.encode,delete e.decode,delete e.verify,e}return Object.defineProperties(h.prototype,{fieldsById:{get:function(){if(this._fieldsById)return this._fieldsById;this._fieldsById={};for(var e=Object.keys(this.fields),t=0;t<e.length;++t){var r=this.fields[e[t]],n=r.id;if(this._fieldsById[n])throw Error("duplicate id "+n+" in "+this);this._fieldsById[n]=r}return this._fieldsById}},fieldsArray:{get:function(){return this._fieldsArray||(this._fieldsArray=l.toArray(this.fields))}},oneofsArray:{get:function(){return this._oneofsArray||(this._oneofsArray=l.toArray(this.oneofs))}},ctor:{get:function(){return this._ctor||(this.ctor=h.generateConstructor(this)())},set:function(e){var t=e.prototype;t instanceof i||((e.prototype=new i).constructor=e,l.merge(e.prototype,t)),e.$type=e.prototype.$type=this,l.merge(e,i,!0),this._ctor=e;for(var r=0;r<this.fieldsArray.length;++r)this._fieldsArray[r].resolve();var n={};for(r=0;r<this.oneofsArray.length;++r)n[this._oneofsArray[r].resolve().name]={get:l.oneOfGetter(this._oneofsArray[r].oneof),set:l.oneOfSetter(this._oneofsArray[r].oneof)};r&&Object.defineProperties(e.prototype,n)}}}),h.generateConstructor=function(e){for(var t,r=l.codegen(["p"],e.name),n=0;n<e.fieldsArray.length;++n)(t=e._fieldsArray[n]).map?r("this%s={}",l.safeProp(t.name)):t.repeated&&r("this%s=[]",l.safeProp(t.name));return r("if(p)for(var ks=Object.keys(p),i=0;i<ks.length;++i)if(p[ks[i]]!=null)")("this[ks[i]]=p[ks[i]]")},h.fromJSON=function(i,a){var c=new h(i,a.options);c.extensions=a.extensions,c.reserved=a.reserved;for(var l=Object.keys(a.fields),u=0;u<l.length;++u)c.add((void 0!==a.fields[l[u]].keyType?o.fromJSON:n.fromJSON)(l[u],a.fields[l[u]]));if(a.oneofs)for(l=Object.keys(a.oneofs),u=0;u<l.length;++u)c.add(r.fromJSON(l[u],a.oneofs[l[u]]));if(a.nested)for(l=Object.keys(a.nested),u=0;u<l.length;++u){var d=a.nested[l[u]];c.add((void 0!==d.id?n.fromJSON:void 0!==d.fields?h.fromJSON:void 0!==d.values?t.fromJSON:void 0!==d.methods?s.fromJSON:e.fromJSON)(l[u],d))}return a.extensions&&a.extensions.length&&(c.extensions=a.extensions),a.reserved&&a.reserved.length&&(c.reserved=a.reserved),a.group&&(c.group=!0),a.comment&&(c.comment=a.comment),c},h.prototype.toJSON=function(t){var r=e.prototype.toJSON.call(this,t),n=!!t&&Boolean(t.keepComments);return l.toObject(["options",r&&r.options||void 0,"oneofs",e.arrayToJSON(this.oneofsArray,t),"fields",e.arrayToJSON(this.fieldsArray.filter(function(e){return!e.declaringField}),t)||{},"extensions",this.extensions&&this.extensions.length?this.extensions:void 0,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"group",this.group||void 0,"nested",r&&r.nested||void 0,"comment",n?this.comment:void 0])},h.prototype.resolveAll=function(){for(var t=this.fieldsArray,r=0;r<t.length;)t[r++].resolve();var n=this.oneofsArray;for(r=0;r<n.length;)n[r++].resolve();return e.prototype.resolveAll.call(this)},h.prototype.get=function(e){return this.fields[e]||this.oneofs&&this.oneofs[e]||this.nested&&this.nested[e]||null},h.prototype.add=function(t){if(this.get(t.name))throw Error("duplicate name '"+t.name+"' in "+this);if(t instanceof n&&void 0===t.extend){if(this._fieldsById?this._fieldsById[t.id]:this.fieldsById[t.id])throw Error("duplicate id "+t.id+" in "+this);if(this.isReservedId(t.id))throw Error("id "+t.id+" is reserved in "+this);if(this.isReservedName(t.name))throw Error("name '"+t.name+"' is reserved in "+this);return t.parent&&t.parent.remove(t),this.fields[t.name]=t,t.message=this,t.onAdd(this),y(this)}return t instanceof r?(this.oneofs||(this.oneofs={}),this.oneofs[t.name]=t,t.onAdd(this),y(this)):e.prototype.add.call(this,t)},h.prototype.remove=function(t){if(t instanceof n&&void 0===t.extend){if(!this.fields||this.fields[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.fields[t.name],t.parent=null,t.onRemove(this),y(this)}if(t instanceof r){if(!this.oneofs||this.oneofs[t.name]!==t)throw Error(t+" is not a member of "+this);return delete this.oneofs[t.name],t.parent=null,t.onRemove(this),y(this)}return e.prototype.remove.call(this,t)},h.prototype.isReservedId=function(t){return e.isReservedId(this.reserved,t)},h.prototype.isReservedName=function(t){return e.isReservedName(this.reserved,t)},h.prototype.create=function(e){return new this.ctor(e)},h.prototype.setup=function(){for(var e=this.fullName,t=[],r=0;r<this.fieldsArray.length;++r)t.push(this._fieldsArray[r].resolve().resolvedType);this.encode=u(this)({Writer:c,types:t,util:l}),this.decode=d(this)({Reader:a,types:t,util:l}),this.verify=g(this)({types:t,util:l}),this.fromObject=p.fromObject(this)({types:t,util:l}),this.toObject=p.toObject(this)({types:t,util:l});var n=f[e];if(n){var o=Object.create(this);o.fromObject=this.fromObject,this.fromObject=n.fromObject.bind(o),o.toObject=this.toObject,this.toObject=n.toObject.bind(o)}return this},h.prototype.encode=function(e,t){return this.setup().encode(e,t)},h.prototype.encodeDelimited=function(e,t){return this.encode(e,t&&t.len?t.fork():t).ldelim()},h.prototype.decode=function(e,t){return this.setup().decode(e,t)},h.prototype.decodeDelimited=function(e){return e instanceof a||(e=a.create(e)),this.decode(e,e.uint32())},h.prototype.verify=function(e){return this.setup().verify(e)},h.prototype.fromObject=function(e){return this.setup().fromObject(e)},h.prototype.toObject=function(e,t){return this.setup().toObject(e,t)},h.d=function(e){return function(t){l.decorateType(t,e)}},Ya}function Oc(){if(tc)return ec;tc=1,ec=c;var e=Ga();((c.prototype=Object.create(e.prototype)).constructor=c).className="Root";var t,r,n,o=Fa(),s=Ec(),i=xa(),a=Ic();function c(t){e.call(this,"",t),this.deferred=[],this.files=[]}function l(){}c.fromJSON=function(e,t){return t||(t=new c),e.options&&t.setOptions(e.options),t.addJSON(e.nested)},c.prototype.resolvePath=a.path.resolve,c.prototype.fetch=a.fetch,c.prototype.load=function e(t,o,s){"function"==typeof o&&(s=o,o=void 0);var i=this;if(!s)return a.asPromise(e,i,t,o);var c=s===l;function u(e,t){if(s){if(c)throw e;var r=s;s=null,r(e,t)}}function d(e){var t=e.lastIndexOf("google/protobuf/");if(t>-1){var r=e.substring(t);if(r in n)return r}return null}function g(e,t){try{if(a.isString(t)&&"{"===t.charAt(0)&&(t=JSON.parse(t)),a.isString(t)){r.filename=e;var n,s=r(t,i,o),l=0;if(s.imports)for(;l<s.imports.length;++l)(n=d(s.imports[l])||i.resolvePath(e,s.imports[l]))&&p(n);if(s.weakImports)for(l=0;l<s.weakImports.length;++l)(n=d(s.weakImports[l])||i.resolvePath(e,s.weakImports[l]))&&p(n,!0)}else i.setOptions(t.options).addJSON(t.nested)}catch(e){u(e)}c||f||u(null,i)}function p(e,t){if(e=d(e)||e,!(i.files.indexOf(e)>-1))if(i.files.push(e),e in n)c?g(e,n[e]):(++f,setTimeout(function(){--f,g(e,n[e])}));else if(c){var r;try{r=a.fs.readFileSync(e).toString("utf8")}catch(e){return void(t||u(e))}g(e,r)}else++f,i.fetch(e,function(r,n){--f,s&&(r?t?f||u(null,i):u(r):g(e,n))})}var f=0;a.isString(t)&&(t=[t]);for(var h,y=0;y<t.length;++y)(h=i.resolvePath("",t[y]))&&p(h);if(c)return i;f||u(null,i)},c.prototype.loadSync=function(e,t){if(!a.isNode)throw Error("not supported");return this.load(e,t,l)},c.prototype.resolveAll=function(){if(this.deferred.length)throw Error("unresolvable extensions: "+this.deferred.map(function(e){return"'extend "+e.extend+"' in "+e.parent.fullName}).join(", "));return e.prototype.resolveAll.call(this)};var u=/^[A-Z]/;function d(e,t){var r=t.parent.lookup(t.extend);if(r){var n=new o(t.fullName,t.id,t.type,t.rule,void 0,t.options);return r.get(n.name)||(n.declaringField=t,t.extensionField=n,r.add(n)),!0}return!1}return c.prototype._handleAdd=function(e){if(e instanceof o)void 0===e.extend||e.extensionField||d(0,e)||this.deferred.push(e);else if(e instanceof s)u.test(e.name)&&(e.parent[e.name]=e.values);else if(!(e instanceof i)){if(e instanceof t)for(var r=0;r<this.deferred.length;)d(0,this.deferred[r])?this.deferred.splice(r,1):++r;for(var n=0;n<e.nestedArray.length;++n)this._handleAdd(e._nestedArray[n]);u.test(e.name)&&(e.parent[e.name]=e)}},c.prototype._handleRemove=function(t){if(t instanceof o){if(void 0!==t.extend)if(t.extensionField)t.extensionField.parent.remove(t.extensionField),t.extensionField=null;else{var r=this.deferred.indexOf(t);r>-1&&this.deferred.splice(r,1)}}else if(t instanceof s)u.test(t.name)&&delete t.parent[t.name];else if(t instanceof e){for(var n=0;n<t.nestedArray.length;++n)this._handleRemove(t._nestedArray[n]);u.test(t.name)&&delete t.parent[t.name]}},c._configure=function(e,o,s){t=e,r=o,n=s},ec}function Ic(){if(rc)return ha.exports;rc=1;var e,t,r=ha.exports=or(),n=mr();r.codegen=function(){if(ua)return la;function e(t,r){"string"==typeof t&&(r=t,t=void 0);var n=[];function o(t){if("string"!=typeof t){var r=s();if(e.verbose&&console.log("codegen: "+r),r="return "+r,t){for(var i=Object.keys(t),a=new Array(i.length+1),c=new Array(i.length),l=0;l<i.length;)a[l]=i[l],c[l]=t[i[l++]];return a[l]=r,Function.apply(null,a).apply(null,c)}return Function(r)()}for(var u=new Array(arguments.length-1),d=0;d<u.length;)u[d]=arguments[++d];if(d=0,t=t.replace(/%([%dfijs])/g,function(e,t){var r=u[d++];switch(t){case"d":case"f":return String(Number(r));case"i":return String(Math.floor(r));case"j":return JSON.stringify(r);case"s":return String(r)}return"%"}),d!==u.length)throw Error("parameter count mismatch");return n.push(t),o}function s(e){return"function "+(e||r||"")+"("+(t&&t.join(",")||"")+"){\n "+n.join("\n ")+"\n}"}return o.toString=s,o}return ua=1,la=e,e.verbose=!1,la}(),r.fetch=function(){if(ga)return da;ga=1,da=r;var e=Pt(),t=qt()("fs");function r(n,o,s){return"function"==typeof o?(s=o,o={}):o||(o={}),s?!o.xhr&&t&&t.readFile?t.readFile(n,function(e,t){return e&&"undefined"!=typeof XMLHttpRequest?r.xhr(n,o,s):e?s(e):s(null,o.binary?t:t.toString("utf8"))}):r.xhr(n,o,s):e(r,this,n,o)}return r.xhr=function(e,t,r){var n=new XMLHttpRequest;n.onreadystatechange=function(){if(4===n.readyState){if(0!==n.status&&200!==n.status)return r(Error("status "+n.status));if(t.binary){var e=n.response;if(!e){e=[];for(var o=0;o<n.responseText.length;++o)e.push(255&n.responseText.charCodeAt(o))}return r(null,"undefined"!=typeof Uint8Array?new Uint8Array(e):e)}return r(null,n.responseText)}},t.binary&&("overrideMimeType"in n&&n.overrideMimeType("text/plain; charset=x-user-defined"),n.responseType="arraybuffer"),n.open("GET",e),n.send()},da}(),r.path=(ya||(ya=1,function(e){var t=e,r=t.isAbsolute=function(e){return/^(?:\/|\w+:)/.test(e)},n=t.normalize=function(e){var t=(e=e.replace(/\\/g,"/").replace(/\/{2,}/g,"/")).split("/"),n=r(e),o="";n&&(o=t.shift()+"/");for(var s=0;s<t.length;)".."===t[s]?s>0&&".."!==t[s-1]?t.splice(--s,2):n?t.splice(s,1):++s:"."===t[s]?t.splice(s,1):++s;return o+t.join("/")};t.resolve=function(e,t,o){return o||(t=n(t)),r(t)?t:(o||(e=n(e)),(e=e.replace(/(?:\/|^)[^/]+$/,"")).length?n(e+"/"+t):t)}}(ma)),ma),r.fs=r.inquire("fs"),r.toArray=function(e){if(e){for(var t=Object.keys(e),r=new Array(t.length),n=0;n<t.length;)r[n]=e[t[n++]];return r}return[]},r.toObject=function(e){for(var t={},r=0;r<e.length;){var n=e[r++],o=e[r++];void 0!==o&&(t[n]=o)}return t};var o=/\\/g,s=/"/g;r.isReserved=function(e){return/^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(e)},r.safeProp=function(e){return!/^[$\w_]+$/.test(e)||r.isReserved(e)?'["'+e.replace(o,"\\\\").replace(s,'\\"')+'"]':"."+e},r.ucFirst=function(e){return e.charAt(0).toUpperCase()+e.substring(1)};var i=/_([a-z])/g;r.camelCase=function(e){return e.substring(0,1)+e.substring(1).replace(i,function(e,t){return t.toUpperCase()})},r.compareFieldsById=function(e,t){return e.id-t.id},r.decorateType=function(t,n){if(t.$type)return n&&t.$type.name!==n&&(r.decorateRoot.remove(t.$type),t.$type.name=n,r.decorateRoot.add(t.$type)),t.$type;e||(e=wc());var o=new e(n||t.name);return r.decorateRoot.add(o),o.ctor=t,Object.defineProperty(t,"$type",{value:o,enumerable:!1}),Object.defineProperty(t.prototype,"$type",{value:o,enumerable:!1}),o};var a=0;return r.decorateEnum=function(e){if(e.$type)return e.$type;t||(t=Ec());var n=new t("Enum"+a++,e);return r.decorateRoot.add(n),Object.defineProperty(e,"$type",{value:n,enumerable:!1}),n},r.setProperty=function(e,t,r){if("object"!=typeof e)throw TypeError("dst must be an object");if(!t)throw TypeError("path must be specified");return function e(t,r,n){var o=r.shift();if("__proto__"===o||"prototype"===o)return t;if(r.length>0)t[o]=e(t[o]||{},r,n);else{var s=t[o];s&&(n=[].concat(s).concat(n)),t[o]=n}return t}(e,t=t.split("."),r)},Object.defineProperty(r,"decorateRoot",{get:function(){return n.decorated||(n.decorated=new(Oc()))}}),ha.exports}function Sc(){if(oc)return nc;oc=1,nc=r,r.className="ReflectionObject";var e,t=Ic();function r(e,r){if(!t.isString(e))throw TypeError("name must be a string");if(r&&!t.isObject(r))throw TypeError("options must be an object");this.options=r,this.parsedOptions=null,this.name=e,this.parent=null,this.resolved=!1,this.comment=null,this.filename=null}return Object.defineProperties(r.prototype,{root:{get:function(){for(var e=this;null!==e.parent;)e=e.parent;return e}},fullName:{get:function(){for(var e=[this.name],t=this.parent;t;)e.unshift(t.name),t=t.parent;return e.join(".")}}}),r.prototype.toJSON=function(){throw Error()},r.prototype.onAdd=function(t){this.parent&&this.parent!==t&&this.parent.remove(this),this.parent=t,this.resolved=!1;var r=t.root;r instanceof e&&r._handleAdd(this)},r.prototype.onRemove=function(t){var r=t.root;r instanceof e&&r._handleRemove(this),this.parent=null,this.resolved=!1},r.prototype.resolve=function(){return this.resolved||this.root instanceof e&&(this.resolved=!0),this},r.prototype.getOption=function(e){if(this.options)return this.options[e]},r.prototype.setOption=function(e,t,r){return r&&this.options&&void 0!==this.options[e]||((this.options||(this.options={}))[e]=t),this},r.prototype.setParsedOption=function(e,r,n){this.parsedOptions||(this.parsedOptions=[]);var o=this.parsedOptions;if(n){var s=o.find(function(t){return Object.prototype.hasOwnProperty.call(t,e)});if(s){var i=s[e];t.setProperty(i,n,r)}else(s={})[e]=t.setProperty({},n,r),o.push(s)}else{var a={};a[e]=r,o.push(a)}return this},r.prototype.setOptions=function(e,t){if(e)for(var r=Object.keys(e),n=0;n<r.length;++n)this.setOption(r[n],e[r[n]],t);return this},r.prototype.toString=function(){var e=this.constructor.className,t=this.fullName;return t.length?e+" "+t:e},r._configure=function(t){e=t},nc}function Ec(){if(ic)return sc;ic=1,sc=n;var e=Sc();((n.prototype=Object.create(e.prototype)).constructor=n).className="Enum";var t=Ga(),r=Ic();function n(t,r,n,o,s,i){if(e.call(this,t,n),r&&"object"!=typeof r)throw TypeError("values must be an object");if(this.valuesById={},this.values=Object.create(this.valuesById),this.comment=o,this.comments=s||{},this.valuesOptions=i,this.reserved=void 0,r)for(var a=Object.keys(r),c=0;c<a.length;++c)"number"==typeof r[a[c]]&&(this.valuesById[this.values[a[c]]=r[a[c]]]=a[c])}return n.fromJSON=function(e,t){var r=new n(e,t.values,t.options,t.comment,t.comments);return r.reserved=t.reserved,r},n.prototype.toJSON=function(e){var t=!!e&&Boolean(e.keepComments);return r.toObject(["options",this.options,"valuesOptions",this.valuesOptions,"values",this.values,"reserved",this.reserved&&this.reserved.length?this.reserved:void 0,"comment",t?this.comment:void 0,"comments",t?this.comments:void 0])},n.prototype.add=function(e,t,n,o){if(!r.isString(e))throw TypeError("name must be a string");if(!r.isInteger(t))throw TypeError("id must be an integer");if(void 0!==this.values[e])throw Error("duplicate name '"+e+"' in "+this);if(this.isReservedId(t))throw Error("id "+t+" is reserved in "+this);if(this.isReservedName(e))throw Error("name '"+e+"' is reserved in "+this);if(void 0!==this.valuesById[t]){if(!this.options||!this.options.allow_alias)throw Error("duplicate id "+t+" in "+this);this.values[e]=t}else this.valuesById[this.values[e]=t]=e;return o&&(void 0===this.valuesOptions&&(this.valuesOptions={}),this.valuesOptions[e]=o||null),this.comments[e]=n||null,this},n.prototype.remove=function(e){if(!r.isString(e))throw TypeError("name must be a string");var t=this.values[e];if(null==t)throw Error("name '"+e+"' does not exist in "+this);return delete this.valuesById[t],delete this.values[e],delete this.comments[e],this.valuesOptions&&delete this.valuesOptions[e],this},n.prototype.isReservedId=function(e){return t.isReservedId(this.reserved,e)},n.prototype.isReservedName=function(e){return t.isReservedName(this.reserved,e)},sc}function Rc(){if(cc)return ac;cc=1,ac=function(o){for(var s,i=r.codegen(["m","w"],o.name+"$encode")("if(!w)")("w=Writer.create()"),a=o.fieldsArray.slice().sort(r.compareFieldsById),c=0;c<a.length;++c){var l=a[c].resolve(),u=o._fieldsArray.indexOf(l),d=l.resolvedType instanceof e?"int32":l.type,g=t.basic[d];s="m"+r.safeProp(l.name),l.map?(i("if(%s!=null&&Object.hasOwnProperty.call(m,%j)){",s,l.name)("for(var ks=Object.keys(%s),i=0;i<ks.length;++i){",s)("w.uint32(%i).fork().uint32(%i).%s(ks[i])",(l.id<<3|2)>>>0,8|t.mapKey[l.keyType],l.keyType),void 0===g?i("types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()",u,s):i(".uint32(%i).%s(%s[ks[i]]).ldelim()",16|g,d,s),i("}")("}")):l.repeated?(i("if(%s!=null&&%s.length){",s,s),l.packed&&void 0!==t.packed[d]?i("w.uint32(%i).fork()",(l.id<<3|2)>>>0)("for(var i=0;i<%s.length;++i)",s)("w.%s(%s[i])",d,s)("w.ldelim()"):(i("for(var i=0;i<%s.length;++i)",s),void 0===g?n(i,l,u,s+"[i]"):i("w.uint32(%i).%s(%s[i])",(l.id<<3|g)>>>0,d,s)),i("}")):(l.optional&&i("if(%s!=null&&Object.hasOwnProperty.call(m,%j))",s,l.name),void 0===g?n(i,l,u,s):i("w.uint32(%i).%s(%s)",(l.id<<3|g)>>>0,d,s))}return i("return w")};var e=Ec(),t=Ba(),r=Ic();function n(e,t,r,n){return t.resolvedType.group?e("types[%i].encode(%s,w.uint32(%i)).uint32(%i)",r,n,(t.id<<3|3)>>>0,(t.id<<3|4)>>>0):e("types[%i].encode(%s,w.uint32(%i).fork()).ldelim()",r,n,(t.id<<3|2)>>>0)}return ac}function Tc(){if(dc)return uc;dc=1,uc=u;var e=/[\s{}=;:[\],'"()<>]/g,t=/(?:"([^"\\]*(?:\\.[^"\\]*)*)")/g,r=/(?:'([^'\\]*(?:\\.[^'\\]*)*)')/g,n=/^ *[*/]+ */,o=/^\s*\*?\/*/,s=/\n/g,i=/\s/,a=/\\(.?)/g,c={0:"\0",r:"\r",n:"\n",t:"\t"};function l(e){return e.replace(a,function(e,t){switch(t){case"\\":case"":return t;default:return c[t]||""}})}function u(a,c){a=a.toString();var u=0,d=a.length,g=1,p=0,f={},h=[],y=null;function m(e){return Error("illegal "+e+" (line "+g+")")}function v(e){return a.charAt(e)}function b(e,t,r){var i,l={type:a.charAt(e++),lineEmpty:!1,leading:r},u=e-(c?2:3);do{if(--u<0||"\n"===(i=a.charAt(u))){l.lineEmpty=!0;break}}while(" "===i||"\t"===i);for(var d=a.substring(e,t).split(s),h=0;h<d.length;++h)d[h]=d[h].replace(c?o:n,"").trim();l.text=d.join("\n").trim(),f[g]=l,p=g}function C(e){var t=w(e),r=a.substring(e,t);return/^\s*\/\//.test(r)}function w(e){for(var t=e;t<d&&"\n"!==v(t);)t++;return t}function O(){if(h.length>0)return h.shift();if(y)return function(){var e="'"===y?r:t;e.lastIndex=u-1;var n=e.exec(a);if(!n)throw m("string");return u=e.lastIndex,I(y),y=null,l(n[1])}();var n,o,s,p,f,O=0===u;do{if(u===d)return null;for(n=!1;i.test(s=v(u));)if("\n"===s&&(O=!0,++g),++u===d)return null;if("/"===v(u)){if(++u===d)throw m("comment");if("/"===v(u))if(c){if(p=u,f=!1,C(u-1)){f=!0;do{if((u=w(u))===d)break;if(u++,!O)break}while(C(u))}else u=Math.min(d,w(u)+1);f&&(b(p,u,O),O=!0),g++,n=!0}else{for(f="/"===v(p=u+1);"\n"!==v(++u);)if(u===d)return null;++u,f&&(b(p,u-1,O),O=!0),++g,n=!0}else{if("*"!==(s=v(u)))return"/";p=u+1,f=c||"*"===v(p);do{if("\n"===s&&++g,++u===d)throw m("comment");o=s,s=v(u)}while("*"!==o||"/"!==s);++u,f&&(b(p,u-2,O),O=!0),n=!0}}}while(n);var S=u;if(e.lastIndex=0,!e.test(v(S++)))for(;S<d&&!e.test(v(S));)++S;var E=a.substring(u,u=S);return'"'!==E&&"'"!==E||(y=E),E}function I(e){h.push(e)}function S(){if(!h.length){var e=O();if(null===e)return null;I(e)}return h[0]}return Object.defineProperty({next:O,peek:S,push:I,skip:function(e,t){var r=S();if(r===e)return O(),!0;if(!t)throw m("token '"+r+"', '"+e+"' expected");return!1},cmnt:function(e){var t,r=null;return void 0===e?(t=f[g-1],delete f[g-1],t&&(c||"*"===t.type||t.lineEmpty)&&(r=t.leading?t.text:null)):(p<e&&S(),t=f[e],delete f[e],!t||t.lineEmpty||!c&&"/"!==t.type||(r=t.leading?null:t.text)),r}},"line",{get:function(){return g}})}return u.unescape=l,uc}function Ac(){if(pc)return gc;pc=1,gc=w,w.filename=null,w.defaults={keepCase:!1};var e=Tc(),t=Oc(),r=wc(),n=Fa(),o=qa(),s=xa(),i=Ec(),a=Ka(),c=Va(),l=Ba(),u=Ic(),d=/^[1-9][0-9]*$/,g=/^-?[1-9][0-9]*$/,p=/^0[x][0-9a-fA-F]+$/,f=/^-?0[x][0-9a-fA-F]+$/,h=/^0[0-7]+$/,y=/^-?0[0-7]+$/,m=/^(?![eE])[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,v=/^[a-zA-Z_][a-zA-Z_0-9]*$/,b=/^(?:\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,C=/^(?:\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;function w(O,I,S){I instanceof t||(S=I,I=new t),S||(S=w.defaults);var E,R,T,A,_,k=S.preferTrailingComment||!1,M=e(O,S.alternateCommentMode||!1),N=M.next,P=M.push,L=M.peek,D=M.skip,U=M.cmnt,j=!0,B=!1,F=I,x=S.keepCase?function(e){return e}:u.camelCase;function G(e,t,r){var n=w.filename;return r||(w.filename=null),Error("illegal "+(t||"token")+" '"+e+"' ("+(n?n+", ":"")+"line "+M.line+")")}function q(){var e,t=[];do{if('"'!==(e=N())&&"'"!==e)throw G(e);t.push(N()),D(e),e=L()}while('"'===e||"'"===e);return t.join("")}function V(e){var t=N();switch(t){case"'":case'"':return P(t),q();case"true":case"TRUE":return!0;case"false":case"FALSE":return!1}try{return function(e,t){var r=1;"-"===e.charAt(0)&&(r=-1,e=e.substring(1));switch(e){case"inf":case"INF":case"Inf":return r*(1/0);case"nan":case"NAN":case"Nan":case"NaN":return NaN;case"0":return 0}if(d.test(e))return r*parseInt(e,10);if(p.test(e))return r*parseInt(e,16);if(h.test(e))return r*parseInt(e,8);if(m.test(e))return r*parseFloat(e);throw G(e,"number",t)}(t,!0)}catch(r){if(e&&b.test(t))return t;throw G(t,"value")}}function K(e,t){var r,n;do{!t||'"'!==(r=L())&&"'"!==r?e.push([n=H(N()),D("to",!0)?H(N()):n]):e.push(q())}while(D(",",!0));var o={options:void 0,setOption:function(e,t){void 0===this.options&&(this.options={}),this.options[e]=t}};Z(o,function(e){if("option"!==e)throw G(e);ee(o,e),D(";")},function(){ne(o)})}function H(e,t){switch(e){case"max":case"MAX":case"Max":return 536870911;case"0":return 0}if(!t&&"-"===e.charAt(0))throw G(e,"id");if(g.test(e))return parseInt(e,10);if(f.test(e))return parseInt(e,16);if(y.test(e))return parseInt(e,8);throw G(e,"id")}function z(){if(void 0!==E)throw G("package");if(E=N(),!b.test(E))throw G(E,"name");F=F.define(E),D(";")}function $(){var e,t=L();switch(t){case"weak":e=T||(T=[]),N();break;case"public":N();default:e=R||(R=[])}t=q(),D(";"),e.push(t)}function W(){if(D("="),A=q(),!(B="proto3"===A)&&"proto2"!==A)throw G(A,"syntax");I.setOption("syntax",A),D(";")}function J(e,t){switch(t){case"option":return ee(e,t),D(";"),!0;case"message":return X(e,t),!0;case"enum":return Q(e,t),!0;case"service":return function(e,t){if(!v.test(t=N()))throw G(t,"service name");var r=new a(t);Z(r,function(e){if(!J(r,e)){if("rpc"!==e)throw G(e);!function(e,t){var r=U(),n=t;if(!v.test(t=N()))throw G(t,"name");var o,s,i,a,l=t;D("("),D("stream",!0)&&(s=!0);if(!b.test(t=N()))throw G(t);o=t,D(")"),D("returns"),D("("),D("stream",!0)&&(a=!0);if(!b.test(t=N()))throw G(t);i=t,D(")");var u=new c(l,n,o,i,s,a);u.comment=r,Z(u,function(e){if("option"!==e)throw G(e);ee(u,e),D(";")}),e.add(u)}(r,e)}}),e.add(r)}(e,t),!0;case"extend":return function(e,t){if(!b.test(t=N()))throw G(t,"reference");var r=t;Z(null,function(t){switch(t){case"required":case"repeated":Y(e,t,r);break;case"optional":Y(e,B?"proto3_optional":"optional",r);break;default:if(!B||!b.test(t))throw G(t);P(t),Y(e,"optional",r)}})}(e,t),!0}return!1}function Z(e,t,r){var n=M.line;if(e&&("string"!=typeof e.comment&&(e.comment=U()),e.filename=w.filename),D("{",!0)){for(var o;"}"!==(o=N());)t(o);D(";",!0)}else r&&r(),D(";"),e&&("string"!=typeof e.comment||k)&&(e.comment=U(n)||e.comment)}function X(e,t){if(!v.test(t=N()))throw G(t,"type name");var n=new r(t);Z(n,function(e){if(!J(n,e))switch(e){case"map":!function(e){D("<");var t=N();if(void 0===l.mapKey[t])throw G(t,"type");D(",");var r=N();if(!b.test(r))throw G(r,"type");D(">");var n=N();if(!v.test(n))throw G(n,"name");D("=");var s=new o(x(n),H(N()),t,r);Z(s,function(e){if("option"!==e)throw G(e);ee(s,e),D(";")},function(){ne(s)}),e.add(s)}(n);break;case"required":case"repeated":Y(n,e);break;case"optional":Y(n,B?"proto3_optional":"optional");break;case"oneof":!function(e,t){if(!v.test(t=N()))throw G(t,"name");var r=new s(x(t));Z(r,function(e){"option"===e?(ee(r,e),D(";")):(P(e),Y(r,"optional"))}),e.add(r)}(n,e);break;case"extensions":K(n.extensions||(n.extensions=[]));break;case"reserved":K(n.reserved||(n.reserved=[]),!0);break;default:if(!B||!b.test(e))throw G(e);P(e),Y(n,"optional")}}),e.add(n)}function Y(e,t,o){var i=N();if("group"!==i){for(;i.endsWith(".")||L().startsWith(".");)i+=N();if(!b.test(i))throw G(i,"type");var a=N();if(!v.test(a))throw G(a,"name");a=x(a),D("=");var c=new n(a,H(N()),i,t,o);if(Z(c,function(e){if("option"!==e)throw G(e);ee(c,e),D(";")},function(){ne(c)}),"proto3_optional"===t){var d=new s("_"+a);c.setOption("proto3_optional",!0),d.add(c),e.add(d)}else e.add(c);B||!c.repeated||void 0===l.packed[i]&&void 0!==l.basic[i]||c.setOption("packed",!1,!0)}else!function(e,t){var o=N();if(!v.test(o))throw G(o,"name");var s=u.lcFirst(o);o===s&&(o=u.ucFirst(o));D("=");var i=H(N()),a=new r(o);a.group=!0;var c=new n(s,i,o,t);c.filename=w.filename,Z(a,function(e){switch(e){case"option":ee(a,e),D(";");break;case"required":case"repeated":Y(a,e);break;case"optional":Y(a,B?"proto3_optional":"optional");break;case"message":X(a,e);break;case"enum":Q(a,e);break;default:throw G(e)}}),e.add(a).add(c)}(e,t)}function Q(e,t){if(!v.test(t=N()))throw G(t,"name");var r=new i(t);Z(r,function(e){switch(e){case"option":ee(r,e),D(";");break;case"reserved":K(r.reserved||(r.reserved=[]),!0);break;default:!function(e,t){if(!v.test(t))throw G(t,"name");D("=");var r=H(N(),!0),n={options:void 0,setOption:function(e,t){void 0===this.options&&(this.options={}),this.options[e]=t}};Z(n,function(e){if("option"!==e)throw G(e);ee(n,e),D(";")},function(){ne(n)}),e.add(t,r,n.comment,n.options)}(r,e)}}),e.add(r)}function ee(e,t){var r=D("(",!0);if(!b.test(t=N()))throw G(t,"name");var n,o=t,s=o;r&&(D(")"),s=o="("+o+")",t=L(),C.test(t)&&(n=t.slice(1),o+=t,N())),D("="),function(e,t,r,n){e.setParsedOption&&e.setParsedOption(t,r,n)}(e,s,te(e,o),n)}function te(e,t){if(D("{",!0)){for(var r={};!D("}",!0);){if(!v.test(_=N()))throw G(_,"name");if(null===_)throw G(_,"end of input");var n,o=_;if(D(":",!0),"{"===L())n=te(e,t+"."+_);else if("["===L()){var s;if(n=[],D("[",!0)){do{s=V(!0),n.push(s)}while(D(",",!0));D("]"),void 0!==s&&re(e,t+"."+_,s)}}else n=V(!0),re(e,t+"."+_,n);var i=r[o];i&&(n=[].concat(i).concat(n)),r[o]=n,D(",",!0),D(";",!0)}return r}var a=V(!0);return re(e,t,a),a}function re(e,t,r){e.setOption&&e.setOption(t,r)}function ne(e){if(D("[",!0)){do{ee(e,"option")}while(D(",",!0));D("]")}return e}for(;null!==(_=N());)switch(_){case"package":if(!j)throw G(_);z();break;case"import":if(!j)throw G(_);$();break;case"syntax":if(!j)throw G(_);W();break;case"option":ee(F,_),D(";");break;default:if(J(F,_)){j=!1;continue}throw G(_)}return w.filename=null,{package:E,imports:R,weakImports:T,syntax:A,root:I}}return gc}function _c(){if(yc)return pa.exports;yc=1;var e=pa.exports=function(){if(lc)return fa.exports;lc=1;var e=fa.exports=vr();return e.build="light",e.load=function(t,r,n){return"function"==typeof r?(n=r,r=new e.Root):r||(r=new e.Root),r.load(t,n)},e.loadSync=function(t,r){return r||(r=new e.Root),r.loadSync(t)},e.encoder=Rc(),e.decoder=za(),e.verifier=$a(),e.converter=Za(),e.ReflectionObject=Sc(),e.Namespace=Ga(),e.Root=Oc(),e.Enum=Ec(),e.Type=wc(),e.Field=Fa(),e.OneOf=xa(),e.MapField=qa(),e.Service=Ka(),e.Method=Va(),e.Message=Ha(),e.wrappers=Cc(),e.types=Ba(),e.util=Ic(),e.ReflectionObject._configure(e.Root),e.Namespace._configure(e.Type,e.Service,e.Enum),e.Root._configure(e.Type),e.Field._configure(e.Type),fa.exports}();return e.build="full",e.tokenize=Tc(),e.parse=Ac(),e.common=function(){if(hc)return fc;hc=1,fc=r;var e,t=/\/|\./;function r(e,n){t.test(e)||(e="google/protobuf/"+e+".proto",n={nested:{google:{nested:{protobuf:{nested:n}}}}}),r[e]=n}return r("any",{Any:{fields:{type_url:{type:"string",id:1},value:{type:"bytes",id:2}}}}),r("duration",{Duration:e={fields:{seconds:{type:"int64",id:1},nanos:{type:"int32",id:2}}}}),r("timestamp",{Timestamp:e}),r("empty",{Empty:{fields:{}}}),r("struct",{Struct:{fields:{fields:{keyType:"string",type:"Value",id:1}}},Value:{oneofs:{kind:{oneof:["nullValue","numberValue","stringValue","boolValue","structValue","listValue"]}},fields:{nullValue:{type:"NullValue",id:1},numberValue:{type:"double",id:2},stringValue:{type:"string",id:3},boolValue:{type:"bool",id:4},structValue:{type:"Struct",id:5},listValue:{type:"ListValue",id:6}}},NullValue:{values:{NULL_VALUE:0}},ListValue:{fields:{values:{rule:"repeated",type:"Value",id:1}}}}),r("wrappers",{DoubleValue:{fields:{value:{type:"double",id:1}}},FloatValue:{fields:{value:{type:"float",id:1}}},Int64Value:{fields:{value:{type:"int64",id:1}}},UInt64Value:{fields:{value:{type:"uint64",id:1}}},Int32Value:{fields:{value:{type:"int32",id:1}}},UInt32Value:{fields:{value:{type:"uint32",id:1}}},BoolValue:{fields:{value:{type:"bool",id:1}}},StringValue:{fields:{value:{type:"string",id:1}}},BytesValue:{fields:{value:{type:"bytes",id:1}}}}),r("field_mask",{FieldMask:{fields:{paths:{rule:"repeated",type:"string",id:1}}}}),r.get=function(e){return r[e]||null},fc}(),e.Root._configure(e.Type,e.parse,e.common),pa.exports}var kc=h(vc?mc:(vc=1,mc=_c()));const Mc=e=>{const t=window.URL||window.webkitURL;return t?t.createObjectURL(e):""},Nc=e=>{const t=e.name;return dt(t)?t.substring(t.lastIndexOf(".")+1):e.type.indexOf("/")>0?e.type.substring(e.type.lastIndexOf("/")+1):""},Pc=e=>{(window.URL||window.webkitURL).revokeObjectURL(e)},Lc=e=>{const t=e.match(/data:([^;]+)/)[1],r=e.replace(/^[^,]+,/,""),n=window.atob(r);let o=n.length;const s=new Uint8Array(n.length);for(;o--;)s[o]=n.charCodeAt(o);return new Blob([s],{type:t})},Dc=1680,Uc=160,jc=e=>new Promise((t,r)=>{const n=e=>{0!==e.width||0!==e.height?t(e):r()},o=new Image;if(o.addEventListener("load",e=>n(e.target)),o.addEventListener("error",r),o.src=e,o.complete)return void n(o);const s=setInterval(()=>{o.complete&&(n(o),clearInterval(s))},40)}),Bc=(e,t)=>{const r=document.createElement("canvas"),n=r.getContext("2d"),o=function(e,t,r){let n=e,o=t,s=0,i=0;const a=e*t,c=r.maxWidth*r.maxHeight;if(a<=c)return s=(r.maxWidth-n)/2,i=(r.maxHeight-o)/2,{w:n,h:o,x:s,y:i};const l=Math.sqrt(c/a);return n=e*l,o=t*l,s=(r.maxWidth-n)/2,i=(r.maxHeight-o)/2,{w:n,h:o,x:s,y:i}}(e.width,e.height,t);r.width=o.w,r.height=o.h,n.fillStyle="#FFFFFF",n.fillRect(0,0,r.width,r.height),n?.drawImage(e,0,0,o.w,o.h);try{let e=r.toDataURL("image/jpeg",t.quality);return Lc(e)}catch(e){throw new Error(e)}};function Fc(e){const t=Math.max(0,e),r=t%60,n=Math.floor(t/60%60),o=Math.floor(t/3600);return o>0?`${o}:${n.toString().padStart(2,"0")}:${r.toString().padStart(2,"0")}`:`${n}:${r.toString().padStart(2,"0")}`}const xc={maxHeight:500,maxWidth:500,quality:.6,scale:2.4};class Gc{async create(e,t){try{const r=Mc(e),n=await jc(r);let o,s,i;if(Pc(r),t?.full)o=e,s=n.width,i=n.height;else{const t=((e,t=1,r="image/jpeg")=>{t=Math.min(1,t);const n=e.width,o=e.height;let s=n,i=o;if(t<1){const e=n<o,t=e?o/Dc:n/Dc;n>Dc&&o>Dc?e?(i=Dc,s/=t):(s=Dc,i/=t):n>Dc&&o>Uc?(s=Dc,i/=t,i<Uc&&(i=Uc,s=n/(o/Uc))):o>Dc&&n>Uc&&(i=Dc,s/=t,s<Uc&&(s=Uc,i=o/(n/Uc)))}s=Math.floor(s),i=Math.floor(i);const a=document.createElement("canvas");a.width=s,a.height=i;const c=a.getContext("2d");return c.fillStyle="#FFF",c.fillRect(0,0,s,i),c.drawImage(e,0,0,n,o,0,0,s,i),r&&"image/png"!=r||(r="image/jpeg"),{imageFile:Lc(a.toDataURL(r,Math.min(.92,t))),compressWidth:s,compressHeight:i}})(n,.85,e.type);o=t.imageFile,s=t.compressWidth,i=t.compressHeight}const a=Bc(n,xc);return{success:!0,message:new vi({thumbnailObjectKey:Mc(a),originalObjectKey:Mc(o),width:s,height:i}),files:[a,o]}}catch(e){return{success:!1}}}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n,o],encryptedKey:s}=t;return r.originalObjectKey=o,r.thumbnailObjectKey=n,r.encryptKey=s,r}}class qc{async create(e){if(e.size>2097152)return{success:!1};try{const t=Mc(e),r=await jc(t);return{success:!0,message:new bi({originalObjectKey:t,extension:Nc(e),width:r.width,height:r.height}),files:[e]}}catch{return{success:!1}}}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n],encryptedKey:o}=t;return r.originalObjectKey=n,r.encryptKey=o,r}}let Vc;class Kc{create(e){return(t=e,pt(t.arrayBuffer)?t.arrayBuffer():new Promise((e,r)=>{const n=new FileReader;n.addEventListener("load",t=>{t.target?e(t.target.result):r("null")}),n.addEventListener("error",e=>r(e)),n.readAsArrayBuffer(t)})).then(this.getAudioInfo).then(t=>({success:!0,message:new Ci({audioObjectKey:Mc(e),length:Math.round(1e3*t.duration),extension:Nc(e)}),files:[e]})).catch(()=>({success:!1}));var t}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n],encryptedKey:o}=t;return r.audioObjectKey=n,r.encryptKey=o,r}getAudioInfo(e){const t=Vc||new AudioContext;return Vc=t,new Promise((r,n)=>{t.decodeAudioData(e,function(e){r({duration:e.duration,length:e.length})},n)})}}class Hc{async create(e){return e.size>104857600?{success:!1}:{success:!0,message:new wi({fileKey:"",title:e.name,extension:Nc(e),size:e.size}),files:[e]}}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n],encryptedKey:o}=t;return r.fileKey=n,r.encryptKey=o,r}}class zc{async create(e){try{if(e.size>104857600)return{success:!1};const t=Mc(e),r=document.createElement("video");r.src=t,await new Promise((e,t)=>{r.onloadedmetadata=e,r.onerror=t}),r.currentTime=.001,await new Promise(e=>{r.onseeked=e});const n=r.duration,o=r.videoWidth,s=r.videoHeight,i=Math.min(xc.maxWidth/o,xc.maxHeight/s,xc.scale),a=Math.floor(o*i),c=Math.floor(s*i),l=document.createElement("canvas");l.width=a,l.height=c;const u=l.getContext("2d");u?.drawImage(r,0,0,a,c);const d=await new Promise(e=>{l.toBlob(t=>e(t),"image/jpeg",xc.quality)});return Pc(t),{success:!0,message:new Oi({videoObjectKey:"",thumbnailObjectKey:"",during:Fc(n),width:o,height:s,extension:Nc(e)}),files:[e,d]}}catch(e){return{success:!1}}}updateMessageRemoteUrlProperty(e,t){let r=ds(e);const{urls:[n,o],encryptedKey:s}=t;return r.videoObjectKey=n,r.thumbnailObjectKey=o,r.encryptKey=s,r}}var $c;!function(e){e[e.IMAGE=1]="IMAGE",e[e.GIF=2]="GIF",e[e.AUDIO=3]="AUDIO",e[e.FILE=4]="FILE",e[e.SIGHT=5]="SIGHT"}($c||($c={}));async function Wc(t,r,n){try{return dl(t,r,n,await nl(r))}catch{return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}}const Jc=new Set([ss.TEXT,ss.IMAGE,ss.GIF,ss.VIDEO,ss.FILE,ss.AUDIO,ss.LOCATION,ss.CHAT_RECORD,ss.CONTACT,ss.GROUP_INVITATION,ss.LINK]),Zc=new Set(Jc);function Xc(e,t){const r=[],n=(e,n)=>{let o=t;for(const t of e)o=o?.[t];"string"==typeof o&&o.length>0&&r.push({path:e,sourceUrl:o,encryptKey:n})},o="string"==typeof t.encryptKey?t.encryptKey:void 0;switch(e){case ss.TEXT:{const e=t.linkPreview;e&&"object"==typeof e&&n(["linkPreview","originalObjectKey"],"string"==typeof e.encryptKey?e.encryptKey:void 0);break}case ss.IMAGE:n(["thumbnailObjectKey"],o),n(["originalObjectKey"],o);break;case ss.GIF:n(["originalObjectKey"],o);break;case ss.VIDEO:n(["thumbnailObjectKey"],o),n(["videoObjectKey"],o);break;case ss.FILE:n(["fileKey"],o),n(["thumbnailObjectKey"],o);break;case ss.AUDIO:n(["audioObjectKey"],o);break;case ss.LOCATION:n(["thumbnailObjectKey"],o);break;case ss.CHAT_RECORD:n(["msgDataFileKey"],o)}return r}function Yc(e,t,r){let n=e;for(let e=0;e<t.length-1;e++){const r=t[e];if(!r||!n[r]||"object"!=typeof n[r])throw new Error("Invalid forwarded resource path");n=n[r]}const o=t[t.length-1];if(!o)throw new Error("Invalid forwarded resource field");n[o]=r}function Qc(e,t){const r=Tt.getUploader();if(!r?.copy)return Promise.resolve({finished:!1,message:t});const n=r.copy.bind(r);return new Promise(r=>{try{n(e,{onError:()=>r({finished:!1,message:t}),onCompleted:()=>r({finished:!0,message:t})})}catch(e){r({finished:!1,message:t})}})}function el(e){const t=Xo(e.messageType,e.content);if(!t)return;const r=e.messageType===ss.TEXT?t.content.content:void 0;return{senderNickname:e.senderNickname,...e.senderAvatar?{senderAvatar:e.senderAvatar}:{},msgId:e.messageUId,srcId:e.senderUserId,destId:e.targetId,mediaConstructor:e.messageType,mediaAttribute:JSON.stringify(t.content),...void 0!==r?{msgPostContent:r}:{},msgSendTime:e.sentTime}}async function tl(t,r,n){if(!Jc.has(r.messageType))return{code:e.ErrorCode.NOT_SUPPORT};const o=ds(r.content??{});delete o.mentionedInfo;const s=Xc(r.messageType,o);let i;if(s.length>0){const n=Tt.getUploader();if(!n?.prepareCopy||!n.copy)return{code:e.ErrorCode.NOT_SUPPORT};try{i=await n.prepareCopy({sourceConversation:{conversationType:r.conversationType,targetId:r.targetId},targetConversation:t,items:s.map(e=>({sourceUrl:e.sourceUrl,...e.encryptKey?{encryptKey:e.encryptKey}:{}}))})}catch{return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}if(i.items.length!==s.length)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};for(let t=0;t<s.length;t++){const r=s[t],n=i.items[t];if(!r||!n?.url)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};Yc(o,r.path,n.url)}}const a=Xo(r.messageType,o);if(!a)return{code:e.ErrorCode.NOT_SUPPORT};const c=i;return dl(t,a,n,c?{task:e=>Qc(c,e)}:void 0)}async function rl(t,r,n,o){if(!r.length||!n)return{code:e.ErrorCode.PARAMETER_ERROR};if(r.some(e=>!Zc.has(e.messageType)))return{code:e.ErrorCode.NOT_SUPPORT};const s=r[0];if(!s||r.some(e=>e.conversationType!==s.conversationType||e.targetId!==s.targetId))return{code:e.ErrorCode.PARAMETER_ERROR};const i=r.map(e=>({...e,content:ds(e.content??{})}));for(const e of i)delete e.content.mentionedInfo;const a=[];for(const e of i)for(const t of Xc(e.messageType,e.content))a.push({content:e.content,binding:t});const c=Tt.getUploader();if(!c)return{code:e.ErrorCode.NOT_SUPPORT};let l;if(a.length){if(!c.prepareCopy||!c.copy)return{code:e.ErrorCode.NOT_SUPPORT};try{l=await c.prepareCopy({sourceConversation:{conversationType:s.conversationType,targetId:s.targetId},targetConversation:t,items:a.map(({binding:e})=>({sourceUrl:e.sourceUrl,...e.encryptKey?{encryptKey:e.encryptKey}:{}}))})}catch(t){return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}if(l.items.length!==a.length)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};for(let t=0;t<a.length;t++){const r=a[t],n=l.items[t];if(!r||!n?.url)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};Yc(r.content,r.binding.path,n.url)}}const u=i.map(el);if(u.some(e=>!e))return{code:e.ErrorCode.NOT_SUPPORT};const d=u;let g;try{g=await c.prepare([new Blob([JSON.stringify(d)],{type:"application/json"})])}catch(t){return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}const p=g.items[0];if(1!==g.items.length||!p?.url)return{code:e.ErrorCode.UPLOAD_FILE_FAILED};const f={chatTitle:n,msgDataFileKey:p.url,encryptKey:g.encryptKey,msgList:d.slice(0,4).map(e=>({srcId:e.srcId,senderNickname:e.senderNickname,mediaConstructor:e.mediaConstructor,...void 0!==e.msgPostContent?{msgPostContent:e.msgPostContent}:{},...void 0!==e.mediaAttribute?{mediaAttribute:e.mediaAttribute}:{}}))},h=new Si(f),y=l;return dl(t,h,o,{uploadItems:g,task:async e=>{if(y){const t=await Qc(y,e);if(!t.finished)return t}return function(e,t,r){return new Promise(n=>{try{e.upload(t,{onError:()=>n({finished:!1,message:r}),onCompleted:()=>n({finished:!0,message:r})})}catch(e){n({finished:!1,message:r})}})}(c,g,e)}})}async function nl(e){if(e.messageType!==ss.TEXT)return;const t=e.content,r=t.linkPreview;if(!r?.image)return;if(!(r.image instanceof Blob))throw new Error("Link preview image must be a Blob");const n=Tt.getUploader();if(!n)throw new Error("Uploader is not configured");const o=await n.prepare([r.image]),s=o.items[0];if(!s)throw new Error("Link preview image upload was not prepared");const i={...r};return delete i.image,i.originalObjectKey=s.url,i.encryptKey=o.encryptKey,e.content={...t,linkPreview:i},{uploadItems:o,task:e=>new Promise(t=>{n.upload(o,{onError:()=>t({finished:!1,message:e}),onCompleted:()=>t({finished:!0,message:e})})})}}const ol=ll.bind(null,$c.IMAGE),sl=ll.bind(null,$c.GIF),il=ll.bind(null,$c.AUDIO),al=ll.bind(null,$c.SIGHT),cl=ll.bind(null,$c.FILE);async function ll(t,r,n,o,s){const i=(e=>{let t;switch(e){case $c.IMAGE:t=new Gc;break;case $c.AUDIO:t=new Kc;break;case $c.GIF:t=new qc;break;case $c.FILE:t=new Hc;break;case $c.SIGHT:t=new zc}return t})(t);if(!i)return{code:e.ErrorCode.NOT_SUPPORT};const{success:a,message:c,files:l}=await i.create(n.file,s);if(!a||!c||!l)return{code:e.ErrorCode.MEDIA_EXCEPTION};c.content.user=n.user,c.content.extra=n.extra;const u=Tt.getUploader();try{const e=await u.prepare(l);return c.content=i.updateMessageRemoteUrlProperty(c.content,{urls:e.items.map(e=>e.url),encryptedKey:e.encryptKey}),dl(r,c,s,{uploadItems:e,task:t=>new Promise(r=>{u.upload(e,{onProgress:e=>o?.onProgress?.(e),onError:()=>{r({finished:!1,message:t})},onCompleted:e=>{r({finished:!0,message:o?.onComplete?.(e)??t})}})})})}catch(t){return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}}const ul=async(t,r,n)=>{let o;try{o=await nl(t)}catch{return{code:e.ErrorCode.UPLOAD_FILE_FAILED}}const s=await gl({conversationType:r.conversationType,targetId:r.targetId},t,r,n,o?.uploadItems);if(s.code!==e.ErrorCode.SUCCESS||!s.message||!s.sentArgs)return{code:s.code};const i=Os(s.message,s.sentArgs);if(i.quotedReply=r,await yl(i,s.sentArgs),o){const r=await o.task(t);if(!r.finished)return pl(i,e.ErrorCode.UPLOAD_FILE_FAILED),await yl(i,s.sentArgs),{code:e.ErrorCode.UPLOAD_FILE_FAILED,data:i};t=r.message}const a=ro(r),c=await Yo.getDialogAesKey(a.toString());if(!c)return pl(i,e.ErrorCode.MSG_ENCRYPT_ERROR),await yl(i,s.sentArgs),{code:e.ErrorCode.MSG_ENCRYPT_ERROR,data:i};let l,u,d,g;if(t.messageType===ss.TEXT){let e=ds(t.content),r=e.content;delete e.content,l=rs(r,c),u=JSON.stringify(ht(e))}else u=JSON.stringify(ht(t.content));const p=rs(u,c);if(r){if(r.messageType===ss.TEXT){let e=ds(r.content),t=e.content;delete e.content,d=rs(t,c),g=JSON.stringify(ht(e))}else g=JSON.stringify(ht(r.content));g=rs(g,c)}zo.addMessage(s.sentArgs.messageId);const f={localId:Lr.fromNumber(s.sentArgs.messageId),mediaFlag:t.messageType!==ss.TEXT,mediaConstructor:t.messageType,msgPreContent:"",msgPostContent:l,mediaAttribute:p,msgIdReferenced:Lr.fromString(r.messageUId),msgSrcIdReferenced:Lr.fromString(r.senderUserId),msgDestIdReferenced:r.messageDirection==e.MessageDirection.RECEIVE?Lr.fromString(on.uid):Lr.fromString(r.targetId),msgPostContentReferenced:d,mediaFlagReferenced:r.messageType!==ss.TEXT,mediaConstructorReferenced:r.messageType,mediaAttributeReferenced:g,msgSendTimeReferenced:Lr.fromString(r.sentTime)};let h;if(r.conversationType===e.ConversationType.GROUP){const e={...f,groupId:Lr.fromString(a)};if(nt(t.content.mentionedInfo)){const r=t.content.mentionedInfo;r.userList?.length&&(e.at=r.userList.map(e=>Lr.fromString(e.uin)),e.msgPreContent=JSON.stringify({atInfo:JSON.stringify(r.userList)}))}h=await So(e)}else{const e={...f,destId:Lr.fromString(a)};h=await Oo(e)}const y=ds(i);return h.code===e.ErrorCode.SUCCESS?(y.sentTime=h.data.msgSendTime.toString(),y.messageUId=h.data.msgId.toString(),y.sentStatus=e.SentStatus.SENT,await yl(y,s.sentArgs)):(pl(y,h.code),await yl(y,s.sentArgs)),{code:h.code,data:y}};async function dl(t,r,n,o){const s=await gl(t,r,null,n,o?.uploadItems);if(s.code!==e.ErrorCode.SUCCESS||!s.message||!s.sentArgs)return{code:s.code};{const e=Os(s.message,s.sentArgs);await yl(e,s.sentArgs)}let{message:i,sentArgs:a}=s;if(nt(o)){const t=await o.task(i);if(i=t.message,!t.finished){const t=Os(s.message,s.sentArgs,e.SentStatus.FAILED);return pl(t,e.ErrorCode.UPLOAD_FILE_FAILED),await yl(t,a),{code:e.ErrorCode.UPLOAD_FILE_FAILED,data:t}}}return async function(t,r){const n=ro(r.conversation),o=Os(t,r),s=await Yo.getDialogAesKey(n.toString());if(!s)return pl(o,e.ErrorCode.MSG_ENCRYPT_ERROR),await yl(o,r),{code:e.ErrorCode.MSG_ENCRYPT_ERROR,data:o};let i,a;if(t.messageType===ss.TEXT){let e=ds(t.content),r=e.content;delete e.content,i=rs(r,s),a=JSON.stringify(ht(e))}else a=JSON.stringify(ht(t.content));const c=rs(a,s);zo.addMessage(r.messageId);const l={localId:Lr.fromNumber(r.messageId),mediaFlag:t.messageType!==ss.TEXT,mediaConstructor:t.messageType,msgPreContent:"",msgPostContent:i,mediaAttribute:c};let u;if(r.conversation.conversationType===e.ConversationType.GROUP){const e={...l,groupId:Lr.fromString(n)};if(nt(t.content.mentionedInfo)){const r=t.content.mentionedInfo;r.userList?.length&&(e.at=r.userList.map(e=>Lr.fromString(e.uin)),e.msgPreContent=JSON.stringify({atInfo:JSON.stringify(r.userList)}))}u=await Io(e)}else{const e={...l,destId:Lr.fromString(n)};u=await wo(e)}u.code===e.ErrorCode.SUCCESS?(o.sentTime=u.data.msgSendTime.toString(),o.messageUId=u.data.msgId.toString(),o.sentStatus=e.SentStatus.SENT,await yl(o,r)):(pl(o,u.code),await yl(o,r));return{code:u.code,data:o}}(i,a)}async function gl(t,r,n,o,s){if(((e,t="utf-8")=>{let r=0;if("utf-16"===t)for(let t=0,n=e.length;t<n;t++)r+=e.charCodeAt(t)<=65535?2:4;else for(let t=0,n=e.length;t<n;t++){const n=e.charCodeAt(t);r+=n<127?1:n<=2047?2:n<=65535?3:4}return r})(JSON.stringify(ht(r.content)))>81920)return{code:e.ErrorCode.RC_MSG_CONTENT_EXCEED_LIMIT};r.isPersited&&await ws.get().loadConvsationsIfNotExist([t]);const i={conversation:t,senderUserId:on.uid,messageId:qs(),sentTime:hl().toString(),pushConfig:o?.pushConfig};if(o?.onSendBefore){const e=Os(r,i);n&&(e.quotedReply=n),o.onSendBefore(e,s)}return{code:e.ErrorCode.SUCCESS,message:r,sentArgs:i}}function pl(t,r){t.sentStatus=e.SentStatus.FAILED,t.sendErrorCode=r}let fl=1;function hl(){fl++;const e=Ko();return fl<e&&(fl=e),fl}async function yl(e,t){try{const r=ti.get();if(e.isPersited&&r){await r.upsertMessage(e);const n=await r.getLatestMessage(t.conversation);let o=e;n&&Lr.fromString(n.sentTime).greaterThan(Lr.fromString(e.sentTime))&&(o=n),ws.get().updateLatestMessage(t.conversation,o)}}catch(e){Yi.error("saveSentMessage -> ",e)}}class ml extends hs{options;static imClient;libLoader;constructor(e){if(ml.imClient)return Yi.warn("Please do not perform the init method repeatedly"),ml.imClient;super(),this.options=e,this.fixedProtobuf(),nt(e.logLevel)&&Yi.setLogLevel(e.logLevel),nt(e.logStdout)&&Yi.setLogStdout(e.logStdout),Yi.debug("IMClient.init -> "),nt(e.uploader)&&Tt.setUploader(e.uploader),Tt.setDeviceCode(e.deviceCode),Tt.setDeviceType(e.deviceType),this.libLoader=Hi.init(e),this.watch(),ml.imClient=this}fixedProtobuf(){kc.util.Long=Lr,kc.configure()}watch(){this.libLoader.assignWatcher({onConnecting:()=>{this.emit(e.Events.CONNECTING)},onConnected:()=>{this.emit(e.Events.CONNECTED)},onDisconnect:()=>{this.emit(e.Events.DISCONNECT,this.libLoader.getConnectionStatus())},onSuspend:()=>{this.emit(e.Events.SUSPEND,this.libLoader.getConnectionStatus())},batchMessage:t=>{this.emit(e.Events.MESSAGES,{messages:t})},pullFinished:()=>{this.emit(e.Events.PULL_OFFLINE_MESSAGE_FINISHED)},conversationState:t=>{this.emit(e.Events.CONVERSATION,{conversations:t})},onPush:(t,r)=>{this.emit(e.Events.PUSH,{cmdId:t,body:r})},onRecall:t=>{t.forEach(t=>{this.emit(e.Events.RECALL,t)})},onReceiptReceived:async(t,r)=>{try{await(ti.get()?.updateMessageReceiptStatus(t,r))}catch(e){Yi.error("updateMessageReceiptStatus -> ",e)}0===r?this.emit(e.Events.ARRIVAL_RECEIPT_RECEIVED,t):this.emit(e.Events.READ_RECEIPT_RECEIVED,t)},onMessagePinnedChanged:t=>{this.emit(e.Events.MESSAGE_PINNED_CHANGED,t)},onMessageReactionsChanged:t=>{this.emit(e.Events.MESSAGE_REACTIONS_CHANGED,t)},onDialogFilterConfig:t=>{this.emit(e.Events.DIALOG_FILTER_CONFIG,t)}})}connect(){return this.libLoader.connect()}disconnect(){return this.libLoader.disconnect()}setUserLogged(e){return e.uid!==on.uid.toString()?(on.setLogged(e),this.libLoader.setUserLogged()):Promise.resolve()}async logOut(){on.logOut(),await this.libLoader.setUserLogout()}async deleteLocalDatabase(e){await this.logOut();const t=new Qs(this.options.appkey,e);await t.deleteDatabase()}getConnectionStatus(){return this.libLoader.getConnectionStatus()}getServerTime=Ko;async insertMessage(t,r,n){(!r.messageId||r.messageId>Ks())&&(r.messageId=qs(),r.messageUId="local_"+r.messageId),ws.get().setConversationCacheByMessage(r);try{const e=ti.get();if(r.isPersited&&e){await e.upsertMessage(r);const t=await e.getLatestMessage(r);let n=r;t&&Lr.fromString(t.sentTime).greaterThan(Lr.fromString(r.sentTime))&&(n=t),ws.get().updateLatestMessage(r,n)}}catch(e){Yi.error("insertMessage -> ",e)}return{code:e.ErrorCode.SUCCESS,data:r}}sendMessage=Wc;forwardMessage=tl;mergeForwardMessages=rl;sendImageMessage=ol;sendGIFMessage=sl;sendHQVoiceMessage=il;sendFileMessage=cl;sendSightMessage=al;async recallMsg(t,r){return await(async(t,r)=>{const n=ro(t);Wo.addMessage(r.messageUId);const o=await Ro(n,r.messageUId);if(o.code!==e.ErrorCode.SUCCESS)return{code:o.code};const s=new Ki({messageUId:r.messageUId}),i={conversation:t,senderUserId:on.uid,messageId:0,sentTime:Ko().toString()},a=Os(s,i,e.SentStatus.SENT);a.burnAfterReadingFlag=!1,a.burnAfterReadingTime=0,ws.get().setConversationCacheByMessage(a);const c=ti.get();return c&&(await c.convertToRecallMessages([r.messageUId]),ws.get().updateLatestMessage(t,await c.getLatestMessage(t))),{code:e.ErrorCode.SUCCESS,data:a}})(t,r)}async commentMsg(t,r){const{code:o}=await To(ro(t),r.messageUId,r.content);if(o!==e.ErrorCode.SUCCESS)return{code:o,msg:n(o)};const s=await this.getMessageByUId(r.messageUId);if(!s)return Yi.warn("commentMsg: target message not found",r.messageUId),{code:e.ErrorCode.SUCCESS};const i={uid:on.uid,msgId:r.messageUId,content:r.content,nickname:r.nickname??"",time:Ko()},a=ni(s.reactions,i);return await(ti.get()?.setMessageReactions(t,r.messageUId,a))?(s.reactions=a,this.emit(e.Events.MESSAGE_REACTIONS_CHANGED,{conversation:t,messageUId:r.messageUId,reactions:a,change:i}),{code:e.ErrorCode.SUCCESS,data:{reactions:a}}):(Yi.warn("commentMsg: failed to persist reactions",r.messageUId),{code:e.ErrorCode.SUCCESS})}sendQuoteReplyMessage=ul;async getRemoteHistoryMessages(t,r){const o=r.timestamp??"0",s=r.count??20,i=ro(t);return _o({dialogId:i,offset:o,count:s,newToOld:0===r.order}).then(({code:t,data:r})=>new Promise(r=>{t===e.ErrorCode.SUCCESS?r({code:e.ErrorCode.SUCCESS,data:{list:[],hasMore:!1}}):r({code:t,msg:n(t)})}))}async getPreviousHistoryMessages(t,r,n=20){const o=await ti.get().getPreviousMessages(t,r??"0",n);if(!r&&o.messages.length&&ws.get().updateLatestMessage(t,o.messages[o.messages.length-1]),o.messages.length>=n||!o.hasMore)return{code:e.ErrorCode.SUCCESS,data:{list:o.messages,hasMore:o.hasMore}};const s=o.messages[0]?.sentTime??r,i=await this.getRemoteHistoryMessages(t,{timestamp:s,count:n-o.messages.length,order:0});if(i.code!==e.ErrorCode.SUCCESS)return i;const a=i.data.list;for(let e=a.length-1;e>=0;e--){const t=a[e];(!t.messageId||t.messageId>Ks())&&(t.messageId=Vs())}s&&"0"!=s||ws.get().updateLatestMessage(t,a[a.length-1]),await ti.get().addMessages(a,t,!i.data.hasMore);const c=await ti.get().getPreviousMessages(t,r??"0",n);return!r&&c.messages.length&&ws.get().updateLatestMessage(t,c.messages[c.messages.length-1]),{code:e.ErrorCode.SUCCESS,data:{list:c.messages,hasMore:c.hasMore}}}async getHistoryMessages(t,r){const n=r.timestamp??"0",o=r.count??20,s=await ti.get().getMessages(t,n,o,0===r.order);return{code:e.ErrorCode.SUCCESS,data:{list:s.messages,hasMore:s.hasMore}}}async getMessagesByType(t,r,n){const o=ti.get();if(!o)return{code:e.ErrorCode.SUCCESS,data:{list:[],hasMore:!1}};const s=await o.getMessagesByType(t,r,n.timestamp??"0",n.count??50,1!==n.order);return{code:e.ErrorCode.SUCCESS,data:{list:s.messages,hasMore:s.hasMore}}}async setMessagePinned(t,r,n,o="everyone"){if(n&&"me"===o)return await(ti.get()?.setMessagePinned(t,r,!0)),this.emit(e.Events.MESSAGE_PINNED_CHANGED,{conversation:t,messageUId:r,operation:e.MessagePinnedOperation.PIN}),e.ErrorCode.SUCCESS;const s=n?e.MessagePinnedOperation.PIN:e.MessagePinnedOperation.UNPIN;return(await Ao(ro(t),r,s)).code}async unpinAllMessages(t){return(await Ao(ro(t),"0",e.MessagePinnedOperation.UNPIN_ALL)).code}async getPinnedMessages(t,r=50){const n=await(ti.get()?.getPinnedMessages(t,r))??[];return{code:e.ErrorCode.SUCCESS,data:n}}async deleteRemoteMessage(t,r){const n=await ko(ro(t),r.map(e=>e.messageUId)).then(e=>e.code);if(n===e.ErrorCode.SUCCESS){const e=await(ti.get()?.getLatestMessage(t));if(await(ti.get()?.removeMessagesByUId(r.map(e=>e.messageUId))),e&&r.some(t=>t.messageUId===e.messageUId)){const e=await(ti.get()?.getLatestMessage(t));ws.get().updateLatestMessage(t,e)}}return n}async deleteLocalMessages(t,r){const n=ti.get();if(!n||0===r.length)return e.ErrorCode.SUCCESS;const o=await n.getLatestMessage(t);return await n.removeMessagesByUId(r),o&&r.includes(o.messageUId)&&ws.get().updateLatestMessage(t,await n.getLatestMessage(t)),e.ErrorCode.SUCCESS}async deleteHistoryMessages(e){return await(ti.get()?.clearConversationCache(e)),ws.get().clearHistoryMessages(e),Mo(ro(e)).then(e=>e.code)}async getConversationList(t,r,n,o){const s={rows:t,type:r??0,offset:Lr.fromNumber(n),newToOld:0===o},{code:i,data:a}=await No(s);if(i!==e.ErrorCode.SUCCESS)return{code:i};const c=a.fullDialog.map(e=>e.dialog?.destId).filter(nt);await Yo.getDialogAesKeyList(c.map(e=>e.toString()));let l=1e4;const u=[];for(const e of a.fullDialog){const t=this.formatConversation(e);t&&u.push(t)}const d=await(ti.get()?.getLatestMessages(u))??{},g=[];for(const e of u){const t={conversationType:e.conversationType,targetId:e.targetId},r=e.latestMessage;e.latestMessage=d[ro(t)];const n=ws.get().get(t);if(n){const{unreadMessageCount:t,hasMentioned:r,lastUnreadTime:o,updateTime:s}=n;t&&(e.unreadMessageCount=t),r&&(e.hasMentioned=r),o&&(e.lastUnreadTime=o),s&&(e.updateTime=s)}nt(e.latestMessage)&&!e.updateTime&&(e.updateTime=parseInt(e.latestMessage.sentTime)),e.updateTime||(r?e.updateTime=parseInt(r.sentTime):(e.updateTime=l,l++)),ws.get().addLocalConversation(e),g.push(e)}return g.sort((e,t)=>(e.updateTime??0)-(t.updateTime??0)),{code:e.ErrorCode.SUCCESS,data:g}}getBlockConversationList(){const t=ws.get().getBlockConversationList();return Promise.resolve({code:e.ErrorCode.SUCCESS,data:t})}getTopConversationList(){const t=ws.get().getTopConversationList();return Promise.resolve({code:e.ErrorCode.SUCCESS,data:t})}async getConversation(t){const r=ws.get().get(t);if(!r)return{code:e.ErrorCode.CONVER_GET_ERROR};const n=await(ti.get()?.getLatestMessage(t)),o=nt(n?.sentTime)?parseInt(n.sentTime):0,s=Math.max(r.updateTime??0,o),i={...t,...r,updateTime:s||void 0,latestMessage:n};return{code:e.ErrorCode.SUCCESS,data:i}}removeConversation(e){return ws.get().remove(e),jo(ro(e)).then(e=>e.code)}getUnreadMentionedCount(e){return ws.get().getUnreadMentionedCount(e)}getAllUnreadMentionedCount(){return ws.get().getAllUnreadMentionedCount()}getConversationState(e){return ws.get().getConversationState(e)}getAllConversationState(){return ws.get().getAllConversationState()}getAllConversationUnreadCount(e,t){return ws.get().getAllUnreadCount(e,t)}getConversationUnreadCount(e){return ws.get().getUnreadCount(e)}clearConversationUnreadCount(e){ws.get().getUnreadCount(e)>0&&Go(e.targetId),ws.get().clearUnreadCount(e)}clearAllConversationsUnreadCount(){ws.get().clearAllUnreadCount()}getConversationNotificationLevel(e){return ws.get().getNotificationLevel(e)}setConversationNotificationStatus(t,r){return Lo(ro(t),r===e.NotificationStatus.OPEN).then(n=>(!n.code&&ws.get().addStatus({...t,notificationStatus:r,notificationLevel:r==e.NotificationStatus.OPEN?e.NotificationLevel.AT_USER_NOTIFICATION:e.NotificationLevel.NOT_SET},!0),n.code))}getConversationNotificationStatus(e){return ws.get().getNotificationStatus(e)}setConversationToTop(e,t){return Do(ro(e),t).then(r=>(!r.code&&ws.get().addStatus({...e,isTop:t},!0),r.code))}setConversationBurnAfterReading(e,t,r){return Uo(ro(e),t,t?r:0).then(n=>(!n.code&&ws.get().addStatus({...e,burnAfterReadingFlag:t,burnAfterReadingTime:t?r:null},!0),n.code))}saveConversationMessageDraft(e,t){ws.get().setDraft(e,t)}getConversationMessageDraft(e){return ws.get().getDraft(e)}clearConversationMessageDraft(e){ws.get().clearDraft(e)}async sendReadReceipts(t,r=Date.now()){await(ti.get()?.markMessagesRead(t.map(e=>e.messageUId),r));for(const n of t)(n.receivedStatus??e.ReceivedStatus.IDLE)<e.ReceivedStatus.READ&&(n.receivedStatus=e.ReceivedStatus.READ),n.messageDirection===e.MessageDirection.RECEIVE&&n.burnAfterReadingFlag&&null==n.burnAfterReadingStartedAt&&(n.burnAfterReadingStartedAt=r);await(Bs.get()?.sendReadReceipts(t))}formatConversation(e){const{dialog:t,msg:r}=e,n=t.destId;if(!nt(n))return;const o=fs(t);if(!o)return;const s=Yo.getDialogAesKeyFromLocal(n.toString());if(s){if(nt(r)){const e=Ls.parseSingleDialogMessages(n.toString(),[r],s,{})[0];o.latestMessage=e}return o}}async clearBurnAfterReadingExpiredMessages(e){const t=ti.get();if(!t)return Promise.resolve([]);const r=await t.clearBurnAfterReadingExpiredMessages(e);return r.length>0&&ws.get().updateLatestMessage(e,await t.getLatestMessage(e)),r}async getMessageById(e){return ti.get()?.getMessageById(e)}async getMessageByUId(e){return ti.get()?.getMessageByUId(e)}async updateMessage(e){const t=ti.get();if(!t)throw new Error("Message database is not initialized for a logged-in user");if(!e.isPersited)throw new Error("Cannot update a non-persisted message");if(!(e.messageUId?await t.getMessageByUId(e.messageUId):await t.getMessageById(e.messageId)))throw new Error(`Cannot update missing message ${e.messageUId||e.messageId}`);await t.upsertMessage(e);const r=await t.getLatestMessage(e);return ws.get().updateLatestMessage(e,r),e}async searchTextMessages(e,t){const r=ti.get();return r?r.searchTextMessages(e,t):Promise.resolve([])}async searchMessages(e,t=500){const r=ti.get();return r?r.searchMessages(e,t):Promise.resolve([])}}const vl=br.Reader,bl=br.Writer,Cl=br.util,wl=br.roots.default||(br.roots.default={}),Ol=wl.AuthSignIn2Req=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.langCode="",e.prototype.phoneNum="",e.prototype.password="",e.prototype.appVersionCode=0,e.prototype.deviceType=0,e.prototype.imei="",e.prototype.brand="",e.prototype.model="",e.prototype.apnsToken="",e.prototype.bandId="",e.prototype.appVersion="",e.prototype.osVersion="",e.prototype.version=0,e.encode=function(e,t){return t||(t=bl.create()),null!=e.langCode&&Object.hasOwnProperty.call(e,"langCode")&&t.uint32(10).string(e.langCode),null!=e.phoneNum&&Object.hasOwnProperty.call(e,"phoneNum")&&t.uint32(18).string(e.phoneNum),null!=e.password&&Object.hasOwnProperty.call(e,"password")&&t.uint32(26).string(e.password),null!=e.appVersionCode&&Object.hasOwnProperty.call(e,"appVersionCode")&&t.uint32(32).int32(e.appVersionCode),null!=e.deviceType&&Object.hasOwnProperty.call(e,"deviceType")&&t.uint32(40).int32(e.deviceType),null!=e.imei&&Object.hasOwnProperty.call(e,"imei")&&t.uint32(50).string(e.imei),null!=e.brand&&Object.hasOwnProperty.call(e,"brand")&&t.uint32(58).string(e.brand),null!=e.model&&Object.hasOwnProperty.call(e,"model")&&t.uint32(66).string(e.model),null!=e.apnsToken&&Object.hasOwnProperty.call(e,"apnsToken")&&t.uint32(74).string(e.apnsToken),null!=e.bandId&&Object.hasOwnProperty.call(e,"bandId")&&t.uint32(82).string(e.bandId),null!=e.appVersion&&Object.hasOwnProperty.call(e,"appVersion")&&t.uint32(90).string(e.appVersion),null!=e.osVersion&&Object.hasOwnProperty.call(e,"osVersion")&&t.uint32(98).string(e.osVersion),null!=e.version&&Object.hasOwnProperty.call(e,"version")&&t.uint32(104).int32(e.version),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.AuthSignIn2Req;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.langCode=e.string();break;case 2:n.phoneNum=e.string();break;case 3:n.password=e.string();break;case 4:n.appVersionCode=e.int32();break;case 5:n.deviceType=e.int32();break;case 6:n.imei=e.string();break;case 7:n.brand=e.string();break;case 8:n.model=e.string();break;case 9:n.apnsToken=e.string();break;case 10:n.bandId=e.string();break;case 11:n.appVersion=e.string();break;case 12:n.osVersion=e.string();break;case 13:n.version=e.int32();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/AuthSignIn2Req"},e})(),Il=wl.AuthSignIn2Resp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.deviceId=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.sessionId=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.noNickName=!1,e.prototype.noEmail=!1,e.prototype.cert="",e.prototype.userFileDomain="",e.prototype.dialogFileDomain="",e.prototype.user=null,e.prototype.frozenDays=0,e.encode=function(e,t){return t||(t=bl.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.deviceId&&Object.hasOwnProperty.call(e,"deviceId")&&t.uint32(24).int64(e.deviceId),null!=e.sessionId&&Object.hasOwnProperty.call(e,"sessionId")&&t.uint32(32).int64(e.sessionId),null!=e.noNickName&&Object.hasOwnProperty.call(e,"noNickName")&&t.uint32(40).bool(e.noNickName),null!=e.noEmail&&Object.hasOwnProperty.call(e,"noEmail")&&t.uint32(48).bool(e.noEmail),null!=e.cert&&Object.hasOwnProperty.call(e,"cert")&&t.uint32(58).string(e.cert),null!=e.userFileDomain&&Object.hasOwnProperty.call(e,"userFileDomain")&&t.uint32(74).string(e.userFileDomain),null!=e.dialogFileDomain&&Object.hasOwnProperty.call(e,"dialogFileDomain")&&t.uint32(82).string(e.dialogFileDomain),null!=e.user&&Object.hasOwnProperty.call(e,"user")&&wl.User.encode(e.user,t.uint32(90).fork()).ldelim(),null!=e.frozenDays&&Object.hasOwnProperty.call(e,"frozenDays")&&t.uint32(104).int32(e.frozenDays),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.AuthSignIn2Resp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.deviceId=e.int64();break;case 4:n.sessionId=e.int64();break;case 5:n.noNickName=e.bool();break;case 6:n.noEmail=e.bool();break;case 7:n.cert=e.string();break;case 9:n.userFileDomain=e.string();break;case 10:n.dialogFileDomain=e.string();break;case 11:n.user=wl.User.decode(e,e.uint32());break;case 13:n.frozenDays=e.int32();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/AuthSignIn2Resp"},e})();wl.User=(()=>{function e(e){if(this.aliasMobile=[],e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.uid=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.nickName="",e.prototype.langCode="",e.prototype.phone="",e.prototype.numberInPhoneBook="",e.prototype.smallAvatarUrl="",e.prototype.originalAvatarUrl="",e.prototype.email="",e.prototype.qrcodeString="",e.prototype.gender=0,e.prototype.contactStatus=0,e.prototype.alias="",e.prototype.aliasMobile=Cl.emptyArray,e.prototype.aliasDesp="",e.encode=function(e,t){if(t||(t=bl.create()),null!=e.uid&&Object.hasOwnProperty.call(e,"uid")&&t.uint32(8).int64(e.uid),null!=e.nickName&&Object.hasOwnProperty.call(e,"nickName")&&t.uint32(18).string(e.nickName),null!=e.langCode&&Object.hasOwnProperty.call(e,"langCode")&&t.uint32(26).string(e.langCode),null!=e.phone&&Object.hasOwnProperty.call(e,"phone")&&t.uint32(34).string(e.phone),null!=e.numberInPhoneBook&&Object.hasOwnProperty.call(e,"numberInPhoneBook")&&t.uint32(42).string(e.numberInPhoneBook),null!=e.smallAvatarUrl&&Object.hasOwnProperty.call(e,"smallAvatarUrl")&&t.uint32(50).string(e.smallAvatarUrl),null!=e.originalAvatarUrl&&Object.hasOwnProperty.call(e,"originalAvatarUrl")&&t.uint32(58).string(e.originalAvatarUrl),null!=e.email&&Object.hasOwnProperty.call(e,"email")&&t.uint32(66).string(e.email),null!=e.qrcodeString&&Object.hasOwnProperty.call(e,"qrcodeString")&&t.uint32(74).string(e.qrcodeString),null!=e.gender&&Object.hasOwnProperty.call(e,"gender")&&t.uint32(80).int32(e.gender),null!=e.contactStatus&&Object.hasOwnProperty.call(e,"contactStatus")&&t.uint32(88).int32(e.contactStatus),null!=e.alias&&Object.hasOwnProperty.call(e,"alias")&&t.uint32(98).string(e.alias),null!=e.aliasMobile&&e.aliasMobile.length)for(let r=0;r<e.aliasMobile.length;++r)t.uint32(106).string(e.aliasMobile[r]);return null!=e.aliasDesp&&Object.hasOwnProperty.call(e,"aliasDesp")&&t.uint32(114).string(e.aliasDesp),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.User;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.uid=e.int64();break;case 2:n.nickName=e.string();break;case 3:n.langCode=e.string();break;case 4:n.phone=e.string();break;case 5:n.numberInPhoneBook=e.string();break;case 6:n.smallAvatarUrl=e.string();break;case 7:n.originalAvatarUrl=e.string();break;case 8:n.email=e.string();break;case 9:n.qrcodeString=e.string();break;case 10:n.gender=e.int32();break;case 11:n.contactStatus=e.int32();break;case 12:n.alias=e.string();break;case 13:n.aliasMobile&&n.aliasMobile.length||(n.aliasMobile=[]),n.aliasMobile.push(e.string());break;case 14:n.aliasDesp=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/User"},e})();const Sl=wl.WebGetLoginCodeReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.account="",e.prototype.langCode="",e.encode=function(e,t){return t||(t=bl.create()),null!=e.account&&Object.hasOwnProperty.call(e,"account")&&t.uint32(10).string(e.account),null!=e.langCode&&Object.hasOwnProperty.call(e,"langCode")&&t.uint32(18).string(e.langCode),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.WebGetLoginCodeReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.account=e.string();break;case 2:n.langCode=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/WebGetLoginCodeReq"},e})(),El=wl.WebGetLoginCodeResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.encode=function(e,t){return t||(t=bl.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.WebGetLoginCodeResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/WebGetLoginCodeResp"},e})(),Rl=wl.WebGetLoginCodeVerifyReq=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.account="",e.prototype.langCode="",e.prototype.code="",e.encode=function(e,t){return t||(t=bl.create()),null!=e.account&&Object.hasOwnProperty.call(e,"account")&&t.uint32(10).string(e.account),null!=e.langCode&&Object.hasOwnProperty.call(e,"langCode")&&t.uint32(18).string(e.langCode),null!=e.code&&Object.hasOwnProperty.call(e,"code")&&t.uint32(26).string(e.code),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.WebGetLoginCodeVerifyReq;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.account=e.string();break;case 2:n.langCode=e.string();break;case 3:n.code=e.string();break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/WebGetLoginCodeVerifyReq"},e})(),Tl=wl.ClickOKToWebResp=(()=>{function e(e){if(e)for(let t=Object.keys(e),r=0;r<t.length;++r)null!=e[t[r]]&&(this[t[r]]=e[t[r]])}return e.prototype.errorCode=0,e.prototype.errorMessage="",e.prototype.deviceId=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.sessionId=Cl.Long?Cl.Long.fromBits(0,0,!1):0,e.prototype.noNickName=!1,e.prototype.noEmail=!1,e.prototype.cert="",e.prototype.userFileDomain="",e.prototype.dialogFileDomain="",e.prototype.user=null,e.encode=function(e,t){return t||(t=bl.create()),null!=e.errorCode&&Object.hasOwnProperty.call(e,"errorCode")&&t.uint32(8).int32(e.errorCode),null!=e.errorMessage&&Object.hasOwnProperty.call(e,"errorMessage")&&t.uint32(18).string(e.errorMessage),null!=e.deviceId&&Object.hasOwnProperty.call(e,"deviceId")&&t.uint32(24).int64(e.deviceId),null!=e.sessionId&&Object.hasOwnProperty.call(e,"sessionId")&&t.uint32(32).int64(e.sessionId),null!=e.noNickName&&Object.hasOwnProperty.call(e,"noNickName")&&t.uint32(40).bool(e.noNickName),null!=e.noEmail&&Object.hasOwnProperty.call(e,"noEmail")&&t.uint32(48).bool(e.noEmail),null!=e.cert&&Object.hasOwnProperty.call(e,"cert")&&t.uint32(58).string(e.cert),null!=e.userFileDomain&&Object.hasOwnProperty.call(e,"userFileDomain")&&t.uint32(74).string(e.userFileDomain),null!=e.dialogFileDomain&&Object.hasOwnProperty.call(e,"dialogFileDomain")&&t.uint32(82).string(e.dialogFileDomain),null!=e.user&&Object.hasOwnProperty.call(e,"user")&&wl.User.encode(e.user,t.uint32(90).fork()).ldelim(),t},e.decode=function(e,t){e instanceof vl||(e=vl.create(e));let r=void 0===t?e.len:e.pos+t,n=new wl.ClickOKToWebResp;for(;e.pos<r;){let t=e.uint32();switch(t>>>3){case 1:n.errorCode=e.int32();break;case 2:n.errorMessage=e.string();break;case 3:n.deviceId=e.int64();break;case 4:n.sessionId=e.int64();break;case 5:n.noNickName=e.bool();break;case 6:n.noEmail=e.bool();break;case 7:n.cert=e.string();break;case 9:n.userFileDomain=e.string();break;case 10:n.dialogFileDomain=e.string();break;case 11:n.user=wl.User.decode(e,e.uint32());break;default:e.skipType(7&t)}}return n},e.getTypeUrl=function(e){return void 0===e&&(e="type.googleapis.com"),e+"/ClickOKToWebResp"},e})();let Al;const _l=async(t,r,n)=>{if(r instanceof hi==!1)return Yi.warn("send message fail -> message parameter is not an instance of BaseMessage"),{code:e.ErrorCode.PARAMETER_ERROR};aa("conversation",t,sa,!0),kl(t);const o=await Al.sendMessage(t,r,n);return Ml(t,o.code),o},kl=e=>{const t="conversationType:"+e.conversationType+",targetId:"+e.targetId;Yi.debug("send message ->"+t)},Ml=(t,r)=>{if(r!==e.ErrorCode.SUCCESS){const e="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.warn("send message fail ->"+r+":"+n(r)+","+e)}};e.ChatRecordMessage=Si,e.ContactMessage=Ei,e.ErrorDesc=n,e.FileMessage=wi,e.GIFMessage=bi,e.GroupCloseBurnAfterReadingMessage=ji,e.GroupMessagePinnedNotification=qi,e.GroupOpenBurnAfterReadingMessage=Ui,e.HQVoiceMessage=Ci,e.ImageMessage=vi,e.InvitationMessage=Ri,e.LinkMessage=_i,e.LocationMessage=Ii,e.MessageTypes=ss,e.NotiMessageTypes=cs,e.PrivateCloseBurnAfterReadingMessage=Di,e.PrivateMessagePinnedNotification=Gi,e.PrivateOpenBurnAfterReadingMessage=Li,e.RecallCommandMessage=Ki,e.RedEnvelopeMessage=Ti,e.TextMessage=mi,e.TransferMessage=Ai,e.VideoMessage=Oi,e.addEventListener=(e,t,r)=>{Al.on(e,t,r)},e.clearAllMessagesUnreadStatus=()=>(Yi.debug("clear allMessagesUnreadStatus"),Al.clearAllConversationsUnreadCount(),Promise.resolve({code:e.ErrorCode.SUCCESS})),e.clearBurnAfterReadingExpiredMessages=async t=>{aa("conversation",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("clear burn after reading expired messages ->"+r);const n=await Al.clearBurnAfterReadingExpiredMessages(t);return n.length>0&&Yi.debug(`已清除会话 ${r} 中的 ${n.length} 条阅后即焚过期消息`),Promise.resolve({code:e.ErrorCode.SUCCESS,data:n})},e.clearHistoryMessages=async t=>{aa("conversation",t,sa);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("clear message ->"+r);const o=await Al.deleteHistoryMessages(t);return o!==e.ErrorCode.SUCCESS?(Yi.warn("clear message ->"+o+":"+n(o)+","+r),{code:o,msg:n(o)}):{code:e.ErrorCode.SUCCESS}},e.clearMessagesUnreadStatus=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;return Yi.debug("clear unreadMsgNum ->"+r),Al.clearConversationUnreadCount(t),Promise.resolve({code:e.ErrorCode.SUCCESS})},e.clearTextMessageDraft=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;return Yi.debug("delete draft ->"+r),Al.clearConversationMessageDraft(t),Promise.resolve({code:e.ErrorCode.SUCCESS})},e.commentMessage=async(t,r)=>{aa("options.messageUId",r.messageUId,Qi,!0),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId+",messageUId:"+r.messageUId;Yi.debug("comment message ->"+o);const s=await Al.commentMsg(t,r);return s.code!==e.ErrorCode.SUCCESS&&Yi.warn("comment message fail ->"+s.code+":"+n(s.code)+","+o),s},e.connect=async()=>{const t=await Al.connect();return t.code===e.ErrorCode.SUCCESS?{code:t.code}:{code:t.code,msg:n(t.code)}},e.deleteLegacyDatabase=async()=>{const e=ti.get();if(!e)throw new Error("Message database is not initialized for a logged-in user");await e.deleteLegacyDatabase()},e.deleteLocalDatabase=e=>Al.deleteLocalDatabase(e),e.deleteLocalMessages=async(e,t)=>(aa("conversation",e,sa,!0),aa("messageUIds",t,e=>lt(e)&&e.length>0,!0),t.forEach(e=>{aa("messageUIds.messageUId",e,Qi,!0)}),{code:await Al.deleteLocalMessages(e,t)}),e.deleteMessages=async(t,r)=>{aa("messages",r,e=>lt(e)&&!!e.length,!0),r.forEach(e=>{aa("messages.messageUId",e.messageUId,Qi,!0),aa("messages.sentTime",e.sentTime,ea,!1),aa("messages.messageDirection",e.messageDirection,e=>1===e||2===e,!1)}),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("delete messages ->"+o);const s=await Al.deleteRemoteMessage(t,r);return s!==e.ErrorCode.SUCCESS?(Yi.warn("delete message fail ->"+s+":"+n(s)+","+o),{code:s,msg:n(s)}):{code:e.ErrorCode.SUCCESS}},e.disconnect=()=>Al.disconnect(),e.encodeReceivedMessage2ChatRecordMsgDetail=e=>Ls.encodeReceivedMessage2ChatRecordMsgDetail(e),e.forwardMessage=async(e,t,r)=>{aa("conversation",e,sa,!0),aa("originalMessage",t,ra,!0),kl(e);const n=await Al.forwardMessage(e,t,r);return Ml(e,n.code),n},e.getAllConversationState=()=>{Yi.debug("getAllConversationState");const t=Al.getAllConversationState();return Promise.resolve({code:e.ErrorCode.SUCCESS,data:t})},e.getAllUnreadMentionedCount=()=>{Yi.debug("getAllUnreadMentionedCount");const t=Al.getAllUnreadMentionedCount();return Promise.resolve({code:e.ErrorCode.SUCCESS,data:t})},e.getBlockedConversationList=()=>Al.getBlockConversationList(),e.getCachedDialogFilterConfig=()=>gi,e.getConnectionStatus=()=>Al.getConnectionStatus(),e.getConversation=async t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("get conversation ->"+r);const{code:o,data:s}=await Al.getConversation(t);return o!==e.ErrorCode.SUCCESS?(Yi.warn("get conversation fail ->"+o+":"+n(o)+","+r),{code:o,msg:n(o)}):{code:o,data:s}},e.getConversationList=async t=>{Yi.debug("get conversation list ->");const{code:r,data:o}=await Al.getConversationList(t?.count??20,null,t?.startTime??0,t?.order??0);return r!==e.ErrorCode.SUCCESS&&Yi.warn("get conversation list fail ->"+r+":"+n(r)),{code:r,msg:n(r),data:o}},e.getConversationNotificationLevel=t=>{aa("options",t,sa,!0),Yi.info("getConversationNotificationLevel ->targetId:"+t.targetId+",conversationType:"+t.conversationType);const r=Al.getConversationNotificationLevel(t);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:r})},e.getConversationNotificationStatus=t=>{aa("options",t,sa,!0),Yi.info("getConversationNotificationStatus ->targetId:"+t.targetId+",conversationType:"+t.conversationType);const r=Al.getConversationNotificationStatus(t);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:r})},e.getConversationState=e=>(Yi.debug("getConversationState"),Al.getConversationState(e)),e.getHistoryMessages=async(t,r)=>{aa("options.count",r.count??0,ea),aa("options.order",r.order??0,e=>0===e||1===e),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("get history messages ->"+o),nt(r.timestamp)&&(r.timestamp=r.timestamp.toString());let s=await Al.getHistoryMessages(t,r);return s.code!==e.ErrorCode.SUCCESS&&Yi.warn("get history message fail ->"+s.code+":"+n(s.code)+","+o),s},e.getLegacyMediaReferences=async(e=0,t=500)=>{const r=ti.get();if(!r)throw new Error("Message database is not initialized for a logged-in user");return r.getLegacyMediaReferences(e,t)},e.getLegacyMigrationInfo=async()=>{const e=ti.get();if(!e)throw new Error("Message database is not initialized for a logged-in user");return e.getLegacyMigrationInfo()},e.getMessageById=async t=>{const r=await Al.getMessageById(t);return{code:e.ErrorCode.SUCCESS,data:r}},e.getMessageByUId=async t=>{const r=await Al.getMessageByUId(t);return{code:e.ErrorCode.SUCCESS,data:r}},e.getMessagesByType=async(e,t,r={})=>{aa("conversation",e,sa,!0);const n=Array.isArray(t)?[...t]:[t];return n.forEach((e,t)=>{aa(`messageTypes[${t}]`,e,ea,!0)}),nt(r.count)&&aa("options.count",r.count,ea,!0),nt(r.order)&&aa("options.order",r.order,e=>0===e||1===e),nt(r.timestamp)&&(r.timestamp=r.timestamp.toString()),Al.getMessagesByType(e,n,r)},e.getPinnedMessages=async(e,t=50)=>(aa("conversation",e,sa,!0),aa("count",t,e=>Number.isInteger(e)&&e>0,!0),Al.getPinnedMessages(e,t)),e.getRemoteHistoryMessages=async(t,r)=>{aa("options.count",r.count??0,ea),aa("options.order",r.order??0,e=>0===e||1===e),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;let s;return Yi.debug("get remote history message ->"+o),nt(r.timestamp)&&(r.timestamp=r.timestamp.toString()),s=r.order?await Al.getHistoryMessages(t,r):await Al.getPreviousHistoryMessages(t,r.timestamp,r.count),s.code!==e.ErrorCode.SUCCESS&&Yi.warn("get remote history message fail ->"+s.code+":"+n(s.code)+","+o),s},e.getServerTime=()=>Al.getServerTime(),e.getTextMessageDraft=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("get draft ->"+r);const n=Al.getConversationMessageDraft(t);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:n})},e.getTopConversationList=()=>Al.getTopConversationList(),e.getTotalUnreadCount=(t,r)=>{if(Yi.debug("get total unread count -> ConversationType:"+JSON.stringify(r)+" includeMuted:"+t),aa("includeMuted",t,ta,!1),aa("conversationTypes",r,na,!1),r)for(const e of r)aa("conversationType",e,oa,!0);const n=Al.getAllConversationUnreadCount(r??[],t??!1);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:n})},e.getUnreadCount=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("get unreadCount ->"+r);const n=Al.getConversationUnreadCount(t);return Promise.resolve({code:e.ErrorCode.SUCCESS,data:n})},e.getUnreadMentionedCount=t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;return Yi.debug("get unreadMentionedCount ->"+r),Promise.resolve({code:e.ErrorCode.SUCCESS,data:Al.getUnreadMentionedCount(t)})},e.init=e=>{Al=Al||new ml(e)},e.insertMessage=async(e,t,r)=>Al.insertMessage(e,t,r),e.isRecallMessageType=ls,e.logOut=()=>Al.logOut(),e.mergeForwardMessages=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("originalMessages",t,na,!0),aa("chatTitle",r,Qi,!0),kl(e);const o=await Al.mergeForwardMessages(e,t,r,n);return Ml(e,o.code),o},e.migrateLegacyDatabase=async e=>{const t=ti.get();if(!t)throw new Error("Message database is not initialized for a logged-in user");return t.migrateLegacyDatabase(e)},e.mockGetLoginCode=e=>(e=>un.request(805404721,{langCode:e.langCode,account:e.phone},{encoder:Sl,decoder:El}))(e),e.mockLogin=e=>(e=>un.request(805376017,{langCode:e.langCode,phoneNum:e.phone,password:tt.SHA256(e.password).toString(),deviceType:7,imei:"59bc678b-fe6d-4e67-87c6-b0692205134b",brand:"Chrome",model:"Mozilla",appVersion:"1.0.0",osVersion:"1.0.0"},{encoder:Ol,decoder:Il}))(e),e.mockVerifyLoginCode=e=>(e=>un.request(805404723,{langCode:e.country,account:e.phone,code:e.code},{encoder:Rl,decoder:Tl}))(e),e.onceEventListener=function(e,t,r){Al.once(e,t,r)},e.parseChatRecordMsgDetails=(e,t)=>Ls.decodeChatRecordMsgDetails2ReceivedMessages(e,t),e.recallMessage=async(t,r)=>{aa("options.messageUId",r.messageUId,Qi,!0),aa("conversation",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId+",messageUId:"+r.messageUId;Yi.debug("recall message ->"+o);const s=await Al.recallMsg(t,r);return s.code!==e.ErrorCode.SUCCESS&&Yi.warn("recall message fail ->"+s.code+":"+n(s.code)+","+o),s},e.registerMessageType=(e,t,r,n)=>{let o=function(o){return new hi(e,o,t,r,n)};return Zo(e,o),o},e.remapIncomingRecallConstructor=us,e.removeConversation=async t=>{aa("options",t,sa,!0);const r="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("remove conversation ->"+r);const o=await Al.removeConversation(t);return o!==e.ErrorCode.SUCCESS?(Yi.warn("remove conversation fail ->"+o+":"+n(o)+","+r),{code:o,msg:n(o)}):{code:o}},e.removeEventListener=(e,t,r)=>{Al?.off(e,t,r)},e.request=(e,t,r,n=3e4)=>un.request(e,t,r,n),e.saveTextMessageDraft=(t,r)=>{aa("options",t,sa,!0),aa("draft",r,Qi,!0);const n="conversationType:"+t.conversationType+",targetId:"+t.targetId;return Yi.debug("set draft ->"+n),Al.saveConversationMessageDraft(t,r),Promise.resolve({code:e.ErrorCode.SUCCESS})},e.searchMessages=async(t,r=500)=>{const n=await Al.searchMessages(t,r);return{code:e.ErrorCode.SUCCESS,data:n}},e.searchTextMessages=async(t,r)=>{const n=await Al.searchTextMessages(t,r);return{code:e.ErrorCode.SUCCESS,data:n}},e.sendFileMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob,!0);const o="conversationType:"+e.conversationType+",targetId:"+e.targetId;Yi.debug("send message ->"+o),kl(e);const s=await Al.sendFileMessage(e,t,r,n);return Ml(e,s.code),s},e.sendGIFMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob&&e.type.endsWith("image/gif"),!0);const o="conversationType:"+e.conversationType+",targetId:"+e.targetId;Yi.debug("send message ->"+o),kl(e);const s=await Al.sendGIFMessage(e,t,r,n);return Ml(e,s.code),s},e.sendHQVoiceMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob,!0),kl(e);const o=await Al.sendHQVoiceMessage(e,t,r,n);return Ml(e,o.code),o},e.sendImageMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob&&e.type.startsWith("image/"),!0);const o="conversationType:"+e.conversationType+",targetId:"+e.targetId;Yi.debug("send message ->"+o),kl(e);const s=await Al.sendImageMessage(e,t,r,n);return Ml(e,s.code),s},e.sendMessage=_l,e.sendQuoteReplyMessage=async(e,t,r)=>await Al.sendQuoteReplyMessage(e,t,r),e.sendReadReceipts=async(t,r=Date.now())=>{try{return await Al.sendReadReceipts(t,r),{code:e.ErrorCode.SUCCESS}}catch(t){return{code:e.ErrorCode.UNKNOWN}}},e.sendSightMessage=async(e,t,r,n)=>{aa("conversation",e,sa,!0),aa("uploader",Tt.getUploader(),ra,!0),aa("msgBody.file",t.file,e=>e instanceof Blob&&e.type.startsWith("video/"),!0),kl(e);const o=await Al.sendSightMessage(e,t,r,n);return Ml(e,o.code),o},e.sendTextMessage=(e,t,r)=>{const n=new mi(t);return _l(e,n,r)},e.setConversationBurnAfterReading=async(t,r,o=0)=>{aa("conversation",t,sa,!0),aa("enabled",r,ta,!0),aa("burnAfterReadingTime",o,e=>Number.isSafeInteger(e)&&e>=0,!0);const s=await Al.setConversationBurnAfterReading(t,r,r?o:0);return s!==e.ErrorCode.SUCCESS?{code:s,msg:n(s)}:{code:e.ErrorCode.SUCCESS}},e.setConversationNotificationStatus=async(t,r)=>{aa("options",t,sa,!0),aa("notificationStatus",r,e=>1===e||2===e,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("set conversation status ->"+o);const s=await Al.setConversationNotificationStatus(t,r);return s!==e.ErrorCode.SUCCESS?(Yi.warn("set conversation status fail ->"+s+":"+n(s)+","+o),{code:s,msg:n(s)}):{code:s}},e.setConversationToTop=async(t,r=!0)=>{aa("options",t,sa,!0);const o="conversationType:"+t.conversationType+",targetId:"+t.targetId;Yi.debug("set conversation status ->"+o);const s=await Al.setConversationToTop(t,r);return s!==e.ErrorCode.SUCCESS?(Yi.warn("set conversation status fail ->"+s+":"+n(s)+","+o),{code:s,msg:n(s)}):{code:s}},e.setMessagePinned=async(t,r,o,s="everyone")=>{aa("conversation",t,sa,!0),aa("messageUId",r,Qi,!0),aa("pinned",o,ta,!0),aa("scope",s,e=>"everyone"===e||"me"===e,!0);const i=await Al.setMessagePinned(t,r,o,s);return i!==e.ErrorCode.SUCCESS?{code:i,msg:n(i)}:{code:e.ErrorCode.SUCCESS}},e.setUserLogged=e=>Al.setUserLogged(e),e.unpinAllMessages=async t=>{aa("conversation",t,sa,!0);const r=await Al.unpinAllMessages(t);return r!==e.ErrorCode.SUCCESS?{code:r,msg:n(r)}:{code:e.ErrorCode.SUCCESS}},e.updateMessage=async t=>{try{const r=await Al.updateMessage(t);return{code:e.ErrorCode.SUCCESS,data:r}}catch(t){return Yi.error("updateMessage -> ",t),{code:e.ErrorCode.UNKNOWN,msg:t instanceof Error?t.message:String(t)}}}});