k2-im 0.1.28 → 0.1.29

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.
@@ -0,0 +1,2 @@
1
+ import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';var Yr=1024,Xr=9;function ks(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 Gs=512*1024,xs=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 tf(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 Us(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function fc(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 yc(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function rf(e){return e!==void 0&&e!==1}function of(e){if(!Us(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=fc(i)),rf(r)&&(o===void 0||o.length===0))return;let s=zn(e,["width","imageWidth"])??0,a=zn(e,["height","imageHeight"])??0,d={kind:n===2?"video":"image",url:t,width:Number.isInteger(s)&&s>0?s:0,height:Number.isInteger(a)&&a>0?a:0},g=zn(e,["duration"]);d.kind==="video"&&g!==void 0&&g>0&&(d.durationMs=g);let f=qn(e,["thumbUrl","thumbURL","thumbnailUrl","thumbnailURL"]);f!==void 0&&(d.thumbUrl=f);let y=qn(e,["thumbData"]);if(y!==void 0){let D=fc(y);D!==void 0&&D.length>0&&(d.thumbData=D);}let N=qn(e,["md5","MD5"]);N!==void 0&&(d.md5=N);let S=zn(e,["fileSize","fileLength"]);S!==void 0&&S>0&&(d.size=S),o!==void 0&&o.length>0&&(d.teaKey=o),r!==void 0&&(d.fileEncryptType=r);let E=tf(e,["hd","isHd","isHD"]);return E!==void 0&&(d.hd=E),d}function Bs(e){let n=JSON.parse(e.content);if(!Us(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(!Us(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=of(d);g!==void 0&&i.push(g);}let s={items:i},a=qn(t,["caption"]);return a!==void 0&&a.trim()!==""&&(s.caption=a),s}function sf(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:yc(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:yc(e.teaKey)}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...e.hd!==void 0?{hd:e.hd}:{}}}function zr(e){return new TextEncoder().encode(e).length}function Et(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(sf)}),r=zr(t);if(r>=Gs)throw new Error(`\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u8FBE\u5230 ${Gs} \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 Fs(e){return e===1?"gif":"sticker"}function qr(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 Kn(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function ws(e){if(e.exprType===2){if(!qr(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!Kn(e.width)||!Kn(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 Ps(e){if(e.exprType===2){if(!qr(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!Kn(e.width)||e.width===0||!Kn(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 Ic,Cc,af={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(" "),robot:e=>e.robot?.modules.flatMap(n=>n.type==="section"?[n.content]:[]).filter(n=>n.trim()!=="").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 jr(e){return af[e.contentType](e.body)}function df(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 cf(e,n){if(n.length===0)return Object.freeze([]);let t=[...new Set(n)].filter(s=>Number.isSafeInteger(s)&&s>=0&&s<e.length).sort((s,a)=>s-a);if(t.length===0)return Object.freeze([]);let r=[],o=t[0],i=o;for(let s of t.slice(1)){if(s===i+1){i=s;continue}r.push(Object.freeze({start:o,end:i+1})),o=s,i=s;}return r.push(Object.freeze({start:o,end:i+1})),Object.freeze(r)}function lf(){return Ic??=import('pinyin-pro').then(e=>e.match),Ic}function uf(){return Cc??=import('pinyin-pro').then(e=>e.pinyin),Cc}async function gf(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 uf())(t,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(i??"")?i:"#"}async function Vs(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 lf():void 0;return Object.freeze({keyword:n,match(i,s={}){let a=df(i,n);if(a.length>0)return Object.freeze({method:"direct",ranges:a});if(s.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=cf(i,d);return g.length===0?null:Object.freeze({method:"pinyin",ranges:g})}})}var mf=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function pf(e,n){if(e==="")return [{kind:"text",text:""}];let t=[...If(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),ff(e,t))}function ff(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 yf(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function If(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?Cf(n.atAllTexts??mf):/\[(\d+)\]/g,o=[],i=r.exec(e);for(;i!==null;){let s=i[1];if(s!==void 0&&!t.atUserIds.includes(s)){i=r.exec(e);continue}let a=s===void 0?{kind:"mention",text:n.atAllDisplay??i[0],atAll:true,isMe:true}:yf(s,n);o.push({start:i.index,end:i.index+i[0].length-1,segment:a}),i=r.exec(e);}return o}function Cf(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=>`${Sf(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function Sf(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ht(e,n){let t=n.trim();return t===""?e.toString():t}function Sc(e){let n=e.trim();return n!==""&&n!=="0"}var Af=new Set(["audio","video"]),Rf=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 Os(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function Ks(e,n){return n===void 0?e:{...e,outgoing:n}}function Ls(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 Ef(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 hf(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 Ac(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 Mf(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function Tf(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function vf(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 bf(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 Ks({callKind:Ac(n,"Android \u540C\u6B65 callType"),outcome:Tf(t),durationMs:Ls(e.callDuration,"ms")},Os(e.isCaller))}function Nf(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 Ks({callKind:hf(n),outcome:Mf(t),durationMs:Ls(e.duration,"ms")},Os(e.isCaller))}function _f(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=Ls(e.content,"s");return Ks({callKind:Ac(n,"iOS type"),outcome:vf(t,r),durationMs:r},Os(e.isCaller))}function Rc(e){if(e===null||typeof e!="object")return false;let n=e;return !(!Af.has(n.callKind)||!Rf.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=Ef(e.content);if("callDuration"in n)return bf(n);if(cn(n.callType)!==void 0&&cn(n.callStatus)!==void 0)return Nf(n);if(cn(n.type)!==void 0&&cn(n.status)!==void 0)return _f(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function hc(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function Df(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 Gf(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 Mc(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...Df(e.visitCardKey)}}function Tc(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:Gf(e.kind,e.rawKind)}}function vc(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 bc(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 Mt(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 Nc(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 _c(e){let n=e;if(!Mt(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 Gc(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 Uf(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 kf(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 jn(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 Zs(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()},...Uf(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 Qs(e){let n=e;if(!jn(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:kf(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 Tt(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function eo(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function $r(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 Uc(e){return e===1||e===2||e===3||e===4}function xf(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!Uc(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 kc(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!Uc(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:eo(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:eo(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...Tt(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...Tt(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},...Tt(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function xc(e){let n=e;if(!xf(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:$r(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:$r(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:$r(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:$r(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function Bc(e){let n=eo(e.fromUid,"fromUid"),t=eo(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=Tt(e.radPacketId),i=Tt(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 Ws(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function Fc(e,n){if(!Ws(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,...s}=e;return s}return e.timelineVisibility==="hidden"?e:{...e,timelineVisibility:"hidden"}}var Bf=Object.freeze({modules:Object.freeze([]),commands:Object.freeze([])});function $n(e){if(typeof e!="string")return e;let n=e.trim();if(n!=="")try{return JSON.parse(n)}catch{return}}function un(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}function Hs(e){return Array.isArray(e)?e:[]}function Ye(e){if(typeof e!="string")return;let n=e.trim();return n===""?void 0:n}function Ff(e){let n=typeof e=="number"?e:typeof e=="string"?Number(e.trim()):Number.NaN;if(!(!Number.isFinite(n)||n<=0))return n>1e12?n:n*1e3}function wf(e){let n=$n(e)??e,t=un(n);if(t===void 0)return {content:n,children:void 0};let r=t.contentType;if(r===18||r==="18"){let o=$n(t.content)??t.content,i=un(o);return i===void 0?{content:o,children:void 0}:{content:$n(i.content)??i.content,children:i.children}}return {content:$n(t.content)??t.content,children:t.children}}function Pf(e){let n=e.trim();if(!n.startsWith("["))return;let t=$n(n);if(!Array.isArray(t)||t.length===0||!t.every(o=>un(o)?.type!==void 0))return;let r=Pc(t);return r.length>0?r:void 0}function Vf(e){let n=un(e.text),t=Ye(n?.content)??"",r=Pf(t);return r!==void 0?r:{type:"section",textType:Ye(n?.type)??"plain-text",content:t}}function Of(e){let n=Hs(e.elements).map(t=>Ye(un(t)?.src)).filter(t=>t!==void 0);if(n.length!==0)return {type:"image-group",images:Object.freeze(n)}}function Kf(e){let n=Ff(e.endTime);if(n!==void 0)return {type:"countdown",endTimeMs:n}}function Lf(e){let n=un(e);if(n===void 0)return;let t=Ye(n.type);if(!(t==="divider"||t===void 0)){if(t==="section")return Vf(n);if(t==="image-group")return Of(n);if(t==="countdown")return Kf(n)}}function Pc(e){let n=Array.isArray(e)?e:Hs($n(e)),t=[];for(let r of n){let o=Lf(r);o!==void 0&&("type"in o?t.push(o):t.push(...o));}return Object.freeze(t)}function Zf(e){let n=un(e);if(n===void 0)return;let t=Ye(n.path),r=Ye(n.app_id)??Ye(n.appId),o=Ye(n.domain);if(!(t===void 0&&r===void 0&&o===void 0))return {...t===void 0?{}:{path:t},...r===void 0?{}:{appId:r},...o===void 0?{}:{domain:o}}}function wc(e){let n=un(e),t=Ye(n?.menu_name)??Ye(n?.menuName);if(n===void 0||t===void 0)return;let r=Ye(n.menu_id)??Ye(n.menuId),o=Ye(n.msg_type)??Ye(n.messageType),i=Zf(n.msg_content??n.content);return {menuName:t,...r===void 0?{}:{menuId:r},...o===void 0?{}:{messageType:o},...i===void 0?{}:{miniProgram:i}}}function Qf(e){let n=[];for(let t of Hs(e)){if(Array.isArray(t)){let o=t.map(wc).filter(i=>i!==void 0);o.length>0&&n.push(Object.freeze(o));continue}let r=wc(t);r!==void 0&&n.push(Object.freeze([r]));}return Object.freeze(n)}function Wf(e){let n=un(e);return n===void 0?false:n.type==="section"?typeof n.textType=="string"&&typeof n.content=="string":n.type==="image-group"?Array.isArray(n.images)&&n.images.every(t=>typeof t=="string"&&t.trim()!==""):n.type==="countdown"?typeof n.endTimeMs=="number"&&Number.isFinite(n.endTimeMs)&&n.endTimeMs>0:false}function Hf(e){let n=un(e);return n!==void 0&&typeof n.menuName=="string"&&n.menuName.trim()!==""}function Js(e){let n=un(e);return n===void 0||!Array.isArray(n.modules)||!Array.isArray(n.commands)?false:n.modules.every(Wf)&&n.commands.every(t=>Array.isArray(t)&&t.every(Hf))}function Jf(e){let n=wf(e);return {modules:Pc(n.content),commands:Qf(n.children)}}function Vc(e){try{return Jf(e.content)}catch{return Bf}}function Yf(e){return e.type==="section"?{type:"section",text:{type:e.textType,content:e.content}}:e.type==="image-group"?{type:"image-group",elements:e.images.map(n=>({type:"image",src:n}))}:{type:"countdown",endTime:String(e.endTimeMs)}}function Xf(e){return {menu_name:e.menuName,...e.menuId===void 0?{}:{menu_id:e.menuId},...e.messageType===void 0?{}:{msg_type:e.messageType},...e.miniProgram===void 0?{}:{msg_content:{...e.miniProgram.path===void 0?{}:{path:e.miniProgram.path},...e.miniProgram.appId===void 0?{}:{app_id:e.miniProgram.appId},...e.miniProgram.domain===void 0?{}:{domain:e.miniProgram.domain}}}}}function Oc(e){if(!Js(e))throw new Error("robot body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5");return {contentType:18,content:JSON.stringify({content:e.modules.map(Yf),children:e.commands.map(n=>n.map(Xf))})}}function et(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function no(e,n){if(e<0n)throw new Error(`transfer body: ${n} \u975E\u6CD5`);return e.toString()}function to(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 Kc(e){return e===0||e===1||e===2||e===3}function Lc(e){return e===1||e===2}function ro(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||!Kc(n.status)||!Lc(n.sessionType))}function Ys(e){let n=e.status;if(!Kc(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!Lc(t))throw new Error(`transfer body: sessionType \u975E\u6CD5\uFF08${String(t)}\uFF09`);return {fromUid:no(e.fromUid,"fromUid"),toUid:no(e.toUid,"toUid"),amount:no(e.amount,"amount"),currencyType:e.currencyType,status:n,serialNumber:no(e.serialNumber,"serialNumber"),sessionType:t,transferTime:Number(e.transferTime),...et(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...et(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...et(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},...et(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...et(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...et(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function Xs(e){let n=e;if(!ro(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:to(e.fromUid,"fromUid"),toUid:to(e.toUid,"toUid"),amount:to(e.amount,"amount"),currencyType:e.currencyType,status:e.status,serialNumber:to(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 Zc(e){let n={url:e.content,width:e.width,height:e.height},t=zf(e);return t!==void 0&&(n.duration=t,t!==e.duration&&(n.durationUnit="seconds")),e.thumbData.length>0&&(n.thumbData=e.thumbData),e.describe!==""&&(n.describe=e.describe),e.MD5!==""&&(n.md5=e.MD5),e.fileLength>0n&&(n.unverifiedFileLength=e.fileLength.toString()),e.teaKey.length>0&&(n.teaKey=e.teaKey),e.fileEncryptType!==0&&(n.fileEncryptType=e.fileEncryptType),n}function zs(e,n){return (e===void 0||e===0)&&(n?.length??0)>0}function zf(e){let n=e.duration;if(!Number.isFinite(n)||n<=0)return;let t=e.fileEncryptType===0&&e.width===0&&e.height===0&&n%1e3===0&&n/1e3<=300;return zs(e.fileEncryptType,e.teaKey)||t?n/1e3:n}function oo(e){if(e.size!==void 0&&e.sizeUnit!=="bytes"){let{size:n,...t}=e;e={...t,...t.unverifiedFileLength===void 0&&Number.isSafeInteger(n)&&n>0?{unverifiedFileLength:String(Math.round(n/1024))}:{}};}return e.durationUnit==="seconds"||e.duration===void 0||!Number.isFinite(e.duration)||e.duration<=0||!zs(e.fileEncryptType,e.teaKey)||e.width===0&&e.height===0&&e.duration<=300?e:{...e,duration:e.duration/1e3,durationUnit:"seconds"}}function Qc(e){let n=zs(e.fileEncryptType,e.teaKey)?1e3:1,t=qf(e);return {contentType:3,content:e.url,width:e.width,height:e.height,...e.duration!==void 0&&Number.isFinite(e.duration)&&e.duration>0?{duration:Math.max(1,Math.round(e.duration*n))}:{},...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}:{},...t===void 0?{}:{fileLength:t},...e.teaKey!==void 0&&e.teaKey.length>0?{teaKey:e.teaKey}:{},...e.fileEncryptType!==void 0&&e.fileEncryptType!==0?{fileEncryptType:e.fileEncryptType}:{}}}function qf(e){if(e.size!==void 0){if(!Number.isSafeInteger(e.size)||e.size<0)throw new RangeError("\u89C6\u9891 size \u5FC5\u987B\u4E3A\u975E\u8D1F\u5B89\u5168\u6574\u6570\u5B57\u8282\u6570");return e.size===0?void 0:BigInt(e.size)}if(e.unverifiedFileLength!==void 0){if(!/^\d{1,20}$/.test(e.unverifiedFileLength)||BigInt(e.unverifiedFileLength)>0xFFFFFFFFFFFFFFFFn)throw new RangeError("\u89C6\u9891\u5386\u53F2 fileLength \u5FC5\u987B\u4E3A uint64 \u5341\u8FDB\u5236\u6574\u6570");return BigInt(e.unverifiedFileLength)}}function Wc(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 Hc(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 qc=1,jc=[{wireContentType:2,domainContentType:"image",parse:e=>({image:Dc(e)}),build:e=>e.image!==void 0?Gc(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Zc(e)}),build:e=>e.video!==void 0?Qc(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:Wc(e)}),build:e=>e.voice!==void 0?Hc(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:vc(e)}),build:e=>e.file!==void 0?bc(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:ws(e)}),build:e=>e.sticker!==void 0?Ps(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:Mc(e)}),build:e=>e.contact!==void 0?Tc(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:Zs(e)}),build:e=>e.miniProgram!==void 0?Qs(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:Nc(e)}),build:e=>e.game!==void 0?_c(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:Ys(e)}),build:e=>e.transfer!==void 0?Xs(e.transfer):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:Ec(e)}),build:e=>e.call!==void 0?hc(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:kc(e)}),build:e=>e.redPacket!==void 0?xc(e.redPacket):void 0},{wireContentType:28,domainContentType:"mediaAlbum",parse:e=>({mediaAlbum:Bs(e)}),build:e=>e.mediaAlbum!==void 0?Et(e.mediaAlbum):void 0},{wireContentType:18,domainContentType:"robot",parse:e=>({robot:Vc(e)}),build:e=>e.robot!==void 0&&Js(e.robot)?Oc(e.robot):void 0}],dy=[{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:"robot",read:e=>e.robot},{contentType:"unknown",read:e=>e.unknown}];function Gn(e,n){if(e.contentType===qc)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:Fc(Bc(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=jc.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 qs(e,n,t="outgoing message"){let r=dy.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 jc){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:qc,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var js=/^[0-9a-f]{32}$/;function rn(e){return js.test(e.replace(/-/g,"").toLowerCase())}function nn(){return globalThis.crypto.randomUUID()}function Se(e){let n=e.replace(/-/g,"").toLowerCase();if(!rn(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 Xe(e){let n=e.replace(/-/g,"").toLowerCase();return js.test(n)?n:e}function le(e){let n=e.toLowerCase();return js.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function io(e){let n=e.serverTime;return n!==void 0&&Number.isFinite(n)&&n>0&&n<=864e13?n:void 0}function pn(e){return io(e)??e.createdAt}function fn(e){let n=e.conversationType==="channel"?e.extensions?.channelSequence:void 0,t=typeof n=="string"&&/^\d+$/.test(n)?`${n.padStart(20,"0")}:${e.id}`:e.id;return Ae(pn(e),t)}function Ae(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 $s=9,cy=20;function vt(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:Se(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:$s,encrypt:2,bMessage:gn(e.body)};return e.mention!==void 0&&Object.assign(o,ly(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=Xe(e.refMessageId)),o}function ly(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 yn(e,n,t){return na({senderId:ht(e.sFromId,e.botId),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 ea(e,n,t){return na(el(e),n,t)}function $c(e,n,t){return na(el(e),void 0,t,n)}function el(e){return {senderId:ht(e.sFromId,e.botId),channelId:e.sChnnId,messageId:e.sMsgId,msgTime:e.msgTime,encrypt:e.encrypt,historyCursor:e.sIndex,sequence:e.sIncrId,notifyCount:e.nNotifyCount,notifyUsers:gy(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function na(e,n,t,r){uy(e,t.edited===true&&e.oldMessageId.trim()!=="");let o=le(e.messageId),i=e.senderId,s=e.channelId.toString(),a=Number(e.msgTime),d=a>0?a:t.receivedAt??Date.now(),g=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:Gn(n,t.selfId),f=my(e,g.body.text??""),y=e.sequence.toString(),N={channelMessageType:$s,channelSequence:y,historyCursor:e.historyCursor};e.oldMessageId!==""&&(N.previousMessageId=le(e.oldMessageId));let S={id:o,conversationId:s,conversationType:"channel",senderId:i,contentType:g.contentType,body:g.body,createdAt:d,sortKey:Ae(d,`${y.padStart(cy,"0")}:${o}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:N};return t.decryptFailed===true&&(S.encryption.decryptFailed=true),a>0&&(S.serverTime=a),e.parentMessageId!==""&&(S.refMessageId=le(e.parentMessageId)),(e.edited||t.edited===true)&&(S.edited=true),f!==void 0&&(S.mention=f),t.keepRaw&&(S.raw=Sy(e,n,t.cmdId,r)),S}function uy(e,n=false){if(e.channelId<=0n)throw new Error("channel message: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(!Sc(e.senderId))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 gy(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(so)}catch{}return n.split(/[\s,;]+/).filter(so)}function my(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=fy(e.notifyUsers.filter(so),py(n)),{ranges:o,atUsersName:i}=yy(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 py(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function fy(e,n){return [...new Set([...e,...n])]}function so(e){return /^[1-9]\d*$/.test(e)}function yy(e){if(e==="")return {};try{let n=JSON.parse(e),t=Iy(n.atRange),r=Cy(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function Iy(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 Cy(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))so(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function Sy(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId,sToId:e.channelId.toString(),msgType:$s,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 In=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var qe=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwibAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8SEgoKY2xpZW50VHlwZRgDIAEoDSIzCgxQdWxsQ2hubkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJIlYKElB1bGxDaG5uU2Vzc2lvblJzcBIPCgdlcnJjb2RlGAEgASgNEi8KCWxzU2Vzc2lvbhgCIAMoCzIcLmltLmNoYW5uZWwucHVsbC5TZXNzaW9uSW5mbyKPAQoLU2Vzc2lvbkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJEg8KB3VVbnJlYWQYAyABKA0SJwoEbGFzdBgEIAEoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIPCgd1U3RhdHVzGAUgASgNEhAKCHVFeGlzdEF0GAYgASgNIr4CCghDaG5uQ2hhdBIPCgdzRnJvbUlkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoDBIOCgZleHRlbmQYByABKAkSDgoGc0luZGV4GAggASgJEhQKDG5Ob3RpZnlDb3VudBgJIAEoBRIUCgxzTm90aWZ5VXNlcnMYCiABKAkSFgoOdU9wZXJhdGlvblR5cGUYCyABKA0SDwoHc0luY3JJZBgMIAEoAxITCgtwYXJlbnRNc2dJZBgNIAEoCRINCgVib3RJZBgOIAEoCRIOCgZpc0VkaXQYDyABKAUSEAoIb2xkTXNnSWQYECABKAkSEQoJZXZlbnRUeXBlGBEgASgFIm8KElB1bGxDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEjQKBmxzUHVsbBgCIAMoCzIkLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubk1lc3NhZ2VJbmZvEhIKCmNsaWVudFR5cGUYAyABKA0icgoTUHVsbENobm5NZXNzYWdlSW5mbxIPCgdzQ2hubklkGAEgASgDEhIKCnNCYXNlSW5kZXgYAiABKAkSEgoKdURpcmVjdGlvbhgDIAEoDRIOCgZ1Q291bnQYBCABKA0SEgoKdUlzQ29udGFpbhgFIAEoDSJTChJQdWxsQ2hubk1lc3NhZ2VSc3ASDwoHZXJyY29kZRgBIAEoDRIsCglsc01lc3NhZ2UYAiADKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQiVgoSVXBkYXRlUmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvIjAKDVJlYWRJbmRleEluZm8SDwoHc0Nobm5JZBgBIAEoAxIOCgZzSW5kZXgYAiABKAkiJQoSVXBkYXRlUmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0iNAoPR2V0UmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSEAoIbHNDaG5uSWQYAiADKAMiUwoPR2V0UmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0SLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvInEKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEkEKDmxzU3BlY2lmaWVkTXNnGAIgAygLMikuaW0uY2hhbm5lbC5wdWxsLlB1bGxTcGVjaWZpZWRNZXNzYWdlSW5mbyJEChhQdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxIXCg9zU3BlY2lmaWVkSW5kZXgYAiABKAkiXAobUHVsbFNwZWNpZmllZENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlsKElB1bGxDaG5uTXNnQnlJZFJlcRIPCgdzVXNlcklkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDwoHbHNNc2dJZBgDIAMoCRISCgpjbGllbnRUeXBlGAQgASgNImsKElB1bGxDaG5uTXNnQnlJZFJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIWCg5sc01pc3NpbmdNc2dJZBgDIAMoCSJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),nl=messageDesc(qe,0);var tl=messageDesc(qe,2);var rl=messageDesc(qe,5);var ol=messageDesc(qe,7),il=messageDesc(qe,8);var sl=messageDesc(qe,10);messageDesc(qe,11);messageDesc(qe,12);messageDesc(qe,13);messageDesc(qe,15);var ul=messageDesc(qe,16),gl=messageDesc(qe,17);messageDesc(qe,18);messageDesc(qe,20);var sn=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgNIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZyJZChJHZXRHcm91cE1zZ0J5SWRSZXESDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDgoGbXNnSWRzGAMgAygJEhIKCmNsaWVudFR5cGUYBCABKA0icwoTR2V0R3JvdXBNc2dCeUlkUmVzcBIMCgRjb2RlGAEgASgFEjcKB21zZ0xpc3QYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnEhUKDW1pc3NpbmdNc2dJZHMYAyADKAlCIgoTY29tLm1vc2FudC5pbS5wcm90b1oLLi4vZ3JvdXBzcnZiBnByb3RvMw");messageDesc(sn,0);messageDesc(sn,1);var Il=messageDesc(sn,2),Cl=messageDesc(sn,3),Sl=messageDesc(sn,4),Al=messageDesc(sn,5);var Rl=messageDesc(sn,11),El=messageDesc(sn,12);var hl=messageDesc(sn,17),Ml=messageDesc(sn,18),Tl=messageDesc(sn,19),vl=messageDesc(sn,20);var Nl=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwi9A8KCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCWIGcHJvdG8z");var _l=messageDesc(Nl,1),Dl=messageDesc(Nl,2);var kn=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[In]),Ln=messageDesc(kn,0),nt=messageDesc(kn,1),bt=messageDesc(kn,2),Nt=messageDesc(kn,3),ta=messageDesc(kn,4),ra=messageDesc(kn,5),oa=messageDesc(kn,6),Gl=messageDesc(kn,7);var $e=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[In]),_t=messageDesc($e,0),ao=messageDesc($e,1),Ul=messageDesc($e,2);var kl=messageDesc($e,5),xl=messageDesc($e,6),Bl=messageDesc($e,7),Fl=messageDesc($e,8),wl=messageDesc($e,9),Pl=messageDesc($e,10),Vl=messageDesc($e,11);var Ol=messageDesc($e,14),ia=messageDesc($e,15),sa=messageDesc($e,16),Kl=messageDesc($e,17);var Gt=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[In]),Ll=messageDesc(Gt,0),Zl=messageDesc(Gt,1),Ql=messageDesc(Gt,2),Wl=messageDesc(Gt,3),Hl=messageDesc(Gt,4);var xe=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[In]),tt=messageDesc(xe,0),aa=messageDesc(xe,1),Jl=messageDesc(xe,2),da=messageDesc(xe,3),Yl=messageDesc(xe,4);var ca=messageDesc(xe,7);var Xl=messageDesc(xe,9),zl=messageDesc(xe,10),la=messageDesc(xe,11),ua=messageDesc(xe,12),ql=messageDesc(xe,13);var jl=messageDesc(xe,15),$l=messageDesc(xe,16),eu=messageDesc(xe,17);var nu=messageDesc(xe,26);var tu=messageDesc(xe,29);var ru=messageDesc(xe,33);var ga=messageDesc(xe,48),co=messageDesc(xe,49);var ou=messageDesc(xe,51),iu=messageDesc(xe,52);var su=messageDesc(xe,55);var au=messageDesc(xe,59),du=messageDesc(xe,60);var Fe=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIooBChNTSUdTUG9uc29yR3JvdXBDYWxsEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDgoGY2FsbElkGAUgASgJEhEKCWludml0ZUlkcxgGIAMoAxIPCgdjb250ZW50GAcgASgJImcKD1NJR0dyb3VwQ2FsbEFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSJAoHZXJyQ29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdtc2dUaW1lGAQgASgEIjcKFlNJR0dyb3VwQ2FsbERlbGl2ZXJBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIpQBCg9TSUdHcm91cENhbGxBbnMSDwoHZ3JvdXBJZBgBIAEoAxIOCgZ1c2VySWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIwCgdhbnNUeXBlGAUgASgOMh8uaW0uYXBwLnB0bC5HUk9VUF9DQUxMX0FOU19UWVBFEg4KBmNhbGxJZBgGIAEoCSKqAQoQU0lHR3JvdXBDYWxsSm9pbhIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIyCghqb2luVHlwZRgEIAEoDjIgLmltLmFwcC5wdGwuR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEQoJaW52aXRlSWRzGAUgAygDEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJImUKElNJR0dyb3VwQ2FsbEZpbmlzaBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg4KBmNhbGxJZBgFIAEoCSKtAQoSU0lHR3JvdXBDYWxsU3RhdHVzEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEjYKCnN0YXR1c1R5cGUYBCABKA4yIi5pbS5hcHAucHRsLkdST1VQX0NBTExfU1RBVFVTX1RZUEUSDgoGc3RhdHVzGAUgASgFEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJInoKGFNJR0dyb3VwQ2FsbERpc2Nvbm5lY3RlZBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRINCgV1c2VycxgEIAMoAxIPCgdtc2dUaW1lGAUgASgEEg4KBmNhbGxJZBgGIAEoCSJ1ChBTSUdHcm91cENhbGxCdXN5Eg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEhAKCGhpbnRVc2VyGAQgASgDEg8KB21zZ1RpbWUYBSABKAQSDgoGY2FsbElkGAYgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGKj8KE0dST1VQX0NBTExfQU5TX1RZUEUSEwoPQ0FMTF9BTlNfUkVGVVNFEAASEwoPQ0FMTF9BTlNfQUdSRUVEEAEqQQoUR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEwoPQ0FMTF9KT0lOX0FQUExZEAASFAoQQ0FMTF9KT0lOX0lOVklURRABKkUKFkdST1VQX0NBTExfU1RBVFVTX1RZUEUSFQoRQ0FMTF9TVEFUVVNfVklERU8QABIUChBDQUxMX1NUQVRVU19NVVRFEAFCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[In]),ma=messageDesc(Fe,0),cu=messageDesc(Fe,1),lu=messageDesc(Fe,2),pa=messageDesc(Fe,3),uu=messageDesc(Fe,4),gu=messageDesc(Fe,5),fa=messageDesc(Fe,6);var mu=messageDesc(Fe,8),ya=messageDesc(Fe,9),pu=messageDesc(Fe,10),fu=messageDesc(Fe,11),Ia=messageDesc(Fe,12),yu=messageDesc(Fe,13),Iu=messageDesc(Fe,14),Ca=messageDesc(Fe,15),hn=messageDesc(Fe,16),Mn=messageDesc(Fe,17),Sa=messageDesc(Fe,18),Aa=messageDesc(Fe,19),Ut=messageDesc(Fe,20),Ra=messageDesc(Fe,21),Ea=messageDesc(Fe,22),ha=messageDesc(Fe,23);var uo=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDSJHChFHZXRDaGF0TXNnQnlJZFJlcRIOCgZ1c2VySWQYASABKAMSDgoGbXNnSWRzGAIgAygJEhIKCmNsaWVudFR5cGUYAyABKA0ibwoSR2V0Q2hhdE1zZ0J5SWRSZXNwEgwKBGNvZGUYASABKAUSNAoHbXNnTGlzdBgCIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2cSFQoNbWlzc2luZ01zZ0lkcxgDIAMoCWIGcHJvdG8z");var Cu=messageDesc(uo,1),Su=messageDesc(uo,2);var Au=messageDesc(uo,4),Ru=messageDesc(uo,5);function w(e,n){return {command:e,schema:n,encode:t=>toBinary(n,t),decode:t=>fromBinary(n,t),create:t=>create(n,t)}}function Re(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function Tu(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 kt=w(257,Ll),xt=w(261,Wl),go=w(262,Hl),mo=w(258,Zl),Ma=w(264,Ql),xn=w(4097,tt),po=w(4098,aa),fo=w(4100,tt),Bt=w(4099,da),yo=w(4650,tt),Io=w(4651,tt),Co=w(4652,aa),So=w(4653,tt),Ao=w(4631,ou),Ft=w(4632,iu),Ro=w(4633,su),Eo=w(4627,nu),wt=w(4628,tu),Ta=Re(ru),ho=w(4356,ql),Pt=w(4355,jl),Mo=w(4360,$l),Vt=w(4359,eu),Ot=w(4107,la),To=w(4108,ua),vo=w(4110,la),Kt=w(4109,ua),Lt=w(8197,Fl),bo=w(8198,wl),No=w(4644,au),_o=w(4646,du),Do=w(8976,Kl),Go=w(8977,ao),Uo=w(4102,da),Zt=w(4101,Yl),Qt=w(4103,ca),ko=w(4104,Xl),xo=w(4106,ca),Wt=w(4105,zl),Zn=w(4117,ga),Bo=w(4118,co),Fo=w(4119,ga),Cn=w(8193,_t),wo=w(8194,ao),Po=w(8196,_t),Ht=w(8195,Ul),Jt=w(8978,_t),Vo=w(8979,ao),Oo=w(8980,_t),Yt=w(8967,sa),Ko=w(8968,co),Lo=w(8969,sa),rt=w(8708,Vl),Xt=w(8707,xl),Zo=w(8452,Pl),zt=w(8451,kl),Qo=w(8964,Ol),qt=w(8963,ia),Wo=w(8966,ia),jt=w(8965,Bl),Tn=w(12289,Ln),Ho=w(12290,nt),$t=w(12291,bt),Jo=w(12292,Ln),vu=w(12816,Ln),er=w(12817,Ln),Yo=w(12818,nt),Xo=w(12819,Ln),nr=w(12293,Nt),zo=w(12294,nt),qo=w(12295,bt),jo=w(12296,Nt),tr=w(12297,Nt),$o=w(12298,nt),ei=w(12299,bt),ni=w(12300,Nt),rr=w(12547,ra),ti=w(12548,ta),bu=w(12551,ra),Nu=w(12552,ta),or=w(12803,bt),ri=w(12804,Ln),ir=w(12805,oa),oi=w(12806,co),ii=w(12807,oa),si=w(12808,Gl),ai=w(12809,nt),sr=w(16385,ma),di=w(16386,cu),ar=w(16387,lu),ci=w(16388,ma),dr=w(16389,pa),li=w(16390,uu),cr=w(16391,gu),ui=w(16392,pa),lr=w(16395,mu),gi=w(16396,fa),ot=w(16397,ya),mi=w(16398,pu),ur=w(16399,fu),_u=w(16400,ya),gr=w(16401,Ia),pi=w(16402,yu),mr=w(16403,Iu),fi=w(16404,Ia),pr=w(16641,Ca),yi=w(16642,hn),fr=w(16643,Mn),Ii=w(16644,Ca),yr=w(16645,Sa),Ci=w(16646,hn),Du=w(16647,Mn),Si=w(16648,Sa),Ir=w(16649,Aa),Ai=w(16650,hn),Gu=w(16651,Mn),Ri=w(16652,Aa),Cr=w(16653,Ut),Ei=w(16654,hn),Uu=w(16655,Mn),hi=w(16656,Ut),Sr=w(16657,Ut),Mi=w(16658,hn),ku=w(16659,Mn),Ti=w(16660,Ut),Ar=w(16661,Ra),vi=w(16662,hn),xu=w(16663,Mn),bi=w(16664,Ra),Bu=w(16665,Ea),Fu=w(16666,hn),wu=w(16667,Mn),Ni=w(16668,Ea),Rr=w(16669,ha),_i=w(16670,hn),Pu=w(16671,Mn),Di=w(16672,ha),fe=Re(Dl),_e=Re(_l),it=Re(Jl),Gi=Re(Cu),va=Re(Su),Ui=Re(Au),ba=Re(Ru),ki=Re(Sl),Na=Re(Al),xi=Re(Rl),_a=Re(El),Bi=Re(hl),Da=Re(Ml),Fi=Re(Tl),Ga=Re(vl),wi=Re(Il),Ua=Re(Cl),Pi=Re(nl),ka=Re(tl),Vi=Re(rl),Oi=Re(ol),ky=Re(il),xy=Re(sl),Ki=Re(ul),xa=Re(gl);Tu([kt,xt,go,mo,xn,po,fo,Bt,yo,Io,Co,So,Ao,Ft,Ro,Eo,wt,ho,Pt,Mo,Vt,Ot,To,vo,Kt,_o,Uo,Zt,Qt,ko,xo,Wt,Zn,Bo,Fo,Cn,wo,Lt,bo,Go,Po,Ht,Jt,Vo,Oo,Yt,Ko,Lo,rt,Xt,Zo,zt,Qo,qt,Wo,jt,Tn,Ho,$t,Jo,vu,er,Yo,Xo,nr,zo,qo,jo,tr,$o,ei,ni,rr,ti,bu,Nu,or,ri,ir,oi,ii,ai,sr,di,ar,ci,dr,li,cr,ui,lr,gi,ot,mi,ur,_u,gr,pi,mr,fi,pr,yi,fr,Ii,yr,Ci,Du,Si,Ir,Ai,Gu,Ri,Cr,Ei,Uu,hi,Sr,Mi,ku,Ti,Ar,vi,xu,bi,Bu,Fu,wu,Ni,Rr,_i,Pu,Di]);var en=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function Ku(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new en(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 en(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function Vu(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function Ly(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Zy(e){return e===void 0||Number.isInteger(e)}function Er(e){return e===void 0||e===0||e===1}function Ou(e){return e===void 0||typeof e=="string"}function Lu(e){if(!Ly(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===""||!Er(e.isBrowse)||!Er(e.isCancel)||!Er(e.isEdit)||!Er(e.isNotifyAll)||!Ou(e.notifyUsersName)||!Ou(e.parentMsgId)||!Er(e.readStatus)||!Zy(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new en("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function Qy(e){let n;try{if(n=Ku(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=fe.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof en?t:new en("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function hr(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(Ku(e,"INVALID_BASE64"));}catch(r){throw r instanceof en?r:new en("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 en("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return Lu(t),{envelope:t,message:Qy(t.msgContent)}}function Mr(e){let n=fe.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new en("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:Vu(n)};return Lu(t),Vu(new TextEncoder().encode(JSON.stringify(t)))}var Wy=new Uint8Array(0);function Li(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;Li(e.command,16,"command"),Li(n,8,"flags"),Li(t,8,"appId"),Li(r,32,"msgSeq");let o=e.body??Wy,i=o.length;if(12+i>1048576)throw new Error(`\u5E27 body \u8FC7\u5927\uFF1AbodyLen=${i}\uFF0CMsgLength \u5C06\u8D85\u8FC7\u4E0A\u9650 1048576`);let s=new Uint8Array(16+i),a=new DataView(s.buffer);return a.setUint32(0,12+i,false),a.setUint8(4,n),a.setUint8(5,t),a.setUint16(6,e.command,false),a.setUint32(8,i,false),a.setUint32(12,r,false),s.set(o,16),s}function Ba(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 s=t.getUint32(r+8,false);if(o!==12+s)throw new Error(`\u5E27\u957F\u5EA6\u4E0D\u5339\u914D\uFF1AMsgLength=${o} \u4E0E BodyLen=${s} \u4E0D\u6EE1\u8DB3 MsgLength=12+BodyLen`);let a={msgLength:o,flags:t.getUint8(r+4),appId:t.getUint8(r+5),command:t.getUint16(r+6,false),bodyLen:s,msgSeq:t.getUint32(r+12,false)},d=e.subarray(r+16,r+i);n.push({header:a,body:d}),r+=i;}return {frames:n,remainder:e.subarray(r)}}var Hy=5;function Bn(e,n,t){let r=ht(e.sFromId,e.botId),o=Number(e.msgTime),i=le(e.sMsgId),s=Gn(n,t.selfId),a=s.contentType==="text",d=o>0?o:t.receivedAt??Date.now(),g={id:i,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:s.contentType,body:s.body,createdAt:d,sortKey:Ae(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=le(e.parentMsgId)),t.edited===true&&(g.edited=true);let f=Jy(e,a?n.content:"");return f!==void 0&&(g.mention=f),t.keepRaw&&(g.raw=qy(e,n,t.cmdId)),g}function st(e,n){let t=Zu(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=Qu(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function Jy(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=Qu(e.sNotifyUsers.map(a=>a.toString()),Zu(n)),{ranges:o,atUsersName:i}=Yy(e.extend);if(!t&&r.length===0&&o===void 0&&i===void 0)return;let s={atAll:t,atUserIds:r};return o!==void 0&&(s.ranges=o),i!==void 0&&(s.atUsersName=i),s}function Zu(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 Qu(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 Yy(e){if(e==="")return {};try{let n=JSON.parse(e),t=Xy(n.atRange),r=zy(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function Xy(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:s}=r;(typeof o=="string"||typeof o=="number")&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&typeof s=="number"&&Number.isInteger(s)&&s>=i&&n.push({userId:String(o),start:i,end:s});}return n.length>0?n:void 0}function zy(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 qy(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 Tr(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:Se(e.id),msgType:Hy,encrypt:e.encryption.encrypted?1:0,bMessage:gn(e.body)};return e.mention!==void 0&&Object.assign(t,jy(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=Xe(e.refMessageId)),t}function jy(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=$y(e);return t!==void 0&&(n.extend=t),n}function $y(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 Le=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function vr(e){return e instanceof en||e instanceof Le?e.code:"INVALID_SNAPSHOT"}function Zi(e,n){let t=hr(e),{envelope:r}=t;if(r.convType!==2)throw new Le("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new Le("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 Le("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let a=Cn.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=Bn(a,t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new Le("INVALID_SNAPSHOT","board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A\u7FA4\u6D88\u606F",{cause:a})}let s=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:s,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function eI(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new Le("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 Le("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=fe.create(gn(e.body)),r=Mr({envelope:{convType:2,msgContent:"",msgId:Se(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?"":Xe(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:r,pinnedMessage:Zi(r,{conversationId:e.conversationId})}}function Qi(e,n){let t=hr(e),{envelope:r}=t;if(r.convType!==3)throw new Le("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new Le("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 Le("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let a=r.nIncrId??"0";i=yn(Tn.create({sRadioId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgTime:BigInt(r.msgTime),encrypt:0,sId:a,nIncrId:BigInt(a),parentMsgId:r.parentMsgId??"",isEdit:r.isEdit===1?"1":""}),t.message,{selfId:"",edited:r.isEdit===1});}catch(a){throw new Le("INVALID_SNAPSHOT","channel board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A CHANNEL \u6D88\u606F",{cause:a})}let s=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:s,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function nI(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new Le("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 Le("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=fe.create(gn(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",i=Mr({envelope:{convType:3,msgContent:"",msgId:Se(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?"":Xe(e.refMessageId),readStatus:e.receipt==="read"?1:0,sendStatus:1},message:t});return {messageContent:i,pinnedMessage:Qi(i,{conversationId:e.conversationId})}}var tI=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 rI(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function Fn(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||Ws(n.eventType)||!rI(e,n.eventType))return e;let t=tI.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 oI={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"},Wu=new Set([17,18,22,23,24]),iI=20;function Wi(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?wa(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&Wu.has(n.rawNotifyType)&&n.fallbackText!==void 0,i=n.operatorId,s=t==="channel_member_left"&&(n.targetUserIds===void 0||n.targetUserIds.length===0)&&i!==void 0&&i!=="";if(!r&&!o&&!s)return Fn(e);let a={...n,eventType:t};return o&&delete a.fallbackText,s&&i!==void 0&&(a.targetUserIds=[i]),Fn({...e,body:{...e.body,system:a}})}function Hu(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(!Hu(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return Wi({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function wa(e){return oI[e]??"channel_unknown"}function br(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=le(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,s={eventType:wa(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(s.operatorId=e.operatorId.toString());let a=e.targetUserIds?.filter(d=>d>0n).map(d=>d.toString())??[];if(a.length>0&&(s.targetUserIds=a),e.content!==void 0&&e.content!==""&&!Wu.has(e.notifyType)&&(s.fallbackText=e.content),e.notifyType===23)try{s.pinnedMessageAction={type:"pin",pinnedMessage:Qi(e.content??"",{conversationId:e.channelId.toString(),...s.operatorId===void 0?{}:{operatorId:s.operatorId}})};}catch(d){s.pinnedMessageAction={type:"invalid",code:vr(d)};}else e.notifyType===24&&(s.pinnedMessageAction={type:"unpin"});return Wi({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:s},createdAt:o,...r>0?{serverTime:r}:{},sortKey:Ae(o,i===void 0?t:`${i.padStart(iI,"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 Nr(e){return /^\[[^[\]\s]+\]$/.test(e)}function _r(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function sI(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function aI(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function Pa(e,n,t){let r=new Map;for(let a of e){let d=r.get(a.senderId);(d===void 0||sI(d,a)<0)&&r.set(a.senderId,a);}let o=new Map,i;for(let a of r.values()){if(a.action===1)continue;let d=o.get(a.emoji)??{participants:[],latestAt:0};d.participants.push(a.senderId),d.latestAt=Math.max(d.latestAt,a.createdAt),o.set(a.emoji,d),a.senderId===n&&(i=a.emoji);}let s=[...o.entries()].map(([a,d])=>Object.freeze({emoji:a,count:d.participants.length,mine:d.participants.includes(n),latestAt:d.latestAt,participantIds:Object.freeze([...d.participants].sort())})).sort((a,d)=>Number(d.mine)-Number(a.mine)||d.latestAt-a.latestAt||a.emoji.localeCompare(d.emoji));return Object.freeze({version:t,total:[...o.values()].reduce((a,d)=>a+d.participants.length,0),...i===void 0?{}:{currentUserEmoji:i},events:Object.freeze(e.map(aI)),aggregates:Object.freeze(s)})}function Va(e,n,t){if(!Nr(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(_r(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:Pa([...e?.events??[],n],t,(e?.version??0)+1)}function Oa(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 Pa(r,t,e.version+1)}function Ka(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 Pa([...r.values()],t,Math.max(e.version,n.version))}var Ju={unread:0,delivered:1,read:2};function Hi(e,n){return Ju[n]>Ju[e]?n:e}function Yu(e,n){return e==="sent"||n==="sent"?"sent":n}function at(e,n,t=""){let r=io(e)??0,o=io(n)??0,i=o>=r,s=i?{...e,...n}:{...n,...e},a=Math.max(r,o),d=Math.min(e.createdAt,n.createdAt),g=e.extensions===void 0&&n.extensions===void 0?void 0:i?{...e.extensions,...n.extensions}:{...n.extensions,...e.extensions},f=fn({...s,createdAt:d,serverTime:a,extensions:g}),N=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":Yu(e.status,n.status),S=N==="failed"?n.failure??e.failure:void 0,E=Ka(e.reactions,n.reactions,t),D=e.encryption.decryptFailed===true,_=n.encryption.decryptFailed===true,m=s.contentType,I=s.body,A=s.encryption,v=s.mention;D&&!_?(m=n.contentType,I=n.body,A=n.encryption,v=n.mention):!D&&_&&(m=e.contentType,I=e.body,A=e.encryption,v=e.mention),n.edited===true&&!_&&(m=n.contentType,I=n.body,A=n.encryption,v=n.mention);let B=e.body.voice?.waveform??n.body.voice?.waveform;if(I.voice!==void 0&&I.voice.waveform===void 0&&B!==void 0&&(I={...I,voice:{...I.voice,waveform:B}}),I.video!==void 0&&I.video.size===void 0){let K=I.video,O=[e.body.video,n.body.video].find(P=>P?.sizeUnit==="bytes"&&P.size!==void 0&&P.url===K.url&&P.fileEncryptType===K.fileEncryptType&&P.md5===K.md5&&Sn(P.teaKey,K.teaKey)&&(K.unverifiedFileLength===void 0||K.unverifiedFileLength===String(P.size)));O!==void 0&&(I={...I,video:{...K,size:O.size,sizeUnit:"bytes"}});}let J=e.edited===true||n.edited===true,re=e.deletedForEveryone??n.deletedForEveryone;if(re!==void 0){let K={...s,id:e.id,createdAt:d,serverTime:a>0?a:void 0,status:N,failure:S,receipt:Hi(e.receipt,n.receipt),sortKey:f,extensions:g,recalled:void 0,deletedForEveryone:re,body:{},encryption:s.encryption};return delete K.reactions,K}let se=e.recalled??n.recalled;if(se!==void 0){let K={...s,id:e.id,createdAt:d,serverTime:a>0?a:void 0,status:N,failure:S,receipt:Hi(e.receipt,n.receipt),sortKey:f,extensions:g,recalled:se,body:{},encryption:s.encryption};return delete K.reactions,K}let Z={...s,id:e.id,createdAt:d,serverTime:a>0?a:void 0,status:N,failure:S,receipt:Hi(e.receipt,n.receipt),sortKey:f,extensions:g,contentType:m,body:I,encryption:A,...E===void 0?{}:{reactions:E},...J?{edited:true}:{}};return v!==void 0?Z.mention=v:delete Z.mention,Z}function dI(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 wn(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:at(o,r,n));}return [...t.values()]}function cI(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function lI(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 uI(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&&EI(e.targetUserIds,n.targetUserIds)&&La(e.payload,n.payload)&&La(e.action,n.action)&&La(e.pinnedMessageAction,n.pinnedMessageAction)}function gI(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&&Sn(e.teaKey,n.teaKey)}function mI(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 pI(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&&Sn(e.thumbData,n.thumbData)}function fI(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function yI(e,n){return e===void 0||n===void 0?e===n:JSON.stringify(e.modules)===JSON.stringify(n.modules)&&JSON.stringify(e.commands)===JSON.stringify(n.commands)}function II(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 CI(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 SI(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 AI(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 RI(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function EI(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function La(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function hI(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:lI(e.atUsersName,n.atUsersName)}function Sn(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function MI(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&Sn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&Sn(e.teaKey,n.teaKey)}function TI(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&&e.durationUnit===n.durationUnit&&e.sizeUnit===n.sizeUnit&&e.unverifiedFileLength===n.unverifiedFileLength&&Sn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&Sn(e.teaKey,n.teaKey)}function vI(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&&Sn(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function bI(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&&Sn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&Sn(e.teaKey,n.teaKey)&&e.hd===n.hd}function NI(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)=>bI(t,n.items[r]))}function Qn(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&&uI(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??"")&&dI(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&hI(e.mention,n.mention)&&MI(e.body.image,n.body.image)&&TI(e.body.video,n.body.video)&&vI(e.body.voice,n.body.voice)&&gI(e.body.file,n.body.file)&&pI(e.body.sticker,n.body.sticker)&&mI(e.body.contact,n.body.contact)&&II(e.body.miniProgram,n.body.miniProgram)&&yI(e.body.robot,n.body.robot)&&fI(e.body.game,n.body.game)&&SI(e.body.transfer,n.body.transfer)&&CI(e.body.call,n.body.call)&&AI(e.body.redPacket,n.body.redPacket)&&NI(e.body.mediaAlbum,n.body.mediaAlbum)&&RI(e.body.unknown,n.body.unknown)&&cI(e.failure,n.failure)}var _I=20;function dt(e){let n=new Set;for(let t of e){let r=t.trim();r!==""&&n.add(Xe(r));}return [...n]}function ct(e){let n=new Set;for(let t of e)t!==""&&n.add(le(t));return [...n]}var Xu=2;function DI(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function Dr(e){let n=it.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:DI(n.action)}}function Gr(e,n){let t=Dr(e.sContent),r=e.sFromId.toString();return {id:le(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:le(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function Ur(e){let n=Dr(e.sContent);return {id:le(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:le(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Za(e){let n=Dr(e.sContent);return {id:le(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:le(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Qa(e){if(e.eventType===Xu)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=Dr(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function Wa(e){let n=Dr(e.sContent);return {id:le(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:le(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Ji(e,n,t){return n===e?t:n}var GI=102,zu=1,UI=2;function Ha(e,n){let t=le(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),i=e.nCancelType===1,s=i?String(e.sGroupId):Ji(n,r,String(e.sToId)),a=Number(e.msgTime)||o;return {id:t,conversationId:s,conversationType:i?"group":"direct",senderId:r,contentType:"text",body:{},createdAt:a,sortKey:Ae(a,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function Ja(e){let n=le(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:Ae(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function Ya(e){let n=le(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:Ae(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function Xa(e){let n=le(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:Ae(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 kr(e,n){if(n.contentType!==GI||n.type!==zu&&n.type!==UI||!rn(n.content))return null;let t=le(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:Ae(o,t),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0}};return n.type===zu?{...i,deletedForEveryone:{by:r,at:o,reason:"channel-moderation"}}:{...i,recalled:{by:r,at:o}}}var kI=fe.create({contentType:1,content:""}),xI=101;function qu(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 BI(e){return Pi.encode(Pi.create({sUserId:xr(e.userId,"user"),clientType:e.clientType,lsChnnInfo:e.channels.map(n=>({sChnnId:xr(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function ju(e){return Vi.encode(Vi.create({sUserId:xr(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:xr(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function FI(e){return ju({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function wI(e,n,t){let r=ka.decode(e);ng(r.errcode,"sessions");let o=qa(n.expectedChannelIds);return {sessions:r.lsSession.map(i=>{let s=i.sChnnId.toString();ja(s,o,"sessions");let a=qu(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=za(i.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);d!==null&&(a.last=d);}return a})}}function $u(e,n,t){let r=Oi.decode(e);ng(r.errcode,"offlineMessages");let o=qa(n.expectedChannelIds),i={},s={},a=[];for(let d of r.lsMessage){let g=d.sChnnId.toString();ja(g,o,"offlineMessages"),i[g]=d.sIndex,s[g]=(s[g]??0)+1;let f=za(d,n,t);f!==null&&a.push(f);}return {messages:wn(a,n.selfId).sort(Oe),batchSize:r.lsMessage.length,messageCounts:s,nextBaseIndexes:i}}function eg(e,n,t,r="specificMsgs"){let o=qa(n.expectedChannelIds),i=[];for(let s of e){let a=s.sChnnId.toString();ja(a,o,r);let d=za(s,n,t);d!==null&&i.push(d);}return wn(i,n.selfId).sort(Oe)}function PI(e){return Ki.encode(Ki.create({sUserId:BigInt(e.userId),sChnnId:xr(e.channelId,"channel"),lsMsgId:dt(e.messageIds),clientType:e.clientType??0}))}function VI(e,n,t){let r=xa.decode(e);return {messages:eg(r.lsMessage,n,t,"msg/by_id"),missingMessageIds:ct(r.lsMissingMsgId),code:r.errcode}}function OI(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=Oi.decode(e),o=$u(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 za(e,n,t){if(Qa(e)){try{n.onReaction?.(Wa(e));}catch(s){n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:s});}return null}if(e.uOperationType===1||e.uOperationType===2)return Xa(e);let r=kI,o=false;if(e.encrypt===0)try{r=fe.decode(e.sContent);}catch(s){return n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:s}),$c(e,e.sContent.length,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:true})}else if(e.encrypt===1&&t!==void 0){let s=t.resolveUserPrivateKey?.()??null;if(s===null)o=true,t.onDecryptError?.(vn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let a;try{if(a=_e.decode(e.sContent),a.secretKey.length===0||a.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(d){o=true,t.onDecryptError?.(vn(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:d})),a=_e.create();}if(!o){let d;try{d=t.crypto.decryptEndToEnd({secretKey:a.secretKey,cipherData:a.cipherData,privateKey:s});}catch(g){o=true,t.onDecryptError?.(vn(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,cause:g})),d=new Uint8Array;}if(!o)try{r=fe.decode(d);}catch(g){o=true,t.onDecryptError?.(vn(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:a.cipherData.length,decryptedByteLength:d.length,cause:g}));}}}}else if(e.encrypt===2&&t!==void 0){let s=e.sChnnId.toString(),a=t.resolveChannelKey(s);if(a===null||a.length!==16)o=true,t.onDecryptError?.(vn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:a?.length??0,keySource:a===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?.(vn(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:a.length,keySource:"cache",cause:g})),d=new Uint8Array;}if(!o){let g;try{g=t.crypto.decryptSymmetric({teaKey:a,cipherData:d});}catch(f){o=true,t.onDecryptError?.(vn(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:d.length,cause:f})),g=new Uint8Array;}if(!o)try{r=fe.decode(g);}catch(f){o=true,t.onDecryptError?.(vn(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:a.length,keySource:"cache",cipherDataByteLength:d.length,decryptedByteLength:g.length,cause:f}));}}}}else o=true,t?.onDecryptError?.(vn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o){let s=kr({channelId:e.sChnnId,senderId:e.sFromId,msgTime:e.msgTime,encrypt:e.encrypt},r);if(s!==null)return s}if(!o&&r.contentType===xI)return br({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=ea(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 vn(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 qa(e){return e===void 0?void 0:new Set(e)}function ja(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 xr(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function KI(e,n,t){let r=Gn(n,t),{decryptFailed:o,...i}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:i}}var Yi="system",LI=32768;function tg(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 $a(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?Fn(e):Fn({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function ZI(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 Br(e,n){let t=le(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=e.sOprUserId===0n?void 0:e.sOprUserId.toString(),s=e.sMnpledUserId.map(S=>S.toString()),a={eventType:tg(e.notifyType),rawNotifyType:e.notifyType},d=Number(e.errcode);d!==0&&(a.errcode=d),i!==void 0&&(a.operatorId=i),s.length>0&&(a.targetUserIds=s);let g=e.notifyType===12,f=e.notifyType===13;!g&&!f&&e.sContent!==""&&(a.fallbackText=e.sContent);let y=g||f?void 0:ZI(e.sContent);if(y!==void 0&&(a.payload=y),g)try{a.pinnedMessageAction={type:"pin",pinnedMessage:Zi(e.sContent,{conversationId:e.sGrpId.toString(),...i===void 0?{}:{operatorId:i}})};}catch(S){a.pinnedMessageAction={type:"invalid",code:vr(S)};}else f&&(a.pinnedMessageAction={type:"unpin"});let N={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:Yi,contentType:"system",body:{system:a},createdAt:o,sortKey:Ae(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(N.serverTime=r),n.keepRaw&&(N.raw={cmdId:n.cmdId}),$a(N)}function ed(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!==LI?null:{state:"active",reason:""}}default:return null}}function nd(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var QI=new Set([8196,8976]),rg=fe.create({contentType:1,content:""});function WI(e){return xi.encode(xi.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function HI(e){return ki.encode(ki.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function JI(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 fe.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 Xi(e,n,t){if(e.cmdId===8980){let d=Cn.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?.(Ur(g)),null}if(e.cmdId===8708)return Br(rt.decode(e.sMsgData),{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw});if(!QI.has(e.cmdId))return null;let r=Cn.decode(e.sMsgData),o=rg,i=false,s=false;if(r.encrypt===0)try{o=fe.decode(r.sContent);}catch{s=true;}else if(r.encrypt===1&&t!==void 0){let d=JI(r,r.sGrpId.toString(),t);o=d??rg,i=d===null;}else i=true;let a=Bn(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return s&&(a.contentType="unknown",a.body={unknown:{reason:"malformed-content"}},a.raw={...a.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:a.conversationId},messageId:a.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:n.source??"offline",createdAt:Date.now()}),a.refMessageId===void 0&&e.parentMsgId&&(a.refMessageId=le(e.parentMsgId)),e.isEdit===1&&(a.edited=true),a}function YI(e,n,t){let r=_a.decode(e),o=[],i=[];for(let s of r.msgList){i.push({msgId:s.sMsgId,msgTime:s.msgTime,cmdId:s.cmdId});let a=Xi(s,n,t);a!==null&&o.push(a);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function XI(e,n,t){let r=Na.decode(e),o=[],i=[];for(let s of r.sessionList){o.push({groupId:s.groupId.toString(),unreadCount:Number(s.unreadCount)});for(let a of s.msgList){let d=Xi(a,n,t);d!==null&&i.push(d);}}return {unreads:o,messages:i}}function zI(e){return Bi.encode(Bi.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 qI(e,n,t){let r=Da.decode(e),o=[];for(let s of r.msgList){let a=Xi(s,n,t);a!==null&&o.push(a);}let i=r.msgList.map(s=>Number(s.msgTime));return {messages:o,batchSize:r.msgList.length,...i.length===0?{}:{oldestEntryTime:Math.min(...i),newestEntryTime:Math.max(...i)}}}function jI(e){return Fi.encode(Fi.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),msgIds:dt(e.messageIds),clientType:e.clientType??0}))}function $I(e,n,t){let r=Ga.decode(e),o=[];for(let i of r.msgList){let s=Xi(i,n,t);s!==null&&(i.isCancel===1&&(s.recalled={by:s.senderId,at:s.serverTime??s.createdAt},s.body={}),o.push(s));}return {messages:o,missingMessageIds:ct(r.missingMsgIds),code:r.code}}function eC(e){return wi.encode(wi.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function nC(e){return {code:Ua.decode(e).code}}var tC=1;function lt(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),i=Number(e.msgTime),s=le(e.sMsgId),a=Gn(n,t.selfId),d=i>0?i:t.receivedAt??Date.now(),g={id:s,conversationId:Ji(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:a.contentType,body:a.body,createdAt:d,sortKey:Ae(d,s),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=le(e.parentMsgId)),t.edited===true&&(g.edited=true),t.keepRaw&&(g.raw=rC(e,n,t.cmdId)),g}function rC(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 Fr(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:Se(e.id),msgType:tC,encrypt:e.encryption.encrypted?1:0,bMessage:gn(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:Xe(e.refMessageId)}:{}}}function td(e){return {id:le(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function zi(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 oC(e){return Gi.encode(Gi.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var iC=new Set([4100,4113,4644,4645]),og=fe.create({contentType:1,content:""});function sC(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 fe.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 aC(e,n,t){let r=va.decode(e),o=[],i=[];for(let s of r.msgList){i.push({msgId:s.sMsgId,msgTime:s.msgTime,cmdId:s.cmdId});let a=ig(s,n,t);a!==null&&o.push(a);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function ig(e,n,t){if(e.cmdId===4653){let d=xn.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?.(Gr(g,n.selfId)),null}if(!iC.has(e.cmdId))return null;let r=xn.decode(e.sMsgData),o=og,i=false,s=false;if(r.encrypt===0)try{o=fe.decode(r.sContent);}catch{s=true;}else if(r.encrypt===1&&t!==void 0){let d=sC(r,t);o=d??og,i=d===null;}else i=true;let a=lt(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return s&&(a.contentType="unknown",a.body={unknown:{reason:"malformed-content"}},a.raw={...a.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:a.conversationId},messageId:a.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:"offline",createdAt:Date.now()}),a.refMessageId===void 0&&e.parentMsgId&&(a.refMessageId=le(e.parentMsgId)),e.isCancel===1&&(a.recalled={by:a.senderId,at:a.serverTime??a.createdAt},a.body={}),e.isEdit===1&&(a.edited=true),a}function dC(e){return Ui.encode(Ui.create({userId:BigInt(e.userId),msgIds:dt(e.messageIds),clientType:e.clientType??0}))}function cC(e,n,t){let r=ba.decode(e),o=[];for(let i of r.msgList){let s=ig(i,n,t);s!==null&&o.push(s);}return {messages:o,missingMessageIds:ct(r.missingMsgIds),code:r.code}}function tn(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 ut(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 lC(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]),s=n?.[3]===void 0?void 0:Number(n[3]);if(i!==void 0){let a=r.getMonth()+1;(a<i||a===i&&s!==void 0&&r.getDate()<s)&&(o-=1);}return o>=0&&o<200?o:void 0}function uC(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 gC(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 s=i.trim(),a=o.mobile.trim();return s===""||a===""?[]:[{countryCode:s,mobile:a}]});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 mC=["user_id","userId","id","uid"],pC=["nick_name","nickName","nickname","name"],fC=["remark_name","remarkName"],yC=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],IC=["per_signature","signature","sign"],CC=["mid"],SC=["birthday"],AC=["public_key","publicKey"],sg=["is_undisturb","isUndisturb"];function RC(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=tn(t,mC);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:tn(t,pC)??""},i=tn(e,fC);i!==void 0&&(o.remark=i);let s=tn(t,yC);s!==void 0&&(o.avatar=s);let a=tn(t,IC);a!==void 0&&(o.signature=a);let d=tn(t,CC);d!==void 0&&(o.miCallId=d);let g=tn(t,SC);if(g!==void 0){o.birthday=g;let E=lC(g);E!==void 0&&(o.age=E);}let f=uC(e);f.length>0&&(o.remarkEmail=f);let y=gC(e);y.length>0&&(o.remarkPhones=y);let N=tn(t,AC);N!==void 0&&(o.publicKey=N);let S=ut(e,sg);return S!==void 0&&(o.muted=S===1),o}var EC=["group_id","groupId","id","gid"],hC=["group_name","groupName","name"],MC=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],TC=["total_users","member_count","memberCount","member_num","memberNum"],vC=["status"],bC=["is_ingroup","isInGroup","isIngroup"],NC=["user_id","userId","owner_id","ownerId","master_id","masterId"],_C=["verify_way","verifyWay"],DC=["invite_code","inviteCode"];function GC(e){let n=tn(e,EC);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:tn(e,hC)??""},r=tn(e,MC);r!==void 0&&(t.avatar=r);let o=ut(e,TC);o!==void 0&&(t.memberCount=o);let i=ut(e,vC);i!==void 0&&(t.status=i);let s=ut(e,bC);s!==void 0&&(t.isInGroup=s===1);let a=tn(e,NC);a!==void 0&&(t.ownerId=a);let d=ut(e,_C);d!==void 0&&(t.verifyWay=d);let g=tn(e,DC);g!==void 0&&(t.inviteCode=g);let f=e.to_user;if(f!==null&&typeof f=="object"){let y=ut(f,sg);y!==void 0&&(t.muted=y===1);}return t}function UC(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function kC(e){if(Wn(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.encryption.decryptFailed===true)return {kind:"decrypt-failed"};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:Fs(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,r=n[0]?.kind;return {kind:"mediaAlbum",imageCount:n.filter(o=>o.kind==="image").length,videoCount:n.filter(o=>o.kind==="video").length,...t!==void 0&&t.trim()!==""?{caption:t}:{},...r===void 0?{}:{firstItemKind:r}}}if(e.contentType==="contact")return {kind:"contact"};if(e.contentType==="miniProgram")return {kind:"miniProgram"};if(e.contentType==="robot")return {kind:"robot"};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 xC(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)&&BC(e.targetUserIds,n.targetUserIds)&&FC(e.payload,n.payload)}function Wn(e){return e.body.system?.timelineVisibility!=="hidden"}function BC(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function FC(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function rd(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 xC(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&&e.firstItemKind===t.firstItemKind}case "image":case "gif":case "video":case "file":case "sticker":case "contact":case "miniProgram":case "robot":case "transfer":case "redPacket":case "encrypted":case "decrypt-failed":case "unknown":return true}}function wC(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 od(e,n={}){let t=e.contentType==="system"&&Wn(e)?e.body.system:void 0,r=e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:UC(e),lastMessageSummary:kC(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:pn(e),unreadCount:n.unreadCount??0,mentionUnreadCount:n.mentionUnreadCount??0,pinned:false,muted:false,lastMessageSendState:wC(e,n.selfId)}}function dg(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 id(e,n){let t=Uint8Array.of(e<<3),r=dg(n),o=new Uint8Array(1+r.length);return o.set(t,0),o.set(r,1),o}function ag(e,n){let t=e<<3|2,r=dg(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 PC(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 gt(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 cg(e,n,t){if(t===0)return gt(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=gt(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 VC(e){let n=new TextEncoder,t=[id(1,BigInt(e.userId)),ag(2,n.encode(e.msgId??""))];for(let r of e.deliveredMsgIds??[])t.push(ag(3,n.encode(r)));return t.push(id(4,BigInt(e.limit??100))),t.push(id(5,BigInt(e.clientType??0))),PC(t)}function OC(e){let n=0,t=0,r=new Uint8Array(0),o="",i=new TextDecoder;for(;n<e.length;){let s=e[n];n+=1;let a=s>>>3,d=s&7;if(a===1&&d===0){let g=gt(e,n);t=Number(g.value),n=g.offset;continue}if(a===2&&d===2){let g=gt(e,n),f=g.offset+Number(g.value);if(f>e.length)throw new Error("signal offline: sMsgData \u8D8A\u754C");r=new Uint8Array(e.subarray(g.offset,f)),n=f;continue}if(a===3&&d===2){let g=gt(e,n),f=g.offset+Number(g.value);if(f>e.length)throw new Error("signal offline: sMsgId \u8D8A\u754C");o=i.decode(e.subarray(g.offset,f)),n=f;continue}n=cg(e,n,d);}return {cmdId:t,body:r,msgId:o}}function KC(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 s=gt(e,t),a=s.offset+Number(s.value);if(a>e.length)throw new Error("signal offline: msgList \u8D8A\u754C");n.push(OC(e.subarray(s.offset,a))),t=a;continue}t=cg(e,t,i);}return {items:n,deliveredMsgIds:n.map(r=>r.msgId).filter(r=>r!=="")}}var lg=-5,Hn=-4,LC=new Set(["image","video","voice","file","sticker"]);function ZC(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.robot!==void 0&&n.push("robot"),e.unknown!==void 0&&n.push("unknown"),n.length===1?n[0]:void 0}function Pn(e){let n=$a(Wi(Fa(e)));if(n.body.video!==void 0){let i=oo(n.body.video);i!==n.body.video&&(n={...n,body:{...n.body,video:i}});}n.body.game!==void 0&&!Mt(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!Rc(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}});let t=ZC(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=Fn(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 sd(e){if(e.status==="uploading"){let n=LC.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:lg,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===Hn){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 QC(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function qi(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 ug(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 mg(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=ug(e),i=ug(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 gg(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function pg(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function ad(e,n){let t=new Map,r=new Set(n.map(s=>s.id)),o=new Map(n.map(s=>[s.id,s]));for(let s of n){let a=gg(s);a!==null&&t.set(a,[...t.get(a)??[],s]);}if(t.size===0)return [...n];for(let s of e){let a=gg(s);a===null||!t.has(a)||r.has(s.id)||t.get(a)?.push(s);}let i=[];for(let s of t.values()){let d=s.reduce(mg).body.transfer;if(d!==void 0)for(let g of s){let f=g.body.transfer;if(f===void 0||pg(f,d))continue;let y={...g,body:{transfer:qi(f,d)}};r.has(g.id)?o.set(g.id,y):i.push(y);}}return [...n.map(s=>o.get(s.id)??s),...i]}function ji(e,n,t,r){let o=[];for(let i of e){if(!QC(i,n))continue;let s=i.body.transfer;if(s===void 0)continue;let a={...s,status:t,...t===1&&r!==void 0?{receiveTime:r}:{},...t===2||t===3?{returnTime:r??s.returnTime}:{}},d={...i,body:{transfer:a}};mg(i,d)!==d||pg(s,a)||o.push({...i,body:{transfer:a}});}return o}function dd(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 fg(e,n,t=e.encrypt){return Tn.encode(Tn.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 HC(e,n,t){return z({command:12289,body:fg(e,n,t)})}function yg(e){return fe.encode(fe.create(e.bMessage))}function ld(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:yg(e)}),o=_e.encode(_e.create({cipherData:r}));return fg(e,o,2)}function Ig(e){return HC(e,yg(e),0)}function Cg(e,n,t){return z({command:12289,body:ld(e,n,t)})}function ud(e,n){let t=xn.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 xn.encode(t)}function Sg(e,n){return z({command:4097,body:ud(e,n)})}function Ag(e,n){let t=ud(e,n);return [z({command:4097,body:t}),z({command:4113,body:t})]}function gd(e){return fe.encode(fe.create(e.bMessage))}function md(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:gd(e),publicKey:t});return _e.encode(_e.create({secretKey:r,cipherData:o}))}function Rg(e){return Sg(e,gd(e))}function Eg(e){return Ag(e,gd(e))}function hg(e,n,t){return Sg(e,md(e,n,t))}function Mg(e,n,t){return Ag(e,md(e,n,t))}function Tg(e,n,t){return ud(e,md(e,n,t))}function vg(e,n,t){let r=Cn.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 Cn.encode(r)}function bg(e,n,t){return z({command:8193,body:vg(e,n,t)})}function Ng(e){return fe.encode(fe.create(e.bMessage))}function _g(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Ng(e),publicKey:t});return _e.encode(_e.create({secretKey:r,cipherData:o}))}function Dg(e){return bg(e,Ng(e))}function Gg(e,n,t,r){return bg(e,_g(e,n,t),r)}function Ug(e,n,t,r){return vg(e,_g(e,n,t),r)}function kg(e){let n=No.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:Se(e.messageId),content:e.content});return z({command:4644,body:No.encode(n)})}function xg(e){let n=Do.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:Se(e.messageId),content:e.content});return z({command:8976,body:Do.encode(n)})}function Bg(e){let n=si.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:Se(e.messageId),content:e.content,IncrId:e.incrementId});return z({command:12808,body:si.encode(n)})}function Fg(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 wg(){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=Fr({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),i=Tg(o,t.crypto,r);return {ok:true,frame:kg({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:i})}}}}function Pg(){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=Tr({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),i=Ug(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:xg({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:i})}}}}function JC(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 s=t.serverTime??t.createdAt,a=vt({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:s}),d=ld(a,r.crypto,i),g=t.extensions?.channelSequence,f=typeof g=="string"&&/^\d+$/.test(g)?BigInt(g):0n;return {ok:true,frame:Bg({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:d,incrementId:f})}}}}function pd(){return Fg([wg(),Pg()])}var Vg=120*1e3,YC=15e3;function fd(e){let n=e.now??(()=>Date.now()),t=e.strategies??pd(),r=new Map;function o(i,s){let a=r.get(i);a!==void 0&&(clearTimeout(a.timer),r.delete(i),a.resolve(s));}return {edit(i){let s=e.domainState.getConversationMessage(i,i.messageId);if(s===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationId!==s.conversationId||i.conversationType!==s.conversationType)return Promise.resolve({ok:false,reason:"not-found"});let a=e.getSelfId();if(s.senderId!==a)return Promise.resolve({ok:false,reason:"not-own"});if(s.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(s.recalled!==void 0)return Promise.resolve({ok:false,reason:"recalled"});if(s.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()-(s.serverTime??s.createdAt)>Vg)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let g=Se(i.messageId),f=r.get(g);if(f!==void 0)return f.promise;let y,N=new Promise(E=>{y=E;}),S={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,text:i.text,mention:i.mention,resolve:y,timer:setTimeout(()=>{},0),promise:N};return clearTimeout(S.timer),r.set(g,S),(async()=>{let E;try{E=await d.prepare(i,s,{selfId:a,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)&&(S.timer=setTimeout(()=>o(g,{ok:false,reason:"timeout"}),YC),e.sendFrame(E.frame));})(),N},onEditAck({sMsgId:i,errcode:s}){let a=r.get(i);if(a!==void 0){if(s===32768||s===0){e.domainState.editMessage({conversationId:a.conversationId,conversationType:a.conversationType},a.messageId,{text:a.text},a.mention),o(i,{ok:true});return}o(i,a.conversationType==="channel"?{ok:false,reason:"failed",errcode:s}:{ok:false,reason:"failed"});}},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function mt(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function an(e){if(e!==void 0)return new Uint8Array(e)}function XC(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function Jn(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 zC={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:XC},qC={contentType:"image",isContentReady:e=>mt(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=an(n.thumbData),r=an(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:Jn},jC={contentType:"video",isContentReady:e=>mt(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=an(n.thumbData),r=an(n.teaKey);return {video:{url:n.url,width:n.width,height:n.height,...n.duration!==void 0?{duration:n.duration,durationUnit:"seconds"}:{},...n.md5!==void 0?{md5:n.md5}:{},...n.size!==void 0?{size:n.size}:{},...n.sizeUnit!==void 0?{sizeUnit:n.sizeUnit}:{},...n.unverifiedFileLength!==void 0?{unverifiedFileLength:n.unverifiedFileLength}:{},...n.fileEncryptType!==void 0?{fileEncryptType:n.fileEncryptType}:{},...t!==void 0?{thumbData:t}:{},...r!==void 0?{teaKey:r}:{}}}},enqueue:Jn},$C={contentType:"file",isContentReady:e=>mt(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=an(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:Jn},eS={contentType:"mediaAlbum",isContentReady:e=>{let n=e.body.mediaAlbum;return n===void 0||n.items.length===0?false:n.items.every(t=>mt(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=an(t.thumbData),o=an(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:Jn};function nS(e){let n=an(e.thumbData),t=an(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 tS(e){let n=an(e.thumbData),t=an(e.teaKey);return {video:{url:e.url,width:e.width,height:e.height,...e.durationMs!==void 0?{duration:e.durationMs/1e3,durationUnit:"seconds"}:{},...e.md5!==void 0?{md5:e.md5}:{},...e.size!==void 0?{size:e.size,sizeUnit:"bytes"}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...n!==void 0?{thumbData:n}:{},...t!==void 0?{teaKey:t}:{}}}}function Og(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"}:mt(r.url)?{ok:true,contentType:r.kind,body:r.kind==="video"?tS(r):nS(r)}:{ok:false,reason:"item-not-ready"}}var rS={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?mt(n.url):qr(n.url)&&Kn(n.width)&&n.width>0&&Kn(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=an(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=>Jn({...e,encryption:{encrypted:false}})},oS={contentType:"game",isContentReady:e=>e.body.game!==void 0&&Mt(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:Jn},iS={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&&jn(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:Jn},sS=[zC,qC,jC,$C,eS,rS,oS,iS],aS=new Map(sS.map(e=>[e.contentType,e]));function wr(e){return aS.get(e)}function dS(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function $i(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:wr(e.contentType)!==void 0}function Kg(e){let n=wr(e.contentType);return n===void 0?false:n.isContentReady(e)}function yd(e){return $i(e)&&Kg(e)}var Lg=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram","robot","transfer","call","redPacket","mediaAlbum"]);function Id(e){return Lg.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true}function es(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 cS(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]),s=Number(t[4]);if(r>23||i>23||o>59||s>59)return false;let a=new Date(n),d=a.getHours()*60+a.getMinutes(),g=r*60+o,f=i*60+s;return g<=f&&g<=d&&d<=f}function Cd(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??es("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:es(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||cS(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:es(t.role,r),...o===void 0?{}:{muteReason:o}}}function Zg(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function Sd(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):Zg(t)-Zg(n))}var lS=new Set(["direct","group","channel","supergroup"]);function De(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function An(e){return {conversationType:e.type,conversationId:e.id}}function Vn(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function ie(e){if(!lS.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 bn(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 Qg(){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 Wg(e){let n=new Map,t=new Map;function r(i){if(typeof i!="string")return ie(i);let s=[...t.keys()].filter(a=>bn(a).conversationId===i);if(s.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${i}`);return s[0]}function o(i){let s=ie(De(i)),a=t.get(s);a===void 0&&(a=new Set,t.set(s,a)),a.add(i.id);}return {get:i=>n.get(i),getAll:()=>[...n.values()],getByConversation(i){let s=r(i),a=s===void 0?void 0:t.get(s);if(a===void 0)return [];let d=[];for(let g of a){let f=n.get(g);f!==void 0&&d.push(f);}return d.sort(Oe)},has:i=>n.has(i),get size(){return n.size},upsert(i,s){let a=n.get(i.id);if(a===void 0){let f={...i,sortKey:fn(i)};return n.set(i.id,f),o(f),{message:f,isNew:true,changed:true}}let d=at(a,i,e?.getSelfId?.()??""),g=s?.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:!Qn(a,g)}},delete(i,s){let a=n.get(s);if(a===void 0||a.conversationType!==i.conversationType||a.conversationId!==i.conversationId)return false;n.delete(s);let d=ie(i),g=t.get(d);return g?.delete(s),g?.size===0&&t.delete(d),true},deleteByConversation(i){let s=r(i);if(s===void 0)return;let a=t.get(s);if(a!==void 0){for(let d of a)n.delete(d);t.delete(s);}},clear(){n.clear(),t.clear();}}}var Pr=class extends Error{constructor(n){super(n instanceof Error?n.message:"\u672C\u5730\u6D88\u606F\u7A97\u53E3\u8BFB\u53D6\u5931\u8D25",{cause:n}),this.name="LocalMessageWindowReadError";}};function On(e){let n=Pn(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=st(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function Vr(...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 Hg(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=[],s,a,d=false,g=false;async function f(K,O){if(e.storage===void 0)return [];try{return await e.storage.getMessages(K,O)}catch(P){throw new Pr(P)}}let y=false,N,S=false,E=true,D,_=null;function m(){s=i[0],a=i.at(-1);}function I(){let K=i[0],O=i.at(-1);(!d||s===void 0||K!==void 0&&K.sortKey>=s.sortKey)&&(s=K),(!g||a===void 0||O!==void 0&&O.sortKey<=a.sortKey)&&(a=O);}function A(K){let O=i.filter(P=>(s===void 0||P.sortKey>=s.sortKey)&&(a===void 0||P.sortKey<=a.sortKey));if(O.length===0){let P=K==="start"?i.at(-1):i[0];s=P,a=P;return}K==="start"?s=O[0]:a=O.at(-1);}function v(K){if(!(n===void 0||i.length<=n)){if(K==="start"){i=i.slice(-n),d=true,A(K),N=void 0;return}i=i.slice(0,n),g=true,A(K),E=false,D=void 0;}}function B(K){if(n===void 0||i.length<=n)return;let O=i.findIndex(de=>de.sortKey===K);if(O<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let P=i.length-n,X=O-Math.floor((n-1)/2),ue=Math.min(P,Math.max(0,X)),q=ue+n,Ie=q<i.length;ue>0&&(d=true,N=void 0),Ie&&(g=true,E=false,D=void 0),i=i.slice(ue,q),ue>0&&A("start"),Ie&&A("end");}function J(K,O,P){return K.conversationId===O&&(P===null||K.conversationType===P)}function re(K,O,P){let X=K.filter(ue=>J(ue,O,P));if(P===null&&new Set(X.map(ue=>ue.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${O}`);return X}function se(K,O){return O===null?K:{conversationType:O,conversationId:K}}function Z(K,O=true){if(r!==null){for(let P of K){if(!J(P,r,o))continue;if(_!==null){_.push(P);continue}let X=i.findIndex(q=>q.id===P.id);if(X>=0){let q=i[X].sortKey!==P.sortKey;i[X]=P,q&&(i.sort(Oe),I()),s?.id===P.id&&s.sortKey===P.sortKey&&(s=P),a?.id===P.id&&a.sortKey===P.sortKey&&(a=P);continue}let ue=a;ue===void 0||P.sortKey>ue.sortKey?g||(i.push(P),i.sort(Oe),I()):s!==void 0&&P.sortKey>=s.sortKey&&(i.push(P),i.sort(Oe));}O&&v(g?"end":"start");}}return {async open(K,{limit:O}){let P=typeof K=="string"?K:K.conversationId,X=typeof K=="string"?null:K.conversationType,ue=++t;r=P,o=X,i=[],m(),d=false,g=false,y=false,N=void 0,S=false,E=true,D=void 0,_=[];try{let q=e.storage===void 0?[]:await f(se(P,X),{limit:O}),de=re(q,P,X).map(On).filter($=>e.shouldIncludeMessage?.($)??!0);if(ue!==t)return {conversationId:P,messages:de,stale:!0};let me=_??[];return i=[...de].sort(Oe),m(),d=de.length===O||e.loadOlderFromRemote!==void 0,S=e.loadOlderFromRemote!==void 0&&(de.length<O||X!==null&&e.shouldEstablishRemoteLatest?.({conversationType:X,conversationId:P},de)===!0),g=!1,E=!0,D=void 0,_=null,Z(me,!1),v("start"),{conversationId:P,messages:i,stale:!1}}finally{ue===t&&(_=null);}},async openAt(K,{anchorSortKey:O,limit:P,seedMessages:X,seedHasNewer:ue}){let q=typeof K=="string"?K:K.conversationId,Ie=typeof K=="string"?null:K.conversationType,de=r===q&&o===Ie&&_===null,me=++t;r=q,o=Ie;let $=()=>{s=void 0,a=void 0,d=false,g=false,y=false,N=void 0,S=false,E=true,D=void 0;};de||(i=[],$()),_=[];try{if(X!==void 0&&X.length>0){if(X.some(T=>!J(T,q,Ie)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${q}\uFF09`);let C=Vr(X).map(On).filter(T=>e.shouldIncludeMessage?.(T)??!0).sort(Oe);if(!C.some(T=>T.sortKey===O))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${q}\uFF09`);let R=_??[];return $(),i=C,m(),d=e.loadOlderFromRemote!==void 0,g=ue??C.length===P,E=!g,D=void 0,_=null,Z(R,!1),B(O),{conversationId:q,messages:i,stale:me!==t}}if(e.storage===void 0)return i=[],$(),{conversationId:q,messages:[],stale:me!==t};let[Me,V]=await Promise.all([f(se(q,Ie),{beforeSortKey:O,limit:P}),f(se(q,Ie),{afterSortKey:O,limit:P})]),u=re(Me,q,Ie).map(On).filter(C=>e.shouldIncludeMessage?.(C)??!0),M=re(V,q,Ie).map(On).filter(C=>e.shouldIncludeMessage?.(C)??!0);if(me!==t)return {conversationId:q,messages:Vr(u,M).map(On),stale:!0};let b=_??[];return $(),i=Vr(u,M).sort(Oe),m(),d=u.length===P||e.loadOlderFromRemote!==void 0,g=M.length===P,E=!g,D=void 0,_=null,Z(b,!1),B(O),{conversationId:q,messages:i,stale:!1}}finally{if(me===t){let Me=_;_=null,de&&Me!==null&&Z(Me);}}},async loadOlder({limit:K}){let O=r,P=o;if(O===null||!d)return {conversationId:O??"",messages:[],stale:false};let X=t,ue=e.storage===void 0||N!==void 0||S?[]:await f(se(O,P),{beforeSortKey:s?.sortKey,limit:K}),q=re(ue,O,P).map(On).filter(b=>e.shouldIncludeMessage?.(b)??true);if(X!==t||r!==O||o!==P)return {conversationId:O,messages:q,stale:true};let Ie=q.length===K,de=[...q],me=false;if(q.length>0&&(N=void 0),!Ie&&e.loadOlderFromRemote!==void 0&&!y){if(P===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 b=await e.loadOlderFromRemote({conversation:{conversationType:P,conversationId:O},oldestLoaded:q[0]??s,...N===void 0?{}:{cursor:N},intent:S?"establish-latest":"older",limit:K});if(X!==t||r!==O||o!==P)return {conversationId:O,messages:[],stale:true};S=false,y=b.exhausted,N=b.nextCursor;let C=re(b.messages,O,P),R=C.map(On).filter(T=>e.shouldIncludeMessage?.(T)??true);if(b.replaceWindow){if(!b.exhausted&&(b.nextCursor===void 0||b.nextCursor.trim()===""))throw new Error(`\u8FDC\u7AEF\u6700\u65B0\u8FDE\u7EED\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08conversationType=${P}, conversationId=${O}\uFF09`);let T=new Set(i.map(ne=>ne.id)),G=Vr(R).sort(Oe),k=G.at(-1)?.sortKey,L=k===void 0?i:i.filter(ne=>ne.sortKey>k);i=Vr(G,L).sort(Oe),m(),d=!y;let ae=G.filter(ne=>!T.has(ne.id));return v("start"),{conversationId:O,messages:ae,stale:false}}me=C.length>0&&R.length===0,me&&(y=true,N=void 0),de.push(...R);}let $=new Set(i.map(b=>b.id)),Me=new Set,V=de.filter(b=>$.has(b.id)||Me.has(b.id)?false:(Me.add(b.id),true)).sort(Oe);V.length>0&&(i=[...V,...i].sort(Oe));let u=[...de].sort(Oe),M=u[0];return M!==void 0&&(s===void 0||M.sortKey<s.sortKey)&&(s=M),a??=u.at(-1),d=Ie||e.loadOlderFromRemote!==void 0&&!y&&!me,d||(s=i[0]),v("end"),{conversationId:O,messages:V,stale:false}},async loadNewer({limit:K}){let O=r,P=o;if(O===null||!g)return {conversationId:O??"",messages:[],stale:false};let X=t,ue=a,q=ue?.sortKey,Ie=e.storage===void 0||q===void 0?[]:await f(se(O,P),{afterSortKey:q,limit:K+1}),de=re(Ie,O,P).map(On).filter(R=>e.shouldIncludeMessage?.(R)??true);if(X!==t||r!==O||o!==P)return {conversationId:O,messages:[],stale:true};let me=de.filter(R=>q===void 0||R.sortKey>q).slice(0,K),$=me.length===K,Me=[...me];if(me.length>0&&(D=void 0),!$&&e.loadNewerFromRemote!==void 0&&!E){if(P===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 R=await e.loadNewerFromRemote({conversation:{conversationType:P,conversationId:O},newestLoaded:me.at(-1)??ue,...D===void 0?{}:{cursor:D},limit:K});if(X!==t||r!==O||o!==P)return {conversationId:O,messages:[],stale:true};E=R.exhausted,D=R.nextCursor,Me.push(...re(R.messages,O,P).filter(T=>e.shouldIncludeMessage?.(T)??true));}let V=new Set(i.map(R=>R.id)),u=new Set,M=Me.filter(R=>q!==void 0&&R.sortKey<=q||V.has(R.id)||u.has(R.id)?false:(u.add(R.id),true)).sort(Oe);M.length>0&&(i=[...i,...M].sort(Oe));let b=[...Me].sort(Oe),C=b.at(-1);return C!==void 0&&(a===void 0||C.sortKey>a.sortKey)&&(a=C),s??=b[0],g=$||e.loadNewerFromRemote!==void 0&&!E,g||(a=i.at(-1)),v("start"),{conversationId:O,messages:M,stale:false}},applyIncoming:Z,removeMessage(K,O){if(r!==K.conversationId||o!==K.conversationType)return false;let P=i.findIndex(X=>X.id===O);return P<0?false:(t+=1,i.splice(P,1),I(),N=void 0,D=void 0,_=null,true)},clearConversation(K){return r!==K.conversationId||o!==K.conversationType?false:(t+=1,i=[],m(),d=false,g=false,y=false,N=void 0,S=false,E=true,D=void 0,_=null,true)},list(){return [...i]},info(){return {conversationId:r,...r===null||o===null?{}:{conversation:{conversationType:o,conversationId:r}},hasMore:d,hasNewer:g}},getRevision(){return t},reset(){t+=1,r=null,o=null,i=[],m(),d=false,g=false,y=false,N=void 0,S=false,E=true,D=void 0,_=null;}}}function Ad(e,n){if(Object.is(e,n))return true;if(e instanceof Uint8Array&&n instanceof Uint8Array)return e.byteLength!==n.byteLength?false:e.every((s,a)=>s===n[a]);if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((s,a)=>Ad(s,n[a]));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(s=>Object.prototype.hasOwnProperty.call(r,s)&&Ad(t[s],r[s]))}function Jg(){let e=new Map;function n(t){if(typeof t!="string")return ie(t);let r=[...e.keys()].filter(o=>bn(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(Vn(t)),o=e.get(r);return o!==void 0&&Ad(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 Yg(){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 s=`legacy:${encodeURIComponent(r.conversationId)}`;return e.has(s)?s:i}let o=[...e.entries()].filter(([i,s])=>s.conversationId===r||!i.startsWith("legacy:")&&bn(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(([s,a])=>!s.startsWith("legacy:")&&a.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[s,a]=i;e.set(s,{...r,conversationType:a.conversationType});return}e.set(n(r),r);},delete:r=>{let o=t(r);o!==void 0&&e.delete(o);},clear:()=>{e.clear();}}}function Xg(){let e=new Map;function n(t){if(typeof t!="string")return ie(t);let r=[...e.keys()].filter(o=>bn(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(An(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function nm(e){return e==="direct"?"local":"server"}function tm(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 uS=50,zg="im:deleted-conversations",qg="im:terminated-conversations",jg="im:membership-reset-sort-keys",$g="im:pending-message-reactions",em="im:transfer-status-records",gS=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function rm(e,n){return e===n?true:e===void 0||n===void 0?false:gS.every(t=>e[t]===n[t])}function om(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 ns(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&rd(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&&rm(e.channelPermissions,n.channelPermissions)&&om(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function mS(e){let n=Wg({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=Xg(),i=Yg(),s=Qg(),a=Jg(),d=new Map,g=1,f=new Set,y=new Set,N=new Map,{storage:S}=e,E=Promise.resolve(),D=new Map,_=new Map,m=new Map,I=0,A=e.unreadMode??nm,v=new Set;function B(c={}){let l=Hg({storage:S,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:Ze,...c});return v.add(l),l}let J=B();function re(c={}){let l=B(c),p=false;return {window:l,dispose(){p||(p=true,l.reset(),v.delete(l));}}}function se(c){for(let l of v){let p=l.list().find(h=>h.id===c);if(p!==void 0)return p}}function Z(c,l){let p=n.get(l);if(p?.conversationId===c.conversationId&&p.conversationType===c.conversationType)return p;for(let h of v){let x=h.list().find(F=>F.id===l&&F.conversationId===c.conversationId&&F.conversationType===c.conversationType);if(x!==void 0)return x}}function K(c,l){let p=Z(De(c),c.id);p!==void 0&&!n.has(c.id)&&n.upsert(p);let h=n.upsert(c,l);return {...h,previous:p,changed:p===void 0?h.changed:!Qn(p,h.message)}}function O(c){let l=new Map(n.getByConversation(c).map(p=>[p.id,p]));for(let p of v)if(P(p,c))for(let h of p.list())h.conversationType===c.conversationType&&h.conversationId===c.conversationId&&!l.has(h.id)&&l.set(h.id,h);return [...l.values()].sort((p,h)=>p.sortKey.localeCompare(h.sortKey))}function P(c,l){let p=c.info();return p.conversation===void 0?p.conversationId===l.conversationId:ie(p.conversation)===ie(l)}let X=false;function ue(c){return `${ie(c.conversation)}\0${c.parentMessageId}`}function q(){if(S===void 0||X)return;let c=[...t.values()].flat();S.setMeta($g,c).catch(l=>W("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",l));}async function Ie(){if(S===void 0)return;let c=[...r.values()],l=E.then(()=>S.setMeta(em,c));E=l.catch(()=>{});try{await l;}catch(p){throw W("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",p),p}}function de(c,l){if(c===void 0||c.status===0&&l.status!==0)return l;if(l.status===0&&c.status!==0)return c;let p=c.occurredTime??0,h=l.occurredTime??0;return p!==h?h>p?l:c:l.status>c.status?l:c}function me(c){let l=c.body.transfer;if(c.contentType!=="transfer"||l===void 0)return c;let p=r.get(l.serialNumber);if(p===void 0||l.status!==0&&p.status===0)return c;let h={...l,status:p.status,...p.status===1&&p.occurredTime!==void 0?{receiveTime:p.occurredTime}:{},...p.status===2||p.status===3?{returnTime:p.occurredTime??l.returnTime}:{}};return l.status===h.status&&l.receiveTime===h.receiveTime&&l.returnTime===h.returnTime&&l.isRead===h.isRead?c:{...c,body:{transfer:qi(l,h)}}}function $(c,l){let p=`${ie(c)}\0${l}`;return t.delete(p)?(q(),true):false}function Me(c){let l=`${ie(c)}\0`,p=false;for(let h of t.keys())h.startsWith(l)&&(t.delete(h),p=true);return p&&q(),p}function V(c,l){let p=Z(c.conversation,c.parentMessageId);if(p===void 0){let x=ue(c),F=t.get(x)??[];return F.some(Q=>Q.id===c.id)?"duplicate":(t.set(x,[...F,c]),q(),"pending")}if(p.recalled!==void 0||p.deletedForEveryone!==void 0)return "duplicate";let h=Va(p.reactions,c,e.getSelfId?.()??"");return h===p.reactions?"duplicate":(dn([{...p,reactions:h}],l),"applied")}function u(c,l,p){let h=Z(c,l);if(h===void 0){let Q=`${ie(c)}\0${l}`,Y=t.get(Q);if(Y===void 0)return false;let j=Y.filter(ee=>ee.id!==p);return j.length===Y.length?false:(j.length===0?t.delete(Q):t.set(Q,j),q(),true)}let x=Oa(h.reactions,p,e.getSelfId?.()??"");if(x===h.reactions)return false;let F={...h};return x===void 0?delete F.reactions:F.reactions=x,dn([F],"live"),true}function M(c,l){let p=De(c),h=`${ie(p)}\0${c.id}`,x=t.get(h);if(x!==void 0){t.delete(h),q();for(let F of x)V(F,l);}}function b(c){for(let l of [...t.values()]){let p=l[0];if(p===void 0)continue;let h=Z(p.conversation,p.parentMessageId);h!==void 0&&(h.recalled!==void 0||h.deletedForEveryone!==void 0?$(p.conversation,p.parentMessageId):M(h,c));}}let C=0,R=new Map,T=new Map;function G(c){return ie(c)}function k(c){return L(c)||f.has(G(c))||f.has(c.conversationId)}function L(c){return y.has(G(c))||y.has(c.conversationId)}function ae(c){let l=f.delete(G(c)),p=f.delete(c.conversationId);return l||p}function ne(c){let l=ae(c),p=y.delete(G(c)),h=y.delete(c.conversationId);return {deleted:l,terminal:p||h}}function be(c,l){if(l===""||c.contentType!=="system")return false;let p=c.body.system;return p?.targetUserIds?.includes(l)!==true?false:c.conversationType==="group"?p.eventType==="group_member_joined"||p.eventType==="group_member_invited":c.conversationType==="channel"&&(p.eventType==="channel_member_joined"||p.eventType==="channel_member_invited"||p.eventType==="channel_created")}function Ze(c){let l=De(c);if(k(l))return false;if(l.conversationType!=="group")return true;let p=N.get(ie(l));return p===void 0||c.sortKey>=p}function Ee(c){let l=new Map;if(N.size===0)return l;for(let p of wn(c,e.getSelfId?.()??"")){if(p.conversationType!=="group")continue;let h=De(p),x=ie(h),F=N.get(x);if(F===void 0)continue;let Q=Z(h,p.id);if(Q===void 0||Q.sortKey!==F)continue;let Y=at(Q,p,e.getSelfId?.()??"");Y.sortKey!==F&&(N.set(x,Y.sortKey),l.set(x,Y.id));}return l.size>0&&Qr(),l}function U(c){let l=ie(c),p=(R.get(l)??0)+1;return R.set(l,p),p}function W(c,l){e.emitter.emit({type:"error",error:{scope:"storage",message:c,cause:l}});}function pe(c){e.emitter.emit({type:"session:updated",session:c,conversation:An(c)});}let ce=new Set,we=Promise.resolve(),St=0;function ms(c){let l=St===0?c():we.then(c),p=l.then(()=>{},()=>{});return ce.add(p),p.finally(()=>ce.delete(p)),l}function nc(c){St+=1;let l=Promise.all([...ce]),p=we.then(()=>l).then(c);return we=p.then(()=>{},()=>{}),we.finally(()=>{St-=1;}),p}function cp(c){let l=c.body.system;if(l?.pinnedMessageAction===void 0)return c;let{pinnedMessageAction:p,...h}=l;return {...c,body:{...c.body,system:h}}}function lp(c){S===void 0||X||c.length===0||ms(()=>S.saveMessages(c.map(cp))).catch(l=>W("\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function ps(c){let{lastMessageSendState:l,manuallyUnread:p,...h}=c;return h}function mn(c){S===void 0||X||ms(()=>S.saveSessions([ps(c)])).catch(l=>W("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",l));}function fs(){S===void 0||X||S.setMeta(zg,[...f]).catch(c=>W("\u5220\u9664\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",c));}function ys(){S===void 0||X||S.setMeta(qg,[...y]).catch(c=>W("\u7EC8\u6001\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",c));}function Qr(){S===void 0||X||S.setMeta(jg,[...N.entries()]).catch(c=>W("GROUP \u91CD\u5165\u6C34\u4F4D\u843D\u76D8\u5931\u8D25",c));}function tc(c){S===void 0||X||ms(()=>S.saveReadState(c)).catch(l=>W("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",l));}function up(c){S===void 0||X||S.savePinnedMessage(c).catch(l=>W("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function gp(c){S===void 0||X||S.removePinnedMessage(c).catch(l=>W("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",l));}function Is(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 Wr(c){return Is(c),Object.freeze({conversationType:c.conversationType,conversationId:c.conversationId})}function mp(c){return s.get(Wr(c))}function pp(){let c=[],l=new Set;for(let p of o.getAll()){let h=An(p);l.add(ie(h)),c.push({...p,draft:s.get(h)});}for(let p of s.getAll())l.has(ie(p.ref))||c.push({id:p.ref.conversationId,type:p.ref.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,draft:p});return Sd(c)}function Cs(c,l,p){if(Is(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 h=(l.mentions??[]).map(F=>{if(typeof F.userId!="string"||F.userId.trim()===""||typeof F.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:F.userId,displayName:F.displayName})}),x=Object.freeze({conversationType:c.conversationType,conversationId:c.conversationId});return Object.freeze({ref:x,text:l.text,mentions:Object.freeze(h),...l.replyToMessageId===void 0?{}:{replyToMessageId:l.replyToMessageId},attachments:Object.freeze([]),updatedAt:p})}function rc(c,l){return c.text===l.text&&c.replyToMessageId===l.replyToMessageId&&c.mentions.length===l.mentions.length&&c.mentions.every((p,h)=>{let x=l.mentions[h];return x!==void 0&&p.userId===x.userId&&p.displayName===x.displayName})}function Ss(c,l){Is(c);let p=ie(c),x=(D.get(p)??Promise.resolve()).catch(()=>{}).then(l),F=x.then(()=>{},()=>{});return D.set(p,F),F.finally(()=>{D.get(p)===F&&D.delete(p);}),x}async function fp(c,l){let p=Wr(c),h=ie(p),x=Cs(p,l,0),F=I,Q=m.get(h)??0;return await Ss(p,async()=>{let Y=s.get(p),j=Math.max(Date.now(),(_.get(h)??Y?.updatedAt??0)+1),ee=Cs(p,x,j);if(Y!==null&&rc(Y,ee))return Y;if(S!==void 0&&await S.saveDraft(ee),F!==I||Q!==(m.get(h)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u5199\u5165\u56DE\u704C\u5185\u5B58");return s.set(ee),_.set(h,j),e.emitter.emit({type:"draft:updated",conversation:ee.ref,draft:ee}),ee})}async function oc(c,l){let p=Wr(c),h=ie(p);if(l!==void 0&&(!Number.isFinite(l)||l<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${l}`);let x=I,F=m.get(h)??0;return await Ss(p,async()=>{let Q=s.get(p);if(Q===null||l!==void 0&&Q.updatedAt!==l)return false;if(S!==void 0&&await S.deleteDraft(p),x!==I||F!==(m.get(h)??0))throw new Error("\u8349\u7A3F\u72B6\u6001\u5DF2\u5931\u6548\uFF0C\u62D2\u7EDD\u8FC7\u671F\u6E05\u7406\u56DE\u704C\u5185\u5B58");return s.delete(p),e.emitter.emit({type:"draft:cleared",conversation:p}),true})}async function yp(c){await oc(c);}async function Ip(c,l){return await oc(c,l)}function Cp(c){let l=Wr(c),p=ie(l);m.set(p,(m.get(p)??0)+1),s.get(l)!==null&&(s.delete(l),e.emitter.emit({type:"draft:cleared",conversation:l})),Ss(l,async()=>{S!==void 0&&await S.deleteDraft(l);}).catch(h=>W("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",h));}async function Sp(){for(I+=1;D.size>0;)await Promise.all([...D.values()]);}function Ap(c){let l=Z(Vn(c),c.messageId);return l===void 0?c:{...c,preview:{state:"ready",message:l}}}function Rp(c,l){let p=Ap(c);a.set(p)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:p.conversationId,conversation:{conversationType:p.conversationType,conversationId:p.conversationId},pinnedMessage:p,reason:l}),up(p));}function Ep(c,l){let p=typeof c=="string"?c:c.conversationId,h=a.get(c);if(!a.clear(c))return;let x=typeof c=="string"?h===void 0?void 0:Vn(h):c;if(x===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${p}`);e.emitter.emit({type:"pinned-message:updated",conversationId:p,conversation:x,pinnedMessage:null,reason:l}),gp(c);}function As(c,l,p,h){let x=o.get(c);if(x===void 0)return;let F={...x,title:l,avatar:p??x.avatar,...h!==void 0?{muted:h}:{}};ns(x,F)||(o.set(F),pe(F),mn(F));}async function Rs(c,l){let{conversationId:p,conversationType:h}=c,x=ie(c),F=l?.force===true;if(!F&&T.has(x))return false;let Q=C,Y=U(c);F&&T.set(x,Y);let{profile:j,channelProfile:ee}=e,H=3,te=F?{forceRefresh:true}:void 0;try{if(h==="direct"){if(j===void 0)return !1;let oe=await j.getUserProfile(p,te);if(Q!==C||Y!==R.get(x))return !1;oe!==null&&As(c,oe.remark??oe.nickname,oe.avatar,oe.muted);}else if(h==="group"){if(j===void 0)return !1;let oe=await j.getGroupProfile(p,te);if(Q!==C||Y!==R.get(x))return !1;oe!==null&&(As(c,oe.name,oe.avatar,oe.muted),oe.status===H&&Ns({conversationType:"group",conversationId:p},"group_dismissed"),F&&e.emitter.emit({type:"profile:updated",profileType:"group",id:p}));}else if(h==="channel"){if(ee===void 0)return !1;let oe=await ee.getProfile(p,te);if(Q!==C||Y!==R.get(x))return !1;if(oe!==null){As(c,oe.name,oe.avatar,oe.muted);let he=o.get(c)?.channelState,Ce=he==="left"||he==="removed"||he==="dismissed",Ge=oe.channelState==="left"||oe.channelState==="removed"||oe.channelState==="dismissed";if(l?.allowChannelRecovery===!0&&Ce&&he!=="dismissed"&&oe.channelState==="active")return bs(p,"active",void 0,{permissions:oe.permissions,...oe.accessSnapshot===void 0?{}:{snapshot:oe.accessSnapshot}}),F&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}}),!0;let Ne=Ce&&(!Ge||he==="dismissed"||oe.channelState!=="dismissed");if(Ge&&!Ne)return Ns({conversationType:"channel",conversationId:p},`channel_${oe.channelState}`),F&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}}),!1;if(!Ne){let He=oe.permissions.sendMessages?void 0:`channel_${oe.channelState}`;bs(p,oe.channelState,He,{permissions:oe.permissions,...oe.accessSnapshot===void 0?{}:{snapshot:oe.accessSnapshot}});}F&&e.emitter.emit({type:"channel-profile:updated",channelId:p,conversation:{conversationType:"channel",conversationId:p}});}}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{F&&T.get(x)===Y&&T.delete(x);}}function hp(c,l){Rs({conversationType:l,conversationId:c},{force:true});}function Mp(c){return Rs({conversationType:"channel",conversationId:c},{force:true,allowChannelRecovery:true})}function Tp(c,l){let p=o.get(c);if(p===void 0)return;let h={...p,...l.title!==void 0?{title:l.title}:{},...l.avatar!==void 0?{avatar:l.avatar}:{}};ns(p,h)||(o.set(h),pe(h),mn(h));}function Es(c){return dd(c,e.getSelfId?.()??"")}function hs(c){let l=i.get(c);if(l===void 0||l.readCursor==="")return;let p=typeof c=="string"?l.conversationType:c.conversationType;if(p==="channel"){let x={conversationType:p,conversationId:typeof c=="string"?c:c.conversationId};return O(x).find(F=>F.extensions?.historyCursor===l.readCursor)?.sortKey??l.readCursorSortKey}return (typeof c=="string"?n.get(l.readCursor):Z(c,l.readCursor))?.sortKey??l.readCursorSortKey}function ic(c,l){let p=0;for(let h of n.getByConversation(c))Wn(h)&&Es(h)&&(l===void 0||h.sortKey>l)&&(p+=1);return p}function sc(c){let l=e.getSelfId?.();if(l===void 0||l===""||c.senderId===l)return false;let{mention:p}=c;return p===void 0?false:p.atAll||p.atUserIds.includes(l)}function vp(c,l){let p=0;for(let h of n.getByConversation(c))sc(h)&&(l===void 0||h.sortKey>l)&&(p+=1);return p}function Rn(c,l=true){let p=c.conversationType===void 0?o.get(c.conversationId):void 0,h=c.conversationType===void 0&&p!==void 0?{...c,conversationType:p.type}:c,x=h.conversationType===void 0?h.conversationId:{conversationType:h.conversationType,conversationId:h.conversationId},F=i.get(x);if(i.set(h),l&&tc(h),F===void 0||F.readCursor!==h.readCursor||F.readCursorSortKey!==h.readCursorSortKey||F.unreadCount!==h.unreadCount||(F.manuallyUnread??false)!==(h.manuallyUnread??false)){if(h.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=${h.conversationId}\uFF09`}});return}e.emitter.emit({type:"read:updated",conversationId:h.conversationId,conversation:{conversationType:h.conversationType,conversationId:h.conversationId},readCursor:h.readCursor,unreadCount:h.unreadCount,...h.manuallyUnread===true?{manuallyUnread:true}:{}});}}function ac(c,l){if(c===void 0||c.sortKey===l.sortKey)return;let p=De(l),h=i.get(p),x=l.conversationType==="channel"?l.extensions?.historyCursor:void 0,F=l.conversationType==="direct"||l.conversationType==="group";h!==void 0&&(F&&h.readCursor===l.id||typeof x=="string"&&x!==""&&h.readCursor===x||h.readCursorSortKey===c.sortKey)&&Rn({...h,readCursorSortKey:l.sortKey});let Q=ie(p);l.conversationType==="group"&&N.get(Q)===c.sortKey&&(N.set(Q,l.sortKey),Qr());}function Hr(c,l,p,h){let x=o.get(c),F=h??i.get(c);if(l===void 0){if(x===void 0)return;let H={...x,...p==="clear"?{lastMessagePreview:"",timestamp:0}:{},...F===void 0?{}:{unreadCount:F.unreadCount,manuallyUnread:F.manuallyUnread,mentionUnreadCount:F.mentionUnreadCount,readCursor:F.readCursor||x.readCursor}};return p==="clear"&&(delete H.lastMessageSummary,delete H.lastMessageSenderId,delete H.lastMessageSystemEvent,delete H.lastMessageSystemTargetsSelf,delete H.lastMessageMention,delete H.lastMessageRecalled,delete H.lastMessageDeletedForEveryone,delete H.lastMessageSendState),H}let Q=F?.unreadCount??x?.unreadCount??0,Y=F===void 0?x?.manuallyUnread:F.manuallyUnread,j=F?.mentionUnreadCount??x?.mentionUnreadCount??0,ee=od(l,{unreadCount:Q,mentionUnreadCount:j,selfId:e.getSelfId?.()});return x===void 0?{...ee,...Y===void 0?{}:{manuallyUnread:Y},readCursor:(F?.readCursor??"")||ee.readCursor}:{...ee,title:x.title||ee.title,avatar:x.avatar??ee.avatar,pinned:x.pinned,muted:x.muted,topTime:x.topTime,...Y===void 0?{}:{manuallyUnread:Y},readCursor:(F?.readCursor??"")||x.readCursor,groupState:x.groupState,channelState:x.channelState,channelPermissions:x.channelPermissions,channelAccessSnapshot:x.channelAccessSnapshot,sendDisabledReason:x.sendDisabledReason}}function Ms(c,l){if(c===void 0)return;let p=o.get({conversationType:c.type,conversationId:c.id});p!==void 0&&ns(p,c)||(o.set(c),pe(c),l&&mn(c),c.title===""&&Rs({conversationType:c.type,conversationId:c.id}));}function Dn(c){let l=n.getByConversation(c).findLast(Wn);Ms(Hr(c,l,"preserve"),true);}function dc(c){let l=[],p=wn(c,e.getSelfId?.()??"").map(Y=>{let j={...Y,sortKey:fn(Y)};if(j=Pn(j),j.conversationType==="group"&&j.contentType==="text"){let ee=st(j.body.text??"",j.mention);ee!==void 0&&(j.mention=ee);}return me(j)}),h=new Map;for(let Y of p){if(Y.contentType!=="transfer"||Y.body.transfer===void 0)continue;let j=De(Y);h.set(ie(j),j);}let x=[...h.values()].flatMap(Y=>O(Y)),F=ad(x,p),Q=new Set(p.map(Y=>Y.id));for(let Y of F){let{previous:j,message:ee,isNew:H,changed:te}=K(Y);if(ac(j,ee),j!==void 0&&te)for(let oe of v)oe.list().some(he=>he.id===ee.id&&he.conversationType===ee.conversationType&&he.conversationId===ee.conversationId)&&oe.applyIncoming([ee]);H?e.emitter.emit({type:"message:received",message:ee,conversation:De(ee),source:"offline",channelLifecycleEffects:false}):te&&e.emitter.emit({type:"message:updated",message:ee,conversation:De(ee),source:"offline",channelLifecycleEffects:false}),Q.has(ee.id)&&l.push(ee);}return l}function bp(c){let l={...c,sortKey:fn(c)};if(l=Pn(l),l.conversationType==="group"&&l.contentType==="text"){let p=st(l.body.text??"",l.mention);p!==void 0&&(l.mention=p);}return me(l)}async function Np(c,l){let p=Z(c,l);if(p!==void 0||S===void 0)return p;try{let h=await S.getMessage(c,l);return h===null||ie(De(h))!==ie(c)?void 0:bp(h)}catch(h){W("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",h);return}}function dn(c,l,p={}){let h=e.getSelfId?.()??"";if(l==="live"){let ge=false,Pe=false;for(let ve of c){let Ve=De(ve);if(be(ve,h)){let Je=ne(Ve);Je.deleted&&(ge=true),Je.terminal&&(Ve.conversationType==="group"?(N.set(ie(Ve),ve.sortKey),Qr()):Ve.conversationType==="channel"&&N.delete(ie(Ve)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:Ve,data:{source:l,eventType:ve.body.system?.eventType,groupHistoryLowerBoundApplied:Ve.conversationType==="group"}})),Pe=true);}else (h===""||ve.senderId!==h)&&!L(Ve)&&ae(Ve)&&(ge=true);}ge&&fs(),Pe&&ys();}let F=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,Q=(ge,Pe)=>{if(F===void 0)return;let ve=De(ge),Ve=ie(ve),Je=F.get(Ve)??{ref:ve,tombstone:0,groupLowerBound:0};Pe==="tombstone"?Je.tombstone+=1:Je.groupLowerBound+=1,F.set(Ve,Je);},Y=f.size>0||y.size>0?c.filter(ge=>{let Pe=!k(De(ge));return Pe||Q(ge,"tombstone"),Pe}):c,j=Ee(Y),ee=ge=>j.get(ie(De(ge)))===ge.id,H=N.size>0?Y.filter(ge=>{let Pe=ee(ge)||Ze(ge);return Pe||Q(ge,"groupLowerBound"),Pe}):Y,te=j.size===0?H:[...H.filter(ee),...H.filter(ge=>!ee(ge))];for(let ge of F?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:ge.ref,data:{source:l,tombstoneDroppedCount:ge.tombstone,groupHistoryLowerBoundDroppedCount:ge.groupLowerBound}}));let oe=new Map,he=new Map,Ce=new Map,Ge=new Set,Ne=wn(te,h).map(me),He=new Map;for(let ge of Ne){if(ge.contentType!=="transfer"||ge.body.transfer===void 0)continue;let Pe=De(ge);He.set(ie(Pe),Pe);}let Rt=[...He.values()].flatMap(ge=>O(ge)),nf=ad(Rt,Ne),_s=[],pc=[];for(let ge of nf){let{previous:Pe,message:ve,isNew:Ve,changed:Je}=K(ge,{authoritativeFailure:p.authoritativeOutboxFailure===true});if(!Ve&&!Je)continue;ac(Pe,ve);for(let Jr of v)Jr.applyIncoming([ve]);Ve?e.emitter.emit({type:"message:received",message:ve,conversation:De(ve),source:l,channelLifecycleEffects:p.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:ve,conversation:De(ve),source:l,channelLifecycleEffects:p.applyChannelLifecycleEffects===true}),_s.push(ve);let En=De(ve);oe.set(ie(En),En),Ve&&p.backfillOnly!==true&&pc.push(ve);}let Ds=new Map;for(let ge of pc){let Pe=De(ge),ve=ie(Pe);Es(ge)&&Ge.add(ve),Ds.has(ve)||Ds.set(ve,hs(Pe));let Ve=Ds.get(ve),Je=Ve===void 0||ge.sortKey>Ve;if(Wn(ge)&&Je&&Es(ge)&&ge.recalled===void 0&&ge.deletedForEveryone===void 0){let En=A(ge.conversationType);(En==="local"||En==="server"&&l==="live")&&he.set(ve,(he.get(ve)??0)+1);}Je&&sc(ge)&&ge.recalled===void 0&&ge.deletedForEveryone===void 0&&Ce.set(ve,(Ce.get(ve)??0)+1);}for(let ge of oe.values()){if(p.backfillOnly===true)continue;let Pe=ie(ge),ve=he.get(Pe)??0,Ve=Ce.get(Pe)??0,Je=Ge.has(Pe);if(ve>0||Ve>0||Je){let En=i.get(ge)??{...ge,readCursor:"",unreadCount:0},Jr={...En,unreadCount:En.unreadCount+ve,mentionUnreadCount:(En.mentionUnreadCount??0)+Ve};Je&&delete Jr.manuallyUnread,Rn(Jr);}Dn(ge);}lp(_s);for(let ge of _s)ge.recalled===void 0&&ge.deletedForEveryone===void 0?M(ge,l):$(De(ge),ge.id);}function cc(c,l,p=Date.now()){let h={conversationType:"direct",conversationId:c},x=Z(h,l),F=n.getByConversation(h).findLast(j=>j.body.system?.eventType==="direct_contact_established");if(x!==void 0&&F!==void 0&&pn(F)>=pn(x))return;let Q=`${l}:contact-required`;if(n.get(Q)!==void 0)return;let Y={id:Q,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[c],action:{type:"request-contact",userId:c}}},createdAt:p,sortKey:Ae(p,Q),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};dn([Y],"live");}function _p(c,l,p=Date.now()){let h=`${l}:message-refused`;if(n.get(h)!==void 0)return;let x=n.get(l),F=x?.conversationType==="direct"&&x.conversationId===c?pn(x):p,Q={id:h,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[c]}},createdAt:F,sortKey:Ae(F,h),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};dn([Q],"live");}function Dp(c,l=Date.now()){let p=nn(),h={id:p,conversationId:c.conversationId,conversationType:"direct",senderId:c.senderId,contentType:"text",body:{text:c.text},createdAt:l,sortKey:Ae(l,p),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 dn([h],"live"),cc(c.conversationId,p,l+1),h}function Gp(c,l){return `${c.trim()===""?`contact-established:${l}`:c}:contact-established`}function Up(c,l,p=Date.now(),h=p){let x=Gp(l,h);if(n.get(x)!==void 0)return;let F={id:x,conversationId:c,conversationType:"direct",senderId:c,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[c]}},createdAt:p,sortKey:Ae(p,x),status:"sent",receipt:"unread",encryption:{encrypted:false}};dn([F],"live");}let At=new Map,Ts=0;function kp(c,l,p=Date.now()){let h=At.get(c);if(h!==void 0)return h;let x={conversationType:"direct",conversationId:c},F=Ts,Q=(async()=>{let Y=n.getByConversation(x).filter(Ne=>{let He=Ne.body.system?.eventType;return He==="direct_contact_required"||He==="direct_contact_established"}),j=Y.filter(Ne=>Ne.body.system?.eventType==="direct_contact_required"),ee=j.at(-1)?.createdAt??0,H=Y.findLast(Ne=>Ne.body.system?.eventType==="direct_contact_established")?.createdAt??0,te=H>=ee&&H>0;if(j.length===0&&te)return;let oe=hs(x);for(let Ne of j)try{let He=await gc(x,Ne.id),Rt=Z(x,Ne.id);!He&&Rt?.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:x,messageId:Ne.id}}});}catch(He){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:x,messageId:Ne.id,error:He}}});}if(F!==Ts)return;let he=i.get(x);if(he!==void 0&&(Rn({...he,...he.readCursorSortKey===void 0&&oe!==void 0?{readCursorSortKey:oe}:{},unreadCount:ic(x,oe)}),Dn(x)),te)return;let Ce=Number.isFinite(p)&&p>0?p:Date.now(),Ge=Math.max(Ce,ee+1);Up(c,l,Ge,Ce);})().finally(()=>{At.get(c)===Q&&At.delete(c);});return At.set(c,Q),Q}function xp(c,l){let p=typeof c=="string"?n.get(l)??se(l):Z(c,l);if(p===void 0)return;let h=typeof c=="string"?De(p):c,x=typeof c=="string"?c:c.conversationId;if(p.conversationId!==x||p.conversationType!==h.conversationType)return;let F=hs(h);if(F!==void 0&&F>=p.sortKey){typeof c!="string"&&lc(c);return}let Q={...h,readCursor:l,readCursorSortKey:p.sortKey,unreadCount:ic(h,p.sortKey),mentionUnreadCount:vp(h,p.sortKey)};return Rn(Q),Dn(h),Q}function Bp(c){let l=o.get(c);if(l===void 0)return false;let p=i.get(c)??{...c,readCursor:l.readCursor??"",unreadCount:l.unreadCount,mentionUnreadCount:l.mentionUnreadCount};return p.unreadCount>0||p.manuallyUnread===true?false:(Rn({...p,manuallyUnread:true}),Dn(c),true)}function lc(c){let l=i.get(c);if(l?.manuallyUnread!==true)return false;let p={...l};return delete p.manuallyUnread,Rn(p),Dn(c),true}function uc(c,l,p,h,x=false){let F=typeof c=="string"?c:c.conversationId,Q=o.get(c),Y=typeof c=="string"?Q===void 0?void 0:An(Q):c;if(Q!==void 0&&A(Q.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${F}, type=${Q.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=${F}, count=${l}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}x||d.delete(F);let j=i.get(c),ee=j?.readCursor??"",H=j?.readCursorSortKey,te=p===void 0||p===""?void 0:Y===void 0?n.get(p)??se(p):Z(Y,p);te!==void 0&&te.conversationId===F&&(H===void 0||te.sortKey>H)&&(ee=te.id,H=te.sortKey),h!==void 0&&(ee=h),Rn({...Y===void 0?{conversationId:F}:Y,readCursor:ee,readCursorSortKey:H,unreadCount:Math.max(0,Math.floor(l)),...l>0?{}:{manuallyUnread:j?.manuallyUnread},mentionUnreadCount:l===0?0:j?.mentionUnreadCount}),Dn(c);}function vs(c){let l=d.get(c.conversation.conversationId);return l?.handle.transactionId===c.transactionId?l:void 0}function Fp(c){let l=c.conversationId,p=o.get(c);if(p===void 0||p.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${l}, type=${p?.type??"missing"}\uFF09`);if(d.has(l))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${l}\uFF09`);let h={conversation:c,transactionId:g++},F=i.get(c)??{conversationId:l,readCursor:p.readCursor??"",unreadCount:p.unreadCount,...p.mentionUnreadCount===void 0?{}:{mentionUnreadCount:p.mentionUnreadCount}};return d.set(l,{handle:h,baseReadState:{...F},steps:[],committedThrough:-1}),h}function wp(c,l,p){let h=c.conversation,x=h.conversationId,F=vs(c);if(F===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${x}\uFF09`);let Q=Z(h,l);if(Q===void 0||Q.conversationId!==x||Q.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${x}, messageId=${l}\uFF09`);if(Q.extensions?.historyCursor!==p)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${x}, messageId=${l}\uFF09`);if(F.steps.at(-1)?.readCursor===p)return;let j=i.get(h)??(F.steps.length===0?F.baseReadState:void 0);F.steps.push({readCursor:p,messageId:l,sortKey:Q.sortKey,clearedUnreadCount:j?.unreadCount??0,clearedMentionUnreadCount:j?.mentionUnreadCount??0}),uc(h,0,l,p,true);}function Pp(c,l){let p=vs(c);if(p===void 0)return false;let h=p.steps.findLastIndex(x=>x.readCursor===l);if(h<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${c.conversation.conversationId}, cursor=${l}\uFF09`);return p.committedThrough=Math.max(p.committedThrough,h),p.committedThrough===p.steps.length-1&&d.delete(c.conversation.conversationId),true}function Vp(c){let l=vs(c);if(l===void 0)return false;let p=c.conversation,h=p.conversationId,x=i.get(p),F=l.committedThrough>=0?l.steps[l.committedThrough]:void 0,Q=F===void 0?l.baseReadState:void 0,Y=x?.unreadCount??0,j=x?.mentionUnreadCount??0;for(let te=l.committedThrough+1;te<l.steps.length;te+=1)Y+=l.steps[te].clearedUnreadCount,j+=l.steps[te].clearedMentionUnreadCount;let ee=Q?.mentionUnreadCount!==void 0||(x?.mentionUnreadCount??0)>0||l.steps.some(te=>te.clearedMentionUnreadCount>0),H={conversationId:h,conversationType:"channel",readCursor:F?.readCursor??Q?.readCursor??"",readCursorSortKey:F?.sortKey??Q?.readCursorSortKey,unreadCount:Y,...ee?{mentionUnreadCount:j}:{}};return d.delete(h),Rn(H),Dn(p),true}function Op(c,l,p){let h={conversationType:"group",conversationId:c},x=o.get(h);if(x===void 0){let Q={id:c,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:l,sendDisabledReason:p};o.set(Q),pe(Q),mn(Q);return}if(x.groupState===l&&x.sendDisabledReason===p)return;let F={...x,groupState:l,sendDisabledReason:p};o.set(F),pe(F),mn(F);}function bs(c,l,p,h){let x={conversationType:"channel",conversationId:c},F=ie(x);if(k(x))return;let Q=o.get(x);if(Q===void 0){U(x),T.delete(F);let H={id:c,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:l,channelPermissions:h?.permissions,channelAccessSnapshot:h?.snapshot,sendDisabledReason:p};o.set(H),pe(H),mn(H);return}if(Q.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${c} \u7C7B\u578B\u4E3A ${Q.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);U(x),T.delete(F);let Y=h?.permissions,j=h?.snapshot;if(Q.channelState===l&&Q.sendDisabledReason===p&&rm(Q.channelPermissions,Y)&&om(Q.channelAccessSnapshot,j))return;let ee={...Q,channelState:l,channelPermissions:Y,channelAccessSnapshot:j,sendDisabledReason:p};o.set(ee),pe(ee),mn(ee);}function Kp(c,l){let p=o.get(c);if(p===void 0||p.pinned===l)return;let h={...p,pinned:l,topTime:l?Date.now():void 0};o.set(h),pe(h),mn(h);}function Lp(c,l){let p=o.get(c);if(p===void 0||p.muted===l)return;let h={...p,muted:l};o.set(h),pe(h),mn(h);}async function gc(c,l){if(l.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let p=n.get(l),h=p!==void 0&&p.conversationType===c.conversationType&&p.conversationId===c.conversationId,x=n.getByConversation(c).filter(te=>te.id!==l),F=Hr(c,x.at(-1),"clear"),Q=F===void 0?void 0:ps(F);function Y(te){return te!==void 0&&(p===void 0||!Qn(p,te))}let j=S===void 0?{deleted:false,superseded:false}:await nc(async()=>Y(n.get(l))?{deleted:false,superseded:true}:{deleted:await S.deleteMessage(c,l,Q),superseded:false});if(j.superseded||Y(n.get(l)))return false;let ee=h&&n.delete(c,l),H=false;for(let te of v)H=te.removeMessage(c,l)||H;return !j.deleted&&!ee&&!H?false:(Ms(F,false),$(c,l),e.emitter.emit({type:"message:removed",conversation:{...c},messageId:l,scope:"local-only"}),true)}async function Zp(c){let l={...c},p=new Map(n.getByConversation(l).map(H=>[H.id,H])),h=o.get(l),x=i.get(l),F=x===void 0&&h===void 0?void 0:{...l,readCursor:x?.readCursor??h?.readCursor??"",...x?.readCursorSortKey===void 0?{}:{readCursorSortKey:x.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},Q=Hr(l,void 0,"clear",F);if(S!==void 0){if(S.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 nc(()=>S.clearConversationHistory(l,Q===void 0?void 0:ps(Q),F));}let Y=i.get(l),j=Y?.conversationType===x?.conversationType&&Y?.conversationId===x?.conversationId&&Y?.readCursor===x?.readCursor&&Y?.readCursorSortKey===x?.readCursorSortKey&&Y?.unreadCount===x?.unreadCount&&Y?.mentionUnreadCount===x?.mentionUnreadCount;F!==void 0&&j&&Rn(F,false);for(let[H,te]of p){let oe=n.get(H);oe!==void 0&&Qn(te,oe)&&n.delete(l,H);}let ee=n.getByConversation(l);for(let H of v)H.clearConversation(l)&&H.applyIncoming(ee);Me(l),Ms(Hr(l,ee.at(-1),"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:l,scope:"local-only"});}function mc(c,l={}){let p=typeof c=="string"?c:c.conversationId,h=o.get(c),x=a.get(c),F=typeof c=="string"?h!==void 0?{conversationType:h.type,conversationId:p}:x===void 0?void 0:Vn(x):c;if(F===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${p}`);let Q=n.getByConversation(F).length;Cp(F),Me(F),o.delete(c),i.delete(c),n.deleteByConversation(c),a.clear(c);let Y=G(F);if(l.terminal===true){y.add(Y);let j=N.delete(Y);f.delete(Y),f.delete(p),j&&Qr(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:F,data:{reason:l.terminalReason??"membership-terminated",removedMessageCount:Q}}));}else f.add(Y);for(let j of v)P(j,F)&&j.reset();e.emitter.emit({type:"session:removed",conversationId:p,conversation:F}),fs(),l.terminal===true&&ys(),S!==void 0&&(S.deleteConversationMessages(F).catch(j=>W("\u5220\u4F1A\u8BDD\u6D88\u606F\u5931\u8D25",j)),S.deleteSession(F).catch(j=>W("\u5220\u4F1A\u8BDD\u5931\u8D25",j)),S.deleteReadState(F).catch(j=>W("\u5220\u5DF2\u8BFB\u6001\u5931\u8D25",j)),S.removePinnedMessage(F).catch(j=>W("\u5220\u4F1A\u8BDD\u7F6E\u9876\u6D88\u606F\u5931\u8D25",j)));}function Qp(c){mc(c);}function Ns(c,l){mc(c,{terminal:true,terminalReason:l});}function Wp(c){let l=An(c);if(ie(l),l.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let p=o.get(l);if(p!==void 0)return p;let h={...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}}},x=ne(l);return x.deleted&&fs(),x.terminal&&ys(),o.set(h),pe(h),mn(h),h}function Hp(c){return tm(o.getAll(),c)}async function Jp(){if(S!==void 0){X=true;try{let c=await S.getMeta(zg);if(c!==null)for(let H of c)f.add(H);let l=await S.getMeta(qg);if(l!==null)for(let H of l)y.add(H);let p=await S.getMeta(jg);if(p!==null)for(let[H,te]of p)typeof H=="string"&&typeof te=="string"&&N.set(H,te);let h=await S.getMeta($g);if(h!==null)for(let H of h){let te=ue(H);t.set(te,[...t.get(te)??[],H]);}let x=await S.getMeta(em);if(Array.isArray(x))for(let H of x){if(typeof H!="object"||H===null)continue;let te=Reflect.get(H,"serialNumber"),oe=Reflect.get(H,"status"),he=Reflect.get(H,"occurredTime");typeof te!="string"||te.trim()===""||oe!==0&&oe!==1&&oe!==2&&oe!==3||he!==void 0&&(typeof he!="number"||!Number.isFinite(he)||he<=0)||r.set(te,{serialNumber:te,status:oe,...he===void 0?{}:{occurredTime:he}});}let F=await S.getPinnedMessages();for(let H of F)k({conversationType:H.conversationType,conversationId:H.conversationId})||a.set(H)&&e.emitter.emit({type:"pinned-message:updated",conversationId:H.conversationId,conversation:Vn(H),pinnedMessage:H,reason:"hydrate"});let Q=(await S.getSessions()).filter(H=>!k({conversationType:H.type,conversationId:H.id}));for(let H of Q){let te=An(H),oe=o.get(te);o.set(H),(oe===void 0||!ns(oe,H))&&pe(H);}let Y=await S.getReadStates();for(let H of Y)i.set(H);let j=I,ee=await S.getDrafts();if(j!==I)return;for(let H of ee){if(!Number.isFinite(H.updatedAt)||H.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${H.updatedAt}`);let te=Cs(H.ref,H,H.updatedAt);if(k(te.ref)){try{await S.deleteDraft(te.ref);}catch(Ce){W("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",Ce);}continue}let oe=ie(te.ref);_.set(oe,Math.max(_.get(oe)??0,te.updatedAt));let he=s.get(te.ref);he!==null&&he.updatedAt===te.updatedAt&&rc(he,te)||(s.set(te),e.emitter.emit({type:"draft:updated",conversation:te.ref,draft:te}));}for(let H of Q){let te=An(H),oe=(await S.getMessages(te,{limit:uS})).filter(Ge=>ie(De(Ge))===ie(te)).filter(Ze),he=[],Ce=oe.map(Ge=>{let Ne=sd(Pn(Ge));return Ne!==Ge&&he.push(Ne),Ne});if(dc(Ce),he.length>0)try{await S.saveMessages(he);}catch(Ge){W("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",Ge);}Dn(te);}}catch(c){W("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",c);}finally{X=false,b("offline");}}}async function Yp(c,l){if(S===void 0)return [];try{let p=await S.getMessages(c,l),h=typeof c=="string"?p.filter(Ze):p.filter(Q=>ie(De(Q))===ie(c)).filter(Ze),x=X;X=!0;let F;try{F=dc(h);}finally{X=x;}return X||b("offline"),F.map(Q=>Z(De(Q),Q.id)??Q)}catch(p){return W("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",p),[]}}function Xp(c,l){let p=l?.match(jr(c));return {message:c,ranges:p?.ranges.map(({start:h,end:x})=>[h,x])??[]}}async function zp(c,l){let p=l.keyword?.trim()??"",h=l.contentTypes;if(p===""&&(h===void 0||h.length===0))return {results:[],exhausted:true};let x=p===""?void 0:await Vs(p),F=Ce=>{let Ge=h===void 0||h.includes(Ce.contentType),Ne=x===void 0||x.match(jr(Ce))!==null;return Ge&&Ne},Q=(Ce,Ge)=>Ce.sortKey<Ge.sortKey?1:Ce.sortKey>Ge.sortKey?-1:0,Y=Ce=>Xp(Ce,x),j=()=>{let Ce=n.getByConversation(c).filter(F).sort(Q),Ne=(l.beforeSortKey===void 0?Ce:Ce.filter(Rt=>Rt.sortKey<l.beforeSortKey)).slice(0,l.limit),He=Ne.length<l.limit;return {results:Ne.map(Y),exhausted:He,...He?{}:{nextBeforeSortKey:Ne.at(-1)?.sortKey}}};if(S===void 0)return j();let ee;try{ee=await S.searchMessages(c,{...l.keyword!==void 0?{keyword:l.keyword}:{},...h!==void 0?{contentTypes:h}:{},limit:l.limit,...l.beforeSortKey!==void 0?{beforeSortKey:l.beforeSortKey}:{}});}catch(Ce){throw W("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",Ce),Ce}let H=ee.exhausted?void 0:ee.nextBeforeSortKey,te=new Map(n.getByConversation(c).map(Ce=>[Ce.id,Ce])),oe=new Map;for(let Ce of ee.items){let Ge=Pn(Ce);ie(De(Ge))===ie(c)&&oe.set(Ge.id,te.get(Ge.id)??Ge);}for(let Ce of te.values()){let Ge=l.beforeSortKey===void 0||Ce.sortKey<l.beforeSortKey,Ne=H===void 0||Ce.sortKey>=H;Ge&&Ne&&F(Ce)&&oe.set(Ce.id,Ce);}return {results:[...oe.values()].filter(F).sort(Q).map(Y),exhausted:ee.exhausted,...ee.exhausted?{}:{nextBeforeSortKey:ee.nextBeforeSortKey}}}function qp(c,l,p){let h=Z(c,l);h!==void 0&&dn([{...h,recalled:p,body:{}}],"live");}function jp(c,l,p){let h=Z(c,l);h===void 0||h.conversationType!=="channel"||dn([{...h,recalled:void 0,deletedForEveryone:p,body:{}}],"live");}function $p(c,l,p,h){let x=Z(c,l);if(x===void 0)return;let F={...x,body:p,edited:true};h!==void 0?F.mention=h:delete F.mention,dn([F],"live");}async function ef(c,l,p){let h=r.get(c),x={serialNumber:c,status:l,...p===void 0?{}:{occurredTime:p}},F=de(h,x);r.set(F.serialNumber,F),await Ie();let Q=new Map;for(let Y of ji(n.getAll(),c,F.status,F.occurredTime))Q.set(Y.id,Y);for(let Y of o.getAll()){let j=O({conversationType:Y.type,conversationId:Y.id});for(let ee of ji(j,c,F.status,F.occurredTime))Q.set(ee.id,ee);}Q.size!==0&&dn([...Q.values()],"live");}return {upsertMessages:dn,applyReaction:V,rollbackReaction:u,appendDirectContactRequiredNotice:cc,appendDirectMessageRefusedNotice:_p,appendDirectContactRequiredTextFailure:Dp,reconcileDirectContactEstablishedNotice:kp,recallMessage:qp,deleteChannelMessageForEveryone:jp,editMessage:$p,applyTransferStatusBySerialNumber:ef,getMessage:c=>n.get(c),getConversationMessage:Z,getLoadedMessagesByConversation:O,resolveConversationMessage:Np,getMessages:()=>n.getAll(),getMessagesByConversation:c=>n.getByConversation(c),deleteLocalMessage:gc,clearLocalConversationHistory:Zp,getSession:c=>o.get(c),ensureConversation:Wp,getSessions:()=>o.getAll(),getConversationList:pp,getReadState:c=>i.get(c),getPinnedMessage:c=>a.get(c),setPinnedMessage:Rp,clearPinnedMessage:Ep,isPinnedMessage:(c,l)=>a.isPinnedMessage(c,l),setReadState:c=>{let l=c.conversationType===void 0?o.get(c.conversationId):void 0,p=c.conversationType===void 0&&l!==void 0?{...c,conversationType:l.type}:c;i.set(p),tc(p);},markConversationUnread:Bp,clearConversationManualUnread:lc,advanceRead:xp,applyServerUnread:uc,beginChannelReadTransaction:Fp,applyChannelReadOptimistically:wp,commitChannelReadTransaction:Pp,rollbackChannelReadTransaction:Vp,setGroupRestriction:Op,setChannelRestriction:bs,setPinned:Kp,setMuted:Lp,removeConversation:Qp,removeConversationForMembershipTermination:Ns,refreshConversationProfile:hp,recoverChannelFromProfile:Mp,updateConversationProfile:Tp,getTotalUnread:Hp,getDraft:mp,saveDraft:fp,clearDraft:yp,clearDraftIfUnchanged:Ip,invalidateAndDrainDraftOperations:Sp,clearSession(){C+=1,I+=1,Ts+=1,At.clear(),R.clear(),T.clear(),n.clear(),o.clear(),i.clear(),s.clear(),D.clear(),_.clear(),m.clear(),d.clear(),a.clearAll(),f.clear(),y.clear(),N.clear(),t.clear();for(let c of v)c.reset();},hydrate:Jp,loadOlderMessages:Yp,searchMessages:zp,messageWindow:J,createMessageWindow:re}}var pS=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function fS(e){let n=new Set,t=new Map,r=new Map,o=true;function i(g){let f=g.extensions?.channelSequence,y=typeof f=="string"?f:g.raw?.channelNotify?.sequence;if(y===void 0||!/^\d+$/.test(y))return;let N=BigInt(y);return N>0n?N:void 0}function s(g){return n.has(g)?false:(n.add(g),n.size>2048&&n.delete(n.values().next().value),true)}function a(g,f,y,N){N!==void 0&&r.set(g,N),e.clearChannelKey(g),e.stopChannelHistory(g),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:g},y);}function d(g){let f=e.domainState.getSession(g);e.domainState.setChannelRestriction(g,f?.channelState??"unknown_restricted",f?.channelState===void 0?"channel_access_requires_refresh":f.sendDisabledReason);}return {handleMessage(g,f={source:"live"}){if(!o||g.conversationType!=="channel"||g.contentType!=="system"||g.body.system===void 0||f.source!=="live"&&f.applyLifecycleEffects!==true||!s(g.id))return;let y=g.conversationId,N=g.body.system,S=N.targetUserIds?.includes(e.getSelfId())??false,E=N.targetUserIds===void 0||N.targetUserIds.length===0,D=i(g),_=t.get(y);if(D!==void 0){if(_!==void 0&&D<=_)return;t.set(y,D);}switch(N.eventType){case "channel_member_left":S?a(y,"left","channel_left",D):e.domainState.refreshConversationProfile(y,"channel");return;case "channel_member_removed":S?a(y,"removed","channel_removed",D):e.domainState.refreshConversationProfile(y,"channel");return;case "channel_dismissed":a(y,"dismissed","channel_dismissed",D);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!S){e.domainState.refreshConversationProfile(y,"channel");return}let m=e.domainState.getSession(y)?.channelState;if(m==="dismissed")return;if(m==="left"||m==="removed"){let I=r.get(y);if(!(D!==void 0&&I!==void 0&&D>I)){e.domainState.recoverChannelFromProfile(y).then(v=>{!o||!v||(r.delete(y),e.clearConversationTermination?.({conversationType:"channel",conversationId:y}),e.prepareChannelKey(y));});return}r.delete(y);}if(!o)return;e.domainState.setChannelRestriction(y,"active",void 0),e.clearConversationTermination?.({conversationType:"channel",conversationId:y}),e.prepareChannelKey(y),e.domainState.refreshConversationProfile(y,"channel");return}case "channel_all_muted":case "channel_all_unmuted":d(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_member_muted":case "channel_member_unmuted":(S||E)&&d(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_admin_added":case "channel_admin_removed":(S||E)&&d(y),e.domainState.refreshConversationProfile(y,"channel");return;case "channel_owner_transferred":(S||E||N.operatorId===e.getSelfId())&&d(y),e.domainState.refreshConversationProfile(y,"channel");return;default:pS.has(N.eventType)&&e.domainState.refreshConversationProfile(y,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function yS(e){let{domainState:n,getSelfId:t,prefetchGroupKey:r,clearGroupKeys:o}=e;return {handleMessage(i){let s=i.body.system;if(i.contentType==="system"&&s!==void 0){if(s.eventType==="group_info_changed"||s.eventType==="group_master_changed"){n.refreshConversationProfile(i.conversationId,"group");return}let a=ed(s,t());if(a===null)return;a.state==="active"?(n.setGroupRestriction(i.conversationId,a.state,a.reason),e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}),r(i.conversationId)):(o(i.conversationId),n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},a.reason));return}if(i.conversationType==="group"&&i.senderId===t()&&i.status==="failed"){let a=nd(i.failure?.code);a!==null?(o(i.conversationId),a.state==="dismissed"?n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},a.reason):n.setGroupRestriction(i.conversationId,a.state,a.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 IS(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 CS(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:Ae(e.createdAt,e.callId),status:e.status??"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},...e.failure===void 0?{}:{failure:e.failure}}}function Yn(e,n){let t=e.getMessage(n.callId);t?.contentType==="call"&&t.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([CS(n)],"live");}var pt=3e4,im=0,sm=1,am=0;function dm(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 SS=5,AS=6,cm=1,lm=2;function Rd(e){return e==="video"?AS:SS}function um(e){return e==="audio"?sm:im}function gm(e){if(e===sm)return "audio";if(e===im)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function ts(e,n,t=pt){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 mm(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 pm(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 rs(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 Qe(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 Ue(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}var RS=new Set([33281,33299]);function ft(e){return {conversationType:"direct",conversationId:e}}function fm(e){return e==="accepted"||e==="connected"}function ES(e){let n,t;function r(){return e.now?.()??Date.now()}function o(){let V=e.getSelfId();if(V.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return V}function i(V){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${V}`);return o()}function s(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function a(){t?.ringTimer!==void 0&&clearTimeout(t.ringTimer),t&&(t.ringTimer=void 0);}function d(V,u){e.emitter.emit({type:"call:hangup",conversation:ft(V.peerId),callId:V.callId,peerId:V.peerId,outcome:u});}function g(V,u=r(),M=true){if(t===void 0)return;let b=t;return a(),y(b,V,u),t=void 0,M&&d(b,V),b}function f(V,u){return V.connectedAt===void 0?0:Math.max(0,u-V.connectedAt)}function y(V,u,M,b){Yn(e.domainState,{callId:V.callId,peerId:V.peerId,selfId:o(),callKind:V.callKind,outcome:u,durationMs:f(V,M),outgoing:V.direction==="outgoing",createdAt:M,...b});}function N(V,u){n!==void 0&&y(n,V,u);}function S(V,u=r(),M=true){if(n===void 0)return;let b=n;return s(),N(V,u),n=void 0,M&&d(b,V),t!==void 0&&(n=t,t=void 0),b}function E(V,u,M){let b=V===16387?ar.encode(ar.create({sUserId:u,sMsgId:M})):V===16391?cr.encode(cr.create({sUserId:u,sMsgId:M})):V===16399?ur.encode(ur.create({sUserId:u,sMsgId:M})):V===16403?mr.encode(mr.create({sUserId:u,sMsgId:M})):lr.encode(lr.create({sUserId:u,sMsgId:M}));e.sendFrame(z({command:V,body:b}));}function D(V){return setTimeout(V,pt)}function _(){return Se(nn())}function m(V,u,M,b){let C=sr.encode(sr.create({sInviteId:ye(u,"peerId"),sFromId:ye(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),encrypt:am,sContent:dm(),callType:um(b),scallId:M}));e.sendFrame(z({command:16385,body:C}));}function I(V,u,M,b){let C=dr.encode(dr.create({sToId:ye(u,"peerId"),sFromId:ye(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),errcode:pm(b),scallId:M}));e.sendFrame(z({command:16389,body:C}));}function A(V,u,M,b){let C=ot.encode(ot.create({sToId:ye(u,"peerId"),sFromId:ye(V,"selfId"),sMsgId:_(),msgTime:BigInt(r()),scallId:M,hangupReasonCode:Ed(b)}));e.sendFrame(z({command:16397,body:C}));}function v(V,u){let M=Ue(V.callId);if(ye(V.peerId,"peerId"),n===void 0||n.callId!==M||n.peerId!==V.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${u}`);return n}function B(V){let u=i("\u53D1\u8D77\u901A\u8BDD"),M=V.callKind??"audio",b=String(ye(V.peerId,"peerId"));if(b===u)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let C=Ue(V.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let R=r();return n={callId:C,peerId:b,callKind:M,direction:"outgoing",phase:"outgoing-ringing",startedAt:R},m(u,b,C,M),n.ringTimer=D(()=>{n?.callId!==C||n.phase!=="outgoing-ringing"||(A(u,b,C,"no-answer"),S("cancelled"));}),{callId:C,conversation:ft(b)}}function J(V){let u=i("\u63A5\u542C"),M=Ue(V.callId);if(ye(V.peerId,"peerId"),t!==void 0&&t.callId===M&&t.peerId===V.peerId){if(n!==void 0)throw new Error("call signaling: \u8BF7\u5148\u7ED3\u675F\u5F53\u524D\u901A\u8BDD\u518D\u63A5\u542C\u7B49\u5F85\u6765\u7535");n=t,t=void 0;}let b=v(V,"\u63A5\u542C");if(b.direction!=="incoming"||b.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");s(),I(u,b.peerId,b.callId,"accept"),b.phase="accepted";}function re(V){let u=i("\u62D2\u7EDD"),M=Ue(V.callId);if(ye(V.peerId,"peerId"),t!==void 0&&t.callId===M&&t.peerId===V.peerId){I(u,t.peerId,t.callId,"reject"),g("rejected");return}let b=v(V,"\u62D2\u7EDD");if(b.direction!=="incoming"||b.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");I(u,b.peerId,b.callId,"reject"),S("rejected");}function se(V){let u=i("\u56DE\u5FD9"),M=Ue(V.callId),b=String(ye(V.peerId,"peerId"));if(I(u,b,M,"busy"),n?.callId===M){S("busy");return}if(t?.callId===M){g("busy");return}Yn(e.domainState,{callId:M,peerId:b,selfId:u,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:r()});}function Z(V){let u=i("\u6302\u65AD"),M=v(V,"\u6302\u65AD");A(u,M.peerId,M.callId,V.reason);let b=M.phase==="connected",C=rs(Ed(V.reason),M.direction,b);S(C);}function K(V,u){let M=u==="video"?"\u901A\u77E5\u5BF9\u7AEF\u89C6\u9891\u5DF2\u5F00\u59CB":"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB",b=i(M),C=v(V,M);if(C.callKind!==u)throw new Error(`call signaling: \u5F53\u524D\u901A\u8BDD\u4E0D\u662F${u==="video"?"\u89C6\u9891":"\u8BED\u97F3"}\uFF0C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5`);if(C.phase!=="accepted"&&C.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5");let R=gr.encode(gr.create({sToId:ye(C.peerId,"peerId"),sFromId:ye(b,"selfId"),sMsgId:_(),msgTime:BigInt(r()),notifyType:Rd(u),notifyValue:V.role==="caller"?cm:lm,scallId:C.callId}));e.sendFrame(z({command:16401,body:R}));}function O(V){K(V,"audio");}function P(V){K(V,"video");}function X(V){let u=ci.decode(V);if(u.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let M=o();E(16387,ye(M,"selfId"),u.sMsgId);let b=Ue(u.scallId),C=u.sFromId.toString();if(u.sFromId<=0n||u.sInviteId.toString()!==M)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(C===M)return;let R=Number(u.msgTime),T=gm(u.callType),G=ts(R,r()),k=ft(C);if(G){Yn(e.domainState,{callId:b,peerId:C,selfId:M,callKind:T,outcome:"missed",durationMs:0,outgoing:false,createdAt:R}),e.emitter.emit({type:"call:incoming",conversation:k,callId:b,peerId:C,callKind:T,createdAt:R,expired:true});return}if(n?.callId===b||t?.callId===b)return;if(n!==void 0&&!fm(n.phase)){I(M,C,b,"busy"),Yn(e.domainState,{callId:b,peerId:C,selfId:M,callKind:T,outcome:"busy",durationMs:0,outgoing:false,createdAt:R});return}if(n!==void 0&&n.peerId===C){I(M,C,b,"busy"),Yn(e.domainState,{callId:b,peerId:C,selfId:M,callKind:T,outcome:"busy",durationMs:0,outgoing:false,createdAt:R});return}if(t!==void 0){I(M,C,b,"busy"),Yn(e.domainState,{callId:b,peerId:C,selfId:M,callKind:T,outcome:"busy",durationMs:0,outgoing:false,createdAt:R});return}let L={callId:b,peerId:C,callKind:T,direction:"incoming",phase:"incoming-ringing",startedAt:R};if(L.ringTimer=D(()=>{if(t?.callId===b&&t.phase==="incoming-ringing"){g("missed");return}n?.callId!==b||n.phase!=="incoming-ringing"||S("missed",R);}),n!==void 0&&fm(n.phase)){t=L,e.emitter.emit({type:"call:incoming",conversation:k,callId:b,peerId:C,callKind:T,createdAt:R,expired:false});return}n=L,e.emitter.emit({type:"call:incoming",conversation:k,callId:b,peerId:C,callKind:T,createdAt:R,expired:false});}function ue(V){let u=di.decode(V);if(n===void 0||n.direction!=="outgoing"||u.errcode===32768)return;let M=u.errcode===33794?"peer-offline":"ack-error",b=n,C=r();s(),n=void 0,RS.has(u.errcode)?(y(b,"cancelled",C,{status:"failed",failure:{code:u.errcode,reason:"rejected",displayCode:"contactRequired",retryable:false}}),e.domainState.appendDirectContactRequiredNotice(b.peerId,b.callId,C+1)):y(b,"cancelled",C),e.emitter.emit({type:"call:failed",conversation:ft(b.peerId),callId:b.callId,peerId:b.peerId,reason:M});}function q(V,u){u!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${V} ACK \u5931\u8D25`,cause:{errcode:u}}});}function Ie(V){let u=ui.decode(V);if(u.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let M=o();E(16391,ye(M,"selfId"),u.sMsgId);let b=Ue(u.scallId);if(n===void 0||n.callId!==b||n.direction!=="outgoing")return;let C=mm(u.errcode);if(e.emitter.emit({type:"call:answered",conversation:ft(n.peerId),callId:b,peerId:n.peerId,result:C}),C==="accept"){s(),n.phase="accepted";return}S(C==="reject"?"rejected":C==="busy"?"busy":"cancelled");}function de(V){let u=ot.decode(V);if(u.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let M=o();E(16399,ye(M,"selfId"),u.sMsgId);let b=Ue(u.scallId);if(t!==void 0&&t.callId===b){let R=rs(u.hangupReasonCode,t.direction,false);g(R);return}if(n===void 0||n.callId!==b)return;let C=rs(u.hangupReasonCode,n.direction,n.phase==="connected");S(C);}function me(V){let u=fi.decode(V);if(u.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let M=o();if(E(16403,ye(M,"selfId"),u.sMsgId),n===void 0||u.notifyType!==Rd(n.callKind))return;let b=Ue(u.scallId);n.callId===b&&(n.phase!=="accepted"&&n.phase!=="connected"||(n.connectedAt===void 0&&(n.connectedAt=r()),n.phase="connected",e.emitter.emit({type:n.callKind==="video"?"call:peer-video-begin":"call:peer-audio-begin",conversation:ft(n.peerId),callId:b,peerId:n.peerId})));}function $(V){let u=gi.decode(V);if(u.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");E(16395,ye(o(),"selfId"),u.sMsgId);}return {handlers:[{command:16388,handler:(V,u)=>X(u)},{command:16386,handler:(V,u)=>ue(u)},{command:16392,handler:(V,u)=>Ie(u)},{command:16390,handler:(V,u)=>q("answer",li.decode(u).errcode)},{command:16400,handler:(V,u)=>de(u)},{command:16398,handler:(V,u)=>q("hangup",mi.decode(u).errcode)},{command:16404,handler:(V,u)=>me(u)},{command:16402,handler:(V,u)=>q("state-notify",pi.decode(u).errcode)},{command:16396,handler:(V,u)=>$(u)}],invite:B,accept:J,reject:re,busy:se,hangup:Z,notifyPeerAudioBegin:O,notifyPeerVideoBegin:P,dispose(){s(),a(),n=void 0,t=void 0;}}}var hS={started:"group_call_started",ended:"group_call_ended",missed:"group_call_missed"};function MS(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 ym(e,n){let t=`group-call-notice:${n}:${e.trim()}`,r=[0,1,2,3].map(o=>MS(`${t}:${o}`).toString(16).padStart(8,"0")).join("");return le(r)}function TS(e){let n=ym(e.callId,e.kind),t=e.operatorId?.trim()??"";return {id:n,conversationId:e.groupId,conversationType:"group",senderId:Yi,contentType:"system",body:{system:{eventType:hS[e.kind],...t===""?{}:{operatorId:t},payload:{callId:e.callId}}},createdAt:e.createdAt,sortKey:Ae(e.createdAt,n),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}}}function Im(e,n){let t=ym(n.callId,n.kind);e.getMessage(t)===void 0&&e.upsertMessages([TS(n)],"live");}var hd=9;function vS(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 Cm(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=vS(d),f=new Uint8Array(1+g.length);f[0]=r,f.set(g,1),o.push(f),i+=f.length;}let s=new Uint8Array(e.length+i),a=0;for(let d of o)s.set(d,a),a+=d.length;return s}function We(e){return {conversationType:"group",conversationId:e}}function bS(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 NS(e){return e.members.filter(n=>n.status==="in-call").length}function os(e){return e.filter(n=>n.status==="in-call").length<=1}function _S(e){let n=new Map,t=new Set,r=[];function o(){return e.now?.()??Date.now()}function i(C,R,T,G,k){Im(e.domainState,{kind:C,groupId:R,callId:T,createdAt:G,...k===void 0?{}:{operatorId:k}});}function s(){let C=e.getSelfId();if(C.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return C}function a(C){if(!e.isAuthenticated())throw new Error(`\u672A\u9274\u6743\uFF0C\u4E0D\u80FD${C}`);return s()}function d(){return Se(nn())}function g(C){if(C.trim()===""||t.has(C))return false;if(t.add(C),r.push(C),r.length>256){let R=r.shift();R!==void 0&&t.delete(R);}return true}function f(C){let R=n.get(C);return R===void 0?null:bS(R)}function y(C){C.incomingRingTimer!==void 0&&clearTimeout(C.incomingRingTimer),C.incomingRingTimer=void 0;}function N(C,R,T){let G=C.members.find(k=>k.userId===R);if(G!==void 0){G.status=T;return}C.members.push({userId:R,status:T});}function S(C,R){C.members=C.members.filter(T=>T.userId!==R);}function E(C){let R=n.get(C.groupId);R!==void 0&&y(R);let T=[];for(let k of C.inCallIds)T.some(L=>L.userId===k)||T.push({userId:k,status:"in-call"});for(let k of C.ringingIds)T.some(L=>L.userId===k)||T.push({userId:k,status:"ringing"});let G={groupId:C.groupId,callId:C.callId,inviterId:C.inviterId,createdAt:C.createdAt,members:T};return n.set(C.groupId,G),G}function D(C,R){let T=n.get(C);if(T!==void 0&&!(R!==void 0&&T.callId!==R))return y(T),n.delete(C),T}function _(C,R){for(let T of n.values())if(T.groupId!==R&&T.members.some(G=>Qe(G.userId,C)))return true;return false}function m(C,R,T){let G=fr.encode(fr.create({userId:R,msgId:T}));e.sendFrame(z({command:C,body:G}));}function I(C,R,T,G){let k=G.map(ae=>ye(ae,"inviteId")),L=Cm(pr.encode(pr.create({groupId:ye(R,"groupId"),userId:ye(C,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:T,inviteIds:k})),6,k);e.sendFrame(z({command:16641,body:L}));}function A(C,R,T,G,k){let L=G.map(ne=>ye(ne,"inviteId")),ae=Cm(Ir.encode(Ir.create({groupId:ye(R,"groupId"),userId:ye(C,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:T,joinType:k?1:0,inviteIds:L})),5,L);e.sendFrame(z({command:16649,body:ae}));}function v(C,R,T,G){let k=yr.encode(yr.create({groupId:ye(R,"groupId"),userId:ye(C,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:T,ansType:G?1:0}));e.sendFrame(z({command:16645,body:k}));}function B(C,R,T){let G=Cr.encode(Cr.create({groupId:ye(R,"groupId"),userId:ye(C,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:T}));e.sendFrame(z({command:16653,body:G}));}function J(C,R,T){let G=Sr.encode(Sr.create({groupId:ye(R,"groupId"),userId:ye(C,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:T}));e.sendFrame(z({command:16657,body:G}));}function re(C,R,T){let G=a("\u53D1\u8D77\u7FA4\u4F1A\u8BAE"),k=Ue(R),L=[...new Set(T.map(ne=>ne.trim()).filter(ne=>ne!==""&&!Qe(ne,G)))];if(L.length===0)throw new Error("call signaling: \u7FA4\u4F1A\u8BAE\u81F3\u5C11\u9080\u8BF7 1 \u4EBA");if(L.length+1>hd)throw new Error(`call signaling: \u7FA4\u4F1A\u8BAE\u4EBA\u6570\u4E0D\u80FD\u8D85\u8FC7 ${hd}`);let ae=n.get(C);if(ae!==void 0&&NS(ae)>0)throw new Error("call signaling: \u5F53\u524D\u7FA4\u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BAE");I(G,C,k,L),E({groupId:C,callId:k,inviterId:G,createdAt:o(),inCallIds:[G],ringingIds:L}),i("started",C,k,o(),G);}function se(C,R,T,G){let k=a("\u52A0\u5165\u7FA4\u4F1A\u8BAE"),L=Ue(R),ae=[...new Set(T.map(be=>be.trim()).filter(be=>be!==""&&!Qe(be,k)))];A(k,C,L,ae,G);let ne=n.get(C);if(ne!==void 0&&ne.callId===L&&(N(ne,k,"in-call"),G))for(let be of ae)N(ne,be,"ringing");}function Z(C,R,T){let G=a("\u54CD\u5E94\u7FA4\u4F1A\u8BAE"),k=Ue(R),L=n.get(C);if(L!==void 0&&L.callId===k&&y(L),v(G,C,k,T),!(L===void 0||L.callId!==k)){if(T){N(L,G,"in-call");return}S(L,G),e.emitter.emit({type:"group-call:answered",conversation:We(C),callId:k,groupId:C,userId:G,agreed:false});}}function K(C,R){let T=a("\u9000\u51FA\u7FA4\u4F1A\u8BAE"),G=Ue(R),k=n.get(C);if(k!==void 0&&k.callId===G&&os(k.members)){J(T,C,G),D(C,G),i("ended",C,G,o()),e.emitter.emit({type:"group-call:finished",conversation:We(C),callId:G,groupId:C,userId:T});return}B(T,C,G),k!==void 0&&k.callId===G&&(y(k),S(k,T)),e.emitter.emit({type:"group-call:left",conversation:We(C),callId:G,groupId:C,userId:T});}function O(C,R){let T=a("\u7ED3\u675F\u7FA4\u4F1A\u8BAE"),G=Ue(R);J(T,C,G),D(C,G),i("ended",C,G,o()),e.emitter.emit({type:"group-call:finished",conversation:We(C),callId:G,groupId:C,userId:T});}function P(C,R,T,G){let k=a("\u4FEE\u6539\u7FA4\u4F1A\u8BAE\u72B6\u6001"),L=Ar.encode(Ar.create({groupId:ye(C,"groupId"),userId:ye(k,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:Ue(R),statusType:T?1:0,status:G?1:0}));e.sendFrame(z({command:16661,body:L}));}function X(C,R,T){let G=a("\u53D1\u9001\u7FA4\u4F1A\u8BAE\u5FD9\u7EBF"),k=Rr.encode(Rr.create({groupId:ye(C,"groupId"),userId:ye(G,"selfId"),msgId:d(),msgTime:BigInt(o()),callId:Ue(R),hintUser:ye(T,"hintUserId")}));e.sendFrame(z({command:16669,body:k}));let L=n.get(C);L!==void 0&&L.callId===R&&S(L,G);}function ue(C){let R=Ii.decode(C);if(R.msgId.trim()==="")throw new Error("group call: create deliver \u7F3A\u5C11 msgId");let T=s();if(m(16643,ye(T,"selfId"),R.msgId),!g(R.msgId))return;let G=R.groupId.toString(),k=R.userId.toString(),L=Ue(R.callId),ae=R.inviteIds.map(ce=>ce.toString()).filter(ce=>ce!=="0"),ne=Number(R.msgTime),be=ts(ne,o(),pt),Ze=We(G),Ee=Qe(k,T),U=ae.some(ce=>Qe(ce,T))||ae.length===0&&!Ee;if(Ee){E({groupId:G,callId:L,inviterId:k,createdAt:ne,inCallIds:[T],ringingIds:ae.filter(ce=>!Qe(ce,T))});return}let W=n.get(G);if(W!==void 0&&W.callId!==L&&W.members.some(ce=>Qe(ce.userId,T)&&ce.status==="in-call")){J(T,G,L),i("ended",G,L,Number.isFinite(ne)?ne:o());return}if(E({groupId:G,callId:L,inviterId:k,createdAt:ne,inCallIds:[k],ringingIds:U?[...new Set([T,...ae.filter(ce=>!Qe(ce,k))])]:ae.filter(ce=>!Qe(ce,k))}),i("started",G,L,Number.isFinite(ne)?ne:o(),k),!U)return;if(be){e.emitter.emit({type:"group-call:incoming",conversation:Ze,callId:L,groupId:G,inviterId:k,inviteIds:ae,createdAt:ne,expired:true});return}if(_(T,G)){X(G,L,k);return}let pe=n.get(G);pe!==void 0&&(pe.incomingRingTimer=setTimeout(()=>{let ce=n.get(G);if(ce===void 0||ce.callId!==L)return;let we=ce.members.find(St=>Qe(St.userId,T));if(!(we===void 0||we.status!=="ringing")){try{Z(G,L,!1);}catch{S(ce,T);}i("missed",G,L,o());}},pt)),e.emitter.emit({type:"group-call:incoming",conversation:Ze,callId:L,groupId:G,inviterId:k,inviteIds:ae,createdAt:ne,expired:false});}function q(C){let R=Si.decode(C);if(R.msgId.trim()==="")throw new Error("group call: answer deliver \u7F3A\u5C11 msgId");let T=s();if(m(16647,ye(T,"selfId"),R.msgId),!g(R.msgId))return;let G=R.groupId.toString(),k=R.userId.toString(),L=Ue(R.callId),ae=R.ansType===1,ne=n.get(G);ne===void 0||ne.callId!==L||(ae?N(ne,k,"in-call"):S(ne,k),e.emitter.emit({type:"group-call:answered",conversation:We(G),callId:L,groupId:G,userId:k,agreed:ae}));}function Ie(C){let R=Ri.decode(C);if(R.msgId.trim()==="")throw new Error("group call: join deliver \u7F3A\u5C11 msgId");let T=s();if(m(16651,ye(T,"selfId"),R.msgId),!g(R.msgId))return;let G=R.groupId.toString(),k=R.userId.toString(),L=Ue(R.callId),ae=R.inviteIds.map(Ee=>Ee.toString()).filter(Ee=>Ee!=="0"&&Ee!==k),ne=n.get(G);if(ne===void 0||ne.callId!==L)ne=E({groupId:G,callId:L,inviterId:k,createdAt:Number(R.msgTime),inCallIds:[k],ringingIds:ae});else if(N(ne,k,"in-call"),R.joinType===1)for(let Ee of ae)N(ne,Ee,"ringing");e.emitter.emit({type:"group-call:joined",conversation:We(G),callId:L,groupId:G,userId:k,inviteIds:ae,isInvite:R.joinType===1});let be=ae.some(Ee=>Qe(Ee,T))||ae.length===0&&R.joinType===1&&!Qe(k,T),Ze=ne.members.find(Ee=>Qe(Ee.userId,T));be&&R.joinType===1&&!Qe(k,T)&&Ze?.status!=="in-call"&&e.emitter.emit({type:"group-call:incoming",conversation:We(G),callId:L,groupId:G,inviterId:k,inviteIds:ae,createdAt:Number(R.msgTime),expired:false});}function de(C){let R=hi.decode(C);if(R.msgId.trim()==="")throw new Error("group call: hangup deliver \u7F3A\u5C11 msgId");let T=s();if(m(16655,ye(T,"selfId"),R.msgId),!g(R.msgId))return;let G=R.groupId.toString(),k=R.userId.toString(),L=Ue(R.callId),ae=n.get(G);ae===void 0||ae.callId!==L||(S(ae,k),e.emitter.emit({type:"group-call:left",conversation:We(G),callId:L,groupId:G,userId:k}),os(ae.members)&&(D(G,L),i("ended",G,L,o()),e.emitter.emit({type:"group-call:finished",conversation:We(G),callId:L,groupId:G,userId:k})));}function me(C){let R=Ti.decode(C);if(R.msgId.trim()==="")throw new Error("group call: finish deliver \u7F3A\u5C11 msgId");let T=s();if(m(16659,ye(T,"selfId"),R.msgId),!g(R.msgId))return;let G=R.groupId.toString(),k=R.userId.toString(),L=Ue(R.callId);D(G,L),i("ended",G,L,Number(R.msgTime)||o()),e.emitter.emit({type:"group-call:finished",conversation:We(G),callId:L,groupId:G,userId:k});}function $(C){let R=Di.decode(C);if(R.msgId.trim()==="")throw new Error("group call: busy deliver \u7F3A\u5C11 msgId");let T=s();if(m(16671,ye(T,"selfId"),R.msgId),!g(R.msgId))return;let G=R.groupId.toString(),k=R.userId.toString(),L=Ue(R.callId),ae=n.get(G);ae!==void 0&&ae.callId===L&&S(ae,k),e.emitter.emit({type:"group-call:busy",conversation:We(G),callId:L,groupId:G,userId:k,hintUserId:R.hintUser.toString()});}function Me(C){let R=Ni.decode(C);if(R.msgId.trim()==="")throw new Error("group call: disconnected deliver \u7F3A\u5C11 msgId");let T=s();if(m(16667,ye(T,"selfId"),R.msgId),!g(R.msgId))return;let G=R.groupId.toString(),k=Ue(R.callId),L=n.get(G);if(!(L===void 0||L.callId!==k)){for(let ae of R.users){let ne=ae.toString();S(L,ne),e.emitter.emit({type:"group-call:left",conversation:We(G),callId:k,groupId:G,userId:ne});}os(L.members)&&(D(G,k),i("ended",G,k,o()),e.emitter.emit({type:"group-call:finished",conversation:We(G),callId:k,groupId:G,userId:R.userId.toString()}));}}function V(C){let R=bi.decode(C);if(R.msgId.trim()==="")throw new Error("group call: status deliver \u7F3A\u5C11 msgId");m(16663,ye(s(),"selfId"),R.msgId);}function u(C){let R=yi.decode(C);if(R.errCode===32768)return;let T=s();for(let G of n.values()){if(!Qe(G.inviterId,T))continue;let k=D(G.groupId,G.callId);if(k!==void 0){e.emitter.emit({type:"group-call:failed",conversation:We(k.groupId),callId:k.callId,groupId:k.groupId,reason:"ack-error"});return}}e.emitter.emit({type:"error",error:{scope:"protocol",message:"group call: createRoom ACK \u5931\u8D25",cause:{errCode:R.errCode}}});}function M(C,R){R!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`group call: ${C} ACK \u5931\u8D25`,cause:{errCode:R}}});}return {commandHandlers:[{command:16644,handler:(C,R)=>ue(R)},{command:16642,handler:(C,R)=>u(R)},{command:16648,handler:(C,R)=>q(R)},{command:16646,handler:(C,R)=>M("answer",Ci.decode(R).errCode)},{command:16652,handler:(C,R)=>Ie(R)},{command:16650,handler:(C,R)=>M("join",Ai.decode(R).errCode)},{command:16656,handler:(C,R)=>de(R)},{command:16654,handler:(C,R)=>M("hangup",Ei.decode(R).errCode)},{command:16660,handler:(C,R)=>me(R)},{command:16658,handler:(C,R)=>M("finish",Mi.decode(R).errCode)},{command:16672,handler:(C,R)=>$(R)},{command:16670,handler:(C,R)=>M("busy",_i.decode(R).errCode)},{command:16668,handler:(C,R)=>Me(R)},{command:16664,handler:(C,R)=>V(R)},{command:16662,handler:(C,R)=>M("status",vi.decode(R).errCode)}],createRoom:re,joinRoom:se,answer:Z,hangup:K,finish:O,setStatus:P,busy:X,inspectMeeting:f,dispose(){for(let C of n.values())y(C);n.clear();}}}function yt(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 Md(e){return [{command:4646,handler:(n,t)=>{let r=_o.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=Go.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=ai.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var Sm=9;function DS(){return {encrypted:true}}function GS(e,n){if(e.length===0)return "empty-input";if(e.length>Sm)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function US(e){return "body"in e&&"contentType"in e&&"sortKey"in e}var kS={"not-media-album":"type-not-allowed","item-not-found":"album-item-not-found","item-not-ready":"media-not-ready"};function Td(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=GS(n.targets,e.sendStrategies);if(i!==void 0){for(let a of n.targets.length>0?n.targets:[{conversationId:"",conversationType:"direct"}])for(let d of n.messages)r.push({ok:false,sourceMessageId:d.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:i});return {results:r,skippedSourceIds:[]}}let s=[];for(let a of n.messages){let d=e.resolveCurrentMessage===void 0?US(a)?a:void 0:e.resolveCurrentMessage(a);if(d===void 0||d.id!==a.id||d.conversationId!==a.conversationId||d.conversationType!==a.conversationType){o.push(a.id);continue}if(!(a.itemIndex===void 0?yd(d):$i(d))){o.push(a.id);continue}s.push(a.itemIndex===void 0?{message:d}:{message:d,itemIndex:a.itemIndex});}for(let a of n.targets)for(let{message:d,itemIndex:g}of s)try{let f=g===void 0?void 0:Og(d,g);if(f!==void 0&&!f.ok){r.push({ok:!1,sourceMessageId:d.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:kS[f.reason]});continue}let y=f?.ok===!0?f.contentType:d.contentType,N=wr(y);if(N===void 0){r.push({ok:!1,sourceMessageId:d.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"type-not-allowed"});continue}let S=f?.ok===!0?f.body:N.cloneBody(d),E=DS(),D=N.enqueue({outbox:e.outbox,target:a,source:d,body:S,encryption:E,now:t,contentType:y});r.push({ok:!0,sourceMessageId:d.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,newMessageId:D});}catch{r.push({ok:false,sourceMessageId:d.id,targetConversationId:a.conversationId,targetConversationType:a.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}var It=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 Am(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 Or(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 Rm=1,xS=2,vd=3,BS=3,Em=5,hm=3,Mm=6,FS=16*1024*1024,wS=1e3;function bd(e){return Number.isFinite(e)&&e>0}var PS=320,VS=12*1024,Tm=20*1024,OS=.9,KS=.72,LS=320,ZS=10*1024,kd=16*1024,QS=.84,WS=.68,HS=kd;function Nd(e,n){if(!(n!=="video"&&n!=="image"||e===void 0)&&!(!bd(e.width)||!bd(e.height)||n==="video"&&e.duration!==void 0&&!bd(e.duration)||n==="video"&&e.posterData!==void 0&&(!(e.posterData instanceof Uint8Array)||e.posterData.length===0||e.posterData.length>HS)))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 is(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 _d={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:PS,targetBytes:VS,maxBytes:Tm,quality:OS,minQuality:KS},r);return {width:o.width,height:o.height,...i.data.byteLength<=Tm?{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}:{}}}}},ss={contentType:"video",uploadKind:"video",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.videoPoster(e,{mimeType:n,maxSize:LS,targetBytes:ZS,maxBytes:kd,quality:QS,minQuality:WS},r);return {width:o.width,height:o.height,...o.data.byteLength<=kd?{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,sizeUnit:"bytes"}:{},...o!==void 0?{fileEncryptType:o}:{},...r!==void 0?{teaKey:r}:{}}}}},JS={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}:{}}}}},YS={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 XS(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function zS(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 vm={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??"",s=XS(i),a=zS(s,o.mimeType);return {file:{url:e,fileName:i,...n!==void 0?{size:n}:{},...s!==""?{extension:s}:{},...a!==0?{fileType:a}:{},...o.mimeType!==void 0&&o.mimeType!==""?{mimeType:o.mimeType}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}};function as(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 bm(e,n){return e==="video"||n===void 0||n>FS?"large":"small"}function Dd(){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 qS(e){if(e.kind==="album")return {code:Hn,reason:"unknown",displayCode:as(e.failureReason),retryable:false};let n=e.spec.contentType==="video"||e.spec.contentType==="file";return {code:Hn,reason:"unknown",displayCode:n?"media.uploadInterrupted":as(e.failureReason),mediaKind:e.spec.uploadKind,retryable:false}}function jS(e){return typeof e=="function"}function $S(e){return typeof Blob<"u"&&e instanceof Blob}function eA(e){let n=0,t=0,r=[];function o(a){return n<e.total&&(a!=="large"||t<e.largeFiles)}function i(a){n+=1,a==="large"&&(t+=1);let d=false;return ()=>{d||(d=true,n-=1,a==="large"&&(t-=1),s());}}function s(){let a=0;for(;a<r.length;){let d=r[a];if(d.signal.aborted){r.splice(a,1),d.signal.removeEventListener("abort",d.onAbort),d.reject(Dd());continue}if(!o(d.tier)){a+=1;continue}r.splice(a,1),d.signal.removeEventListener("abort",d.onAbort),d.resolve(i(d.tier));}}return {acquire(a,d){return d.aborted?Promise.reject(Dd()):new Promise((g,f)=>{let y={tier:a,signal:d,resolve:g,reject:f,onAbort:()=>{let N=r.indexOf(y);N>=0&&r.splice(N,1),f(Dd());}};r.push(y),d.addEventListener("abort",y.onAbort,{once:true}),s();})}}}function Gd(e,n){if(!Number.isInteger(e)||e<1||e>Mm)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${Mm} \u7684\u6574\u6570\uFF08${n}\uFF09`)}function nA(e){if(e===void 0)return {total:Em,largeFiles:hm};if(typeof e=="number")return Gd(e,"\u603B\u6570"),{total:e,largeFiles:e};let n=e.total??Em;Gd(n,"total");let t=e.largeFiles??Math.min(hm,n);if(Gd(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 xd(e){let n=eA(nA(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,i=new Map,s=new Map,a=true,d=0;function g(m){return {conversationType:m.conversationType,conversationId:m.conversationId}}function f(m,I,A,v){e.mediaTransfer.abandonUpload(m).catch(B=>{e.onMediaTransferError?.({stage:"upload",kind:I,messageId:A,conversation:v,cause:B});});}function y(m,I,A,v,B,J){if(!a)return;let re=g(I);e.emitter.emit({type:"media-task:updated",conversation:re,task:{id:`upload:${m}`,messageId:m,ref:re,direction:"upload",state:A,percent:Math.max(0,Math.min(100,Math.round(v))),...J===void 0?{}:{phase:J},...B===void 0?{}:{failure:B}}});}function N(m,I){for(s.delete(m),s.set(m,I);s.size>BS;){let A=s.keys().next().value;if(A===void 0)break;let v=s.get(A);if(s.delete(A),v===void 0)continue;for(let J of Nm(v))f(J.resume,J.kind,A,g(v.input));if(!a)continue;let B=qS(v);e.domainState.upsertMessages([{...v.message,status:"failed",failure:B}],"live"),y(A,v.input,"failed",i.get(A)??0,B);}}async function S(m,I,A,v,B,J){if(!a)return J!==void 0&&A!==void 0&&f(J,m.uploadKind,A,g(I)),{ok:false,reason:"cancelled"};let re=d,se=B,Z=J,K=jS(I.data),O=$S(I.data)?I.data:void 0,P=K||O!==void 0?void 0:I.data,X=K||O!==void 0,ue=m.streamUpload===true&&O!==void 0,q=G=>{if(O!==void 0)return O;if(G===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([G],I.mimeType===void 0?void 0:{type:I.mimeType})};if(P?.length===0||O?.size===0)return {ok:false,reason:"empty"};let Ie=I.encrypted??true;if(Ie&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let de=Nd(I.localPreviewMetadata,m.contentType);if((m.contentType==="video"||m.contentType==="image")&&I.localPreviewMetadata!==void 0&&de===void 0)return {ok:false,reason:"preview-failed"};let me=A===void 0||v===void 0?e.outbox.allocateMessageIdentity({conversationId:I.conversationId,conversationType:I.conversationType}):{id:A,createdAt:v},{id:$,createdAt:Me}=me,V=e.getSelfId(),u=de??{width:0,height:0};if(!X)try{u=is(await m.buildPreview(q(P),I.mimeType,e.mediaPreview),de);}catch{}if(!a)return Z!==void 0&&f(Z,m.uploadKind,$,g(I)),{ok:false,reason:"cancelled"};let M=O?.size??P?.byteLength,b={url:I.localPreviewUrl??"",...M===void 0?{}:{size:M}},C={id:$,conversationId:I.conversationId,conversationType:I.conversationType,senderId:V,contentType:m.contentType,body:m.buildBody({...b,meta:u},I),createdAt:Me,sortKey:Ae(Me,$),status:"uploading",receipt:"unread",encryption:{encrypted:Ie},...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}};e.domainState.upsertMessages([C],"live"),i.set($,0),y($,I,"queued",0,void 0,"waiting-upload-slot");let R=(G,k=false)=>{let L={code:Hn,reason:"unknown",displayCode:as(G),mediaKind:m.uploadKind,retryable:k};return a?(e.domainState.upsertMessages([{...C,status:"failed",failure:L}],"live"),y($,I,G==="cancelled"?"canceled":"failed",i.get($)??0,L),{ok:false,reason:G}):{ok:false,reason:G}},T=new AbortController;t.set($,T),r.set($,g(I));try{if(O!==void 0&&!(m.contentType==="video"&&de?.thumbData!==void 0)){try{u=is(await m.buildPreview(O,I.mimeType,e.mediaPreview,T.signal),de);}catch{}if(!a)return {ok:!1,reason:"cancelled"};C={...C,body:m.buildBody({url:I.localPreviewUrl??"",meta:u,size:O.size},I)},e.domainState.upsertMessages([C],"live");}let G=await n.acquire(bm(m.contentType,O?.size??P?.byteLength),T.signal);try{y($,I,"running",i.get($)??0);let k;try{ue||(k=K?await I.data():O!==void 0?new Uint8Array(await O.arrayBuffer()):P);}catch{return R("upload-failed",!0)}let L=ue?O.size:k.length;if(L===0)return R("empty");if(K&&!(m.contentType==="video"&&de?.thumbData!==void 0)){try{u=is(await m.buildPreview(q(k),I.mimeType,e.mediaPreview,T.signal),de);}catch{}if(!a)return {ok:!1,reason:"cancelled"};C={...C,body:m.buildBody({url:I.localPreviewUrl??"",meta:u,size:L},I)},e.domainState.upsertMessages([C],"live");}let ae=ue?O:k,ne,be=Rm;if(Ie&&e.crypto!==void 0&&m.encryptMode!=="none"){let Ee=e.crypto;try{se??=Ee.randomTeaKey();let U=se;m.encryptMode==="simple"?(ae=ue?new Blob([new Uint8Array(Ee.encryptFileSimple({teaKey:U,plain:new Uint8Array(await O.slice(0,32).arrayBuffer())})),O.slice(32)]):Ee.encryptFileSimple({teaKey:U,plain:k}),be=xS):ue?(ne=W=>Ee.encryptSymmetricChunked({teaKey:U,plain:W,signal:T.signal}),be=vd):(ae=Ee.encryptSymmetric({teaKey:U,plain:k}),be=vd);}catch{return R("encrypt-failed")}}let Ze;try{Ze=(await e.mediaTransfer.upload({data:ae,...ne===void 0?{}:{transformPart:ne},kind:m.uploadKind,conversationType:I.conversationType,signal:T.signal,...Z===void 0?{}:{resume:Z},onResumable:U=>{!a||t.get($)!==T||(Z=U);},...I.filename!==void 0?{filename:I.filename}:{},...I.mimeType!==void 0?{mimeType:I.mimeType}:{},onProgress:U=>{if(!a||T.signal.aborted||t.get($)!==T)return;let W=Number.isFinite(U.percent)?Math.max(0,Math.min(100,Math.round(U.percent))):0,pe=Math.max(i.get($)??0,W);i.set($,pe),e.emitter.emit({type:"media:progress",conversation:g(I),messageId:$,percent:pe}),y($,I,"running",pe,void 0,U.phase);}})).url;}catch(Ee){if((!T.signal.aborted||!(Ee instanceof Error&&Ee.name==="AbortError"))&&e.onMediaTransferError?.({stage:"upload",kind:m.uploadKind,messageId:$,conversation:g(I),cause:Ee}),!a)return {ok:!1,reason:"cancelled"};let U=T.signal.aborted?o.get($)??"cancelled":"upload-failed";return N($,{kind:"media",spec:m,input:I,createdAt:Me,message:C,failureReason:U,...se===void 0?{}:{teaKey:se},...Z===void 0?{}:{resume:Z}}),R(U,!0)}if(!a)return {ok:!1,reason:"cancelled"};if(T.signal.aborted){let Ee=o.get($)??"cancelled";return N($,{kind:"media",spec:m,input:I,createdAt:Me,message:C,failureReason:Ee,...se===void 0?{}:{teaKey:se},...Z===void 0?{}:{resume:Z}}),R(Ee,!0)}if(re===d&&(m.contentType==="image"||m.contentType==="video")&&e.mediaAssetCache!==void 0){let Ee=m.contentType,U=O??new Blob([k],I.mimeType===void 0?void 0:{type:I.mimeType}),W=U.size;e.mediaAssetCache.put({kind:Ee,messageId:$,resourceVersion:Or(Ze),blob:U,...I.mimeType===void 0?{}:{mimeType:I.mimeType}}).catch(pe=>{e.onMediaAssetCacheError?.({operation:"put",kind:Ee,messageId:$,byteLength:W,cause:pe});});}return e.outbox.enqueueMedia({id:$,conversationId:I.conversationId,conversationType:I.conversationType,contentType:m.contentType,body:m.buildBody({url:Ze,meta:u,size:L,...m.encryptMode==="none"?{}:{teaKey:se,fileEncryptType:be}},I),encryption:{encrypted:Ie},createdAt:Me,...I.refMessageId!==void 0?{refMessageId:I.refMessageId}:{}}),y($,I,"completed",100),{ok:!0,messageId:$}}finally{G();}}catch{if(!a)return {ok:false,reason:"cancelled"};let G=T.signal.aborted?o.get($)??"cancelled":"upload-failed";return N($,{kind:"media",spec:m,input:I,createdAt:Me,message:C,failureReason:G,...se===void 0?{}:{teaKey:se},...Z===void 0?{}:{resume:Z}}),R(G,true)}finally{!a&&Z!==void 0&&f(Z,m.uploadKind,$,g(I)),t.get($)===T&&(t.delete($),r.delete($),i.delete($),o.delete($));}}async function E(m){let{conversation:I,encryptWith:A,isCurrentAttempt:v,item:B,onBytesUploaded:J,onPreviewReady:re,onSlotAcquired:se,signal:Z,state:K}=m,O=B.kind==="video"?ss:_d,P=Nd(B.localPreviewMetadata,B.kind),X=P??{width:0,height:0};if(!(B.kind==="video"&&P?.thumbData!==void 0))try{X=is(await O.buildPreview(B.data,B.mimeType,e.mediaPreview,Z),P);}catch{}X.thumbData===void 0&&K.preview?.thumbData!==void 0&&(X=K.preview),K.preview=X,re();let ue=await n.acquire(bm(B.kind,B.data.size),Z);try{se();let q,Ie=Rm;if(A!==void 0){K.teaKey??=A.randomTeaKey();let me=K.teaKey;q=$=>A.encryptSymmetricChunked({teaKey:me,plain:$,signal:Z}),Ie=vd;}return {url:(await e.mediaTransfer.upload({data:B.data,...q===void 0?{}:{transformPart:q},kind:O.uploadKind,conversationType:I.conversationType,signal:Z,...K.resume===void 0?{}:{resume:K.resume},onResumable:me=>{!a||!v()||(K.resume=me);},...B.filename!==void 0?{filename:B.filename}:{},...B.mimeType!==void 0?{mimeType:B.mimeType}:{},onProgress:me=>{!a||Z.aborted||!v()||J(me.bytesTransferred);}})).url,meta:X,size:B.data.size,...K.teaKey===void 0?{}:{teaKey:K.teaKey},fileEncryptType:Ie}}finally{ue();}}function D(m,I,A){let v=I.uploaded,B=v?.meta??I.preview??Nd(m.localPreviewMetadata,m.kind)??{width:0,height:0};return {kind:m.kind,url:v?.url??m.localPreviewUrl??"",width:B.width,height:B.height,...m.kind==="video"&&B.duration!==void 0&&B.duration>0?{durationMs:Math.max(1,Math.round(B.duration*1e3))}:{},...B.thumbData===void 0?{}:{thumbData:B.thumbData},size:v?.size??m.data.size,...v?.teaKey===void 0?{}:{teaKey:v.teaKey},...v===void 0?{}:{fileEncryptType:v.fileEncryptType},...A===void 0?{}:{hd:A}}}async function _(m,I,A,v){let B=g(m),J=(T,G)=>{for(let k of G)k.resume!==void 0&&f(k.resume,k.uploadKind,T,B);};if(!a)return I!==void 0&&v!==void 0&&J(I,v),{ok:false,reason:"cancelled"};if(m.items.length===0)return {ok:false,reason:"empty"};if(m.items.length>9)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u6700\u591A ${9} \u9879\uFF0C\u6536\u5230 ${m.items.length} \u9879`);let re=m.caption!==void 0&&m.caption.trim()!==""?m.caption:void 0;if(re!==void 0&&re.length>1024)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u6700\u957F ${1024} \u5B57\u7B26\uFF0C\u6536\u5230 ${re.length}`);if(m.items.some(T=>T.data.size===0))return {ok:false,reason:"empty"};if(I===void 0&&ks(m)!=="mediaAlbum"){let T=m.items[0];return S(T.kind==="video"?ss:_d,{conversationId:m.conversationId,conversationType:m.conversationType,data:T.data,...T.mimeType!==void 0?{mimeType:T.mimeType}:{},...T.filename!==void 0?{filename:T.filename}:{},...T.localPreviewUrl!==void 0?{localPreviewUrl:T.localPreviewUrl}:{},...T.localPreviewMetadata!==void 0?{localPreviewMetadata:T.localPreviewMetadata}:{},...m.encrypted!==void 0?{encrypted:m.encrypted}:{},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}})}let se=m.encrypted??true;if(se&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let Z=se?e.crypto:void 0,K=d,O=I===void 0||A===void 0?e.outbox.allocateMessageIdentity(B):{id:I,createdAt:A},{id:P,createdAt:X}=O,ue=m.items.map((T,G)=>{let k=v?.[G];return {uploadKind:T.kind,...k?.uploaded===void 0?{}:{uploaded:k.uploaded},...k?.preview===void 0?{}:{preview:k.preview},...k?.teaKey===void 0?{}:{teaKey:k.teaKey},...k?.resume===void 0?{}:{resume:k.resume}}}),q=()=>({...re===void 0?{}:{caption:re},items:m.items.map((T,G)=>D(T,ue[G],m.hd))}),Ie={id:P,conversationId:m.conversationId,conversationType:m.conversationType,senderId:e.getSelfId(),contentType:"mediaAlbum",body:{mediaAlbum:q()},createdAt:X,sortKey:Ae(X,P),status:"uploading",receipt:"unread",encryption:{encrypted:se},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}};e.domainState.upsertMessages([Ie],"live"),i.set(P,0),y(P,m,"queued",0,void 0,"waiting-upload-slot");let de=(T,G)=>{let k={code:Hn,reason:"unknown",displayCode:as(T),retryable:G};return a?(e.domainState.upsertMessages([{...Ie,status:"failed",failure:k}],"live"),y(P,m,T==="cancelled"?"canceled":"failed",i.get(P)??0,k),{ok:false,reason:T}):{ok:false,reason:T}},me=new AbortController;t.set(P,me),r.set(P,B);let $=()=>t.get(P)===me,Me=()=>{!a||!$()||(Ie={...Ie,body:{mediaAlbum:q()}},e.domainState.upsertMessages([Ie],"live"));},V=m.items.reduce((T,G)=>T+G.data.size,0),u=ue.map((T,G)=>T.uploaded!==void 0?m.items[G].data.size:T.resume?.bytesUploaded??0),M=false,b=()=>{if(!a||!$())return;let T=u.reduce((k,L)=>k+L,0),G=Math.min(99,Math.max(i.get(P)??0,Math.floor(T/V*100)));G!==i.get(P)&&(i.set(P,G),e.emitter.emit({type:"media:progress",conversation:B,messageId:P,percent:G}),y(P,m,"running",G));},C,R=(T,G)=>{C===void 0&&(C=me.signal.aborted?o.get(P)??"cancelled":"upload-failed",C==="upload-failed"&&e.onMediaTransferError?.({stage:"upload",kind:T,messageId:P,conversation:B,cause:G}),me.abort());};try{if(await Promise.all(m.items.map(async(k,L)=>{let ae=ue[L];if(ae.uploaded===void 0)try{let ne=await E({item:k,state:ae,conversation:B,encryptWith:Z,signal:me.signal,isCurrentAttempt:$,onPreviewReady:Me,onSlotAcquired:()=>{M||!a||!$()||(M=!0,y(P,m,"running",i.get(P)??0));},onBytesUploaded:be=>{u[L]=Math.max(u[L]??0,be),b();}});ae.uploaded=ne,u[L]=k.data.size,b();}catch(ne){R(k.kind,ne);}})),!a)return {ok:!1,reason:"cancelled"};if(!$())return {ok:!1,reason:"cancelled"};if(C!==void 0)return N(P,{kind:"album",input:m,createdAt:X,message:Ie,failureReason:C,items:ue}),de(C,!0);if(me.signal.aborted){let k=o.get(P)??"cancelled";return N(P,{kind:"album",input:m,createdAt:X,message:Ie,failureReason:k,items:ue}),de(k,!0)}let T=q(),G;try{G=zr(Et(T).content);}catch(k){return e.onMediaAlbumContentSize?.({messageId:P,conversation:B,itemCount:T.items.length,outcome:"rejected",cause:k}),de("content-too-large",!1)}if(G>=xs&&e.onMediaAlbumContentSize?.({messageId:P,conversation:B,itemCount:T.items.length,contentBytes:G,outcome:"warn"}),K===d&&e.mediaAssetCache!==void 0){let k=e.mediaAssetCache;m.items.forEach((L,ae)=>{let ne=ue[ae].uploaded;ne!==void 0&&k.put({kind:L.kind,messageId:P,resourceVersion:Or(ne.url),blob:L.data,...L.mimeType===void 0?{}:{mimeType:L.mimeType}}).catch(be=>{e.onMediaAssetCacheError?.({operation:"put",kind:L.kind,messageId:P,byteLength:L.data.size,cause:be});});});}return e.outbox.enqueueMedia({id:P,conversationId:m.conversationId,conversationType:m.conversationType,contentType:"mediaAlbum",body:{mediaAlbum:T},encryption:{encrypted:se},createdAt:X,...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}}),y(P,m,"completed",100),{ok:!0,messageId:P}}finally{a||J(P,ue),t.get(P)===me&&(t.delete(P),r.delete(P),i.delete(P),o.delete(P));}}return {sendImage:m=>S(_d,m),sendVideo:m=>S(ss,m),replaceVideo:(m,I,A)=>S(ss,A,m,I),sendVoice:m=>{let I=m.durationMs;return I===void 0||!Number.isFinite(I)||I<wS?Promise.resolve({ok:false,reason:"invalid-duration"}):S(JS,m)},sendFile:m=>S(vm,m),sendGif:m=>S(YS,{...m,encrypted:false}),sendMediaAlbum:m=>_(m),replaceFile:(m,I,A)=>S(vm,A,m,I),cancel(m){if(!a)return false;let I=t.get(m);return I===void 0?false:(o.set(m,"cancelled"),I.abort(),true)},cancelConversation(m,I="offline"){if(a)for(let[A,v]of r){if(v.conversationType!==m.conversationType||v.conversationId!==m.conversationId)continue;let B=t.get(A);B!==void 0&&(o.set(A,I),B.abort(I));}},cancelAll(m="offline"){if(a)for(let[I,A]of t)o.set(I,m),A.abort(m);},retry(m){if(!a)return false;let I=s.get(m);return I===void 0?false:(s.delete(m),y(m,I.input,"queued",0),I.kind==="album"?_(I.input,m,I.createdAt,I.items):S(I.spec,I.input,m,I.createdAt,I.teaKey,I.resume),true)},invalidateAssetCacheWrites(){d+=1;},dispose(){if(a){a=false,d+=1;for(let m of t.values())m.abort();t.clear(),i.clear(),o.clear();for(let[m,I]of s)for(let A of Nm(I))f(A.resume,A.kind,m,g(I.input));s.clear();}}}}function _m(e,n){if(!jn(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 tA(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 rA(e,n){return it.encode(it.create({emoji:e,action:n}))}function oA(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function i(f,y){let N=BigInt(e.getSelfId()),S=BigInt(f.conversation.conversationId),E=rA(f.emoji,f.action),D=Se(f.id),_=Xe(f.parentMessageId);switch(f.conversation.conversationType){case "direct":{let m=y===4651?Io:yo,I=m.create({sToId:S,sFromId:N,sMsgId:D,msgType:1,msgTime:BigInt(f.createdAt),encrypt:0,sContent:E,parentMsgId:_});return z({command:y??4650,body:m.encode(I)})}case "group":{let m=Jt.create({sGrpId:S,sToId:S,sFromId:N,sMsgId:D,msgType:5,msgTime:BigInt(f.createdAt),encrypt:0,sContent:E,parentMsgId:_});return z({command:8978,body:Jt.encode(m)})}case "channel":{let m=er.create({sRadioId:S,sFromId:N,sMsgId:D,msgTime:BigInt(f.createdAt),encrypt:0,sContent:E,parentMsgId:_});return z({command:12817,body:er.encode(m)})}}}function s(f,y,N){clearTimeout(f.timer),n.delete(f.event.id),e.domainState.rollbackReaction(f.event.conversation,f.event.parentMessageId,f.event.id),f.resolve({ok:false,reason:y,...N===void 0?{}:{errcode:N}});}function a(f){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let y=e.domainState.getConversationMessage(f.conversation,f.parentMessageId);if(y===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!Id(y))return Promise.resolve({ok:false,reason:"unsupported-message"});if(f.action===0&&f.conversation.conversationType==="channel"){let S=e.domainState.getSession(f.conversation),E=Cd({channelState:S?.type==="channel"?S.channelState??"unknown_restricted":"unknown_restricted",snapshot:S?.type==="channel"?S.channelAccessSnapshot:void 0,permissions:S?.type==="channel"?S.channelPermissions:void 0,nowMs:t()});if(E.channelState!=="active"||!E.permissions.sendMessages)return Promise.resolve({ok:false,reason:"restricted"})}if(!Nr(f.emoji)||_r(f.emoji)||e.isEmojiSupported?.(f.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let N=Object.freeze({id:nn(),conversation:Object.freeze({...f.conversation}),parentMessageId:f.parentMessageId,senderId:e.getSelfId(),emoji:f.emoji,action:f.action,createdAt:t()});return e.domainState.applyReaction(N,"live"),new Promise(S=>{let E=setTimeout(()=>{let D=n.get(N.id);D!==void 0&&s(D,"timeout");},r);n.set(N.id,{event:N,resolve:S,timer:E});try{e.sendFrame(i(N));}catch(D){e.logger?.("reaction-send-frame-failed",{eventId:N.id,cause:D});let _=n.get(N.id);_!==void 0&&s(_,"failed");}})}function d(f){let N=e.domainState.getConversationMessage(f.conversation,f.parentMessageId)?.reactions?.currentUserEmoji===f.emoji?1:0;return a({...f,action:N})}function g(f){let y=n.get(f.eventId);if(y!==void 0){if(f.errcode!==32768&&f.errcode!==0){s(y,"failed",f.errcode);return}if(clearTimeout(y.timer),n.delete(y.event.id),y.event.conversation.conversationType==="direct")try{e.sendFrame(i(y.event,4651));}catch(N){e.logger?.("reaction-opposite-end-send-failed",{eventId:y.event.id,cause:N});}y.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(y.event.emoji).catch(N=>e.logger?.("reaction-report-failed",{emoji:y.event.emoji,cause:N})),y.resolve({ok:true,event:y.event});}}return {set:a,toggle:d,onAck:g,ingest:(f,y="live")=>!tA(f)||!Nr(f.emoji)||_r(f.emoji)||e.isEmojiSupported?.(f.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:f.id,parentMessageId:f.parentMessageId,emoji:f.emoji}),"ignored"):e.domainState.applyReaction(f,y),dispose(){o=true;for(let f of [...n.values()])s(f,"disconnected");}}}function iA(e){return [{command:4652,handler:(n,t)=>{let r=Co.decode(t);e.manager.onAck({eventId:le(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=Gr(So.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:le(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=Ur(Oo.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=Yo.decode(t);e.manager.onAck({eventId:le(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=Za(Xo.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function sA(e){return [{command:12806,handler:(n,t)=>{let r=oi.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=ii.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 aA(e){let n=new Map,t=new Map,r=new Map,o=0;function i(m,I){let A={conversationType:"channel",conversationId:m},v=e.domainState.getSession(A);if(v===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${m}\uFF09`);if(v.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${v.type}\uFF08channelId=${m}\uFF09`);if(I.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${m}\uFF09`);let B=e.domainState.getConversationMessage(A,I),J=e.domainState.getLoadedMessagesByConversation(A).find(Z=>Z.extensions?.historyCursor===I),se=(B===void 0?void 0:Kr(B))??(J===void 0?void 0:Kr(J));if(se===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${m}, cursor=${I}\uFF09`);return se}function s(m){let I={conversationType:"channel",conversationId:m},A=e.domainState.getReadState(I);if(A?.readCursor!==void 0&&A.readCursor!==""){let v=e.domainState.getLoadedMessagesByConversation(I).find(B=>B.extensions?.historyCursor===A.readCursor);if(v!==void 0){let B=Kr(v);if(B!==void 0)return B}}return A?.readCursorSortKey===void 0?void 0:{sortKey:A.readCursorSortKey}}function a(m,I){return Dm(m,I)}function d(m,I){let A=r.get(m),v=A===void 0?s(m):A.committed;return v!==void 0&&a(v,I)>=0}function g(m,I){let A=r.get(m);if(A!==void 0){if(a(A.optimistic,I)>=0)return;e.domainState.applyChannelReadOptimistically(A.transaction,I.messageId,I.cursor),A.optimistic=I;return}let v=s(m),B=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:m});e.domainState.applyChannelReadOptimistically(B,I.messageId,I.cursor),r.set(m,{transaction:B,committed:v,optimistic:I});}function f(m,I){let A=n.get(m);(A===void 0||a(I,A)>0)&&n.set(m,I);}function y(m,I){if(e.syncRead!==void 0)try{let A=ir.encode(ir.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(m),lastReadIndex:I}));e.syncRead.sendFrame(z({command:12805,body:A}));}catch(A){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${m}\uFF09`,cause:A}});}}async function N(m,I){for(;;){if(I!==o)return;let A=n.get(m);if(A===void 0)return;if(n.delete(m),d(m,A))continue;try{await e.updateReadIndex({channelId:m,readCursor:A.cursor});}catch(J){if(I!==o)return;let re=r.get(m);throw re!==void 0&&(e.domainState.rollbackChannelReadTransaction(re.transaction),r.delete(m)),f(m,A),J}if(I!==o)return;if(d(m,A))continue;let v=r.get(m);v!==void 0&&e.domainState.commitChannelReadTransaction(v.transaction,A.cursor)||e.domainState.applyServerUnread({conversationType:"channel",conversationId:m},0,A.messageId,A.cursor),v!==void 0&&(v.committed=A,a(v.optimistic,A)===0&&r.delete(m)),e.logger?.("channel-read-index",{channelId:m,cursor:A.cursor}),y(m,A.cursor);}}function S(m,I){let A=Promise.resolve().then(()=>N(m,I)).then(()=>{if(t.get(m)===A&&(t.delete(m),I===o&&n.has(m)))return S(m,I)},v=>{throw t.get(m)===A&&t.delete(m),v});return t.set(m,A),A}function E(m){let I;try{I=i(m.conversationId,m.readCursor);}catch(v){return Promise.reject(v)}if(d(m.conversationId,I))return Promise.resolve();g(m.conversationId,I),f(m.conversationId,I);let A=t.get(m.conversationId);return A!==void 0?A:S(m.conversationId,o)}function D(m){let I=i(m.conversationId,m.readCursor);d(m.conversationId,I)||(e.domainState.applyServerUnread({conversationType:"channel",conversationId:m.conversationId},0,I.messageId,I.cursor),r.delete(m.conversationId));}function _(){o+=1;for(let m of r.values())e.domainState.rollbackChannelReadTransaction(m.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:E,applyRemoteRead:D,reset:_}}function dA(e){return e===void 0?void 0:Kr(e)?.cursor}function Kr(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 cA(e){let n;for(let t of e){let r=Kr(t);r!==void 0&&(n===void 0||Dm(r,n)>0)&&(n=r);}return n?.cursor}function Dm(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 ds=50;function Gm(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function lA(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:rn(e.id)}function uA(e,n,t,r){let o=Gm(e,n,r);if(o===void 0)return;let i=Gm(e,n,t),s=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(a=>lA(a)&&a.senderId!==s&&a.sortKey<=o&&(i===void 0||a.sortKey>i)).map(a=>a.id)}function Bd(e){let n=new Set,t=new Map,r=new Map;function o(s){let a=r.get(s);if(a===void 0||a.size===0||!e.isAuthenticated())return;for(let g of a)rn(g)||a.delete(g);if(a.size===0){r.delete(s);return}let d=[...a];for(let g=0;g<d.length;g+=ds){let f=d.slice(g,g+ds);try{let y=Zn.encode(Zn.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(s),msgIdList:f.map(Se)}));e.sendFrame(z({command:4117,body:y}));for(let N of f)a.delete(N);}catch(y){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u5A92\u4F53\u6D88\u8D39\u591A\u7AEF\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${s}\uFF09`,cause:y}});break}}a.size===0&&r.delete(s);}function i(s){let a=e.domainState.getReadState({conversationType:"direct",conversationId:s})?.readCursor??"";if(a===""||!e.isAuthenticated())return;let d=uA(e,s,t.get(s),a);if(d===void 0)return;if(d.length===0){t.set(s,a);return}let g,f=true;for(let y=0;y<d.length;y+=ds){let N=d.slice(y,y+ds),S=N.map(Se);try{let E=Zn.encode(Zn.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(s),msgIdList:S}));e.sendFrame(z({command:4117,body:E})),g=N.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:s,count:S.length,offset:y});}catch(E){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${s}\uFF09`,cause:E}}),f=false;break}}f?t.set(s,a):g!==void 0&&t.set(s,g);}return {report(s){n.add(s),i(s);},reportConsumedMedia(s,a){let d=e.domainState.getConversationMessage({conversationType:"direct",conversationId:s},a);if(d===void 0||d.senderId===e.getSelfId()||d.contentType!=="voice"&&d.contentType!=="video")return;n.add(s);let g=r.get(s);g===void 0&&(g=new Set,r.set(s,g)),g.add(a),o(s);},onAck({errcode:s}){e.logger?.("direct-sync-read-ack",{errcode:s}),s!==32768&&s!==0&&e.emitter.emit({type:"error",error:{scope:"sync",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08errcode=${s}\uFF09`,code:4118}});},onDeliver({userId:s,peerId:a,msgIdList:d}){if(s!==e.getSelfId())return;let f=d.map(y=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},le(y))).filter(y=>y!==void 0).sort((y,N)=>y.sortKey<N.sortKey?-1:y.sortKey>N.sortKey?1:0).at(-1);f!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:a},f.id);},onAuthenticated(){for(let s of n)i(s),o(s);},reset(){}}}function gA(e){let n=e.body?.system?.eventType;return n==="group_call_started"||n==="group_call_ended"||n==="group_call_missed"?false:rn(e.id)}var Fd=50;function mA(e){let n=new Map,t=new Set,r=new Map,o=new Map;function i(){return e.isAuthenticated?.()??true}function s(d,g){let{syncRead:f}=e;if(f===void 0||!i())return;let y=f.getSelfId(),N=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:d}),S=N.find(v=>v.id===g);if(S===void 0)return;let E=o.get(d),D=E===void 0?void 0:N.find(v=>v.id===E)?.sortKey,_=N.filter(v=>gA(v)&&v.senderId!==y&&v.sortKey<=S.sortKey&&(D===void 0||v.sortKey>D));if(_.length===0){o.set(d,g);return}let m=_.map(v=>Se(v.id)),I,A=true;for(let v=0;v<m.length;v+=Fd){let B=m.slice(v,v+Fd);try{let J=Yt.encode(Yt.create({sUserId:BigInt(y),msgIdList:B,groupId:BigInt(d)}));f.sendFrame(z({command:8967,body:J})),I=_[Math.min(v+Fd,_.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:d,count:B.length,offset:v});}catch(J){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:J}}),A=false;break}}A?o.set(d,g):I!==void 0&&o.set(d,I);}async function a(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){s(d,g);try{await e.markGroupReadAll(d),r.set(d,g);}catch(f){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:f}});return}}}}finally{t.delete(d),i()&&n.has(d)&&a(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),a(d);},onAuthenticated(){for(let d of n.keys())a(d);}}}function pA(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 Um(e){let n=Ot.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:Se(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return z({command:4107,body:Ot.encode(n)})}function km(e){let n=Lt.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:Se(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return z({command:8197,body:Lt.encode(n)})}function xm(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:Se(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function Bm(e){let n=tr.create(xm(e));return z({command:12297,body:tr.encode(n)})}function Fm(e){let n=nr.create(xm(e));return z({command:12293,body:nr.encode(n)})}var fA=15e3;function wd(e){let n=e.now??(()=>Date.now()),t=new Map;function r(o,i){let s=t.get(o);s!==void 0&&(s.timer!==void 0&&clearTimeout(s.timer),t.delete(o),s.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 s;try{s=Se(i.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let a=t.get(s);if(a!==void 0)return a.promise;let d,g=new Promise(y=>{d=y;}),f={messageId:i.id,channelId:i.conversationId,deletedAt:n(),resolve:d,promise:g};return t.set(s,f),e.resolveProfile(i.conversationId).then(y=>{if(t.get(s)===f){if(y===null||y.role!=="admin"&&y.role!=="owner"){r(s,{ok:false,reason:"forbidden"});return}f.timer=setTimeout(()=>r(s,{ok:false,reason:"timeout"}),fA),e.sendFrame(Fm({selfId:e.getSelfId(),channelId:i.conversationId,messageId:i.id,msgTime:i.serverTime??i.createdAt}));}}).catch(()=>r(s,{ok:false,reason:"failed"})),g},onDeleteAck({sMsgId:o,errcode:i}){let s=t.get(o);if(s!==void 0){if(i===32768||i===0){e.domainState.deleteChannelMessageForEveryone({conversationId:s.channelId,conversationType:"channel"},s.messageId,{by:e.getSelfId(),at:s.deletedAt,reason:"channel-moderation"}),r(o,{ok:true});return}if(i===34052){e.onPermissionDenied?.(s.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 Ct=300*1e3;function wm(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 Pm(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>Ct)return "expired"}function Vm(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:Ct,prepare(e,n,t){let r=Pm(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Um({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function Om(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:Ct,prepare(e,n,t){let r=Pm(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:km({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function yA(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:Ct,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>Ct)return {ok:false,reason:"expired"};let i=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:Bm({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...i===void 0||i===""?{}:{extend:i}})}}}}function Pd(){return wm([Vm(),Om()])}var Km=15e3;function Vd(e){let n=e.now??(()=>Date.now()),t=e.strategies??Pd(),r=new Map;function o(i,s){let a=r.get(i);a!==void 0&&(a.timer!==void 0&&clearTimeout(a.timer),r.delete(i),a.resolve(s));}return {recall(i){let s=e.domainState.getConversationMessage(i,i.messageId);if(s===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(s.recalled!==void 0)return Promise.resolve({ok:true});if(s.deletedForEveryone!==void 0)return Promise.resolve({ok:true});let a=t.resolve(i.conversationType);if(a===void 0)return Promise.resolve({ok:false,reason:"unsupported"});let d=e.getSelfId();if(a.ownMessageOnly===true&&s.senderId!==d)return Promise.resolve({ok:false,reason:"not-own"});if(s.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let g=n();if(a.recallWindowMs!==void 0&&g-(s.serverTime??s.createdAt)>a.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let f=Se(i.messageId),y=r.get(f);if(y!==void 0)return y.promise;let N=a.prepare(i,s,{selfId:d,now:g});function S(m){if(!m.ok)return Promise.resolve(m);let I,A=new Promise(B=>{I=B;}),v=setTimeout(()=>o(f,{ok:false,reason:"timeout"}),Km);return r.set(f,{messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:m.recalledAt,resolve:I,timer:v,promise:A}),e.sendFrame(m.frame),A}if(!(N instanceof Promise))return S(N);let E,D=new Promise(m=>{E=m;}),_={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:g,resolve:E,promise:D};return r.set(f,_),N.then(m=>{if(r.has(f)){if(!m.ok){o(f,m);return}_.cancelTime=m.recalledAt,_.timer=setTimeout(()=>o(f,{ok:false,reason:"timeout"}),Km),e.sendFrame(m.frame);}}).catch(()=>o(f,{ok:false,reason:"failed"})),D},onRecallAck({sMsgId:i,errcode:s}){let a=r.get(i);if(a===void 0)return;if(s===32768||s===0){e.domainState.recallMessage({conversationId:a.conversationId,conversationType:a.conversationType},a.messageId,{by:e.getSelfId(),at:a.cancelTime}),o(i,{ok:true});return}let d=s===33284?"server-expired":"failed";o(i,a.conversationType==="channel"?{ok:false,reason:d,errcode:s}:{ok:false,reason:d});},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function Od(e){function n(r){let o=vo.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([Ha(o,e.getSelfId())],"live");let i=Kt.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(z({command:4109,body:Kt.encode(i)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let s=(o?jo:ni).decode(r);if(s.sFromId<=0n||s.sRadioId<=0n||s.sMsgId.trim()==="")return;let a=o?qo:ei,d=o?12295:12299,g=a.create({sFromId:s.sFromId,sRadioId:s.sRadioId,sMsgId:s.sMsgId,sIndex:s.sIndex});e.sendFrame(z({command:d,body:a.encode(g)})),e.domainState.upsertMessages([o?Ya(s):Ja(s)],"live"),e.logger?.(o?"channel-message-deleted-deliver":"channel-recall-deliver",{sMsgId:s.sMsgId,sFromId:s.sFromId.toString(),sRadioId:s.sRadioId.toString()});}return [{command:4110,handler:(r,o)=>n(o)},{command:4108,handler:(r,o)=>{let i=To.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:8198,handler:(r,o)=>{let i=bo.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12298,handler:(r,o)=>{let i=$o.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12294,handler:(r,o)=>{let i=zo.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 Kd(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function IA(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 CA(e){let n=Kd(e.sFromId,"applicant"),t=Kd(e.sToId,"recipient"),r=Kd(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 SA(e){function n(t){let r=ti.decode(t),o=IA(e),i=CA(r),s=rr.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:i.messageId});try{e.sendFrame(z({command:12547,body:rr.encode(s)}));}catch(a){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:a}});}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 AA(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 RA(e){function n(i){let s=or.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sId});e.sendFrame(z({command:12803,body:or.encode(s)}));}function t(i,s,a,d="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:i,message:`${d}\uFF08channelId=${s.sRadioId.toString()}, messageId=${s.sMsgId}\uFF09`,cause:a}});}function r(i){if(i.encrypt===0)return fe.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 fe.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 s=e.decrypt.resolveChannelKey(i.sRadioId.toString());if(s===null||s.length!==16)throw new Error("CHANNEL \u901A\u77E5 key \u7F3A\u5931\u6216\u957F\u5EA6\u975E\u6CD5");let a=_e.decode(i.sContent);if(a.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return fe.decode(e.decrypt.crypto.decryptSymmetric({teaKey:s,cipherData:a.cipherData}))}function o(i,s){let a=ri.decode(s);AA(a);try{n(a);}catch(g){t("transport",a,g,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let d;try{d=r(a);}catch(g){t(a.encrypt===0?"protocol":"crypto",a,g);let f=yn(a,fe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:i,keepRaw:e.keepRaw,decryptFailed:a.encrypt!==0});e.domainState.upsertMessages([f],"live"),(a.encrypt===1||a.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:f.conversationId},messageId:f.id,wireEncrypt:a.encrypt,sContent:a.sContent.slice(),cmdId:i,source:"live",createdAt:Date.now()});return}try{let g=br({channelId:a.sRadioId,messageId:a.sMsgId,occurredAt:a.msgTime,notifyType:d.type,operatorId:d.oprUserId,targetUserIds:d.mnpledUserId,content:d.content,historyCursor:a.sId,sequence:a.nIncrId,encrypted:a.encrypt!==0,extend:a.extend},{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([g],"live"),e.logger?.("channel-notify-deliver",{channelId:a.sRadioId.toString(),messageId:a.sMsgId,notifyType:d.type});}catch(g){t("protocol",a,g);}}return [{command:12804,handler:(i,s)=>o(i,s)}]}function EA(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 hA(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 Lm(e,n=true){if(e.sFromId<=0n&&e.botId.trim()==="")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 MA(e){function n(d){let g=Ho.decode(d),f={...g.sIndex===""?{}:{historyCursor:g.sIndex},...g.nIncrId===0n?{}:{channelSequence:g.nIncrId.toString()}},y=EA(g.errcode);e.outbox.onChatAck({id:le(g.sMsgId),serverTime:Number(g.msgTime),errcode:g.errcode,...Object.keys(f).length===0?{}:{extensions:f},...y===void 0?{}:{failure:y}});let N=hA(g.errcode);N!==void 0&&g.sRadioId>0n&&e.domainState.setChannelRestriction(g.sRadioId.toString(),N.state,N.reason),e.logger?.("channel-chat-ack",{messageId:g.sMsgId,channelId:g.sRadioId.toString(),errcode:g.errcode});}function t(d){let g=$t.create({sFromId:d.sFromId,sRadioId:d.sRadioId,sMsgId:d.sMsgId,sIndex:d.sId});e.sendFrame(z({command:12291,body:$t.encode(g)}));}function r(d,g,f){let y=d.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:g,messageId:d.sMsgId,channelId:y,encrypt:d.encrypt,payloadByteLength:d.sContent.length,...f}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`CHANNEL \u5B9E\u65F6\u6D88\u606F\u5904\u7406\u5931\u8D25\uFF08${f.reason}, channelId=${y}\uFF09`,...f.cause===void 0?{}:{cause:f.cause}}});}function o(d,g){let f;if(d.encrypt===0)try{f=fe.decode(d.sContent);}catch(y){e.emitter.emit({type:"error",error:{scope:"protocol",message:`CHANNEL \u5B9E\u65F6\u660E\u6587 BMessage \u89E3\u7801\u5931\u8D25\uFF08channelId=${d.sRadioId.toString()}\uFF09`,cause:y}});return}else if(d.encrypt===1&&e.decrypt!==void 0){let y=e.decrypt.resolveUserPrivateKey?.()??null;if(y===null){r(d,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let N;try{if(N=_e.decode(d.sContent),N.secretKey.length===0||N.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 S;try{S=e.decrypt.crypto.decryptEndToEnd({secretKey:N.secretKey,cipherData:N.cipherData,privateKey:y});}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:N.cipherData.length,cause:E});return}try{f=fe.decode(S);}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:N.cipherData.length,decryptedByteLength:S.length,cause:E});return}}else if(d.encrypt===2&&e.decrypt!==void 0){let y=e.decrypt.resolveChannelKey(d.sRadioId.toString());if(y===null||y.length!==16){r(d,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:y?.length??0,keySource:y===null?"miss":"cache"});return}let N;try{let E=_e.decode(d.sContent);if(E.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");N=E.cipherData;}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:y.length,keySource:"cache",cause:E});return}let S;try{S=e.decrypt.crypto.decryptSymmetric({teaKey:y,cipherData:N});}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:y.length,keySource:"cache",cipherDataByteLength:N.length,cause:E});return}try{f=fe.decode(S);}catch(E){r(d,g,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:y.length,keySource:"cache",cipherDataByteLength:N.length,decryptedByteLength:S.length,cause:E});return}}else {r(d,g,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return f}function i(d,g){let f=yn(d,fe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:g,keepRaw:e.keepRaw,decryptFailed:true});e.domainState.upsertMessages([f],"live"),(d.encrypt===1||d.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:f.conversationId},messageId:f.id,wireEncrypt:d.encrypt,sContent:d.sContent.slice(),cmdId:g,source:"live",createdAt:Date.now()});}function s(d,g){let f=Jo.decode(g);Lm(f),t(f);let y=o(f,"live-deliver");if(y===void 0){i(f,d);return}let N=kr({channelId:f.sRadioId,senderId:f.sFromId,msgTime:f.msgTime,encrypt:f.encrypt},y);if(N!==null){e.domainState.upsertMessages([N],"live"),e.logger?.("channel-operation-notify-deliver",{messageId:f.sMsgId,targetMessageId:N.id,channelId:f.sRadioId.toString(),operation:N.deletedForEveryone!==void 0?"admin-delete":"self-recall",command:d});return}let S=yn(f,y,{selfId:e.getSelfId(),cmdId:d,keepRaw:e.keepRaw});e.domainState.upsertMessages([S],"live"),e.logger?.("channel-chat-deliver",{messageId:f.sMsgId,channelId:f.sRadioId.toString(),encrypt:f.encrypt,command:d});}function a(d,g){let f=Tn.decode(g);if(Lm(f,false),f.oldMsgId.trim()==="")throw new Error("channel edit deliver: oldMsgId \u7F3A\u5931");if(f.isEdit===""||f.isEdit==="0")throw new Error("channel edit deliver: isEdit \u6807\u8BB0\u7F3A\u5931");if(f.encrypt!==2)throw new Error("channel edit deliver: \u5FC5\u987B\u4F7F\u7528 CHANNEL encrypt=2");let y=le(f.oldMsgId),N=o(f,"live-edit");if(N===void 0){let E={conversationType:"channel",conversationId:f.sRadioId.toString()};if(e.domainState.getConversationMessage(E,y)===void 0){let D=yn(f,fe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:d,keepRaw:e.keepRaw,decryptFailed:true,edited:true});e.domainState.upsertMessages([{...D,id:y}],"live");}e.decrypt?.onDecryptRecovery?.({conversation:E,messageId:y,wireEncrypt:2,sContent:f.sContent.slice(),cmdId:d,source:"live",createdAt:Date.now()});return}let S=yn(f,N,{selfId:e.getSelfId(),cmdId:d,keepRaw:e.keepRaw,edited:true});if(S.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:S.conversationId},y,S.body,S.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:S.conversationId},y)===void 0&&e.domainState.upsertMessages([{...S,id:y,edited:true,extensions:{...S.extensions,editOperationMessageId:S.id,previousMessageId:y}}],"live");}return [{command:12290,handler:(d,g)=>n(g)},{command:12292,handler:(d,g)=>s(d,g)},{command:12816,handler:(d,g)=>s(d,g)},{command:12808,handler:(d,g)=>a(d,g)}]}function Ld(){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 TA(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 vA(e){return [{command:4360,handler:(n,t)=>{let r=Mo.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:Vt.encode(Vt.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=r.sFromId.toString(),s=r.errcode===32768||r.errcode===33300||TA(r)?"accepted":r.errcode===33297?"rejected":"ambiguous";s==="accepted"&&(e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(a=>{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:a}});}),e.domainState.refreshConversationProfile(i,"direct")),e.emitter.emit({type:"contact-application:answered",notification:{responderId:r.sFromId.toString(),applicantId:o,messageId:r.sMsgId,result:s}});}}]}function bA(e){return [{command:4356,handler:(n,t)=>{let r=ho.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:Pt.encode(Pt.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 Zd(e){function n(S){let E=Bt.create({sFromId:S.sFromId,sToId:S.sToId,sMsgId:S.sMsgId,msgTime:S.msgTime});e.sendFrame(z({command:4099,body:Bt.encode(E)}));}function t(S){let E=td(po.decode(S));e.logger?.("chat-ack",{id:E.id,errcode:E.errcode,serverTime:E.serverTime}),e.outbox.onChatAck(E);}function r(S,E,D){let _=lt(S,fe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:E,keepRaw:e.keepRaw,decryptFailed:true,edited:D});e.domainState.upsertMessages([_],"live"),S.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:_.conversationId},messageId:_.id,wireEncrypt:1,sContent:S.sContent.slice(),...S.encryptVersion===""?{}:{encryptVersion:S.encryptVersion},cmdId:E,source:"live",createdAt:Date.now()});}function o(S,E,D=false){let _=fo.decode(E),m;if(_.encrypt===0)m=fe.decode(_.sContent);else if(_.encrypt===1&&e.decrypt!==void 0){let A=e.decrypt.resolvePrivateKey({msgType:_.msgType,encrypt:_.encrypt,encryptVersion:_.encryptVersion});if(A===null){e.decrypt.onDecryptError?.({msgId:_.sMsgId,fromId:String(_.sFromId),toId:String(_.sToId),msgType:_.msgType,cmdId:S,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(_,S,D);return}try{let v=_e.decode(_.sContent);if(v.secretKey.length===0||v.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${v.secretKey.length}B cipherData=${v.cipherData.length}B`);let B=e.decrypt.crypto.decryptEndToEnd({secretKey:v.secretKey,cipherData:v.cipherData,privateKey:A});m=fe.decode(B);}catch(v){e.decrypt.onDecryptError?.({msgId:_.sMsgId,fromId:String(_.sFromId),toId:String(_.sToId),msgType:_.msgType,cmdId:S,encrypt:_.encrypt,encryptVersion:_.encryptVersion,reason:"decrypt-failed",cause:v}),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:v}}),r(_,S,D);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(_,S,D);return}let I=lt(_,m,{selfId:e.getSelfId(),cmdId:S,keepRaw:e.keepRaw,edited:D});e.domainState.upsertMessages([I],"live"),n(_),e.logger?.("chat-deliver",{sMsgId:_.sMsgId,sFromId:String(_.sFromId),sToId:String(_.sToId),encrypt:_.encrypt});}function i(S){let E=Zt.create({sUserId:S.sToId,sMsgId:S.sMsgId});e.sendFrame(z({command:4101,body:Zt.encode(E)})),e.logger?.("delivered-notif-ack",{sUserId:String(E.sUserId),sMsgId:E.sMsgId});}function s(S,E){let D=Uo.decode(E);if(e.logger?.("delivered-notif",{sMsgId:D.sMsgId,sFromId:String(D.sFromId),sToId:String(D.sToId)}),D.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(D),e.emitter.emit({type:"notification",cmdId:S,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function a(S){let E=Wt.create({sUserId:S.sToId,sMsgId:S.sMsgId});e.sendFrame(z({command:4105,body:Wt.encode(E)})),e.logger?.("read-deliver-ack",{sUserId:String(E.sUserId),sMsgId:E.sMsgId});}function d(S,E){let D=e.getSelfId(),_=[];for(let m of E){let I=e.domainState.getConversationMessage({conversationType:"direct",conversationId:S},le(m.sMsgId));I!==void 0&&I.senderId===D&&I.receipt!=="read"&&_.push({...I,receipt:"read"});}_.length>0&&e.domainState.upsertMessages(_,"live");}function g(S,E){let D=xo.decode(E);if(e.logger?.("read-deliver",{sMsgId:D.sMsgId,sFromId:String(D.sFromId),sToId:String(D.sToId),readResults:D.readResults.length,readReceiptOff:D.readReceiptOff}),D.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(a(D),D.readReceiptOff!==1){let _=e.getSelfId(),m=D.sFromId.toString(),I=D.sToId.toString();d(m===_?I:m,D.readResults);}e.emitter.emit({type:"notification",cmdId:S,name:"MES_CHAT_READ_DELIVER"});}function f(S){let E=ko.decode(S);e.logger?.("read-report-ack",{notifyId:E.sMsgId,sUserId:String(E.sUserId),errcode:E.errcode}),e.onReadAck?.({notifyId:E.sMsgId,errcode:E.errcode});}function y(S){let E=Bo.decode(S);e.logger?.("direct-sync-read-ack",{errcode:E.errcode}),e.onSyncReadAck?.({errcode:E.errcode});}function N(S,E){let D=Fo.decode(E),_=D.sUserId.toString(),m=D.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:_,peerId:m,msgIds:D.msgIdList.length}),e.onSyncReadDeliver?.({userId:_,peerId:m,msgIdList:D.msgIdList}),e.emitter.emit({type:"notification",cmdId:S,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(S,E)=>t(E)},{command:4100,handler:(S,E)=>o(S,E)},{command:4644,handler:(S,E)=>o(S,E,true)},{command:4102,handler:(S,E)=>s(S,E)},{command:4106,handler:(S,E)=>g(S,E)},{command:4104,handler:(S,E)=>f(E)},{command:4118,handler:(S,E)=>y(E)},{command:4119,handler:(S,E)=>N(S,E)}]}function NA(e){function n(t){let r=Ao.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=Ft.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(z({command:4632,body:Ft.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(s=>{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:s}});});}if(e.getSelfId()===r.uerId.toString()&&r.friendId>0n){let i=r.friendId.toString(),s=r.friendNotifyType===0,a=r.friendNotifyType===1&&r.blackStatus===2;(s||a)&&(e.onRelationshipChanged?.(i,s?"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 _A(e){function n(i,s){let a=rt.decode(s),d=e.getSelfId(),g=Br(a,{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([g],"live");let f=Xt.create({sUserId:BigInt(d),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(z({command:8707,body:Xt.encode(f)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_GRPNOTIFY_DELIVER"}),e.logger?.("grp-notify-deliver",{groupId:a.sGrpId.toString(),sMsgId:a.sMsgId,notifyType:a.notifyType});}function t(i,s){let a=Zo.decode(s),d=zt.create({sUserId:BigInt(e.getSelfId()),sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(z({command:8451,body:zt.encode(d)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_JOINGRP_DELIVER"}),e.logger?.("grp-join-deliver",{sGrpId:a.sGrpId.toString(),sMsgId:a.sMsgId});}function r(i){let s=Qo.decode(i),a=qt.create({sFromId:BigInt(e.getSelfId()),sToId:s.sFromId,sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(z({command:8963,body:qt.encode(a)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:s.sMsgId});}function o(i){let s=Wo.decode(i),a=jt.create({sUserId:BigInt(e.getSelfId()),sMsgId:s.sMsgId});e.sendFrame(z({command:8965,body:jt.encode(a)})),e.logger?.("grp-exchange-key-notify-noop-ack",{sMsgId:s.sMsgId});}return [{command:8708,handler:(i,s)=>n(i,s)},{command:8452,handler:(i,s)=>t(i,s)},{command:8964,handler:(i,s)=>r(s)},{command:8966,handler:(i,s)=>o(s)}]}function DA(e){let n=new Map;function t(E){let D=wo.decode(E),_={id:le(D.sMsgId),serverTime:Number(D.sendtime),errcode:D.errcode};e.logger?.("grp-chat-ack",{id:_.id,errcode:_.errcode,serverTime:_.serverTime}),e.outbox.onChatAck(_);}function r(E){let D=Ht.create({sFromId:BigInt(e.getSelfId()),sGrpId:E.sGrpId,sMsgId:E.sMsgId});e.sendFrame(z({command:8195,body:Ht.encode(D)}));}function o(){return e.isActive?.()??true}function i(E,D,_,m,I=false){let A=E.sGrpId.toString(),v=Bn(E,fe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:D,keepRaw:e.keepRaw,decryptFailed:true,edited:I});e.domainState.upsertMessages([v],"live"),E.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:A},messageId:v.id,wireEncrypt:1,sContent:E.sContent.slice(),...E.encryptVersion===""?{}:{encryptVersion:E.encryptVersion},cmdId:D,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:E.sMsgId,groupId:A,fromId:String(E.sFromId),msgType:E.msgType,cmdId:D,encrypt:E.encrypt,encryptVersion:E.encryptVersion,reason:_,...m===void 0?{}:{cause:m}}),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`,...m===void 0?{}:{cause:m}}});}function s(E,D,_,m){let I=Bn(E,_,{selfId:e.getSelfId(),cmdId:D,keepRaw:e.keepRaw,edited:m});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 a(E,D){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 m=e.decrypt.crypto.decryptEndToEnd({secretKey:_.secretKey,cipherData:_.cipherData,privateKey:D});return fe.decode(m)}async function d(E,D,_){if(!o())return;if(E.encrypt===0){try{s(E,D,fe.decode(E.sContent),_);}catch(B){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:B}});}return}if(E.encrypt!==1||e.decrypt===void 0){i(E,D,"no-key",void 0,_);return}let I={groupId:E.sGrpId.toString(),msgType:E.msgType,encrypt:E.encrypt,encryptVersion:E.encryptVersion},A;try{A=e.decrypt.resolvePrivateKey(I),A===null&&e.decrypt.preparePrivateKey!==void 0&&(A=await e.decrypt.preparePrivateKey(I));}catch(B){o()&&i(E,D,"no-key",B,_);return}if(!o())return;if(A===null){i(E,D,"no-key",void 0,_);return}let v;try{v=a(E,A);}catch(B){i(E,D,"decrypt-failed",B,_);return}if(o())try{s(E,D,v,_);}catch(B){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:B}});}}function g(E,D,_){let m=E.sGrpId.toString(),A=(n.get(m)??Promise.resolve()).then(()=>d(E,D,_));n.set(m,A),A.finally(()=>{n.get(m)===A&&n.delete(m);});}function f(E,D,_=false){let m=Po.decode(D),I=m.sGrpId.toString();if(n.has(I)){g(m,E,_);return}if(m.encrypt===0){s(m,E,fe.decode(m.sContent),_);return}if(m.encrypt!==1||e.decrypt===void 0){i(m,E,"no-key",void 0,_);return}let A={groupId:I,msgType:m.msgType,encrypt:m.encrypt,encryptVersion:m.encryptVersion},v=e.decrypt.resolvePrivateKey(A);if(v===null){if(e.decrypt.preparePrivateKey!==void 0){g(m,E,_);return}i(m,E,"no-key",void 0,_);return}let B;try{B=a(m,v);}catch(J){i(m,E,"decrypt-failed",J,_);return}s(m,E,B,_);}function y(E){let D=Ko.decode(E);e.logger?.("grp-sync-read-ack",{errcode:D.errcode});}function N(E,D){for(let _=D.length-1;_>=0;_-=1){let m=D[_];if(m===void 0||m==="")continue;let I=le(m),A=e.domainState.getConversationMessage({conversationType:"group",conversationId:E},I);if(A!==void 0&&A.conversationId===E)return I}}function S(E,D){let _=Lo.decode(D),m=_.groupId.toString();if(_.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:m,sUserId:String(_.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:m,sUserId:String(_.sUserId),msgIds:_.msgIdList.length});let I=N(m,_.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:m},0,I),e.emitter.emit({type:"notification",cmdId:E,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(E,D)=>t(D)},{command:8196,handler:(E,D)=>f(E,D)},{command:8976,handler:(E,D)=>f(E,D,true)},{command:8968,handler:(E,D)=>y(D)},{command:8969,handler:(E,D)=>S(E,D)}]}function GA(e){function n(t){let r=Ro.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 UA(e){function n(t){let r=Eo.decode(t),o=()=>e.sendFrame(z({command:4628,body:wt.encode(wt.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let i=Ta.decode(r.sContent),s=i.serialNumber.trim();if(s==="")throw new Error("wallet notify: serialNumber \u7F3A\u5931");let a=Number(i.occurredTime);e.domainState.applyTransferStatusBySerialNumber(s,3,Number.isFinite(a)&&a>0?a: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 kA(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.robot===void 0&&e.game===void 0&&e.transfer===void 0&&e.unknown===void 0}function xA(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&kA(n.body)&&n.encryption.encrypted===false,o=vt({id:n.id,conversationId:n.conversationId,body:n.body,mention:n.mention,refMessageId:n.refMessageId},{selfId:t.selfId,createdAt:n.createdAt});if(r)return Ig(o);let{crypto:i}=t,{resolveChannelKey:s}=e;return (async()=>{if(i===void 0||s===void 0)throw new Error("channel encrypt=2 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveChannelKey\uFF09");let a=await s(n.conversationId);if(a===null||a.length!==16)throw new Error(`channel encrypt=2 \u53D6\u9891\u9053 key \u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return Cg(o,i,a)})()}}}function Zm(e,n){return Fr({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function Qd(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=Zm(t,r);if(o.encrypt!==1)return Rg(o);let{crypto:i,resolveEncryptionKey:s}=r;if(i===void 0||s===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let a=await s(t.conversationId);if(a===null||a==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return hg(o,i,a)})()}};return e.includeOppositeEnd!==true?n:{...n,buildOutgoingFrames(t,r){let o=Zm(t,r);if(o.encrypt!==1)return Eg(o);let{crypto:i,resolveEncryptionKey:s}=r;if(i===void 0||s===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let a=await s(t.conversationId);if(a===null||a==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return Mg(o,i,a)})()}}}function BA(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=Tr({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 Dg(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 s=await i(n.conversationId);if(s===null||s.publicKey==="")throw new Error(`group encrypt=1 \u53D6\u7FA4\u516C\u94A5\u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return Gg(r,o,s.publicKey,s.version)})()}}}function Qm(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 Lr(){return Qm([Qd()])}function Wm(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!ro(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}})}function Xn(e){return typeof e=="string"?e:e==null?"":String(e)}function cs(e){let n=typeof e=="number"?e:Number(Xn(e).trim());return Number.isFinite(n)?n:0}function Hm(e){if(typeof e!="string")return "";let n=e.trim();return n.startsWith("data:image/")?n:n.includes("://")||n.length<32?"":`data:image/jpeg;base64,${n}`}function FA(...e){for(let n of e){let t=Xn(n).trim();if(/^https?:\/\//i.test(t))return t}return ""}function ls(e){return e.thumbDataUrl!==""?e.thumbDataUrl:e.thumbUrl.startsWith("data:image/")||/^https?:\/\//i.test(e.thumbUrl)&&e.thumbUrl!==e.url?e.thumbUrl:""}function wA(e){return e.url!==""||ls(e)!==""}function Jm(e){let n=e.items;return Array.isArray(n)?n.flatMap(t=>{if(typeof t!="object"||t===null)return [];let r=t,o=cs(r.mediaType??r.media_type),i=Xn(r.kind).trim(),s={kind:o===2||i==="video"?"video":"image",width:cs(r.width),height:cs(r.height),url:Xn(r.url).trim(),thumbUrl:Xn(r.thumbUrl??r.thumb_url).trim(),thumbDataUrl:Hm(r.thumbData??r.thumb_data),durationMs:cs(r.duration??r.durationMs),hd:r.hd===true||r.hd===1||r.hd==="1"};return wA(s)?[s]:[]}):[]}function PA(e){return e.kind!=="mediaAlbum"?"":e.text.trim()||Xn(e.body.caption).trim()}function Ym(e){return ls({url:FA(e.imageURL,e.imageUrl,e.videoURL,e.videoUrl,e.url),thumbUrl:Xn(e.thumbUrl??e.thumb_url).trim(),thumbDataUrl:Hm(e.thumbData??e.thumb_data??e.thumbBase64)})}function VA(e,n){if(e==="mediaAlbum"){let t=Jm(n)[0];return t===void 0?"":ls(t)}return e==="image"||e==="video"?Ym(n):""}var OA=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,KA=/^[a-z0-9][a-z0-9._-]{0,63}$/,LA=new Set(["durable","rebuildable","ephemeral"]);function zm(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!OA.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 Xm(e,n){if(!KA.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 ZA(e){let n=zm(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,s){if(!LA.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return Xm(i,"domain"),Xm(s,"resource"),o==="durable"&&i==="storage"&&s==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${i}:${s}`}}}}}function QA(e){return e===32768||e===0}function WA(e,n){if(QA(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 HA(e){return e===""?"(empty)":`...${e.slice(-6)}(len=${e.length})`}function JA(e){let n=kt.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:kt.encode(n)})}function qm(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function i(a,d){if(o===void 0||o.generation!==a)return;clearTimeout(o.timer);let{resolve:g}=o;o=void 0,g(d);}function s(){if(o===void 0)return;clearTimeout(o.timer);let{resolve:a}=o;o=void 0,a({type:"canceled"});}return {async login(){let a=++r;s();let d;try{d=await e.authProvider.getLoginContext();}catch(f){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:f}}}if(a!==r)return {type:"canceled"};if(d===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let g;try{g=JA(d);}catch(f){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:f}}}return new Promise(f=>{let y=setTimeout(()=>{i(a,{type:"retry",error:{scope:"login",message:`\u767B\u5F55\u8D85\u65F6\uFF08${t}ms \u672A\u6536\u5230 CMLoginAck\uFF09`}});},t);o={generation:a,resolve:f,timer:y,selfId:d.userId},e.logger?.("connection:login-frame-sent",{userId:d.userId,deviceToken:HA(d.deviceToken),clientType:d.clientType,channelType:d.channelType,tokenLength:d.token.length,generation:a}),e.sendFrame(g);})},onLoginAck(a){if(o===void 0)return;let{generation:d,selfId:g}=o,f;try{let y=mo.decode(a),N=Number(y.nErr);e.logger?.("connection:login-ack-received",{ackUserId:String(y.sUserId),requestUserId:g,errCode:`0x${N.toString(16)}`,isKickedOut:N===33040,lastLoginTime:String(y.nLastLoginTime)}),f=WA(N,Number(y.nLastLoginTime)),f.type==="success"&&(f={type:"success",selfId:g});}catch(y){f={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:y}};}i(d,f);},cancel(){r+=1,s();},get awaitingAck(){return o!==void 0}}}var jm=4294967295,YA=2,XA=2.2,zA=2880;function qA(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function $m(e,n){if(!Number.isSafeInteger(e)||e<=0||e>jm)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${jm} \u7684\u6574\u6570`);return e}function jA(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>XA&&t>zA?YA:0}function Wd(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 $A(e,n){return e===void 0?void 0:Wd(e,n)}function eR(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 nR(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=$m(e.width,"asset.width"),r=$m(e.height,"asset.height"),o=e.description?.trim(),i=e.kind==="sticker"?Wd(e.resourceId,"asset.resourceId"):$A(e.resourceId,"asset.resourceId"),s=e.kind==="sticker"?Wd(e.packageId,"asset.packageId"):void 0;return {sticker:{url:eR(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:jA(t,r),...i===void 0?{}:{contentId:i},...s===void 0?{}:{packageName:s},...e.size===void 0?{}:{size:qA(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function ep(e,n){let t=nR(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 tR(){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 np(e,n=tR){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 rR(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:np(3,n)+1};if(e==="dice")return {gameType:e,value:np(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function tp(e,n){let t=rR(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 rp=new Set([32768,0]),Jd=new Set([33281,33299]),Yd=33298,oR=new Set([...Jd,Yd]),us=-2,iR=-1,gs=-3,Hd=-4;function Ke(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>Ke(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=Ke(r);return n}return e}function _n(e){return Ke(e)}function Zr(e){return Ke(e)}function Xd(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),i=e.sendStrategies??Lr(),s=new Map,a=new Map,d=new Map,g=new Set,f=new Set,y=new Set,N=new Set,S=new Set,E=new Set,D=new Map;function _(u){return ie(u)}function m(u,M){return u.createdAt!==M.createdAt?u.createdAt-M.createdAt:u.id<M.id?-1:u.id>M.id?1:0}function I(u){let M=_(u),b=a.get(M);if(b!==void 0)return b;let C=0;for(let R of e.domainState.getMessagesByConversation({conversationType:u.conversationType,conversationId:u.conversationId}))C=Math.max(C,pn(R));for(let R of s.values())_(R)===M&&(C=Math.max(C,R.createdAt));return a.set(M,C),C}function A(u,M){let b=_(u),C=a.get(b)??I(u);M>C&&a.set(b,M);}function v(u){let M=I(u),b=Math.max(o(),M+1);return a.set(_(u),b),{id:nn(),createdAt:b}}function B(u,M){e.onUpdated?.({messageId:u.id,conversation:{conversationType:u.conversationType,conversationId:u.conversationId},state:M,...u.lastError===void 0?{}:{failure:{reason:u.lastError.reason,retryable:u.lastError.retryable}}});}function J(u){e.storage!==void 0&&e.storage.saveOutboxMessage(_n(u)).catch(M=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",M));}function re(u){e.storage!==void 0&&e.storage.removeOutboxMessage(u).catch(M=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",M));}function se(u){let M=d.get(u);M!==void 0&&(clearTimeout(M),d.delete(u));}function Z(u,M,b){let C=b?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,R=e.domainState.getMessage(u);if(R!==void 0){e.domainState.upsertMessages([{...R,...M}],"live",C);return}let T=s.get(u);if(T===void 0)return;let k={...{id:T.id,conversationId:T.conversationId,conversationType:T.conversationType,senderId:e.getSelfId(),contentType:T.contentType,body:Zr(T.body),createdAt:T.createdAt,sortKey:Ae(T.createdAt,T.id),status:T.status,receipt:"unread",encryption:Ke(T.encryption),failure:T.lastError===void 0?void 0:Ke(T.lastError),...T.mention!==void 0?{mention:Ke(T.mention)}:{},...T.refMessageId!==void 0?{refMessageId:T.refMessageId}:{}},...M};e.domainState.upsertMessages([{...k,sortKey:fn(k)}],"live",C);}function K(u){if(!oR.has(u.errcode))return;let M=e.domainState.getMessage(u.id);if(M===void 0||M.conversationType!=="direct"||M.senderId!==e.getSelfId())return;let b=Jd.has(u.errcode),C=u.errcode===Yd,R=u.failure??zi(u.errcode);b?R={...R,displayCode:"contactRequired",retryable:false}:C&&(R={...R,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...M,status:"failed",failure:R}],"live",{authoritativeOutboxFailure:true}),b?e.domainState.appendDirectContactRequiredNotice(M.conversationId,M.id):C&&e.domainState.appendDirectMessageRefusedNotice(M.conversationId,M.id);}function O(u,M){se(u);let b=s.get(u);b!==void 0&&(b.status="failed",b.lastError=M,Z(u,{status:"failed",failure:M}),J(b),B(b,"failed"),X(u));}async function P(u){if(!g.has(u.id)){if(f.has(_(u))){O(u.id,{code:Hd,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(u.id);try{let M=i.resolve(u.conversationType);if(M===void 0){O(u.id,{code:gs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:u.conversationType},message:yt(u.conversationType,"outbox.dispatch"),retryable:!1});return}let b;try{let C={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},R=M.buildOutgoingFrames===void 0?M.buildOutgoingFrame(u,C):M.buildOutgoingFrames(u,C);if(R instanceof Uint8Array)b=[R];else if(Array.isArray(R))b=R;else {let T=await R;b=T instanceof Uint8Array?[T]:T;}if(b.length===0||b.some(T=>!(T instanceof Uint8Array)))throw new Error(`\u53D1\u9001\u7B56\u7565\u8FD4\u56DE\u4E86\u975E\u6CD5\u5E27\u5E8F\u5217\uFF08conversationType=${u.conversationType}\uFF09`)}catch{u.attempts+=1,O(u.id,{code:us,reason:"unknown"});return}if(f.has(_(u))){O(u.id,{code:Hd,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()){u.status="pending",Z(u.id,{status:"pending"}),J(u),B(u,"queued");return}u.status="sending",u.attempts+=1,Z(u.id,{status:"sending"}),J(u),B(u,"sending");for(let C of b)e.sendFrame(C);se(u.id),d.set(u.id,setTimeout(()=>O(u.id,{code:iR,reason:"timeout"}),t));}finally{g.delete(u.id);}}}function X(u){let M=D.get(u);M!==void 0&&(D.delete(u),M());}function ue(u){let M=s.get(u);return M===void 0||M.status!=="sending"?Promise.resolve():new Promise(b=>D.set(u,b))}function q(u){return (u.status==="pending"||u.status==="failed")&&!(u.status==="failed"&&u.lastError?.retryable===false)&&u.resumePolicy!=="manual"&&(u.attempts<r||S.has(u.id))&&i.resolve(u.conversationType)!==void 0}function Ie(u,M){let b;for(let C of s.values())M.has(C.id)||_(C)!==u||!q(C)||(b===void 0||m(C,b)<0)&&(b=C);return b}function de(u,M=false){let b=_(u);if(M&&E.add(b),y.has(b)){N.add(b);return}$(b);}function me(){let u=new Set;for(let M of s.values())q(M)&&u.add(_(M));for(let M of u)Me(M,true);}async function $(u){y.add(u);try{do{N.delete(u);let M=new Set;for(;e.isAuthenticated();){let b=Ie(u,M);if(b===void 0)break;M.add(b.id),S.delete(b.id),await P(b),E.has(u)&&await ue(b.id);}}while(N.has(u)&&e.isAuthenticated())}finally{y.delete(u),E.delete(u);}}function Me(u,M=false){if(M&&E.add(u),y.has(u)){N.add(u);return}$(u);}function V(u){let M={code:us,reason:"unknown",displayCode:"sendCanceled",retryable:false};u.lastError=M,Z(u.id,{status:"failed",failure:M}),S.delete(u.id),s.delete(u.id),re(u.id),B(u,"canceled"),X(u.id);}return {allocateMessageIdentity:v,enqueueText(u){let{id:M,createdAt:b}=v(u),C={encrypted:u.encrypted??false},R=i.resolve(u.conversationType)!==void 0,T=R&&e.isAuthenticated(),G={id:M,conversationId:u.conversationId,conversationType:u.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:u.text},createdAt:b,sortKey:Ae(b,M),status:"pending",receipt:"unread",encryption:Ke(C),...u.mention!==void 0?{mention:Ke(u.mention)}:{},...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}},k={id:M,conversationId:u.conversationId,conversationType:u.conversationType,contentType:"text",body:{text:u.text},encryption:Ke(C),status:"pending",attempts:0,createdAt:b,...u.mention!==void 0?{mention:Ke(u.mention)}:{},...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}};return s.set(M,k),J(k),B(k,"queued"),e.domainState.upsertMessages([G],"live"),R?(T&&de(k),_n(k)):(O(M,{code:gs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:u.conversationType},message:yt(u.conversationType,"outbox.enqueueText"),retryable:false}),_n(k))},enqueueContact(u){let M=u.contact.targetId.trim(),b=u.contact.displayName.trim();if(M==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(b==="")throw new Error("outbox.enqueueContact: displayName \u4E0D\u80FD\u4E3A\u7A7A");if(u.contact.kind!=="individual"&&u.contact.kind!=="group"&&u.contact.kind!=="channel")throw new Error(`outbox.enqueueContact: \u4E0D\u652F\u6301\u53D1\u9001 ${String(u.contact.kind)} \u540D\u7247`);let{id:C,createdAt:R}=v(u),T={encrypted:u.encrypted??false},G=i.resolve(u.conversationType)!==void 0,k=G&&e.isAuthenticated(),L={contact:{...u.contact,targetId:M,displayName:b}},ae={id:C,conversationId:u.conversationId,conversationType:u.conversationType,senderId:e.getSelfId(),contentType:"contact",body:Zr(L),createdAt:R,sortKey:Ae(R,C),status:"pending",receipt:"unread",encryption:Ke(T),...u.refMessageId===void 0?{}:{refMessageId:u.refMessageId}},ne={id:C,conversationId:u.conversationId,conversationType:u.conversationType,contentType:"contact",body:Zr(L),encryption:Ke(T),status:"pending",attempts:0,createdAt:R,...u.refMessageId===void 0?{}:{refMessageId:u.refMessageId}};return s.set(C,ne),J(ne),B(ne,"queued"),e.domainState.upsertMessages([ae],"live"),G?(k&&de(ne),_n(ne)):(O(C,{code:gs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:u.conversationType},message:yt(u.conversationType,"outbox.enqueueContact"),retryable:false}),_n(ne))},enqueueMedia(u){let{id:M,createdAt:b}=u,C=Zr(u.body);qs(u.contentType,C,"outbox.enqueueMedia"),A(u,b);let R=i.resolve(u.conversationType)!==void 0,T=R&&e.isAuthenticated(),G={id:M,conversationId:u.conversationId,conversationType:u.conversationType,senderId:e.getSelfId(),contentType:u.contentType,body:Zr(C),createdAt:b,sortKey:Ae(b,M),status:"pending",receipt:"unread",encryption:Ke(u.encryption),...u.mention!==void 0?{mention:Ke(u.mention)}:{},...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}},k={id:M,conversationId:u.conversationId,conversationType:u.conversationType,contentType:u.contentType,body:C,encryption:Ke(u.encryption),status:"pending",attempts:0,createdAt:b,...u.mention!==void 0?{mention:Ke(u.mention)}:{},...u.refMessageId!==void 0?{refMessageId:u.refMessageId}:{}};return s.set(M,k),J(k),B(k,"queued"),e.domainState.upsertMessages([G],"live"),R?(T&&de(k),_n(k)):(O(M,{code:gs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:u.conversationType},message:yt(u.conversationType,"outbox.enqueueMedia"),retryable:false}),de(k,true),_n(k))},onChatAck(u){se(u.id);let M=s.get(u.id);if(M===void 0){rp.has(u.errcode)||K(u);return}if(rp.has(u.errcode))s.delete(u.id),re(u.id),Z(u.id,{status:"sent",serverTime:u.serverTime>0?u.serverTime:void 0,...u.extensions===void 0?{}:{extensions:{...e.domainState.getMessage(u.id)?.extensions,...u.extensions}}}),B(M,"sent"),X(u.id);else {M.status="failed",M.lastError=u.failure??zi(u.errcode);let b=M.conversationType==="direct"&&Jd.has(u.errcode),C=M.conversationType==="direct"&&u.errcode===Yd;b?M.lastError={...M.lastError,displayCode:"contactRequired",retryable:false}:C&&(M.lastError={...M.lastError,displayCode:"messageRefused",retryable:false}),Z(u.id,{status:"failed",failure:M.lastError},{authoritativeFailure:true}),b?e.domainState.appendDirectContactRequiredNotice(M.conversationId,M.id):C&&e.domainState.appendDirectMessageRefusedNotice(M.conversationId,M.id),J(M),B(M,"failed"),X(u.id);}},onAuthenticated(){me();},retry(u){let M=s.get(u);return M===void 0?{accepted:false,reason:"not-found"}:M.status==="sending"||g.has(u)?{accepted:false,reason:"in-flight"}:M.status==="failed"&&M.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:M.status!=="failed"&&!(M.status==="pending"&&M.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(M.resumePolicy==="manual"&&(M.resumePolicy="automatic",J(M)),S.add(M.id),de(M),{accepted:true})},cancel(u){let M=s.get(u);return M===void 0?{accepted:false,reason:"not-found"}:M.status==="sending"||g.has(u)?{accepted:false,reason:"in-flight"}:M.status!=="pending"?{accepted:false,reason:"invalid-state"}:M.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(V(M),{accepted:true})},markConversationTerminated(u,M){let b=_(u);f.add(b);for(let C of [...s.values()])if(_(C)===b){if(C.status==="pending"&&C.attempts===0&&!g.has(C.id)){V(C);continue}O(C.id,{code:Hd,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${M}`,retryable:false});}},clearConversationTerminated(u){let M=_(u);f.delete(M),Me(M);},markForLogout(u){for(let M of s.values())if(!(M.status!=="pending"&&M.status!=="sending"&&M.status!=="failed")){if(se(M.id),M.resumePolicy="manual",u.policy==="fail"){let b={code:us,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};M.status="failed",M.lastError=b,Z(M.id,{status:"failed",failure:b}),B(M,"failed");}J(M),X(M.id);}},getPending(){return [...s.values()].map(_n)},reset(){for(let u of [...d.keys()])se(u);for(let u of s.values())u.status==="sending"&&(u.status="pending",Z(u.id,{status:"pending"}),J(u),B(u,"queued"),X(u.id));},async hydrate(){if(e.storage!==void 0)try{let u=await e.storage.getOutbox();for(let M of u){let b=_n(M);if(b.status==="sent"){re(b.id);continue}try{qs(b.contentType,b.body,`outbox.hydrate(${b.id})`),b.body.video!==void 0&&(b.body={...b.body,video:oo(b.body.video)});}catch(T){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${b.id}\uFF09`,T),re(b.id),e.domainState.getMessage(b.id)!==void 0){let G={code:us,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};Z(b.id,{status:"failed",failure:G},{authoritativeFailure:!0});}continue}let C=b.status==="sending"?"pending":b.status,R={...b,status:C};s.set(b.id,R),A(R,R.createdAt),B(R,C==="pending"?"queued":C),e.domainState.getMessage(b.id)!==void 0&&Z(b.id,{status:C,failure:b.lastError===void 0?void 0:Ke(b.lastError)});}}catch(u){e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",u);}}}}function op(e){function n(o,i){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:i}});}let t=Ld(),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 Zd(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,s){let a=t.resolve(o);if(a===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:i.byteLength}),false;try{return a(o,i,s),!0}catch(d){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,d),false}}}}var sR=new Set([32768,0]);function zd(e,n={}){let t=n.readReportDebounceMs??400,r=n.readAckTimeoutMs??3e4,o=n.readMaxAttempts??2,i=Math.max(1,n.readReportMaxBatch??200),s=new Map,a=new Map,d=new Map,g=new Set,f=new Map;function y(A){return A!==e.getSelfId()}function N(A){let v=A.body.system?.eventType;return A.contentType==="voice"||A.contentType==="video"?false:!(A.conversationType==="direct"&&(v==="direct_contact_established"||v==="direct_contact_required"||v==="direct_message_refused"))}function S(A,v){if(v!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},v)?.sortKey}function E(A,v){let B=S(A,d.get(A)??""),J=new Set;for(let re of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:A}))N(re)&&y(re.senderId)&&rn(re.id)&&re.sortKey<=v&&(B===void 0||re.sortKey>B)&&J.add(re.id);for(let re of f.get(A)??[]){let se=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},re);se!==void 0&&y(se.senderId)&&rn(se.id)&&(se.contentType==="voice"||se.contentType==="video")&&J.add(se.id);}return [...J].sort((re,se)=>{let Z=S(A,re)??"",K=S(A,se)??"";return Z<K?-1:Z>K?1:0})}function D(A){let v=a.get(A);v!==void 0&&(clearTimeout(v.timer),a.delete(A));}function _(A){let v=s.get(A);v!==void 0&&(clearTimeout(v),s.delete(A)),D(A),f.delete(A);let B=e.domainState.getReadState(A)?.readCursor??"";B!==""&&d.set(A,B);}function m(A,v){let B=a.get(A);if(B!==void 0){if(clearTimeout(B.timer),B.attempts<o&&e.isAuthenticated()){B.attempts+=1,e.sendFrame(B.frame),B.timer=setTimeout(()=>m(A,"timeout"),r);return}a.delete(A),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${v}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}}function I(A){let v=e.domainState.getReadState(A)?.readCursor??"";if(v==="")return;let B=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},v);if(B===void 0||a.has(A))return;let J=E(A,B.sortKey);if(J.length===0){d.set(A,v);return}if(!e.isAuthenticated())return;let re=e.canSendReadReceipt?.(A);if(re===false){d.set(A,v);return}if(re===void 0&&e.canSendReadReceipt!==void 0)return;let se=J.slice(0,i),Z=f.get(A),K=se.filter(q=>Z?.has(q)===true),P=J.length<=i?v:se[se.length-1],X=nn(),ue;try{ue=z({command:4103,body:Qt.encode(Qt.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(A),sMsgId:X,readResults:se.map(q=>({sMsgId:Se(q),errcode:0})),readReceiptOff:0}))});}catch(q){e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5DF2\u8BFB\u4E0A\u62A5\u7EC4\u5E27\u5931\u8D25\uFF08\u975E\u6CD5 id\uFF09",cause:q}});return}e.sendFrame(ue),e.logger?.("read-report",{conversationId:A,notifyId:X,count:se.length,remaining:J.length-se.length}),a.set(A,{conversationId:A,cursor:P,notifyId:X,frame:ue,explicitMediaIds:K,attempts:1,timer:setTimeout(()=>m(A,"timeout"),r)});}return {report(A){g.add(A);let v=s.get(A);if(v!==void 0&&clearTimeout(v),e.canSendReadReceipt?.(A)===false){_(A);return}s.set(A,setTimeout(()=>{s.delete(A),I(A);},t));},reportConsumedMedia(A,v){let B=e.domainState.getConversationMessage({conversationType:"direct",conversationId:A},v);if(B===void 0||!y(B.senderId)||B.contentType!=="voice"&&B.contentType!=="video"||(g.add(A),e.canSendReadReceipt?.(A)===false))return;let J=f.get(A);J===void 0&&(J=new Set,f.set(A,J)),J.add(v),e.isAuthenticated()&&I(A);},onReadAck({notifyId:A,errcode:v}){let B;for(let J of a.values())if(J.notifyId===A){B=J;break}if(B!==void 0)if(e.logger?.("read-report-ack",{conversationId:B.conversationId,notifyId:A,errcode:v}),sR.has(v)){clearTimeout(B.timer),a.delete(B.conversationId),d.set(B.conversationId,B.cursor);let J=f.get(B.conversationId);for(let re of B.explicitMediaIds)J?.delete(re);J?.size===0&&f.delete(B.conversationId),I(B.conversationId);}else m(B.conversationId,"rejected");},onAuthenticated(){for(let A of g)I(A);},suppress(A){if(A!==void 0){_(A);return}let v=new Set([...g,...s.keys(),...a.keys()]);for(let B of v)_(B);},resume(A){if(!g.has(A))return;let v=s.get(A);v!==void 0&&clearTimeout(v),s.set(A,setTimeout(()=>{s.delete(A),I(A);},t));},reset(){for(let A of s.values())clearTimeout(A);s.clear();for(let A of [...a.keys()])D(A);}}}function ip(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 sp(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,i,s,a=false,d=0;function g(){s!==void 0&&(clearTimeout(s),s=void 0);}function f(){i!==void 0&&(clearInterval(i),i=void 0),g(),a=false,d=0;}function y(){if(d>=r){f(),e.onUnhealthy();return}e.sendPing(),d+=1;}return {start(){i===void 0&&(d=0,i=setInterval(y,t));},stop:f,onAck(){g(),a=false,d=0;},probe(){i!==void 0&&(a||(a=true,e.sendPing(),d=1,clearInterval(i),i=setInterval(y,t),o!==void 0&&(s=setTimeout(()=>{s=void 0,f(),e.onUnhealthy();},o))));},get running(){return i!==void 0},get missedCount(){return d}}}function aR(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function dR(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 cR(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function lR(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:i}=e,s=n.heartbeatIntervalMs??1e4,a=n.heartbeatMaxMissed??3,d=n.foregroundProbeTimeoutMs??5e3,g=n.loginTimeoutMs??n.readTimeoutMs??3e4,f={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},y="idle",N=0,S,E=false,D=new Uint8Array(0),_=false,m=0,I="";function A(U){y!==U&&(e.logger?.("connection:state-transition",{from:y,to:U,selfId:I}),y=U,i.emit({type:"connection:changed",state:U}));}function v(U){i.emit({type:"error",error:U});}function B(U){t.send(aR(U)).catch(W=>{v({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:W});});}let J=sp({sendPing:()=>B(z({command:1})),onUnhealthy:()=>{e.logger?.("connection:heartbeat-unhealthy",{stateBefore:y,selfId:I}),v({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),T();}},{intervalMs:s,maxMissed:a,probeTimeoutMs:d}),re=qm({authProvider:r,sendFrame:B,logger:e.logger},{timeoutMs:g}),se=e.sendStrategies??Lr(),Z=e.domainState?Xd({domainState:e.domainState,sendFrame:B,getSelfId:()=>I,isAuthenticated:()=>y==="authenticated",sendStrategies:se,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(U,W)=>v({scope:"storage",message:U,cause:W}),onUpdated:U=>e.emitter.emit({type:"outbox:updated",conversation:U.conversation,item:U})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,K=e.domainState?zd({domainState:e.domainState,sendFrame:B,getSelfId:()=>I,isAuthenticated:()=>y==="authenticated",emitter:i,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,O=e.domainState?Bd({domainState:e.domainState,sendFrame:B,getSelfId:()=>I,isAuthenticated:()=>y==="authenticated",emitter:i,logger:e.logger}):void 0,P=e.domainState?Vd({domainState:e.domainState,sendFrame:B,getSelfId:()=>I,isAuthenticated:()=>y==="authenticated",strategies:e.recallStrategies}):void 0,X=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?wd({domainState:e.domainState,sendFrame:B,getSelfId:()=>I,isAuthenticated:()=>y==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,ue=e.domainState!==void 0&&P!==void 0?Od({domainState:e.domainState,sendFrame:B,getSelfId:()=>I,onRecallAck:P.onRecallAck,onChannelMessageDeletionAck:U=>X?.onDeleteAck(U),logger:e.logger}):[],q=e.domainState?fd({getSelfId:()=>I,sendFrame:B,isAuthenticated:()=>y==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,Ie=e.domainState!==void 0&&q!==void 0?Md({onEditAck:q.onEditAck}):[],de=e.domainState!==void 0&&Z!==void 0&&e.media!==void 0?xd({getSelfId:()=>I,domainState:e.domainState,outbox:Z,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 me(U,W){return de===void 0?Promise.reject(new Error(`${U} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):I===""?Promise.reject(new Error(`${U} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):W(de)}function $(U,W,pe,ce){let we=e.domainState?.getConversationMessage({conversationId:pe.conversationId,conversationType:pe.conversationType},W);if(we===void 0||we.conversationId!==pe.conversationId||we.conversationType!==pe.conversationType||we.contentType!==ce||we.status!=="failed"||we.failure?.displayCode!=="media.uploadInterrupted")throw new Error(`${U} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u5237\u65B0\u540E\u4E0A\u4F20\u4E2D\u65AD\u7684${ce==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return we}let Me=e.domainState&&Z?op({domainState:e.domainState,outbox:Z,onReadAck:K?.onReadAck,onSyncReadAck:O?.onAck,onSyncReadDeliver:O?.onDeliver,sendFrame:B,getSelfId:()=>I,emitter:i,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...ue,...Ie]}):void 0;function V(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function u(){S!==void 0&&(clearTimeout(S),S=void 0);}function M(U){return U!==null&&U.userId.trim()!==""&&U.token.trim()!==""}async function b(){try{return M(await r.getLoginContext())?"available":"missing"}catch(U){return v({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:U}),"unavailable"}}function C(U,W){v({scope:"transport",message:U,cause:W}),J.stop(),A("disconnected");}function R(){if(S!==void 0)return;let U=ip(N,f);N+=1,S=setTimeout(()=>{S=void 0,be();},U);}function T(){if(y==="reconnecting"||y==="suspended")return;let U=++m;J.stop(),re.cancel(),Z?.reset(),K?.reset(),P?.reset(),X?.reset(),q?.reset(),A("reconnecting"),V(),b().then(W=>{if(!(y!=="reconnecting"||U!==m)){if(W==="missing"){L({code:0,reason:"token_expired"});return}R();}});}function G(){y==="idle"||y==="disconnected"||y==="disconnecting"||y==="suspended"||(u(),m+=1,J.stop(),re.cancel(),de?.cancelAll("offline"),Z?.reset(),K?.reset(),P?.reset(),X?.reset(),q?.reset(),A("suspended"),V());}function k(){if(y==="suspended"){if(e.isOnline?.()===false){A("offline");return}N=0,be();}}function L(U){y==="idle"||y==="disconnected"||(e.logger?.("connection:auth-invalid-terminal",{reason:U.reason,code:`0x${U.code.toString(16)}`,stateBefore:y,selfId:I}),u(),m+=1,J.stop(),re.cancel(),A("disconnected"),V(),i.emit({type:"auth:invalid",issue:U}),Promise.resolve().then(()=>r.onAuthInvalid?.(U)).catch(W=>v({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:W})));}function ae(U){switch(U.type){case "success":N=0,_=false,U.selfId&&(I=U.selfId),A("authenticated"),J.start(),Z?.onAuthenticated(),K?.onAuthenticated(),O?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(U.issue.reason==="token_expired"&&U.issue.code!==0&&!_){_=true,v({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),T();return}L(U.issue);break;case "retry":v(U.error),T();break;}}async function ne(){let U=await re.login();U.type!=="canceled"&&y==="authenticating"&&ae(U);}async function be(){if(e.isOnline?.()===false){u(),J.stop(),A("offline");return}let U=++m;A("connecting"),E=false,D=new Uint8Array(0);let W=await b();if(U!==m)return;if(W==="missing"){L({code:0,reason:"token_expired"});return}if(W==="unavailable"){T();return}let pe;try{pe=await o.getEndpoints();}catch(we){if(U!==m)return;C("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",we);return}if(U!==m)return;let ce=pe[0];if(ce===void 0){C("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!cR(ce.url)){C(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${ce.url}`);return}try{await t.connect([ce]);}catch(we){if(U!==m)return;v({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:we}),T();return}U!==m&&V();}function Ze(U,W,pe){switch(U){case 258:re.onLoginAck(W);break;case 2:J.onAck();break;case 264:if(e.logger!==void 0)try{let ce=Ma.decode(W);e.logger("connection:kickout-received",{kickedUserId:String(ce.sUserId),selfId:I,matchesSelf:String(ce.sUserId)===I,entryIp:ce.ip,entryPort:ce.port,stateBefore:y});}catch(ce){e.logger("connection:kickout-decode-failed",{message:ce?.message,stateBefore:y});}L({code:33040,reason:"kicked"});break;default:Me?.route(U,W,{msgSeq:pe});break}}function Ee(U){D=dR(D,new Uint8Array(U));let W;try{let pe=Ba(D);W=pe.frames,D=pe.remainder;}catch(pe){v({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:pe}),T();return}for(let pe of W)Ze(pe.header.command,pe.body,pe.header.msgSeq);}return t.on("open",()=>{y==="connecting"&&(A("authenticating"),ne());}),t.on("message",({data:U})=>Ee(U)),t.on("error",({error:U})=>{v({scope:"transport",message:"transport \u9519\u8BEF",cause:U});}),t.on("close",({code:U,reason:W,wasClean:pe})=>{if(J.stop(),e.logger?.("connection:transport-closed",{code:U,reason:W,wasClean:pe,stateBefore:y,intentionalClose:E,nextPath:E||y==="disconnecting"?"disconnected":y==="idle"||y==="disconnected"||y==="reconnecting"||y==="suspended"||y==="offline"?"ignored":"reconnect"}),E||y==="disconnecting"){E=false,A("disconnected");return}y==="idle"||y==="disconnected"||y==="reconnecting"||y==="suspended"||y==="offline"||T();}),{get state(){return y},async connect(){y==="connecting"||y==="authenticating"||y==="authenticated"||(u(),N=0,await be());},disconnect(){if(u(),m+=1,J.stop(),re.cancel(),Z?.reset(),K?.reset(),P?.reset(),X?.reset(),q?.reset(),E=true,y==="idle"||y==="disconnected"){A("disconnected");return}A("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&A("disconnected");},notifyOnline(){if(y==="offline"){N=0,be();return}y==="reconnecting"&&(u(),be());},notifyOffline(){y==="idle"||y==="disconnected"||y==="disconnecting"||y==="suspended"||y==="offline"||(u(),m+=1,J.stop(),re.cancel(),de?.cancelAll("offline"),Z?.reset(),K?.reset(),P?.reset(),X?.reset(),q?.reset(),A("offline"),V());},notifyVisible(){if(y==="suspended"){k();return}if(y==="offline"&&e.isOnline?.()===true){N=0,be();return}if(y==="reconnecting"){u(),be();return}if(y==="authenticated"){let U=m;b().then(W=>{if(!(y!=="authenticated"||U!==m)){if(W==="missing"){L({code:0,reason:"token_expired"});return}J.probe();}});}},suspendForPageLifecycle:G,resumeFromPageLifecycle:k,suppressDirectReadReceipts(U){K?.suppress(U);},resumeDirectReadReceipts(U){K?.resume(U);},reportDirectMediaConsumed(U,W){K?.reportConsumedMedia(U,W),O?.reportConsumedMedia?.(U,W);},sendText(U){if(Z===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 Z.enqueueText(U)},sendContact(U){if(Z===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 Z.enqueueContact(U)},forwardMessages(U){if(Z===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let W=e.domainState;if(W===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 Td({outbox:Z,sendStrategies:se,resolveCurrentMessage:pe=>W.getConversationMessage(pe,pe.id)},U)},recallMessage(U){return P===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):P.recall(U)},deleteChannelMessageForEveryone(U){return X===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):X.deleteForEveryone(U)},editMessage(U){return q===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):q.edit(U)},sendImage(U){return me("sendImage",W=>W.sendImage(U))},sendVideo(U){return me("sendVideo",W=>W.sendVideo(U))},sendVoice(U){return me("sendVoice",W=>W.sendVoice(U))},sendFile(U){return me("sendFile",W=>W.sendFile(U))},sendGif(U){return me("sendGif",W=>W.sendGif(U))},sendMediaAlbum(U){return me("sendMediaAlbum",W=>W.sendMediaAlbum(U))},sendExpression(U){if(Z===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 ep({outbox:Z},U)},sendGame(U){if(Z===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 tp({outbox:Z,randomUint32:e.randomUint32},U)},sendMiniProgram(U){if(Z===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 _m({outbox:Z},U)},sendTransfer(U){if(Z===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 Wm({outbox:Z},U)},replaceInterruptedVideo(U,W){return me("replaceInterruptedVideo",pe=>{let ce=$("replaceInterruptedVideo",U,W,"video");return pe.replaceVideo(U,ce.createdAt,{...W,...W.caption===void 0&&ce.body.video?.describe!==void 0?{caption:ce.body.video.describe}:{},...W.refMessageId===void 0&&ce.refMessageId!==void 0?{refMessageId:ce.refMessageId}:{}})})},replaceInterruptedFile(U,W){return me("replaceInterruptedFile",pe=>{let ce=$("replaceInterruptedFile",U,W,"file");return pe.replaceFile(U,ce.createdAt,{...W,...W.refMessageId===void 0&&ce.refMessageId!==void 0?{refMessageId:ce.refMessageId}:{}})})},cancelMedia(U){de?.cancel(U);},cancelMediaUpload(U){return de?.cancel(U)??false},retryMediaUpload(U){return de?.retry(U)??false},invalidateMediaAssetCacheWrites(){de?.invalidateAssetCacheWrites();},disposeMediaTasks(){de?.dispose();},retryMessage(U){de?.retry(U)!==true&&Z?.retry(U);},retryOutboxMessage(U){return Z?.retry(U)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(U){return Z?.cancel(U)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(U,W){Z?.markConversationTerminated(U,W);},clearOutboxConversationTerminated(U){Z?.clearConversationTerminated(U);},terminateConversationSending(U,W){de?.cancelConversation(U),Z?.markConversationTerminated(U,W);},markRead(U,W,pe){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 ce=pe??e.domainState.getSession(U)?.type;if(ce===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${U}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(ce==="direct"){if(K===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(U,W),K.report(U),O?.report(U);return}let we=e.readStrategies?.resolve(ce);if(we===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${ce}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return we.markRead({conversationId:U,readCursor:W})},sendFrame(U){B(U);},onChatAck(U){Z?.onChatAck(U);},getPendingOutbox(){return Z?.getPending()??[]},async hydrateOutbox(){await Z?.hydrate();},markOutboxForLogout(U){Z?.markForLogout({policy:U});}}}var ap={error:0,warn:1,info:2,debug:3,trace:4},uR=8,qd=50,jd=100,gR="[REDACTED]",mR="[REDACTED_PRIVATE_KEY]",pR="[SIGNED_URL_REDACTED]",fR=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,yR=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,IR=/(["'])(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,CR=/\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,SR=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function AR(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function RR(e){let n=AR(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 ER(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 hR(e){return e.replace(fR,n=>ER(n)?pR:n)}function $d(e){return hR(e).replace(SR,mR).replace(yR,"$1$2[REDACTED]").replace(IR,"$1$2$1$3[REDACTED]").replace(CR,"$1$2[REDACTED]")}function MR(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 ec(e){let n=new WeakSet;function t(r,o,i){if(i!==void 0&&RR(i))return gR;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return $d(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=uR)return "[MAX_DEPTH]";let s=MR(r);if(s!==void 0)return s;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let g=r;return {name:g.name,message:$d(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:$d(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,qd).map(f=>t(f,o+1));return r.length>qd&&g.push({omittedItems:r.length-qd}),g}let a=Object.entries(r),d={};for(let[g,f]of a.slice(0,jd))d[g]=t(f,o+1,g);return a.length>jd&&(d.omittedKeys=a.length-jd),d}return t(e,0)}function TR(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,i=false;function s(d,g){return e.enabled&&o!==void 0&&ap[d]<=ap[e.level]&&n.has(g)}function a(d){if(i||e.fallbackSink===void 0)return;i=true;let g={message:"diagnostic-sink-failed"};try{g={message:"diagnostic-sink-failed",data:ec(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:s,record(d,g,f,y,N){if(!s(d,f))return;let S;try{S={...e.getRuntimeContext?.(),...N?.()};}catch(m){S={error:{message:"diagnostic-payload-factory-failed",data:m}};}let E;try{E=t();}catch{E=Date.now();}let D=++r,_;try{_=ec({timestamp:E,sequence:D,level:d,layer:g,category:f,event:y,...S});}catch{_={timestamp:E,sequence:D,level:d,layer:g,category:f,event:y,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(_));}catch(m){o=void 0,a(m);}}}}function vR(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 bR(){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 dp(e={}){let n=e.defaultTimeoutMs??3e4,t=new Map,r=0;function o(i){let s=t.get(i);if(s!==void 0)return clearTimeout(s.timer),t.delete(i),s}return {nextSeq(){return r=r>=4294967295?1:r+1,r},track(i,s){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((a,d)=>{let g=setTimeout(()=>{t.delete(i),d(new Error(`\u8BF7\u6C42\u8D85\u65F6\uFF1AmsgSeq=${i}\uFF0C\u7B49\u5F85 ${s??n}ms \u65E0\u54CD\u5E94`));},s??n);t.set(i,{resolve:a,reject:d,timer:g});})},resolve(i,s){let a=o(i);return a?.resolve(s),a!==void 0},reject(i,s){let a=o(i);return a?.reject(s),a!==void 0},rejectAll(i){for(let s of [...t.values()])clearTimeout(s.timer),s.reject(i);t.clear();},get pendingCount(){return t.size}}}function NR(e){let n=false,t=false,r=false,o,i,s=dp(),a,d,g={status:"idle"},f=new Set;function y(m){try{m({...g});}catch{e.onListenerError();}}function N(m){g=m;for(let I of [...f])y(I);}function S(){d&&clearTimeout(d.timer),d=void 0;}function E(m,I){S(),r=m!=="server-rejected";let A={status:"error",error:m,requiresReconnect:r,...I===void 0?{}:{serverCode:I}};o=r?A:void 0,N(i?A:{status:"idle"});}function D(){if(t||r||d||!i)return;if(!n){N({status:"pending"});return}if(i.token===a?.token){N(a.snapshot);return}let m=i,I=s.nextSeq(),A=z({command:261,msgSeq:I,body:xt.encode(xt.create({sUserId:BigInt(m.userId),nPushType:20,nPushTokenType:0,sPushToken:m.token}))}),v={...m,msgSeq:I,timer:setTimeout(()=>E("timeout"),e.timeoutMs??3e4)};if(d=v,N({status:"syncing"}),!(d!==v||t||!n)){if(!i){S();return}try{e.sendFrame(A);}catch{d===v&&E("send-failed");}}}return {api:{setWebSubscription({userId:m,subscription:I}){if(t)throw new Error("\u63A8\u9001\u7ED1\u5B9A\u5DF2\u9500\u6BC1");if(!/^[1-9]\d*$/.test(m)||m!==e.getSelfId())throw new Error("\u63A8\u9001\u8BA2\u9605\u8D26\u53F7\u4E0E\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let{endpoint:A,keys:v,expirationTime:B}=I;if(!A||!v?.p256dh||!v.auth)throw new Error("Web Push \u8BA2\u9605\u7F3A\u5C11 endpoint \u6216\u52A0\u5BC6\u5BC6\u94A5");let J=new URL(A);if(J.protocol!=="https:"||J.username||J.password)throw new Error("Web Push endpoint \u5FC5\u987B\u662F HTTPS \u5730\u5740");if(B!=null&&(!Number.isFinite(B)||B<=Date.now()))throw new Error("Web Push \u8BA2\u9605\u5DF2\u8FC7\u671F");let re=JSON.stringify({endpoint:A,expirationTime:B??null,keys:{p256dh:v.p256dh,auth:v.auth}});i={userId:m,token:re},o?N(o):d&&N({status:"syncing"}),D();},clear(){t||(i=void 0,a=void 0,N({status:"idle"}));},snapshot:()=>({...g}),subscribe(m){return t||f.add(m),y(m),()=>{f.delete(m);}}},commandHandlers:[{command:262,handler(m,I,A){if(!d||!n||t||r||A?.msgSeq!==d.msgSeq)return;let v;try{v=go.decode(I);}catch{E("invalid-ack");return}let B=v.nErr===0&&(String(v.sUserId)===d.userId||String(v.sUserId)==="0");if(!B&&String(v.sUserId)!==d.userId)return;let J=d;if(S(),!B&&v.nErr!==32768){E("server-rejected",Number(v.nErr));return}if(a={token:J.token,snapshot:B?{status:"unconfirmed",serverCode:Number(v.nErr)}:{status:"synced"}},!i){N({status:"idle"});return}D();}}],setAuthenticated(m){t||n===m||(n=m,S(),a=void 0,r=false,o=void 0,i&&D());},dispose(){t||(t=true,S(),i=void 0,a=void 0,N({status:"disposed"}),f.clear());}}}var _R=200,DR=20;function GR(e){return e instanceof It&&e.status>=500}function UR(e){let n=e.maxBatchesPerEndpoint??_R,t=e.reducedBatchLimit??DR,r=e.yieldToEventLoop??(()=>Promise.resolve()),o=false,i=false;async function s(d,g){let f=[],y="",N=0,S;async function E(){try{return await d.pullBatch({deliveredMsgInfos:f,...S===void 0?{}:{limit:S}})}catch(D){if(S!==void 0||!GR(D))throw D;return S=t,e.logger?.("sync-batch-reduced",{endpoint:d.endpoint,limit:S,status:D.status}),await d.pullBatch({deliveredMsgInfos:f,limit:S})}}for(let D=1;;D++){if(D>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"),N+=_.messages.length;for(let A of _.messages){let v={conversationType:A.conversationType,conversationId:A.conversationId};g.set(ie(v),v);}}let m=_.batchSize>0;if(e.logger?.("sync-batch",{endpoint:d.endpoint,batchNo:D,fetched:_.batchSize,newMessages:_.messages.length,responseBytes:_.responseBytes,endpointTotal:N,hasMore:m}),!m)break;let I=_.deliveredMsgInfos.at(-1)?.msgId??"";if(I!==""&&I===y)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`);y=I,f=_.deliveredMsgInfos,await r();}return N}async function a(){let d=new Map,g=0;for(let f of e.pullers)g+=await s(f,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 a();}catch(d){e.emitter.emit({type:"error",error:{scope:"sync",message:"\u79BB\u7EBF\u540C\u6B65\u5931\u8D25",cause:d}});}}while(i)}finally{o=false;}}}}
2
+ export{GC as $,NA as $a,Hu as A,De as Aa,br as B,An as Ba,_I as C,Vn as Ca,BI as D,ie as Da,ju as E,Pr as Ea,FI as F,Sd as Fa,wI as G,tm as Ga,$u as H,mS as Ha,PI as I,yS as Ia,VI as J,IS as Ja,OI as K,oA as Ka,KI as L,iA as La,WI as M,sA as Ma,HI as N,aA as Na,YI as O,dA as Oa,XI as P,cA as Pa,zI as Q,mA as Qa,qI as R,pA as Ra,jI as S,wm as Sa,$I as T,Vm as Ta,eC as U,Om as Ua,nC as V,yA as Va,oC as W,SA as Wa,aC as X,RA as Xa,dC as Y,MA as Ya,cC as Z,vA as Za,RC as _,bA as _a,zm as a,jr as aa,_A as ab,ZA as b,gf as ba,DA as bb,fe as c,Vs as ca,GA as cb,_e as d,Wn as da,UA as db,Oi as e,VC as ea,xA as eb,ky as f,KC as fa,Qd as fb,xy as g,Pn as ga,BA as gb,en as h,pf as ha,Qm as hb,hr as i,dd as ia,lR as ib,nn as j,Fg as ja,TR as jb,pn as k,wg as ka,vR as kb,fn as l,Pg as la,bR as lb,Oe as m,JC as ma,NR as mb,ES as n,Vg as na,ls as nb,Yr as o,dS as oa,Jm as ob,Xr as p,$i as pa,PA as pb,ks as q,Kg as qa,VA as qb,jn as r,yd as ra,UR as rb,Fs as s,It as sa,ro as t,Am as ta,Le as u,Or as ua,Zi as v,Lg as va,eI as w,Id as wa,_S as x,es as xa,Qi as y,Cd as ya,nI as z,fS as za};