k2-im 0.1.20 → 0.1.21
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/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +38 -7
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +5 -0
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +78 -8
- package/dist/chat-kit.js +1 -1
- package/dist/{chunk-EEICKR6L.js → chunk-2GZMQCIP.js} +1 -1
- package/dist/{chunk-BKZ3VNAT.js → chunk-4X7RCGEV.js} +1 -1
- package/dist/chunk-5I7S6LWE.js +2 -0
- package/dist/chunk-A2BLOVZ5.js +2 -0
- package/dist/chunk-DN4H5C7G.js +2 -0
- package/dist/chunk-P4HOR4XO.js +1 -0
- package/dist/chunk-YAM4YHKF.js +7 -0
- package/dist/i18n.d.ts +23 -7
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +129 -17
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +69 -10
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-4RG5NHIL.js +0 -7
- package/dist/chunk-67E52PC5.js +0 -2
- package/dist/chunk-IYDCZ2PY.js +0 -1
- package/dist/chunk-LNCHWSAT.js +0 -2
- package/dist/chunk-ZDD7A2BS.js +0 -1
package/dist/chunk-ZDD7A2BS.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';var Pr=1024,wr=9;function fs(e){let n=e.caption!==void 0&&e.caption.trim()!=="",t=e.items.length===1?e.items[0]:void 0;return n||t===void 0?"mediaAlbum":t.kind}var ms=512*1024,ys=256*1024;function Qn(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r!=="")return r}}function Zn(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""){let o=Number(r);if(Number.isFinite(o))return o}}}function Tp(e,n){for(let t of n){let r=e[t];if(typeof r=="boolean")return r;if(typeof r=="number"&&(r===0||r===1))return r===1;if(r==="true"||r==="false")return r==="true"}}function ps(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Yd(e){let n=e.replace(/\s+/g,"");if(!(n===""||n.length%4!==0||!/^[A-Z0-9+/]*={0,2}$/i.test(n)))try{let t=globalThis.atob(n);return Uint8Array.from(t,r=>r.charCodeAt(0))}catch{return}}function Xd(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function vp(e){return e!==void 0&&e!==1}function bp(e){if(!ps(e))return;let n=Zn(e,["mediaType","type"]);if(n!==1&&n!==2)return;let t=Qn(e,["url","content"]);if(t===void 0)return;let r=Zn(e,["fileEncryptType"]),o,i=Qn(e,["teaKey"]);if(i!==void 0&&(o=Yd(i)),vp(r)&&(o===void 0||o.length===0))return;let a=Zn(e,["width","imageWidth"])??0,s=Zn(e,["height","imageHeight"])??0,d={kind:n===2?"video":"image",url:t,width:Number.isInteger(a)&&a>0?a:0,height:Number.isInteger(s)&&s>0?s:0},g=Zn(e,["duration"]);d.kind==="video"&&g!==void 0&&g>0&&(d.durationMs=g);let p=Qn(e,["thumbUrl","thumbURL","thumbnailUrl","thumbnailURL"]);p!==void 0&&(d.thumbUrl=p);let f=Qn(e,["thumbData"]);if(f!==void 0){let G=Yd(f);G!==void 0&&G.length>0&&(d.thumbData=G);}let v=Qn(e,["md5","MD5"]);v!==void 0&&(d.md5=v);let C=Zn(e,["fileSize","fileLength"]);C!==void 0&&C>0&&(d.size=C),o!==void 0&&o.length>0&&(d.teaKey=o),r!==void 0&&(d.fileEncryptType=r);let E=Tp(e,["hd","isHd","isHD"]);return E!==void 0&&(d.hd=E),d}function Is(e){let n=JSON.parse(e.content);if(!ps(n))throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u9876\u5C42\u4E0D\u662F\u5BF9\u8C61");let t=n,r=n.content;if(typeof r=="string"&&r!==""){let d=JSON.parse(r);if(!ps(d))throw new Error("\u5A92\u4F53\u5408\u96C6\u5D4C\u5957\u6B63\u6587\u4E0D\u662F\u5BF9\u8C61");t=d;}let o=t.items,i=[];if(Array.isArray(o))for(let d of o){let g=bp(d);g!==void 0&&i.push(g);}let a={items:i},s=Qn(t,["caption"]);return s!==void 0&&s.trim()!==""&&(a.caption=s),a}function _p(e){return {mediaType:e.kind==="video"?2:1,url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0&&e.durationMs>0?{duration:e.durationMs}:{},...e.thumbUrl!==void 0&&e.thumbUrl!==""?{thumbUrl:e.thumbUrl}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:Xd(e.thumbData)}:{},...e.md5!==void 0&&e.md5!==""?{md5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileSize:e.size}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:Xd(e.teaKey)}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...e.hd!==void 0?{hd:e.hd}:{}}}function Vr(e){return new TextEncoder().encode(e).length}function mt(e){if(e.items.length===0)throw new Error("\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u6CA1\u6709\u53EF\u53D1\u9001\u7684\u9879");if(e.items.length>9)throw new Error(`\u5A92\u4F53\u5408\u96C6\u9879\u6570\u8D85\u8FC7\u4E0A\u9650\uFF1A${e.items.length} > 9`);if(e.caption!==void 0&&e.caption.length>1024)throw new Error(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u8D85\u8FC7 1024 \u5B57\u7B26\u4E0A\u9650\uFF1A${e.caption.length}`);let n=e.caption!==void 0&&e.caption.trim()!==""?e.caption:void 0,t=JSON.stringify({...n===void 0?{}:{caption:n},items:e.items.map(_p)}),r=Vr(t);if(r>=ms)throw new Error(`\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u8FBE\u5230 ${ms} \u5B57\u8282\u4E0A\u9650\uFF1A${r}`);let o=e.items.find(i=>i.thumbData!==void 0&&i.thumbData.length>0)?.thumbData;return {contentType:28,content:t,...o===void 0?{}:{thumbData:o}}}function Cs(e){return e===1?"gif":"sticker"}function Or(e){if(typeof e!="string"||e.trim()==="")return false;try{let n=new URL(e.trim());return (n.protocol==="https:"||n.protocol==="http:")&&n.username===""&&n.password===""}catch{return false}}function Fn(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function Ss(e){if(e.exprType===2){if(!Or(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!Fn(e.width)||!Fn(e.height))throw new Error("sticker body: LINK \u5C3A\u5BF8\u975E\u6CD5")}let n={url:e.content,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType};return e.fileLength>0n&&(n.size=Number(e.fileLength)),e.describe!==""&&(n.describe=e.describe),e.contentId!==""&&(n.contentId=e.contentId),e.exprePackageName!==""&&(n.packageName=e.exprePackageName),e.thumbData.length>0&&(n.thumbData=e.thumbData),n}function As(e){if(e.exprType===2){if(!Or(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!Fn(e.width)||e.width===0||!Fn(e.height)||e.height===0)throw new Error("sticker body: \u51FA\u7AD9 LINK \u5C3A\u5BF8\u5FC5\u987B\u4E3A\u6B63 uint32")}return {contentType:7,content:e.url,width:e.width,height:e.height,exprType:e.exprType,imageType:e.imageType,...e.size!==void 0&&e.size>0?{fileLength:BigInt(e.size)}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.contentId!==void 0&&e.contentId!==""?{contentId:e.contentId}:{},...e.packageName!==void 0&&e.packageName!==""?{exprePackageName:e.packageName}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{}}}var zd,qd,Np={text:e=>e.text??"",file:e=>[e.file?.fileName,e.file?.extension].filter(n=>n!==void 0&&n!=="").join(" "),contact:e=>[e.contact?.displayName,e.contact?.username,e.contact?.targetId].filter(n=>n!==void 0&&n!=="").join(" "),image:()=>"",video:()=>"",voice:()=>"",sticker:()=>"",mediaAlbum:e=>e.mediaAlbum?.caption?.trim()??"",miniProgram:e=>[e.miniProgram?.name,e.miniProgram?.description].filter(n=>n!==void 0&&n!=="").join(" "),game:()=>"",transfer:e=>[e.transfer?.fromUserName,e.transfer?.toUserName,e.transfer?.remark,e.transfer?.coinName].filter(n=>n!==void 0&&n!=="").join(" "),call:()=>"",redPacket:e=>e.redPacket?.coinName?.trim()??"",system:()=>"",unknown:()=>""};function Kr(e){return Np[e.contentType](e.body)}function Dp(e,n){let t=[],r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");for(let o of e.matchAll(new RegExp(r,"giu"))){let i=o.index;t.push(Object.freeze({start:i,end:i+o[0].length}));}return Object.freeze(t)}function Gp(e,n){if(n.length===0)return Object.freeze([]);let t=[...new Set(n)].filter(a=>Number.isSafeInteger(a)&&a>=0&&a<e.length).sort((a,s)=>a-s);if(t.length===0)return Object.freeze([]);let r=[],o=t[0],i=o;for(let a of t.slice(1)){if(a===i+1){i=a;continue}r.push(Object.freeze({start:o,end:i+1})),o=a,i=a;}return r.push(Object.freeze({start:o,end:i+1})),Object.freeze(r)}function Up(){return zd??=import('pinyin-pro').then(e=>e.match),zd}function kp(){return qd??=import('pinyin-pro').then(e=>e.pinyin),qd}async function xp(e){let t=e.trim().charAt(0);if(/^[A-Z]$/i.test(t))return t.toLocaleUpperCase();if(!/\p{Script=Han}/u.test(t))return "#";let i=(await kp())(t,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(i??"")?i:"#"}async function Es(e){let n=e.trim().toLocaleLowerCase();if(n==="")throw new Error("IM \u6587\u672C\u641C\u7D22\u5173\u952E\u8BCD\u4E0D\u80FD\u4E3A\u7A7A");let t=n.replace(/[\s'-]+/g,""),o=/^[a-z]+$/.test(t)?await Up():void 0;return Object.freeze({keyword:n,match(i,a={}){let s=Dp(i,n);if(s.length>0)return Object.freeze({method:"direct",ranges:s});if(a.pinyin===false||o===void 0||!/\p{Script=Han}/u.test(i))return null;let d=o(i,t);if(d===null)return null;let g=Gp(i,d);return g.length===0?null:Object.freeze({method:"pinyin",ranges:g})}})}var Bp=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function Fp(e,n){if(e==="")return [{kind:"text",text:""}];let t=[...Vp(e,n)];if(n.matchers!==void 0)for(let r of n.matchers)t.push(...r(e));return t.length===0?[{kind:"text",text:e}]:(t.sort((r,o)=>r.start-o.start||o.end-r.end),Pp(e,t))}function Pp(e,n){let t=[],r=0;for(let o of n)o.start<r||o.start<0||o.end<o.start||o.end+1>e.length||(o.start>r&&t.push({kind:"text",text:e.slice(r,o.start)}),t.push(o.segment),r=o.end+1);return r<e.length&&t.push({kind:"text",text:e.slice(r)}),t.length>0?t:[{kind:"text",text:e}]}function wp(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function Vp(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?Op(n.atAllTexts??Bp):/\[(\d+)\]/g,o=[],i=r.exec(e);for(;i!==null;){let a=i[1];if(a!==void 0&&!t.atUserIds.includes(a)){i=r.exec(e);continue}let s=a===void 0?{kind:"mention",text:n.atAllDisplay??i[0],atAll:true,isMe:true}:wp(a,n);o.push({start:i.index,end:i.index+i[0].length-1,segment:s}),i=r.exec(e);}return o}function Op(e){let n=e.filter(r=>r!=="");if(n.length===0)return /\[(\d+)\]/g;let t=[...n].sort((r,o)=>o.length-r.length).map(r=>`${Kp(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function Kp(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var Lp=new Set(["audio","video"]),Zp=new Set(["missed","rejected","cancelled","completed","busy","no-permission","interrupted","unknown"]);function cn(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function Rs(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function Ms(e,n){return n===void 0?e:{...e,outgoing:n}}function hs(e,n){let t=cn(e);if(t===void 0)return 0;if(!Number.isFinite(t)||t<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);let r=Math.round(n==="s"?t*1e3:t);if(!Number.isSafeInteger(r)||r<0)throw new Error(`call record: \u65F6\u957F\u975E\u6CD5\uFF08${String(e)}\uFF09`);return r}function Qp(e){let n=e.trim();if(n==="")throw new Error("call record: content \u4E3A\u7A7A");let t;try{t=JSON.parse(n);}catch{throw new Error("call record: content \u4E0D\u662F JSON")}if(t===null||typeof t!="object"||Array.isArray(t))throw new Error("call record: content \u4E0D\u662F\u5BF9\u8C61");return t}function Wp(e){if(e===0)return "video";if(e===1)return "audio";throw new Error(`call record: Android \u672C\u5730 callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function jd(e,n){if(e===0)return "audio";if(e===1)return "video";throw new Error(`call record: ${n} \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Hp(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function Jp(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function Yp(e,n){switch(e){case 0:case 5:return "missed";case 1:return n>0?"completed":"cancelled";case 2:return n>0?"completed":"missed";case 3:case 4:return "rejected";case 6:return "busy";case 7:return "no-permission";case 8:return "interrupted";default:return "unknown"}}function Xp(e){let n=cn(e.callType);if(n===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callType");let t=cn(e.callStatus);if(t===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callStatus");return Ms({callKind:jd(n,"Android \u540C\u6B65 callType"),outcome:Jp(t),durationMs:hs(e.callDuration,"ms")},Rs(e.isCaller))}function zp(e){let n=cn(e.callType);if(n===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callType");let t=cn(e.callStatus);if(t===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callStatus");return Ms({callKind:Wp(n),outcome:Hp(t),durationMs:hs(e.duration,"ms")},Rs(e.isCaller))}function qp(e){let n=cn(e.type);if(n===void 0)throw new Error("call record: iOS \u7F3A\u5C11 type");let t=cn(e.status);if(t===void 0)throw new Error("call record: iOS \u7F3A\u5C11 status");let r=hs(e.content,"s");return Ms({callKind:jd(n,"iOS type"),outcome:Yp(t,r),durationMs:r},Rs(e.isCaller))}function $d(e){if(e===null||typeof e!="object")return false;let n=e;return !(!Lp.has(n.callKind)||!Zp.has(n.outcome)||typeof n.durationMs!="number"||!Number.isSafeInteger(n.durationMs)||n.durationMs<0||n.outgoing!==void 0&&typeof n.outgoing!="boolean")}function ec(e){let n=Qp(e.content);if("callDuration"in n)return Xp(n);if(cn(n.callType)!==void 0&&cn(n.callStatus)!==void 0)return zp(n);if(cn(n.type)!==void 0&&cn(n.status)!==void 0)return qp(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function nc(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function jp(e){switch(e){case 0:return {kind:"individual"};case 1:return {kind:"group"};case 2:return {kind:"channel"};case 3:return {kind:"robot"};default:return {kind:"unknown",rawKind:e}}}function $p(e,n){switch(e){case "individual":return 0;case "group":return 1;case "channel":return 2;case "robot":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("contact body: unknown \u540D\u7247\u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawKind/visitCardKey");return n}}function tc(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...jp(e.visitCardKey)}}function rc(e){return {contentType:8,content:"",id:e.targetId,...e.avatar===void 0||e.avatar===""?{}:{icon:e.avatar},name:e.displayName,...e.username===void 0||e.username===""?{}:{username:e.username},gender:e.gender,visitCardKey:$p(e.kind,e.rawKind)}}function oc(e){let n={url:e.content,fileName:e.fielName};return e.extension!==""&&(n.extension=e.extension),e.fileType!==0&&(n.fileType=e.fileType),e.fileLength>0n&&(n.size=Number(e.fileLength)),e.MD5!==""&&(n.md5=e.MD5),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function ic(e){return {contentType:11,content:e.url,...e.fileName!==""?{fielName:e.fileName}:{},...e.extension!==void 0&&e.extension!==""?{extension:e.extension}:{},...e.fileType!==void 0&&e.fileType!==0?{fileType:e.fileType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size))}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function pt(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.value!="number"||!Number.isInteger(n.value)?false:n.gameType==="rock-paper-scissors"?n.value>=1&&n.value<=3:n.gameType==="dice"&&n.value>=1&&n.value<=6}function sc(e){let n=Number(e.gameType),t=Number(e.gameValue);if(n===0){if(t!==1&&t!==2&&t!==3)throw new Error(`game body: \u77F3\u5934\u526A\u5200\u5E03\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"rock-paper-scissors",value:t}}if(n===1){if(t!==1&&t!==2&&t!==3&&t!==4&&t!==5&&t!==6)throw new Error(`game body: \u9AB0\u5B50\u7ED3\u679C\u975E\u6CD5\uFF08${String(e.gameValue)}\uFF09`);return {gameType:"dice",value:t}}throw new Error(`game body: gameType \u975E\u6CD5\uFF08${String(e.gameType)}\uFF09`)}function ac(e){let n=e;if(!pt(e))throw new Error(`game body: \u51FA\u7AD9\u7ED3\u679C\u975E\u6CD5\uFF08${String(n.gameType)}/${String(n.value)}\uFF09`);return {contentType:27,content:"",gameType:e.gameType==="dice"?1n:0n,gameValue:BigInt(e.value)}}function dc(e){let n={url:e.content,width:e.width,height:e.height};return e.thumbData.length>0&&(n.thumbData=e.thumbData),e.MD5!==""&&(n.md5=e.MD5),e.imageType!==0&&(n.imageType=e.imageType),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function cc(e){return {contentType:2,content:e.url,width:e.width,height:e.height,...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.imageType!==void 0&&e.imageType!==0?{imageType:e.imageType}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function ln(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function ef(e){switch(e){case 0:return {showType:"default"};case 1:return {showType:"board-game"};case 2:return {showType:"board-game-link"};default:return {showType:"unknown",rawShowType:e}}}function nf(e,n){switch(e){case "default":return 0;case "board-game":return 1;case "board-game-link":return 2;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=2)throw new Error("miniProgram body: unknown showType \u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawShowType");return n}}function Wn(e){if(e===null||typeof e!="object")return false;let n=e;return typeof n.appId!="string"||n.appId.trim()===""||typeof n.isDynamicHost!="boolean"?false:n.showType==="unknown"?typeof n.rawShowType=="number"&&Number.isInteger(n.rawShowType)&&n.rawShowType>2&&n.rawShowType<=4294967295:n.showType==="default"||n.showType==="board-game"||n.showType==="board-game-link"}function Ts(e){return {appId:e.miniProgramAppId,...ln(e.miniProgramHost)===void 0?{}:{host:e.miniProgramHost.trim()},...ln(e.miniProgramDeveloperId)===void 0?{}:{developerId:e.miniProgramDeveloperId.trim()},...ln(e.miniProgramName)===void 0?{}:{name:e.miniProgramName.trim()},...ln(e.miniProgramIcon)===void 0?{}:{icon:e.miniProgramIcon.trim()},...ln(e.miniProgramProductId)===void 0?{}:{productId:e.miniProgramProductId.trim()},isDynamicHost:e.miniProgramIsDynamicHost===1,...ln(e.miniProgramSuffixAddress)===void 0?{}:{suffixAddress:e.miniProgramSuffixAddress.trim()},...ef(e.miniProgramShowType),...ln(e.miniProgramDescription)===void 0?{}:{description:e.miniProgramDescription.trim()},...ln(e.currencySource)===void 0?{}:{currencySource:e.currencySource.trim()},...ln(e.miniProgramCurrencyType)===void 0?{}:{currencyType:e.miniProgramCurrencyType.trim()},...ln(e.miniProgramGamePath)===void 0?{}:{gamePath:e.miniProgramGamePath.trim()},...ln(e.miniProgramSubGameName)===void 0?{}:{subGameName:e.miniProgramSubGameName.trim()}}}function vs(e){let n=e;if(!Wn(e))throw new Error(`miniProgram body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.appId)}/${String(n.showType)}\uFF09`);return {contentType:22,content:"",miniProgramAppId:e.appId,...e.host===void 0?{}:{miniProgramHost:e.host},...e.developerId===void 0?{}:{miniProgramDeveloperId:e.developerId},...e.name===void 0?{}:{miniProgramName:e.name},...e.icon===void 0?{}:{miniProgramIcon:e.icon},...e.productId===void 0?{}:{miniProgramProductId:e.productId},miniProgramIsDynamicHost:e.isDynamicHost?1:0,...e.suffixAddress===void 0?{}:{miniProgramSuffixAddress:e.suffixAddress},miniProgramShowType:nf(e.showType,e.rawShowType),...e.description===void 0?{}:{miniProgramDescription:e.description},...e.currencySource===void 0?{}:{currencySource:e.currencySource},...e.currencyType===void 0?{}:{miniProgramCurrencyType:e.currencyType},...e.gamePath===void 0?{}:{miniProgramGamePath:e.gamePath},...e.subGameName===void 0?{}:{miniProgramSubGameName:e.subGameName}}}function ft(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Zr(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function Lr(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`red packet body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function lc(e){return e===1||e===2||e===3||e===4}function tf(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!lc(n.packetType)||n.amount!==void 0&&(typeof n.amount!="string"||n.amount.trim()==="")||n.count!==void 0&&(typeof n.count!="string"||!/^\d+$/.test(n.count.trim()))||n.thunderRate!==void 0&&typeof n.thunderRate!="string"||n.thunderNumber!==void 0&&(typeof n.thunderNumber!="string"||!/^\d+$/.test(n.thunderNumber.trim()))||n.fromUid!==void 0&&(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim()))||n.toUid!==void 0&&(typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim()))||n.currencyType!==void 0&&(typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0)||n.coinName!==void 0&&typeof n.coinName!="string"||n.showAmount!==void 0&&typeof n.showAmount!="boolean"||n.isThunder!==void 0&&typeof n.isThunder!="boolean")}function gc(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!lc(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:Zr(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:Zr(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...ft(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...ft(e.redPacketThunderRate)===void 0?{}:{thunderRate:e.redPacketThunderRate.trim()},...e.redPacketIsThunder?{isThunder:true}:{},...e.redPacketThunderNumber===0n?{}:{thunderNumber:e.redPacketThunderNumber.toString()},...t===void 0?{}:{fromUid:t},...r===void 0?{}:{toUid:r},...e.currencyType===0?{}:{currencyType:e.currencyType},...ft(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function uc(e){let n=e;if(!tf(e))throw new Error(`red packet body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.packetId)}/${String(n.packetType)}\uFF09`);return {contentType:25,content:"",radPacketId:e.packetId.trim(),radPacketType:e.packetType,...e.amount===void 0?{}:{radPacketAmount:e.amount.trim()},...e.count===void 0?{}:{redPacketCount:Lr(e.count,"count")},...e.showAmount===true?{redPacketIsShowAmount:true}:{},...e.thunderRate===void 0?{}:{redPacketThunderRate:e.thunderRate},...e.isThunder===true?{redPacketIsThunder:true}:{},...e.thunderNumber===void 0?{}:{redPacketThunderNumber:Lr(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:Lr(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:Lr(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function mc(e){let n=Zr(e.fromUid,"fromUid"),t=Zr(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=ft(e.radPacketId),i=ft(e.radPacketAmount);return {eventType:r?"red_packet_claimed_thunder":"red_packet_claimed",operatorId:t,targetUserIds:[n],payload:{...o===void 0?{}:{packetId:o},...i===void 0?{}:{amount:i},isThunder:r}}}function bs(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function pc(e,n){if(!bs(e.eventType))return e;let t=e.operatorId??"",r=e.targetUserIds?.[0]??"";if(n!==void 0&&n!==""&&(n===t||n===r)){if(e.timelineVisibility!=="hidden")return e;let{timelineVisibility:i,...a}=e;return a}return e.timelineVisibility==="hidden"?e:{...e,timelineVisibility:"hidden"}}function Hn(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Qr(e,n){if(e<0n)throw new Error(`transfer body: ${n} \u975E\u6CD5`);return e.toString()}function Wr(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`transfer body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function fc(e){return e===0||e===1||e===2||e===3}function yc(e){return e===1||e===2}function Hr(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.fromUid!="string"||!/^\d+$/.test(n.fromUid.trim())||typeof n.toUid!="string"||!/^\d+$/.test(n.toUid.trim())||typeof n.amount!="string"||!/^\d+$/.test(n.amount.trim())||typeof n.serialNumber!="string"||!/^\d+$/.test(n.serialNumber.trim())||typeof n.currencyType!="number"||!Number.isInteger(n.currencyType)||n.currencyType<0||typeof n.transferTime!="number"||!Number.isSafeInteger(n.transferTime)||n.transferTime<0||!fc(n.status)||!yc(n.sessionType))}function _s(e){let n=e.status;if(!fc(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!yc(t))throw new Error(`transfer body: sessionType \u975E\u6CD5\uFF08${String(t)}\uFF09`);return {fromUid:Qr(e.fromUid,"fromUid"),toUid:Qr(e.toUid,"toUid"),amount:Qr(e.amount,"amount"),currencyType:e.currencyType,status:n,serialNumber:Qr(e.serialNumber,"serialNumber"),sessionType:t,transferTime:Number(e.transferTime),...Hn(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Hn(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Hn(e.remark)===void 0?{}:{remark:e.remark.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...Hn(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...Hn(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...Hn(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function Ns(e){let n=e;if(!Hr(e))throw new Error(`transfer body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.status)}\uFF09`);return {contentType:16,content:"",fromUid:Wr(e.fromUid,"fromUid"),toUid:Wr(e.toUid,"toUid"),amount:Wr(e.amount,"amount"),currencyType:e.currencyType,status:e.status,serialNumber:Wr(e.serialNumber,"serialNumber"),sessionType:e.sessionType,transferTime:BigInt(e.transferTime),...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.remark===void 0?{}:{remark:e.remark},...e.receiveTime===void 0?{}:{receiveTime:BigInt(e.receiveTime)},...e.returnTime===void 0?{}:{returnTime:BigInt(e.returnTime)},...e.isRead===void 0?{}:{isRead:e.isRead?1:0},...e.transferMsgId===void 0?{}:{msgId:e.transferMsgId},...e.coinName===void 0?{}:{coinName:e.coinName},...e.coinIcon===void 0?{}:{coinIcon:e.coinIcon}}}function Ic(e){let n={url:e.content,width:e.width,height:e.height},t=rf(e);return t!==void 0&&(n.duration=t),e.thumbData.length>0&&(n.thumbData=e.thumbData),e.describe!==""&&(n.describe=e.describe),e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function rf(e){let n=e.duration;return n<=0?void 0:e.width===0&&e.height===0&&n%1e3===0&&n/1e3<=300?n/1e3:n}function Cc(e){return {contentType:3,content:e.url,width:e.width,height:e.height,...e.duration!==void 0&&e.duration>0?{duration:Math.max(1,Math.round(e.duration))}:{},...e.thumbData!==void 0&&e.thumbData.length>0?{thumbData:e.thumbData}:{},...e.describe!==void 0&&e.describe!==""?{describe:e.describe}:{},...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function Sc(e){let n={url:e.content,durationMs:e.duration};return e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.size=Number(e.fileLength)*1024),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function Ac(e){return {contentType:4,content:e.url,duration:Math.max(0,Math.round(e.durationMs)),...e.md5!==void 0&&e.md5!==""?{MD5:e.md5}:{},...e.size!==void 0&&e.size>0?{fileLength:BigInt(Math.round(e.size/1024))}:{},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}var Tc=1,vc=[{wireContentType:2,domainContentType:"image",parse:e=>({image:dc(e)}),build:e=>e.image!==void 0?cc(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Ic(e)}),build:e=>e.video!==void 0?Cc(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:Sc(e)}),build:e=>e.voice!==void 0?Ac(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:oc(e)}),build:e=>e.file!==void 0?ic(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:Ss(e)}),build:e=>e.sticker!==void 0?As(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:tc(e)}),build:e=>e.contact!==void 0?rc(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:Ts(e)}),build:e=>e.miniProgram!==void 0?vs(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:sc(e)}),build:e=>e.game!==void 0?ac(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:_s(e)}),build:e=>e.transfer!==void 0?Ns(e.transfer):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:ec(e)}),build:e=>e.call!==void 0?nc(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:gc(e)}),build:e=>e.redPacket!==void 0?uc(e.redPacket):void 0},{wireContentType:28,domainContentType:"mediaAlbum",parse:e=>({mediaAlbum:Is(e)}),build:e=>e.mediaAlbum!==void 0?mt(e.mediaAlbum):void 0}],pf=[{contentType:"text",read:e=>e.text},{contentType:"system",read:e=>e.system},{contentType:"image",read:e=>e.image},{contentType:"video",read:e=>e.video},{contentType:"voice",read:e=>e.voice},{contentType:"file",read:e=>e.file},{contentType:"sticker",read:e=>e.sticker},{contentType:"contact",read:e=>e.contact},{contentType:"miniProgram",read:e=>e.miniProgram},{contentType:"game",read:e=>e.game},{contentType:"transfer",read:e=>e.transfer},{contentType:"call",read:e=>e.call},{contentType:"redPacket",read:e=>e.redPacket},{contentType:"mediaAlbum",read:e=>e.mediaAlbum},{contentType:"unknown",read:e=>e.unknown}];function bn(e,n){if(e.contentType===Tc)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:pc(mc(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=vc.find(r=>r.wireContentType===e.contentType);if(t===void 0)return {contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}}};try{return {contentType:t.domainContentType,body:t.parse(e)}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}}function Ds(e,n,t="outgoing message"){let r=pf.filter(o=>o.read(n)!==void 0).map(o=>o.contentType);if(r.length!==1||r[0]!==e){let o=r.length===0?"empty":r.join(",");throw new Error(`${t}: contentType/body \u4E0D\u4E00\u81F4\uFF08contentType=${e}, body=${o}\uFF09`)}gn(n);}function gn(e){if(e.unknown!==void 0)throw new Error("unknown message body \u4E0D\u53EF\u7F16\u7801\u4E3A\u51FA\u7AD9\u6D88\u606F");for(let n of vc){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:Tc,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var Gs=/^[0-9a-f]{32}$/;function tn(e){return Gs.test(e.replace(/-/g,"").toLowerCase())}function en(){return globalThis.crypto.randomUUID()}function Ae(e){let n=e.replace(/-/g,"").toLowerCase();if(!tn(e))throw new Error(`toWireMsgId: \u975E\u6CD5\u6D88\u606F id\u300C${e}\u300D\uFF08\u53BB\u6A2A\u7EBF\u540E\u975E 32 \u4F4D hex\uFF09\uFF0C\u62D2\u7EDD\u4F5C\u4E3A\u51FA\u7AD9 sMsgId`);return n}function Ye(e){let n=e.replace(/-/g,"").toLowerCase();return Gs.test(n)?n:e}function ge(e){let n=e.toLowerCase();return Gs.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function Ce(e,n){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return `${String(t).padStart(16,"0")}:${n}`}function Oe(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var Us=9,ff=20;function yt(e,n){let t=BigInt(e.conversationId),r=BigInt(n.selfId);if(t<=0n)throw new Error("channel outgoing: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(r<=0n)throw new Error("channel outgoing: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Number.isFinite(n.createdAt)||n.createdAt<0)throw new Error("channel outgoing: createdAt \u975E\u6CD5");let o={sRadioId:t,sFromId:r,sMsgId:Ae(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:Us,encrypt:2,bMessage:gn(e.body)};return e.mention!==void 0&&Object.assign(o,yf(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=Ye(e.refMessageId)),o}function yf(e){let n={nNotifyCount:e.atAll?-1:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(BigInt));let t=e.ranges!==void 0&&e.ranges.length>0,r=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;return (t||r)&&(n.extend=JSON.stringify({sendType:0,...r?{atUsersName:e.atUsersName}:{},...t?{atRange:e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))}:{}})),n}function mn(e,n,t){return xs({senderId:e.sFromId,channelId:e.sRadioId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sId,sequence:e.nIncrId,notifyCount:e.nNotifyCount,notifyUsers:e.sNotifyUsers.map(String),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==""&&e.isEdit!=="0",oldMessageId:e.oldMsgId},n,t)}function ks(e,n,t){return xs(_c(e),n,t)}function bc(e,n,t){return xs(_c(e),void 0,t,n)}function _c(e){return {senderId:e.sFromId,channelId:e.sChnnId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sIndex,sequence:e.sIncrId,notifyCount:e.nNotifyCount,notifyUsers:Cf(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function xs(e,n,t,r){If(e,t.edited===true&&e.oldMessageId.trim()!=="");let o=ge(e.messageId),i=e.senderId.toString(),a=e.channelId.toString(),s=Number(e.msgTime),d=s>0?s:t.receivedAt??Date.now(),g=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:bn(n,t.selfId),p=Sf(e,g.body.text??""),f=e.sequence.toString(),v={channelMessageType:Us,channelSequence:f,historyCursor:e.historyCursor};e.oldMessageId!==""&&(v.previousMessageId=ge(e.oldMessageId));let C={id:o,conversationId:a,conversationType:"channel",senderId:i,contentType:g.contentType,body:g.body,createdAt:d,sortKey:Ce(d,`${f.padStart(ff,"0")}:${o}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:v};return t.decryptFailed===true&&(C.encryption.decryptFailed=true),s>0&&(C.serverTime=s),e.parentMessageId!==""&&(C.refMessageId=ge(e.parentMessageId)),(e.edited||t.edited===true)&&(C.edited=true),p!==void 0&&(C.mention=p),t.keepRaw&&(C.raw=Tf(e,n,t.cmdId,r)),C}function If(e,n=false){if(e.channelId<=0n)throw new Error("channel message: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.senderId<=0n)throw new Error("channel message: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel message: message id \u7F3A\u5931");if(e.historyCursor.trim()===""&&!n)throw new Error("channel message: history cursor \u7F3A\u5931")}function Cf(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(Jr)}catch{}return n.split(/[\s,;]+/).filter(Jr)}function Sf(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=Ef(e.notifyUsers.filter(Jr),Af(n)),{ranges:o,atUsersName:i}=Rf(e.extend);if(!(!t&&r.length===0&&o===void 0&&i===void 0))return {atAll:t,atUserIds:r,...o===void 0?{}:{ranges:o},...i===void 0?{}:{atUsersName:i}}}function Af(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function Ef(e,n){return [...new Set([...e,...n])]}function Jr(e){return /^[1-9]\d*$/.test(e)}function Rf(e){if(e==="")return {};try{let n=JSON.parse(e),t=Mf(n.atRange),r=hf(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function Mf(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t;(typeof r.user_id=="string"||typeof r.user_id=="number")&&typeof r.start=="number"&&Number.isInteger(r.start)&&r.start>=0&&typeof r.end=="number"&&Number.isInteger(r.end)&&r.end>=r.start&&n.push({userId:String(r.user_id),start:r.start,end:r.end});}return n.length===0?void 0:n}function hf(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))Jr(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function Tf(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId.toString(),sToId:e.channelId.toString(),msgType:Us,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,parentMsgId:e.parentMessageId||void 0},...n===void 0?{}:{content:{contentType:n.contentType,text:n.content||void 0}},...r===void 0?{}:{contentDecodeFailure:{codec:"BMessage",byteLength:r}}}}var pn=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var ze=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwibAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8SEgoKY2xpZW50VHlwZRgDIAEoDSIzCgxQdWxsQ2hubkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJIlYKElB1bGxDaG5uU2Vzc2lvblJzcBIPCgdlcnJjb2RlGAEgASgNEi8KCWxzU2Vzc2lvbhgCIAMoCzIcLmltLmNoYW5uZWwucHVsbC5TZXNzaW9uSW5mbyKPAQoLU2Vzc2lvbkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJEg8KB3VVbnJlYWQYAyABKA0SJwoEbGFzdBgEIAEoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIPCgd1U3RhdHVzGAUgASgNEhAKCHVFeGlzdEF0GAYgASgNIr4CCghDaG5uQ2hhdBIPCgdzRnJvbUlkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoDBIOCgZleHRlbmQYByABKAkSDgoGc0luZGV4GAggASgJEhQKDG5Ob3RpZnlDb3VudBgJIAEoBRIUCgxzTm90aWZ5VXNlcnMYCiABKAkSFgoOdU9wZXJhdGlvblR5cGUYCyABKA0SDwoHc0luY3JJZBgMIAEoAxITCgtwYXJlbnRNc2dJZBgNIAEoCRINCgVib3RJZBgOIAEoCRIOCgZpc0VkaXQYDyABKAUSEAoIb2xkTXNnSWQYECABKAkSEQoJZXZlbnRUeXBlGBEgASgFIm8KElB1bGxDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEjQKBmxzUHVsbBgCIAMoCzIkLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubk1lc3NhZ2VJbmZvEhIKCmNsaWVudFR5cGUYAyABKA0icgoTUHVsbENobm5NZXNzYWdlSW5mbxIPCgdzQ2hubklkGAEgASgDEhIKCnNCYXNlSW5kZXgYAiABKAkSEgoKdURpcmVjdGlvbhgDIAEoDRIOCgZ1Q291bnQYBCABKA0SEgoKdUlzQ29udGFpbhgFIAEoDSJTChJQdWxsQ2hubk1lc3NhZ2VSc3ASDwoHZXJyY29kZRgBIAEoDRIsCglsc01lc3NhZ2UYAiADKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQiVgoSVXBkYXRlUmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvIjAKDVJlYWRJbmRleEluZm8SDwoHc0Nobm5JZBgBIAEoAxIOCgZzSW5kZXgYAiABKAkiJQoSVXBkYXRlUmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0iNAoPR2V0UmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSEAoIbHNDaG5uSWQYAiADKAMiUwoPR2V0UmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0SLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvInEKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEkEKDmxzU3BlY2lmaWVkTXNnGAIgAygLMikuaW0uY2hhbm5lbC5wdWxsLlB1bGxTcGVjaWZpZWRNZXNzYWdlSW5mbyJEChhQdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxIXCg9zU3BlY2lmaWVkSW5kZXgYAiABKAkiXAobUHVsbFNwZWNpZmllZENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlsKElB1bGxDaG5uTXNnQnlJZFJlcRIPCgdzVXNlcklkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDwoHbHNNc2dJZBgDIAMoCRISCgpjbGllbnRUeXBlGAQgASgNImsKElB1bGxDaG5uTXNnQnlJZFJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIWCg5sc01pc3NpbmdNc2dJZBgDIAMoCSJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),Nc=messageDesc(ze,0);var Dc=messageDesc(ze,2);var Gc=messageDesc(ze,5);var Uc=messageDesc(ze,7),kc=messageDesc(ze,8);var xc=messageDesc(ze,10);messageDesc(ze,11);messageDesc(ze,12);messageDesc(ze,13);messageDesc(ze,15);var Vc=messageDesc(ze,16),Oc=messageDesc(ze,17);messageDesc(ze,18);messageDesc(ze,20);var on=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgNIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZyJZChJHZXRHcm91cE1zZ0J5SWRSZXESDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDgoGbXNnSWRzGAMgAygJEhIKCmNsaWVudFR5cGUYBCABKA0icwoTR2V0R3JvdXBNc2dCeUlkUmVzcBIMCgRjb2RlGAEgASgFEjcKB21zZ0xpc3QYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnEhUKDW1pc3NpbmdNc2dJZHMYAyADKAlCIgoTY29tLm1vc2FudC5pbS5wcm90b1oLLi4vZ3JvdXBzcnZiBnByb3RvMw");messageDesc(on,0);messageDesc(on,1);var Wc=messageDesc(on,2),Hc=messageDesc(on,3),Jc=messageDesc(on,4),Yc=messageDesc(on,5);var Xc=messageDesc(on,11),zc=messageDesc(on,12);var qc=messageDesc(on,17),jc=messageDesc(on,18),$c=messageDesc(on,19),el=messageDesc(on,20);var tl=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwi9A8KCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCWIGcHJvdG8z");var rl=messageDesc(tl,1),ol=messageDesc(tl,2);var Nn=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[pn]),Pn=messageDesc(Nn,0),Jn=messageDesc(Nn,1),It=messageDesc(Nn,2),Ct=messageDesc(Nn,3),Bs=messageDesc(Nn,4),Fs=messageDesc(Nn,5),Ps=messageDesc(Nn,6),il=messageDesc(Nn,7);var je=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[pn]),St=messageDesc(je,0),Yr=messageDesc(je,1),sl=messageDesc(je,2);var al=messageDesc(je,5),dl=messageDesc(je,6),cl=messageDesc(je,7),ll=messageDesc(je,8),gl=messageDesc(je,9),ul=messageDesc(je,10),ml=messageDesc(je,11);var pl=messageDesc(je,14),ws=messageDesc(je,15),Vs=messageDesc(je,16),fl=messageDesc(je,17);var Et=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[pn]),yl=messageDesc(Et,0),Il=messageDesc(Et,1),Cl=messageDesc(Et,2),Sl=messageDesc(Et,3),Al=messageDesc(Et,4);var Ue=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[pn]),Yn=messageDesc(Ue,0),Os=messageDesc(Ue,1),El=messageDesc(Ue,2),Ks=messageDesc(Ue,3),Rl=messageDesc(Ue,4);var Ls=messageDesc(Ue,7);var Ml=messageDesc(Ue,9),hl=messageDesc(Ue,10),Zs=messageDesc(Ue,11),Qs=messageDesc(Ue,12),Tl=messageDesc(Ue,13);var vl=messageDesc(Ue,15),bl=messageDesc(Ue,16),_l=messageDesc(Ue,17);var Nl=messageDesc(Ue,26);var Dl=messageDesc(Ue,29);var Gl=messageDesc(Ue,33);var Ws=messageDesc(Ue,48),Xr=messageDesc(Ue,49);var Ul=messageDesc(Ue,51),kl=messageDesc(Ue,52);var xl=messageDesc(Ue,55);var Bl=messageDesc(Ue,59),Fl=messageDesc(Ue,60);var xe=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIooBChNTSUdTUG9uc29yR3JvdXBDYWxsEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDgoGY2FsbElkGAUgASgJEhEKCWludml0ZUlkcxgGIAMoAxIPCgdjb250ZW50GAcgASgJImcKD1NJR0dyb3VwQ2FsbEFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSJAoHZXJyQ29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdtc2dUaW1lGAQgASgEIjcKFlNJR0dyb3VwQ2FsbERlbGl2ZXJBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIpQBCg9TSUdHcm91cENhbGxBbnMSDwoHZ3JvdXBJZBgBIAEoAxIOCgZ1c2VySWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIwCgdhbnNUeXBlGAUgASgOMh8uaW0uYXBwLnB0bC5HUk9VUF9DQUxMX0FOU19UWVBFEg4KBmNhbGxJZBgGIAEoCSKqAQoQU0lHR3JvdXBDYWxsSm9pbhIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIyCghqb2luVHlwZRgEIAEoDjIgLmltLmFwcC5wdGwuR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEQoJaW52aXRlSWRzGAUgAygDEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJImUKElNJR0dyb3VwQ2FsbEZpbmlzaBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg4KBmNhbGxJZBgFIAEoCSKtAQoSU0lHR3JvdXBDYWxsU3RhdHVzEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEjYKCnN0YXR1c1R5cGUYBCABKA4yIi5pbS5hcHAucHRsLkdST1VQX0NBTExfU1RBVFVTX1RZUEUSDgoGc3RhdHVzGAUgASgFEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJInoKGFNJR0dyb3VwQ2FsbERpc2Nvbm5lY3RlZBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRINCgV1c2VycxgEIAMoAxIPCgdtc2dUaW1lGAUgASgEEg4KBmNhbGxJZBgGIAEoCSJ1ChBTSUdHcm91cENhbGxCdXN5Eg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEhAKCGhpbnRVc2VyGAQgASgDEg8KB21zZ1RpbWUYBSABKAQSDgoGY2FsbElkGAYgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGKj8KE0dST1VQX0NBTExfQU5TX1RZUEUSEwoPQ0FMTF9BTlNfUkVGVVNFEAASEwoPQ0FMTF9BTlNfQUdSRUVEEAEqQQoUR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEwoPQ0FMTF9KT0lOX0FQUExZEAASFAoQQ0FMTF9KT0lOX0lOVklURRABKkUKFkdST1VQX0NBTExfU1RBVFVTX1RZUEUSFQoRQ0FMTF9TVEFUVVNfVklERU8QABIUChBDQUxMX1NUQVRVU19NVVRFEAFCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[pn]),Hs=messageDesc(xe,0),Pl=messageDesc(xe,1),wl=messageDesc(xe,2),Js=messageDesc(xe,3),Vl=messageDesc(xe,4),Ol=messageDesc(xe,5),Ys=messageDesc(xe,6);var Kl=messageDesc(xe,8),Xs=messageDesc(xe,9),Ll=messageDesc(xe,10),Zl=messageDesc(xe,11),zs=messageDesc(xe,12),Ql=messageDesc(xe,13),Wl=messageDesc(xe,14),qs=messageDesc(xe,15),In=messageDesc(xe,16),Cn=messageDesc(xe,17),js=messageDesc(xe,18),$s=messageDesc(xe,19),Rt=messageDesc(xe,20),ea=messageDesc(xe,21),na=messageDesc(xe,22),ta=messageDesc(xe,23);var qr=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDSJHChFHZXRDaGF0TXNnQnlJZFJlcRIOCgZ1c2VySWQYASABKAMSDgoGbXNnSWRzGAIgAygJEhIKCmNsaWVudFR5cGUYAyABKA0ibwoSR2V0Q2hhdE1zZ0J5SWRSZXNwEgwKBGNvZGUYASABKAUSNAoHbXNnTGlzdBgCIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2cSFQoNbWlzc2luZ01zZ0lkcxgDIAMoCWIGcHJvdG8z");var Hl=messageDesc(qr,1),Jl=messageDesc(qr,2);var Yl=messageDesc(qr,4),Xl=messageDesc(qr,5);function F(e,n){return {command:e,schema:n,encode:t=>toBinary(n,t),decode:t=>fromBinary(n,t),create:t=>create(n,t)}}function Me(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function $l(e=[]){let n=new Map,t=r=>{n.set(r.command,r);};for(let r of e)t(r);return {register:t,get:r=>n.get(r),has:r=>n.has(r)}}var Mt=F(257,yl),ht=F(261,Sl),jr=F(262,Al),$r=F(258,Il),ra=F(264,Cl),Dn=F(4097,Yn),eo=F(4098,Os),no=F(4100,Yn),Tt=F(4099,Ks),to=F(4650,Yn),ro=F(4651,Yn),oo=F(4652,Os),io=F(4653,Yn),so=F(4631,Ul),vt=F(4632,kl),ao=F(4633,xl),co=F(4627,Nl),bt=F(4628,Dl),oa=Me(Gl),lo=F(4356,Tl),_t=F(4355,vl),go=F(4360,bl),Nt=F(4359,_l),Dt=F(4107,Zs),uo=F(4108,Qs),mo=F(4110,Zs),Gt=F(4109,Qs),Ut=F(8197,ll),po=F(8198,gl),fo=F(4644,Bl),yo=F(4646,Fl),Io=F(8976,fl),Co=F(8977,Yr),So=F(4102,Ks),kt=F(4101,Rl),xt=F(4103,Ls),Ao=F(4104,Ml),Eo=F(4106,Ls),Bt=F(4105,hl),wn=F(4117,Ws),Ro=F(4118,Xr),Mo=F(4119,Ws),fn=F(8193,St),ho=F(8194,Yr),To=F(8196,St),Ft=F(8195,sl),Pt=F(8978,St),vo=F(8979,Yr),bo=F(8980,St),wt=F(8967,Vs),_o=F(8968,Xr),No=F(8969,Vs),Xn=F(8708,ml),Vt=F(8707,dl),Do=F(8452,ul),Ot=F(8451,al),Go=F(8964,pl),Kt=F(8963,ws),Uo=F(8966,ws),Lt=F(8965,cl),Sn=F(12289,Pn),ko=F(12290,Jn),Zt=F(12291,It),xo=F(12292,Pn),eg=F(12816,Pn),Qt=F(12817,Pn),Bo=F(12818,Jn),Fo=F(12819,Pn),Wt=F(12293,Ct),Po=F(12294,Jn),wo=F(12295,It),Vo=F(12296,Ct),Ht=F(12297,Ct),Oo=F(12298,Jn),Ko=F(12299,It),Lo=F(12300,Ct),Jt=F(12547,Fs),Zo=F(12548,Bs),ng=F(12551,Fs),tg=F(12552,Bs),Yt=F(12803,It),Qo=F(12804,Pn),Xt=F(12805,Ps),Wo=F(12806,Xr),Ho=F(12807,Ps),Jo=F(12808,il),Yo=F(12809,Jn),zt=F(16385,Hs),Xo=F(16386,Pl),qt=F(16387,wl),zo=F(16388,Hs),jt=F(16389,Js),qo=F(16390,Vl),$t=F(16391,Ol),jo=F(16392,Js),er=F(16395,Kl),$o=F(16396,Ys),zn=F(16397,Xs),ei=F(16398,Ll),nr=F(16399,Zl),rg=F(16400,Xs),tr=F(16401,zs),ni=F(16402,Ql),rr=F(16403,Wl),ti=F(16404,zs),or=F(16641,qs),ri=F(16642,In),ir=F(16643,Cn),oi=F(16644,qs),sr=F(16645,js),ii=F(16646,In),og=F(16647,Cn),si=F(16648,js),ar=F(16649,$s),ai=F(16650,In),ig=F(16651,Cn),di=F(16652,$s),dr=F(16653,Rt),ci=F(16654,In),sg=F(16655,Cn),li=F(16656,Rt),cr=F(16657,Rt),gi=F(16658,In),ag=F(16659,Cn),ui=F(16660,Rt),lr=F(16661,ea),mi=F(16662,In),dg=F(16663,Cn),pi=F(16664,ea),cg=F(16665,na),lg=F(16666,In),gg=F(16667,Cn),fi=F(16668,na),gr=F(16669,ta),yi=F(16670,In),ug=F(16671,Cn),Ii=F(16672,ta),ue=Me(ol),_e=Me(rl),qn=Me(El),Ci=Me(Hl),ia=Me(Jl),Si=Me(Yl),sa=Me(Xl),Ai=Me(Jc),aa=Me(Yc),Ei=Me(Xc),da=Me(zc),Ri=Me(qc),ca=Me(jc),Mi=Me($c),la=Me(el),hi=Me(Wc),ga=Me(Hc),Ti=Me(Nc),ua=Me(Dc),vi=Me(Gc),bi=Me(Uc),Vf=Me(kc),Of=Me(xc),_i=Me(Vc),ma=Me(Oc);$l([Mt,ht,jr,$r,Dn,eo,no,Tt,to,ro,oo,io,so,vt,ao,co,bt,lo,_t,go,Nt,Dt,uo,mo,Gt,yo,So,kt,xt,Ao,Eo,Bt,wn,Ro,Mo,fn,ho,Ut,po,Co,To,Ft,Pt,vo,bo,wt,_o,No,Xn,Vt,Do,Ot,Go,Kt,Uo,Lt,Sn,ko,Zt,xo,eg,Qt,Bo,Fo,Wt,Po,wo,Vo,Ht,Oo,Ko,Lo,Jt,Zo,ng,tg,Yt,Qo,Xt,Wo,Ho,Yo,zt,Xo,qt,zo,jt,qo,$t,jo,er,$o,zn,ei,nr,rg,tr,ni,rr,ti,or,ri,ir,oi,sr,ii,og,si,ar,ai,ig,di,dr,ci,sg,li,cr,gi,ag,ui,lr,mi,dg,pi,cg,lg,gg,fi,gr,yi,ug,Ii]);var $e=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function fg(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new $e(n,"board pinned message Base64 \u975E\u6CD5");try{let t=globalThis.atob(e);if(globalThis.btoa(t)!==e)throw new Error("Base64 \u975E\u89C4\u8303\u7F16\u7801");return Uint8Array.from(t,r=>r.charCodeAt(0))}catch(t){throw new $e(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function mg(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function Yf(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Xf(e){return e===void 0||Number.isInteger(e)}function ur(e){return e===void 0||e===0||e===1}function pg(e){return e===void 0||typeof e=="string"}function yg(e){if(!Yf(e)||e.convType!==2&&e.convType!==3||typeof e.msgContent!="string"||e.msgContent===""||typeof e.msgId!="string"||e.msgId===""||typeof e.msgTime!="string"||!/^\d+$/.test(e.msgTime)||!Number.isInteger(e.msgType)||Number(e.msgType)<=0||typeof e.receiverId!="string"||e.receiverId===""||typeof e.senderId!="string"||e.senderId===""||!ur(e.isBrowse)||!ur(e.isCancel)||!ur(e.isEdit)||!ur(e.isNotifyAll)||!pg(e.notifyUsersName)||!pg(e.parentMsgId)||!ur(e.readStatus)||!Xf(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new $e("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function zf(e){let n;try{if(n=fg(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=ue.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof $e?t:new $e("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function mr(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(fg(e,"INVALID_BASE64"));}catch(r){throw r instanceof $e?r:new $e("INVALID_BASE64","board pinned message \u5916\u5C42 UTF-8/Base64 \u975E\u6CD5",{cause:r})}let t;try{t=JSON.parse(n);}catch(r){throw new $e("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return yg(t),{envelope:t,message:zf(t.msgContent)}}function pr(e){let n=ue.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new $e("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:mg(n)};return yg(t),mg(new TextEncoder().encode(JSON.stringify(t)))}var qf=new Uint8Array(0);function Ni(e,n,t){let r=2**n-1;if(!Number.isInteger(e)||e<0||e>r)throw new Error(`\u5E27\u5B57\u6BB5 ${t} \u8D8A\u754C\uFF1A${e}\uFF0C\u5E94\u4E3A [0, ${r}] \u5185\u6574\u6570`)}function z(e){let n=e.flags??65,t=e.appId??0,r=e.msgSeq??0;Ni(e.command,16,"command"),Ni(n,8,"flags"),Ni(t,8,"appId"),Ni(r,32,"msgSeq");let o=e.body??qf,i=o.length;if(12+i>1048576)throw new Error(`\u5E27 body \u8FC7\u5927\uFF1AbodyLen=${i}\uFF0CMsgLength \u5C06\u8D85\u8FC7\u4E0A\u9650 1048576`);let a=new Uint8Array(16+i),s=new DataView(a.buffer);return s.setUint32(0,12+i,false),s.setUint8(4,n),s.setUint8(5,t),s.setUint16(6,e.command,false),s.setUint32(8,i,false),s.setUint32(12,r,false),a.set(o,16),a}function pa(e){let n=[],t=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0;for(;e.length-r>=16;){let o=t.getUint32(r,false);if(o<12||o>1048576)throw new Error(`\u5E27\u957F\u5EA6\u975E\u6CD5\uFF1AMsgLength=${o}\uFF0C\u5E94\u6EE1\u8DB3 12 \u2264 MsgLength \u2264 1048576`);let i=4+o;if(e.length-r<i)break;let a=t.getUint32(r+8,false);if(o!==12+a)throw new Error(`\u5E27\u957F\u5EA6\u4E0D\u5339\u914D\uFF1AMsgLength=${o} \u4E0E BodyLen=${a} \u4E0D\u6EE1\u8DB3 MsgLength=12+BodyLen`);let s={msgLength:o,flags:t.getUint8(r+4),appId:t.getUint8(r+5),command:t.getUint16(r+6,false),bodyLen:a,msgSeq:t.getUint32(r+12,false)},d=e.subarray(r+16,r+i);n.push({header:s,body:d}),r+=i;}return {frames:n,remainder:e.subarray(r)}}var jf=5;function Gn(e,n,t){let r=e.sFromId.toString(),o=Number(e.msgTime),i=ge(e.sMsgId),a=bn(n,t.selfId),s=a.contentType==="text",d=o>0?o:t.receivedAt??Date.now(),g={id:i,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:a.contentType,body:a.body,createdAt:d,sortKey:Ce(d,i),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};t.decryptFailed===true&&(g.encryption.decryptFailed=true),o>0&&(g.serverTime=o),e.parentMsgId&&(g.refMessageId=ge(e.parentMsgId)),t.edited===true&&(g.edited=true);let p=$f(e,s?n.content:"");return p!==void 0&&(g.mention=p),t.keepRaw&&(g.raw=ry(e,n,t.cmdId)),g}function jn(e,n){let t=Ig(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=Cg(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function $f(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=Cg(e.sNotifyUsers.map(s=>s.toString()),Ig(n)),{ranges:o,atUsersName:i}=ey(e.extend);if(!t&&r.length===0&&o===void 0&&i===void 0)return;let a={atAll:t,atUserIds:r};return o!==void 0&&(a.ranges=o),i!==void 0&&(a.atUsersName=i),a}function Ig(e){if(e==="")return [];let n=[];for(let t of e.matchAll(/\[(\d{17,20})\]/g))t[1]!==void 0&&n.push(t[1]);return n}function Cg(e,n){if(n.length===0)return e;let t=new Set(e),r=[...e];for(let o of n)t.has(o)||(t.add(o),r.push(o));return r}function ey(e){if(e==="")return {};try{let n=JSON.parse(e),t=ny(n.atRange),r=ty(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function ny(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t,{user_id:o,start:i,end:a}=r;(typeof o=="string"||typeof o=="number")&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&typeof a=="number"&&Number.isInteger(a)&&a>=i&&n.push({userId:String(o),start:i,end:a});}return n.length>0?n:void 0}function ty(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length>0?n:void 0}function ry(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sGrpId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function fr(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:Ae(e.id),msgType:jf,encrypt:e.encryption.encrypted?1:0,bMessage:gn(e.body)};return e.mention!==void 0&&Object.assign(t,oy(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=Ye(e.refMessageId)),t}function oy(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=iy(e);return t!==void 0&&(n.extend=t),n}function iy(e){let n=e.ranges!==void 0&&e.ranges.length>0,t=e.atUsersName!==void 0&&Object.keys(e.atUsersName).length>0;if(!n&&!t)return;let r={sendType:0};return t&&(r.atUsersName=e.atUsersName),n&&(r.atRange=e.ranges.map(o=>({user_id:o.userId,start:o.start,end:o.end}))),JSON.stringify(r)}var Ke=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function yr(e){return e instanceof $e||e instanceof Ke?e.code:"INVALID_SNAPSHOT"}function Di(e,n){let t=mr(e),{envelope:r}=t;if(r.convType!==2)throw new Ke("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new Ke("CONVERSATION_MISMATCH","board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new Ke("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let s=fn.create({sGrpId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgType:r.msgType,msgTime:BigInt(r.msgTime),parentMsgId:r.parentMsgId??"",encrypt:0});i=Gn(s,t.message,{selfId:"",edited:r.isEdit===1});}catch(s){throw new Ke("INVALID_SNAPSHOT","board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A\u7FA4\u6D88\u606F",{cause:s})}let a=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"group",messageId:i.id,preview:a,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function sy(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new Ke("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684\u666E\u901A\u7FA4\u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new Ke("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=ue.create(gn(e.body)),r=pr({envelope:{convType:2,msgContent:"",msgId:Ae(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:"0",notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":Ye(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:r,pinnedMessage:Di(r,{conversationId:e.conversationId})}}function Gi(e,n){let t=mr(e),{envelope:r}=t;if(r.convType!==3)throw new Ke("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new Ke("CONVERSATION_MISMATCH","channel board pinned message receiverId \u4E0E\u901A\u77E5\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let o=Number(r.msgTime);if(!Number.isSafeInteger(o)||o<=0)throw new Ke("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let s=r.nIncrId??"0";i=mn(Sn.create({sRadioId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgTime:BigInt(r.msgTime),encrypt:0,sId:s,nIncrId:BigInt(s),parentMsgId:r.parentMsgId??"",isEdit:r.isEdit===1?"1":""}),t.message,{selfId:"",edited:r.isEdit===1});}catch(s){throw new Ke("INVALID_SNAPSHOT","channel board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A CHANNEL \u6D88\u606F",{cause:s})}let a=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"channel",messageId:i.id,preview:a,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function ay(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new Ke("INVALID_SNAPSHOT","\u4EC5\u652F\u6301\u5F52\u5C5E\u660E\u786E\u7684 CHANNEL \u6D88\u606F\u7F6E\u9876");let n=e.serverTime??e.createdAt;if(!Number.isSafeInteger(n)||n<=0)throw new Ke("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=ue.create(gn(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",i=pr({envelope:{convType:3,msgContent:"",msgId:Ae(e.id),msgTime:String(n),msgType:t.contentType,receiverId:e.conversationId,senderId:e.senderId,isBrowse:1,isCancel:0,isEdit:e.edited===true?1:0,isNotifyAll:e.mention?.atAll===true?1:0,nIncrId:o,notifyUsersName:"",parentMsgId:e.refMessageId===void 0?"":Ye(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:i,pinnedMessage:Gi(i,{conversationId:e.conversationId})}}var dy=new Set(["group_info_changed","group_member_renamed","channel_name_changed","channel_avatar_changed","channel_all_muted","channel_all_unmuted","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function cy(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function Un(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||bs(n.eventType)||!cy(e,n.eventType))return e;let t=dy.has(n.eventType);if(t===(n.timelineVisibility==="hidden"))return e;let r={...n};return t?r.timelineVisibility="hidden":delete r.timelineVisibility,{...e,body:{...e.body,system:r}}}var ly={1:"channel_name_changed",2:"channel_avatar_changed",3:"channel_announcement_changed",4:"channel_member_left",5:"channel_member_removed",6:"channel_member_joined",7:"channel_member_invited",8:"channel_owner_transferred",9:"channel_admin_added",10:"channel_admin_removed",11:"channel_dismissed",12:"channel_all_muted",13:"channel_all_unmuted",14:"channel_created",15:"channel_private_chat_disabled",16:"channel_private_chat_enabled",19:"channel_member_renamed",20:"channel_member_muted",21:"channel_member_unmuted",23:"channel_message_pinned",24:"channel_message_unpinned"},Sg=new Set([17,18,22,23,24]),gy=20;function Ui(e){let n=e.body.system;if(e.conversationType!=="channel"||e.contentType!=="system"||n===void 0)return e;let t=n.eventType==="channel_unknown"&&n.rawNotifyType!==void 0?ya(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&Sg.has(n.rawNotifyType)&&n.fallbackText!==void 0,i=n.operatorId,a=t==="channel_member_left"&&(n.targetUserIds===void 0||n.targetUserIds.length===0)&&i!==void 0&&i!=="";if(!r&&!o&&!a)return Un(e);let s={...n,eventType:t};return o&&delete s.fallbackText,a&&i!==void 0&&(s.targetUserIds=[i]),Un({...e,body:{...e.body,system:s}})}function Ag(e){return e.conversationType==="channel"&&e.extensions?.unsupportedContentType===101&&(e.contentType==="text"||e.contentType==="system"&&e.body.system?.eventType==="channel_unknown"&&e.body.system.rawNotifyType===void 0)}function fa(e){if(!Ag(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return Ui({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function ya(e){return ly[e]??"channel_unknown"}function Ir(e,n={}){if(e.channelId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.historyCursor!==void 0&&e.historyCursor.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931");if(!Number.isInteger(e.notifyType)||e.notifyType<=0)throw new Error("channel notify: notify type \u7F3A\u5931\u6216\u975E\u6CD5");let t=ge(e.messageId),r=Number(e.occurredAt),o=r>0?r:n.receivedAt??Date.now(),i=e.sequence!==void 0&&e.sequence>0n?e.sequence.toString():void 0,a={eventType:ya(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(a.operatorId=e.operatorId.toString());let s=e.targetUserIds?.filter(d=>d>0n).map(d=>d.toString())??[];if(s.length>0&&(a.targetUserIds=s),e.content!==void 0&&e.content!==""&&!Sg.has(e.notifyType)&&(a.fallbackText=e.content),e.notifyType===23)try{a.pinnedMessageAction={type:"pin",pinnedMessage:Gi(e.content??"",{conversationId:e.channelId.toString(),...a.operatorId===void 0?{}:{operatorId:a.operatorId}})};}catch(d){a.pinnedMessageAction={type:"invalid",code:yr(d)};}else e.notifyType===24&&(a.pinnedMessageAction={type:"unpin"});return Ui({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:a},createdAt:o,...r>0?{serverTime:r}:{},sortKey:Ce(o,i===void 0?t:`${i.padStart(gy,"0")}:${t}`),status:"sent",receipt:"read",encryption:{encrypted:e.encrypted??false},extensions:{...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...i===void 0?{}:{channelSequence:i}},...n.keepRaw?{raw:{...n.cmdId===void 0?{}:{cmdId:n.cmdId},channelNotify:{notifyType:e.notifyType,...e.historyCursor===void 0?{}:{historyCursor:e.historyCursor},...e.sequence===void 0?{}:{sequence:e.sequence.toString()},...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}}:{}})}function Cr(e){return /^\[[^[\]\s]+\]$/.test(e)}function Sr(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function uy(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function my(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function Ia(e,n,t){let r=new Map;for(let s of e){let d=r.get(s.senderId);(d===void 0||uy(d,s)<0)&&r.set(s.senderId,s);}let o=new Map,i;for(let s of r.values()){if(s.action===1)continue;let d=o.get(s.emoji)??{participants:[],latestAt:0};d.participants.push(s.senderId),d.latestAt=Math.max(d.latestAt,s.createdAt),o.set(s.emoji,d),s.senderId===n&&(i=s.emoji);}let a=[...o.entries()].map(([s,d])=>Object.freeze({emoji:s,count:d.participants.length,mine:d.participants.includes(n),latestAt:d.latestAt,participantIds:Object.freeze([...d.participants].sort())})).sort((s,d)=>Number(d.mine)-Number(s.mine)||d.latestAt-s.latestAt||s.emoji.localeCompare(d.emoji));return Object.freeze({version:t,total:[...o.values()].reduce((s,d)=>s+d.participants.length,0),...i===void 0?{}:{currentUserEmoji:i},events:Object.freeze(e.map(my)),aggregates:Object.freeze(a)})}function Ca(e,n,t){if(!Cr(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(Sr(n.emoji))throw new Error(`\u6E38\u620F\u8D34\u56FE\u4E0D\u80FD\u4F5C\u4E3A Reaction\uFF1A${n.emoji}`);if(n.id.trim()===""||n.parentMessageId.trim()===""||n.senderId.trim()==="")throw new Error("Reaction \u4E8B\u4EF6\u7F3A\u5C11 id\u3001parentMessageId \u6216 senderId");if(n.action!==0&&n.action!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${n.action}`);if(!Number.isSafeInteger(n.createdAt)||n.createdAt<0)throw new Error(`Reaction createdAt \u975E\u6CD5\uFF1A${n.createdAt}`);return e?.events.some(r=>r.id===n.id)?e:Ia([...e?.events??[],n],t,(e?.version??0)+1)}function Sa(e,n,t){if(e===void 0)return;let r=e.events.filter(o=>o.id!==n);if(r.length===e.events.length)return e;if(r.length!==0)return Ia(r,t,e.version+1)}function Aa(e,n,t){if(e===void 0)return n;if(n===void 0)return e;let r=new Map(e.events.map(o=>[o.id,o]));for(let o of n.events)r.set(o.id,o);return Ia([...r.values()],t,Math.max(e.version,n.version))}var Eg={unread:0,delivered:1,read:2};function ki(e,n){return Eg[n]>Eg[e]?n:e}function Rg(e,n){return e==="sent"||n==="sent"?"sent":n}function xi(e,n,t=""){let r=e.serverTime??0,o=n.serverTime??0,a=o>=r?{...e,...n}:{...n,...e},s=Math.max(r,o),d=Math.min(e.createdAt,n.createdAt),p=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":Rg(e.status,n.status),f=p==="failed"?n.failure??e.failure:void 0,v=Aa(e.reactions,n.reactions,t),C=e.encryption.decryptFailed===true,E=n.encryption.decryptFailed===true,G=a.contentType,_=a.body,u=a.encryption,I=a.mention;C&&!E?(G=n.contentType,_=n.body,u=n.encryption,I=n.mention):!C&&E&&(G=e.contentType,_=e.body,u=e.encryption,I=e.mention),n.edited===true&&!E&&(G=n.contentType,_=n.body,u=n.encryption,I=n.mention);let S=e.body.voice?.waveform??n.body.voice?.waveform;_.voice!==void 0&&_.voice.waveform===void 0&&S!==void 0&&(_={..._,voice:{..._.voice,waveform:S}});let T=e.edited===true||n.edited===true,h=e.deletedForEveryone??n.deletedForEveryone;if(h!==void 0){let Y={...a,id:e.id,createdAt:d,serverTime:s>0?s:void 0,status:p,failure:f,receipt:ki(e.receipt,n.receipt),sortKey:Ce(d,e.id),recalled:void 0,deletedForEveryone:h,body:{},encryption:a.encryption};return delete Y.reactions,Y}let P=e.recalled??n.recalled;if(P!==void 0){let Y={...a,id:e.id,createdAt:d,serverTime:s>0?s:void 0,status:p,failure:f,receipt:ki(e.receipt,n.receipt),sortKey:Ce(d,e.id),recalled:P,body:{},encryption:a.encryption};return delete Y.reactions,Y}let L={...a,id:e.id,createdAt:d,serverTime:s>0?s:void 0,status:p,failure:f,receipt:ki(e.receipt,n.receipt),sortKey:Ce(d,e.id),contentType:G,body:_,encryption:u,...v===void 0?{}:{reactions:v},...T?{edited:true}:{}};return I!==void 0?L.mention=I:delete L.mention,L}function py(e,n){return e===void 0||n===void 0?e===n:e.version===n.version&&e.total===n.total&&e.currentUserEmoji===n.currentUserEmoji&&e.events.length===n.events.length&&e.events.every((t,r)=>{let o=n.events[r];return o!==void 0&&t.id===o.id&&t.senderId===o.senderId&&t.emoji===o.emoji&&t.action===o.action&&t.createdAt===o.createdAt})}function Vn(e,n=""){let t=new Map;for(let r of e){let o=t.get(r.id);t.set(r.id,o===void 0?r:xi(o,r,n));}return [...t.values()]}function fy(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function yy(e,n){if(e===void 0||n===void 0)return e===n;let t=Object.keys(e);return t.length!==Object.keys(n).length?false:t.every(r=>e[r]===n[r])}function Iy(e,n){return e===void 0||n===void 0?e===n:e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&by(e.targetUserIds,n.targetUserIds)&&Ea(e.payload,n.payload)&&Ea(e.action,n.action)&&Ea(e.pinnedMessageAction,n.pinnedMessageAction)}function Cy(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.fileName===n.fileName&&e.size===n.size&&e.extension===n.extension&&e.fileType===n.fileType&&e.mimeType===n.mimeType&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&An(e.teaKey,n.teaKey)}function Sy(e,n){return e===void 0||n===void 0?e===n:e.targetId===n.targetId&&e.avatar===n.avatar&&e.displayName===n.displayName&&e.username===n.username&&e.gender===n.gender&&e.kind===n.kind&&e.rawKind===n.rawKind}function Ay(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.exprType===n.exprType&&e.imageType===n.imageType&&e.size===n.size&&e.describe===n.describe&&e.contentId===n.contentId&&e.packageName===n.packageName&&An(e.thumbData,n.thumbData)}function Ey(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function Ry(e,n){return e===void 0||n===void 0?e===n:e.appId===n.appId&&e.host===n.host&&e.developerId===n.developerId&&e.name===n.name&&e.icon===n.icon&&e.productId===n.productId&&e.isDynamicHost===n.isDynamicHost&&e.suffixAddress===n.suffixAddress&&e.showType===n.showType&&e.rawShowType===n.rawShowType&&e.description===n.description&&e.currencySource===n.currencySource&&e.currencyType===n.currencyType&&e.gamePath===n.gamePath&&e.subGameName===n.subGameName}function My(e,n){return e===void 0||n===void 0?e===n:e.callKind===n.callKind&&e.outcome===n.outcome&&e.durationMs===n.durationMs&&e.outgoing===n.outgoing}function hy(e,n){return e===void 0||n===void 0?e===n:e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.fromUserName===n.fromUserName&&e.toUserName===n.toUserName&&e.amount===n.amount&&e.currencyType===n.currencyType&&e.status===n.status&&e.serialNumber===n.serialNumber&&e.remark===n.remark&&e.sessionType===n.sessionType&&e.transferTime===n.transferTime&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.transferMsgId===n.transferMsgId&&e.coinName===n.coinName&&e.coinIcon===n.coinIcon}function Ty(e,n){return e===void 0||n===void 0?e===n:e.packetId===n.packetId&&e.packetType===n.packetType&&e.amount===n.amount&&e.count===n.count&&e.showAmount===n.showAmount&&e.thunderRate===n.thunderRate&&e.isThunder===n.isThunder&&e.thunderNumber===n.thunderNumber&&e.fromUid===n.fromUid&&e.toUid===n.toUid&&e.currencyType===n.currencyType&&e.coinName===n.coinName}function vy(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function by(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function Ea(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function _y(e,n){return e===void 0||n===void 0?e===n:e.atAll!==n.atAll||e.atUserIds.length!==n.atUserIds.length||e.atUserIds.some((t,r)=>t!==n.atUserIds[r])?false:yy(e.atUsersName,n.atUsersName)}function An(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function Ny(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&An(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&An(e.teaKey,n.teaKey)}function Dy(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&e.duration===n.duration&&An(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&An(e.teaKey,n.teaKey)}function Gy(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.durationMs===n.durationMs&&e.size===n.size&&e.md5===n.md5&&e.fileEncryptType===n.fileEncryptType&&An(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function Uy(e,n){return e.kind===n.kind&&e.url===n.url&&e.width===n.width&&e.height===n.height&&e.durationMs===n.durationMs&&e.thumbUrl===n.thumbUrl&&An(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&An(e.teaKey,n.teaKey)&&e.hd===n.hd}function ky(e,n){return e===void 0||n===void 0?e===n:e.caption!==n.caption||e.items.length!==n.items.length?false:e.items.every((t,r)=>Uy(t,n.items[r]))}function $n(e,n){return e.id===n.id&&e.conversationId===n.conversationId&&e.conversationType===n.conversationType&&e.senderId===n.senderId&&e.contentType===n.contentType&&e.body.text===n.body.text&&Iy(e.body.system,n.body.system)&&e.createdAt===n.createdAt&&e.sortKey===n.sortKey&&e.status===n.status&&e.serverTime===n.serverTime&&e.receipt===n.receipt&&e.refMessageId===n.refMessageId&&e.edited===n.edited&&(e.recalled?.by??"")===(n.recalled?.by??"")&&(e.recalled?.at??0)===(n.recalled?.at??0)&&(e.deletedForEveryone?.by??"")===(n.deletedForEveryone?.by??"")&&(e.deletedForEveryone?.at??0)===(n.deletedForEveryone?.at??0)&&(e.deletedForEveryone?.reason??"")===(n.deletedForEveryone?.reason??"")&&py(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&_y(e.mention,n.mention)&&Ny(e.body.image,n.body.image)&&Dy(e.body.video,n.body.video)&&Gy(e.body.voice,n.body.voice)&&Cy(e.body.file,n.body.file)&&Ay(e.body.sticker,n.body.sticker)&&Sy(e.body.contact,n.body.contact)&&Ry(e.body.miniProgram,n.body.miniProgram)&&Ey(e.body.game,n.body.game)&&hy(e.body.transfer,n.body.transfer)&&My(e.body.call,n.body.call)&&Ty(e.body.redPacket,n.body.redPacket)&&ky(e.body.mediaAlbum,n.body.mediaAlbum)&&vy(e.body.unknown,n.body.unknown)&&fy(e.failure,n.failure)}var xy=20;function et(e){let n=new Set;for(let t of e){let r=t.trim();r!==""&&n.add(Ye(r));}return [...n]}function nt(e){let n=new Set;for(let t of e)t!==""&&n.add(ge(t));return [...n]}var Mg=2;function By(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function Ar(e){let n=qn.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:By(n.action)}}function Er(e,n){let t=Ar(e.sContent),r=e.sFromId.toString();return {id:ge(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:ge(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function Rr(e){let n=Ar(e.sContent);return {id:ge(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:ge(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Ra(e){let n=Ar(e.sContent);return {id:ge(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:ge(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Ma(e){if(e.eventType===Mg)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=Ar(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function ha(e){let n=Ar(e.sContent);return {id:ge(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:ge(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Bi(e,n,t){return n===e?t:n}var Fy=102,hg=1,Py=2;function Ta(e,n){let t=ge(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),i=e.nCancelType===1,a=i?String(e.sGroupId):Bi(n,r,String(e.sToId)),s=Number(e.msgTime)||o;return {id:t,conversationId:a,conversationType:i?"group":"direct",senderId:r,contentType:"text",body:{},createdAt:s,sortKey:Ce(s,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function va(e){let n=ge(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:Ce(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function ba(e){let n=ge(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:Ce(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function _a(e){let n=ge(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime),o={id:n,conversationId:e.sChnnId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,serverTime:r,sortKey:Ce(r,n),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0},extensions:{...e.sIndex===""?{}:{historyCursor:e.sIndex},...e.sIncrId===0n?{}:{channelSequence:e.sIncrId.toString()}}};if(e.uOperationType===1)return {...o,deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}};if(e.uOperationType===2)return {...o,recalled:{by:t,at:r}};throw new Error(`CHANNEL \u5386\u53F2\u5220\u9664\u7C7B\u578B\u975E\u6CD5\uFF1A${e.uOperationType}`)}function Mr(e,n){if(n.contentType!==Fy||n.type!==hg&&n.type!==Py||!tn(n.content))return null;let t=ge(n.content),r=n.oprUserId>0n?n.oprUserId.toString():e.senderId.toString(),o=Number(e.msgTime),i={id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:r,contentType:"text",body:{},createdAt:o,sortKey:Ce(o,t),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0}};return n.type===hg?{...i,deletedForEveryone:{by:r,at:o,reason:"channel-moderation"}}:{...i,recalled:{by:r,at:o}}}var wy=ue.create({contentType:1,content:""}),Vy=101;function Tg(e){if(e.sChnnId<=0n)throw new Error("channel session: channel id \u7F3A\u5931\u6216\u975E\u6CD5");let n=e.uStatus===0||e.uStatus===1,t=e.uExistAt===1||e.uExistAt===2,r=e.uStatus===0&&t?"active":"unknown_restricted",o=e.uExistAt===1?false:e.uExistAt===2?true:void 0,i={channelId:e.sChnnId.toString(),readCursor:e.sReadIndex,unreadCount:e.uUnread,channelState:r,hasUnreadMention:o};return r!=="active"&&(i.sendDisabledReason=n&&t?"channel_membership_unknown":"channel_state_requires_calibration"),(!n||!t)&&(i.raw={status:e.uStatus,mentionStatus:e.uExistAt}),i}function Oy(e){return Ti.encode(Ti.create({sUserId:hr(e.userId,"user"),clientType:e.clientType,lsChnnInfo:e.channels.map(n=>({sChnnId:hr(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function vg(e){return vi.encode(vi.create({sUserId:hr(e.userId,"user"),clientType:e.clientType,lsPull:e.pulls.map(n=>{if(!Number.isInteger(n.count)||n.count<=0)throw new Error("channel offline request: count \u7F3A\u5931\u6216\u975E\u6CD5");return {sChnnId:hr(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function Ky(e){return vg({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function Ly(e,n,t){let r=ua.decode(e);Ng(r.errcode,"sessions");let o=Da(n.expectedChannelIds);return {sessions:r.lsSession.map(i=>{let a=i.sChnnId.toString();Ga(a,o,"sessions");let s=Tg(i);if(i.last!==void 0){if(i.last.sChnnId!==i.sChnnId)throw new Error(`channel sessions: last \u9891\u9053\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08session=${i.sChnnId}, last=${i.last.sChnnId}\uFF09`);let d=Na(i.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);d!==null&&(s.last=d);}return s})}}function bg(e,n,t){let r=bi.decode(e);Ng(r.errcode,"offlineMessages");let o=Da(n.expectedChannelIds),i={},a={},s=[];for(let d of r.lsMessage){let g=d.sChnnId.toString();Ga(g,o,"offlineMessages"),i[g]=d.sIndex,a[g]=(a[g]??0)+1;let p=Na(d,n,t);p!==null&&s.push(p);}return {messages:Vn(s,n.selfId).sort(Oe),batchSize:r.lsMessage.length,messageCounts:a,nextBaseIndexes:i}}function _g(e,n,t,r="specificMsgs"){let o=Da(n.expectedChannelIds),i=[];for(let a of e){let s=a.sChnnId.toString();Ga(s,o,r);let d=Na(a,n,t);d!==null&&i.push(d);}return Vn(i,n.selfId).sort(Oe)}function Zy(e){return _i.encode(_i.create({sUserId:BigInt(e.userId),sChnnId:hr(e.channelId,"channel"),lsMsgId:et(e.messageIds),clientType:e.clientType??0}))}function Qy(e,n,t){let r=ma.decode(e);return {messages:_g(r.lsMessage,n,t,"msg/by_id"),missingMessageIds:nt(r.lsMissingMsgId),code:r.errcode}}function Wy(e,n,t){if(!Number.isInteger(n.requestedCount)||n.requestedCount<=0)throw new Error("channel history: requestedCount \u5FC5\u987B\u4E3A\u6B63\u6574\u6570");let r=bi.decode(e),o=bg(e,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,expectedChannelIds:[n.channelId],...n.diagnostic===void 0?{}:{diagnostic:n.diagnostic},onContentDecodeError:n.onContentDecodeError,onReaction:n.onReaction},t),i=r.lsMessage[0]?.sIndex;if(i!==void 0&&i===n.requestedBaseIndex)throw new Error(`channel history cursor \u5FAA\u73AF\uFF08channelId=${n.channelId}, baseIndex=${i}\uFF09`);return {messages:o.messages,...i===void 0?{}:{nextBaseIndex:i},batchSize:o.batchSize,exhausted:o.batchSize<n.requestedCount}}function Na(e,n,t){if(Ma(e)){try{n.onReaction?.(ha(e));}catch(a){n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:a});}return null}if(e.uOperationType===1||e.uOperationType===2)return _a(e);let r=wy,o=false;if(e.encrypt===0)try{r=ue.decode(e.sContent);}catch(a){return n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:a}),bc(e,e.sContent.length,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:true})}else if(e.encrypt===1&&t!==void 0){let a=t.resolveUserPrivateKey?.()??null;if(a===null)o=true,t.onDecryptError?.(En(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let s;try{if(s=_e.decode(e.sContent),s.secretKey.length===0||s.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(d){o=true,t.onDecryptError?.(En(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:d})),s=_e.create();}if(!o){let d;try{d=t.crypto.decryptEndToEnd({secretKey:s.secretKey,cipherData:s.cipherData,privateKey:a});}catch(g){o=true,t.onDecryptError?.(En(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:s.cipherData.length,cause:g})),d=new Uint8Array;}if(!o)try{r=ue.decode(d);}catch(g){o=true,t.onDecryptError?.(En(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:s.cipherData.length,decryptedByteLength:d.length,cause:g}));}}}}else if(e.encrypt===2&&t!==void 0){let a=e.sChnnId.toString(),s=t.resolveChannelKey(a);if(s===null||s.length!==16)o=true,t.onDecryptError?.(En(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:s?.length??0,keySource:s===null?"miss":"cache"}));else {let d;try{let g=_e.decode(e.sContent);if(g.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");d=g.cipherData;}catch(g){o=true,t.onDecryptError?.(En(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:s.length,keySource:"cache",cause:g})),d=new Uint8Array;}if(!o){let g;try{g=t.crypto.decryptSymmetric({teaKey:s,cipherData:d});}catch(p){o=true,t.onDecryptError?.(En(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:s.length,keySource:"cache",cipherDataByteLength:d.length,cause:p})),g=new Uint8Array;}if(!o)try{r=ue.decode(g);}catch(p){o=true,t.onDecryptError?.(En(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:s.length,keySource:"cache",cipherDataByteLength:d.length,decryptedByteLength:g.length,cause:p}));}}}}else o=true,t?.onDecryptError?.(En(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o){let a=Mr({channelId:e.sChnnId,senderId:e.sFromId,msgTime:e.msgTime,encrypt:e.encrypt},r);if(a!==null)return a}if(!o&&r.contentType===Vy)return Ir({channelId:e.sChnnId,messageId:e.sMsgId,occurredAt:e.msgTime,notifyType:r.type,operatorId:r.oprUserId,targetUserIds:r.mnpledUserId,content:r.content,extend:e.extend,historyCursor:e.sIndex,sequence:e.sIncrId,encrypted:e.encrypt!==0},{keepRaw:n.keepRaw});let i=ks(e,r,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:n.keepRaw===true||o,decryptFailed:o});return o&&(e.encrypt===1||e.encrypt===2)&&t?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:i.conversationId},messageId:i.id,wireEncrypt:e.encrypt,sContent:e.sContent.slice(),source:n.diagnostic?.endpoint==="history"?"history":"offline",createdAt:Date.now()}),i}function En(e,n,t){return {...n.diagnostic??{endpoint:"unknown",surface:"unknown"},messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,payloadByteLength:e.sContent.length,...t}}function Ng(e,n){if(e!==0)throw new Error(`channel ${n}: errcode=${e}`)}function Da(e){return e===void 0?void 0:new Set(e)}function Ga(e,n,t){if(n!==void 0&&!n.has(e))throw new Error(`channel ${t}: \u54CD\u5E94\u9891\u9053\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\u6279\u6B21\uFF08channelId=${e}\uFF09`)}function hr(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function Hy(e,n,t){let r=bn(n,t),{decryptFailed:o,...i}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:i}}var Fi="system",Jy=32768;function Dg(e){switch(e){case 7:return "group_activated";case 1:return "group_info_changed";case 2:return "group_member_left";case 3:return "group_member_removed";case 4:return "group_member_joined";case 5:return "group_member_invited";case 6:return "group_master_changed";case 10:return "group_member_renamed";case 11:return "group_dismissed";case 12:return "group_message_pinned";case 13:return "group_message_unpinned";default:return "unknown"}}function Ua(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?Un(e):Un({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function Yy(e){let n=e.trim();if(!(n===""||!n.startsWith("{")&&!n.startsWith("[")))try{let t=JSON.parse(n);return typeof t=="object"&&t!==null?t:void 0}catch{return}}function Tr(e,n){let t=ge(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=e.sOprUserId===0n?void 0:e.sOprUserId.toString(),a=e.sMnpledUserId.map(C=>C.toString()),s={eventType:Dg(e.notifyType),rawNotifyType:e.notifyType},d=Number(e.errcode);d!==0&&(s.errcode=d),i!==void 0&&(s.operatorId=i),a.length>0&&(s.targetUserIds=a);let g=e.notifyType===12,p=e.notifyType===13;!g&&!p&&e.sContent!==""&&(s.fallbackText=e.sContent);let f=g||p?void 0:Yy(e.sContent);if(f!==void 0&&(s.payload=f),g)try{s.pinnedMessageAction={type:"pin",pinnedMessage:Di(e.sContent,{conversationId:e.sGrpId.toString(),...i===void 0?{}:{operatorId:i}})};}catch(C){s.pinnedMessageAction={type:"invalid",code:yr(C)};}else p&&(s.pinnedMessageAction={type:"unpin"});let v={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:Fi,contentType:"system",body:{system:s},createdAt:o,sortKey:Ce(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(v.serverTime=r),n.keepRaw&&(v.raw={cmdId:n.cmdId}),Ua(v)}function ka(e,n){let t=e.targetUserIds?.includes(n)??false;switch(e.eventType){case "group_member_left":return t?{state:"left",reason:"you_left_group"}:null;case "group_member_removed":return t?{state:"removed",reason:"you_were_removed"}:null;case "group_dismissed":return {state:"dismissed",reason:"group_dismissed"};case "group_member_joined":case "group_member_invited":{if(!t)return null;let r=e.errcode;return r!==void 0&&r!==Jy?null:{state:"active",reason:""}}default:return null}}function xa(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var Xy=new Set([8196,8976]),Gg=ue.create({contentType:1,content:""});function zy(e){return Ei.encode(Ei.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function qy(e){return Ai.encode(Ai.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function jy(e,n,t){let r=t.resolvePrivateKey({groupId:n,msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(r===null)return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let o=_e.decode(e.sContent);if(o.secretKey.length===0||o.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${o.secretKey.length}B cipherData=${o.cipherData.length}B`);let i=t.crypto.decryptEndToEnd({secretKey:o.secretKey,cipherData:o.cipherData,privateKey:r});return ue.decode(i)}catch(o){return t.onDecryptError?.({msgId:e.sMsgId,groupId:n,fromId:String(e.sFromId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:o}),null}}function Pi(e,n,t){if(e.cmdId===8980){let d=fn.decode(e.sMsgData),g={...d,sMsgId:d.sMsgId||e.sMsgId,sFromId:d.sFromId===0n?e.sFromId:d.sFromId,sGrpId:d.sGrpId===0n?e.sGroupId:d.sGrpId,sToId:d.sToId===0n?e.sGroupId:d.sToId,msgTime:d.msgTime===0n?e.msgTime:d.msgTime,parentMsgId:d.parentMsgId||e.parentMsgId};return n.onReaction?.(Rr(g)),null}if(e.cmdId===8708)return Tr(Xn.decode(e.sMsgData),{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw});if(!Xy.has(e.cmdId))return null;let r=fn.decode(e.sMsgData),o=Gg,i=false,a=false;if(r.encrypt===0)try{o=ue.decode(r.sContent);}catch{a=true;}else if(r.encrypt===1&&t!==void 0){let d=jy(r,r.sGrpId.toString(),t);o=d??Gg,i=d===null;}else i=true;let s=Gn(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return a&&(s.contentType="unknown",s.body={unknown:{reason:"malformed-content"}},s.raw={...s.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:s.conversationId},messageId:s.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:n.source??"offline",createdAt:Date.now()}),s.refMessageId===void 0&&e.parentMsgId&&(s.refMessageId=ge(e.parentMsgId)),e.isEdit===1&&(s.edited=true),s}function $y(e,n,t){let r=da.decode(e),o=[],i=[];for(let a of r.msgList){i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});let s=Pi(a,n,t);s!==null&&o.push(s);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function eI(e,n,t){let r=aa.decode(e),o=[],i=[];for(let a of r.sessionList){o.push({groupId:a.groupId.toString(),unreadCount:Number(a.unreadCount)});for(let s of a.msgList){let d=Pi(s,n,t);d!==null&&i.push(d);}}return {unreads:o,messages:i}}function nI(e){return Ri.encode(Ri.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),baseTime:BigInt(e.baseTime),direct:e.direct??1,limit:e.limit??50,clientType:e.clientType??0}))}function tI(e,n,t){let r=ca.decode(e),o=[];for(let a of r.msgList){let s=Pi(a,n,t);s!==null&&o.push(s);}let i=r.msgList.map(a=>Number(a.msgTime));return {messages:o,batchSize:r.msgList.length,...i.length===0?{}:{oldestEntryTime:Math.min(...i),newestEntryTime:Math.max(...i)}}}function rI(e){return Mi.encode(Mi.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),msgIds:et(e.messageIds),clientType:e.clientType??0}))}function oI(e,n,t){let r=la.decode(e),o=[];for(let i of r.msgList){let a=Pi(i,n,t);a!==null&&(i.isCancel===1&&(a.recalled={by:a.senderId,at:a.serverTime??a.createdAt},a.body={}),o.push(a));}return {messages:o,missingMessageIds:nt(r.missingMsgIds),code:r.code}}function iI(e){return hi.encode(hi.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function sI(e){return {code:ga.decode(e).code}}var aI=1;function tt(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),i=Number(e.msgTime),a=ge(e.sMsgId),s=bn(n,t.selfId),d=i>0?i:t.receivedAt??Date.now(),g={id:a,conversationId:Bi(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:s.contentType,body:s.body,createdAt:d,sortKey:Ce(d,a),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};return t.decryptFailed===true&&(g.encryption.decryptFailed=true),i>0&&(g.serverTime=i),e.parentMsgId&&(g.refMessageId=ge(e.parentMsgId)),t.edited===true&&(g.edited=true),t.keepRaw&&(g.raw=dI(e,n,t.cmdId)),g}function dI(e,n,t){return {cmdId:t,chat:{sMsgId:e.sMsgId,sFromId:e.sFromId.toString(),sToId:e.sToId.toString(),msgType:e.msgType,encrypt:e.encrypt,msgTime:e.msgTime.toString(),extend:e.extend||void 0,encryptVersion:e.encryptVersion||void 0,parentMsgId:e.parentMsgId||void 0},content:{contentType:n.contentType,text:n.content||void 0}}}function vr(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:Ae(e.id),msgType:aI,encrypt:e.encryption.encrypted?1:0,bMessage:gn(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:Ye(e.refMessageId)}:{}}}function Ba(e){return {id:ge(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function wi(e){switch(e){case 33281:return {code:e,reason:"rejected",displayCode:"forbiddenOrLeft",retryable:false};case 33282:return {code:e,reason:"rejected",displayCode:"contentRejected",retryable:false};case 33557:return {code:e,reason:"rejected",displayCode:"groupDismissed",retryable:false};case 33540:return {code:e,reason:"network",displayCode:"groupUnavailable",retryable:true};default:return {code:e,reason:"rejected",retryable:true}}}function cI(e){return Ci.encode(Ci.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var lI=new Set([4100,4113,4644,4645]),Ug=ue.create({contentType:1,content:""});function gI(e,n){let t=n.resolvePrivateKey({msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion});if(t===null)return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"no-key"}),null;try{let r=_e.decode(e.sContent);if(r.secretKey.length===0||r.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${r.secretKey.length}B cipherData=${r.cipherData.length}B`);let o=n.crypto.decryptEndToEnd({secretKey:r.secretKey,cipherData:r.cipherData,privateKey:t});return ue.decode(o)}catch(r){return n.onDecryptError?.({msgId:e.sMsgId,fromId:String(e.sFromId),toId:String(e.sToId),msgType:e.msgType,encrypt:e.encrypt,encryptVersion:e.encryptVersion,reason:"decrypt-failed",cause:r}),null}}function uI(e,n,t){let r=ia.decode(e),o=[],i=[];for(let a of r.msgList){i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});let s=kg(a,n,t);s!==null&&o.push(s);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function kg(e,n,t){if(e.cmdId===4653){let d=Dn.decode(e.sMsgData),g={...d,sMsgId:d.sMsgId||e.sMsgId,sFromId:d.sFromId===0n?e.sFromId:d.sFromId,sToId:d.sToId===0n?e.sToId:d.sToId,msgTime:d.msgTime===0n?e.msgTime:d.msgTime,parentMsgId:d.parentMsgId||e.parentMsgId};return n.onReaction?.(Er(g,n.selfId)),null}if(!lI.has(e.cmdId))return null;let r=Dn.decode(e.sMsgData),o=Ug,i=false,a=false;if(r.encrypt===0)try{o=ue.decode(r.sContent);}catch{a=true;}else if(r.encrypt===1&&t!==void 0){let d=gI(r,t);o=d??Ug,i=d===null;}else i=true;let s=tt(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return a&&(s.contentType="unknown",s.body={unknown:{reason:"malformed-content"}},s.raw={...s.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:s.conversationId},messageId:s.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:"offline",createdAt:Date.now()}),s.refMessageId===void 0&&e.parentMsgId&&(s.refMessageId=ge(e.parentMsgId)),e.isCancel===1&&(s.recalled={by:s.senderId,at:s.serverTime??s.createdAt},s.body={}),e.isEdit===1&&(s.edited=true),s}function mI(e){return Si.encode(Si.create({userId:BigInt(e.userId),msgIds:et(e.messageIds),clientType:e.clientType??0}))}function pI(e,n,t){let r=sa.decode(e),o=[];for(let i of r.msgList){let a=kg(i,n,t);a!==null&&o.push(a);}return {messages:o,missingMessageIds:nt(r.missingMsgIds),code:r.code}}function nn(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r.length>0)return r;if(typeof r=="number"&&Number.isFinite(r))return String(r)}}function rt(e,n){for(let t of n){let r=e[t];if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"&&r.trim()!==""&&Number.isFinite(Number(r)))return Number(r)}}function fI(e){let n=/^(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?/.exec(e.trim()),t=n?Number(n[1]):Number.NaN;if(!Number.isFinite(t)||t<1900)return;let r=new Date,o=r.getFullYear()-t,i=n?.[2]===void 0?void 0:Number(n[2]),a=n?.[3]===void 0?void 0:Number(n[3]);if(i!==void 0){let s=r.getMonth()+1;(s<i||s===i&&a!==void 0&&r.getDate()<a)&&(o-=1);}return o>=0&&o<200?o:void 0}function yI(e){let n=t=>t.map(r=>typeof r=="string"?r.trim():r!==null&&typeof r=="object"&&typeof r.email=="string"?r.email.trim():"").filter(r=>r!=="");for(let t of ["extend_email","extendEmail"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim()!==""){let o=r.trim();if(o.startsWith("["))try{let i=JSON.parse(o);if(Array.isArray(i))return n(i)}catch{}return [o]}}return []}function II(e){let n=t=>t.flatMap(r=>{if(r===null||typeof r!="object")return [];let o=r,i=o.country_code??o.countryCode;if(typeof i!="string"||typeof o.mobile!="string")return [];let a=i.trim(),s=o.mobile.trim();return a===""||s===""?[]:[{countryCode:a,mobile:s}]});for(let t of ["extend_mobile","extendMobile"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim().startsWith("["))try{let o=JSON.parse(r);if(Array.isArray(o))return n(o)}catch{}}return []}var CI=["user_id","userId","id","uid"],SI=["nick_name","nickName","nickname","name"],AI=["remark_name","remarkName"],EI=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],RI=["per_signature","signature","sign"],MI=["mid"],hI=["birthday"],TI=["public_key","publicKey"],xg=["is_undisturb","isUndisturb"];function vI(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=nn(t,CI);if(r===void 0)throw new Error("toUserProfile: \u7F3A\u5C11\u7528\u6237 id \u5B57\u6BB5\uFF08user_info.user_id / user_id\uFF09");let o={id:r,nickname:nn(t,SI)??""},i=nn(e,AI);i!==void 0&&(o.remark=i);let a=nn(t,EI);a!==void 0&&(o.avatar=a);let s=nn(t,RI);s!==void 0&&(o.signature=s);let d=nn(t,MI);d!==void 0&&(o.miCallId=d);let g=nn(t,hI);if(g!==void 0){o.birthday=g;let E=fI(g);E!==void 0&&(o.age=E);}let p=yI(e);p.length>0&&(o.remarkEmail=p);let f=II(e);f.length>0&&(o.remarkPhones=f);let v=nn(t,TI);v!==void 0&&(o.publicKey=v);let C=rt(e,xg);return C!==void 0&&(o.muted=C===1),o}var bI=["group_id","groupId","id","gid"],_I=["group_name","groupName","name"],NI=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],DI=["total_users","member_count","memberCount","member_num","memberNum"],GI=["status"],UI=["is_ingroup","isInGroup","isIngroup"],kI=["user_id","userId","owner_id","ownerId","master_id","masterId"],xI=["verify_way","verifyWay"],BI=["invite_code","inviteCode"];function FI(e){let n=nn(e,bI);if(n===void 0)throw new Error("toGroupProfile: \u7F3A\u5C11\u7FA4 id \u5B57\u6BB5\uFF0809b \u5F85\u6838\u5BF9\u771F\u5B9E\u63A5\u53E3\u5B57\u6BB5\uFF09");let t={id:n,name:nn(e,_I)??""},r=nn(e,NI);r!==void 0&&(t.avatar=r);let o=rt(e,DI);o!==void 0&&(t.memberCount=o);let i=rt(e,GI);i!==void 0&&(t.status=i);let a=rt(e,UI);a!==void 0&&(t.isInGroup=a===1);let s=nn(e,kI);s!==void 0&&(t.ownerId=s);let d=rt(e,xI);d!==void 0&&(t.verifyWay=d);let g=nn(e,BI);g!==void 0&&(t.inviteCode=g);let p=e.to_user;if(p!==null&&typeof p=="object"){let f=rt(p,xg);f!==void 0&&(t.muted=f===1);}return t}function PI(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function wI(e){if(On(e)){if(e.deletedForEveryone!==void 0)return {kind:"channel-moderation-deleted",by:e.deletedForEveryone.by};if(e.recalled!==void 0)return {kind:"recalled",by:e.recalled.by};if(e.body.text)return {kind:"text",text:e.body.text};if(e.contentType==="image")return {kind:"image"};if(e.contentType==="video")return {kind:"video"};if(e.contentType==="voice")return e.body.voice?.durationMs!==void 0?{kind:"voice",durationMs:e.body.voice.durationMs}:{kind:"voice"};if(e.contentType==="file")return {kind:"file"};if(e.contentType==="sticker")return {kind:Cs(e.body.sticker?.imageType??0)};if(e.contentType==="mediaAlbum"&&e.body.mediaAlbum!==void 0){let n=e.body.mediaAlbum.items,t=e.body.mediaAlbum.caption;return {kind:"mediaAlbum",imageCount:n.filter(r=>r.kind==="image").length,videoCount:n.filter(r=>r.kind==="video").length,...t!==void 0&&t.trim()!==""?{caption:t}:{}}}if(e.contentType==="contact")return {kind:"contact"};if(e.contentType==="miniProgram")return {kind:"miniProgram"};if(e.contentType==="transfer")return {kind:"transfer"};if(e.contentType==="call"&&e.body.call!==void 0)return {kind:"call",callKind:e.body.call.callKind};if(e.contentType==="redPacket")return {kind:"redPacket"};if(e.contentType==="game"&&e.body.game!==void 0)return {kind:"game",gameType:e.body.game.gameType};if(e.contentType==="unknown")return {kind:"unknown"};if(e.contentType==="system"&&e.body.system!==void 0){let{pinnedMessageAction:n,...t}=e.body.system;return {kind:"system",system:t}}if(e.encryption.encrypted)return {kind:"encrypted"}}}function VI(e,n){return e.eventType===n.eventType&&e.timelineVisibility===n.timelineVisibility&&e.operatorId===n.operatorId&&e.rawNotifyType===n.rawNotifyType&&e.errcode===n.errcode&&e.fallbackText===n.fallbackText&&JSON.stringify(e.action)===JSON.stringify(n.action)&&OI(e.targetUserIds,n.targetUserIds)&&KI(e.payload,n.payload)}function On(e){return e.body.system?.timelineVisibility!=="hidden"}function OI(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function KI(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function Fa(e,n){if(e===void 0||n===void 0)return e===n;if(e.kind!==n.kind)return false;switch(e.kind){case "text":return e.text===n.text;case "voice":return e.durationMs===n.durationMs;case "recalled":return e.by===n.by;case "channel-moderation-deleted":return e.by===n.by;case "system":return VI(e.system,n.system);case "game":return e.gameType===n.gameType;case "call":return e.callKind===n.callKind;case "mediaAlbum":{let t=n;return e.imageCount===t.imageCount&&e.videoCount===t.videoCount&&e.caption===t.caption}case "image":case "gif":case "video":case "file":case "sticker":case "contact":case "miniProgram":case "transfer":case "redPacket":case "encrypted":case "unknown":return true}}function LI(e,n){if(n!==void 0&&n!==""?e.senderId===n:e.senderId!==e.conversationId){if(e.status==="failed")return "failed";if(e.status==="pending"||e.status==="uploading"||e.status==="sending")return "sending"}}function Pa(e,n={}){let t=e.contentType==="system"&&On(e)?e.body.system:void 0,r=e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:PI(e),lastMessageSummary:wI(e),lastMessageSenderId:e.senderId,lastMessageSystemEvent:t?.eventType,lastMessageSystemTargetsSelf:t!==void 0&&n.selfId!==void 0&&n.selfId!==""?t.targetUserIds?.includes(n.selfId)??false:void 0,...r!==void 0?{lastMessageMention:r}:{},...e.recalled!==void 0?{lastMessageRecalled:{by:e.recalled.by}}:{},...e.deletedForEveryone!==void 0?{lastMessageDeletedForEveryone:{by:e.deletedForEveryone.by}}:{},timestamp:e.createdAt,unreadCount:n.unreadCount??0,mentionUnreadCount:n.mentionUnreadCount??0,pinned:false,muted:false,lastMessageSendState:LI(e,n.selfId)}}function Fg(e){if(e<0n)throw new Error("signal offline: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7Fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function wa(e,n){let t=Uint8Array.of(e<<3),r=Fg(n),o=new Uint8Array(1+r.length);return o.set(t,0),o.set(r,1),o}function Bg(e,n){let t=e<<3|2,r=Fg(BigInt(n.length)),o=new Uint8Array(1+r.length+n.length);return o[0]=t,o.set(r,1),o.set(n,1+r.length),o}function ZI(e){let n=e.reduce((o,i)=>o+i.length,0),t=new Uint8Array(n),r=0;for(let o of e)t.set(o,r),r+=o.length;return t}function ot(e,n){let t=0n,r=0n,o=n;for(;o<e.length;){let i=BigInt(e[o]);if(o+=1,t|=(i&0x7Fn)<<r,(i&0x80n)===0n)return {value:t,offset:o};if(r+=7n,r>63n)throw new Error("signal offline: varint \u8FC7\u957F")}throw new Error("signal offline: varint \u4E0D\u5B8C\u6574")}function Pg(e,n,t){if(t===0)return ot(e,n).offset;if(t===1){if(n+8>e.length)throw new Error("signal offline: 64 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+8}if(t===2){let r=ot(e,n),o=Number(r.value)+r.offset;if(o>e.length)throw new Error("signal offline: \u957F\u5EA6\u5B57\u6BB5\u8D8A\u754C");return o}if(t===5){if(n+4>e.length)throw new Error("signal offline: 32 \u4F4D\u5B57\u6BB5\u4E0D\u5B8C\u6574");return n+4}throw new Error(`signal offline: wire type ${String(t)}`)}function QI(e){let n=new TextEncoder,t=[wa(1,BigInt(e.userId)),Bg(2,n.encode(e.msgId??""))];for(let r of e.deliveredMsgIds??[])t.push(Bg(3,n.encode(r)));return t.push(wa(4,BigInt(e.limit??100))),t.push(wa(5,BigInt(e.clientType??0))),ZI(t)}function WI(e){let n=0,t=0,r=new Uint8Array(0),o="",i=new TextDecoder;for(;n<e.length;){let a=e[n];n+=1;let s=a>>>3,d=a&7;if(s===1&&d===0){let g=ot(e,n);t=Number(g.value),n=g.offset;continue}if(s===2&&d===2){let g=ot(e,n),p=g.offset+Number(g.value);if(p>e.length)throw new Error("signal offline: sMsgData \u8D8A\u754C");r=new Uint8Array(e.subarray(g.offset,p)),n=p;continue}if(s===3&&d===2){let g=ot(e,n),p=g.offset+Number(g.value);if(p>e.length)throw new Error("signal offline: sMsgId \u8D8A\u754C");o=i.decode(e.subarray(g.offset,p)),n=p;continue}n=Pg(e,n,d);}return {cmdId:t,body:r,msgId:o}}function HI(e){let n=[],t=0;for(;t<e.length;){let r=e[t];t+=1;let o=r>>>3,i=r&7;if(o===3&&i===2){let a=ot(e,t),s=a.offset+Number(a.value);if(s>e.length)throw new Error("signal offline: msgList \u8D8A\u754C");n.push(WI(e.subarray(a.offset,s))),t=s;continue}t=Pg(e,t,i);}return {items:n,deliveredMsgIds:n.map(r=>r.msgId).filter(r=>r!=="")}}var wg=-5,Kn=-4,JI=new Set(["image","video","voice","file","sticker"]);function YI(e){let n=[];return e.text!==void 0&&n.push("text"),e.system!==void 0&&n.push("system"),e.image!==void 0&&n.push("image"),e.video!==void 0&&n.push("video"),e.voice!==void 0&&n.push("voice"),e.file!==void 0&&n.push("file"),e.sticker!==void 0&&n.push("sticker"),e.contact!==void 0&&n.push("contact"),e.miniProgram!==void 0&&n.push("miniProgram"),e.game!==void 0&&n.push("game"),e.transfer!==void 0&&n.push("transfer"),e.call!==void 0&&n.push("call"),e.redPacket!==void 0&&n.push("redPacket"),e.mediaAlbum!==void 0&&n.push("mediaAlbum"),e.unknown!==void 0&&n.push("unknown"),n.length===1?n[0]:void 0}function kn(e){let n=Ua(Ui(fa(e)));n.body.game!==void 0&&!pt(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!$d(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}});let t=YI(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=Un(n),n.contentType!=="text"||n.extensions?.unsupportedContentType===void 0)return n;let{unsupportedContentType:r,...o}=n.extensions;return {...n,contentType:"unknown",body:{unknown:{reason:"unsupported-content-type"}},...Object.keys(o).length===0?{extensions:void 0}:{extensions:o}}}function Va(e){if(e.status==="uploading"){let n=JI.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:wg,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===Kn){let n=e.contentType==="video"||e.contentType==="file"?e.contentType:void 0,t=n===void 0?e.failure.displayCode:"media.uploadInterrupted";return e.failure.retryable===false&&e.failure.displayCode===t&&(n===void 0||e.failure.mediaKind===n)?e:{...e,failure:{...e.failure,...t===void 0?{}:{displayCode:t},...n===void 0?{}:{mediaKind:n},retryable:false}}}return e}function XI(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function Vi(e,n){return {...e,status:n.status,...n.receiveTime===void 0?{}:{receiveTime:n.receiveTime},...n.returnTime===void 0?{}:{returnTime:n.returnTime},...n.isRead===void 0?{}:{isRead:n.isRead}}}function Vg(e){let n=e.body.transfer,r=(n?.status===1?n.receiveTime:n?.status===2||n?.status===3?n.returnTime:void 0)??e.serverTime??e.createdAt;return !Number.isFinite(r)||r<=0?0:r<1e12?r*1e3:r}function Kg(e,n){let t=e.body.transfer,r=n.body.transfer;if(t===void 0)return n;if(r===void 0)return e;if(t.status===0&&r.status!==0)return n;if(r.status===0&&t.status!==0)return e;let o=Vg(e),i=Vg(n);return o!==i?i>o?n:e:t.status!==r.status?r.status>t.status?n:e:n.serverTime!==void 0&&e.serverTime===void 0?n:e}function Og(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function Lg(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function Oa(e,n){let t=new Map,r=new Set(n.map(a=>a.id)),o=new Map(n.map(a=>[a.id,a]));for(let a of n){let s=Og(a);s!==null&&t.set(s,[...t.get(s)??[],a]);}if(t.size===0)return [...n];for(let a of e){let s=Og(a);s===null||!t.has(s)||r.has(a.id)||t.get(s)?.push(a);}let i=[];for(let a of t.values()){let d=a.reduce(Kg).body.transfer;if(d!==void 0)for(let g of a){let p=g.body.transfer;if(p===void 0||Lg(p,d))continue;let f={...g,body:{transfer:Vi(p,d)}};r.has(g.id)?o.set(g.id,f):i.push(f);}}return [...n.map(a=>o.get(a.id)??a),...i]}function Oi(e,n,t,r){let o=[];for(let i of e){if(!XI(i,n))continue;let a=i.body.transfer;if(a===void 0)continue;let s={...a,status:t,...t===1&&r!==void 0?{receiveTime:r}:{},...t===2||t===3?{returnTime:r??a.returnTime}:{}},d={...i,body:{transfer:s}};Kg(i,d)!==d||Lg(a,s)||o.push({...i,body:{transfer:s}});}return o}function Ka(e,n){return e.contentType==="system"?e.conversationType==="direct"?e.body.system?.eventType==="direct_contact_established"||e.body.system?.eventType==="direct_contact_required":e.conversationType==="group"||e.conversationType==="channel":n!==""?e.senderId!==n:e.conversationType==="direct"&&e.senderId===e.conversationId}function Zg(e,n,t=e.encrypt){return Sn.encode(Sn.create({sRadioId:e.sRadioId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgTime:e.msgTime,encrypt:t,sContent:n,...e.nNotifyCount===void 0?{}:{nNotifyCount:e.nNotifyCount},...e.sNotifyUsers===void 0?{}:{sNotifyUsers:e.sNotifyUsers},...e.extend===void 0||e.extend===""?{}:{extend:e.extend},...e.parentMsgId===void 0||e.parentMsgId===""?{}:{parentMsgId:e.parentMsgId}}))}function qI(e,n,t){return z({command:12289,body:Zg(e,n,t)})}function Qg(e){return ue.encode(ue.create(e.bMessage))}function Za(e,n,t){if(t.length!==16)throw new Error(`channel encrypt=2 key \u5FC5\u987B\u4E3A 16 bytes\uFF0C\u5B9E\u9645 ${t.length}`);let r=n.encryptSymmetric({teaKey:t,plain:Qg(e)}),o=_e.encode(_e.create({cipherData:r}));return Zg(e,o,2)}function Wg(e){return qI(e,Qg(e),0)}function Hg(e,n,t){return z({command:12289,body:Za(e,n,t)})}function Qa(e,n){let t=Dn.create({sToId:e.sToId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{}});return Dn.encode(t)}function Jg(e,n){return z({command:4097,body:Qa(e,n)})}function Yg(e,n){let t=Qa(e,n);return [z({command:4097,body:t}),z({command:4113,body:t})]}function Wa(e){return ue.encode(ue.create(e.bMessage))}function Ha(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Wa(e),publicKey:t});return _e.encode(_e.create({secretKey:r,cipherData:o}))}function Xg(e){return Jg(e,Wa(e))}function zg(e){return Yg(e,Wa(e))}function qg(e,n,t){return Jg(e,Ha(e,n,t))}function jg(e,n,t){return Yg(e,Ha(e,n,t))}function $g(e,n,t){return Qa(e,Ha(e,n,t))}function eu(e,n,t){let r=fn.create({sGrpId:e.sGrpId,sFromId:e.sFromId,sMsgId:e.sMsgId,msgType:e.msgType,encrypt:e.encrypt,sContent:n,...e.nNotifyCount!==void 0?{nNotifyCount:e.nNotifyCount}:{},...e.sNotifyUsers!==void 0?{sNotifyUsers:e.sNotifyUsers}:{},...e.extend!==void 0&&e.extend!==""?{extend:e.extend}:{},...e.parentMsgId!==void 0&&e.parentMsgId!==""?{parentMsgId:e.parentMsgId}:{},...t!==void 0&&t!==""?{encryptVersion:t}:{}});return fn.encode(r)}function nu(e,n,t){return z({command:8193,body:eu(e,n,t)})}function tu(e){return ue.encode(ue.create(e.bMessage))}function ru(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:tu(e),publicKey:t});return _e.encode(_e.create({secretKey:r,cipherData:o}))}function ou(e){return nu(e,tu(e))}function iu(e,n,t,r){return nu(e,ru(e,n,t),r)}function su(e,n,t,r){return eu(e,ru(e,n,t),r)}function au(e){let n=fo.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:Ae(e.messageId),content:e.content});return z({command:4644,body:fo.encode(n)})}function du(e){let n=Io.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:Ae(e.messageId),content:e.content});return z({command:8976,body:Io.encode(n)})}function cu(e){let n=Jo.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:Ae(e.messageId),content:e.content,IncrId:e.incrementId});return z({command:12808,body:Jo.encode(n)})}function lu(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u7F16\u8F91\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function gu(){return {conversationType:"direct",async prepare(e,n,t){if(t.crypto===void 0||t.resolvePublicKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolvePublicKey(n.conversationId);if(r===null||r==="")return {ok:false,reason:"no-key"};let o=vr({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),i=$g(o,t.crypto,r);return {ok:true,frame:au({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:i})}}}}function uu(){return {conversationType:"group",async prepare(e,n,t){if(t.crypto===void 0||t.resolveGroupKey===void 0)return {ok:false,reason:"no-key"};let r=await t.resolveGroupKey(n.conversationId);if(r===null||r.publicKey==="")return {ok:false,reason:"no-key"};let o=fr({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),i=su(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:du({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:i})}}}}function jI(e){return {conversationType:"channel",async prepare(n,t,r){if(t.contentType!=="text")return {ok:false,reason:"unsupported-content"};let o;try{o=await e.resolveProfile(t.conversationId);}catch{return {ok:false,reason:"failed"}}if(o===null||o.channelState!=="active"||!o.permissions.sendMessages)return {ok:false,reason:"restricted"};if(r.crypto===void 0)return {ok:false,reason:"no-key"};let i=await e.resolveChannelKey(t.conversationId);if(i===null||i.length!==16)return {ok:false,reason:"no-key"};let a=t.serverTime??t.createdAt,s=yt({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:a}),d=Za(s,r.crypto,i),g=t.extensions?.channelSequence,p=typeof g=="string"&&/^\d+$/.test(g)?BigInt(g):0n;return {ok:true,frame:cu({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:d,incrementId:p})}}}}function Ja(){return lu([gu(),uu()])}var mu=120*1e3,$I=15e3;function Ya(e){let n=e.now??(()=>Date.now()),t=e.strategies??Ja(),r=new Map;function o(i,a){let s=r.get(i);s!==void 0&&(clearTimeout(s.timer),r.delete(i),s.resolve(a));}return {edit(i){let a=e.domainState.getConversationMessage(i,i.messageId);if(a===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationId!==a.conversationId||i.conversationType!==a.conversationType)return Promise.resolve({ok:false,reason:"not-found"});let s=e.getSelfId();if(a.senderId!==s)return Promise.resolve({ok:false,reason:"not-own"});if(a.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(a.recalled!==void 0)return Promise.resolve({ok:false,reason:"recalled"});if(a.deletedForEveryone!==void 0)return Promise.resolve({ok:false,reason:"deleted"});if(i.text==="")return Promise.resolve({ok:false,reason:"empty"});let d=t.resolve(i.conversationType);if(d===void 0)return Promise.resolve({ok:false,reason:"unsupported"});if(n()-(a.serverTime??a.createdAt)>mu)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let g=Ae(i.messageId),p=r.get(g);if(p!==void 0)return p.promise;let f,v=new Promise(E=>{f=E;}),C={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,text:i.text,mention:i.mention,resolve:f,timer:setTimeout(()=>{},0),promise:v};return clearTimeout(C.timer),r.set(g,C),(async()=>{let E;try{E=await d.prepare(i,a,{selfId:s,crypto:e.crypto,resolvePublicKey:e.resolvePublicKey,resolveGroupKey:e.resolveGroupKey});}catch{o(g,{ok:false,reason:"encrypt-failed"});return}if(!E.ok){o(g,E);return}r.has(g)&&(C.timer=setTimeout(()=>o(g,{ok:false,reason:"timeout"}),$I),e.sendFrame(E.frame));})(),v},onEditAck({sMsgId:i,errcode:a}){let s=r.get(i);if(s!==void 0){if(a===32768||a===0){e.domainState.editMessage({conversationId:s.conversationId,conversationType:s.conversationType},s.messageId,{text:s.text},s.mention),o(i,{ok:true});return}o(i,s.conversationType==="channel"?{ok:false,reason:"failed",errcode:a}:{ok:false,reason:"failed"});}},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function it(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function sn(e){if(e!==void 0)return new Uint8Array(e)}function eC(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function Ln(e){let{id:n,createdAt:t}=e.outbox.allocateMessageIdentity(e.target);return e.outbox.enqueueMedia({id:n,conversationId:e.target.conversationId,conversationType:e.target.conversationType,contentType:e.contentType,body:e.body,encryption:e.encryption,createdAt:t}).id}var nC={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:eC},tC={contentType:"image",isContentReady:e=>it(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=sn(n.thumbData),r=sn(n.teaKey);return {image:{url:n.url,width:n.width,height:n.height,...n.md5!==void 0?{md5:n.md5}:{},...n.imageType!==void 0?{imageType:n.imageType}:{},...n.size!==void 0?{size:n.size}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Ln},rC={contentType:"video",isContentReady:e=>it(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=sn(n.thumbData),r=sn(n.teaKey);return {video:{url:n.url,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.size!==void 0?{size:n.size}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Ln},oC={contentType:"file",isContentReady:e=>it(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=sn(n.teaKey);return {file:{url:n.url,fileName:n.fileName,...n.size!==void 0?{size:n.size}:{},...n.extension!==void 0?{extension:n.extension}:{},...n.fileType!==void 0?{fileType:n.fileType}:{},...n.mimeType!==void 0?{mimeType:n.mimeType}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{teaKey:t}:{}}}},enqueue:Ln},iC={contentType:"mediaAlbum",isContentReady:e=>{let n=e.body.mediaAlbum;return n===void 0||n.items.length===0?false:n.items.every(t=>it(t.url))},cloneBody:e=>{let n=e.body.mediaAlbum;return n===void 0?{}:{mediaAlbum:{...n.caption!==void 0?{caption:n.caption}:{},items:n.items.map(t=>{let r=sn(t.thumbData),o=sn(t.teaKey);return {kind:t.kind,url:t.url,width:t.width,height:t.height,...t.durationMs!==void 0?{durationMs:t.durationMs}:{},...t.thumbUrl!==void 0?{thumbUrl:t.thumbUrl}:{},...t.md5!==void 0?{md5:t.md5}:{},...t.size!==void 0?{size:t.size}:{},...t.fileEncryptType!==void 0?{fileEncryptType:t.fileEncryptType}:{},...t.hd!==void 0?{hd:t.hd}:{},...r!==void 0?{thumbData:r}:{},...o!==void 0?{teaKey:o}:{}}})}}},enqueue:Ln};function sC(e){let n=sn(e.thumbData),t=sn(e.teaKey);return {image:{url:e.url,width:e.width,height:e.height,...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function aC(e){let n=sn(e.thumbData),t=sn(e.teaKey);return {video:{url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0?{duration:e.durationMs/1e3}:{},...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function pu(e,n){let t=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||t===void 0)return {ok:false,reason:"not-media-album"};let r=Number.isInteger(n)&&n>=0?t.items[n]:void 0;return r===void 0?{ok:false,reason:"item-not-found"}:it(r.url)?{ok:true,contentType:r.kind,body:r.kind==="video"?aC(r):sC(r)}:{ok:false,reason:"item-not-ready"}}var dC={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?it(n.url):Or(n.url)&&Fn(n.width)&&n.width>0&&Fn(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=sn(n.thumbData);return {sticker:{url:n.url,width:n.width,height:n.height,exprType:n.exprType,imageType:n.imageType,...n.size!==void 0?{size:n.size}:{},...n.describe!==void 0?{describe:n.describe}:{},...n.contentId!==void 0?{contentId:n.contentId}:{},...n.packageName!==void 0?{packageName:n.packageName}:{},...t!==void 0?{thumbData:t}:{}}}},enqueue:e=>Ln({...e,encryption:{encrypted:false}})},cC={contentType:"game",isContentReady:e=>e.body.game!==void 0&&pt(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:Ln},lC={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&&Wn(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:Ln},gC=[nC,tC,rC,oC,iC,dC,cC,lC],uC=new Map(gC.map(e=>[e.contentType,e]));function br(e){return uC.get(e)}function mC(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function Ki(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:br(e.contentType)!==void 0}function fu(e){let n=br(e.contentType);return n===void 0?false:n.isContentReady(e)}function Xa(e){return Ki(e)&&fu(e)}var yu=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram","transfer","call","redPacket","mediaAlbum"]);function za(e){return yu.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true}function Li(e,n){let t=e==="admin"||e==="owner",r=e==="owner";return {sendMessages:(e==="member"||t)&&n==="active",mentionAll:t,editProfile:t,manageMembers:t,manageAdmins:r,moderateMessages:t,manageMute:t,dismissChannel:r,transferOwnership:r}}function pC(e,n){let t=/^(\d{1,2}):(\d{2})_(\d{1,2}):(\d{2})$/.exec(e);if(t===null)return false;let r=Number(t[1]),o=Number(t[2]),i=Number(t[3]),a=Number(t[4]);if(r>23||i>23||o>59||a>59)return false;let s=new Date(n),d=s.getHours()*60+s.getMinutes(),g=r*60+o,p=i*60+a;return g<=p&&g<=d&&d<=p}function fC(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??Li("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:Li(t.role,n)};let r=t.baseState,o,i=t.role==="owner"||t.role==="admin";return t.baseState==="active"&&!i&&(t.currentUserMuted?(r="muted",o="current-user"):t.allMembersMuted&&(t.mutePeriod===void 0||pC(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:Li(t.role,r),...o===void 0?{}:{muteReason:o}}}function Iu(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function qa(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):Iu(t)-Iu(n))}var yC=new Set(["direct","group","channel","supergroup"]);function Be(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function yn(e){return {conversationType:e.type,conversationId:e.id}}function xn(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function ie(e){if(!yC.has(e.conversationType)||e.conversationId.length===0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u8EAB\u4EFD\uFF08type=${e.conversationType}, id=${e.conversationId}\uFF09`);return `v1:${e.conversationType}:${encodeURIComponent(e.conversationId)}`}function Rn(e){let n=/^v1:(direct|group|channel|supergroup):(.+)$/.exec(e);if(n===null)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);let[,t,r]=n;if(t===void 0||r===void 0)throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`);try{let o=decodeURIComponent(r);if(o.length===0||encodeURIComponent(o)!==r)throw new Error("\u4F1A\u8BDD id \u4E0D\u662F canonical \u7F16\u7801");return {conversationType:t,conversationId:o}}catch(o){throw new Error(`\u975E\u6CD5\u4F1A\u8BDD\u4E3B\u952E\uFF1A${e}`,{cause:o})}}function Cu(){let e=new Map;return {get:n=>e.get(ie(n))??null,getAll:()=>[...e.values()],set:n=>e.set(ie(n.ref),n),delete:n=>e.delete(ie(n)),clear:()=>e.clear()}}function Su(e){let n=new Map,t=new Map;function r(i){if(typeof i!="string")return ie(i);let a=[...t.keys()].filter(s=>Rn(s).conversationId===i);if(a.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${i}`);return a[0]}function o(i){let a=ie(Be(i)),s=t.get(a);s===void 0&&(s=new Set,t.set(a,s)),s.add(i.id);}return {get:i=>n.get(i),getAll:()=>[...n.values()],getByConversation(i){let a=r(i),s=a===void 0?void 0:t.get(a);if(s===void 0)return [];let d=[];for(let g of s){let p=n.get(g);p!==void 0&&d.push(p);}return d.sort(Oe)},has:i=>n.has(i),get size(){return n.size},upsert(i,a){let s=n.get(i.id);if(s===void 0)return n.set(i.id,i),o(i),{message:i,isNew:true,changed:true};let d=xi(s,i,e?.getSelfId?.()??""),g=a?.authoritativeFailure===true&&i.status==="failed"?{...d,status:"failed",failure:i.failure}:d;return n.set(g.id,g),o(g),{message:g,isNew:false,changed:!$n(s,g)}},delete(i,a){let s=n.get(a);if(s===void 0||s.conversationType!==i.conversationType||s.conversationId!==i.conversationId)return false;n.delete(a);let d=ie(i),g=t.get(d);return g?.delete(a),g?.size===0&&t.delete(d),true},deleteByConversation(i){let a=r(i);if(a===void 0)return;let s=t.get(a);if(s!==void 0){for(let d of s)n.delete(d);t.delete(a);}},clear(){n.clear(),t.clear();}}}function Bn(e){let n=kn(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=jn(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function _r(...e){let n=new Set,t=[];for(let r of e)for(let o of r)n.has(o.id)||(n.add(o.id),t.push(o));return t}function Au(e){let n=e.retention?.maxMessages;if(n!==void 0&&(!Number.isSafeInteger(n)||n<=0))throw new Error("\u6D88\u606F\u7A97\u53E3 maxMessages \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u5B89\u5168\u6574\u6570");let t=0,r=null,o=null,i=[],a,s=false,d=false,g=false,p,f=false,v=true,C,E=null;function G(h){if(!(n===void 0||i.length<=n)){if(h==="start"){i=i.slice(-n),a=i[0]?.sortKey,s=true,p=void 0;return}i=i.slice(0,n),d=true,v=false,C=void 0;}}function _(h){if(n===void 0||i.length<=n)return;let P=i.findIndex(ne=>ne.sortKey===h);if(P<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let L=i.length-n,Y=P-Math.floor((n-1)/2),K=Math.min(L,Math.max(0,Y)),ee=K+n;K>0&&(s=true,p=void 0),ee<i.length&&(d=true,v=false,C=void 0),i=i.slice(K,ee),a=i[0]?.sortKey;}function u(h,P,L){return h.conversationId===P&&(L===null||h.conversationType===L)}function I(h,P,L){let Y=h.filter(K=>u(K,P,L));if(L===null&&new Set(Y.map(K=>K.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${P}`);return Y}function S(h,P){return P===null?h:{conversationType:P,conversationId:h}}function T(h,P=true){if(r!==null){for(let L of h){if(!u(L,r,o))continue;if(E!==null){E.push(L);continue}let Y=i.findIndex(ee=>ee.id===L.id);if(Y>=0){i[Y]=L;continue}let K=i[i.length-1];K===void 0||L.sortKey>K.sortKey?d||i.push(L):a!==void 0&&L.sortKey>=a&&(i.push(L),i.sort(Oe));}P&&G(d?"end":"start");}}return {async open(h,{limit:P}){let L=typeof h=="string"?h:h.conversationId,Y=typeof h=="string"?null:h.conversationType,K=++t;r=L,o=Y,i=[],a=void 0,s=false,d=false,g=false,p=void 0,f=false,v=true,C=void 0,E=[];try{let ee=e.storage===void 0?[]:await e.storage.getMessages(S(L,Y),{limit:P}),H=I(ee,L,Y).map(Bn).filter(pe=>e.shouldIncludeMessage?.(pe)??!0);if(K!==t)return {conversationId:L,messages:H,stale:!0};let me=E??[];return i=[...H].sort(Oe),a=i[0]?.sortKey,s=H.length===P||e.loadOlderFromRemote!==void 0,f=e.loadOlderFromRemote!==void 0&&(H.length<P||Y!==null&&e.shouldEstablishRemoteLatest?.({conversationType:Y,conversationId:L},H)===!0),d=!1,v=!0,C=void 0,E=null,T(me,!1),G("start"),{conversationId:L,messages:i,stale:!1}}finally{K===t&&(E=null);}},async openAt(h,{anchorSortKey:P,limit:L,seedMessages:Y,seedHasNewer:K}){let ee=typeof h=="string"?h:h.conversationId,ne=typeof h=="string"?null:h.conversationType,H=++t;r=ee,o=ne,i=[],a=void 0,s=false,d=false,g=false,p=void 0,f=false,v=true,C=void 0,E=[];try{if(Y!==void 0&&Y.length>0){if(Y.some(Q=>!u(Q,ee,ne)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${ee}\uFF09`);let w=_r(Y).map(Bn).filter(Q=>e.shouldIncludeMessage?.(Q)??!0).sort(Oe);if(!w.some(Q=>Q.sortKey===P))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${ee}\uFF09`);let O=E??[];return i=w,a=i[0]?.sortKey,s=e.loadOlderFromRemote!==void 0,d=K??w.length===L,v=!d,C=void 0,E=null,T(O,!1),_(P),{conversationId:ee,messages:i,stale:H!==t}}if(e.storage===void 0)return {conversationId:ee,messages:[],stale:H!==t};let[me,pe]=await Promise.all([e.storage.getMessages(S(ee,ne),{beforeSortKey:P,limit:L}),e.storage.getMessages(S(ee,ne),{afterSortKey:P,limit:L})]),Ie=I(me,ee,ne).map(Bn).filter(w=>e.shouldIncludeMessage?.(w)??!0),Te=I(pe,ee,ne).map(Bn).filter(w=>e.shouldIncludeMessage?.(w)??!0);if(H!==t)return {conversationId:ee,messages:_r(Ie,Te).map(Bn),stale:!0};let x=E??[];return i=_r(Ie,Te).sort(Oe),a=i[0]?.sortKey,s=Ie.length===L||e.loadOlderFromRemote!==void 0,d=Te.length===L,v=!d,C=void 0,E=null,T(x,!1),_(P),{conversationId:ee,messages:i,stale:!1}}finally{H===t&&(E=null);}},async loadOlder({limit:h}){let P=r,L=o;if(P===null||!s)return {conversationId:P??"",messages:[],stale:false};let Y=t,K=e.storage===void 0||p!==void 0||f?[]:await e.storage.getMessages(S(P,L),{beforeSortKey:a,limit:h}),ee=I(K,P,L).map(Bn).filter(x=>e.shouldIncludeMessage?.(x)??true);if(Y!==t||r!==P||o!==L)return {conversationId:P,messages:ee,stale:true};let ne=ee.length===h,H=[...ee],me=false;if(ee.length>0&&(p=void 0),!ne&&e.loadOlderFromRemote!==void 0&&!g){if(L===null)throw new Error("\u8FDC\u7AEF\u5386\u53F2\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let x=await e.loadOlderFromRemote({conversation:{conversationType:L,conversationId:P},oldestLoaded:ee[0]??i[0],...p===void 0?{}:{cursor:p},intent:f?"establish-latest":"older",limit:h});if(Y!==t||r!==P||o!==L)return {conversationId:P,messages:[],stale:true};f=false,g=x.exhausted,p=x.nextCursor;let w=I(x.messages,P,L),O=w.map(Bn).filter(Q=>e.shouldIncludeMessage?.(Q)??true);if(x.replaceWindow){if(!x.exhausted&&(x.nextCursor===void 0||x.nextCursor.trim()===""))throw new Error(`\u8FDC\u7AEF\u6700\u65B0\u8FDE\u7EED\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08conversationType=${L}, conversationId=${P}\uFF09`);let Q=new Set(i.map(M=>M.id)),te=_r(O).sort(Oe),y=te.at(-1)?.sortKey,U=y===void 0?i:i.filter(M=>M.sortKey>y);i=_r(te,U).sort(Oe),a=i[0]?.sortKey,s=!g;let Z=te.filter(M=>!Q.has(M.id));return G("start"),{conversationId:P,messages:Z,stale:false}}me=w.length>0&&O.length===0,me&&(g=true,p=void 0),H.push(...O);}let pe=new Set(i.map(x=>x.id)),Ie=new Set,Te=H.filter(x=>pe.has(x.id)||Ie.has(x.id)?false:(Ie.add(x.id),true)).sort(Oe);return Te.length>0&&(i=[...Te,...i].sort(Oe)),a=i[0]?.sortKey??a,s=ne||e.loadOlderFromRemote!==void 0&&!g&&!me,G("end"),{conversationId:P,messages:Te,stale:false}},async loadNewer({limit:h}){let P=r,L=o;if(P===null||!d)return {conversationId:P??"",messages:[],stale:false};let Y=t,K=i.at(-1),ee=K?.sortKey,ne=e.storage===void 0||ee===void 0?[]:await e.storage.getMessages(S(P,L),{afterSortKey:ee,limit:h+1}),H=I(ne,P,L).map(Bn).filter(Q=>e.shouldIncludeMessage?.(Q)??true);if(Y!==t||r!==P||o!==L)return {conversationId:P,messages:[],stale:true};let me=H.filter(Q=>ee===void 0||Q.sortKey>ee).slice(0,h),pe=me.length===h,Ie=[...me];if(me.length>0&&(C=void 0),!pe&&e.loadNewerFromRemote!==void 0&&!v){if(L===null)throw new Error("\u8FDC\u7AEF\u5411\u65B0\u52A0\u8F7D\u9700\u8981\u5B8C\u6574\u4F1A\u8BDD\u8EAB\u4EFD ConversationRef\uFF0C\u65E7\u88F8 conversationId \u53EA\u652F\u6301\u672C\u5730\u517C\u5BB9\u5206\u9875");let Q=await e.loadNewerFromRemote({conversation:{conversationType:L,conversationId:P},newestLoaded:me.at(-1)??K,...C===void 0?{}:{cursor:C},limit:h});if(Y!==t||r!==P||o!==L)return {conversationId:P,messages:[],stale:true};v=Q.exhausted,C=Q.nextCursor,Ie.push(...I(Q.messages,P,L).filter(te=>e.shouldIncludeMessage?.(te)??true));}let Te=new Set(i.map(Q=>Q.id)),x=i.at(-1)?.sortKey,w=new Set,O=Ie.filter(Q=>x!==void 0&&Q.sortKey<=x||Te.has(Q.id)||w.has(Q.id)?false:(w.add(Q.id),true)).sort(Oe);return O.length>0&&(i=[...i,...O].sort(Oe)),d=pe||e.loadNewerFromRemote!==void 0&&!v,G("start"),{conversationId:P,messages:O,stale:false}},applyIncoming:T,removeMessage(h,P){if(r!==h.conversationId||o!==h.conversationType)return false;let L=i.findIndex(Y=>Y.id===P);return L<0?false:(t+=1,i.splice(L,1),a=i[0]?.sortKey,p=void 0,C=void 0,E=null,true)},clearConversation(h){return r!==h.conversationId||o!==h.conversationType?false:(t+=1,i=[],a=void 0,s=false,d=false,g=false,p=void 0,f=false,v=true,C=void 0,E=null,true)},list(){return [...i]},info(){return {conversationId:r,...r===null||o===null?{}:{conversation:{conversationType:o,conversationId:r}},hasMore:s,hasNewer:d}},getRevision(){return t},reset(){t+=1,r=null,o=null,i=[],a=void 0,s=false,d=false,g=false,p=void 0,f=false,v=true,C=void 0,E=null;}}}function ja(e,n){if(Object.is(e,n))return true;if(e instanceof Uint8Array&&n instanceof Uint8Array)return e.byteLength!==n.byteLength?false:e.every((a,s)=>a===n[s]);if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((a,s)=>ja(a,n[s]));if(e===null||n===null||typeof e!="object"||typeof n!="object")return false;let t=e,r=n,o=Object.keys(t),i=Object.keys(r);return o.length===i.length&&o.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&ja(t[a],r[a]))}function Eu(){let e=new Map;function n(t){if(typeof t!="string")return ie(t);let r=[...e.keys()].filter(o=>Rn(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set(t){let r=ie(xn(t)),o=e.get(r);return o!==void 0&&ja(o,t)?false:(e.set(r,t),true)},clear(t){let r=n(t);return r===void 0?false:e.delete(r)},isPinnedMessage(t,r){let o=n(t);return o!==void 0&&e.get(o)?.messageId===r},clearAll(){e.clear();}}}function Ru(){let e=new Map;function n(r){return r.conversationType===void 0?`legacy:${encodeURIComponent(r.conversationId)}`:ie(r)}function t(r){if(typeof r!="string"){let i=ie(r);if(e.has(i))return i;let a=`legacy:${encodeURIComponent(r.conversationId)}`;return e.has(a)?a:i}let o=[...e.entries()].filter(([i,a])=>a.conversationId===r||!i.startsWith("legacy:")&&Rn(i).conversationId===r).map(([i])=>i);if(o.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r}`);return o[0]}return {get:r=>{let o=t(r);return o===void 0?void 0:e.get(o)},getAll:()=>[...e.values()],set:r=>{if(r.conversationType!==void 0){e.delete(`legacy:${encodeURIComponent(r.conversationId)}`),e.set(n(r),r);return}let o=[...e.entries()].filter(([a,s])=>!a.startsWith("legacy:")&&s.conversationId===r.conversationId);if(o.length>1)throw new Error(`\u65E0\u7C7B\u578B ReadState \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r.conversationId}`);let i=o[0];if(i!==void 0){let[a,s]=i;e.set(a,{...r,conversationType:s.conversationType});return}e.set(n(r),r);},delete:r=>{let o=t(r);o!==void 0&&e.delete(o);},clear:()=>{e.clear();}}}function Mu(){let e=new Map;function n(t){if(typeof t!="string")return ie(t);let r=[...e.keys()].filter(o=>Rn(o).conversationId===t);if(r.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${t}`);return r[0]}return {get:t=>{let r=n(t);return r===void 0?void 0:e.get(r)},getAll:()=>[...e.values()],set:t=>{e.set(ie(yn(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function Nu(e){return e==="direct"?"local":"server"}function Du(e,n){let t=n?.includeMuted??false,r=0;for(let o of e)!t&&o.muted||(r+=o.unreadCount>0?o.unreadCount:o.manuallyUnread===true?1:0);return r}var IC=50,hu="im:deleted-conversations",Tu="im:terminated-conversations",vu="im:membership-reset-sort-keys",bu="im:pending-message-reactions",_u="im:transfer-status-records",CC=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function Gu(e,n){return e===n?true:e===void 0||n===void 0?false:CC.every(t=>e[t]===n[t])}function Uu(e,n){return e===n?true:e!==void 0&&n!==void 0&&e.role===n.role&&e.baseState===n.baseState&&e.resolvedState===n.resolvedState&&e.allMembersMuted===n.allMembersMuted&&e.currentUserMuted===n.currentUserMuted&&e.mutePeriod===n.mutePeriod}function Zi(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&Fa(e.lastMessageSummary,n.lastMessageSummary)&&e.timestamp===n.timestamp&&e.unreadCount===n.unreadCount&&(e.manuallyUnread??false)===(n.manuallyUnread??false)&&(e.mentionUnreadCount??0)===(n.mentionUnreadCount??0)&&e.pinned===n.pinned&&e.muted===n.muted&&e.topTime===n.topTime&&e.lastMessageSendState===n.lastMessageSendState&&e.readCursor===n.readCursor&&e.groupState===n.groupState&&e.channelState===n.channelState&&Gu(e.channelPermissions,n.channelPermissions)&&Uu(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function SC(e){let n=Su({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=Mu(),i=Ru(),a=Cu(),s=Eu(),d=new Map,g=1,p=new Set,f=new Set,v=new Map,{storage:C}=e,E=Promise.resolve(),G=new Map,_=new Map,u=new Map,I=0,S=e.unreadMode??Nu,T=new Set;function h(c={}){let l=Au({storage:C,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:ve,...c});return T.add(l),l}let P=h();function L(c={}){let l=h(c),m=false;return {window:l,dispose(){m||(m=true,l.reset(),T.delete(l));}}}function Y(c){for(let l of T){let m=l.list().find(R=>R.id===c);if(m!==void 0)return m}}function K(c,l){let m=n.get(l);if(m?.conversationId===c.conversationId&&m.conversationType===c.conversationType)return m;for(let R of T){let k=R.list().find(B=>B.id===l&&B.conversationId===c.conversationId&&B.conversationType===c.conversationType);if(k!==void 0)return k}}function ee(c){let l=new Map(n.getByConversation(c).map(m=>[m.id,m]));for(let m of T)if(ne(m,c))for(let R of m.list())R.conversationType===c.conversationType&&R.conversationId===c.conversationId&&!l.has(R.id)&&l.set(R.id,R);return [...l.values()].sort((m,R)=>m.sortKey.localeCompare(R.sortKey))}function ne(c,l){let m=c.info();return m.conversation===void 0?m.conversationId===l.conversationId:ie(m.conversation)===ie(l)}let H=false;function me(c){return `${ie(c.conversation)}\0${c.parentMessageId}`}function pe(){if(C===void 0||H)return;let c=[...t.values()].flat();C.setMeta(bu,c).catch(l=>ce("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",l));}async function Ie(){if(C===void 0)return;let c=[...r.values()],l=E.then(()=>C.setMeta(_u,c));E=l.catch(()=>{});try{await l;}catch(m){throw ce("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",m),m}}function Te(c,l){if(c===void 0||c.status===0&&l.status!==0)return l;if(l.status===0&&c.status!==0)return c;let m=c.occurredTime??0,R=l.occurredTime??0;return m!==R?R>m?l:c:l.status>c.status?l:c}function x(c){let l=c.body.transfer;if(c.contentType!=="transfer"||l===void 0)return c;let m=r.get(l.serialNumber);if(m===void 0||l.status!==0&&m.status===0)return c;let R={...l,status:m.status,...m.status===1&&m.occurredTime!==void 0?{receiveTime:m.occurredTime}:{},...m.status===2||m.status===3?{returnTime:m.occurredTime??l.returnTime}:{}};return l.status===R.status&&l.receiveTime===R.receiveTime&&l.returnTime===R.returnTime&&l.isRead===R.isRead?c:{...c,body:{transfer:Vi(l,R)}}}function w(c,l){let m=`${ie(c)}\0${l}`;return t.delete(m)?(pe(),true):false}function O(c){let l=`${ie(c)}\0`,m=false;for(let R of t.keys())R.startsWith(l)&&(t.delete(R),m=true);return m&&pe(),m}function Q(c,l){let m=K(c.conversation,c.parentMessageId);if(m===void 0){let k=me(c),B=t.get(k)??[];return B.some(X=>X.id===c.id)?"duplicate":(t.set(k,[...B,c]),pe(),"pending")}if(m.recalled!==void 0||m.deletedForEveryone!==void 0)return "duplicate";let R=Ca(m.reactions,c,e.getSelfId?.()??"");return R===m.reactions?"duplicate":(an([{...m,reactions:R}],l),"applied")}function te(c,l,m){let R=K(c,l);if(R===void 0){let X=`${ie(c)}\0${l}`,q=t.get(X);if(q===void 0)return false;let j=q.filter(ae=>ae.id!==m);return j.length===q.length?false:(j.length===0?t.delete(X):t.set(X,j),pe(),true)}let k=Sa(R.reactions,m,e.getSelfId?.()??"");if(k===R.reactions)return false;let B={...R};return k===void 0?delete B.reactions:B.reactions=k,an([B],"live"),true}function y(c,l){let m=Be(c),R=`${ie(m)}\0${c.id}`,k=t.get(R);if(k!==void 0){t.delete(R),pe();for(let B of k)Q(B,l);}}function U(c){for(let l of [...t.values()]){let m=l[0];if(m===void 0)continue;let R=K(m.conversation,m.parentMessageId);R!==void 0&&(R.recalled!==void 0||R.deletedForEveryone!==void 0?w(m.conversation,m.parentMessageId):y(R,c));}}let Z=0,M=new Map,A=new Map;function D(c){return ie(c)}function N(c){return V(c)||p.has(D(c))||p.has(c.conversationId)}function V(c){return f.has(D(c))||f.has(c.conversationId)}function W(c){let l=p.delete(D(c)),m=p.delete(c.conversationId);return l||m}function se(c){let l=W(c),m=f.delete(D(c)),R=f.delete(c.conversationId);return {deleted:l,terminal:m||R}}function de(c,l){if(l===""||c.contentType!=="system")return false;let m=c.body.system;return m?.targetUserIds?.includes(l)!==true?false:c.conversationType==="group"?m.eventType==="group_member_joined"||m.eventType==="group_member_invited":c.conversationType==="channel"&&(m.eventType==="channel_member_joined"||m.eventType==="channel_member_invited"||m.eventType==="channel_created")}function ve(c){let l=Be(c);if(N(l))return false;if(l.conversationType!=="group")return true;let m=v.get(ie(l));return m===void 0||c.sortKey>=m}function He(c){let l=ie(c),m=(M.get(l)??0)+1;return M.set(l,m),m}function ce(c,l){e.emitter.emit({type:"error",error:{scope:"storage",message:c,cause:l}});}function b(c){e.emitter.emit({type:"session:updated",session:c,conversation:yn(c)});}let $=new Set,fe=Promise.resolve(),le=0;function Pe(c){let l=le===0?c():fe.then(c),m=l.then(()=>{},()=>{});return $.add(m),m.finally(()=>$.delete(m)),l}function xr(c){le+=1;let l=Promise.all([...$]),m=fe.then(()=>l).then(c);return fe=m.then(()=>{},()=>{}),fe.finally(()=>{le-=1;}),m}function km(c){let l=c.body.system;if(l?.pinnedMessageAction===void 0)return c;let{pinnedMessageAction:m,...R}=l;return {...c,body:{...c.body,system:R}}}function xm(c){C===void 0||H||c.length===0||Pe(()=>C.saveMessages(c.map(km))).catch(l=>ce("\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function ji(c){let{lastMessageSendState:l,manuallyUnread:m,...R}=c;return R}function un(c){C===void 0||H||Pe(()=>C.saveSessions([ji(c)])).catch(l=>ce("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",l));}function $i(){C===void 0||H||C.setMeta(hu,[...p]).catch(c=>ce("\u5220\u9664\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",c));}function es(){C===void 0||H||C.setMeta(Tu,[...f]).catch(c=>ce("\u7EC8\u6001\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",c));}function xd(){C===void 0||H||C.setMeta(vu,[...v.entries()]).catch(c=>ce("GROUP \u91CD\u5165\u6C34\u4F4D\u843D\u76D8\u5931\u8D25",c));}function Bd(c){C===void 0||H||Pe(()=>C.saveReadState(c)).catch(l=>ce("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",l));}function Bm(c){C===void 0||H||C.savePinnedMessage(c).catch(l=>ce("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function Fm(c){C===void 0||H||C.removePinnedMessage(c).catch(l=>ce("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",l));}function ns(c){if(ie(c),c.conversationType==="supergroup")throw new Error("supergroup \u8349\u7A3F\u672A\u5B9E\u73B0\uFF0C\u4E0D\u5F97 fallback \u5230\u5176\u4ED6\u4F1A\u8BDD\u7C7B\u578B")}function Br(c){return ns(c),Object.freeze({conversationType:c.conversationType,conversationId:c.conversationId})}function Pm(c){return a.get(Br(c))}function wm(){let c=[],l=new Set;for(let m of o.getAll()){let R=yn(m);l.add(ie(R)),c.push({...m,draft:a.get(R)});}for(let m of a.getAll())l.has(ie(m.ref))||c.push({id:m.ref.conversationId,type:m.ref.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,draft:m});return qa(c)}function ts(c,l,m){if(ns(c),typeof l.text!="string")throw new TypeError("\u8349\u7A3F text \u5FC5\u987B\u662F\u5B57\u7B26\u4E32");if(l.attachments!==void 0&&l.attachments.length>0)throw new Error("\u8349\u7A3F\u9644\u4EF6\u5C1A\u672A\u652F\u6301\uFF1Aattachments \u53EA\u63A5\u53D7\u7A7A\u96C6\u5408");if(l.mentions!==void 0&&!Array.isArray(l.mentions))throw new TypeError("\u8349\u7A3F mentions \u5FC5\u987B\u662F\u6570\u7EC4");let R=(l.mentions??[]).map(B=>{if(typeof B.userId!="string"||B.userId.trim()===""||typeof B.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:B.userId,displayName:B.displayName})}),k=Object.freeze({conversationType:c.conversationType,conversationId:c.conversationId});return Object.freeze({ref:k,text:l.text,mentions:Object.freeze(R),...l.replyToMessageId===void 0?{}:{replyToMessageId:l.replyToMessageId},attachments:Object.freeze([]),updatedAt:m})}function Fd(c,l){return c.text===l.text&&c.replyToMessageId===l.replyToMessageId&&c.mentions.length===l.mentions.length&&c.mentions.every((m,R)=>{let k=l.mentions[R];return k!==void 0&&m.userId===k.userId&&m.displayName===k.displayName})}function rs(c,l){ns(c);let m=ie(c),k=(G.get(m)??Promise.resolve()).catch(()=>{}).then(l),B=k.then(()=>{},()=>{});return G.set(m,B),B.finally(()=>{G.get(m)===B&&G.delete(m);}),k}async function Vm(c,l){let m=Br(c),R=ie(m),k=ts(m,l,0),B=I,X=u.get(R)??0;return await rs(m,async()=>{let q=a.get(m),j=Math.max(Date.now(),(_.get(R)??q?.updatedAt??0)+1),ae=ts(m,k,j);if(q!==null&&Fd(q,ae))return q;if(C!==void 0&&await C.saveDraft(ae),B!==I||X!==(u.get(R)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u5199\u5165\u56DE\u704C\u5185\u5B58");return a.set(ae),_.set(R,j),e.emitter.emit({type:"draft:updated",conversation:ae.ref,draft:ae}),ae})}async function Pd(c,l){let m=Br(c),R=ie(m);if(l!==void 0&&(!Number.isFinite(l)||l<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${l}`);let k=I,B=u.get(R)??0;return await rs(m,async()=>{let X=a.get(m);if(X===null||l!==void 0&&X.updatedAt!==l)return false;if(C!==void 0&&await C.deleteDraft(m),k!==I||B!==(u.get(R)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u6E05\u7406\u56DE\u704C\u5185\u5B58");return a.delete(m),e.emitter.emit({type:"draft:cleared",conversation:m}),true})}async function Om(c){await Pd(c);}async function Km(c,l){return await Pd(c,l)}function Lm(c){let l=Br(c),m=ie(l);u.set(m,(u.get(m)??0)+1),a.get(l)!==null&&(a.delete(l),e.emitter.emit({type:"draft:cleared",conversation:l})),rs(l,async()=>{C!==void 0&&await C.deleteDraft(l);}).catch(R=>ce("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",R));}async function Zm(){for(I+=1;G.size>0;)await Promise.all([...G.values()]);}function Qm(c){let l=K(xn(c),c.messageId);return l===void 0?c:{...c,preview:{state:"ready",message:l}}}function Wm(c,l){let m=Qm(c);s.set(m)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:m.conversationId,conversation:{conversationType:m.conversationType,conversationId:m.conversationId},pinnedMessage:m,reason:l}),Bm(m));}function Hm(c,l){let m=typeof c=="string"?c:c.conversationId,R=s.get(c);if(!s.clear(c))return;let k=typeof c=="string"?R===void 0?void 0:xn(R):c;if(k===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${m}`);e.emitter.emit({type:"pinned-message:updated",conversationId:m,conversation:k,pinnedMessage:null,reason:l}),Fm(c);}function os(c,l,m,R){let k=o.get(c);if(k===void 0)return;let B={...k,title:l,avatar:m??k.avatar,...R!==void 0?{muted:R}:{}};Zi(k,B)||(o.set(B),b(B),un(B));}async function is(c,l){let{conversationId:m,conversationType:R}=c,k=ie(c),B=l?.force===true;if(!B&&A.has(k))return false;let X=Z,q=He(c);B&&A.set(k,q);let{profile:j,channelProfile:ae}=e,J=3,re=B?{forceRefresh:true}:void 0;try{if(R==="direct"){if(j===void 0)return !1;let oe=await j.getUserProfile(m,re);if(X!==Z||q!==M.get(k))return !1;oe!==null&&os(c,oe.remark??oe.nickname,oe.avatar,oe.muted);}else if(R==="group"){if(j===void 0)return !1;let oe=await j.getGroupProfile(m,re);if(X!==Z||q!==M.get(k))return !1;oe!==null&&(os(c,oe.name,oe.avatar,oe.muted),oe.status===J&&us({conversationType:"group",conversationId:m},"group_dismissed"),B&&e.emitter.emit({type:"profile:updated",profileType:"group",id:m}));}else if(R==="channel"){if(ae===void 0)return !1;let oe=await ae.getProfile(m,re);if(X!==Z||q!==M.get(k))return !1;if(oe!==null){os(c,oe.name,oe.avatar,oe.muted);let be=o.get(c)?.channelState,Ee=be==="left"||be==="removed"||be==="dismissed",De=oe.channelState==="left"||oe.channelState==="removed"||oe.channelState==="dismissed";if(l?.allowChannelRecovery===!0&&Ee&&be!=="dismissed"&&oe.channelState==="active")return gs(m,"active",void 0,{permissions:oe.permissions,...oe.accessSnapshot===void 0?{}:{snapshot:oe.accessSnapshot}}),B&&e.emitter.emit({type:"channel-profile:updated",channelId:m,conversation:{conversationType:"channel",conversationId:m}}),!0;let Ne=Ee&&(!De||be==="dismissed"||oe.channelState!=="dismissed");if(De&&!Ne)return us({conversationType:"channel",conversationId:m},`channel_${oe.channelState}`),B&&e.emitter.emit({type:"channel-profile:updated",channelId:m,conversation:{conversationType:"channel",conversationId:m}}),!1;if(!Ne){let Ze=oe.permissions.sendMessages?void 0:`channel_${oe.channelState}`;gs(m,oe.channelState,Ze,{permissions:oe.permissions,...oe.accessSnapshot===void 0?{}:{snapshot:oe.accessSnapshot}});}B&&e.emitter.emit({type:"channel-profile:updated",channelId:m,conversation:{conversationType:"channel",conversationId:m}});}}return !1}catch(oe){return e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:oe}}),false}finally{B&&A.get(k)===q&&A.delete(k);}}function Jm(c,l){is({conversationType:l,conversationId:c},{force:true});}function Ym(c){return is({conversationType:"channel",conversationId:c},{force:true,allowChannelRecovery:true})}function Xm(c,l){let m=o.get(c);if(m===void 0)return;let R={...m,...l.title!==void 0?{title:l.title}:{},...l.avatar!==void 0?{avatar:l.avatar}:{}};Zi(m,R)||(o.set(R),b(R),un(R));}function ss(c){return Ka(c,e.getSelfId?.()??"")}function as(c){let l=i.get(c);return l===void 0||l.readCursor===""?void 0:(typeof c=="string"?n.get(l.readCursor):K(c,l.readCursor))?.sortKey??l.readCursorSortKey}function wd(c,l){let m=0;for(let R of n.getByConversation(c))On(R)&&ss(R)&&(l===void 0||R.sortKey>l)&&(m+=1);return m}function Vd(c){let l=e.getSelfId?.();if(l===void 0||l===""||c.senderId===l)return false;let{mention:m}=c;return m===void 0?false:m.atAll||m.atUserIds.includes(l)}function zm(c,l){let m=0;for(let R of n.getByConversation(c))Vd(R)&&(l===void 0||R.sortKey>l)&&(m+=1);return m}function Tn(c,l=true){let m=c.conversationType===void 0?o.get(c.conversationId):void 0,R=c.conversationType===void 0&&m!==void 0?{...c,conversationType:m.type}:c,k=R.conversationType===void 0?R.conversationId:{conversationType:R.conversationType,conversationId:R.conversationId},B=i.get(k);if(i.set(R),l&&Bd(R),B===void 0||B.readCursor!==R.readCursor||B.unreadCount!==R.unreadCount||(B.manuallyUnread??false)!==(R.manuallyUnread??false)){if(R.conversationType===void 0){e.emitter.emit({type:"error",error:{scope:"storage",message:`\u5DF2\u8BFB\u72B6\u6001\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF0C\u62D2\u7EDD\u53D1\u5E03 read:updated\uFF08conversationId=${R.conversationId}\uFF09`}});return}e.emitter.emit({type:"read:updated",conversationId:R.conversationId,conversation:{conversationType:R.conversationType,conversationId:R.conversationId},readCursor:R.readCursor,unreadCount:R.unreadCount,...R.manuallyUnread===true?{manuallyUnread:true}:{}});}}function Fr(c,l,m,R){let k=o.get(c),B=R??i.get(c);if(l===void 0){if(k===void 0)return;let J={...k,...m==="clear"?{lastMessagePreview:"",timestamp:0}:{},...B===void 0?{}:{unreadCount:B.unreadCount,manuallyUnread:B.manuallyUnread,mentionUnreadCount:B.mentionUnreadCount,readCursor:B.readCursor||k.readCursor}};return m==="clear"&&(delete J.lastMessageSummary,delete J.lastMessageSenderId,delete J.lastMessageSystemEvent,delete J.lastMessageSystemTargetsSelf,delete J.lastMessageMention,delete J.lastMessageRecalled,delete J.lastMessageDeletedForEveryone,delete J.lastMessageSendState),J}let X=B?.unreadCount??k?.unreadCount??0,q=B===void 0?k?.manuallyUnread:B.manuallyUnread,j=B?.mentionUnreadCount??k?.mentionUnreadCount??0,ae=Pa(l,{unreadCount:X,mentionUnreadCount:j,selfId:e.getSelfId?.()});return k===void 0?{...ae,...q===void 0?{}:{manuallyUnread:q},readCursor:(B?.readCursor??"")||ae.readCursor}:{...ae,title:k.title||ae.title,avatar:k.avatar??ae.avatar,pinned:k.pinned,muted:k.muted,topTime:k.topTime,...q===void 0?{}:{manuallyUnread:q},readCursor:(B?.readCursor??"")||k.readCursor,groupState:k.groupState,channelState:k.channelState,channelPermissions:k.channelPermissions,channelAccessSnapshot:k.channelAccessSnapshot,sendDisabledReason:k.sendDisabledReason}}function ds(c,l){if(c===void 0)return;let m=o.get({conversationType:c.type,conversationId:c.id});m!==void 0&&Zi(m,c)||(o.set(c),b(c),l&&un(c),c.title===""&&is({conversationType:c.type,conversationId:c.id}));}function vn(c){let l=n.getByConversation(c).findLast(On);ds(Fr(c,l,"preserve"),true);}function Od(c){let l=[],m=Vn(c,e.getSelfId?.()??"").map(q=>{let j={...q,sortKey:Ce(q.createdAt,q.id)};if(j=kn(j),j.conversationType==="group"&&j.contentType==="text"){let ae=jn(j.body.text??"",j.mention);ae!==void 0&&(j.mention=ae);}return x(j)}),R=new Map;for(let q of m){if(q.contentType!=="transfer"||q.body.transfer===void 0)continue;let j=Be(q);R.set(ie(j),j);}let k=[...R.values()].flatMap(q=>ee(q)),B=Oa(k,m),X=new Set(m.map(q=>q.id));for(let q of B){let{message:j,isNew:ae,changed:J}=n.upsert(q);ae?e.emitter.emit({type:"message:received",message:j,conversation:Be(j),source:"offline",channelLifecycleEffects:false}):J&&e.emitter.emit({type:"message:updated",message:j,conversation:Be(j),source:"offline",channelLifecycleEffects:false}),X.has(j.id)&&l.push(j);}return l}function qm(c){let l={...c,sortKey:Ce(c.createdAt,c.id)};if(l=kn(l),l.conversationType==="group"&&l.contentType==="text"){let m=jn(l.body.text??"",l.mention);m!==void 0&&(l.mention=m);}return x(l)}async function jm(c,l){let m=K(c,l);if(m!==void 0||C===void 0)return m;try{let R=await C.getMessage(c,l);return R===null||ie(Be(R))!==ie(c)?void 0:qm(R)}catch(R){ce("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",R);return}}function an(c,l,m={}){let R=e.getSelfId?.()??"";if(l==="live"){let Se=false,Re=false;for(let Qe of c){let Ve=Be(Qe);if(de(Qe,R)){let Je=se(Ve);Je.deleted&&(Se=true),Je.terminal&&(Ve.conversationType==="group"?(v.set(ie(Ve),Qe.sortKey),xd()):Ve.conversationType==="channel"&&v.delete(ie(Ve)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:Ve,data:{source:l,eventType:Qe.body.system?.eventType,groupHistoryLowerBoundApplied:Ve.conversationType==="group"}})),Re=true);}else (R===""||Qe.senderId!==R)&&!V(Ve)&&W(Ve)&&(Se=true);}Se&&$i(),Re&&es();}let B=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,X=(Se,Re)=>{if(B===void 0)return;let Qe=Be(Se),Ve=ie(Qe),Je=B.get(Ve)??{ref:Qe,tombstone:0,groupLowerBound:0};Re==="tombstone"?Je.tombstone+=1:Je.groupLowerBound+=1,B.set(Ve,Je);},q=p.size>0||f.size>0?c.filter(Se=>{let Re=!N(Be(Se));return Re||X(Se,"tombstone"),Re}):c,j=v.size>0?q.filter(Se=>{let Re=ve(Se);return Re||X(Se,"groupLowerBound"),Re}):q;for(let Se of B?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:Se.ref,data:{source:l,tombstoneDroppedCount:Se.tombstone,groupHistoryLowerBoundDroppedCount:Se.groupLowerBound}}));let ae=new Map,J=new Map,re=new Map,oe=new Set,be=Vn(j,R).map(x),Ee=new Map;for(let Se of be){if(Se.contentType!=="transfer"||Se.body.transfer===void 0)continue;let Re=Be(Se);Ee.set(ie(Re),Re);}let De=[...Ee.values()].flatMap(Se=>ee(Se)),Ne=Oa(De,be),Ze=[];for(let Se of Ne){let{message:Re,isNew:Qe,changed:Ve}=n.upsert(Se,{authoritativeFailure:m.authoritativeOutboxFailure===true});if(!Qe&&!Ve)continue;for(let dn of T)dn.applyIncoming([Re]);Qe?e.emitter.emit({type:"message:received",message:Re,conversation:Be(Re),source:l,channelLifecycleEffects:m.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:Re,conversation:Be(Re),source:l,channelLifecycleEffects:m.applyChannelLifecycleEffects===true}),Ze.push(Re);let Je=Be(Re);if(ae.set(ie(Je),Je),Qe&&m.backfillOnly!==true){let dn=ie(Je);ss(Re)&&oe.add(dn);let ut=as(Je),Hd=ut===void 0||Re.sortKey>ut;if(On(Re)&&Hd&&ss(Re)&&Re.recalled===void 0&&Re.deletedForEveryone===void 0){let Jd=S(Re.conversationType);(Jd==="local"||Jd==="server"&&l==="live")&&J.set(dn,(J.get(dn)??0)+1);}Hd&&Vd(Re)&&Re.recalled===void 0&&Re.deletedForEveryone===void 0&&re.set(dn,(re.get(dn)??0)+1);}}for(let Se of ae.values()){if(m.backfillOnly===true)continue;let Re=ie(Se),Qe=J.get(Re)??0,Ve=re.get(Re)??0,Je=oe.has(Re);if(Qe>0||Ve>0||Je){let dn=i.get(Se)??{...Se,readCursor:"",unreadCount:0},ut={...dn,unreadCount:dn.unreadCount+Qe,mentionUnreadCount:(dn.mentionUnreadCount??0)+Ve};Je&&delete ut.manuallyUnread,Tn(ut);}vn(Se);}xm(Ze);for(let Se of Ze)Se.recalled===void 0&&Se.deletedForEveryone===void 0?y(Se,l):w(Be(Se),Se.id);}function Kd(c,l,m=Date.now()){let R={conversationType:"direct",conversationId:c},k=K(R,l),B=n.getByConversation(R).findLast(j=>j.body.system?.eventType==="direct_contact_established");if(k!==void 0&&B!==void 0&&B.createdAt>=k.createdAt)return;let X=`${l}:contact-required`;if(n.get(X)!==void 0)return;let q={id:X,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[c],action:{type:"request-contact",userId:c}}},createdAt:m,sortKey:Ce(m,X),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};an([q],"live");}function $m(c,l,m=Date.now()){let R=`${l}:message-refused`;if(n.get(R)!==void 0)return;let k=n.get(l),B=k?.conversationType==="direct"&&k.conversationId===c?k.createdAt:m,X={id:R,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[c]}},createdAt:B,sortKey:Ce(B,R),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};an([X],"live");}function ep(c,l=Date.now()){let m=en(),R={id:m,conversationId:c.conversationId,conversationType:"direct",senderId:c.senderId,contentType:"text",body:{text:c.text},createdAt:l,sortKey:Ce(l,m),status:"failed",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},failure:{code:33281,reason:"rejected",displayCode:"contactRequired",retryable:false},...c.refMessageId===void 0?{}:{refMessageId:c.refMessageId}};return an([R],"live"),Kd(c.conversationId,m,l+1),R}function np(c,l){return `${c.trim()===""?`contact-established:${l}`:c}:contact-established`}function tp(c,l,m=Date.now(),R=m){let k=np(l,R);if(n.get(k)!==void 0)return;let B={id:k,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[c]}},createdAt:m,sortKey:Ce(m,k),status:"sent",receipt:"unread",encryption:{encrypted:false}};an([B],"live");}let gt=new Map,cs=0;function rp(c,l,m=Date.now()){let R=gt.get(c);if(R!==void 0)return R;let k={conversationType:"direct",conversationId:c},B=cs,X=(async()=>{let q=n.getByConversation(k).filter(Ne=>{let Ze=Ne.body.system?.eventType;return Ze==="direct_contact_required"||Ze==="direct_contact_established"}),j=q.filter(Ne=>Ne.body.system?.eventType==="direct_contact_required"),ae=j.at(-1)?.createdAt??0,J=q.findLast(Ne=>Ne.body.system?.eventType==="direct_contact_established")?.createdAt??0,re=J>=ae&&J>0;if(j.length===0&&re)return;let oe=as(k);for(let Ne of j)try{let Ze=await Qd(k,Ne.id),Se=K(k,Ne.id);!Ze&&Se?.body.system?.eventType==="direct_contact_required"&&e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u672A\u80FD\u5220\u9664",cause:{conversation:k,messageId:Ne.id}}});}catch(Ze){e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u5220\u9664\u65E7\u7684\u7533\u8BF7\u6DFB\u52A0\u63D0\u793A\u5931\u8D25",cause:{conversation:k,messageId:Ne.id,error:Ze}}});}if(B!==cs)return;let be=i.get(k);if(be!==void 0&&(Tn({...be,...be.readCursorSortKey===void 0&&oe!==void 0?{readCursorSortKey:oe}:{},unreadCount:wd(k,oe)}),vn(k)),re)return;let Ee=Number.isFinite(m)&&m>0?m:Date.now(),De=Math.max(Ee,ae+1);tp(c,l,De,Ee);})().finally(()=>{gt.get(c)===X&>.delete(c);});return gt.set(c,X),X}function op(c,l){let m=typeof c=="string"?n.get(l)??Y(l):K(c,l);if(m===void 0)return;let R=typeof c=="string"?Be(m):c,k=typeof c=="string"?c:c.conversationId;if(m.conversationId!==k||m.conversationType!==R.conversationType)return;let B=as(R);if(B!==void 0&&B>=m.sortKey){typeof c!="string"&&Ld(c);return}let X={...R,readCursor:l,readCursorSortKey:m.sortKey,unreadCount:wd(R,m.sortKey),mentionUnreadCount:zm(R,m.sortKey)};return Tn(X),vn(R),X}function ip(c){let l=o.get(c);if(l===void 0)return false;let m=i.get(c)??{...c,readCursor:l.readCursor??"",unreadCount:l.unreadCount,mentionUnreadCount:l.mentionUnreadCount};return m.unreadCount>0||m.manuallyUnread===true?false:(Tn({...m,manuallyUnread:true}),vn(c),true)}function Ld(c){let l=i.get(c);if(l?.manuallyUnread!==true)return false;let m={...l};return delete m.manuallyUnread,Tn(m),vn(c),true}function Zd(c,l,m,R,k=false){let B=typeof c=="string"?c:c.conversationId,X=o.get(c),q=typeof c=="string"?X===void 0?void 0:yn(X):c;if(X!==void 0&&S(X.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${B}, type=${X.type}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}if(!Number.isFinite(l)){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u6536\u5230\u975E\u6CD5\u672A\u8BFB\u6570\uFF08conversationId=${B}, count=${l}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}k||d.delete(B);let j=i.get(c),ae=j?.readCursor??"",J=j?.readCursorSortKey,re=m===void 0||m===""?void 0:q===void 0?n.get(m)??Y(m):K(q,m);re!==void 0&&re.conversationId===B&&(J===void 0||re.sortKey>J)&&(ae=re.id,J=re.sortKey),R!==void 0&&(ae=R),Tn({...q===void 0?{conversationId:B}:q,readCursor:ae,readCursorSortKey:J,unreadCount:Math.max(0,Math.floor(l)),...l>0?{}:{manuallyUnread:j?.manuallyUnread},mentionUnreadCount:l===0?0:j?.mentionUnreadCount}),vn(c);}function ls(c){let l=d.get(c.conversation.conversationId);return l?.handle.transactionId===c.transactionId?l:void 0}function sp(c){let l=c.conversationId,m=o.get(c);if(m===void 0||m.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${l}, type=${m?.type??"missing"}\uFF09`);if(d.has(l))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${l}\uFF09`);let R={conversation:c,transactionId:g++},B=i.get(c)??{conversationId:l,readCursor:m.readCursor??"",unreadCount:m.unreadCount,...m.mentionUnreadCount===void 0?{}:{mentionUnreadCount:m.mentionUnreadCount}};return d.set(l,{handle:R,baseReadState:{...B},steps:[],committedThrough:-1}),R}function ap(c,l,m){let R=c.conversation,k=R.conversationId,B=ls(c);if(B===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${k}\uFF09`);let X=K(R,l);if(X===void 0||X.conversationId!==k||X.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${k}, messageId=${l}\uFF09`);if(X.extensions?.historyCursor!==m)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${k}, messageId=${l}\uFF09`);if(B.steps.at(-1)?.readCursor===m)return;let j=i.get(R)??(B.steps.length===0?B.baseReadState:void 0);B.steps.push({readCursor:m,messageId:l,sortKey:X.sortKey,clearedUnreadCount:j?.unreadCount??0,clearedMentionUnreadCount:j?.mentionUnreadCount??0}),Zd(R,0,l,m,true);}function dp(c,l){let m=ls(c);if(m===void 0)return false;let R=m.steps.findLastIndex(k=>k.readCursor===l);if(R<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${c.conversation.conversationId}, cursor=${l}\uFF09`);return m.committedThrough=Math.max(m.committedThrough,R),m.committedThrough===m.steps.length-1&&d.delete(c.conversation.conversationId),true}function cp(c){let l=ls(c);if(l===void 0)return false;let m=c.conversation,R=m.conversationId,k=i.get(m),B=l.committedThrough>=0?l.steps[l.committedThrough]:void 0,X=B===void 0?l.baseReadState:void 0,q=k?.unreadCount??0,j=k?.mentionUnreadCount??0;for(let re=l.committedThrough+1;re<l.steps.length;re+=1)q+=l.steps[re].clearedUnreadCount,j+=l.steps[re].clearedMentionUnreadCount;let ae=X?.mentionUnreadCount!==void 0||(k?.mentionUnreadCount??0)>0||l.steps.some(re=>re.clearedMentionUnreadCount>0),J={conversationId:R,conversationType:"channel",readCursor:B?.readCursor??X?.readCursor??"",readCursorSortKey:B?.sortKey??X?.readCursorSortKey,unreadCount:q,...ae?{mentionUnreadCount:j}:{}};return d.delete(R),Tn(J),vn(m),true}function lp(c,l,m){let R={conversationType:"group",conversationId:c},k=o.get(R);if(k===void 0){let X={id:c,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:l,sendDisabledReason:m};o.set(X),b(X),un(X);return}if(k.groupState===l&&k.sendDisabledReason===m)return;let B={...k,groupState:l,sendDisabledReason:m};o.set(B),b(B),un(B);}function gs(c,l,m,R){let k={conversationType:"channel",conversationId:c},B=ie(k);if(N(k))return;let X=o.get(k);if(X===void 0){He(k),A.delete(B);let J={id:c,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:l,channelPermissions:R?.permissions,channelAccessSnapshot:R?.snapshot,sendDisabledReason:m};o.set(J),b(J),un(J);return}if(X.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${c} \u7C7B\u578B\u4E3A ${X.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);He(k),A.delete(B);let q=R?.permissions,j=R?.snapshot;if(X.channelState===l&&X.sendDisabledReason===m&&Gu(X.channelPermissions,q)&&Uu(X.channelAccessSnapshot,j))return;let ae={...X,channelState:l,channelPermissions:q,channelAccessSnapshot:j,sendDisabledReason:m};o.set(ae),b(ae),un(ae);}function gp(c,l){let m=o.get(c);if(m===void 0||m.pinned===l)return;let R={...m,pinned:l,topTime:l?Date.now():void 0};o.set(R),b(R),un(R);}function up(c,l){let m=o.get(c);if(m===void 0||m.muted===l)return;let R={...m,muted:l};o.set(R),b(R),un(R);}async function Qd(c,l){if(l.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let m=n.get(l),R=m!==void 0&&m.conversationType===c.conversationType&&m.conversationId===c.conversationId,k=n.getByConversation(c).filter(re=>re.id!==l),B=Fr(c,k.at(-1),"clear"),X=B===void 0?void 0:ji(B);function q(re){return re!==void 0&&(m===void 0||!$n(m,re))}let j=C===void 0?{deleted:false,superseded:false}:await xr(async()=>q(n.get(l))?{deleted:false,superseded:true}:{deleted:await C.deleteMessage(c,l,X),superseded:false});if(j.superseded||q(n.get(l)))return false;let ae=R&&n.delete(c,l),J=false;for(let re of T)J=re.removeMessage(c,l)||J;return !j.deleted&&!ae&&!J?false:(ds(B,false),w(c,l),e.emitter.emit({type:"message:removed",conversation:{...c},messageId:l,scope:"local-only"}),true)}async function mp(c){let l={...c},m=new Map(n.getByConversation(l).map(J=>[J.id,J])),R=o.get(l),k=i.get(l),B=k===void 0&&R===void 0?void 0:{...l,readCursor:k?.readCursor??R?.readCursor??"",...k?.readCursorSortKey===void 0?{}:{readCursorSortKey:k.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},X=Fr(l,void 0,"clear",B);if(C!==void 0){if(C.clearConversationHistory===void 0)throw new Error("\u5F53\u524D storage \u672A\u5B9E\u73B0 clearConversationHistory\uFF0C\u62D2\u7EDD\u975E\u539F\u5B50\u6E05\u7A7A\u672C\u673A\u4F1A\u8BDD\u5386\u53F2");await xr(()=>C.clearConversationHistory(l,X===void 0?void 0:ji(X),B));}let q=i.get(l),j=q?.conversationType===k?.conversationType&&q?.conversationId===k?.conversationId&&q?.readCursor===k?.readCursor&&q?.readCursorSortKey===k?.readCursorSortKey&&q?.unreadCount===k?.unreadCount&&q?.mentionUnreadCount===k?.mentionUnreadCount;B!==void 0&&j&&Tn(B,false);for(let[J,re]of m){let oe=n.get(J);oe!==void 0&&$n(re,oe)&&n.delete(l,J);}let ae=n.getByConversation(l);for(let J of T)J.clearConversation(l)&&J.applyIncoming(ae);O(l),ds(Fr(l,ae.at(-1),"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:l,scope:"local-only"});}function Wd(c,l={}){let m=typeof c=="string"?c:c.conversationId,R=o.get(c),k=s.get(c),B=typeof c=="string"?R!==void 0?{conversationType:R.type,conversationId:m}:k===void 0?void 0:xn(k):c;if(B===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${m}`);let X=n.getByConversation(B).length;Lm(B),O(B),o.delete(c),i.delete(c),n.deleteByConversation(c),s.clear(c);let q=D(B);if(l.terminal===true){f.add(q);let j=v.delete(q);p.delete(q),p.delete(m),j&&xd(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:B,data:{reason:l.terminalReason??"membership-terminated",removedMessageCount:X}}));}else p.add(q);for(let j of T)ne(j,B)&&j.reset();e.emitter.emit({type:"session:removed",conversationId:m,conversation:B}),$i(),l.terminal===true&&es(),C!==void 0&&(C.deleteConversationMessages(B).catch(j=>ce("\u5220\u4F1A\u8BDD\u6D88\u606F\u5931\u8D25",j)),C.deleteSession(B).catch(j=>ce("\u5220\u4F1A\u8BDD\u5931\u8D25",j)),C.deleteReadState(B).catch(j=>ce("\u5220\u5DF2\u8BFB\u6001\u5931\u8D25",j)),C.removePinnedMessage(B).catch(j=>ce("\u5220\u4F1A\u8BDD\u7F6E\u9876\u6D88\u606F\u5931\u8D25",j)));}function pp(c){Wd(c);}function us(c,l){Wd(c,{terminal:true,terminalReason:l});}function fp(c){let l=yn(c);if(ie(l),l.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let m=o.get(l);if(m!==void 0)return m;let R={...c,id:l.conversationId,type:l.conversationType,...c.channelPermissions===void 0?{}:{channelPermissions:{...c.channelPermissions}},...c.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...c.channelAccessSnapshot}},...c.extensions===void 0?{}:{extensions:{...c.extensions}}},k=se(l);return k.deleted&&$i(),k.terminal&&es(),o.set(R),b(R),un(R),R}function yp(c){return Du(o.getAll(),c)}async function Ip(){if(C!==void 0){H=true;try{let c=await C.getMeta(hu);if(c!==null)for(let J of c)p.add(J);let l=await C.getMeta(Tu);if(l!==null)for(let J of l)f.add(J);let m=await C.getMeta(vu);if(m!==null)for(let[J,re]of m)typeof J=="string"&&typeof re=="string"&&v.set(J,re);let R=await C.getMeta(bu);if(R!==null)for(let J of R){let re=me(J);t.set(re,[...t.get(re)??[],J]);}let k=await C.getMeta(_u);if(Array.isArray(k))for(let J of k){if(typeof J!="object"||J===null)continue;let re=Reflect.get(J,"serialNumber"),oe=Reflect.get(J,"status"),be=Reflect.get(J,"occurredTime");typeof re!="string"||re.trim()===""||oe!==0&&oe!==1&&oe!==2&&oe!==3||be!==void 0&&(typeof be!="number"||!Number.isFinite(be)||be<=0)||r.set(re,{serialNumber:re,status:oe,...be===void 0?{}:{occurredTime:be}});}let B=await C.getPinnedMessages();for(let J of B)N({conversationType:J.conversationType,conversationId:J.conversationId})||s.set(J)&&e.emitter.emit({type:"pinned-message:updated",conversationId:J.conversationId,conversation:xn(J),pinnedMessage:J,reason:"hydrate"});let X=(await C.getSessions()).filter(J=>!N({conversationType:J.type,conversationId:J.id}));for(let J of X){let re=yn(J),oe=o.get(re);o.set(J),(oe===void 0||!Zi(oe,J))&&b(J);}let q=await C.getReadStates();for(let J of q)i.set(J);let j=I,ae=await C.getDrafts();if(j!==I)return;for(let J of ae){if(!Number.isFinite(J.updatedAt)||J.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${J.updatedAt}`);let re=ts(J.ref,J,J.updatedAt);if(N(re.ref)){try{await C.deleteDraft(re.ref);}catch(Ee){ce("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",Ee);}continue}let oe=ie(re.ref);_.set(oe,Math.max(_.get(oe)??0,re.updatedAt));let be=a.get(re.ref);be!==null&&be.updatedAt===re.updatedAt&&Fd(be,re)||(a.set(re),e.emitter.emit({type:"draft:updated",conversation:re.ref,draft:re}));}for(let J of X){let re=yn(J),oe=(await C.getMessages(re,{limit:IC})).filter(De=>ie(Be(De))===ie(re)).filter(ve),be=[],Ee=oe.map(De=>{let Ne=Va(kn(De));return Ne!==De&&be.push(Ne),Ne});if(Od(Ee),be.length>0)try{await C.saveMessages(be);}catch(De){ce("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",De);}vn(re);}}catch(c){ce("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",c);}finally{H=false,U("offline");}}}async function Cp(c,l){if(C===void 0)return [];try{let m=await C.getMessages(c,l),R=typeof c=="string"?m.filter(ve):m.filter(X=>ie(Be(X))===ie(c)).filter(ve),k=H;H=!0;let B;try{B=Od(R);}finally{H=k;}return H||U("offline"),B.map(X=>K(Be(X),X.id)??X)}catch(m){return ce("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",m),[]}}function Sp(c,l){let m=l?.match(Kr(c));return {message:c,ranges:m?.ranges.map(({start:R,end:k})=>[R,k])??[]}}async function Ap(c,l){let m=l.keyword?.trim()??"",R=l.contentTypes;if(m===""&&(R===void 0||R.length===0))return {results:[],exhausted:true};let k=m===""?void 0:await Es(m),B=Ee=>{let De=R===void 0||R.includes(Ee.contentType),Ne=k===void 0||k.match(Kr(Ee))!==null;return De&&Ne},X=(Ee,De)=>Ee.sortKey<De.sortKey?1:Ee.sortKey>De.sortKey?-1:0,q=Ee=>Sp(Ee,k),j=()=>{let Ee=n.getByConversation(c).filter(B).sort(X),Ne=(l.beforeSortKey===void 0?Ee:Ee.filter(Se=>Se.sortKey<l.beforeSortKey)).slice(0,l.limit),Ze=Ne.length<l.limit;return {results:Ne.map(q),exhausted:Ze,...Ze?{}:{nextBeforeSortKey:Ne.at(-1)?.sortKey}}};if(C===void 0)return j();let ae;try{ae=await C.searchMessages(c,{...l.keyword!==void 0?{keyword:l.keyword}:{},...R!==void 0?{contentTypes:R}:{},limit:l.limit,...l.beforeSortKey!==void 0?{beforeSortKey:l.beforeSortKey}:{}});}catch(Ee){throw ce("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",Ee),Ee}let J=ae.exhausted?void 0:ae.nextBeforeSortKey,re=new Map(n.getByConversation(c).map(Ee=>[Ee.id,Ee])),oe=new Map;for(let Ee of ae.items){let De=kn(Ee);ie(Be(De))===ie(c)&&oe.set(De.id,re.get(De.id)??De);}for(let Ee of re.values()){let De=l.beforeSortKey===void 0||Ee.sortKey<l.beforeSortKey,Ne=J===void 0||Ee.sortKey>=J;De&&Ne&&B(Ee)&&oe.set(Ee.id,Ee);}return {results:[...oe.values()].filter(B).sort(X).map(q),exhausted:ae.exhausted,...ae.exhausted?{}:{nextBeforeSortKey:ae.nextBeforeSortKey}}}function Ep(c,l,m){let R=K(c,l);R!==void 0&&an([{...R,recalled:m,body:{}}],"live");}function Rp(c,l,m){let R=K(c,l);R===void 0||R.conversationType!=="channel"||an([{...R,recalled:void 0,deletedForEveryone:m,body:{}}],"live");}function Mp(c,l,m,R){let k=K(c,l);if(k===void 0)return;let B={...k,body:m,edited:true};R!==void 0?B.mention=R:delete B.mention,an([B],"live");}async function hp(c,l,m){let R=r.get(c),k={serialNumber:c,status:l,...m===void 0?{}:{occurredTime:m}},B=Te(R,k);r.set(B.serialNumber,B),await Ie();let X=new Map;for(let q of Oi(n.getAll(),c,B.status,B.occurredTime))X.set(q.id,q);for(let q of o.getAll()){let j=ee({conversationType:q.type,conversationId:q.id});for(let ae of Oi(j,c,B.status,B.occurredTime))X.set(ae.id,ae);}X.size!==0&&an([...X.values()],"live");}return {upsertMessages:an,applyReaction:Q,rollbackReaction:te,appendDirectContactRequiredNotice:Kd,appendDirectMessageRefusedNotice:$m,appendDirectContactRequiredTextFailure:ep,reconcileDirectContactEstablishedNotice:rp,recallMessage:Ep,deleteChannelMessageForEveryone:Rp,editMessage:Mp,applyTransferStatusBySerialNumber:hp,getMessage:c=>n.get(c),getConversationMessage:K,getLoadedMessagesByConversation:ee,resolveConversationMessage:jm,getMessages:()=>n.getAll(),getMessagesByConversation:c=>n.getByConversation(c),deleteLocalMessage:Qd,clearLocalConversationHistory:mp,getSession:c=>o.get(c),ensureConversation:fp,getSessions:()=>o.getAll(),getConversationList:wm,getReadState:c=>i.get(c),getPinnedMessage:c=>s.get(c),setPinnedMessage:Wm,clearPinnedMessage:Hm,isPinnedMessage:(c,l)=>s.isPinnedMessage(c,l),setReadState:c=>{let l=c.conversationType===void 0?o.get(c.conversationId):void 0,m=c.conversationType===void 0&&l!==void 0?{...c,conversationType:l.type}:c;i.set(m),Bd(m);},markConversationUnread:ip,clearConversationManualUnread:Ld,advanceRead:op,applyServerUnread:Zd,beginChannelReadTransaction:sp,applyChannelReadOptimistically:ap,commitChannelReadTransaction:dp,rollbackChannelReadTransaction:cp,setGroupRestriction:lp,setChannelRestriction:gs,setPinned:gp,setMuted:up,removeConversation:pp,removeConversationForMembershipTermination:us,refreshConversationProfile:Jm,recoverChannelFromProfile:Ym,updateConversationProfile:Xm,getTotalUnread:yp,getDraft:Pm,saveDraft:Vm,clearDraft:Om,clearDraftIfUnchanged:Km,invalidateAndDrainDraftOperations:Zm,clearSession(){Z+=1,I+=1,cs+=1,gt.clear(),M.clear(),A.clear(),n.clear(),o.clear(),i.clear(),a.clear(),G.clear(),_.clear(),u.clear(),d.clear(),s.clearAll(),p.clear(),f.clear(),v.clear(),t.clear();for(let c of T)c.reset();},hydrate:Ip,loadOlderMessages:Cp,searchMessages:Ap,messageWindow:P,createMessageWindow:L}}var AC=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function EC(e){let n=new Set,t=new Map,r=new Map,o=true;function i(g){let p=g.extensions?.channelSequence,f=typeof p=="string"?p:g.raw?.channelNotify?.sequence;if(f===void 0||!/^\d+$/.test(f))return;let v=BigInt(f);return v>0n?v:void 0}function a(g){return n.has(g)?false:(n.add(g),n.size>2048&&n.delete(n.values().next().value),true)}function s(g,p,f,v){v!==void 0&&r.set(g,v),e.clearChannelKey(g),e.stopChannelHistory(g),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:g},f);}function d(g){let p=e.domainState.getSession(g);e.domainState.setChannelRestriction(g,p?.channelState??"unknown_restricted",p?.channelState===void 0?"channel_access_requires_refresh":p.sendDisabledReason);}return {handleMessage(g,p={source:"live"}){if(!o||g.conversationType!=="channel"||g.contentType!=="system"||g.body.system===void 0||p.source!=="live"&&p.applyLifecycleEffects!==true||!a(g.id))return;let f=g.conversationId,v=g.body.system,C=v.targetUserIds?.includes(e.getSelfId())??false,E=v.targetUserIds===void 0||v.targetUserIds.length===0,G=i(g),_=t.get(f);if(G!==void 0){if(_!==void 0&&G<=_)return;t.set(f,G);}switch(v.eventType){case "channel_member_left":C?s(f,"left","channel_left",G):e.domainState.refreshConversationProfile(f,"channel");return;case "channel_member_removed":C?s(f,"removed","channel_removed",G):e.domainState.refreshConversationProfile(f,"channel");return;case "channel_dismissed":s(f,"dismissed","channel_dismissed",G);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!C){e.domainState.refreshConversationProfile(f,"channel");return}let u=e.domainState.getSession(f)?.channelState;if(u==="dismissed")return;if(u==="left"||u==="removed"){let I=r.get(f);if(!(G!==void 0&&I!==void 0&&G>I)){e.domainState.recoverChannelFromProfile(f).then(T=>{!o||!T||(r.delete(f),e.clearConversationTermination?.({conversationType:"channel",conversationId:f}),e.prepareChannelKey(f));});return}r.delete(f);}if(!o)return;e.domainState.setChannelRestriction(f,"active",void 0),e.clearConversationTermination?.({conversationType:"channel",conversationId:f}),e.prepareChannelKey(f),e.domainState.refreshConversationProfile(f,"channel");return}case "channel_all_muted":case "channel_all_unmuted":d(f),e.domainState.refreshConversationProfile(f,"channel");return;case "channel_member_muted":case "channel_member_unmuted":(C||E)&&d(f),e.domainState.refreshConversationProfile(f,"channel");return;case "channel_admin_added":case "channel_admin_removed":(C||E)&&d(f),e.domainState.refreshConversationProfile(f,"channel");return;case "channel_owner_transferred":(C||E||v.operatorId===e.getSelfId())&&d(f),e.domainState.refreshConversationProfile(f,"channel");return;default:AC.has(v.eventType)&&e.domainState.refreshConversationProfile(f,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function RC(e){let{domainState:n,getSelfId:t,prefetchGroupKey:r,clearGroupKeys:o}=e;return {handleMessage(i){let a=i.body.system;if(i.contentType==="system"&&a!==void 0){if(a.eventType==="group_info_changed"||a.eventType==="group_master_changed"){n.refreshConversationProfile(i.conversationId,"group");return}let s=ka(a,t());if(s===null)return;s.state==="active"?(n.setGroupRestriction(i.conversationId,s.state,s.reason),e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}),r(i.conversationId)):(o(i.conversationId),n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},s.reason));return}if(i.conversationType==="group"&&i.senderId===t()&&i.status==="failed"){let s=xa(i.failure?.code);s!==null?(o(i.conversationId),s.state==="dismissed"?n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},s.reason):n.setGroupRestriction(i.conversationId,s.state,s.reason)):i.failure?.code===33540&&n.refreshConversationProfile(i.conversationId,"group");return}i.conversationType==="group"&&i.contentType!=="system"&&i.senderId!==t()&&i.encryption.decryptFailed!==true&&(n.getSession(i.conversationId)?.groupState==="removed"&&n.setGroupRestriction(i.conversationId,"active",""),n.getSession(i.conversationId)?.groupState==="active"&&e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}));}}}function MC(e){return {handleMessage(n){let t={conversationType:n.conversationType,conversationId:n.conversationId},r=n.body.system?.pinnedMessageAction;if(r!==void 0){if(r.type==="pin"){e.domainState.setPinnedMessage(r.pinnedMessage,"notify:pin");return}if(r.type==="unpin"){e.domainState.clearPinnedMessage(t,"notify:unpin");return}e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u7F6E\u9876\u6D88\u606F\u901A\u77E5 payload \u89E3\u6790\u5931\u8D25",cause:{conversationId:n.conversationId,notifyMessageId:n.id,code:r.code}}}),e.requestReconcile(n.conversationId);return}if(n.contentType!=="system"&&e.domainState.isPinnedMessage(t,n.id)){let o=e.domainState.getPinnedMessage(t);o!==void 0&&e.domainState.setPinnedMessage({...o,preview:{state:"ready",message:n}},"message:updated");}}}}function hC(e){let n={callKind:e.callKind,outcome:e.outcome,durationMs:e.durationMs,outgoing:e.outgoing};return {id:e.callId,conversationId:e.peerId,conversationType:"direct",senderId:e.outgoing?e.selfId:e.peerId,contentType:"call",body:{call:n},createdAt:e.createdAt,sortKey:Ce(e.createdAt,e.callId),status:e.status??"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},...e.failure===void 0?{}:{failure:e.failure}}}function Nr(e,n){let t=e.getMessage(n.callId);t?.contentType==="call"&&t.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([hC(n)],"live");}var st=3e4,ku=0,xu=1,Bu=0;function Fu(e=0,n=0){if(!Number.isInteger(e)||!Number.isInteger(n)||e<0||n<0)throw new Error(`call signaling: invite screen \u5C3A\u5BF8\u975E\u6CD5\uFF08${String(e)}\xD7${String(n)}\uFF09`);return JSON.stringify({screenW:e,screenH:n})}var TC=5,vC=6,Pu=1,wu=2;function $a(e){return e==="video"?vC:TC}function Vu(e){return e==="audio"?xu:ku}function Ou(e){if(e===xu)return "audio";if(e===ku)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Qi(e,n,t=st){if(!Number.isFinite(e)||e<=0)throw new Error(`call signaling: msgTime \u975E\u6CD5\uFF08${String(e)}\uFF09`);if(!Number.isFinite(n)||n<=0)throw new Error(`call signaling: now \u975E\u6CD5\uFF08${String(n)}\uFF09`);return n-e>t}function Ku(e){if(e===32768)return "accept";if(e===33792||e===0)return "reject";if(e===33793)return "busy";if(e===33796)return "token-failed";if(e===33797)return "connect-failed";throw new Error(`call signaling: \u5E94\u7B54 errcode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function Lu(e){switch(e){case "accept":return 32768;case "reject":return 33792;case "busy":return 33793}}function ed(e){switch(e){case "cancel":return 33795;case "no-answer":return 33800;case "end":return 32768;case "peer-lost":return 33799}}function nd(e,n,t){if(t)return e===33799||e===33798?"interrupted":"completed";if(e===33792)return "rejected";if(e===33793)return "busy";if(e===33800||e===33795||e===32768||e===0)return n==="outgoing"?"cancelled":"missed";if(e===33799||e===33798)return "interrupted";throw new Error(`call signaling: hangupReasonCode \u65E0\u6CD5\u8BC6\u522B\uFF08${e}\uFF09`)}function ye(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`call signaling: ${n} \u975E\u6CD5`);return BigInt(e)}function Le(e,n){let t=e.trim(),r=n.trim();return t===r?true:t===""||r===""||!/^\d+$/.test(t)||!/^\d+$/.test(r)?false:BigInt(t)===BigInt(r)}function Fe(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}var bC=new Set([33281,33299]);function at(e){return {conversationType:"direct",conversationId:e}}function _C(e){let n;function t(){return e.now?.()??Date.now()}function r(){let x=e.getSelfId();if(x.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return x}function o(x){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${x}`);return r()}function i(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function a(x,w){return x.connectedAt===void 0?0:Math.max(0,w-x.connectedAt)}function s(x,w,O,Q){Nr(e.domainState,{callId:x.callId,peerId:x.peerId,selfId:r(),callKind:x.callKind,outcome:w,durationMs:a(x,O),outgoing:x.direction==="outgoing",createdAt:O,...Q});}function d(x,w){n!==void 0&&s(n,x,w);}function g(x,w=t(),O=true){if(n===void 0)return;let Q=n;return i(),d(x,w),n=void 0,O&&e.emitter.emit({type:"call:hangup",conversation:at(Q.peerId),callId:Q.callId,peerId:Q.peerId,outcome:x}),Q}function p(x,w,O){let Q=x===16387?qt.encode(qt.create({sUserId:w,sMsgId:O})):x===16391?$t.encode($t.create({sUserId:w,sMsgId:O})):x===16399?nr.encode(nr.create({sUserId:w,sMsgId:O})):x===16403?rr.encode(rr.create({sUserId:w,sMsgId:O})):er.encode(er.create({sUserId:w,sMsgId:O}));e.sendFrame(z({command:x,body:Q}));}function f(x){return setTimeout(x,st)}function v(){return Ae(en())}function C(x,w,O,Q){let te=zt.encode(zt.create({sInviteId:ye(w,"peerId"),sFromId:ye(x,"selfId"),sMsgId:v(),msgTime:BigInt(t()),encrypt:Bu,sContent:Fu(),callType:Vu(Q),scallId:O}));e.sendFrame(z({command:16385,body:te}));}function E(x,w,O,Q){let te=jt.encode(jt.create({sToId:ye(w,"peerId"),sFromId:ye(x,"selfId"),sMsgId:v(),msgTime:BigInt(t()),errcode:Lu(Q),scallId:O}));e.sendFrame(z({command:16389,body:te}));}function G(x,w,O,Q){let te=zn.encode(zn.create({sToId:ye(w,"peerId"),sFromId:ye(x,"selfId"),sMsgId:v(),msgTime:BigInt(t()),scallId:O,hangupReasonCode:ed(Q)}));e.sendFrame(z({command:16397,body:te}));}function _(x,w){let O=Fe(x.callId);if(ye(x.peerId,"peerId"),n===void 0||n.callId!==O||n.peerId!==x.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${w}`);return n}function u(x){let w=o("\u53D1\u8D77\u901A\u8BDD"),O=x.callKind??"audio",Q=String(ye(x.peerId,"peerId"));if(Q===w)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let te=Fe(x.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let y=t();return n={callId:te,peerId:Q,callKind:O,direction:"outgoing",phase:"outgoing-ringing",startedAt:y},C(w,Q,te,O),n.ringTimer=f(()=>{n?.callId!==te||n.phase!=="outgoing-ringing"||(G(w,Q,te,"no-answer"),g("cancelled"));}),{callId:te,conversation:at(Q)}}function I(x){let w=o("\u63A5\u542C"),O=_(x,"\u63A5\u542C");if(O.direction!=="incoming"||O.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");i(),E(w,O.peerId,O.callId,"accept"),O.phase="accepted";}function S(x){let w=o("\u62D2\u7EDD"),O=_(x,"\u62D2\u7EDD");if(O.direction!=="incoming"||O.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");E(w,O.peerId,O.callId,"reject"),g("rejected");}function T(x){let w=o("\u56DE\u5FD9"),O=Fe(x.callId),Q=String(ye(x.peerId,"peerId"));E(w,Q,O,"busy"),n?.callId===O?g("busy"):Nr(e.domainState,{callId:O,peerId:Q,selfId:w,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:t()});}function h(x){let w=o("\u6302\u65AD"),O=_(x,"\u6302\u65AD");G(w,O.peerId,O.callId,x.reason);let Q=O.phase==="connected",te=nd(ed(x.reason),O.direction,Q);g(te);}function P(x,w){let O=w==="video"?"\u901A\u77E5\u5BF9\u7AEF\u89C6\u9891\u5DF2\u5F00\u59CB":"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB",Q=o(O),te=_(x,O);if(te.callKind!==w)throw new Error(`call signaling: \u5F53\u524D\u901A\u8BDD\u4E0D\u662F${w==="video"?"\u89C6\u9891":"\u8BED\u97F3"}\uFF0C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5`);if(te.phase!=="accepted"&&te.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5");let y=tr.encode(tr.create({sToId:ye(te.peerId,"peerId"),sFromId:ye(Q,"selfId"),sMsgId:v(),msgTime:BigInt(t()),notifyType:$a(w),notifyValue:x.role==="caller"?Pu:wu,scallId:te.callId}));e.sendFrame(z({command:16401,body:y}));}function L(x){P(x,"audio");}function Y(x){P(x,"video");}function K(x){let w=zo.decode(x);if(w.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let O=r();p(16387,ye(O,"selfId"),w.sMsgId);let Q=Fe(w.scallId),te=w.sFromId.toString();if(w.sFromId<=0n||w.sInviteId.toString()!==O)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(te===O)return;let y=Number(w.msgTime),U=Ou(w.callType),Z=Qi(y,t()),M=at(te);if(Z){Nr(e.domainState,{callId:Q,peerId:te,selfId:O,callKind:U,outcome:"missed",durationMs:0,outgoing:false,createdAt:y}),e.emitter.emit({type:"call:incoming",conversation:M,callId:Q,peerId:te,callKind:U,createdAt:y,expired:true});return}if(n!==void 0){E(O,te,Q,"busy"),Nr(e.domainState,{callId:Q,peerId:te,selfId:O,callKind:U,outcome:"busy",durationMs:0,outgoing:false,createdAt:y});return}n={callId:Q,peerId:te,callKind:U,direction:"incoming",phase:"incoming-ringing",startedAt:y},n.ringTimer=f(()=>{n?.callId!==Q||n.phase!=="incoming-ringing"||g("missed",y);}),e.emitter.emit({type:"call:incoming",conversation:M,callId:Q,peerId:te,callKind:U,createdAt:y,expired:false});}function ee(x){let w=Xo.decode(x);if(n===void 0||n.direction!=="outgoing"||w.errcode===32768)return;let O=w.errcode===33794?"peer-offline":"ack-error",Q=n,te=t();i(),n=void 0,bC.has(w.errcode)?(s(Q,"cancelled",te,{status:"failed",failure:{code:w.errcode,reason:"rejected",displayCode:"contactRequired",retryable:false}}),e.domainState.appendDirectContactRequiredNotice(Q.peerId,Q.callId,te+1)):s(Q,"cancelled",te),e.emitter.emit({type:"call:failed",conversation:at(Q.peerId),callId:Q.callId,peerId:Q.peerId,reason:O});}function ne(x,w){w!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${x} ACK \u5931\u8D25`,cause:{errcode:w}}});}function H(x){let w=jo.decode(x);if(w.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let O=r();p(16391,ye(O,"selfId"),w.sMsgId);let Q=Fe(w.scallId);if(n===void 0||n.callId!==Q||n.direction!=="outgoing")return;let te=Ku(w.errcode);if(e.emitter.emit({type:"call:answered",conversation:at(n.peerId),callId:Q,peerId:n.peerId,result:te}),te==="accept"){i(),n.phase="accepted";return}g(te==="reject"?"rejected":te==="busy"?"busy":"cancelled");}function me(x){let w=zn.decode(x);if(w.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let O=r();p(16399,ye(O,"selfId"),w.sMsgId);let Q=Fe(w.scallId);if(n===void 0||n.callId!==Q)return;let te=nd(w.hangupReasonCode,n.direction,n.phase==="connected");g(te);}function pe(x){let w=ti.decode(x);if(w.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let O=r();if(p(16403,ye(O,"selfId"),w.sMsgId),n===void 0||w.notifyType!==$a(n.callKind))return;let Q=Fe(w.scallId);n.callId===Q&&(n.phase!=="accepted"&&n.phase!=="connected"||(n.connectedAt===void 0&&(n.connectedAt=t()),n.phase="connected",e.emitter.emit({type:n.callKind==="video"?"call:peer-video-begin":"call:peer-audio-begin",conversation:at(n.peerId),callId:Q,peerId:n.peerId})));}function Ie(x){let w=$o.decode(x);if(w.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");p(16395,ye(r(),"selfId"),w.sMsgId);}return {handlers:[{command:16388,handler:(x,w)=>K(w)},{command:16386,handler:(x,w)=>ee(w)},{command:16392,handler:(x,w)=>H(w)},{command:16390,handler:(x,w)=>ne("answer",qo.decode(w).errcode)},{command:16400,handler:(x,w)=>me(w)},{command:16398,handler:(x,w)=>ne("hangup",ei.decode(w).errcode)},{command:16404,handler:(x,w)=>pe(w)},{command:16402,handler:(x,w)=>ne("state-notify",ni.decode(w).errcode)},{command:16396,handler:(x,w)=>Ie(w)}],invite:u,accept:I,reject:S,busy:T,hangup:h,notifyPeerAudioBegin:L,notifyPeerVideoBegin:Y,dispose(){i(),n=void 0;}}}var NC={started:"group_call_started",ended:"group_call_ended",missed:"group_call_missed"};function DC(e){let n=2166136261;for(let t=0;t<e.length;t+=1)n^=e.charCodeAt(t),n=Math.imul(n,16777619);return n>>>0}function Zu(e,n){let t=`group-call-notice:${n}:${e.trim()}`,r=[0,1,2,3].map(o=>DC(`${t}:${o}`).toString(16).padStart(8,"0")).join("");return ge(r)}function GC(e){let n=Zu(e.callId,e.kind),t=e.operatorId?.trim()??"";return {id:n,conversationId:e.groupId,conversationType:"group",senderId:Fi,contentType:"system",body:{system:{eventType:NC[e.kind],...t===""?{}:{operatorId:t},payload:{callId:e.callId}}},createdAt:e.createdAt,sortKey:Ce(e.createdAt,n),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}}}function Qu(e,n){let t=Zu(n.callId,n.kind);e.getMessage(t)===void 0&&e.upsertMessages([GC(n)],"live");}var td=9;function UC(e){if(e<0n)throw new Error("group call: varint \u4E0D\u652F\u6301\u8D1F\u6570");let n=[],t=e;for(;t>=0x80n;)n.push(Number(t&0x7fn)|128),t>>=7n;return n.push(Number(t)),Uint8Array.from(n)}function Wu(e,n,t){if(t.length===0)return e;if(n<=0||n>=16)throw new Error(`group call: \u975E\u6CD5 protobuf field ${n}`);let r=n<<3,o=[e],i=0;for(let d of t){let g=UC(d),p=new Uint8Array(1+g.length);p[0]=r,p.set(g,1),o.push(p),i+=p.length;}let a=new Uint8Array(e.length+i),s=0;for(let d of o)a.set(d,s),s+=d.length;return a}function We(e){return {conversationType:"group",conversationId:e}}function kC(e){return {groupId:e.groupId,callId:e.callId,inviterId:e.inviterId,createdAt:e.createdAt,members:e.members.map(n=>({userId:n.userId,status:n.status}))}}function xC(e){return e.members.filter(n=>n.status==="in-call").length}function Wi(e){return e.filter(n=>n.status==="in-call").length<=1}function BC(e){let n=new Map,t=new Set,r=[];function o(){return e.now?.()??Date.now()}function i(M,A,D,N,V){Qu(e.domainState,{kind:M,groupId:A,callId:D,createdAt:N,...V===void 0?{}:{operatorId:V}});}function a(){let M=e.getSelfId();if(M.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return M}function s(M){if(!e.isAuthenticated())throw new Error(`\u672A\u9274\u6743\uFF0C\u4E0D\u80FD${M}`);return a()}function d(){return Ae(en())}function g(M){if(M.trim()===""||t.has(M))return false;if(t.add(M),r.push(M),r.length>256){let A=r.shift();A!==void 0&&t.delete(A);}return true}function p(M){let A=n.get(M);return A===void 0?null:kC(A)}function f(M){M.incomingRingTimer!==void 0&&clearTimeout(M.incomingRingTimer),M.incomingRingTimer=void 0;}function v(M,A,D){let N=M.members.find(V=>V.userId===A);if(N!==void 0){N.status=D;return}M.members.push({userId:A,status:D});}function C(M,A){M.members=M.members.filter(D=>D.userId!==A);}function E(M){let A=n.get(M.groupId);A!==void 0&&f(A);let D=[];for(let V of M.inCallIds)D.some(W=>W.userId===V)||D.push({userId:V,status:"in-call"});for(let V of M.ringingIds)D.some(W=>W.userId===V)||D.push({userId:V,status:"ringing"});let N={groupId:M.groupId,callId:M.callId,inviterId:M.inviterId,createdAt:M.createdAt,members:D};return n.set(M.groupId,N),N}function G(M,A){let D=n.get(M);if(D!==void 0&&!(A!==void 0&&D.callId!==A))return f(D),n.delete(M),D}function _(M,A){for(let D of n.values())if(D.groupId!==A&&D.members.some(N=>Le(N.userId,M)))return true;return false}function u(M,A,D){let N=ir.encode(ir.create({userId:A,msgId:D}));e.sendFrame(z({command:M,body:N}));}function I(M,A,D,N){let V=N.map(se=>ye(se,"inviteId")),W=Wu(or.encode(or.create({groupId:ye(A,"groupId"),userId:ye(M,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:D,inviteIds:V})),6,V);e.sendFrame(z({command:16641,body:W}));}function S(M,A,D,N,V){let W=N.map(de=>ye(de,"inviteId")),se=Wu(ar.encode(ar.create({groupId:ye(A,"groupId"),userId:ye(M,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:D,joinType:V?1:0,inviteIds:W})),5,W);e.sendFrame(z({command:16649,body:se}));}function T(M,A,D,N){let V=sr.encode(sr.create({groupId:ye(A,"groupId"),userId:ye(M,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:D,ansType:N?1:0}));e.sendFrame(z({command:16645,body:V}));}function h(M,A,D){let N=dr.encode(dr.create({groupId:ye(A,"groupId"),userId:ye(M,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:D}));e.sendFrame(z({command:16653,body:N}));}function P(M,A,D){let N=cr.encode(cr.create({groupId:ye(A,"groupId"),userId:ye(M,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:D}));e.sendFrame(z({command:16657,body:N}));}function L(M,A,D){let N=s("\u53D1\u8D77\u7FA4\u4F1A\u8BAE"),V=Fe(A),W=[...new Set(D.map(de=>de.trim()).filter(de=>de!==""&&!Le(de,N)))];if(W.length===0)throw new Error("call signaling: \u7FA4\u4F1A\u8BAE\u81F3\u5C11\u9080\u8BF7 1 \u4EBA");if(W.length+1>td)throw new Error(`call signaling: \u7FA4\u4F1A\u8BAE\u4EBA\u6570\u4E0D\u80FD\u8D85\u8FC7 ${td}`);let se=n.get(M);if(se!==void 0&&xC(se)>0)throw new Error("call signaling: \u5F53\u524D\u7FA4\u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BAE");I(N,M,V,W),E({groupId:M,callId:V,inviterId:N,createdAt:o(),inCallIds:[N],ringingIds:W}),i("started",M,V,o(),N);}function Y(M,A,D,N){let V=s("\u52A0\u5165\u7FA4\u4F1A\u8BAE"),W=Fe(A),se=[...new Set(D.map(ve=>ve.trim()).filter(ve=>ve!==""&&!Le(ve,V)))];S(V,M,W,se,N);let de=n.get(M);if(de!==void 0&&de.callId===W&&(v(de,V,"in-call"),N))for(let ve of se)v(de,ve,"ringing");}function K(M,A,D){let N=s("\u54CD\u5E94\u7FA4\u4F1A\u8BAE"),V=Fe(A),W=n.get(M);if(W!==void 0&&W.callId===V&&f(W),T(N,M,V,D),!(W===void 0||W.callId!==V)){if(D){v(W,N,"in-call");return}C(W,N),e.emitter.emit({type:"group-call:answered",conversation:We(M),callId:V,groupId:M,userId:N,agreed:false});}}function ee(M,A){let D=s("\u9000\u51FA\u7FA4\u4F1A\u8BAE"),N=Fe(A),V=n.get(M);if(V!==void 0&&V.callId===N&&Wi(V.members)){P(D,M,N),G(M,N),i("ended",M,N,o()),e.emitter.emit({type:"group-call:finished",conversation:We(M),callId:N,groupId:M,userId:D});return}h(D,M,N),V!==void 0&&V.callId===N&&(f(V),C(V,D)),e.emitter.emit({type:"group-call:left",conversation:We(M),callId:N,groupId:M,userId:D});}function ne(M,A){let D=s("\u7ED3\u675F\u7FA4\u4F1A\u8BAE"),N=Fe(A);P(D,M,N),G(M,N),i("ended",M,N,o()),e.emitter.emit({type:"group-call:finished",conversation:We(M),callId:N,groupId:M,userId:D});}function H(M,A,D,N){let V=s("\u4FEE\u6539\u7FA4\u4F1A\u8BAE\u72B6\u6001"),W=lr.encode(lr.create({groupId:ye(M,"groupId"),userId:ye(V,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:Fe(A),statusType:D?1:0,status:N?1:0}));e.sendFrame(z({command:16661,body:W}));}function me(M,A,D){let N=s("\u53D1\u9001\u7FA4\u4F1A\u8BAE\u5FD9\u7EBF"),V=gr.encode(gr.create({groupId:ye(M,"groupId"),userId:ye(N,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:Fe(A),hintUser:ye(D,"hintUserId")}));e.sendFrame(z({command:16669,body:V}));let W=n.get(M);W!==void 0&&W.callId===A&&C(W,N);}function pe(M){let A=oi.decode(M);if(A.msgId.trim()==="")throw new Error("group call: create deliver \u7F3A\u5C11 msgId");let D=a();if(u(16643,ye(D,"selfId"),A.msgId),!g(A.msgId))return;let N=A.groupId.toString(),V=A.userId.toString(),W=Fe(A.callId),se=A.inviteIds.map(le=>le.toString()).filter(le=>le!=="0"),de=Number(A.msgTime),ve=Qi(de,o(),st),He=We(N),ce=Le(V,D),b=se.some(le=>Le(le,D))||se.length===0&&!ce;if(ce){E({groupId:N,callId:W,inviterId:V,createdAt:de,inCallIds:[D],ringingIds:se.filter(le=>!Le(le,D))});return}let $=n.get(N);if($!==void 0&&$.callId!==W&&$.members.some(le=>Le(le.userId,D)&&le.status==="in-call")){P(D,N,W),i("ended",N,W,Number.isFinite(de)?de:o());return}if(E({groupId:N,callId:W,inviterId:V,createdAt:de,inCallIds:[V],ringingIds:b?[...new Set([D,...se.filter(le=>!Le(le,V))])]:se.filter(le=>!Le(le,V))}),i("started",N,W,Number.isFinite(de)?de:o(),V),!b)return;if(ve){e.emitter.emit({type:"group-call:incoming",conversation:He,callId:W,groupId:N,inviterId:V,inviteIds:se,createdAt:de,expired:true});return}if(_(D,N)){me(N,W,V);return}let fe=n.get(N);fe!==void 0&&(fe.incomingRingTimer=setTimeout(()=>{let le=n.get(N);if(le===void 0||le.callId!==W)return;let Pe=le.members.find(xr=>Le(xr.userId,D));if(!(Pe===void 0||Pe.status!=="ringing")){try{K(N,W,!1);}catch{C(le,D);}i("missed",N,W,o());}},st)),e.emitter.emit({type:"group-call:incoming",conversation:He,callId:W,groupId:N,inviterId:V,inviteIds:se,createdAt:de,expired:false});}function Ie(M){let A=si.decode(M);if(A.msgId.trim()==="")throw new Error("group call: answer deliver \u7F3A\u5C11 msgId");let D=a();if(u(16647,ye(D,"selfId"),A.msgId),!g(A.msgId))return;let N=A.groupId.toString(),V=A.userId.toString(),W=Fe(A.callId),se=A.ansType===1,de=n.get(N);de===void 0||de.callId!==W||(se?v(de,V,"in-call"):C(de,V),e.emitter.emit({type:"group-call:answered",conversation:We(N),callId:W,groupId:N,userId:V,agreed:se}));}function Te(M){let A=di.decode(M);if(A.msgId.trim()==="")throw new Error("group call: join deliver \u7F3A\u5C11 msgId");let D=a();if(u(16651,ye(D,"selfId"),A.msgId),!g(A.msgId))return;let N=A.groupId.toString(),V=A.userId.toString(),W=Fe(A.callId),se=A.inviteIds.map(ce=>ce.toString()).filter(ce=>ce!=="0"&&ce!==V),de=n.get(N);if(de===void 0||de.callId!==W)de=E({groupId:N,callId:W,inviterId:V,createdAt:Number(A.msgTime),inCallIds:[V],ringingIds:se});else if(v(de,V,"in-call"),A.joinType===1)for(let ce of se)v(de,ce,"ringing");e.emitter.emit({type:"group-call:joined",conversation:We(N),callId:W,groupId:N,userId:V,inviteIds:se,isInvite:A.joinType===1});let ve=se.some(ce=>Le(ce,D))||se.length===0&&A.joinType===1&&!Le(V,D),He=de.members.find(ce=>Le(ce.userId,D));ve&&A.joinType===1&&!Le(V,D)&&He?.status!=="in-call"&&e.emitter.emit({type:"group-call:incoming",conversation:We(N),callId:W,groupId:N,inviterId:V,inviteIds:se,createdAt:Number(A.msgTime),expired:false});}function x(M){let A=li.decode(M);if(A.msgId.trim()==="")throw new Error("group call: hangup deliver \u7F3A\u5C11 msgId");let D=a();if(u(16655,ye(D,"selfId"),A.msgId),!g(A.msgId))return;let N=A.groupId.toString(),V=A.userId.toString(),W=Fe(A.callId),se=n.get(N);se===void 0||se.callId!==W||(C(se,V),e.emitter.emit({type:"group-call:left",conversation:We(N),callId:W,groupId:N,userId:V}),Wi(se.members)&&(G(N,W),i("ended",N,W,o()),e.emitter.emit({type:"group-call:finished",conversation:We(N),callId:W,groupId:N,userId:V})));}function w(M){let A=ui.decode(M);if(A.msgId.trim()==="")throw new Error("group call: finish deliver \u7F3A\u5C11 msgId");let D=a();if(u(16659,ye(D,"selfId"),A.msgId),!g(A.msgId))return;let N=A.groupId.toString(),V=A.userId.toString(),W=Fe(A.callId);G(N,W),i("ended",N,W,Number(A.msgTime)||o()),e.emitter.emit({type:"group-call:finished",conversation:We(N),callId:W,groupId:N,userId:V});}function O(M){let A=Ii.decode(M);if(A.msgId.trim()==="")throw new Error("group call: busy deliver \u7F3A\u5C11 msgId");let D=a();if(u(16671,ye(D,"selfId"),A.msgId),!g(A.msgId))return;let N=A.groupId.toString(),V=A.userId.toString(),W=Fe(A.callId),se=n.get(N);se!==void 0&&se.callId===W&&C(se,V),e.emitter.emit({type:"group-call:busy",conversation:We(N),callId:W,groupId:N,userId:V,hintUserId:A.hintUser.toString()});}function Q(M){let A=fi.decode(M);if(A.msgId.trim()==="")throw new Error("group call: disconnected deliver \u7F3A\u5C11 msgId");let D=a();if(u(16667,ye(D,"selfId"),A.msgId),!g(A.msgId))return;let N=A.groupId.toString(),V=Fe(A.callId),W=n.get(N);if(!(W===void 0||W.callId!==V)){for(let se of A.users){let de=se.toString();C(W,de),e.emitter.emit({type:"group-call:left",conversation:We(N),callId:V,groupId:N,userId:de});}Wi(W.members)&&(G(N,V),i("ended",N,V,o()),e.emitter.emit({type:"group-call:finished",conversation:We(N),callId:V,groupId:N,userId:A.userId.toString()}));}}function te(M){let A=pi.decode(M);if(A.msgId.trim()==="")throw new Error("group call: status deliver \u7F3A\u5C11 msgId");u(16663,ye(a(),"selfId"),A.msgId);}function y(M){let A=ri.decode(M);if(A.errCode===32768)return;let D=a();for(let N of n.values()){if(!Le(N.inviterId,D))continue;let V=G(N.groupId,N.callId);if(V!==void 0){e.emitter.emit({type:"group-call:failed",conversation:We(V.groupId),callId:V.callId,groupId:V.groupId,reason:"ack-error"});return}}e.emitter.emit({type:"error",error:{scope:"protocol",message:"group call: createRoom ACK \u5931\u8D25",cause:{errCode:A.errCode}}});}function U(M,A){A!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`group call: ${M} ACK \u5931\u8D25`,cause:{errCode:A}}});}return {commandHandlers:[{command:16644,handler:(M,A)=>pe(A)},{command:16642,handler:(M,A)=>y(A)},{command:16648,handler:(M,A)=>Ie(A)},{command:16646,handler:(M,A)=>U("answer",ii.decode(A).errCode)},{command:16652,handler:(M,A)=>Te(A)},{command:16650,handler:(M,A)=>U("join",ai.decode(A).errCode)},{command:16656,handler:(M,A)=>x(A)},{command:16654,handler:(M,A)=>U("hangup",ci.decode(A).errCode)},{command:16660,handler:(M,A)=>w(A)},{command:16658,handler:(M,A)=>U("finish",gi.decode(A).errCode)},{command:16672,handler:(M,A)=>O(A)},{command:16670,handler:(M,A)=>U("busy",yi.decode(A).errCode)},{command:16668,handler:(M,A)=>Q(A)},{command:16664,handler:(M,A)=>te(A)},{command:16662,handler:(M,A)=>U("status",mi.decode(A).errCode)}],createRoom:L,joinRoom:Y,answer:K,hangup:ee,finish:ne,setStatus:H,busy:me,inspectMeeting:p,dispose(){for(let M of n.values())f(M);n.clear();}}}function dt(e,n){return `[${n}] \u4F1A\u8BDD\u7C7B\u578B '${e}' \u5C1A\u672A\u63A5\u5165\u6D88\u606F\u94FE\u8DEF\uFF1B\u8BF7\u65B0\u589E\u5BF9\u5E94\u7684\u53D1\u9001\u7B56\u7565 / \u6536\u5305\u5904\u7406\u5668 / \u79BB\u7EBF\u540C\u6B65 / \u5BC6\u94A5\u89E3\u6790\uFF0C\u7981\u6B62\u590D\u7528 direct \u5355\u804A\u94FE\u8DEF\u3002`}function rd(e){return [{command:4646,handler:(n,t)=>{let r=yo.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=Co.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=Yo.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var Hu=9;function FC(){return {encrypted:true}}function PC(e,n){if(e.length===0)return "empty-input";if(e.length>Hu)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function wC(e){return "body"in e&&"contentType"in e&&"sortKey"in e}var VC={"not-media-album":"type-not-allowed","item-not-found":"album-item-not-found","item-not-ready":"media-not-ready"};function od(e,n){let t=e.now??(()=>Date.now()),r=[],o=[];if(n.messages.length===0)return {results:[{ok:false,sourceMessageId:"",targetConversationId:"",targetConversationType:"direct",reason:"empty-input"}],skippedSourceIds:[]};let i=PC(n.targets,e.sendStrategies);if(i!==void 0){for(let s of n.targets.length>0?n.targets:[{conversationId:"",conversationType:"direct"}])for(let d of n.messages)r.push({ok:false,sourceMessageId:d.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:i});return {results:r,skippedSourceIds:[]}}let a=[];for(let s of n.messages){let d=e.resolveCurrentMessage===void 0?wC(s)?s:void 0:e.resolveCurrentMessage(s);if(d===void 0||d.id!==s.id||d.conversationId!==s.conversationId||d.conversationType!==s.conversationType){o.push(s.id);continue}if(!(s.itemIndex===void 0?Xa(d):Ki(d))){o.push(s.id);continue}a.push(s.itemIndex===void 0?{message:d}:{message:d,itemIndex:s.itemIndex});}for(let s of n.targets)for(let{message:d,itemIndex:g}of a)try{let p=g===void 0?void 0:pu(d,g);if(p!==void 0&&!p.ok){r.push({ok:!1,sourceMessageId:d.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:VC[p.reason]});continue}let f=p?.ok===!0?p.contentType:d.contentType,v=br(f);if(v===void 0){r.push({ok:!1,sourceMessageId:d.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:"type-not-allowed"});continue}let C=p?.ok===!0?p.body:v.cloneBody(d),E=FC(),G=v.enqueue({outbox:e.outbox,target:s,source:d,body:C,encryption:E,now:t,contentType:f});r.push({ok:!0,sourceMessageId:d.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,newMessageId:G});}catch{r.push({ok:false,sourceMessageId:d.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}var ct=class extends Error{status;path;constructor(n){super(`CmHttp.postProtobuf \u5931\u8D25\uFF1Apath=${n.path} status=${n.status} ${n.statusText}`),this.name="ImHttpRequestError",this.status=n.status,this.path=n.path;}};function Ju(e){let n=new Map;for(let t of e){if(n.has(t.kind))throw new Error(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${t.kind}`);if(!Number.isSafeInteger(t.softMaxBytes)||t.softMaxBytes<=0||!Number.isSafeInteger(t.maxEntries)||t.maxEntries<=0||!Number.isSafeInteger(t.maxEntryBytes)||t.maxEntryBytes<=0)throw new RangeError(`\u5A92\u4F53\u8D44\u4EA7\u7F13\u5B58\u7B56\u7565\u53C2\u6570\u975E\u6CD5\uFF1A${t.kind}`);n.set(t.kind,Object.freeze({...t}));}return Object.freeze({resolve:t=>n.get(t),list:()=>Object.freeze([...n.values()])})}function Dr(e){let n=2166136261,t=2654435761;for(let r=0;r<e.length;r+=1){let o=e.charCodeAt(r);n=Math.imul(n^o,16777619),t=Math.imul(t^o,2246822507);}return `${(n>>>0).toString(16).padStart(8,"0")}${(t>>>0).toString(16).padStart(8,"0")}`}var Yu=1,OC=2,id=3,KC=3,Xu=5,zu=3,qu=6,LC=16*1024*1024,ZC=1e3;function sd(e){return Number.isFinite(e)&&e>0}var QC=320,WC=12*1024,ju=20*1024,HC=.9,JC=.72,YC=320,XC=10*1024,ud=16*1024,zC=.84,qC=.68,jC=ud;function ad(e,n){if(!(n!=="video"&&n!=="image"||e===void 0)&&!(!sd(e.width)||!sd(e.height)||n==="video"&&e.duration!==void 0&&!sd(e.duration)||n==="video"&&e.posterData!==void 0&&(!(e.posterData instanceof Uint8Array)||e.posterData.length===0||e.posterData.length>jC)))return {width:e.width,height:e.height,...n==="video"&&e.duration!==void 0?{duration:e.duration}:{},...n==="video"&&e.posterData!==void 0?{thumbData:new Uint8Array(e.posterData)}:{}}}function Hi(e,n){return n===void 0?e:{...e,width:n.width,height:n.height,...n.thumbData===void 0?{}:{thumbData:n.thumbData},...e.duration===void 0&&n.duration!==void 0?{duration:n.duration}:{}}}var dd={contentType:"image",uploadKind:"image",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r),i=await t.imageThumbnail(e,{mimeType:n,maxSize:QC,targetBytes:WC,maxBytes:ju,quality:HC,minQuality:JC},r);return {width:o.width,height:o.height,...i.data.byteLength<=ju?{thumbData:i.data}:{}}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o}){return {image:{url:e,width:n.width,height:n.height,...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},Ji={contentType:"video",uploadKind:"video",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.videoPoster(e,{mimeType:n,maxSize:YC,targetBytes:XC,maxBytes:ud,quality:zC,minQuality:qC},r);return {width:o.width,height:o.height,...o.data.byteLength<=ud?{thumbData:o.data}:{},duration:o.duration}},buildBody({url:e,meta:n,size:t,teaKey:r,fileEncryptType:o},i){return {video:{url:e,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration}:{},...i.caption!==void 0&&i.caption!==""?{describe:i.caption}:{},...n.thumbData!==void 0?{thumbData:n.thumbData}:{},...t!==void 0?{size:t}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},$C={contentType:"voice",uploadKind:"voice",encryptMode:"integral",buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){return {voice:{url:e,durationMs:o.durationMs??0,...o.waveform!==void 0&&o.waveform.length>0?{waveform:o.waveform}:{},...n!==void 0?{size:n}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},eS={contentType:"sticker",uploadKind:"sticker",encryptMode:"none",async buildPreview(e,n,t,r){let o=await t.imageDimensions(e,n,r);return {width:o.width,height:o.height}},buildBody({url:e,meta:n,size:t}){return {sticker:{url:e,width:n.width,height:n.height,exprType:2,imageType:1,...t===void 0?{}:{size:t}}}}};function nS(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function tS(e,n){let t=n??"";return t.startsWith("image/")||["jpg","jpeg","png","gif","webp","bmp","heic","svg"].includes(e)?1:t.startsWith("video/")||["mp4","mov","m4v","3gp","avi","mkv","webm","flv"].includes(e)?2:t.startsWith("audio/")||["mp3","m4a","wav","aac","flac","ogg"].includes(e)?3:["pdf","doc","docx","xls","xlsx","ppt","pptx","txt","csv","zip","rar","7z","apk","json"].includes(e)?4:0}var $u={contentType:"file",uploadKind:"file",encryptMode:"simple",streamUpload:true,buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){let i=o.filename??"",a=nS(i),s=tS(a,o.mimeType);return {file:{url:e,fileName:i,...n!==void 0?{size:n}:{},...a!==""?{extension:a}:{},...s!==0?{fileType:s}:{},...o.mimeType!==void 0&&o.mimeType!==""?{mimeType:o.mimeType}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}};function Yi(e){switch(e){case "empty":return "media.empty";case "no-crypto":return "media.noCrypto";case "preview-failed":return "media.previewFailed";case "encrypt-failed":return "media.encryptFailed";case "upload-failed":case "offline":return "media.uploadFailed";case "cancelled":return "media.cancelled";case "invalid-duration":return "media.invalidDuration";case "content-too-large":return "media.contentTooLarge"}}function em(e,n){return e==="video"||n===void 0||n>LC?"large":"small"}function cd(){return new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError")}function nm(e){return e.kind==="album"?e.items.flatMap(n=>n.resume===void 0?[]:[{resume:n.resume,kind:n.uploadKind}]):e.resume===void 0?[]:[{resume:e.resume,kind:e.spec.uploadKind}]}function rS(e){if(e.kind==="album")return {code:Kn,reason:"unknown",displayCode:Yi(e.failureReason),retryable:false};let n=e.spec.contentType==="video"||e.spec.contentType==="file";return {code:Kn,reason:"unknown",displayCode:n?"media.uploadInterrupted":Yi(e.failureReason),mediaKind:e.spec.uploadKind,retryable:false}}function oS(e){return typeof e=="function"}function iS(e){return typeof Blob<"u"&&e instanceof Blob}function sS(e){let n=0,t=0,r=[];function o(s){return n<e.total&&(s!=="large"||t<e.largeFiles)}function i(s){n+=1,s==="large"&&(t+=1);let d=false;return ()=>{d||(d=true,n-=1,s==="large"&&(t-=1),a());}}function a(){let s=0;for(;s<r.length;){let d=r[s];if(d.signal.aborted){r.splice(s,1),d.signal.removeEventListener("abort",d.onAbort),d.reject(cd());continue}if(!o(d.tier)){s+=1;continue}r.splice(s,1),d.signal.removeEventListener("abort",d.onAbort),d.resolve(i(d.tier));}}return {acquire(s,d){return d.aborted?Promise.reject(cd()):new Promise((g,p)=>{let f={tier:s,signal:d,resolve:g,reject:p,onAbort:()=>{let v=r.indexOf(f);v>=0&&r.splice(v,1),p(cd());}};r.push(f),d.addEventListener("abort",f.onAbort,{once:true}),a();})}}}function ld(e,n){if(!Number.isInteger(e)||e<1||e>qu)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${qu} \u7684\u6574\u6570\uFF08${n}\uFF09`)}function aS(e){if(e===void 0)return {total:Xu,largeFiles:zu};if(typeof e=="number")return ld(e,"\u603B\u6570"),{total:e,largeFiles:e};let n=e.total??Xu;ld(n,"total");let t=e.largeFiles??Math.min(zu,n);if(ld(t,"largeFiles"),t>n)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5927\u6587\u4EF6\u6863\u5E76\u53D1\u6570 ${t} \u4E0D\u80FD\u8D85\u8FC7\u603B\u5E76\u53D1\u6570 ${n}`);return {total:n,largeFiles:t}}function md(e){let n=sS(aS(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,i=new Map,a=new Map,s=true,d=0;function g(u){return {conversationType:u.conversationType,conversationId:u.conversationId}}function p(u,I,S,T){e.mediaTransfer.abandonUpload(u).catch(h=>{e.onMediaTransferError?.({stage:"upload",kind:I,messageId:S,conversation:T,cause:h});});}function f(u,I,S,T,h,P){if(!s)return;let L=g(I);e.emitter.emit({type:"media-task:updated",conversation:L,task:{id:`upload:${u}`,messageId:u,ref:L,direction:"upload",state:S,percent:Math.max(0,Math.min(100,Math.round(T))),...P===void 0?{}:{phase:P},...h===void 0?{}:{failure:h}}});}function v(u,I){for(a.delete(u),a.set(u,I);a.size>KC;){let S=a.keys().next().value;if(S===void 0)break;let T=a.get(S);if(a.delete(S),T===void 0)continue;for(let P of nm(T))p(P.resume,P.kind,S,g(T.input));if(!s)continue;let h=rS(T);e.domainState.upsertMessages([{...T.message,status:"failed",failure:h}],"live"),f(S,T.input,"failed",i.get(S)??0,h);}}async function C(u,I,S,T,h,P){if(!s)return P!==void 0&&S!==void 0&&p(P,u.uploadKind,S,g(I)),{ok:false,reason:"cancelled"};let L=d,Y=h,K=P,ee=oS(I.data),ne=iS(I.data)?I.data:void 0,H=ee||ne!==void 0?void 0:I.data,me=ee||ne!==void 0,pe=u.streamUpload===true&&ne!==void 0,Ie=N=>{if(ne!==void 0)return ne;if(N===void 0)throw new Error("\u5A92\u4F53\u9884\u89C8\u7F3A\u5C11\u5185\u5BB9\uFF1A\u975E Blob \u8F93\u5165\u5FC5\u987B\u5148\u8BFB\u51FA\u5B57\u8282");return new Blob([N],I.mimeType===void 0?void 0:{type:I.mimeType})};if(H?.length===0||ne?.size===0)return {ok:false,reason:"empty"};let Te=I.encrypted??true;if(Te&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let x=ad(I.localPreviewMetadata,u.contentType);if((u.contentType==="video"||u.contentType==="image")&&I.localPreviewMetadata!==void 0&&x===void 0)return {ok:false,reason:"preview-failed"};let w=S===void 0||T===void 0?e.outbox.allocateMessageIdentity({conversationId:I.conversationId,conversationType:I.conversationType}):{id:S,createdAt:T},{id:O,createdAt:Q}=w,te=e.getSelfId(),y=x??{width:0,height:0};if(!me)try{y=Hi(await u.buildPreview(Ie(H),I.mimeType,e.mediaPreview),x);}catch{}if(!s)return K!==void 0&&p(K,u.uploadKind,O,g(I)),{ok:false,reason:"cancelled"};let U=ne?.size??H?.byteLength,Z={url:I.localPreviewUrl??"",...U===void 0?{}:{size:U}},M={id:O,conversationId:I.conversationId,conversationType:I.conversationType,senderId:te,contentType:u.contentType,body:u.buildBody({...Z,meta:y},I),createdAt:Q,sortKey:Ce(Q,O),status:"uploading",receipt:"unread",encryption:{encrypted:Te},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}};e.domainState.upsertMessages([M],"live"),i.set(O,0),f(O,I,"queued",0,void 0,"waiting-upload-slot");let A=(N,V=false)=>{let W={code:Kn,reason:"unknown",displayCode:Yi(N),mediaKind:u.uploadKind,retryable:V};return s?(e.domainState.upsertMessages([{...M,status:"failed",failure:W}],"live"),f(O,I,N==="cancelled"?"canceled":"failed",i.get(O)??0,W),{ok:false,reason:N}):{ok:false,reason:N}},D=new AbortController;t.set(O,D),r.set(O,g(I));try{if(ne!==void 0&&!(u.contentType==="video"&&x?.thumbData!==void 0)){try{y=Hi(await u.buildPreview(ne,I.mimeType,e.mediaPreview,D.signal),x);}catch{}if(!s)return {ok:!1,reason:"cancelled"};M={...M,body:u.buildBody({url:I.localPreviewUrl??"",meta:y,size:ne.size},I)},e.domainState.upsertMessages([M],"live");}let N=await n.acquire(em(u.contentType,ne?.size??H?.byteLength),D.signal);try{f(O,I,"running",i.get(O)??0);let V;try{pe||(V=ee?await I.data():ne!==void 0?new Uint8Array(await ne.arrayBuffer()):H);}catch{return A("upload-failed",!0)}let W=pe?ne.size:V.length;if(W===0)return A("empty");if(ee&&!(u.contentType==="video"&&x?.thumbData!==void 0)){try{y=Hi(await u.buildPreview(Ie(V),I.mimeType,e.mediaPreview,D.signal),x);}catch{}if(!s)return {ok:!1,reason:"cancelled"};M={...M,body:u.buildBody({url:I.localPreviewUrl??"",meta:y,size:W},I)},e.domainState.upsertMessages([M],"live");}let se=pe?ne:V,de,ve=Yu;if(Te&&e.crypto!==void 0&&u.encryptMode!=="none"){let ce=e.crypto;try{Y??=ce.randomTeaKey();let b=Y;u.encryptMode==="simple"?(se=pe?new Blob([new Uint8Array(ce.encryptFileSimple({teaKey:b,plain:new Uint8Array(await ne.slice(0,32).arrayBuffer())})),ne.slice(32)]):ce.encryptFileSimple({teaKey:b,plain:V}),ve=OC):pe?(de=$=>ce.encryptSymmetricChunked({teaKey:b,plain:$,signal:D.signal}),ve=id):(se=ce.encryptSymmetric({teaKey:b,plain:V}),ve=id);}catch{return A("encrypt-failed")}}let He;try{He=(await e.mediaTransfer.upload({data:se,...de===void 0?{}:{transformPart:de},kind:u.uploadKind,conversationType:I.conversationType,signal:D.signal,...K===void 0?{}:{resume:K},onResumable:b=>{!s||t.get(O)!==D||(K=b);},...I.filename!==void 0?{filename:I.filename}:{},...I.mimeType!==void 0?{mimeType:I.mimeType}:{},onProgress:b=>{if(!s||D.signal.aborted||t.get(O)!==D)return;let $=Number.isFinite(b.percent)?Math.max(0,Math.min(100,Math.round(b.percent))):0,fe=Math.max(i.get(O)??0,$);i.set(O,fe),e.emitter.emit({type:"media:progress",conversation:g(I),messageId:O,percent:fe}),f(O,I,"running",fe,void 0,b.phase);}})).url;}catch(ce){if((!D.signal.aborted||!(ce instanceof Error&&ce.name==="AbortError"))&&e.onMediaTransferError?.({stage:"upload",kind:u.uploadKind,messageId:O,conversation:g(I),cause:ce}),!s)return {ok:!1,reason:"cancelled"};let b=D.signal.aborted?o.get(O)??"cancelled":"upload-failed";return v(O,{kind:"media",spec:u,input:I,createdAt:Q,message:M,failureReason:b,...Y===void 0?{}:{teaKey:Y},...K===void 0?{}:{resume:K}}),A(b,!0)}if(!s)return {ok:!1,reason:"cancelled"};if(D.signal.aborted){let ce=o.get(O)??"cancelled";return v(O,{kind:"media",spec:u,input:I,createdAt:Q,message:M,failureReason:ce,...Y===void 0?{}:{teaKey:Y},...K===void 0?{}:{resume:K}}),A(ce,!0)}if(L===d&&(u.contentType==="image"||u.contentType==="video")&&e.mediaAssetCache!==void 0){let ce=u.contentType,b=ne??new Blob([V],I.mimeType===void 0?void 0:{type:I.mimeType}),$=b.size;e.mediaAssetCache.put({kind:ce,messageId:O,resourceVersion:Dr(He),blob:b,...I.mimeType===void 0?{}:{mimeType:I.mimeType}}).catch(fe=>{e.onMediaAssetCacheError?.({operation:"put",kind:ce,messageId:O,byteLength:$,cause:fe});});}return e.outbox.enqueueMedia({id:O,conversationId:I.conversationId,conversationType:I.conversationType,contentType:u.contentType,body:u.buildBody({url:He,meta:y,size:W,...u.encryptMode==="none"?{}:{teaKey:Y,fileEncryptType:ve}},I),encryption:{encrypted:Te},createdAt:Q,...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}}),f(O,I,"completed",100),{ok:!0,messageId:O}}finally{N();}}catch{if(!s)return {ok:false,reason:"cancelled"};let N=D.signal.aborted?o.get(O)??"cancelled":"upload-failed";return v(O,{kind:"media",spec:u,input:I,createdAt:Q,message:M,failureReason:N,...Y===void 0?{}:{teaKey:Y},...K===void 0?{}:{resume:K}}),A(N,true)}finally{!s&&K!==void 0&&p(K,u.uploadKind,O,g(I)),t.get(O)===D&&(t.delete(O),r.delete(O),i.delete(O),o.delete(O));}}async function E(u){let{conversation:I,encryptWith:S,isCurrentAttempt:T,item:h,onBytesUploaded:P,onSlotAcquired:L,signal:Y,state:K}=u,ee=h.kind==="video"?Ji:dd,ne=ad(h.localPreviewMetadata,h.kind),H=ne??{width:0,height:0};if(!(h.kind==="video"&&ne?.thumbData!==void 0))try{H=Hi(await ee.buildPreview(h.data,h.mimeType,e.mediaPreview,Y),ne);}catch{}let me=await n.acquire(em(h.kind,h.data.size),Y);try{L();let pe,Ie=Yu;if(S!==void 0){K.teaKey??=S.randomTeaKey();let x=K.teaKey;pe=w=>S.encryptSymmetricChunked({teaKey:x,plain:w,signal:Y}),Ie=id;}return {url:(await e.mediaTransfer.upload({data:h.data,...pe===void 0?{}:{transformPart:pe},kind:ee.uploadKind,conversationType:I.conversationType,signal:Y,...K.resume===void 0?{}:{resume:K.resume},onResumable:x=>{!s||!T()||(K.resume=x);},...h.filename!==void 0?{filename:h.filename}:{},...h.mimeType!==void 0?{mimeType:h.mimeType}:{},onProgress:x=>{!s||Y.aborted||!T()||P(x.bytesTransferred);}})).url,meta:H,size:h.data.size,...K.teaKey===void 0?{}:{teaKey:K.teaKey},fileEncryptType:Ie}}finally{me();}}function G(u,I,S){let T=I.uploaded,h=T?.meta??ad(u.localPreviewMetadata,u.kind)??{width:0,height:0};return {kind:u.kind,url:T?.url??u.localPreviewUrl??"",width:h.width,height:h.height,...u.kind==="video"&&h.duration!==void 0&&h.duration>0?{durationMs:Math.max(1,Math.round(h.duration*1e3))}:{},...h.thumbData===void 0?{}:{thumbData:h.thumbData},size:T?.size??u.data.size,...T?.teaKey===void 0?{}:{teaKey:T.teaKey},...T===void 0?{}:{fileEncryptType:T.fileEncryptType},...S===void 0?{}:{hd:S}}}async function _(u,I,S,T){let h=g(u),P=(A,D)=>{for(let N of D)N.resume!==void 0&&p(N.resume,N.uploadKind,A,h);};if(!s)return I!==void 0&&T!==void 0&&P(I,T),{ok:false,reason:"cancelled"};if(u.items.length===0)return {ok:false,reason:"empty"};if(u.items.length>9)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u6700\u591A ${9} \u9879\uFF0C\u6536\u5230 ${u.items.length} \u9879`);let L=u.caption!==void 0&&u.caption.trim()!==""?u.caption:void 0;if(L!==void 0&&L.length>1024)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u6700\u957F ${1024} \u5B57\u7B26\uFF0C\u6536\u5230 ${L.length}`);if(u.items.some(A=>A.data.size===0))return {ok:false,reason:"empty"};if(I===void 0&&fs(u)!=="mediaAlbum"){let A=u.items[0];return C(A.kind==="video"?Ji:dd,{conversationId:u.conversationId,conversationType:u.conversationType,data:A.data,...A.mimeType!==void 0?{mimeType:A.mimeType}:{},...A.filename!==void 0?{filename:A.filename}:{},...A.localPreviewUrl!==void 0?{localPreviewUrl:A.localPreviewUrl}:{},...A.localPreviewMetadata!==void 0?{localPreviewMetadata:A.localPreviewMetadata}:{},...u.encrypted!==void 0?{encrypted:u.encrypted}:{},...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}})}let Y=u.encrypted??true;if(Y&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let K=Y?e.crypto:void 0,ee=d,ne=I===void 0||S===void 0?e.outbox.allocateMessageIdentity(h):{id:I,createdAt:S},{id:H,createdAt:me}=ne,pe=u.items.map((A,D)=>{let N=T?.[D];return {uploadKind:A.kind,...N?.uploaded===void 0?{}:{uploaded:N.uploaded},...N?.teaKey===void 0?{}:{teaKey:N.teaKey},...N?.resume===void 0?{}:{resume:N.resume}}}),Ie=()=>({...L===void 0?{}:{caption:L},items:u.items.map((A,D)=>G(A,pe[D],u.hd))}),Te={id:H,conversationId:u.conversationId,conversationType:u.conversationType,senderId:e.getSelfId(),contentType:"mediaAlbum",body:{mediaAlbum:Ie()},createdAt:me,sortKey:Ce(me,H),status:"uploading",receipt:"unread",encryption:{encrypted:Y},...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}};e.domainState.upsertMessages([Te],"live"),i.set(H,0),f(H,u,"queued",0,void 0,"waiting-upload-slot");let x=(A,D)=>{let N={code:Kn,reason:"unknown",displayCode:Yi(A),retryable:D};return s?(e.domainState.upsertMessages([{...Te,status:"failed",failure:N}],"live"),f(H,u,A==="cancelled"?"canceled":"failed",i.get(H)??0,N),{ok:false,reason:A}):{ok:false,reason:A}},w=new AbortController;t.set(H,w),r.set(H,h);let O=()=>t.get(H)===w,Q=u.items.reduce((A,D)=>A+D.data.size,0),te=pe.map((A,D)=>A.uploaded!==void 0?u.items[D].data.size:A.resume?.bytesUploaded??0),y=false,U=()=>{if(!s||!O())return;let A=te.reduce((N,V)=>N+V,0),D=Math.min(99,Math.max(i.get(H)??0,Math.floor(A/Q*100)));D!==i.get(H)&&(i.set(H,D),e.emitter.emit({type:"media:progress",conversation:h,messageId:H,percent:D}),f(H,u,"running",D));},Z,M=(A,D)=>{Z===void 0&&(Z=w.signal.aborted?o.get(H)??"cancelled":"upload-failed",Z==="upload-failed"&&e.onMediaTransferError?.({stage:"upload",kind:A,messageId:H,conversation:h,cause:D}),w.abort());};try{if(await Promise.all(u.items.map(async(N,V)=>{let W=pe[V];if(W.uploaded===void 0)try{let se=await E({item:N,state:W,conversation:h,encryptWith:K,signal:w.signal,isCurrentAttempt:O,onSlotAcquired:()=>{y||!s||!O()||(y=!0,f(H,u,"running",i.get(H)??0));},onBytesUploaded:de=>{te[V]=Math.max(te[V]??0,de),U();}});W.uploaded=se,te[V]=N.data.size,U();}catch(se){M(N.kind,se);}})),!s)return {ok:!1,reason:"cancelled"};if(!O())return {ok:!1,reason:"cancelled"};if(Z!==void 0)return v(H,{kind:"album",input:u,createdAt:me,message:Te,failureReason:Z,items:pe}),x(Z,!0);if(w.signal.aborted){let N=o.get(H)??"cancelled";return v(H,{kind:"album",input:u,createdAt:me,message:Te,failureReason:N,items:pe}),x(N,!0)}let A=Ie(),D;try{D=Vr(mt(A).content);}catch(N){return e.onMediaAlbumContentSize?.({messageId:H,conversation:h,itemCount:A.items.length,outcome:"rejected",cause:N}),x("content-too-large",!1)}if(D>=ys&&e.onMediaAlbumContentSize?.({messageId:H,conversation:h,itemCount:A.items.length,contentBytes:D,outcome:"warn"}),ee===d&&e.mediaAssetCache!==void 0){let N=e.mediaAssetCache;u.items.forEach((V,W)=>{let se=pe[W].uploaded;se!==void 0&&N.put({kind:V.kind,messageId:H,resourceVersion:Dr(se.url),blob:V.data,...V.mimeType===void 0?{}:{mimeType:V.mimeType}}).catch(de=>{e.onMediaAssetCacheError?.({operation:"put",kind:V.kind,messageId:H,byteLength:V.data.size,cause:de});});});}return e.outbox.enqueueMedia({id:H,conversationId:u.conversationId,conversationType:u.conversationType,contentType:"mediaAlbum",body:{mediaAlbum:A},encryption:{encrypted:Y},createdAt:me,...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}}),f(H,u,"completed",100),{ok:!0,messageId:H}}finally{s||P(H,pe),t.get(H)===w&&(t.delete(H),r.delete(H),i.delete(H),o.delete(H));}}return {sendImage:u=>C(dd,u),sendVideo:u=>C(Ji,u),replaceVideo:(u,I,S)=>C(Ji,S,u,I),sendVoice:u=>{let I=u.durationMs;return I===void 0||!Number.isFinite(I)||I<ZC?Promise.resolve({ok:false,reason:"invalid-duration"}):C($C,u)},sendFile:u=>C($u,u),sendGif:u=>C(eS,{...u,encrypted:false}),sendMediaAlbum:u=>_(u),replaceFile:(u,I,S)=>C($u,S,u,I),cancel(u){if(!s)return false;let I=t.get(u);return I===void 0?false:(o.set(u,"cancelled"),I.abort(),true)},cancelConversation(u,I="offline"){if(s)for(let[S,T]of r){if(T.conversationType!==u.conversationType||T.conversationId!==u.conversationId)continue;let h=t.get(S);h!==void 0&&(o.set(S,I),h.abort(I));}},cancelAll(u="offline"){if(s)for(let[I,S]of t)o.set(I,u),S.abort(u);},retry(u){if(!s)return false;let I=a.get(u);return I===void 0?false:(a.delete(u),f(u,I.input,"queued",0),I.kind==="album"?_(I.input,u,I.createdAt,I.items):C(I.spec,I.input,u,I.createdAt,I.teaKey,I.resume),true)},invalidateAssetCacheWrites(){d+=1;},dispose(){if(s){s=false,d+=1;for(let u of t.values())u.abort();t.clear(),i.clear(),o.clear();for(let[u,I]of a)for(let S of nm(I))p(S.resume,S.kind,u,g(I.input));a.clear();}}}}function tm(e,n){if(!Wn(n.miniProgram))throw new Error("sendMiniProgram: \u5C0F\u7A0B\u5E8F\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"miniProgram",body:{miniProgram:n.miniProgram},encryption:{encrypted:n.encrypted??false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function dS(e){return e.id.trim()!==""&&e.conversation.conversationId.trim()!==""&&e.parentMessageId.trim()!==""&&e.senderId.trim()!==""&&(e.action===0||e.action===1)&&Number.isSafeInteger(e.createdAt)&&e.createdAt>=0}function cS(e,n){return qn.encode(qn.create({emoji:e,action:n}))}function lS(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function i(p,f){let v=BigInt(e.getSelfId()),C=BigInt(p.conversation.conversationId),E=cS(p.emoji,p.action),G=Ae(p.id),_=Ye(p.parentMessageId);switch(p.conversation.conversationType){case "direct":{let u=f===4651?ro:to,I=u.create({sToId:C,sFromId:v,sMsgId:G,msgType:1,msgTime:BigInt(p.createdAt),encrypt:0,sContent:E,parentMsgId:_});return z({command:f??4650,body:u.encode(I)})}case "group":{let u=Pt.create({sGrpId:C,sToId:C,sFromId:v,sMsgId:G,msgType:5,msgTime:BigInt(p.createdAt),encrypt:0,sContent:E,parentMsgId:_});return z({command:8978,body:Pt.encode(u)})}case "channel":{let u=Qt.create({sRadioId:C,sFromId:v,sMsgId:G,msgTime:BigInt(p.createdAt),encrypt:0,sContent:E,parentMsgId:_});return z({command:12817,body:Qt.encode(u)})}}}function a(p,f,v){clearTimeout(p.timer),n.delete(p.event.id),e.domainState.rollbackReaction(p.event.conversation,p.event.parentMessageId,p.event.id),p.resolve({ok:false,reason:f,...v===void 0?{}:{errcode:v}});}function s(p){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let f=e.domainState.getConversationMessage(p.conversation,p.parentMessageId);if(f===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!za(f))return Promise.resolve({ok:false,reason:"unsupported-message"});if(!Cr(p.emoji)||Sr(p.emoji)||e.isEmojiSupported?.(p.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let v=Object.freeze({id:en(),conversation:Object.freeze({...p.conversation}),parentMessageId:p.parentMessageId,senderId:e.getSelfId(),emoji:p.emoji,action:p.action,createdAt:t()});return e.domainState.applyReaction(v,"live"),new Promise(C=>{let E=setTimeout(()=>{let G=n.get(v.id);G!==void 0&&a(G,"timeout");},r);n.set(v.id,{event:v,resolve:C,timer:E});try{e.sendFrame(i(v));}catch(G){e.logger?.("reaction-send-frame-failed",{eventId:v.id,cause:G});let _=n.get(v.id);_!==void 0&&a(_,"failed");}})}function d(p){let v=e.domainState.getConversationMessage(p.conversation,p.parentMessageId)?.reactions?.currentUserEmoji===p.emoji?1:0;return s({...p,action:v})}function g(p){let f=n.get(p.eventId);if(f!==void 0){if(p.errcode!==32768&&p.errcode!==0){a(f,"failed",p.errcode);return}if(clearTimeout(f.timer),n.delete(f.event.id),f.event.conversation.conversationType==="direct")try{e.sendFrame(i(f.event,4651));}catch(v){e.logger?.("reaction-opposite-end-send-failed",{eventId:f.event.id,cause:v});}f.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(f.event.emoji).catch(v=>e.logger?.("reaction-report-failed",{emoji:f.event.emoji,cause:v})),f.resolve({ok:true,event:f.event});}}return {set:s,toggle:d,onAck:g,ingest:(p,f="live")=>!dS(p)||!Cr(p.emoji)||Sr(p.emoji)||e.isEmojiSupported?.(p.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:p.id,parentMessageId:p.parentMessageId,emoji:p.emoji}),"ignored"):e.domainState.applyReaction(p,f),dispose(){o=true;for(let p of [...n.values()])a(p,"disconnected");}}}function gS(e){return [{command:4652,handler:(n,t)=>{let r=oo.decode(t);e.manager.onAck({eventId:ge(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=Er(io.decode(t),e.getSelfId());e.manager.ingest(r,"live"),e.logger?.("direct-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:8979,handler:(n,t)=>{let r=vo.decode(t);e.manager.onAck({eventId:ge(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=Rr(bo.decode(t));e.manager.ingest(r,"live"),e.logger?.("group-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}},{command:12818,handler:(n,t)=>{let r=Bo.decode(t);e.manager.onAck({eventId:ge(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=Ra(Fo.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function uS(e){return [{command:12806,handler:(n,t)=>{let r=Wo.decode(t);try{e.logger?.("channel-sync-read-ack",{errcode:r.errcode});}catch{}r.errcode!==32768&&e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08cmdId=${n}, errcode=${r.errcode}\uFF09`}});}},{command:12807,handler:(n,t)=>{let r=Ho.decode(t),o=r.sUserId.toString();if(r.sUserId<=0n||o!==e.getSelfId())throw new Error(`CHANNEL 0x3207 \u7528\u6237\u4E0D\u5339\u914D\uFF08received=${o}\uFF09`);if(r.radioId<=0n)throw new Error("CHANNEL 0x3207 \u9891\u9053 id \u7F3A\u5931\u6216\u975E\u6CD5");let i=r.lastReadIndex.trim();if(i==="")throw new Error(`CHANNEL 0x3207 cursor \u7F3A\u5931\uFF08channelId=${r.radioId}\uFF09`);e.applyRemoteRead({conversationId:r.radioId.toString(),readCursor:i});}}]}function mS(e){let n=new Map,t=new Map,r=new Map,o=0;function i(u,I){let S={conversationType:"channel",conversationId:u},T=e.domainState.getSession(S);if(T===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${u}\uFF09`);if(T.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${T.type}\uFF08channelId=${u}\uFF09`);if(I.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${u}\uFF09`);let h=e.domainState.getConversationMessage(S,I),P=e.domainState.getLoadedMessagesByConversation(S).find(K=>K.extensions?.historyCursor===I),Y=(h===void 0?void 0:Gr(h))??(P===void 0?void 0:Gr(P));if(Y===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${u}, cursor=${I}\uFF09`);return Y}function a(u){let I={conversationType:"channel",conversationId:u},S=e.domainState.getReadState(I);if(S?.readCursor!==void 0&&S.readCursor!==""){let T=e.domainState.getLoadedMessagesByConversation(I).find(h=>h.extensions?.historyCursor===S.readCursor);if(T!==void 0){let h=Gr(T);if(h!==void 0)return h}}return S?.readCursorSortKey===void 0?void 0:{sortKey:S.readCursorSortKey}}function s(u,I){return rm(u,I)}function d(u,I){let S=r.get(u),T=S===void 0?a(u):S.committed;return T!==void 0&&s(T,I)>=0}function g(u,I){let S=r.get(u);if(S!==void 0){if(s(S.optimistic,I)>=0)return;e.domainState.applyChannelReadOptimistically(S.transaction,I.messageId,I.cursor),S.optimistic=I;return}let T=a(u),h=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:u});e.domainState.applyChannelReadOptimistically(h,I.messageId,I.cursor),r.set(u,{transaction:h,committed:T,optimistic:I});}function p(u,I){let S=n.get(u);(S===void 0||s(I,S)>0)&&n.set(u,I);}function f(u,I){if(e.syncRead!==void 0)try{let S=Xt.encode(Xt.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(u),lastReadIndex:I}));e.syncRead.sendFrame(z({command:12805,body:S}));}catch(S){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${u}\uFF09`,cause:S}});}}async function v(u,I){for(;;){if(I!==o)return;let S=n.get(u);if(S===void 0)return;if(n.delete(u),d(u,S))continue;try{await e.updateReadIndex({channelId:u,readCursor:S.cursor});}catch(P){if(I!==o)return;let L=r.get(u);throw L!==void 0&&(e.domainState.rollbackChannelReadTransaction(L.transaction),r.delete(u)),p(u,S),P}if(I!==o)return;if(d(u,S))continue;let T=r.get(u);T!==void 0&&e.domainState.commitChannelReadTransaction(T.transaction,S.cursor)||e.domainState.applyServerUnread({conversationType:"channel",conversationId:u},0,S.messageId,S.cursor),T!==void 0&&(T.committed=S,s(T.optimistic,S)===0&&r.delete(u)),e.logger?.("channel-read-index",{channelId:u,cursor:S.cursor}),f(u,S.cursor);}}function C(u,I){let S=Promise.resolve().then(()=>v(u,I)).then(()=>{if(t.get(u)===S&&(t.delete(u),I===o&&n.has(u)))return C(u,I)},T=>{throw t.get(u)===S&&t.delete(u),T});return t.set(u,S),S}function E(u){let I;try{I=i(u.conversationId,u.readCursor);}catch(T){return Promise.reject(T)}if(d(u.conversationId,I))return Promise.resolve();g(u.conversationId,I),p(u.conversationId,I);let S=t.get(u.conversationId);return S!==void 0?S:C(u.conversationId,o)}function G(u){let I=i(u.conversationId,u.readCursor);d(u.conversationId,I)||(e.domainState.applyServerUnread({conversationType:"channel",conversationId:u.conversationId},0,I.messageId,I.cursor),r.delete(u.conversationId));}function _(){o+=1;for(let u of r.values())e.domainState.rollbackChannelReadTransaction(u.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:E,applyRemoteRead:G,reset:_}}function pS(e){return e===void 0?void 0:Gr(e)?.cursor}function Gr(e){let n=e.extensions?.historyCursor;if(typeof n!="string"||n.trim()==="")return;let t=e.extensions?.channelSequence,r=typeof t=="string"&&/^\d+$/.test(t)?BigInt(t):void 0;return {cursor:n,messageId:e.id,sortKey:e.sortKey,...r===void 0?{}:{sequence:r}}}function fS(e){let n;for(let t of e){let r=Gr(t);r!==void 0&&(n===void 0||rm(r,n)>0)&&(n=r);}return n?.cursor}function rm(e,n){return e.sequence!==void 0&&n.sequence!==void 0?e.sequence<n.sequence?-1:e.sequence>n.sequence?1:0:e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var Xi=50;function om(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function yS(e){if(e.contentType==="voice"||e.contentType==="video")return false;let n=e.body.system?.eventType;return e.conversationType==="direct"&&(n==="direct_contact_established"||n==="direct_contact_required"||n==="direct_message_refused")?false:tn(e.id)}function IS(e,n,t,r){let o=om(e,n,r);if(o===void 0)return;let i=om(e,n,t),a=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(s=>yS(s)&&s.senderId!==a&&s.sortKey<=o&&(i===void 0||s.sortKey>i)).map(s=>s.id)}function pd(e){let n=new Set,t=new Map,r=new Map;function o(a){let s=r.get(a);if(s===void 0||s.size===0||!e.isAuthenticated())return;for(let g of s)tn(g)||s.delete(g);if(s.size===0){r.delete(a);return}let d=[...s];for(let g=0;g<d.length;g+=Xi){let p=d.slice(g,g+Xi);try{let f=wn.encode(wn.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(a),msgIdList:p.map(Ae)}));e.sendFrame(z({command:4117,body:f}));for(let v of p)s.delete(v);}catch(f){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u5A92\u4F53\u6D88\u8D39\u591A\u7AEF\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${a}\uFF09`,cause:f}});break}}s.size===0&&r.delete(a);}function i(a){let s=e.domainState.getReadState({conversationType:"direct",conversationId:a})?.readCursor??"";if(s===""||!e.isAuthenticated())return;let d=IS(e,a,t.get(a),s);if(d===void 0)return;if(d.length===0){t.set(a,s);return}let g,p=true;for(let f=0;f<d.length;f+=Xi){let v=d.slice(f,f+Xi),C=v.map(Ae);try{let E=wn.encode(wn.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(a),msgIdList:C}));e.sendFrame(z({command:4117,body:E})),g=v.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:a,count:C.length,offset:f});}catch(E){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${a}\uFF09`,cause:E}}),p=false;break}}p?t.set(a,s):g!==void 0&&t.set(a,g);}return {report(a){n.add(a),i(a);},reportConsumedMedia(a,s){let d=e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},s);if(d===void 0||d.senderId===e.getSelfId()||d.contentType!=="voice"&&d.contentType!=="video")return;n.add(a);let g=r.get(a);g===void 0&&(g=new Set,r.set(a,g)),g.add(s),o(a);},onAck({errcode:a}){e.logger?.("direct-sync-read-ack",{errcode:a}),a!==32768&&a!==0&&e.emitter.emit({type:"error",error:{scope:"sync",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08errcode=${a}\uFF09`,code:4118}});},onDeliver({userId:a,peerId:s,msgIdList:d}){if(a!==e.getSelfId())return;let p=d.map(f=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:s},ge(f))).filter(f=>f!==void 0).sort((f,v)=>f.sortKey<v.sortKey?-1:f.sortKey>v.sortKey?1:0).at(-1);p!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:s},p.id);},onAuthenticated(){for(let a of n)i(a),o(a);},reset(){}}}function CS(e){let n=e.body?.system?.eventType;return n==="group_call_started"||n==="group_call_ended"||n==="group_call_missed"?false:tn(e.id)}var fd=50;function SS(e){let n=new Map,t=new Set,r=new Map,o=new Map;function i(){return e.isAuthenticated?.()??true}function a(d,g){let{syncRead:p}=e;if(p===void 0||!i())return;let f=p.getSelfId(),v=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:d}),C=v.find(T=>T.id===g);if(C===void 0)return;let E=o.get(d),G=E===void 0?void 0:v.find(T=>T.id===E)?.sortKey,_=v.filter(T=>CS(T)&&T.senderId!==f&&T.sortKey<=C.sortKey&&(G===void 0||T.sortKey>G));if(_.length===0){o.set(d,g);return}let u=_.map(T=>Ae(T.id)),I,S=true;for(let T=0;T<u.length;T+=fd){let h=u.slice(T,T+fd);try{let P=wt.encode(wt.create({sUserId:BigInt(f),msgIdList:h,groupId:BigInt(d)}));p.sendFrame(z({command:8967,body:P})),I=_[Math.min(T+fd,_.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:d,count:h.length,offset:T});}catch(P){e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x2307)\u53D1\u9001\u5931\u8D25\uFF08groupId=${d}\uFF09`,cause:P}}),S=false;break}}S?o.set(d,g):I!==void 0&&o.set(d,I);}async function s(d){if(!(t.has(d)||!i())){t.add(d);try{for(;i();){let g=n.get(d);if(g===void 0)return;if(n.delete(d),r.get(d)!==g){a(d,g);try{await e.markGroupReadAll(d),r.set(d,g);}catch(p){if(!i()){n.has(d)||n.set(d,g);return}n.get(d)===g&&n.delete(d),e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u5DF2\u8BFB read_all \u5931\u8D25\uFF08groupId=${d}\uFF09`,cause:p}});return}}}}finally{t.delete(d),i()&&n.has(d)&&s(d);}}}return {conversationType:"group",markRead({conversationId:d,readCursor:g}){e.domainState.applyServerUnread({conversationType:"group",conversationId:d},0,g),e.logger?.("grp-read-all",{groupId:d}),n.set(d,g),s(d);},onAuthenticated(){for(let d of n.keys())s(d);}}}function AS(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u5DF2\u8BFB\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r),onAuthenticated:()=>{for(let r of n.values())r.onAuthenticated?.();}}}function im(e){let n=Dt.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:Ae(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return z({command:4107,body:Dt.encode(n)})}function sm(e){let n=Ut.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:Ae(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return z({command:8197,body:Ut.encode(n)})}function am(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:Ae(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function dm(e){let n=Ht.create(am(e));return z({command:12297,body:Ht.encode(n)})}function cm(e){let n=Wt.create(am(e));return z({command:12293,body:Wt.encode(n)})}var ES=15e3;function yd(e){let n=e.now??(()=>Date.now()),t=new Map;function r(o,i){let a=t.get(o);a!==void 0&&(a.timer!==void 0&&clearTimeout(a.timer),t.delete(o),a.resolve(i));}return {deleteForEveryone(o){let i=e.domainState.getConversationMessage(o,o.messageId);if(i===void 0||i.conversationId!==o.conversationId||i.id!==o.messageId)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationType!=="channel")return Promise.resolve({ok:false,reason:"unsupported"});if(i.deletedForEveryone!==void 0)return Promise.resolve({ok:true});if(i.recalled!==void 0)return Promise.resolve({ok:false,reason:"unavailable"});if(i.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let a;try{a=Ae(i.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let s=t.get(a);if(s!==void 0)return s.promise;let d,g=new Promise(f=>{d=f;}),p={messageId:i.id,channelId:i.conversationId,deletedAt:n(),resolve:d,promise:g};return t.set(a,p),e.resolveProfile(i.conversationId).then(f=>{if(t.get(a)===p){if(f===null||f.role!=="admin"&&f.role!=="owner"){r(a,{ok:false,reason:"forbidden"});return}p.timer=setTimeout(()=>r(a,{ok:false,reason:"timeout"}),ES),e.sendFrame(cm({selfId:e.getSelfId(),channelId:i.conversationId,messageId:i.id,msgTime:i.serverTime??i.createdAt}));}}).catch(()=>r(a,{ok:false,reason:"failed"})),g},onDeleteAck({sMsgId:o,errcode:i}){let a=t.get(o);if(a!==void 0){if(i===32768||i===0){e.domainState.deleteChannelMessageForEveryone({conversationId:a.channelId,conversationType:"channel"},a.messageId,{by:e.getSelfId(),at:a.deletedAt,reason:"channel-moderation"}),r(o,{ok:true});return}if(i===34052){e.onPermissionDenied?.(a.channelId),r(o,{ok:false,reason:"forbidden",errcode:i});return}r(o,{ok:false,reason:"failed",errcode:i});}},reset(){for(let o of [...t.keys()])r(o,{ok:false,reason:"disconnected"});}}}var lt=300*1e3;function lm(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u64A4\u56DE\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function gm(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>lt)return "expired"}function um(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:lt,prepare(e,n,t){let r=gm(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:im({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function mm(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:lt,prepare(e,n,t){let r=gm(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:sm({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function RS(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:lt,async prepare(n,t,r){if(n.conversationId!==t.conversationId||t.conversationType!=="channel")return {ok:false,reason:"not-found"};if(t.senderId!==r.selfId)return {ok:false,reason:"not-own"};let o=t.serverTime??t.createdAt;if(r.now-o>lt)return {ok:false,reason:"expired"};let i=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:dm({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...i===void 0||i===""?{}:{extend:i}})}}}}function Id(){return lm([um(),mm()])}var pm=15e3;function Cd(e){let n=e.now??(()=>Date.now()),t=e.strategies??Id(),r=new Map;function o(i,a){let s=r.get(i);s!==void 0&&(s.timer!==void 0&&clearTimeout(s.timer),r.delete(i),s.resolve(a));}return {recall(i){let a=e.domainState.getConversationMessage(i,i.messageId);if(a===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(a.recalled!==void 0)return Promise.resolve({ok:true});if(a.deletedForEveryone!==void 0)return Promise.resolve({ok:true});let s=t.resolve(i.conversationType);if(s===void 0)return Promise.resolve({ok:false,reason:"unsupported"});let d=e.getSelfId();if(s.ownMessageOnly===true&&a.senderId!==d)return Promise.resolve({ok:false,reason:"not-own"});if(a.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let g=n();if(s.recallWindowMs!==void 0&&g-(a.serverTime??a.createdAt)>s.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let p=Ae(i.messageId),f=r.get(p);if(f!==void 0)return f.promise;let v=s.prepare(i,a,{selfId:d,now:g});function C(u){if(!u.ok)return Promise.resolve(u);let I,S=new Promise(h=>{I=h;}),T=setTimeout(()=>o(p,{ok:false,reason:"timeout"}),pm);return r.set(p,{messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:u.recalledAt,resolve:I,timer:T,promise:S}),e.sendFrame(u.frame),S}if(!(v instanceof Promise))return C(v);let E,G=new Promise(u=>{E=u;}),_={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:g,resolve:E,promise:G};return r.set(p,_),v.then(u=>{if(r.has(p)){if(!u.ok){o(p,u);return}_.cancelTime=u.recalledAt,_.timer=setTimeout(()=>o(p,{ok:false,reason:"timeout"}),pm),e.sendFrame(u.frame);}}).catch(()=>o(p,{ok:false,reason:"failed"})),G},onRecallAck({sMsgId:i,errcode:a}){let s=r.get(i);if(s===void 0)return;if(a===32768||a===0){e.domainState.recallMessage({conversationId:s.conversationId,conversationType:s.conversationType},s.messageId,{by:e.getSelfId(),at:s.cancelTime}),o(i,{ok:true});return}let d=a===33284?"server-expired":"failed";o(i,s.conversationType==="channel"?{ok:false,reason:d,errcode:a}:{ok:false,reason:d});},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function Sd(e){function n(r){let o=mo.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([Ta(o,e.getSelfId())],"live");let i=Gt.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(z({command:4109,body:Gt.encode(i)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let a=(o?Vo:Lo).decode(r);if(a.sFromId<=0n||a.sRadioId<=0n||a.sMsgId.trim()==="")return;let s=o?wo:Ko,d=o?12295:12299,g=s.create({sFromId:a.sFromId,sRadioId:a.sRadioId,sMsgId:a.sMsgId,sIndex:a.sIndex});e.sendFrame(z({command:d,body:s.encode(g)})),e.domainState.upsertMessages([o?ba(a):va(a)],"live"),e.logger?.(o?"channel-message-deleted-deliver":"channel-recall-deliver",{sMsgId:a.sMsgId,sFromId:a.sFromId.toString(),sRadioId:a.sRadioId.toString()});}return [{command:4110,handler:(r,o)=>n(o)},{command:4108,handler:(r,o)=>{let i=uo.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:8198,handler:(r,o)=>{let i=po.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12298,handler:(r,o)=>{let i=Oo.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12294,handler:(r,o)=>{let i=Po.decode(o);e.onChannelMessageDeletionAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12300,handler:(r,o)=>t(o,false)},{command:12296,handler:(r,o)=>t(o,true)}]}function Ad(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function MS(e){let n=e.getSelfId().trim();if(!/^[1-9]\d*$/.test(n))throw new Error("channel application: \u5F53\u524D\u8D26\u53F7 id \u7F3A\u5931\u6216\u975E\u6CD5");return BigInt(n).toString()}function hS(e){let n=Ad(e.sFromId,"applicant"),t=Ad(e.sToId,"recipient"),r=Ad(e.sRadioId,"channel"),o=e.sMsgId.trim();if(o==="")throw new Error("channel application: message id \u7F3A\u5931");return {messageId:o,applicantId:n,recipientId:t,channelId:r,messageTime:e.msgTime.toString(),extend:e.extend,selfIntroduction:e.sSelfIntroduce,description:e.sDesc}}function TS(e){function n(t){let r=Zo.decode(t),o=MS(e),i=hS(r),a=Jt.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:i.messageId});try{e.sendFrame(z({command:12547,body:Jt.encode(a)}));}catch(s){e.emitter.emit({type:"error",error:{scope:"transport",message:`CHANNEL \u5165\u7FA4\u7533\u8BF7 ACK \u53D1\u9001\u5931\u8D25\uFF08channelId=${i.channelId}, messageId=${i.messageId}\uFF09`,cause:s}});}i.recipientId===o&&e.emitter.emit({type:"channel-join-application:received",conversation:{conversationType:"channel",conversationId:i.channelId},notification:i});}return [{command:12548,handler:(t,r)=>n(r)}]}function vS(e){if(e.sFromId<0n)throw new Error("channel notify: sender id \u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.sId.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931")}function bS(e){function n(i){let a=Yt.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sId});e.sendFrame(z({command:12803,body:Yt.encode(a)}));}function t(i,a,s,d="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:i,message:`${d}\uFF08channelId=${a.sRadioId.toString()}, messageId=${a.sMsgId}\uFF09`,cause:s}});}function r(i){if(i.encrypt===0)return ue.decode(i.sContent);if(i.encrypt===1){if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 Web \u79C1\u94A5\u89E3\u5BC6\u4F9D\u8D56");let d=e.decrypt.resolveUserPrivateKey?.()??null;if(d===null)throw new Error("CHANNEL \u901A\u77E5 Web \u79C1\u94A5\u7F3A\u5931");let g=_e.decode(i.sContent);if(g.secretKey.length===0||g.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.secretKey/cipherData \u7F3A\u5931");return ue.decode(e.decrypt.crypto.decryptEndToEnd({secretKey:g.secretKey,cipherData:g.cipherData,privateKey:d}))}if(i.encrypt!==2)throw new Error(`CHANNEL \u901A\u77E5 encrypt=${i.encrypt} \u4E0D\u652F\u6301`);if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 ChannelKeyService \u89E3\u5BC6\u4F9D\u8D56");let a=e.decrypt.resolveChannelKey(i.sRadioId.toString());if(a===null||a.length!==16)throw new Error("CHANNEL \u901A\u77E5 key \u7F3A\u5931\u6216\u957F\u5EA6\u975E\u6CD5");let s=_e.decode(i.sContent);if(s.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return ue.decode(e.decrypt.crypto.decryptSymmetric({teaKey:a,cipherData:s.cipherData}))}function o(i,a){let s=Qo.decode(a);vS(s);try{n(s);}catch(g){t("transport",s,g,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let d;try{d=r(s);}catch(g){t(s.encrypt===0?"protocol":"crypto",s,g);let p=mn(s,ue.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:i,keepRaw:e.keepRaw,decryptFailed:s.encrypt!==0});e.domainState.upsertMessages([p],"live"),(s.encrypt===1||s.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:p.conversationId},messageId:p.id,wireEncrypt:s.encrypt,sContent:s.sContent.slice(),cmdId:i,source:"live",createdAt:Date.now()});return}try{let g=Ir({channelId:s.sRadioId,messageId:s.sMsgId,occurredAt:s.msgTime,notifyType:d.type,operatorId:d.oprUserId,targetUserIds:d.mnpledUserId,content:d.content,historyCursor:s.sId,sequence:s.nIncrId,encrypted:s.encrypt!==0,extend:s.extend},{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([g],"live"),e.logger?.("channel-notify-deliver",{channelId:s.sRadioId.toString(),messageId:s.sMsgId,notifyType:d.type});}catch(g){t("protocol",s,g);}}return [{command:12804,handler:(i,a)=>o(i,a)}]}function _S(e){let t=new Map([[34049,"channelDismissed"],[34050,"channelMuted"],[34051,"channelNotMember"],[34052,"channelAdminRequired"]]).get(e);return t===void 0?void 0:{code:e,reason:"rejected",displayCode:t,retryable:false}}function NS(e){switch(e){case 34049:return {state:"dismissed",reason:"channel_dismissed"};case 34050:return {state:"muted",reason:"channel_muted"};case 34051:return {state:"unknown_restricted",reason:"channel_not_member"};default:return}}function fm(e,n=true){if(e.sFromId<=0n)throw new Error("channel deliver: sender id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sRadioId<=0n)throw new Error("channel deliver: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.sMsgId.trim()==="")throw new Error("channel deliver: message id \u7F3A\u5931");if(n&&e.sId.trim()==="")throw new Error("channel deliver: history cursor \u7F3A\u5931")}function DS(e){function n(d){let g=ko.decode(d),p={...g.sIndex===""?{}:{historyCursor:g.sIndex},...g.nIncrId===0n?{}:{channelSequence:g.nIncrId.toString()}},f=_S(g.errcode);e.outbox.onChatAck({id:ge(g.sMsgId),serverTime:Number(g.msgTime),errcode:g.errcode,...Object.keys(p).length===0?{}:{extensions:p},...f===void 0?{}:{failure:f}});let v=NS(g.errcode);v!==void 0&&g.sRadioId>0n&&e.domainState.setChannelRestriction(g.sRadioId.toString(),v.state,v.reason),e.logger?.("channel-chat-ack",{messageId:g.sMsgId,channelId:g.sRadioId.toString(),errcode:g.errcode});}function t(d){let g=Zt.create({sFromId:d.sFromId,sRadioId:d.sRadioId,sMsgId:d.sMsgId,sIndex:d.sId});e.sendFrame(z({command:12291,body:Zt.encode(g)}));}function r(d,g,p){let f=d.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:g,messageId:d.sMsgId,channelId:f,encrypt:d.encrypt,payloadByteLength:d.sContent.length,...p}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`CHANNEL \u5B9E\u65F6\u6D88\u606F\u5904\u7406\u5931\u8D25\uFF08${p.reason}, channelId=${f}\uFF09`,...p.cause===void 0?{}:{cause:p.cause}}});}function o(d,g){let p;if(d.encrypt===0)p=ue.decode(d.sContent);else if(d.encrypt===1&&e.decrypt!==void 0){let f=e.decrypt.resolveUserPrivateKey?.()??null;if(f===null){r(d,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let v;try{if(v=_e.decode(d.sContent),v.secretKey.length===0||v.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:E});return}let C;try{C=e.decrypt.crypto.decryptEndToEnd({secretKey:v.secretKey,cipherData:v.cipherData,privateKey:f});}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:v.cipherData.length,cause:E});return}try{p=ue.decode(C);}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:v.cipherData.length,decryptedByteLength:C.length,cause:E});return}}else if(d.encrypt===2&&e.decrypt!==void 0){let f=e.decrypt.resolveChannelKey(d.sRadioId.toString());if(f===null||f.length!==16){r(d,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:f?.length??0,keySource:f===null?"miss":"cache"});return}let v;try{let E=_e.decode(d.sContent);if(E.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");v=E.cipherData;}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:f.length,keySource:"cache",cause:E});return}let C;try{C=e.decrypt.crypto.decryptSymmetric({teaKey:f,cipherData:v});}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:f.length,keySource:"cache",cipherDataByteLength:v.length,cause:E});return}try{p=ue.decode(C);}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:f.length,keySource:"cache",cipherDataByteLength:v.length,decryptedByteLength:C.length,cause:E});return}}else {r(d,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return p}function i(d,g){let p=mn(d,ue.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:g,keepRaw:e.keepRaw,decryptFailed:true});e.domainState.upsertMessages([p],"live"),(d.encrypt===1||d.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:p.conversationId},messageId:p.id,wireEncrypt:d.encrypt,sContent:d.sContent.slice(),cmdId:g,source:"live",createdAt:Date.now()});}function a(d,g){let p=xo.decode(g);fm(p),t(p);let f=o(p,"live-deliver");if(f===void 0){i(p,d);return}let v=Mr({channelId:p.sRadioId,senderId:p.sFromId,msgTime:p.msgTime,encrypt:p.encrypt},f);if(v!==null){e.domainState.upsertMessages([v],"live"),e.logger?.("channel-operation-notify-deliver",{messageId:p.sMsgId,targetMessageId:v.id,channelId:p.sRadioId.toString(),operation:v.deletedForEveryone!==void 0?"admin-delete":"self-recall",command:d});return}let C=mn(p,f,{selfId:e.getSelfId(),cmdId:d,keepRaw:e.keepRaw});e.domainState.upsertMessages([C],"live"),e.logger?.("channel-chat-deliver",{messageId:p.sMsgId,channelId:p.sRadioId.toString(),encrypt:p.encrypt,command:d});}function s(d,g){let p=Sn.decode(g);if(fm(p,false),p.oldMsgId.trim()==="")throw new Error("channel edit deliver: oldMsgId \u7F3A\u5931");if(p.isEdit===""||p.isEdit==="0")throw new Error("channel edit deliver: isEdit \u6807\u8BB0\u7F3A\u5931");if(p.encrypt!==2)throw new Error("channel edit deliver: \u5FC5\u987B\u4F7F\u7528 CHANNEL encrypt=2");let f=ge(p.oldMsgId),v=o(p,"live-edit");if(v===void 0){let E={conversationType:"channel",conversationId:p.sRadioId.toString()};if(e.domainState.getConversationMessage(E,f)===void 0){let G=mn(p,ue.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:d,keepRaw:e.keepRaw,decryptFailed:true,edited:true});e.domainState.upsertMessages([{...G,id:f}],"live");}e.decrypt?.onDecryptRecovery?.({conversation:E,messageId:f,wireEncrypt:2,sContent:p.sContent.slice(),cmdId:d,source:"live",createdAt:Date.now()});return}let C=mn(p,v,{selfId:e.getSelfId(),cmdId:d,keepRaw:e.keepRaw,edited:true});if(C.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:C.conversationId},f,C.body,C.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:C.conversationId},f)===void 0&&e.domainState.upsertMessages([{...C,id:f,edited:true,extensions:{...C.extensions,editOperationMessageId:C.id,previousMessageId:f}}],"live");}return [{command:12290,handler:(d,g)=>n(g)},{command:12292,handler:(d,g)=>a(d,g)},{command:12816,handler:(d,g)=>a(d,g)},{command:12808,handler:(d,g)=>s(d,g)}]}function Ed(){let e=new Map;return {register(n,t){if(e.has(n))throw new Error(`\u6536\u5305\u547D\u4EE4\u5904\u7406\u5668\u91CD\u590D\u6CE8\u518C\uFF1AcmdId=${n}`);e.set(n,t);},resolve:n=>e.get(n)}}function GS(e){if(e.extend.trim()==="")return false;try{let n=JSON.parse(e.extend);if(n===null||typeof n!="object")return !1;let t=n.friend_info;if(t===null||typeof t!="object")return !1;let r=t.user_id;return (typeof r=="string"||typeof r=="number"||typeof r=="bigint")&&String(r).trim()===e.sFromId.toString()}catch{return false}}function US(e){return [{command:4360,handler:(n,t)=>{let r=go.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application answer: \u5904\u7406\u4EBA\u3001\u7533\u8BF7\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(z({command:4359,body:Nt.encode(Nt.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=r.sFromId.toString(),a=r.errcode===32768||r.errcode===33300||GS(r)?"accepted":r.errcode===33297?"rejected":"ambiguous";a==="accepted"&&(e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(s=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u597D\u53CB\u7533\u8BF7\u5DF2\u901A\u8FC7\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:s}});}),e.domainState.refreshConversationProfile(i,"direct")),e.emitter.emit({type:"contact-application:answered",notification:{responderId:r.sFromId.toString(),applicantId:o,messageId:r.sMsgId,result:a}});}}]}function kS(e){return [{command:4356,handler:(n,t)=>{let r=lo.decode(t);if(r.sFromId<=0n||r.sToId<=0n||r.sMsgId.trim()==="")throw new Error("contact application: \u7533\u8BF7\u4EBA\u3001\u63A5\u6536\u4EBA\u6216\u6D88\u606F id \u975E\u6CD5");e.sendFrame(z({command:4355,body:_t.encode(_t.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=Number(r.msgTime);if(!Number.isSafeInteger(i)||i<=0)throw new Error("contact application: \u6D88\u606F\u65F6\u95F4\u975E\u6CD5");e.emitter.emit({type:"contact-application:received",notification:{applicantId:r.sFromId.toString(),recipientId:o,messageId:r.sMsgId,createdAt:i}});}}]}function Rd(e){function n(C){let E=Tt.create({sFromId:C.sFromId,sToId:C.sToId,sMsgId:C.sMsgId,msgTime:C.msgTime});e.sendFrame(z({command:4099,body:Tt.encode(E)}));}function t(C){let E=Ba(eo.decode(C));e.logger?.("chat-ack",{id:E.id,errcode:E.errcode,serverTime:E.serverTime}),e.outbox.onChatAck(E);}function r(C,E,G){let _=tt(C,ue.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:E,keepRaw:e.keepRaw,decryptFailed:true,edited:G});e.domainState.upsertMessages([_],"live"),C.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:_.conversationId},messageId:_.id,wireEncrypt:1,sContent:C.sContent.slice(),...C.encryptVersion===""?{}:{encryptVersion:C.encryptVersion},cmdId:E,source:"live",createdAt:Date.now()});}function o(C,E,G=false){let _=no.decode(E),u;if(_.encrypt===0)u=ue.decode(_.sContent);else if(_.encrypt===1&&e.decrypt!==void 0){let S=e.decrypt.resolvePrivateKey({msgType:_.msgType,encrypt:_.encrypt,encryptVersion:_.encryptVersion});if(S===null){e.decrypt.onDecryptError?.({msgId:_.sMsgId,fromId:String(_.sFromId),toId:String(_.sToId),msgType:_.msgType,cmdId:C,encrypt:_.encrypt,encryptVersion:_.encryptVersion,reason:"no-key"}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${_.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(_,C,G);return}try{let T=_e.decode(_.sContent);if(T.secretKey.length===0||T.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${T.secretKey.length}B cipherData=${T.cipherData.length}B`);let h=e.decrypt.crypto.decryptEndToEnd({secretKey:T.secretKey,cipherData:T.cipherData,privateKey:S});u=ue.decode(h);}catch(T){e.decrypt.onDecryptError?.({msgId:_.sMsgId,fromId:String(_.sFromId),toId:String(_.sToId),msgType:_.msgType,cmdId:C,encrypt:_.encrypt,encryptVersion:_.encryptVersion,reason:"decrypt-failed",cause:T}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u5B9E\u65F6\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${_.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,cause:T}}),r(_,C,G);return}}else {e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${_.encrypt})\uFF0C\u6D88\u606F\u52A0\u5BC6 adapter \u672A\u63A5\u5165\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(_,C,G);return}let I=tt(_,u,{selfId:e.getSelfId(),cmdId:C,keepRaw:e.keepRaw,edited:G});e.domainState.upsertMessages([I],"live"),n(_),e.logger?.("chat-deliver",{sMsgId:_.sMsgId,sFromId:String(_.sFromId),sToId:String(_.sToId),encrypt:_.encrypt});}function i(C){let E=kt.create({sUserId:C.sToId,sMsgId:C.sMsgId});e.sendFrame(z({command:4101,body:kt.encode(E)})),e.logger?.("delivered-notif-ack",{sUserId:String(E.sUserId),sMsgId:E.sMsgId});}function a(C,E){let G=So.decode(E);if(e.logger?.("delivered-notif",{sMsgId:G.sMsgId,sFromId:String(G.sFromId),sToId:String(G.sToId)}),G.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_DELIVERED_NOTIFICATION(4102) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}i(G),e.emitter.emit({type:"notification",cmdId:C,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function s(C){let E=Bt.create({sUserId:C.sToId,sMsgId:C.sMsgId});e.sendFrame(z({command:4105,body:Bt.encode(E)})),e.logger?.("read-deliver-ack",{sUserId:String(E.sUserId),sMsgId:E.sMsgId});}function d(C,E){let G=e.getSelfId(),_=[];for(let u of E){let I=e.domainState.getConversationMessage({conversationType:"direct",conversationId:C},ge(u.sMsgId));I!==void 0&&I.senderId===G&&I.receipt!=="read"&&_.push({...I,receipt:"read"});}_.length>0&&e.domainState.upsertMessages(_,"live");}function g(C,E){let G=Eo.decode(E);if(e.logger?.("read-deliver",{sMsgId:G.sMsgId,sFromId:String(G.sFromId),sToId:String(G.sToId),readResults:G.readResults.length,readReceiptOff:G.readReceiptOff}),G.sMsgId===""){e.emitter.emit({type:"error",error:{scope:"protocol",message:"MES_CHAT_READ_DELIVER(4106) body \u7F3A\u5C11 sMsgId\uFF0C\u8DF3\u8FC7 ACK"}});return}if(s(G),G.readReceiptOff!==1){let _=e.getSelfId(),u=G.sFromId.toString(),I=G.sToId.toString();d(u===_?I:u,G.readResults);}e.emitter.emit({type:"notification",cmdId:C,name:"MES_CHAT_READ_DELIVER"});}function p(C){let E=Ao.decode(C);e.logger?.("read-report-ack",{notifyId:E.sMsgId,sUserId:String(E.sUserId),errcode:E.errcode}),e.onReadAck?.({notifyId:E.sMsgId,errcode:E.errcode});}function f(C){let E=Ro.decode(C);e.logger?.("direct-sync-read-ack",{errcode:E.errcode}),e.onSyncReadAck?.({errcode:E.errcode});}function v(C,E){let G=Mo.decode(E),_=G.sUserId.toString(),u=G.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:_,peerId:u,msgIds:G.msgIdList.length}),e.onSyncReadDeliver?.({userId:_,peerId:u,msgIdList:G.msgIdList}),e.emitter.emit({type:"notification",cmdId:C,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(C,E)=>t(E)},{command:4100,handler:(C,E)=>o(C,E)},{command:4644,handler:(C,E)=>o(C,E,true)},{command:4102,handler:(C,E)=>a(C,E)},{command:4106,handler:(C,E)=>g(C,E)},{command:4104,handler:(C,E)=>p(E)},{command:4118,handler:(C,E)=>f(E)},{command:4119,handler:(C,E)=>v(C,E)}]}function xS(e){function n(t){let r=so.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=vt.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(z({command:4632,body:vt.encode(o)})),r.friendNotifyType===2&&e.getSelfId()===r.uerId.toString()){let i=r.friendId.toString();e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(a=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:a}});});}if(e.getSelfId()===r.uerId.toString()&&r.friendId>0n){let i=r.friendId.toString(),a=r.friendNotifyType===0,s=r.friendNotifyType===1&&r.blackStatus===2;(a||s)&&(e.onRelationshipChanged?.(i,a?"none":"blocked"),e.domainState.removeConversation({conversationType:"direct",conversationId:i}),Promise.resolve(e.resetDirectReadReceiptPreference?.(i)).catch(d=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"direct \u5DF2\u8BFB\u56DE\u6267\u504F\u597D\u91CD\u7F6E\u5931\u8D25",cause:{peerId:i,error:d}}});}),e.emitter.emit({type:"profile:updated",profileType:"user",id:i}));}e.emitter.emit({type:"notification",cmdId:4631,name:"MES_FRIEND_NOTIFY"});}return [{command:4631,handler:(t,r)=>n(r)}]}function BS(e){function n(i,a){let s=Xn.decode(a),d=e.getSelfId(),g=Tr(s,{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([g],"live");let p=Vt.create({sUserId:BigInt(d),sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(z({command:8707,body:Vt.encode(p)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_GRPNOTIFY_DELIVER"}),e.logger?.("grp-notify-deliver",{groupId:s.sGrpId.toString(),sMsgId:s.sMsgId,notifyType:s.notifyType});}function t(i,a){let s=Do.decode(a),d=Ot.create({sUserId:BigInt(e.getSelfId()),sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(z({command:8451,body:Ot.encode(d)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_JOINGRP_DELIVER"}),e.logger?.("grp-join-deliver",{sGrpId:s.sGrpId.toString(),sMsgId:s.sMsgId});}function r(i){let a=Go.decode(i),s=Kt.create({sFromId:BigInt(e.getSelfId()),sToId:a.sFromId,sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(z({command:8963,body:Kt.encode(s)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:a.sMsgId});}function o(i){let a=Uo.decode(i),s=Lt.create({sUserId:BigInt(e.getSelfId()),sMsgId:a.sMsgId});e.sendFrame(z({command:8965,body:Lt.encode(s)})),e.logger?.("grp-exchange-key-notify-noop-ack",{sMsgId:a.sMsgId});}return [{command:8708,handler:(i,a)=>n(i,a)},{command:8452,handler:(i,a)=>t(i,a)},{command:8964,handler:(i,a)=>r(a)},{command:8966,handler:(i,a)=>o(a)}]}function FS(e){let n=new Map;function t(E){let G=ho.decode(E),_={id:ge(G.sMsgId),serverTime:Number(G.sendtime),errcode:G.errcode};e.logger?.("grp-chat-ack",{id:_.id,errcode:_.errcode,serverTime:_.serverTime}),e.outbox.onChatAck(_);}function r(E){let G=Ft.create({sFromId:BigInt(e.getSelfId()),sGrpId:E.sGrpId,sMsgId:E.sMsgId});e.sendFrame(z({command:8195,body:Ft.encode(G)}));}function o(){return e.isActive?.()??true}function i(E,G,_,u,I=false){let S=E.sGrpId.toString(),T=Gn(E,ue.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:G,keepRaw:e.keepRaw,decryptFailed:true,edited:I});e.domainState.upsertMessages([T],"live"),E.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:S},messageId:T.id,wireEncrypt:1,sContent:E.sContent.slice(),...E.encryptVersion===""?{}:{encryptVersion:E.encryptVersion},cmdId:G,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:E.sMsgId,groupId:S,fromId:String(E.sFromId),msgType:E.msgType,cmdId:G,encrypt:E.encrypt,encryptVersion:E.encryptVersion,reason:_,...u===void 0?{}:{cause:u}}),e.emitter.emit({type:"error",error:{scope:"crypto",message:_==="no-key"?`\u6536\u5230\u7FA4\u5BC6\u6587\u6295\u9012(encrypt=${E.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u7FA4\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`:`\u5B9E\u65F6\u7FA4\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${E.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,...u===void 0?{}:{cause:u}}});}function a(E,G,_,u){let I=Gn(E,_,{selfId:e.getSelfId(),cmdId:G,keepRaw:e.keepRaw,edited:u});e.domainState.upsertMessages([I],"live"),r(E),e.logger?.("grp-chat-deliver",{sMsgId:E.sMsgId,sGrpId:String(E.sGrpId),sFromId:String(E.sFromId),encrypt:E.encrypt});}function s(E,G){let _=_e.decode(E.sContent);if(_.secretKey.length===0||_.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${_.secretKey.length}B cipherData=${_.cipherData.length}B`);let u=e.decrypt.crypto.decryptEndToEnd({secretKey:_.secretKey,cipherData:_.cipherData,privateKey:G});return ue.decode(u)}async function d(E,G,_){if(!o())return;if(E.encrypt===0){try{a(E,G,ue.decode(E.sContent),_);}catch(h){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u660E\u6587\u6295\u9012\u89E3\u6790\u6216\u63D0\u4EA4\u5931\u8D25",cause:h}});}return}if(E.encrypt!==1||e.decrypt===void 0){i(E,G,"no-key",void 0,_);return}let I={groupId:E.sGrpId.toString(),msgType:E.msgType,encrypt:E.encrypt,encryptVersion:E.encryptVersion},S;try{S=e.decrypt.resolvePrivateKey(I),S===null&&e.decrypt.preparePrivateKey!==void 0&&(S=await e.decrypt.preparePrivateKey(I));}catch(h){o()&&i(E,G,"no-key",h,_);return}if(!o())return;if(S===null){i(E,G,"no-key",void 0,_);return}let T;try{T=s(E,S);}catch(h){i(E,G,"decrypt-failed",h,_);return}if(o())try{a(E,G,T,_);}catch(h){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:h}});}}function g(E,G,_){let u=E.sGrpId.toString(),S=(n.get(u)??Promise.resolve()).then(()=>d(E,G,_));n.set(u,S),S.finally(()=>{n.get(u)===S&&n.delete(u);});}function p(E,G,_=false){let u=To.decode(G),I=u.sGrpId.toString();if(n.has(I)){g(u,E,_);return}if(u.encrypt===0){a(u,E,ue.decode(u.sContent),_);return}if(u.encrypt!==1||e.decrypt===void 0){i(u,E,"no-key",void 0,_);return}let S={groupId:I,msgType:u.msgType,encrypt:u.encrypt,encryptVersion:u.encryptVersion},T=e.decrypt.resolvePrivateKey(S);if(T===null){if(e.decrypt.preparePrivateKey!==void 0){g(u,E,_);return}i(u,E,"no-key",void 0,_);return}let h;try{h=s(u,T);}catch(P){i(u,E,"decrypt-failed",P,_);return}a(u,E,h,_);}function f(E){let G=_o.decode(E);e.logger?.("grp-sync-read-ack",{errcode:G.errcode});}function v(E,G){for(let _=G.length-1;_>=0;_-=1){let u=G[_];if(u===void 0||u==="")continue;let I=ge(u),S=e.domainState.getConversationMessage({conversationType:"group",conversationId:E},I);if(S!==void 0&&S.conversationId===E)return I}}function C(E,G){let _=No.decode(G),u=_.groupId.toString();if(_.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:u,sUserId:String(_.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:u,sUserId:String(_.sUserId),msgIds:_.msgIdList.length});let I=v(u,_.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:u},0,I),e.emitter.emit({type:"notification",cmdId:E,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(E,G)=>t(G)},{command:8196,handler:(E,G)=>p(E,G)},{command:8976,handler:(E,G)=>p(E,G,true)},{command:8968,handler:(E,G)=>f(G)},{command:8969,handler:(E,G)=>C(E,G)}]}function PS(e){function n(t){let r=ao.decode(t);if(r.userId<=0n)throw new Error("session favorite notify: user id \u7F3A\u5931\u6216\u975E\u6CD5");e.getSelfId()===r.userId.toString()&&e.emitter.emit({type:"session-favorites:changed"});}return [{command:4633,handler:(t,r)=>n(r)}]}function wS(e){function n(t){let r=co.decode(t),o=()=>e.sendFrame(z({command:4628,body:bt.encode(bt.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let i=oa.decode(r.sContent),a=i.serialNumber.trim();if(a==="")throw new Error("wallet notify: serialNumber \u7F3A\u5931");let s=Number(i.occurredTime);e.domainState.applyTransferStatusBySerialNumber(a,3,Number.isFinite(s)&&s>0?s:void 0).then(()=>{o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}).catch(d=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u6301\u4E45\u5316\u94B1\u5305\u8F6C\u8D26\u72B6\u6001\u5931\u8D25\uFF0C\u672A\u53D1\u9001 ACK",cause:d}});});return}o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}return [{command:4627,handler:(t,r)=>n(r)}]}function VS(e){return e.sticker!==void 0&&e.text===void 0&&e.system===void 0&&e.image===void 0&&e.video===void 0&&e.voice===void 0&&e.file===void 0&&e.contact===void 0&&e.miniProgram===void 0&&e.game===void 0&&e.transfer===void 0&&e.unknown===void 0}function OS(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&VS(n.body)&&n.encryption.encrypted===false,o=yt({id:n.id,conversationId:n.conversationId,body:n.body,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId,createdAt:n.createdAt});if(r)return Wg(o);let{crypto:i}=t,{resolveChannelKey:a}=e;return (async()=>{if(i===void 0||a===void 0)throw new Error("channel encrypt=2 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveChannelKey\uFF09");let s=await a(n.conversationId);if(s===null||s.length!==16)throw new Error(`channel encrypt=2 \u53D6\u9891\u9053 key \u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return Hg(o,i,s)})()}}}function ym(e,n){return vr({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function Md(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=ym(t,r);if(o.encrypt!==1)return Xg(o);let{crypto:i,resolveEncryptionKey:a}=r;if(i===void 0||a===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let s=await a(t.conversationId);if(s===null||s==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return qg(o,i,s)})()}};return e.includeOppositeEnd!==true?n:{...n,buildOutgoingFrames(t,r){let o=ym(t,r);if(o.encrypt!==1)return zg(o);let{crypto:i,resolveEncryptionKey:a}=r;if(i===void 0||a===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let s=await a(t.conversationId);if(s===null||s==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return jg(o,i,s)})()}}}function KS(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=fr({id:n.id,conversationId:n.conversationId,body:n.body,encryption:n.encryption,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId});if(r.encrypt!==1)return ou(r);let{crypto:o}=t,{resolveGroupKey:i}=e;if(o===void 0||i===void 0)throw new Error("group encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / \u7FA4\u5BC6\u94A5\u670D\u52A1 resolveGroupKey\uFF09");return (async()=>{let a=await i(n.conversationId);if(a===null||a.publicKey==="")throw new Error(`group encrypt=1 \u53D6\u7FA4\u516C\u94A5\u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return iu(r,o,a.publicKey,a.version)})()}}}function Im(e=[]){let n=new Map;function t(r){if(n.has(r.conversationType))throw new Error(`\u53D1\u9001\u7B56\u7565\u91CD\u590D\u6CE8\u518C\uFF1A${r.conversationType}`);n.set(r.conversationType,r);}for(let r of e)t(r);return {register:t,resolve:r=>n.get(r)}}function Ur(){return Im([Md()])}function Cm(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!Hr(n.transfer))throw new Error("sendTransfer: \u8F6C\u8D26\u6B63\u6587\u975E\u6CD5");let{id:t,createdAt:r}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:t,createdAt:r,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"transfer",body:{transfer:n.transfer},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var LS=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,ZS=/^[a-z0-9][a-z0-9._-]{0,63}$/,QS=new Set(["durable","rebuildable","ephemeral"]);function Am(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!LS.test(e))throw new Error("cache.prefix \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 3-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26\uFF0C\u4E14\u9996\u5C3E\u4E3A\u5B57\u6BCD\u6216\u6570\u5B57");return e}function Sm(e,n){if(!ZS.test(e))throw new Error(`cache namespace ${n} \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A 1-64 \u4F4D\u5C0F\u5199\u5B57\u6BCD\u3001\u6570\u5B57\u3001\u70B9\u3001\u4E0B\u5212\u7EBF\u6216\u8FDE\u5B57\u7B26`)}function WS(e){let n=Am(e);return {hostPrefix:n,forAccount(t){if(typeof t!="string"||t===""||t!==t.trim())throw new Error("cache namespace accountId \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684\u5B57\u7B26\u4E32");let r=encodeURIComponent(t);return {hostPrefix:n,accountScope:r,name(o,i,a){if(!QS.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return Sm(i,"domain"),Sm(a,"resource"),o==="durable"&&i==="storage"&&a==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${i}:${a}`}}}}}var Em={error:0,warn:1,info:2,debug:3,trace:4},HS=8,hd=50,Td=100,JS="[REDACTED]",YS="[REDACTED_PRIVATE_KEY]",XS="[SIGNED_URL_REDACTED]",zS=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,qS=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,jS=/(["'])(authorization|cookie|set[_-]?cookie|password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)\1(\s*:\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;}]+)/gi,$S=/\b(password|passwd|api[_-]?key|access[_-]?key|(?:access|refresh|device)?[_-]?token|secret(?:[_-]?key)?|private[_-]?key|session[_-]?key|tea[_-]?key|signature|credential)(\s*[:=]\s*)(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[^\s,;]+)/gi,eA=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function nA(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function tA(e){let n=nA(e);return n==="authorization"||n==="cookie"||n==="setcookie"||n==="password"||n==="passwd"||n.includes("apikey")||n.includes("accesskey")||n==="token"||n.endsWith("token")||n.includes("secret")||n.includes("privatekey")||n.includes("secretkey")||n.includes("sessionkey")||n.includes("teakey")||n.includes("signature")||n.includes("credential")}function rA(e){try{let n=new URL(e);return n.protocol!=="http:"&&n.protocol!=="https:"?!1:[...n.searchParams.keys()].some(t=>{let r=t.toLowerCase();return r==="signature"||r==="sig"||r==="token"||/^x-(?:amz|goog)-(?:signature|credential|security-token)$/.test(r)})}catch{return false}}function oA(e){return e.replace(zS,n=>rA(n)?XS:n)}function vd(e){return oA(e).replace(eA,YS).replace(qS,"$1$2[REDACTED]").replace(jS,"$1$2$1$3[REDACTED]").replace($S,"$1$2[REDACTED]")}function iA(e){if(e instanceof ArrayBuffer)return {type:"ArrayBuffer",byteLength:e.byteLength};if(ArrayBuffer.isView(e))return {type:e.constructor.name,byteLength:e.byteLength};if(typeof Blob<"u"&&e instanceof Blob){let n={type:e.constructor.name,byteLength:e.size,mimeType:e.type};return typeof File<"u"&&e instanceof File&&(n.name=e.name,n.lastModified=e.lastModified),n}}function bd(e){let n=new WeakSet;function t(r,o,i){if(i!==void 0&&tA(i))return JS;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return vd(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=HS)return "[MAX_DEPTH]";let a=iA(r);if(a!==void 0)return a;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let g=r;return {name:g.name,message:vd(g.message),...g.code===void 0?{}:{code:g.code},...g.category===void 0?{}:{category:g.category},...g.retryable===void 0?{}:{retryable:g.retryable},...g.stack===void 0?{}:{stack:vd(g.stack)},...g.data===void 0?{}:{data:t(g.data,o+1,"data")}}}if(typeof r!="object")return String(r);if(n.has(r))return "[CIRCULAR]";if(n.add(r),Array.isArray(r)){let g=r.slice(0,hd).map(p=>t(p,o+1));return r.length>hd&&g.push({omittedItems:r.length-hd}),g}let s=Object.entries(r),d={};for(let[g,p]of s.slice(0,Td))d[g]=t(p,o+1,g);return s.length>Td&&(d.omittedKeys=s.length-Td),d}return t(e,0)}function sA(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,i=false;function a(d,g){return e.enabled&&o!==void 0&&Em[d]<=Em[e.level]&&n.has(g)}function s(d){if(i||e.fallbackSink===void 0)return;i=true;let g={message:"diagnostic-sink-failed"};try{g={message:"diagnostic-sink-failed",data:bd(d)};}catch{}try{e.fallbackSink.write(Object.freeze({timestamp:t(),sequence:++r,level:"error",layer:"sdk",category:"session",event:"diagnostic-sink-failed",error:g}));}catch{}}return {isEnabled:a,record(d,g,p,f,v){if(!a(d,p))return;let C;try{C={...e.getRuntimeContext?.(),...v?.()};}catch(u){C={error:{message:"diagnostic-payload-factory-failed",data:u}};}let E;try{E=t();}catch{E=Date.now();}let G=++r,_;try{_=bd({timestamp:E,sequence:G,level:d,layer:g,category:p,event:f,...C});}catch{_={timestamp:E,sequence:G,level:d,layer:g,category:p,event:f,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(_));}catch(u){o=void 0,s(u);}}}}function aA(e){return (n,t)=>{let r=n.includes("crypto")?"crypto":n.includes("sync")?"sync":n.includes("read")?"message":n.includes("outbox")?"outbox":n.includes("chat")||n.includes("message")||n.includes("deliver")?"message":"protocol";e.record("trace","core",r,n,()=>({data:t}));}}function dA(){let e=new Set;function n(t){for(let r of [...e])try{r(t);}catch(o){t.type!=="error"&&n({type:"error",error:{scope:"unknown",message:"\u4E8B\u4EF6\u8BA2\u9605\u8005\u56DE\u8C03\u5F02\u5E38",cause:o}});}}return {emit:n,subscribe(t){return e.add(t),()=>{e.delete(t);}},clear(){e.clear();}}}function cA(e){return e===32768||e===0}function lA(e,n){if(cA(e))return {type:"success"};switch(e){case 33025:return {type:"auth-invalid",issue:{code:e,reason:"token_expired"}};case 33040:return {type:"auth-invalid",issue:{code:e,reason:"kicked",...n===void 0||n<=0?{}:{lastLoginTime:n}}};case 33026:case 33043:return {type:"auth-invalid",issue:{code:e,reason:"banned"}};default:return {type:"retry",error:{scope:"login",code:e,message:`\u672A\u77E5\u767B\u5F55\u9519\u8BEF\u7801\uFF1A${e}`}}}}function gA(e){return e===""?"(empty)":`...${e.slice(-6)}(len=${e.length})`}function uA(e){let n=Mt.create({sUserId:BigInt(e.userId),sLoginToken:e.token,sDeviceToken:e.deviceToken,clientType:e.clientType,channelType:e.channelType,sPushToken:e.pushToken??"",sVersionCode:e.versionCode??""});return z({command:257,body:Mt.encode(n)})}function Rm(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function i(s,d){if(o===void 0||o.generation!==s)return;clearTimeout(o.timer);let{resolve:g}=o;o=void 0,g(d);}function a(){if(o===void 0)return;clearTimeout(o.timer);let{resolve:s}=o;o=void 0,s({type:"canceled"});}return {async login(){let s=++r;a();let d;try{d=await e.authProvider.getLoginContext();}catch(p){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:p}}}if(s!==r)return {type:"canceled"};if(d===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let g;try{g=uA(d);}catch(p){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:p}}}return new Promise(p=>{let f=setTimeout(()=>{i(s,{type:"retry",error:{scope:"login",message:`\u767B\u5F55\u8D85\u65F6\uFF08${t}ms \u672A\u6536\u5230 CMLoginAck\uFF09`}});},t);o={generation:s,resolve:p,timer:f,selfId:d.userId},e.logger?.("connection:login-frame-sent",{userId:d.userId,deviceToken:gA(d.deviceToken),clientType:d.clientType,channelType:d.channelType,tokenLength:d.token.length,generation:s}),e.sendFrame(g);})},onLoginAck(s){if(o===void 0)return;let{generation:d,selfId:g}=o,p;try{let f=$r.decode(s),v=Number(f.nErr);e.logger?.("connection:login-ack-received",{ackUserId:String(f.sUserId),requestUserId:g,errCode:`0x${v.toString(16)}`,isKickedOut:v===33040,lastLoginTime:String(f.nLastLoginTime)}),p=lA(v,Number(f.nLastLoginTime)),p.type==="success"&&(p={type:"success",selfId:g});}catch(f){p={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:f}};}i(d,p);},cancel(){r+=1,a();},get awaitingAck(){return o!==void 0}}}var Mm=4294967295,mA=2,pA=2.2,fA=2880;function yA(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function hm(e,n){if(!Number.isSafeInteger(e)||e<=0||e>Mm)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${Mm} \u7684\u6574\u6570`);return e}function IA(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>pA&&t>fA?mA:0}function _d(e,n){if(e===void 0)throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);let t=e.trim();if(t==="")throw new Error(`sendExpression: ${n} \u4E0D\u80FD\u4E3A\u7A7A`);return t}function CA(e,n){return e===void 0?void 0:_d(e,n)}function SA(e){let n=e.trim(),t;try{t=new URL(n);}catch{throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u6709\u6548\u7684 http(s) URL")}if(t.protocol!=="https:"&&t.protocol!=="http:"||t.username!==""||t.password!=="")throw new Error("sendExpression: asset.url \u5FC5\u987B\u662F\u65E0\u51ED\u636E\u7684 http(s) URL");return t.href}function AA(e){let n=e.kind;if(n!=="sticker"&&n!=="gif")throw new Error(`sendExpression: \u4E0D\u652F\u6301\u7684 asset.kind\uFF08${String(n)}\uFF09`);if(e.kind==="gif"&&Object.prototype.hasOwnProperty.call(e,"packageId"))throw new Error("sendExpression: GIF \u4E0D\u5141\u8BB8\u63D0\u4F9B asset.packageId");let t=hm(e.width,"asset.width"),r=hm(e.height,"asset.height"),o=e.description?.trim(),i=e.kind==="sticker"?_d(e.resourceId,"asset.resourceId"):CA(e.resourceId,"asset.resourceId"),a=e.kind==="sticker"?_d(e.packageId,"asset.packageId"):void 0;return {sticker:{url:SA(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:IA(t,r),...i===void 0?{}:{contentId:i},...a===void 0?{}:{packageName:a},...e.size===void 0?{}:{size:yA(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function Tm(e,n){let t=AA(n.asset),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"sticker",body:t,encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}function EA(){let e=globalThis.crypto;if(e===void 0||typeof e.getRandomValues!="function")throw new Error("sendGame: \u5F53\u524D runtime \u672A\u63D0\u4F9B crypto.getRandomValues\uFF0C\u5FC5\u987B\u6CE8\u5165 randomUint32");return e.getRandomValues(new Uint32Array(1))[0]}function vm(e,n=EA){if(!Number.isSafeInteger(e)||e<=0||e>4294967296)throw new Error("sendGame: maxExclusive \u975E\u6CD5");let t=Math.floor(4294967296/e)*e;for(let r=0;r<128;r+=1){let o=n();if(!Number.isSafeInteger(o)||o<0||o>=4294967296)throw new Error("sendGame: randomUint32 \u5FC5\u987B\u8FD4\u56DE uint32");if(o<t)return o%e}throw new Error("sendGame: \u968F\u673A\u6E90\u8FDE\u7EED\u843D\u5165\u62D2\u7EDD\u533A\u95F4")}function RA(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:vm(3,n)+1};if(e==="dice")return {gameType:e,value:vm(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function bm(e,n){let t=RA(n.gameType,e.randomUint32),{id:r,createdAt:o}=e.outbox.allocateMessageIdentity(n);return e.outbox.enqueueMedia({id:r,createdAt:o,conversationId:n.conversationId,conversationType:n.conversationType,contentType:"game",body:{game:t},encryption:{encrypted:true},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var _m=new Set([32768,0]),Dd=new Set([33281,33299]),Gd=33298,MA=new Set([...Dd,Gd]),zi=-2,hA=-1,qi=-3,Nd=-4;function we(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>we(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=we(r);return n}return e}function hn(e){return we(e)}function kr(e){return we(e)}function Ud(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),i=e.sendStrategies??Ur(),a=new Map,s=new Map,d=new Map,g=new Set,p=new Set,f=new Set,v=new Set,C=new Set,E=new Set,G=new Map;function _(y){return ie(y)}function u(y,U){return y.createdAt!==U.createdAt?y.createdAt-U.createdAt:y.id<U.id?-1:y.id>U.id?1:0}function I(y){let U=_(y),Z=s.get(U);if(Z!==void 0)return Z;let M=0;for(let A of e.domainState.getMessagesByConversation({conversationType:y.conversationType,conversationId:y.conversationId}))M=Math.max(M,A.createdAt);for(let A of a.values())_(A)===U&&(M=Math.max(M,A.createdAt));return s.set(U,M),M}function S(y,U){let Z=_(y),M=s.get(Z)??I(y);U>M&&s.set(Z,U);}function T(y){let U=I(y),Z=Math.max(o(),U+1);return s.set(_(y),Z),{id:en(),createdAt:Z}}function h(y,U){e.onUpdated?.({messageId:y.id,conversation:{conversationType:y.conversationType,conversationId:y.conversationId},state:U,...y.lastError===void 0?{}:{failure:{reason:y.lastError.reason,retryable:y.lastError.retryable}}});}function P(y){e.storage!==void 0&&e.storage.saveOutboxMessage(hn(y)).catch(U=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",U));}function L(y){e.storage!==void 0&&e.storage.removeOutboxMessage(y).catch(U=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",U));}function Y(y){let U=d.get(y);U!==void 0&&(clearTimeout(U),d.delete(y));}function K(y,U,Z){let M=Z?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,A=e.domainState.getMessage(y);if(A!==void 0){e.domainState.upsertMessages([{...A,...U}],"live",M);return}let D=a.get(y);if(D===void 0)return;let N={id:D.id,conversationId:D.conversationId,conversationType:D.conversationType,senderId:e.getSelfId(),contentType:D.contentType,body:kr(D.body),createdAt:D.createdAt,sortKey:Ce(D.createdAt,D.id),status:D.status,receipt:"unread",encryption:we(D.encryption),failure:D.lastError===void 0?void 0:we(D.lastError),...D.mention!==void 0?{mention:we(D.mention)}:{},...D.refMessageId!==void 0?{refMessageId:D.refMessageId}:{}};e.domainState.upsertMessages([{...N,...U}],"live",M);}function ee(y){if(!MA.has(y.errcode))return;let U=e.domainState.getMessage(y.id);if(U===void 0||U.conversationType!=="direct"||U.senderId!==e.getSelfId())return;let Z=Dd.has(y.errcode),M=y.errcode===Gd,A=y.failure??wi(y.errcode);Z?A={...A,displayCode:"contactRequired",retryable:false}:M&&(A={...A,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...U,status:"failed",failure:A}],"live",{authoritativeOutboxFailure:true}),Z?e.domainState.appendDirectContactRequiredNotice(U.conversationId,U.id):M&&e.domainState.appendDirectMessageRefusedNotice(U.conversationId,U.id);}function ne(y,U){Y(y);let Z=a.get(y);Z!==void 0&&(Z.status="failed",Z.lastError=U,K(y,{status:"failed",failure:U}),P(Z),h(Z,"failed"),me(y));}async function H(y){if(!g.has(y.id)){if(p.has(_(y))){ne(y.id,{code:Nd,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:false});return}g.add(y.id);try{let U=i.resolve(y.conversationType);if(U===void 0){ne(y.id,{code:qi,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:dt(y.conversationType,"outbox.dispatch"),retryable:!1});return}let Z;try{let M={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},A=U.buildOutgoingFrames===void 0?U.buildOutgoingFrame(y,M):U.buildOutgoingFrames(y,M);if(A instanceof Uint8Array)Z=[A];else if(Array.isArray(A))Z=A;else {let D=await A;Z=D instanceof Uint8Array?[D]:D;}if(Z.length===0||Z.some(D=>!(D instanceof Uint8Array)))throw new Error(`\u53D1\u9001\u7B56\u7565\u8FD4\u56DE\u4E86\u975E\u6CD5\u5E27\u5E8F\u5217\uFF08conversationType=${y.conversationType}\uFF09`)}catch{y.attempts+=1,ne(y.id,{code:zi,reason:"unknown"});return}if(p.has(_(y))){ne(y.id,{code:Nd,reason:"unknown",displayCode:"unknown",message:"\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF0C\u6D88\u606F\u4E0D\u4F1A\u7EE7\u7EED\u53D1\u9001",retryable:!1});return}if(!e.isAuthenticated()){y.status="pending",K(y.id,{status:"pending"}),P(y),h(y,"queued");return}y.status="sending",y.attempts+=1,K(y.id,{status:"sending"}),P(y),h(y,"sending");for(let M of Z)e.sendFrame(M);Y(y.id),d.set(y.id,setTimeout(()=>ne(y.id,{code:hA,reason:"timeout"}),t));}finally{g.delete(y.id);}}}function me(y){let U=G.get(y);U!==void 0&&(G.delete(y),U());}function pe(y){let U=a.get(y);return U===void 0||U.status!=="sending"?Promise.resolve():new Promise(Z=>G.set(y,Z))}function Ie(y){return (y.status==="pending"||y.status==="failed")&&!(y.status==="failed"&&y.lastError?.retryable===false)&&y.resumePolicy!=="manual"&&(y.attempts<r||C.has(y.id))&&i.resolve(y.conversationType)!==void 0}function Te(y,U){let Z;for(let M of a.values())U.has(M.id)||_(M)!==y||!Ie(M)||(Z===void 0||u(M,Z)<0)&&(Z=M);return Z}function x(y,U=false){let Z=_(y);if(U&&E.add(Z),f.has(Z)){v.add(Z);return}O(Z);}function w(){let y=new Set;for(let U of a.values())Ie(U)&&y.add(_(U));for(let U of y)Q(U,true);}async function O(y){f.add(y);try{do{v.delete(y);let U=new Set;for(;e.isAuthenticated();){let Z=Te(y,U);if(Z===void 0)break;U.add(Z.id),C.delete(Z.id),await H(Z),E.has(y)&&await pe(Z.id);}}while(v.has(y)&&e.isAuthenticated())}finally{f.delete(y),E.delete(y);}}function Q(y,U=false){if(U&&E.add(y),f.has(y)){v.add(y);return}O(y);}function te(y){let U={code:zi,reason:"unknown",displayCode:"sendCanceled",retryable:false};y.lastError=U,K(y.id,{status:"failed",failure:U}),C.delete(y.id),a.delete(y.id),L(y.id),h(y,"canceled"),me(y.id);}return {allocateMessageIdentity:T,enqueueText(y){let{id:U,createdAt:Z}=T(y),M={encrypted:y.encrypted??false},A=i.resolve(y.conversationType)!==void 0,D=A&&e.isAuthenticated(),N={id:U,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:y.text},createdAt:Z,sortKey:Ce(Z,U),status:"pending",receipt:"unread",encryption:we(M),...y.mention!==void 0?{mention:we(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}},V={id:U,conversationId:y.conversationId,conversationType:y.conversationType,contentType:"text",body:{text:y.text},encryption:we(M),status:"pending",attempts:0,createdAt:Z,...y.mention!==void 0?{mention:we(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}};return a.set(U,V),P(V),h(V,"queued"),e.domainState.upsertMessages([N],"live"),A?(D&&x(V),hn(V)):(ne(U,{code:qi,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:dt(y.conversationType,"outbox.enqueueText"),retryable:false}),hn(V))},enqueueContact(y){let U=y.contact.targetId.trim(),Z=y.contact.displayName.trim();if(U==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(Z==="")throw new Error("outbox.enqueueContact: displayName \u4E0D\u80FD\u4E3A\u7A7A");if(y.contact.kind!=="individual"&&y.contact.kind!=="group"&&y.contact.kind!=="channel")throw new Error(`outbox.enqueueContact: \u4E0D\u652F\u6301\u53D1\u9001 ${String(y.contact.kind)} \u540D\u7247`);let{id:M,createdAt:A}=T(y),D={encrypted:y.encrypted??false},N=i.resolve(y.conversationType)!==void 0,V=N&&e.isAuthenticated(),W={contact:{...y.contact,targetId:U,displayName:Z}},se={id:M,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:"contact",body:kr(W),createdAt:A,sortKey:Ce(A,M),status:"pending",receipt:"unread",encryption:we(D),...y.refMessageId===void 0?{}:{refMessageId:y.refMessageId}},de={id:M,conversationId:y.conversationId,conversationType:y.conversationType,contentType:"contact",body:kr(W),encryption:we(D),status:"pending",attempts:0,createdAt:A,...y.refMessageId===void 0?{}:{refMessageId:y.refMessageId}};return a.set(M,de),P(de),h(de,"queued"),e.domainState.upsertMessages([se],"live"),N?(V&&x(de),hn(de)):(ne(M,{code:qi,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:dt(y.conversationType,"outbox.enqueueContact"),retryable:false}),hn(de))},enqueueMedia(y){let{id:U,createdAt:Z}=y,M=kr(y.body);Ds(y.contentType,M,"outbox.enqueueMedia"),S(y,Z);let A=i.resolve(y.conversationType)!==void 0,D=A&&e.isAuthenticated(),N={id:U,conversationId:y.conversationId,conversationType:y.conversationType,senderId:e.getSelfId(),contentType:y.contentType,body:kr(M),createdAt:Z,sortKey:Ce(Z,U),status:"pending",receipt:"unread",encryption:we(y.encryption),...y.mention!==void 0?{mention:we(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}},V={id:U,conversationId:y.conversationId,conversationType:y.conversationType,contentType:y.contentType,body:M,encryption:we(y.encryption),status:"pending",attempts:0,createdAt:Z,...y.mention!==void 0?{mention:we(y.mention)}:{},...y.refMessageId!==void 0?{refMessageId:y.refMessageId}:{}};return a.set(U,V),P(V),h(V,"queued"),e.domainState.upsertMessages([N],"live"),A?(D&&x(V),hn(V)):(ne(U,{code:qi,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:y.conversationType},message:dt(y.conversationType,"outbox.enqueueMedia"),retryable:false}),x(V,true),hn(V))},onChatAck(y){Y(y.id);let U=a.get(y.id);if(U===void 0){_m.has(y.errcode)||ee(y);return}if(_m.has(y.errcode))a.delete(y.id),L(y.id),K(y.id,{status:"sent",serverTime:y.serverTime>0?y.serverTime:void 0,...y.extensions===void 0?{}:{extensions:{...e.domainState.getMessage(y.id)?.extensions,...y.extensions}}}),h(U,"sent"),me(y.id);else {U.status="failed",U.lastError=y.failure??wi(y.errcode);let Z=U.conversationType==="direct"&&Dd.has(y.errcode),M=U.conversationType==="direct"&&y.errcode===Gd;Z?U.lastError={...U.lastError,displayCode:"contactRequired",retryable:false}:M&&(U.lastError={...U.lastError,displayCode:"messageRefused",retryable:false}),K(y.id,{status:"failed",failure:U.lastError},{authoritativeFailure:true}),Z?e.domainState.appendDirectContactRequiredNotice(U.conversationId,U.id):M&&e.domainState.appendDirectMessageRefusedNotice(U.conversationId,U.id),P(U),h(U,"failed"),me(y.id);}},onAuthenticated(){w();},retry(y){let U=a.get(y);return U===void 0?{accepted:false,reason:"not-found"}:U.status==="sending"||g.has(y)?{accepted:false,reason:"in-flight"}:U.status==="failed"&&U.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:U.status!=="failed"&&!(U.status==="pending"&&U.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(U.resumePolicy==="manual"&&(U.resumePolicy="automatic",P(U)),C.add(U.id),x(U),{accepted:true})},cancel(y){let U=a.get(y);return U===void 0?{accepted:false,reason:"not-found"}:U.status==="sending"||g.has(y)?{accepted:false,reason:"in-flight"}:U.status!=="pending"?{accepted:false,reason:"invalid-state"}:U.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(te(U),{accepted:true})},markConversationTerminated(y,U){let Z=_(y);p.add(Z);for(let M of [...a.values()])if(_(M)===Z){if(M.status==="pending"&&M.attempts===0&&!g.has(M.id)){te(M);continue}ne(M.id,{code:Nd,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${U}`,retryable:false});}},clearConversationTerminated(y){let U=_(y);p.delete(U),Q(U);},markForLogout(y){for(let U of a.values())if(!(U.status!=="pending"&&U.status!=="sending"&&U.status!=="failed")){if(Y(U.id),U.resumePolicy="manual",y.policy==="fail"){let Z={code:zi,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};U.status="failed",U.lastError=Z,K(U.id,{status:"failed",failure:Z}),h(U,"failed");}P(U),me(U.id);}},getPending(){return [...a.values()].map(hn)},reset(){for(let y of [...d.keys()])Y(y);for(let y of a.values())y.status==="sending"&&(y.status="pending",K(y.id,{status:"pending"}),P(y),h(y,"queued"),me(y.id));},async hydrate(){if(e.storage!==void 0)try{let y=await e.storage.getOutbox();for(let U of y){let Z=hn(U);if(Z.status==="sent"){L(Z.id);continue}try{Ds(Z.contentType,Z.body,`outbox.hydrate(${Z.id})`);}catch(D){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${Z.id}\uFF09`,D),L(Z.id),e.domainState.getMessage(Z.id)!==void 0){let N={code:zi,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};K(Z.id,{status:"failed",failure:N},{authoritativeFailure:!0});}continue}let M=Z.status==="sending"?"pending":Z.status,A={...Z,status:M};a.set(Z.id,A),S(A,A.createdAt),h(A,M==="pending"?"queued":M),e.domainState.getMessage(Z.id)!==void 0&&K(Z.id,{status:M,failure:Z.lastError===void 0?void 0:we(Z.lastError)});}}catch(y){e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",y);}}}}function Nm(e){function n(o,i){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:i}});}let t=Ed(),r={domainState:e.domainState,outbox:e.outbox,onReadAck:e.onReadAck,onSyncReadAck:e.onSyncReadAck,onSyncReadDeliver:e.onSyncReadDeliver,sendFrame:e.sendFrame,getSelfId:e.getSelfId,emitter:e.emitter,logger:e.logger,keepRaw:e.keepRaw,decrypt:e.decrypt};for(let{command:o,handler:i}of Rd(r))t.register(o,i);t.register(108,o=>e.emitter.emit({type:"notification",cmdId:o,name:"CM_DEVICE_ONLINE_STATUS_NOTIFY"}));for(let o of e.commandHandlers??[])t.register(o.command,o.handler);return {route(o,i,a){let s=t.resolve(o);if(s===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:i.byteLength}),false;try{return s(o,i,a),!0}catch(d){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,d),false}}}}var TA=new Set([32768,0]);function kd(e,n={}){let t=n.readReportDebounceMs??400,r=n.readAckTimeoutMs??3e4,o=n.readMaxAttempts??2,i=Math.max(1,n.readReportMaxBatch??200),a=new Map,s=new Map,d=new Map,g=new Set,p=new Map;function f(S){return S!==e.getSelfId()}function v(S){let T=S.body.system?.eventType;return S.contentType==="voice"||S.contentType==="video"?false:!(S.conversationType==="direct"&&(T==="direct_contact_established"||T==="direct_contact_required"||T==="direct_message_refused"))}function C(S,T){if(T!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:S},T)?.sortKey}function E(S,T){let h=C(S,d.get(S)??""),P=new Set;for(let L of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:S}))v(L)&&f(L.senderId)&&tn(L.id)&&L.sortKey<=T&&(h===void 0||L.sortKey>h)&&P.add(L.id);for(let L of p.get(S)??[]){let Y=e.domainState.getConversationMessage({conversationType:"direct",conversationId:S},L);Y!==void 0&&f(Y.senderId)&&tn(Y.id)&&(Y.contentType==="voice"||Y.contentType==="video")&&P.add(Y.id);}return [...P].sort((L,Y)=>{let K=C(S,L)??"",ee=C(S,Y)??"";return K<ee?-1:K>ee?1:0})}function G(S){let T=s.get(S);T!==void 0&&(clearTimeout(T.timer),s.delete(S));}function _(S){let T=a.get(S);T!==void 0&&(clearTimeout(T),a.delete(S)),G(S),p.delete(S);let h=e.domainState.getReadState(S)?.readCursor??"";h!==""&&d.set(S,h);}function u(S,T){let h=s.get(S);if(h!==void 0){if(clearTimeout(h.timer),h.attempts<o&&e.isAuthenticated()){h.attempts+=1,e.sendFrame(h.frame),h.timer=setTimeout(()=>u(S,"timeout"),r);return}s.delete(S),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${T}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}}function I(S){let T=e.domainState.getReadState(S)?.readCursor??"";if(T==="")return;let h=e.domainState.getConversationMessage({conversationType:"direct",conversationId:S},T);if(h===void 0||s.has(S))return;let P=E(S,h.sortKey);if(P.length===0){d.set(S,T);return}if(!e.isAuthenticated())return;let L=e.canSendReadReceipt?.(S);if(L===false){d.set(S,T);return}if(L===void 0&&e.canSendReadReceipt!==void 0)return;let Y=P.slice(0,i),K=p.get(S),ee=Y.filter(Ie=>K?.has(Ie)===true),H=P.length<=i?T:Y[Y.length-1],me=en(),pe;try{pe=z({command:4103,body:xt.encode(xt.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(S),sMsgId:me,readResults:Y.map(Ie=>({sMsgId:Ae(Ie),errcode:0})),readReceiptOff:0}))});}catch(Ie){e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5DF2\u8BFB\u4E0A\u62A5\u7EC4\u5E27\u5931\u8D25\uFF08\u975E\u6CD5 id\uFF09",cause:Ie}});return}e.sendFrame(pe),e.logger?.("read-report",{conversationId:S,notifyId:me,count:Y.length,remaining:P.length-Y.length}),s.set(S,{conversationId:S,cursor:H,notifyId:me,frame:pe,explicitMediaIds:ee,attempts:1,timer:setTimeout(()=>u(S,"timeout"),r)});}return {report(S){g.add(S);let T=a.get(S);if(T!==void 0&&clearTimeout(T),e.canSendReadReceipt?.(S)===false){_(S);return}a.set(S,setTimeout(()=>{a.delete(S),I(S);},t));},reportConsumedMedia(S,T){let h=e.domainState.getConversationMessage({conversationType:"direct",conversationId:S},T);if(h===void 0||!f(h.senderId)||h.contentType!=="voice"&&h.contentType!=="video"||(g.add(S),e.canSendReadReceipt?.(S)===false))return;let P=p.get(S);P===void 0&&(P=new Set,p.set(S,P)),P.add(T),e.isAuthenticated()&&I(S);},onReadAck({notifyId:S,errcode:T}){let h;for(let P of s.values())if(P.notifyId===S){h=P;break}if(h!==void 0)if(e.logger?.("read-report-ack",{conversationId:h.conversationId,notifyId:S,errcode:T}),TA.has(T)){clearTimeout(h.timer),s.delete(h.conversationId),d.set(h.conversationId,h.cursor);let P=p.get(h.conversationId);for(let L of h.explicitMediaIds)P?.delete(L);P?.size===0&&p.delete(h.conversationId),I(h.conversationId);}else u(h.conversationId,"rejected");},onAuthenticated(){for(let S of g)I(S);},suppress(S){if(S!==void 0){_(S);return}let T=new Set([...g,...a.keys(),...s.keys()]);for(let h of T)_(h);},resume(S){if(!g.has(S))return;let T=a.get(S);T!==void 0&&clearTimeout(T),a.set(S,setTimeout(()=>{a.delete(S),I(S);},t));},reset(){for(let S of a.values())clearTimeout(S);a.clear();for(let S of [...s.keys()])G(S);}}}function Dm(e,n){let t=Math.min(n.maxDelayMs,n.baseDelayMs*2**e);return n.jitter?Math.round(t/2+Math.random()*(t/2)):t}function Gm(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,i,a,s=false,d=0;function g(){a!==void 0&&(clearTimeout(a),a=void 0);}function p(){i!==void 0&&(clearInterval(i),i=void 0),g(),s=false,d=0;}function f(){if(d>=r){p(),e.onUnhealthy();return}e.sendPing(),d+=1;}return {start(){i===void 0&&(d=0,i=setInterval(f,t));},stop:p,onAck(){g(),s=false,d=0;},probe(){i!==void 0&&(s||(s=true,e.sendPing(),d=1,clearInterval(i),i=setInterval(f,t),o!==void 0&&(a=setTimeout(()=>{a=void 0,p(),e.onUnhealthy();},o))));},get running(){return i!==void 0},get missedCount(){return d}}}function vA(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function bA(e,n){if(e.length===0)return n;let t=new Uint8Array(e.length+n.length);return t.set(e,0),t.set(n,e.length),t}function _A(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function NA(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:i}=e,a=n.heartbeatIntervalMs??1e4,s=n.heartbeatMaxMissed??3,d=n.foregroundProbeTimeoutMs??5e3,g=n.loginTimeoutMs??n.readTimeoutMs??3e4,p={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},f="idle",v=0,C,E=false,G=new Uint8Array(0),_=false,u=0,I="";function S(b){f!==b&&(e.logger?.("connection:state-transition",{from:f,to:b,selfId:I}),f=b,i.emit({type:"connection:changed",state:b}));}function T(b){i.emit({type:"error",error:b});}function h(b){t.send(vA(b)).catch($=>{T({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:$});});}let P=Gm({sendPing:()=>h(z({command:1})),onUnhealthy:()=>{e.logger?.("connection:heartbeat-unhealthy",{stateBefore:f,selfId:I}),T({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),D();}},{intervalMs:a,maxMissed:s,probeTimeoutMs:d}),L=Rm({authProvider:r,sendFrame:h,logger:e.logger},{timeoutMs:g}),Y=e.sendStrategies??Ur(),K=e.domainState?Ud({domainState:e.domainState,sendFrame:h,getSelfId:()=>I,isAuthenticated:()=>f==="authenticated",sendStrategies:Y,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(b,$)=>T({scope:"storage",message:b,cause:$}),onUpdated:b=>e.emitter.emit({type:"outbox:updated",conversation:b.conversation,item:b})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,ee=e.domainState?kd({domainState:e.domainState,sendFrame:h,getSelfId:()=>I,isAuthenticated:()=>f==="authenticated",emitter:i,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,ne=e.domainState?pd({domainState:e.domainState,sendFrame:h,getSelfId:()=>I,isAuthenticated:()=>f==="authenticated",emitter:i,logger:e.logger}):void 0,H=e.domainState?Cd({domainState:e.domainState,sendFrame:h,getSelfId:()=>I,isAuthenticated:()=>f==="authenticated",strategies:e.recallStrategies}):void 0,me=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?yd({domainState:e.domainState,sendFrame:h,getSelfId:()=>I,isAuthenticated:()=>f==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,pe=e.domainState!==void 0&&H!==void 0?Sd({domainState:e.domainState,sendFrame:h,getSelfId:()=>I,onRecallAck:H.onRecallAck,onChannelMessageDeletionAck:b=>me?.onDeleteAck(b),logger:e.logger}):[],Ie=e.domainState?Ya({getSelfId:()=>I,sendFrame:h,isAuthenticated:()=>f==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,Te=e.domainState!==void 0&&Ie!==void 0?rd({onEditAck:Ie.onEditAck}):[],x=e.domainState!==void 0&&K!==void 0&&e.media!==void 0?md({getSelfId:()=>I,domainState:e.domainState,outbox:K,mediaTransfer:e.media.transfer,mediaPreview:e.media.preview,mediaAssetCache:e.media.assetCache,onMediaAssetCacheError:e.media.onAssetCacheError,onMediaTransferError:e.media.onTransferError,onMediaAlbumContentSize:e.media.onAlbumContentSize,emitter:i,crypto:e.encryptSend?.crypto,maxConcurrentUploads:e.media.maxConcurrentUploads}):void 0;function w(b,$){return x===void 0?Promise.reject(new Error(`${b} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):I===""?Promise.reject(new Error(`${b} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):$(x)}function O(b,$,fe,le){let Pe=e.domainState?.getConversationMessage({conversationId:fe.conversationId,conversationType:fe.conversationType},$);if(Pe===void 0||Pe.conversationId!==fe.conversationId||Pe.conversationType!==fe.conversationType||Pe.contentType!==le||Pe.status!=="failed"||Pe.failure?.displayCode!=="media.uploadInterrupted")throw new Error(`${b} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u5237\u65B0\u540E\u4E0A\u4F20\u4E2D\u65AD\u7684${le==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return Pe}let Q=e.domainState&&K?Nm({domainState:e.domainState,outbox:K,onReadAck:ee?.onReadAck,onSyncReadAck:ne?.onAck,onSyncReadDeliver:ne?.onDeliver,sendFrame:h,getSelfId:()=>I,emitter:i,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...pe,...Te]}):void 0;function te(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function y(){C!==void 0&&(clearTimeout(C),C=void 0);}function U(b){return b!==null&&b.userId.trim()!==""&&b.token.trim()!==""}async function Z(){try{return U(await r.getLoginContext())?"available":"missing"}catch(b){return T({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:b}),"unavailable"}}function M(b,$){T({scope:"transport",message:b,cause:$}),P.stop(),S("disconnected");}function A(){if(C!==void 0)return;let b=Dm(v,p);v+=1,C=setTimeout(()=>{C=void 0,ve();},b);}function D(){if(f==="reconnecting"||f==="suspended")return;let b=++u;P.stop(),L.cancel(),K?.reset(),ee?.reset(),H?.reset(),me?.reset(),Ie?.reset(),S("reconnecting"),te(),Z().then($=>{if(!(f!=="reconnecting"||b!==u)){if($==="missing"){W({code:0,reason:"token_expired"});return}A();}});}function N(){f==="idle"||f==="disconnected"||f==="disconnecting"||f==="suspended"||(y(),u+=1,P.stop(),L.cancel(),x?.cancelAll("offline"),K?.reset(),ee?.reset(),H?.reset(),me?.reset(),Ie?.reset(),S("suspended"),te());}function V(){if(f==="suspended"){if(e.isOnline?.()===false){S("offline");return}v=0,ve();}}function W(b){f==="idle"||f==="disconnected"||(e.logger?.("connection:auth-invalid-terminal",{reason:b.reason,code:`0x${b.code.toString(16)}`,stateBefore:f,selfId:I}),y(),u+=1,P.stop(),L.cancel(),S("disconnected"),te(),i.emit({type:"auth:invalid",issue:b}),Promise.resolve().then(()=>r.onAuthInvalid?.(b)).catch($=>T({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:$})));}function se(b){switch(b.type){case "success":v=0,_=false,b.selfId&&(I=b.selfId),S("authenticated"),P.start(),K?.onAuthenticated(),ee?.onAuthenticated(),ne?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(b.issue.reason==="token_expired"&&b.issue.code!==0&&!_){_=true,T({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),D();return}W(b.issue);break;case "retry":T(b.error),D();break;}}async function de(){let b=await L.login();b.type!=="canceled"&&f==="authenticating"&&se(b);}async function ve(){if(e.isOnline?.()===false){y(),P.stop(),S("offline");return}let b=++u;S("connecting"),E=false,G=new Uint8Array(0);let $=await Z();if(b!==u)return;if($==="missing"){W({code:0,reason:"token_expired"});return}if($==="unavailable"){D();return}let fe;try{fe=await o.getEndpoints();}catch(Pe){if(b!==u)return;M("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",Pe);return}if(b!==u)return;let le=fe[0];if(le===void 0){M("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!_A(le.url)){M(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${le.url}`);return}try{await t.connect([le]);}catch(Pe){if(b!==u)return;T({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:Pe}),D();return}b!==u&&te();}function He(b,$,fe){switch(b){case 258:L.onLoginAck($);break;case 2:P.onAck();break;case 264:if(e.logger!==void 0)try{let le=ra.decode($);e.logger("connection:kickout-received",{kickedUserId:String(le.sUserId),selfId:I,matchesSelf:String(le.sUserId)===I,entryIp:le.ip,entryPort:le.port,stateBefore:f});}catch(le){e.logger("connection:kickout-decode-failed",{message:le?.message,stateBefore:f});}W({code:33040,reason:"kicked"});break;default:Q?.route(b,$,{msgSeq:fe});break}}function ce(b){G=bA(G,new Uint8Array(b));let $;try{let fe=pa(G);$=fe.frames,G=fe.remainder;}catch(fe){T({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:fe}),D();return}for(let fe of $)He(fe.header.command,fe.body,fe.header.msgSeq);}return t.on("open",()=>{f==="connecting"&&(S("authenticating"),de());}),t.on("message",({data:b})=>ce(b)),t.on("error",({error:b})=>{T({scope:"transport",message:"transport \u9519\u8BEF",cause:b});}),t.on("close",({code:b,reason:$,wasClean:fe})=>{if(P.stop(),e.logger?.("connection:transport-closed",{code:b,reason:$,wasClean:fe,stateBefore:f,intentionalClose:E,nextPath:E||f==="disconnecting"?"disconnected":f==="idle"||f==="disconnected"||f==="reconnecting"||f==="suspended"||f==="offline"?"ignored":"reconnect"}),E||f==="disconnecting"){E=false,S("disconnected");return}f==="idle"||f==="disconnected"||f==="reconnecting"||f==="suspended"||f==="offline"||D();}),{get state(){return f},async connect(){f==="connecting"||f==="authenticating"||f==="authenticated"||(y(),v=0,await ve());},disconnect(){if(y(),u+=1,P.stop(),L.cancel(),K?.reset(),ee?.reset(),H?.reset(),me?.reset(),Ie?.reset(),E=true,f==="idle"||f==="disconnected"){S("disconnected");return}S("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&S("disconnected");},notifyOnline(){if(f==="offline"){v=0,ve();return}f==="reconnecting"&&(y(),ve());},notifyOffline(){f==="idle"||f==="disconnected"||f==="disconnecting"||f==="suspended"||f==="offline"||(y(),u+=1,P.stop(),L.cancel(),x?.cancelAll("offline"),K?.reset(),ee?.reset(),H?.reset(),me?.reset(),Ie?.reset(),S("offline"),te());},notifyVisible(){if(f==="suspended"){V();return}if(f==="offline"&&e.isOnline?.()===true){v=0,ve();return}if(f==="reconnecting"){y(),ve();return}if(f==="authenticated"){let b=u;Z().then($=>{if(!(f!=="authenticated"||b!==u)){if($==="missing"){W({code:0,reason:"token_expired"});return}P.probe();}});}},suspendForPageLifecycle:N,resumeFromPageLifecycle:V,suppressDirectReadReceipts(b){ee?.suppress(b);},resumeDirectReadReceipts(b){ee?.resume(b);},reportDirectMediaConsumed(b,$){ee?.reportConsumedMedia(b,$),ne?.reportConsumedMedia?.(b,$);},sendText(b){if(K===void 0)throw new Error("sendText \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(I==="")throw new Error("sendText \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return K.enqueueText(b)},sendContact(b){if(K===void 0)throw new Error("sendContact \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(I==="")throw new Error("sendContact \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return K.enqueueContact(b)},forwardMessages(b){if(K===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let $=e.domainState;if($===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(I==="")throw new Error("forwardMessages \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return od({outbox:K,sendStrategies:Y,resolveCurrentMessage:fe=>$.getConversationMessage(fe,fe.id)},b)},recallMessage(b){return H===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):H.recall(b)},deleteChannelMessageForEveryone(b){return me===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):me.deleteForEveryone(b)},editMessage(b){return Ie===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):Ie.edit(b)},sendImage(b){return w("sendImage",$=>$.sendImage(b))},sendVideo(b){return w("sendVideo",$=>$.sendVideo(b))},sendVoice(b){return w("sendVoice",$=>$.sendVoice(b))},sendFile(b){return w("sendFile",$=>$.sendFile(b))},sendGif(b){return w("sendGif",$=>$.sendGif(b))},sendMediaAlbum(b){return w("sendMediaAlbum",$=>$.sendMediaAlbum(b))},sendExpression(b){if(K===void 0)throw new Error("sendExpression \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(I==="")throw new Error("sendExpression \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Tm({outbox:K},b)},sendGame(b){if(K===void 0)throw new Error("sendGame \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(I==="")throw new Error("sendGame \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return bm({outbox:K,randomUint32:e.randomUint32},b)},sendMiniProgram(b){if(K===void 0)throw new Error("sendMiniProgram \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(I==="")throw new Error("sendMiniProgram \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return tm({outbox:K},b)},sendTransfer(b){if(K===void 0)throw new Error("sendTransfer \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(I==="")throw new Error("sendTransfer \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return Cm({outbox:K},b)},replaceInterruptedVideo(b,$){return w("replaceInterruptedVideo",fe=>{let le=O("replaceInterruptedVideo",b,$,"video");return fe.replaceVideo(b,le.createdAt,{...$,...$.caption===void 0&&le.body.video?.describe!==void 0?{caption:le.body.video.describe}:{},...$.refMessageId===void 0&&le.refMessageId!==void 0?{refMessageId:le.refMessageId}:{}})})},replaceInterruptedFile(b,$){return w("replaceInterruptedFile",fe=>{let le=O("replaceInterruptedFile",b,$,"file");return fe.replaceFile(b,le.createdAt,{...$,...$.refMessageId===void 0&&le.refMessageId!==void 0?{refMessageId:le.refMessageId}:{}})})},cancelMedia(b){x?.cancel(b);},cancelMediaUpload(b){return x?.cancel(b)??false},retryMediaUpload(b){return x?.retry(b)??false},invalidateMediaAssetCacheWrites(){x?.invalidateAssetCacheWrites();},disposeMediaTasks(){x?.dispose();},retryMessage(b){x?.retry(b)!==true&&K?.retry(b);},retryOutboxMessage(b){return K?.retry(b)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(b){return K?.cancel(b)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(b,$){K?.markConversationTerminated(b,$);},clearOutboxConversationTerminated(b){K?.clearConversationTerminated(b);},terminateConversationSending(b,$){x?.cancelConversation(b),K?.markConversationTerminated(b,$);},markRead(b,$,fe){if(e.domainState===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let le=fe??e.domainState.getSession(b)?.type;if(le===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${b}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(le==="direct"){if(ee===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(b,$),ee.report(b),ne?.report(b);return}let Pe=e.readStrategies?.resolve(le);if(Pe===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${le}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return Pe.markRead({conversationId:b,readCursor:$})},sendFrame(b){h(b);},onChatAck(b){K?.onChatAck(b);},getPendingOutbox(){return K?.getPending()??[]},async hydrateOutbox(){await K?.hydrate();},markOutboxForLogout(b){K?.markForLogout({policy:b});}}}function Um(e={}){let n=e.defaultTimeoutMs??3e4,t=new Map,r=0;function o(i){let a=t.get(i);if(a!==void 0)return clearTimeout(a.timer),t.delete(i),a}return {nextSeq(){return r=r>=4294967295?1:r+1,r},track(i,a){if(t.has(i))throw new Error(`\u91CD\u590D\u767B\u8BB0\u5728\u9014\u8BF7\u6C42 msgSeq=${i}\uFF08\u5E94\u7531 nextSeq() \u4FDD\u8BC1\u552F\u4E00\uFF09`);return new Promise((s,d)=>{let g=setTimeout(()=>{t.delete(i),d(new Error(`\u8BF7\u6C42\u8D85\u65F6\uFF1AmsgSeq=${i}\uFF0C\u7B49\u5F85 ${a??n}ms \u65E0\u54CD\u5E94`));},a??n);t.set(i,{resolve:s,reject:d,timer:g});})},resolve(i,a){let s=o(i);return s?.resolve(a),s!==void 0},reject(i,a){let s=o(i);return s?.reject(a),s!==void 0},rejectAll(i){for(let a of [...t.values()])clearTimeout(a.timer),a.reject(i);t.clear();},get pendingCount(){return t.size}}}function DA(e){let n=false,t=false,r=false,o,i,a=Um(),s,d,g={status:"idle"},p=new Set;function f(u){try{u({...g});}catch{e.onListenerError();}}function v(u){g=u;for(let I of [...p])f(I);}function C(){d&&clearTimeout(d.timer),d=void 0;}function E(u,I){C(),r=u!=="server-rejected";let S={status:"error",error:u,requiresReconnect:r,...I===void 0?{}:{serverCode:I}};o=r?S:void 0,v(i?S:{status:"idle"});}function G(){if(t||r||d||!i)return;if(!n){v({status:"pending"});return}if(i.token===s?.token){v(s.snapshot);return}let u=i,I=a.nextSeq(),S=z({command:261,msgSeq:I,body:ht.encode(ht.create({sUserId:BigInt(u.userId),nPushType:20,nPushTokenType:0,sPushToken:u.token}))}),T={...u,msgSeq:I,timer:setTimeout(()=>E("timeout"),e.timeoutMs??3e4)};if(d=T,v({status:"syncing"}),!(d!==T||t||!n)){if(!i){C();return}try{e.sendFrame(S);}catch{d===T&&E("send-failed");}}}return {api:{setWebSubscription({userId:u,subscription:I}){if(t)throw new Error("\u63A8\u9001\u7ED1\u5B9A\u5DF2\u9500\u6BC1");if(!/^[1-9]\d*$/.test(u)||u!==e.getSelfId())throw new Error("\u63A8\u9001\u8BA2\u9605\u8D26\u53F7\u4E0E\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let{endpoint:S,keys:T,expirationTime:h}=I;if(!S||!T?.p256dh||!T.auth)throw new Error("Web Push \u8BA2\u9605\u7F3A\u5C11 endpoint \u6216\u52A0\u5BC6\u5BC6\u94A5");let P=new URL(S);if(P.protocol!=="https:"||P.username||P.password)throw new Error("Web Push endpoint \u5FC5\u987B\u662F HTTPS \u5730\u5740");if(h!=null&&(!Number.isFinite(h)||h<=Date.now()))throw new Error("Web Push \u8BA2\u9605\u5DF2\u8FC7\u671F");let L=JSON.stringify({endpoint:S,expirationTime:h??null,keys:{p256dh:T.p256dh,auth:T.auth}});i={userId:u,token:L},o?v(o):d&&v({status:"syncing"}),G();},clear(){t||(i=void 0,s=void 0,v({status:"idle"}));},snapshot:()=>({...g}),subscribe(u){return t||p.add(u),f(u),()=>{p.delete(u);}}},commandHandlers:[{command:262,handler(u,I,S){if(!d||!n||t||r||S?.msgSeq!==d.msgSeq)return;let T;try{T=jr.decode(I);}catch{E("invalid-ack");return}let h=T.nErr===0&&(String(T.sUserId)===d.userId||String(T.sUserId)==="0");if(!h&&String(T.sUserId)!==d.userId)return;let P=d;if(C(),!h&&T.nErr!==32768){E("server-rejected",Number(T.nErr));return}if(s={token:P.token,snapshot:h?{status:"unconfirmed",serverCode:Number(T.nErr)}:{status:"synced"}},!i){v({status:"idle"});return}G();}}],setAuthenticated(u){t||n===u||(n=u,C(),s=void 0,r=false,o=void 0,i&&G());},dispose(){t||(t=true,C(),i=void 0,s=void 0,v({status:"disposed"}),p.clear());}}}var GA=200,UA=20;function kA(e){return e instanceof ct&&e.status>=500}function xA(e){let n=e.maxBatchesPerEndpoint??GA,t=e.reducedBatchLimit??UA,r=e.yieldToEventLoop??(()=>Promise.resolve()),o=false,i=false;async function a(d,g){let p=[],f="",v=0,C;async function E(){try{return await d.pullBatch({deliveredMsgInfos:p,...C===void 0?{}:{limit:C}})}catch(G){if(C!==void 0||!kA(G))throw G;return C=t,e.logger?.("sync-batch-reduced",{endpoint:d.endpoint,limit:C,status:G.status}),await d.pullBatch({deliveredMsgInfos:p,limit:C})}}for(let G=1;;G++){if(G>n)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${d.endpoint}' \u9012\u5F52\u8D85\u8FC7 ${n} \u6279\u4FDD\u62A4\u4E0A\u9650\uFF08\u7591\u5F02\u5E38/\u672A\u7EC8\u6B62\uFF09`);let _=await E();if(_.messages.length>0){e.domainState.upsertMessages(_.messages,"offline"),v+=_.messages.length;for(let S of _.messages){let T={conversationType:S.conversationType,conversationId:S.conversationId};g.set(ie(T),T);}}let u=_.batchSize>0;if(e.logger?.("sync-batch",{endpoint:d.endpoint,batchNo:G,fetched:_.batchSize,newMessages:_.messages.length,responseBytes:_.responseBytes,endpointTotal:v,hasMore:u}),!u)break;let I=_.deliveredMsgInfos.at(-1)?.msgId??"";if(I!==""&&I===f)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${d.endpoint}' \u7EED\u70B9\u672A\u524D\u8FDB\uFF08\u670D\u52A1\u7AEF\u7591\u91CD\u590D\u8FD4\u56DE\u540C\u6279 msgId=${I}\uFF09\uFF0C\u4E2D\u6B62\u907F\u514D\u6B7B\u5FAA\u73AF`);f=I,p=_.deliveredMsgInfos,await r();}return v}async function s(){let d=new Map,g=0;for(let p of e.pullers)g+=await a(p,d);e.logger?.("sync-done",{totalMessages:g,conversations:d.size,done:true}),e.emitter.emit({type:"sync:complete",conversations:[...d.values()]});}return {async sync(){if(o){i=true;return}o=true;try{do{i=!1;try{await s();}catch(d){e.emitter.emit({type:"error",error:{scope:"sync",message:"\u79BB\u7EBF\u540C\u6B65\u5931\u8D25",cause:d}});}}while(i)}finally{o=false;}}}}export{xp as $,PS as $a,xy as A,xn as Aa,Oy as B,ie as Ba,vg as C,qa as Ca,Ky as D,Du as Da,Ly as E,SC as Ea,bg as F,RC as Fa,Zy as G,MC as Ga,Qy as H,lS as Ha,Wy as I,gS as Ia,Hy as J,uS as Ja,zy as K,mS as Ka,qy as L,pS as La,$y as M,fS as Ma,eI as N,SS as Na,nI as O,AS as Oa,tI as P,lm as Pa,rI as Q,um as Qa,oI as R,mm as Ra,iI as S,RS as Sa,sI as T,TS as Ta,cI as U,bS as Ua,uI as V,DS as Va,mI as W,US as Wa,pI as X,kS as Xa,vI as Y,xS as Ya,FI as Z,BS as Za,Kr as _,FS as _a,Am as a,Es as aa,wS as ab,WS as b,On as ba,OS as bb,ue as c,QI as ca,Md as cb,_e as d,HI as da,KS as db,bi as e,kn as ea,Im as eb,Vf as f,Fp as fa,NA as fb,Of as g,Ka as ga,sA as gb,$e as h,lu as ha,aA as hb,mr as i,gu as ia,dA as ib,en as j,uu as ja,DA as jb,Oe as k,jI as ka,xA as kb,_C as l,mu as la,Pr as m,mC as ma,wr as n,Ki as na,fs as o,fu as oa,Wn as p,Xa as pa,Cs as q,ct as qa,Hr as r,Ju as ra,Ke as s,Dr as sa,Di as t,yu as ta,sy as u,za as ua,BC as v,Li as va,Gi as w,fC as wa,ay as x,EC as xa,Ag as y,Be as ya,Ir as z,yn as za};
|