k2-im 0.1.32 → 0.1.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.d.ts +24 -2
- package/dist/browser.js +1 -1
- package/dist/chat-kit-pinia.d.ts +80 -10
- package/dist/chat-kit-pinia.js +1 -1
- package/dist/chat-kit-vue.d.ts +24 -4
- package/dist/chat-kit-vue.js +1 -1
- package/dist/chat-kit.d.ts +92 -12
- package/dist/chat-kit.js +1 -1
- package/dist/chunk-2ODEJA5X.js +1 -0
- package/dist/chunk-3MMM3UU6.js +2 -0
- package/dist/chunk-7CJFY6CU.js +1 -0
- package/dist/chunk-DBWAR2FB.js +2 -0
- package/dist/chunk-F6DQBWJW.js +2 -0
- package/dist/chunk-OFXCH5DZ.js +7 -0
- package/dist/chunk-OSWUOGBS.js +1 -0
- package/dist/i18n.d.ts +36 -6
- package/dist/i18n.js +1 -1
- package/dist/index.d.ts +115 -18
- package/dist/index.js +1 -1
- package/dist/sdk.d.ts +57 -8
- package/dist/sdk.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-GAAHNTJM.js +0 -7
- package/dist/chunk-HSVVRLGM.js +0 -1
- package/dist/chunk-JA5TKCQ2.js +0 -2
- package/dist/chunk-MIFIQ45I.js +0 -2
- package/dist/chunk-OYH7COTJ.js +0 -1
- package/dist/chunk-QQ23QYWK.js +0 -2
- package/dist/chunk-SEHHXKP7.js +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {create,fromBinary,toBinary}from'@bufbuild/protobuf';import {fileDesc,messageDesc}from'@bufbuild/protobuf/codegenv2';function Yc(e){if(typeof e!="object"||e===null||Array.isArray(e))throw new Error("Invalid FILES_ALBUM object");return e}function Xc(e){let n=Yc(e),t=n.fileName??n.fielName,r=n.md5??n.MD5,o=n.fileSize??n.fileLength;if(typeof n.url!="string"||!/^https?:\/\//i.test(n.url)||typeof t!="string"||t===""||typeof n.extension!="string"||typeof r!="string"||r===""||typeof o!="number"||!Number.isSafeInteger(o)||o<0||typeof n.fileType!="number"||!Number.isInteger(n.fileType)||n.fileType<0||n.fileType>5||typeof n.fileEncryptType!="number"||![0,1,2,3].includes(n.fileEncryptType)||typeof n.teaKey!="string")throw new Error("Invalid FILES_ALBUM item");let i=n.extension.replace(/^\./,"").toLowerCase(),a=Uint8Array.from(globalThis.atob(n.teaKey),s=>s.charCodeAt(0));if(n.fileEncryptType!==1&&a.length===0)throw new Error("Missing FILES_ALBUM item key");return {url:n.url,fileName:t,extension:i,md5:r,size:o,fileType:["zip","rar","torrent"].includes(i)?5:n.fileType,fileEncryptType:n.fileEncryptType,...a.length===0?{}:{teaKey:a}}}function zc(e){let n=Yc(JSON.parse(e.content));if(n.contentType!=="29"||!Array.isArray(n.items)||n.items.length===0||n.caption!==void 0&&typeof n.caption!="string")throw new Error("Invalid FILES_ALBUM body");return {items:n.items.map(Xc),...typeof n.caption=="string"&&n.caption.trim()!==""?{caption:n.caption}:{}}}function qc(e){if(e.items.length!==1||(e.caption?.length??0)>1024)throw new Error("Invalid outgoing FILES_ALBUM size");let n=e.items.map(t=>{let r="";for(let i of t.teaKey??[])r+=String.fromCharCode(i);let o={url:t.url,fileName:t.fileName,extension:t.extension,fileType:t.fileType,md5:t.md5,fileSize:t.size,fileEncryptType:t.fileEncryptType,teaKey:globalThis.btoa(r)};return Xc(o),o});return {contentType:29,content:JSON.stringify({contentType:"29",...e.caption?.trim()?{caption:e.caption}:{},items:n})}}var mo=28,el=1,ra=2,jn=1024,ut=9;function sa(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 oa=512*1024,aa=256*1024;function lt(e,n){for(let t of n){let r=e[t];if(typeof r=="string"&&r!=="")return r}}function ct(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 qf(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 ia(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function jc(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 $c(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function jf(e){return e!==void 0&&e!==1}function $f(e){if(!ia(e))return;let n=ct(e,["mediaType","type"]);if(n!==el&&n!==ra)return;let t=lt(e,["url","content"]);if(t===void 0)return;let r=ct(e,["fileEncryptType"]),o,i=lt(e,["teaKey"]);if(i!==void 0&&(o=jc(i)),jf(r)&&(o===void 0||o.length===0))return;let a=ct(e,["width","imageWidth"])??0,s=ct(e,["height","imageHeight"])??0,c={kind:n===ra?"video":"image",url:t,width:Number.isInteger(a)&&a>0?a:0,height:Number.isInteger(s)&&s>0?s:0},u=ct(e,["duration"]);c.kind==="video"&&u!==void 0&&u>0&&(c.durationMs=u);let y=lt(e,["thumbUrl","thumbURL","thumbnailUrl","thumbnailURL"]);y!==void 0&&(c.thumbUrl=y);let I=lt(e,["thumbData"]);if(I!==void 0){let D=jc(I);D!==void 0&&D.length>0&&(c.thumbData=D);}let v=lt(e,["md5","MD5"]);v!==void 0&&(c.md5=v);let T=ct(e,["fileSize","fileLength"]);T!==void 0&&T>0&&(c.size=T),o!==void 0&&o.length>0&&(c.teaKey=o),r!==void 0&&(c.fileEncryptType=r);let A=qf(e,["hd","isHd","isHD"]);return A!==void 0&&(c.hd=A),c}function da(e){let n=JSON.parse(e.content);if(!ia(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 c=JSON.parse(r);if(!ia(c))throw new Error("\u5A92\u4F53\u5408\u96C6\u5D4C\u5957\u6B63\u6587\u4E0D\u662F\u5BF9\u8C61");t=c;}let o=t.items,i=[];if(Array.isArray(o))for(let c of o){let u=$f(c);u!==void 0&&i.push(u);}let a={items:i},s=lt(t,["caption"]);return s!==void 0&&s.trim()!==""&&(a.caption=s),a}function ey(e){return {mediaType:e.kind==="video"?ra:el,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:$c(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:$c(e.teaKey)}:{},...e.fileEncryptType!==void 0?{fileEncryptType:e.fileEncryptType}:{},...e.hd!==void 0?{hd:e.hd}:{}}}function po(e){return new TextEncoder().encode(e).length}function Bt(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>ut)throw new Error(`\u5A92\u4F53\u5408\u96C6\u9879\u6570\u8D85\u8FC7\u4E0A\u9650\uFF1A${e.items.length} > ${ut}`);if(e.caption!==void 0&&e.caption.length>jn)throw new Error(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u8D85\u8FC7 ${jn} \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(ey)}),r=po(t);if(r>=oa)throw new Error(`\u5A92\u4F53\u5408\u96C6\u6B63\u6587\u8FBE\u5230 ${oa} \u5B57\u8282\u4E0A\u9650\uFF1A${r}`);let o=e.items.find(i=>i.thumbData!==void 0&&i.thumbData.length>0)?.thumbData;return {contentType:mo,content:t,...o===void 0?{}:{thumbData:o}}}function ca(e){return e===1?"gif":"sticker"}function fo(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 $n(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=4294967295}function la(e){if(e.exprType===2){if(!fo(e.content))throw new Error("sticker body: LINK URL \u975E\u6CD5");if(!$n(e.width)||!$n(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 ua(e){if(e.exprType===2){if(!fo(e.url))throw new Error("sticker body: \u51FA\u7AD9 LINK URL \u975E\u6CD5");if(!$n(e.width)||e.width===0||!$n(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 nl,tl,ny={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:()=>"",filesAlbum:e=>[e.filesAlbum?.caption,...e.filesAlbum?.items.map(n=>n.fileName)??[]].filter(Boolean).join(" "),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(" "),gift:e=>[e.gift?.giftName,e.gift?.fromUserName,e.gift?.toUserName,e.gift?.explain].filter(n=>n!==void 0&&n!=="").join(" "),call:()=>"",redPacket:e=>e.redPacket?.coinName?.trim()??"",system:()=>"",unknown:()=>""};function yo(e){return ny[e.contentType](e.body)}function ty(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 ry(e,n){if(n.length===0)return Object.freeze([]);let t=[...new Set(n)].filter(a=>Number.isSafeInteger(a)&&a>=0&&a<e.length).sort((a,s)=>a-s);if(t.length===0)return Object.freeze([]);let r=[],o=t[0],i=o;for(let a of t.slice(1)){if(a===i+1){i=a;continue}r.push(Object.freeze({start:o,end:i+1})),o=a,i=a;}return r.push(Object.freeze({start:o,end:i+1})),Object.freeze(r)}function oy(){return nl??=import('pinyin-pro').then(e=>e.match),nl}function iy(){return tl??=import('pinyin-pro').then(e=>e.pinyin),tl}async function sy(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 iy())(t,{type:"array"})[0]?.charAt(0).toLocaleUpperCase();return /^[A-Z]$/.test(i??"")?i:"#"}async function ga(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 oy():void 0;return Object.freeze({keyword:n,match(i,a={}){let s=ty(i,n);if(s.length>0)return Object.freeze({method:"direct",ranges:s});if(a.pinyin===false||o===void 0||!/\p{Script=Han}/u.test(i))return null;let c=o(i,t);if(c===null)return null;let u=ry(i,c);return u.length===0?null:Object.freeze({method:"pinyin",ranges:u})}})}var ay=["@\u6240\u6709\u4EBA","@All","@T\u1EA5t c\u1EA3","@\u0E17\u0E31\u0E49\u0E07\u0E2B\u0E21\u0E14"];function dy(e,n){if(e==="")return [{kind:"text",text:""}];let t=[...uy(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),cy(e,t))}function cy(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 ly(e,n){return {kind:"mention",text:`@${n.resolveName(e)}`,userId:e,atAll:false,isMe:e===n.selfId}}function uy(e,n){let t=n.mention;if(t===void 0)return [];let r=t.atAll?gy(n.atAllTexts??ay):/\[(\d+)\]/g,o=[],i=r.exec(e);for(;i!==null;){let a=i[1];if(a!==void 0&&!t.atUserIds.includes(a)){i=r.exec(e);continue}let s=a===void 0?{kind:"mention",text:n.atAllDisplay??i[0],atAll:true,isMe:true}:ly(a,n);o.push({start:i.index,end:i.index+i[0].length-1,segment:s}),i=r.exec(e);}return o}function gy(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=>`${my(r)}(?![A-Za-z0-9])`).join("|");return new RegExp(`\\[(\\d+)\\]|${t}`,"g")}function my(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ft(e,n){let t=n.trim();return t===""?e.toString():t}function rl(e){let n=e.trim();return n!==""&&n!=="0"}var py=new Set(["audio","video"]),fy=new Set(["missed","rejected","cancelled","completed","busy","no-permission","interrupted","unknown"]);function Sn(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 ma(e){if(typeof e=="boolean")return e;if(e===1||e==="1")return true;if(e===0||e==="0")return false}function pa(e,n){return n===void 0?e:{...e,outgoing:n}}function fa(e,n){let t=Sn(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 yy(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 Iy(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 ol(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 Cy(e){switch(e){case 0:return "missed";case 1:return "rejected";case 2:return "completed";case 3:return "cancelled";default:return "unknown"}}function Sy(e){switch(e){case 0:return "missed";case 1:return "completed";case 2:return "rejected";default:return "unknown"}}function Ay(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 hy(e){let n=Sn(e.callType);if(n===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callType");let t=Sn(e.callStatus);if(t===void 0)throw new Error("call record: Android \u540C\u6B65\u7F3A\u5C11 callStatus");return pa({callKind:ol(n,"Android \u540C\u6B65 callType"),outcome:Sy(t),durationMs:fa(e.callDuration,"ms")},ma(e.isCaller))}function Ry(e){let n=Sn(e.callType);if(n===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callType");let t=Sn(e.callStatus);if(t===void 0)throw new Error("call record: Android \u672C\u5730\u7F3A\u5C11 callStatus");return pa({callKind:Iy(n),outcome:Cy(t),durationMs:fa(e.duration,"ms")},ma(e.isCaller))}function My(e){let n=Sn(e.type);if(n===void 0)throw new Error("call record: iOS \u7F3A\u5C11 type");let t=Sn(e.status);if(t===void 0)throw new Error("call record: iOS \u7F3A\u5C11 status");let r=fa(e.content,"s");return pa({callKind:ol(n,"iOS type"),outcome:Ay(t,r),durationMs:r},ma(e.isCaller))}function il(e){if(e===null||typeof e!="object")return false;let n=e;return !(!py.has(n.callKind)||!fy.has(n.outcome)||typeof n.durationMs!="number"||!Number.isSafeInteger(n.durationMs)||n.durationMs<0||n.outgoing!==void 0&&typeof n.outgoing!="boolean")}function sl(e){let n=yy(e.content);if("callDuration"in n)return hy(n);if(Sn(n.callType)!==void 0&&Sn(n.callStatus)!==void 0)return Ry(n);if(Sn(n.type)!==void 0&&Sn(n.status)!==void 0)return My(n);throw new Error("call record: \u65E0\u6CD5\u8BC6\u522B JSON \u5F62\u6001")}function al(e){throw new Error("call record \u4E0D\u53EF\u4F5C\u4E3A\u51FA\u7AD9\u804A\u5929\u6D88\u606F")}function Ey(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 Ty(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 dl(e){return {targetId:e.id,...e.icon===""?{}:{avatar:e.icon},displayName:e.name,...e.username===""?{}:{username:e.username},gender:e.gender,...Ey(e.visitCardKey)}}function cl(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:Ty(e.kind,e.rawKind)}}function ll(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 ul(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 wt(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 gl(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 ml(e){let n=e;if(!wt(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 Io(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function et(e,n){if(e<0n)throw new Error(`gift body: ${n} \u975E\u6CD5`);return e.toString()}function nt(e,n){let t=e.trim();if(!/^\d+$/.test(t))throw new Error(`gift body: ${n} \u5FC5\u987B\u4E3A\u5341\u8FDB\u5236\u6570\u5B57`);return BigInt(t)}function pl(e){return e===0||e===1||e===2}function fl(e){return e===0||e===1||e===2||e===3}function yl(e){return e===1||e===2}function tt(e){return typeof e=="string"&&/^\d+$/.test(e.trim())}function Co(e){if(e===null||typeof e!="object")return false;let n=e;return !(!tt(n.fromUid)||!tt(n.toUid)||!tt(n.serialNumber)||typeof n.giftName!="string"||n.giftName.trim()===""||!pl(n.giftType)||!fl(n.state)||!yl(n.sessionType)||typeof n.initiateTime!="number"||!Number.isSafeInteger(n.initiateTime)||n.initiateTime<0||n.amount!==void 0&&!tt(n.amount)||n.zhangCount!==void 0&&!tt(n.zhangCount)||n.benCount!==void 0&&!tt(n.benCount)||n.fissionNumber!==void 0&&!tt(n.fissionNumber))}function ya(e){let n=e.giftType;if(!pl(n))throw new Error(`gift body: giftType \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.state;if(!fl(t))throw new Error(`gift body: state \u975E\u6CD5\uFF08${String(t)}\uFF09`);let r=e.sessionType;if(!yl(r))throw new Error(`gift body: sessionType \u975E\u6CD5\uFF08${String(r)}\uFF09`);return {fromUid:et(e.fromUid,"fromUid"),toUid:et(e.toUid,"toUid"),giftType:n,state:t,serialNumber:et(e.serialNumber,"serialNumber"),sessionType:r,initiateTime:Number(e.initiateTime),giftName:e.giftName.trim(),...e.amount===0n?{}:{amount:et(e.amount,"amount")},...Io(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...Io(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...Io(e.explain)===void 0?{}:{explain:e.explain.trim()},...Io(e.giftIcon)===void 0?{}:{giftIcon:e.giftIcon.trim()},...e.receiveTime===0n?{}:{receiveTime:Number(e.receiveTime)},...e.returnTime===0n?{}:{returnTime:Number(e.returnTime)},...e.isRead===0?{}:{isRead:e.isRead===1},...e.zhangCount===0n?{}:{zhangCount:et(e.zhangCount,"zhangCount")},...e.benCount===0n?{}:{benCount:et(e.benCount,"benCount")},...e.fissionNumber===0n?{}:{fissionNumber:et(e.fissionNumber,"fissionNumber")}}}function Ia(e){let n=e;if(!Co(e))throw new Error(`gift body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5\uFF08${String(n.serialNumber)}/${String(n.giftType)}\uFF09`);return {contentType:17,content:"",fromUid:nt(e.fromUid,"fromUid"),toUid:nt(e.toUid,"toUid"),giftType:e.giftType,state:e.state,serialNumber:nt(e.serialNumber,"serialNumber"),sessionType:e.sessionType,initiateTime:BigInt(e.initiateTime),giftName:e.giftName,...e.amount===void 0?{}:{amount:nt(e.amount,"amount")},...e.fromUserName===void 0?{}:{fromUserName:e.fromUserName},...e.toUserName===void 0?{}:{toUserName:e.toUserName},...e.explain===void 0?{}:{explain:e.explain},...e.giftIcon===void 0?{}:{giftIcon:e.giftIcon},...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.zhangCount===void 0?{}:{zhangCount:nt(e.zhangCount,"zhangCount")},...e.benCount===void 0?{}:{benCount:nt(e.benCount,"benCount")},...e.fissionNumber===void 0?{}:{fissionNumber:nt(e.fissionNumber,"fissionNumber")}}}function Il(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 Cl(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 un(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Sl(e){return typeof e=="number"&&Number.isInteger(e)&&e>0?e:void 0}function vy(e){switch(e){case 0:return {showType:"default"};case 1:return {showType:"board-game"};case 2:return {showType:"board-game-link"};case 3:return {showType:"game-preview"};default:return {showType:"unknown",rawShowType:e}}}function by(e,n){switch(e){case "default":return 0;case "board-game":return 1;case "board-game-link":return 2;case "game-preview":return 3;case "unknown":if(n===void 0||!Number.isInteger(n)||n<0||n>4294967295||n<=3)throw new Error("miniProgram body: unknown showType \u5FC5\u987B\u63D0\u4F9B\u5408\u6CD5 rawShowType");return n}}function Ny(e){return e.showType==="unknown"&&e.rawShowType===3}function gt(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>3&&n.rawShowType<=4294967295:n.showType==="default"||n.showType==="board-game"||n.showType==="board-game-link"||n.showType==="game-preview"}function Ca(e){return {appId:e.miniProgramAppId,...un(e.miniProgramHost)===void 0?{}:{host:e.miniProgramHost.trim()},...un(e.miniProgramDeveloperId)===void 0?{}:{developerId:e.miniProgramDeveloperId.trim()},...un(e.miniProgramName)===void 0?{}:{name:e.miniProgramName.trim()},...un(e.miniProgramIcon)===void 0?{}:{icon:e.miniProgramIcon.trim()},...un(e.miniProgramProductId)===void 0?{}:{productId:e.miniProgramProductId.trim()},isDynamicHost:e.miniProgramIsDynamicHost===1,...un(e.miniProgramSuffixAddress)===void 0?{}:{suffixAddress:e.miniProgramSuffixAddress.trim()},...vy(e.miniProgramShowType),...un(e.miniProgramDescription)===void 0?{}:{description:e.miniProgramDescription.trim()},...un(e.currencySource)===void 0?{}:{currencySource:e.currencySource.trim()},...un(e.miniProgramCurrencyType)===void 0?{}:{currencyType:e.miniProgramCurrencyType.trim()},...un(e.miniProgramGamePath)===void 0?{}:{gamePath:e.miniProgramGamePath.trim()},...un(e.miniProgramSubGameName)===void 0?{}:{subGameName:e.miniProgramSubGameName.trim()},...un(e.miniProgramGamePreviewUrl)===void 0?{}:{gamePreviewUrl:e.miniProgramGamePreviewUrl.trim()},...Sl(e.miniProgramGamePreviewWidth)===void 0?{}:{gamePreviewWidth:e.miniProgramGamePreviewWidth},...Sl(e.miniProgramGamePreviewHeight)===void 0?{}:{gamePreviewHeight:e.miniProgramGamePreviewHeight}}}function Sa(e){let n=e;if(!gt(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:by(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},...e.gamePreviewUrl===void 0?{}:{miniProgramGamePreviewUrl:e.gamePreviewUrl},...e.gamePreviewWidth===void 0?{}:{miniProgramGamePreviewWidth:e.gamePreviewWidth},...e.gamePreviewHeight===void 0?{}:{miniProgramGamePreviewHeight:e.gamePreviewHeight}}}function Pt(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function Ao(e,n){if(e<0n)throw new Error(`red packet body: ${n} \u975E\u6CD5`);return e.toString()}function So(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 Al(e){return e===1||e===2||e===3||e===4}function _y(e){if(e===null||typeof e!="object")return false;let n=e;return !(typeof n.packetId!="string"||n.packetId.trim()===""||!Al(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 hl(e){let n=e.radPacketId.trim();if(n==="")throw new Error("red packet body: packetId \u7F3A\u5931");if(!Al(e.radPacketType))throw new Error(`red packet body: packetType \u975E\u6CD5\uFF08${String(e.radPacketType)}\uFF09`);let t=e.fromUid===0n?void 0:Ao(e.fromUid,"fromUid"),r=e.toUid===0n?void 0:Ao(e.toUid,"toUid");return {packetId:n,packetType:e.radPacketType,...Pt(e.radPacketAmount)===void 0?{}:{amount:e.radPacketAmount.trim()},...e.redPacketCount===0n?{}:{count:e.redPacketCount.toString()},...e.redPacketIsShowAmount?{showAmount:true}:{},...Pt(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},...Pt(e.coinName)===void 0?{}:{coinName:e.coinName.trim()}}}function Rl(e){let n=e;if(!_y(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:So(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:So(e.thunderNumber,"thunderNumber")},...e.fromUid===void 0?{}:{fromUid:So(e.fromUid,"fromUid")},...e.toUid===void 0?{}:{toUid:So(e.toUid,"toUid")},...e.currencyType===void 0?{}:{currencyType:e.currencyType},...e.coinName===void 0?{}:{coinName:e.coinName}}}function Ml(e){let n=Ao(e.fromUid,"fromUid"),t=Ao(e.toUid,"toUid");if(n==="0"||t==="0")throw new Error("red packet claim: fromUid/toUid \u7F3A\u5931");let r=e.redPacketIsThunder===true,o=Pt(e.radPacketId),i=Pt(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 Aa(e){return e==="red_packet_claimed"||e==="red_packet_claimed_thunder"}function El(e,n){if(!Aa(e.eventType))return e;let t=e.operatorId??"",r=e.targetUserIds?.[0]??"";if(n!==void 0&&n!==""&&(n===t||n===r)){if(e.timelineVisibility!=="hidden")return e;let{timelineVisibility:i,...a}=e;return a}return e.timelineVisibility==="hidden"?e:{...e,timelineVisibility:"hidden"}}var Dy=Object.freeze({modules:Object.freeze([]),commands:Object.freeze([])});function mt(e){if(typeof e!="string")return e;let n=e.trim();if(n!=="")try{return JSON.parse(n)}catch{return}}function An(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}function ha(e){return Array.isArray(e)?e:[]}function en(e){if(typeof e!="string")return;let n=e.trim();return n===""?void 0:n}function Gy(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 Uy(e){let n=mt(e)??e,t=An(n);if(t===void 0)return {content:n,children:void 0};let r=t.contentType;if(r===18||r==="18"){let o=mt(t.content)??t.content,i=An(o);return i===void 0?{content:o,children:void 0}:{content:mt(i.content)??i.content,children:i.children}}return {content:mt(t.content)??t.content,children:t.children}}function ky(e){let n=e.trim();if(!n.startsWith("["))return;let t=mt(n);if(!Array.isArray(t)||t.length===0||!t.every(o=>An(o)?.type!==void 0))return;let r=vl(t);return r.length>0?r:void 0}function xy(e){let n=An(e.text),t=en(n?.content)??"",r=ky(t);return r!==void 0?r:{type:"section",textType:en(n?.type)??"plain-text",content:t}}function By(e){let n=ha(e.elements).map(t=>en(An(t)?.src)).filter(t=>t!==void 0);if(n.length!==0)return {type:"image-group",images:Object.freeze(n)}}function Fy(e){let n=Gy(e.endTime);if(n!==void 0)return {type:"countdown",endTimeMs:n}}function wy(e){let n=An(e);if(n===void 0)return;let t=en(n.type);if(!(t==="divider"||t===void 0)){if(t==="section")return xy(n);if(t==="image-group")return By(n);if(t==="countdown")return Fy(n)}}function vl(e){let n=Array.isArray(e)?e:ha(mt(e)),t=[];for(let r of n){let o=wy(r);o!==void 0&&("type"in o?t.push(o):t.push(...o));}return Object.freeze(t)}function Py(e){let n=An(e);if(n===void 0)return;let t=en(n.path),r=en(n.app_id)??en(n.appId),o=en(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 Tl(e){let n=An(e),t=en(n?.menu_name)??en(n?.menuName);if(n===void 0||t===void 0)return;let r=en(n.menu_id)??en(n.menuId),o=en(n.msg_type)??en(n.messageType),i=Py(n.msg_content??n.content);return {menuName:t,...r===void 0?{}:{menuId:r},...o===void 0?{}:{messageType:o},...i===void 0?{}:{miniProgram:i}}}function Vy(e){let n=[];for(let t of ha(e)){if(Array.isArray(t)){let o=t.map(Tl).filter(i=>i!==void 0);o.length>0&&n.push(Object.freeze(o));continue}let r=Tl(t);r!==void 0&&n.push(Object.freeze([r]));}return Object.freeze(n)}function Oy(e){let n=An(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 Ky(e){let n=An(e);return n!==void 0&&typeof n.menuName=="string"&&n.menuName.trim()!==""}function Ra(e){let n=An(e);return n===void 0||!Array.isArray(n.modules)||!Array.isArray(n.commands)?false:n.modules.every(Oy)&&n.commands.every(t=>Array.isArray(t)&&t.every(Ky))}function Ly(e){let n=Uy(e);return {modules:vl(n.content),commands:Vy(n.children)}}function bl(e){try{return Ly(e.content)}catch{return Dy}}function Zy(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 Qy(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 Nl(e){if(!Ra(e))throw new Error("robot body: \u51FA\u7AD9\u5B57\u6BB5\u975E\u6CD5");return {contentType:18,content:JSON.stringify({content:e.modules.map(Zy),children:e.commands.map(n=>n.map(Qy))})}}function pt(e){let n=e?.trim();return n===void 0||n===""?void 0:n}function ho(e,n){if(e<0n)throw new Error(`transfer body: ${n} \u975E\u6CD5`);return e.toString()}function Ro(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 _l(e){return e===0||e===1||e===2||e===3}function Dl(e){return e===1||e===2}function Mo(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||!_l(n.status)||!Dl(n.sessionType))}function Ma(e){let n=e.status;if(!_l(n))throw new Error(`transfer body: status \u975E\u6CD5\uFF08${String(n)}\uFF09`);let t=e.sessionType;if(!Dl(t))throw new Error(`transfer body: sessionType \u975E\u6CD5\uFF08${String(t)}\uFF09`);return {fromUid:ho(e.fromUid,"fromUid"),toUid:ho(e.toUid,"toUid"),amount:ho(e.amount,"amount"),currencyType:e.currencyType,status:n,serialNumber:ho(e.serialNumber,"serialNumber"),sessionType:t,transferTime:Number(e.transferTime),...pt(e.fromUserName)===void 0?{}:{fromUserName:e.fromUserName.trim()},...pt(e.toUserName)===void 0?{}:{toUserName:e.toUserName.trim()},...pt(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},...pt(e.msgId)===void 0?{}:{transferMsgId:e.msgId.trim()},...pt(e.coinName)===void 0?{}:{coinName:e.coinName.trim()},...pt(e.coinIcon)===void 0?{}:{coinIcon:e.coinIcon.trim()}}}function Ea(e){let n=e;if(!Mo(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:Ro(e.fromUid,"fromUid"),toUid:Ro(e.toUid,"toUid"),amount:Ro(e.amount,"amount"),currencyType:e.currencyType,status:e.status,serialNumber:Ro(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 Gl(e){let n={url:e.content,width:e.width,height:e.height},t=Wy(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 Ta(e,n){return (e===void 0||e===0)&&(n?.length??0)>0}function Wy(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 Ta(e.fileEncryptType,e.teaKey)||t?n/1e3:n}function Eo(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||!Ta(e.fileEncryptType,e.teaKey)||e.width===0&&e.height===0&&e.duration<=300?e:{...e,duration:e.duration/1e3,durationUnit:"seconds"}}function Ul(e){let n=Ta(e.fileEncryptType,e.teaKey)?1e3:1,t=Hy(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 Hy(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 kl(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 xl(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 Ol=1,Kl=[{wireContentType:29,domainContentType:"filesAlbum",parse:e=>({filesAlbum:zc(e)}),build:e=>e.filesAlbum===void 0?void 0:qc(e.filesAlbum)},{wireContentType:2,domainContentType:"image",parse:e=>({image:Il(e)}),build:e=>e.image!==void 0?Cl(e.image):void 0},{wireContentType:3,domainContentType:"video",parse:e=>({video:Gl(e)}),build:e=>e.video!==void 0?Ul(e.video):void 0},{wireContentType:4,domainContentType:"voice",parse:e=>({voice:kl(e)}),build:e=>e.voice!==void 0?xl(e.voice):void 0},{wireContentType:11,domainContentType:"file",parse:e=>({file:ll(e)}),build:e=>e.file!==void 0?ul(e.file):void 0},{wireContentType:7,domainContentType:"sticker",parse:e=>({sticker:la(e)}),build:e=>e.sticker!==void 0?ua(e.sticker):void 0},{wireContentType:8,domainContentType:"contact",parse:e=>({contact:dl(e)}),build:e=>e.contact!==void 0?cl(e.contact):void 0},{wireContentType:22,domainContentType:"miniProgram",parse:e=>({miniProgram:Ca(e)}),build:e=>e.miniProgram!==void 0?Sa(e.miniProgram):void 0},{wireContentType:27,domainContentType:"game",parse:e=>({game:gl(e)}),build:e=>e.game!==void 0?ml(e.game):void 0},{wireContentType:16,domainContentType:"transfer",parse:e=>({transfer:Ma(e)}),build:e=>e.transfer!==void 0?Ea(e.transfer):void 0},{wireContentType:17,domainContentType:"gift",parse:e=>({gift:ya(e)}),build:e=>e.gift!==void 0?Ia(e.gift):void 0},{wireContentType:10,domainContentType:"call",parse:e=>({call:sl(e)}),build:e=>e.call!==void 0?al(e.call):void 0},{wireContentType:25,domainContentType:"redPacket",parse:e=>({redPacket:hl(e)}),build:e=>e.redPacket!==void 0?Rl(e.redPacket):void 0},{wireContentType:mo,domainContentType:"mediaAlbum",parse:e=>({mediaAlbum:da(e)}),build:e=>e.mediaAlbum!==void 0?Bt(e.mediaAlbum):void 0},{wireContentType:18,domainContentType:"robot",parse:e=>({robot:bl(e)}),build:e=>e.robot!==void 0&&Ra(e.robot)?Nl(e.robot):void 0}],rI=[{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:"filesAlbum",read:e=>e.filesAlbum},{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:"gift",read:e=>e.gift},{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 Mn(e,n){if(e.contentType===Ol)return {contentType:"text",body:{text:e.content}};if(e.contentType===26)try{return {contentType:"system",body:{system:El(Ml(e),n)}}}catch{return {contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}}let t=Kl.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 va(e,n,t="outgoing message"){let r=rI.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`)}an(n);}function an(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 Kl){let t=n.build(e);if(t!==void 0)return t}if(e.text!==void 0)return {contentType:Ol,content:e.text};throw new Error("outgoing message body \u7F3A\u5C11\u53EF\u53D1\u9001\u7684\u6B63\u6587\u69FD\u4F4D")}var ba=/^[0-9a-f]{32}$/;function gn(e){return ba.test(e.replace(/-/g,"").toLowerCase())}function dn(){return globalThis.crypto.randomUUID()}function Me(e){let n=e.replace(/-/g,"").toLowerCase();if(!gn(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 ba.test(n)?n:e}function ge(e){let n=e.toLowerCase();return ba.test(n)?`${n.slice(0,8)}-${n.slice(8,12)}-${n.slice(12,16)}-${n.slice(16,20)}-${n.slice(20)}`:e}function To(e){let n=e.serverTime;return n!==void 0&&Number.isFinite(n)&&n>0&&n<=864e13?n:void 0}function En(e){return To(e)??e.createdAt}function Tn(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 Te(En(e),t)}function Te(e,n){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return `${String(t).padStart(16,"0")}:${n}`}function Qe(e,n){return e.sortKey<n.sortKey?-1:e.sortKey>n.sortKey?1:0}var Na=9,oI=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:Me(e.id),msgTime:BigInt(Math.floor(n.createdAt)),msgType:Na,encrypt:2,bMessage:an(e.body)};return e.mention!==void 0&&Object.assign(o,iI(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(o.parentMsgId=Xe(e.refMessageId)),o}function iI(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 vn(e,n,t){return Da({senderId:Ft(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 _a(e,n,t){return Da(Zl(e),n,t)}function Ll(e,n,t){return Da(Zl(e),void 0,t,n)}function Zl(e){return {senderId:Ft(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:aI(e.sNotifyUsers),extend:e.extend,parentMessageId:e.parentMsgId,edited:e.isEdit!==0,oldMessageId:e.oldMsgId}}function Da(e,n,t,r){sI(e,t.edited===true&&e.oldMessageId.trim()!=="");let o=ge(e.messageId),i=e.senderId,a=e.channelId.toString(),s=Number(e.msgTime),c=s>0?s:t.receivedAt??Date.now(),u=n===void 0?{contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}:Mn(n,t.selfId),y=dI(e,u.body.text??""),I=e.sequence.toString(),v={channelMessageType:Na,channelSequence:I,historyCursor:e.historyCursor};e.oldMessageId!==""&&(v.previousMessageId=ge(e.oldMessageId));let T={id:o,conversationId:a,conversationType:"channel",senderId:i,contentType:u.contentType,body:u.body,createdAt:c,sortKey:Te(c,`${I.padStart(oI,"0")}:${o}`),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0},extensions:v};return t.decryptFailed===true&&(T.encryption.decryptFailed=true),s>0&&(T.serverTime=s),e.parentMessageId!==""&&(T.refMessageId=ge(e.parentMessageId)),(e.edited||t.edited===true)&&(T.edited=true),y!==void 0&&(T.mention=y),t.keepRaw&&(T.raw=pI(e,n,t.cmdId,r)),T}function sI(e,n=false){if(e.channelId<=0n)throw new Error("channel message: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(!rl(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 aI(e){let n=e.trim();if(n==="")return [];try{let t=JSON.parse(n);if(Array.isArray(t))return t.map(String).filter(vo)}catch{}return n.split(/[\s,;]+/).filter(vo)}function dI(e,n){let t=e.notifyCount===-1||e.notifyCount===4294967295,r=lI(e.notifyUsers.filter(vo),cI(n)),{ranges:o,atUsersName:i}=uI(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 cI(e){return [...e.matchAll(/\[(\d{17,20})\]/g)].flatMap(n=>n[1]===void 0?[]:[n[1]])}function lI(e,n){return [...new Set([...e,...n])]}function vo(e){return /^[1-9]\d*$/.test(e)}function uI(e){if(e==="")return {};try{let n=JSON.parse(e),t=gI(n.atRange),r=mI(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function gI(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 mI(e){if(typeof e!="object"||e===null)return;let n={};for(let[t,r]of Object.entries(e))vo(t)&&typeof r=="string"&&r!==""&&(n[t]=r);return Object.keys(n).length===0?void 0:n}function pI(e,n,t,r){return {cmdId:t,chat:{sMsgId:e.messageId,sFromId:e.senderId,sToId:e.channelId.toString(),msgType:Na,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 mn=fileDesc("CgxpbS5wdWIucHJvdG8SCmltLmFwcC5wdGwiGwoKU3lzdGVtUGluZxINCgVtc2dJZBgBIAEoCSrcOQoFQ21kSWQSEAoMRVhDRVBUX0NNRElEEAASFAoQU1lTVEVNX0hFQVJUQkVBVBABEhgKFFNZU1RFTV9IRUFSVEJFQVRfQUNLEAISDwoLU1lTVEVNX1BJTkcQAxITCg9TWVNURU1fUElOR19BQ0sQBBIcChhTWVNURU1fVE9PX01BTllfUkVRVUVTVFMQBhIbChdDTV9TWU5DX0FQUF9QUklWQVRFX0tFWRBlEiIKHkNNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0VNU0FDSxBmEh8KG0NNX1NZTkNfQVBQX1BSSVZBVEVfS0VZX0FDSxBnEiAKHENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVkQaBInCiNDTV9TWU5DX0FQUF9TRU5EX1BSSVZBVEVfS0VZX0VNU0FDSxBpEiQKIENNX1NZTkNfQVBQX1NFTkRfUFJJVkFURV9LRVlfQUNLEGoSIgoeQ01fREVWSUNFX09OTElORV9TVEFUVVNfTk9USUZZEGwSDQoIQ01fTE9HSU4QgQISEQoMQ01fTE9HSU5fQUNLEIICEg4KCUNNX0xPR09VVBCDAhISCg1DTV9MT0dPVVRfQUNLEIQCEhUKEENNX1BVU0hUT0tFTlNZTkMQhQISGQoUQ01fUFVTSFRPS0VOU1lOQ19BQ0sQhgISHAoXQ01fS0lDS09VVF9OT1RJRklDQVRJT04QiAISFgoRQ01fTE9HT1VUX0NPTkZJUk0QiQISGgoVQ01fTE9HT1VUX0NPTkZJUk1fQUNLEIoCEhoKFUNNX0ZSRUVaRV9VU0VSX05PVElGWRCLAhINCghNRVNfQ0hBVBCBIBIRCgxNRVNfQ0hBVF9BQ0sQgiASGQoUTUVTX0NIQVRfREVMSVZFUl9BQ0sQgyASFQoQTUVTX0NIQVRfREVMSVZFUhCEIBIoCiNNRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OX0FDSxCFIBIkCh9NRVNfQ0hBVF9ERUxJVkVSRURfTk9USUZJQ0FUSU9OEIYgEhIKDU1FU19DSEFUX1JFQUQQhyASFgoRTUVTX0NIQVRfUkVBRF9BQ0sQiCASHgoZTUVTX0NIQVRfUkVBRF9ERUxJVkVSX0FDSxCJIBIaChVNRVNfQ0hBVF9SRUFEX0RFTElWRVIQiiASEwoOTUVTX0NIQVRDQU5DRUwQiyASFwoSTUVTX0NIQVRDQU5DRUxfQUNLEIwgEh8KGk1FU19DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEI0gEhsKFk1FU19DSEFUQ0FOQ0VMX0RFTElWRVIQjiASGgoVTUVTX0NIQVRfT1BQT1NJVEVfRU5EEJEgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9FTVNfQUNLEJIgEiIKHU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFEJMgEiYKIU1FU19DSEFUX09QUE9TSVRFX0VORF9SRUNFSVZFX0FDSxCUIBIfChpNRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCVIBIjCh5NRVNfQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQliASJwoiTUVTX0NIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCXIBISCg1NRVNfQURERlJJRU5EEIEiEhYKEU1FU19BRERGUklFTkRfQUNLEIIiEh4KGU1FU19BRERGUklFTkRfREVMSVZFUl9BQ0sQgyISGgoVTUVTX0FEREZSSUVORF9ERUxJVkVSEIQiEhYKEU1FU19BRERGUklFTkRfQU5TEIUiEhoKFU1FU19BRERGUklFTkRfQU5TX0FDSxCGIhIiCh1NRVNfQURERlJJRU5EX0FOU19ERUxJVkVSX0FDSxCHIhIeChlNRVNfQURERlJJRU5EX0FOU19ERUxJVkVSEIgiEiAKG01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWRCFJBIkCh9NRVNfVVNFUl9JTkZPX01PRElGWV9OT1RJRllfQUNLEIYkEigKI01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSEIgkEiwKJ01FU19VU0VSX0lORk9fTU9ESUZZX05PVElGWV9ERUxJVkVSX0FDSxCHJBIdChhNRVNfREVMRVRFX0ZSSUVORF9OT1RJRlkQiSQSIQocTUVTX0RFTEVURV9GUklFTkRfTk9USUZZX0FDSxCQJBIaChVNRVNfQ0hBVF9FRElUX01TR19DMkMQpCQSHwoaTUVTX0NIQVRfRURJVF9PUFBPU0lURV9FTkQQpSQSGgoVTUVTX0NIQVRfTVNHX0VESVRfQUNLEKYkEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19DMkMQqiQSIwoeTUVTX0NIQVRfUkVBQ1RJT05fT1BQT1NJVEVfRU5EEKskEh4KGU1FU19DSEFUX1JFQUNUSU9OX01TR19BQ0sQrCQSHgoZTUVTX0NIQVRfUkVBQ1RJT05fREVMSVZFUhCtJBIUCg9NU19DT01NT05OT1RJRlkQgSQSGAoTTVNfQ09NTU9OTk9USUZZX0FDSxCCJBIgChtNU19DT01NT05OT1RJRllfREVMSVZFUl9BQ0sQgyQSHAoXTVNfQ09NTU9OTk9USUZZX0RFTElWRVIQhCQSEwoOTVNHX1NFVF9VTlJFQUQQkSQSFwoSTVNHX1NFVF9VTlJFQURfQUNLEJIkEhwKF01TX1dBTExFVE5PVElGWV9ERUxJVkVSEJMkEiAKG01TX1dBTExFVE5PVElGWV9ERUxJVkVSX0FDSxCUJBInCiJNRVNfRlJJRU5EX0JMQUNLTElTVF9DSEFOR0VfTk9USUZZEJUkEisKJk1FU19GUklFTkRfQkxBQ0tMSVNUX0NIQU5HRV9OT1RJRllfQUNLEJYkEhYKEU1FU19GUklFTkRfTk9USUZZEJckEhoKFU1FU19GUklFTkRfTk9USUZZX0FDSxCYJBIqCiVNRVNfVVNFUl9GQVZPUklURV9MSVNUX0NIQU5HRURfTk9USUZZEJkkEh8KGk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZEKAkEiMKHk1FU19VU0VSX1NXSVRDSF9TRVRfTk9USUZZX0FDSxChJBIkCh9NRVNfVVNFUl9BUFBMWV9ERURVQ1RJT05fTk9USUZZEMckEhwKF01FU19HSVZFX0xPVFRFUllfTk9USUZZEKIkEiAKG01FU19HSVZFX0xPVFRFUllfTk9USUZZX0FDSxCjJBIPCgpHUk9VUF9DSEFUEIFAEhMKDkdST1VQX0NIQVRfQUNLEIJAEhwKF01FU19HUlBDSEFUX0RFTElWRVJfQUNLEINAEhgKE01FU19HUlBDSEFUX0RFTElWRVIQhEASFQoQR1JPVVBfQ0hBVENBTkNFTBCFQBIZChRHUk9VUF9DSEFUQ0FOQ0VMX0FDSxCGQBIhChxHUk9VUF9DSEFUQ0FOQ0VMX0RFTElWRVJfQUNLEIdAEh0KGEdST1VQX0NIQVRDQU5DRUxfREVMSVZFUhCIQBIQCgtNRVNfSk9JTkdSUBCBQhIUCg9NRVNfSk9JTkdSUF9BQ0sQgkISHAoXTUVTX0pPSU5HUlBfREVMSVZFUl9BQ0sQg0ISGAoTTUVTX0pPSU5HUlBfREVMSVZFUhCEQhIeChlNRVNfR1JQTk9USUZZX0RFTElWRVJfQUNLEINEEhoKFU1FU19HUlBOT1RJRllfREVMSVZFUhCERBIVChBNRVNfRVhDSEFOR0VfS0VZEIFGEhkKFE1FU19FWENIQU5HRV9LRVlfQUNLEIJGEiEKHE1FU19FWENIQU5HRV9LRVlfREVMSVZFUl9BQ0sQg0YSHQoYTUVTX0VYQ0hBTkdFX0tFWV9ERUxJVkVSEIRGEikKJE1FU19FWENIQU5HRV9LRVlfREVMSVZFUkRfTk9USUZZX0FDSxCFRhIlCiBNRVNfRVhDSEFOR0VfS0VZX0RFTElWRVJEX05PVElGWRCGRhIiCh1NRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQxCHRhImCiFNRVNfR1JQQ0hBVF9TWU5DX1JFQURfTVNHX0MyQ19BQ0sQiEYSKgolTUVTX0dSUENIQVRfU1lOQ19SRUFEX01TR19ERUxJVkVSX0MyQxCJRhIdChhNRVNfR1JQQ0hBVF9FRElUX01TR19DMkMQkEYSIQocTUVTX0dSUENIQVRfRURJVF9NU0dfQzJDX0FDSxCRRhIhChxNRVNfR1JQQ0hBVF9SRUFDVElPTl9NU0dfQzJDEJJGEiUKIE1FU19HUlBDSEFUX1JFQUNUSU9OX01TR19DMkNfQUNLEJNGEiEKHE1FU19HUlBDSEFUX1JFQUNUSU9OX0RFTElWRVIQlEYSDwoKUkFESU9fQ0hBVBCBYBITCg5SQURJT19DSEFUX0FDSxCCYBIbChZSQURJT19DSEFUX0RFTElWRVJfQUNLEINgEhcKElJBRElPX0NIQVRfREVMSVZFUhCEYBIcChdSQURJT19BRE1JTl9DQU5DRUxfQ0hBVBCFYBIgChtSQURJT19BRE1JTl9DQU5DRUxfQ0hBVF9BQ0sQhmASKAojUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQh2ASJAofUkFESU9fQURNSU5fQ0FOQ0VMX0NIQVRfREVMSVZFUhCIYBIWChFSQURJT19DQU5DRUxfQ0hBVBCJYBIaChVSQURJT19DQU5DRUxfQ0hBVF9BQ0sQimASIgodUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUl9BQ0sQi2ASHgoZUkFESU9fQ0FOQ0VMX0NIQVRfREVMSVZFUhCMYBIcChdSQURJT19BUFBMWV9ERUxJVkVSX0FDSxCDYhIYChNSQURJT19BUFBMWV9ERUxJVkVSEIRiEh0KGFJBRElPX0lOVklURV9ERUxJVkVSX0FDSxCHYhIZChRSQURJT19JTlZJVEVfREVMSVZFUhCIYhIdChhSQURJT19OT1RJRllfREVMSVZFUl9BQ0sQg2QSGQoUUkFESU9fTk9USUZZX0RFTElWRVIQhGQSIAobTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfQzJDEIVkEiQKH01FU19SQURJT19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQhmQSKAojTUVTX1JBRElPX1NZTkNfUkVBRF9NU0dfREVMSVZFUl9DMkMQh2QSGwoWTUVTX1JBRElPX0VESVRfTVNHX0MyQxCIZBIfChpNRVNfUkFESU9fRURJVF9NU0dfQzJDX0FDSxCJZBIhChxNRVNfUkFESU9fUkVEX1BBQ0tFVF9HUkFCQkVEEJBkEh8KGk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDEJFkEiMKHk1FU19SQURJT19SRUFDVElPTl9NU0dfQzJDX0FDSxCSZBIfChpNRVNfUkFESU9fUkVBQ1RJT05fREVMSVZFUhCTZBIYChJTSUdfU1BPTlNPUlAyUENBTEwQgYABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BQ0sQgoABEiQKHlNJR19TUE9OU09SUDJQQ0FMTF9ERUxJVkVSX0FDSxCDgAESIAoaU0lHX1NQT05TT1JQMlBDQUxMX0RFTElWRVIQhIABEhwKFlNJR19TUE9OU09SUDJQQ0FMTF9BTlMQhYABEiAKGlNJR19TUE9OU09SUDJQQ0FMTF9BTlNfQUNLEIaAARIoCiJTSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVJfQUNLEIeAARIkCh5TSUdfU1BPTlNPUlAyUENBTExfQU5TX0RFTElWRVIQiIABEiIKHFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk8QiYABEiYKIFNJR19QMlBDQUxMX0VYQ0hBTkdFX05BVElORk9fQUNLEIqAARIuCihTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVJfQUNLEIuAARIqCiRTSUdfUDJQQ0FMTF9FWENIQU5HRV9OQVRJTkZPX0RFTElWRVIQjIABEhcKEVNJR19QMlBDQUxMSEFOR1VQEI2AARIbChVTSUdfUDJQQ0FMTEhBTkdVUF9BQ0sQjoABEiIKHFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUl9BQ0sQj4ABEh4KGFNJR19QMlBDQUxMSEFOR1VQREVsSVZFUhCQgAESHAoWU0lHX1AyUENBTExTVEFURU5PVElGWRCRgAESIAoaU0lHX1AyUENBTExTVEFURU5PVElGWV9BQ0sQkoABEicKIVNJR19QMlBDQUxMU1RBVEVOT1RJRllERWxJVkVSX0FDSxCTgAESIwodU0lHX1AyUENBTExTVEFURU5PVElGWURFbElWRVIQlIABEhoKFFNJR19TUE9OU09SR1JPVVBDQUxMEIGCARIeChhTSUdfU1BPTlNPUkdST1VQQ0FMTF9BQ0sQgoIBEiYKIFNJR19TUE9OU09SR1JPVVBDQUxMX0RFTElWRVJfQUNLEIOCARIiChxTSUdfU1BPTlNPUkdST1VQQ0FMTF9ERUxJVkVSEISCARIXChFTSUdfR1JPVVBDQUxMX0FOUxCFggESGwoVU0lHX0dST1VQQ0FMTF9BTlNfQUNLEIaCARIjCh1TSUdfR1JPVVBDQUxMX0FOU19ERUxJVkVSX0FDSxCHggESHwoZU0lHX0dST1VQQ0FMTF9BTlNfREVMSVZFUhCIggESGAoSU0lHX0dST1VQQ0FMTF9KT0lOEImCARIcChZTSUdfR1JPVVBDQUxMX0pPSU5fQUNLEIqCARIkCh5TSUdfR1JPVVBDQUxMX0pPSU5fREVMSVZFUl9BQ0sQi4IBEiAKGlNJR19HUk9VUENBTExfSk9JTl9ERUxJVkVSEIyCARIaChRTSUdfR1JPVVBDQUxMX0hBTkdVUBCNggESHgoYU0lHX0dST1VQQ0FMTF9IQU5HVVBfQUNLEI6CARImCiBTSUdfR1JPVVBDQUxMX0hBTkdVUF9ERUxJVkVSX0FDSxCPggESIgocU0lHX0dST1VQQ0FMTF9IQU5HVVBfREVMSVZFUhCQggESGgoUU0lHX0dST1VQQ0FMTF9GSU5JU0gQkYIBEh4KGFNJR19HUk9VUENBTExfRklOSVNIX0FDSxCSggESJgogU0lHX0dST1VQQ0FMTF9GSU5JU0hfREVMSVZFUl9BQ0sQk4IBEiIKHFNJR19HUk9VUENBTExfRklOSVNIX0RFTElWRVIQlIIBEhoKFFNJR19HUk9VUENBTExfU1RBVFVTEJWCARIeChhTSUdfR1JPVVBDQUxMX1NUQVRVU19BQ0sQloIBEiYKIFNJR19HUk9VUENBTExfU1RBVFVTX0RFTElWRVJfQUNLEJeCARIiChxTSUdfR1JPVVBDQUxMX1NUQVRVU19ERUxJVkVSEJiCARIgChpTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRBCZggESJAoeU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfQUNLEJqCARIsCiZTSUdfR1JPVVBDQUxMX0RJU0NPTk5FQ1RFRF9ERUxJVkVSX0FDSxCbggESKAoiU0lHX0dST1VQQ0FMTF9ESVNDT05ORUNURURfREVMSVZFUhCcggESGAoSU0lHX0dST1VQQ0FMTF9CVVNZEJ2CARIcChZTSUdfR1JPVVBDQUxMX0JVU1lfQUNLEJ6CARIkCh5TSUdfR1JPVVBDQUxMX0JVU1lfREVMSVZFUl9BQ0sQn4IBEiAKGlNJR19HUk9VUENBTExfQlVTWV9ERUxJVkVSEKCCARIbChVTSUdfU1lOQ19SRUFEX01TR19DMkMQoYIBEh8KGVNJR19TWU5DX1JFQURfTVNHX0MyQ19BQ0sQooIBEiMKHVNJR19TWU5DX1JFQURfTVNHX0RFTElWRVJfQzJDEKOCARIiChxOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTEIGgARImCiBOT1RJRklDQVRJT05fQ09NTU9OX0NIQU5ORUxTX0FDSxCCoAESLgooTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSX0FDSxCDoAESKgokTk9USUZJQ0FUSU9OX0NPTU1PTl9DSEFOTkVMU19ERUxJVkVSEISgARIYChJCT1RfTVNHX0dST1VQX1NFTkQQgcABEhgKEkJPVF9NU0dfUkFESU9fU0VORBCCwAESHwoZQk9UX01TR19ST0JPVF9ERUxFVEVfU0VORBCDwAESFwoSTUVTX0NIQVRfTUVTX1JPQk9UEKckEhsKFk1FU19DSEFUX01FU19ST0JPVF9BQ0sQqCQSHQoYTUVTX0NIQVRfTUVTX1JPQk9UX1JFUExZEKkkEg4KCFBDX0xPR0lOENHhAhIRCgtQQ19MT0dJTkFDSxDS4QISDwoJUENfS0lUT1VUENThAhIPCglQQ19MT0dPVVQQ1eECEhkKE1BDX1BDU1lOTUVTU0FHRVRPR1cQ1+ECEhoKFFBDX0dXU1lOTUVTU0FHRVRPQVBQENjhAhIdChdQQ19HV1NZTk1FU1NBR0VUT0FQUEFDSxDZ4QISHAoWUENfUENTWU5NRVNTQUdFVE9HV0FDSxDa4QISGgoUUENfQVBQU1lOTUVTU0FHRVRPR1cQ2+ECEhkKE1BDX0dXU1lOTUVTU0FHRVRPUEMQ3OECEhwKFlBDX0dXU1lOTUVTU0FHRVRPUENBQ0sQ3eECEh0KF1BDX0FQUFNZTk1FU1NBR0VUT0dXQUNLEN7hAhITCg1QQ19IRUFSVEJFQVJUEODhAhIWChBQQ19IRUFSVEJFQVJUQUNLEOHhAhIXChFQQ19DSEVDS0FQUEFDVElWRRDi4QISGgoUUENfQ0hFQ0tBUFBBQ1RJVkVBQ0sQ4+ECEhgKElBDX1JFUE9SVEFQUEFDVElWRRDk4QISGQoTUENfUENTVEFUVVNTWU5UT0FQUBDl4QISHAoWUENfUENTVEFUVVNTWU5UT0FQUEFDSxDm4QISGQoTUENfQVBQU1RBVFVTU1lOVE9QQxDn4QISHAoWUENfQVBQU1RBVFVTU1lOVE9QQ0FDSxDo4QISGQoTUENfQVBQU1lOTk9USUZZVE9HVxDp4QISHAoWUENfQVBQU1lOTk9USUZZVE9HV0FDSxDq4QISGAoSUENfR1dTWU5OT1RJRllUT1BDEOvhAhIbChVQQ19HV1NZTk5PVElGWVRPUENBQ0sQ7OECEhgKEk1FU19PRkZMSU5FU1VNTUFSWRCR4AISHAoWTUVTX09GRkxJTkVTVU1NQVJZX0FDSxCS4AISFgoQTUVTX09GRkxJTkVUT1RBTBCT4AISGgoUTUVTX09GRkxJTkVUT1RBTF9BQ0sQlOACEhQKDk1FU19PRkZMSU5FTVNHEJXgAhIYChJNRVNfT0ZGTElORU1TR19BQ0sQluACEh4KGE1FU19PRkZMSU5FTVNHX0RFTElWRVJFRBCX4AISIgocTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX0FDSxCY4AISLwopTUVTX09GRkxJTkVNU0dfREVMSVZFUkVEX05PVElGSUNBVElPTl9BQ0sQmeACEisKJU1FU19PRkZMSU5FTVNHX0RFTElWRVJFRF9OT1RJRklDQVRJT04QmuACKskNCgdFcnJDb2RlEg4KCkVYQ0VQVF9FUlIQABINCgdOT05fRVJSEICAAhIUCg5FUlJfU1lTX1JFR0lTVBCBgAISGgoURVJSX1NZU19JTlRFUk5BTF9FUlIQgoACEhQKDkVSUl9MT0dJTl9BVVRIEIGCAhIZChNFUlJfTE9HSU5fRk9SQklEREVOEIKCAhIQCgpFUlJfTE9HT1VUEIOCAhIeChhFUlJfREVWSUNFU1lOQ19QQVJBTUVURVIQhIICEh4KGEVSUl9ERVZJQ0VTWU5DX0ZPUkJJRERFThCFggISHgoYRVJSX0RFVklDRVNZTkNfRVhDRVBUSU9OEIaCAhIgChpFUlJfVFJBTlNNSVNTSU9OX0ZPUkJJRERFThCHggISHgoYRVJSX1RSQU5TTUlTU0lPTl9TRVNTSU9OEIiCAhIWChBFUlJfQ01fRVhDRVBUSU9OEImCAhIbChVFUlJfQ01fQVVUSF9LSUNLRURPVVQQkIICEhUKD0VSUl9DTV9QSFBfQVVUSBCRggISIgocRVJSX0NNX0FVVEhfS0lDS0VET1VUX0JZX0FQUBCSggISGAoSRVJSX0NNX1VTRVJfRlJFRVpFEJOCAhIYChJFUlJfQ0hBVF9GT1JCSURERU4QgYQCEhgKEkVSUl9DSEFUX1VOSEVBTFRIWRCChAISGAoSRVJSX0NIQVRfUEFSQU1FVEVSEIOEAhIdChdFUlJfQ0hBVF9DQU5DRUxfT1VUVElNRRCEhAISHAoWRVJSX0NIQVRfRlJJRU5EX1JFRlVTRRCRhAISGwoVRVJSX0NIQVRfRlJJRU5EX0JMT0NLEJKEAhIZChNFUlJfQ0hBVF9GUklFTkRfREVMEJOEAhIbChVFUlJfQ0hBVF9GUklFTkRfQURERUQQlIQCEhwKFkVSUl9DSEFUX0ZSSUVORF9BRERJTkcQlYQCEiAKGkVSUl9DSEFUX0ZSSUVORF9ISURFTkFEREVEEJaEAhIdChdFUlJfQ0hBVF9ERUVOQ1JZX0ZBSUxFRBCjhAISGAoSSU5GT19HUk9VUF9QRU5ESU5HEICGAhIZChNFUlJfR1JPVVBfUEFSQU1FVEVSEIGGAhIcChZFUlJfR1JPVVBfT1ZFUkNSRUFUSU9OEIKGAhIYChJFUlJfR1JPVVBfT1ZFUkpPSU4Qg4YCEiAKGkVSUl9HUk9VUF9ORVRXT1JLRVhDRVBUSU9OEISGAhIZChNFUlJfR1JPVVBfRk9SQklEREVOEIWGAhIeChhFUlJfR1JPVVBfSU5URVJFWENFUFRJT04QhoYCEhsKFUVSUl9HUk9VUF9NRU1CRVJFWElTVBCHhgISHgoYRVJSX0dST1VQX01FTUJFUk5PTkVYSVNUEIiGAhIfChlFUlJfR1JPVVBfSU5URVJQRVJNSVNTSU9OEImGAhIdChdFUlJfR1JPVVBfTk9OUEVSTUlTU0lPThCQhgISFgoQRVJSX0dST1VQX01BU1RFUhCRhgISGQoTRVJSX0dST1VQX05PVE1BU1RFUhCShgISHwoZRVJSX0dST1VQX0lOVklURUVYQ0VQVElPThCThgISHQoXRVJSX0dST1VQX0lOVklURVNVQ0NFU1MQlIYCEhkKE0VSUl9HUk9VUF9ESVNNSVNTRUQQlYYCEiAKGkVSUl9HUk9VUF9NRU1CRVJFWElTVF9ISURFEJaGAhIbChVFUlJfR1JPVVBfSk9JTl9SRUpFQ1QQoIYCEh0KF0VSUl9HUk9VUF9OT1RJRllfUkVKRUNUEKGGAhIbChVFUlJfR1JPVVBfTUFTVEVSX1FVSVQQooYCEhUKD0VSUl9DQUxMX1JFRlVTRRCAiAISEwoNRVJSX0NBTExfQlVTWRCBiAISGwoVRVJSX0NBTExfUEVFUl9PRkZMSU5FEIKIAhIcChZFUlJfQ0FMTF9DQUxMRVJfQ0FOQ0VMEIOIAhIjCh1FUlJfQ0FMTF9DQUxMRUVfTElWRUtJVF9UT0tFThCEiAISIgocRVJSX0NBTExfQ0FMTEVFX0xJVkVLSVRfQ09OThCFiAISIQobRVJSX0NBTExfUEVFUl9TVEFSVF9USU1FT1VUEIaIAhIYChJFUlJfQ0FMTF9QRUVSX0xPU1QQh4gCEh8KGUVSUl9DQUxMX0NBTExFRV9OT19BTlNXRVIQiIgCEhcKEUVSUl9SQURJT19ESVNNSVNTEIGKAhIXChFFUlJfUkFESU9fTk9TUEVBSxCCigISGAoSRVJSX1JBRElPX0lTREVMRVRFEIOKAhIVCg9FUlJfUkFESU9fQURNSU4QhIoCKswBCgdNc2dUeXBlEgsKB0RFRkFVTFQQABIRCg1QRVJTT05BTF9UQUxLEAESDgoKR1JPVVBfVEFMSxACEgwKCENPTlRBQ1RTEAMSCwoHU1lTX01TRxAEEhQKEEFEVkVSVElTTUVOVF9NU0cQBRIQCgxHUlBfQ09OVEFDVFMQBhINCglDSE5OX1RBTEsQBxIPCgtDSE5OX05PVElGWRAIEgwKCEJPVF9UQUxLEAsSDAoIUDJQX0NBTEwQEBISCg5SRUZFUkVOQ0VfQ0FMTBARKmcKCkRpdmVjZVR5cGUSCgoGVU5LTk9XEAASCwoHSFdfUFVTSBAQEgsKB1hNX1BVU0gQERIOCgpHT09HTEVfRkNNEBISCQoFSlBVU0gQExINCghBUE5TX0RFVhD+ARIJCgRBUE5TEP8BKrgBCg9DbG9zZUxpbmtSZWFzb24SGAoUQ2xPU0VfUkVBU09OX1VOS05PV04QABIcChhDTE9TRV9SRUFTT05fU2VsZl9Mb2dvdXQQARImCiJDTE9TRV9SRUFTT05fS2lja2VkX0JZX090aGVyRGV2aWNlEAISHgoaQ0xPU0VfUkVBU09OX0tpY2tlZF9CWV9BUFAQAxIlCiFDTE9TRV9SRUFTT05fUmVDb25uZWN0S2lja09sZExpbmsQBCpNChRQdWxsSGlzdG9yeU1zZ0RpcmVjdBISCg5EaXJlY3RfVW5rbm93bhAAEg0KCURpcmVjdF9VcBABEhIKDkRpcmVjdGlvbl9Eb3duEAJCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw");var tn=fileDesc("Cg1jaGFubmVsLnByb3RvEg9pbS5jaGFubmVsLnB1bGwibAoSUHVsbENobm5TZXNzaW9uUmVxEg8KB3NVc2VySWQYASABKAMSMQoKbHNDaG5uSW5mbxgCIAMoCzIdLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubkluZm8SEgoKY2xpZW50VHlwZRgDIAEoDSIzCgxQdWxsQ2hubkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJIlYKElB1bGxDaG5uU2Vzc2lvblJzcBIPCgdlcnJjb2RlGAEgASgNEi8KCWxzU2Vzc2lvbhgCIAMoCzIcLmltLmNoYW5uZWwucHVsbC5TZXNzaW9uSW5mbyKPAQoLU2Vzc2lvbkluZm8SDwoHc0Nobm5JZBgBIAEoAxISCgpzUmVhZEluZGV4GAIgASgJEg8KB3VVbnJlYWQYAyABKA0SJwoEbGFzdBgEIAEoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIPCgd1U3RhdHVzGAUgASgNEhAKCHVFeGlzdEF0GAYgASgNIr4CCghDaG5uQ2hhdBIPCgdzRnJvbUlkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoDBIOCgZleHRlbmQYByABKAkSDgoGc0luZGV4GAggASgJEhQKDG5Ob3RpZnlDb3VudBgJIAEoBRIUCgxzTm90aWZ5VXNlcnMYCiABKAkSFgoOdU9wZXJhdGlvblR5cGUYCyABKA0SDwoHc0luY3JJZBgMIAEoAxITCgtwYXJlbnRNc2dJZBgNIAEoCRINCgVib3RJZBgOIAEoCRIOCgZpc0VkaXQYDyABKAUSEAoIb2xkTXNnSWQYECABKAkSEQoJZXZlbnRUeXBlGBEgASgFIm8KElB1bGxDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEjQKBmxzUHVsbBgCIAMoCzIkLmltLmNoYW5uZWwucHVsbC5QdWxsQ2hubk1lc3NhZ2VJbmZvEhIKCmNsaWVudFR5cGUYAyABKA0icgoTUHVsbENobm5NZXNzYWdlSW5mbxIPCgdzQ2hubklkGAEgASgDEhIKCnNCYXNlSW5kZXgYAiABKAkSEgoKdURpcmVjdGlvbhgDIAEoDRIOCgZ1Q291bnQYBCABKA0SEgoKdUlzQ29udGFpbhgFIAEoDSJTChJQdWxsQ2hubk1lc3NhZ2VSc3ASDwoHZXJyY29kZRgBIAEoDRIsCglsc01lc3NhZ2UYAiADKAsyGS5pbS5jaGFubmVsLnB1bGwuQ2hubkNoYXQiVgoSVXBkYXRlUmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvIjAKDVJlYWRJbmRleEluZm8SDwoHc0Nobm5JZBgBIAEoAxIOCgZzSW5kZXgYAiABKAkiJQoSVXBkYXRlUmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0iNAoPR2V0UmVhZEluZGV4UmVxEg8KB3NVc2VySWQYASABKAMSEAoIbHNDaG5uSWQYAiADKAMiUwoPR2V0UmVhZEluZGV4UnNwEg8KB2VycmNvZGUYASABKA0SLwoHbHNJbmRleBgCIAMoCzIeLmltLmNoYW5uZWwucHVsbC5SZWFkSW5kZXhJbmZvInEKG1B1bGxTcGVjaWZpZWRDaG5uTWVzc2FnZVJlcRIPCgdzVXNlcklkGAEgASgDEkEKDmxzU3BlY2lmaWVkTXNnGAIgAygLMikuaW0uY2hhbm5lbC5wdWxsLlB1bGxTcGVjaWZpZWRNZXNzYWdlSW5mbyJEChhQdWxsU3BlY2lmaWVkTWVzc2FnZUluZm8SDwoHc0Nobm5JZBgBIAEoAxIXCg9zU3BlY2lmaWVkSW5kZXgYAiABKAkiXAobUHVsbFNwZWNpZmllZENobm5NZXNzYWdlUnNwEg8KB2VycmNvZGUYASABKA0SLAoJbHNNZXNzYWdlGAIgAygLMhkuaW0uY2hhbm5lbC5wdWxsLkNobm5DaGF0IlsKElB1bGxDaG5uTXNnQnlJZFJlcRIPCgdzVXNlcklkGAEgASgDEg8KB3NDaG5uSWQYAiABKAMSDwoHbHNNc2dJZBgDIAMoCRISCgpjbGllbnRUeXBlGAQgASgNImsKElB1bGxDaG5uTXNnQnlJZFJzcBIPCgdlcnJjb2RlGAEgASgNEiwKCWxzTWVzc2FnZRgCIAMoCzIZLmltLmNoYW5uZWwucHVsbC5DaG5uQ2hhdBIWCg5sc01pc3NpbmdNc2dJZBgDIAMoCSJiChNQdWxsT25lQ2hubkF0TXNnUmVxEg8KB3NVc2VySWQYASABKAMSOgoPbHNDaG5uQXRNc2dJbmZvGAIgAygLMiEuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ0luZm8iNQoQT25lQ2hubkF0TXNnSW5mbxIPCgdzQ2hubklkGAEgASgDEhAKCHNBdEluZGV4GAIgASgJImMKE1B1bGxPbmVDaG5uQXRNc2dSc3ASDwoHZXJyY29kZRgBIAEoDRI7Cg1sc0F0SW5kZXhMaXN0GAIgAygLMiQuaW0uY2hhbm5lbC5wdWxsLk9uZUNobm5BdE1zZ1JldERhdGEiOQoTT25lQ2hubkF0TXNnUmV0RGF0YRIPCgdzQ2hubklkGAEgASgDEhEKCWxzQXRJbmRleBgCIAMoCWIGcHJvdG8z"),Ql=messageDesc(tn,0);var Wl=messageDesc(tn,2);var Hl=messageDesc(tn,5);var Jl=messageDesc(tn,7),Yl=messageDesc(tn,8);var Xl=messageDesc(tn,10);messageDesc(tn,11);messageDesc(tn,12);messageDesc(tn,13);messageDesc(tn,15);var eu=messageDesc(tn,16),nu=messageDesc(tn,17);messageDesc(tn,18);messageDesc(tn,20);var fn=fileDesc("Cgtncm91cC5wcm90bxIVZ28ubWljcm8uc3J2Lmdyb3Vwc3J2InYKDkdldEdyb3VwTXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCG1zZ0luZGV4GAMgASgJEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgJIlUKD0dldEdyb3VwTXNnUmVzcBIMCgRjb2RlGAEgASgFEjQKBGRhdGEYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIjUKEkdyb3VwUmVhZEFsbE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDwoHZ3JvdXBJZBgCIAEoAyIjChNHcm91cFJlYWRBbGxNc2dSZXNwEgwKBGNvZGUYASABKAUiSgoWT2ZmbGluZUdyb3VwU2Vzc2lvblJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoCRIMCgRzaXplGAMgASgDImgKF09mZmxpbmVHcm91cFNlc3Npb25SZXNwEgwKBGNvZGUYASABKAUSPwoLc2Vzc2lvbkxpc3QYAiADKAsyKi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwU2Vzc2lvbiJ0ChNPZmZsaW5lR3JvdXBTZXNzaW9uEg8KB2dyb3VwSWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKAMSNwoHbXNnTGlzdBgDIAMoCzImLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lR3JvdXBNc2ciOQoTTWFya0dyb3VwUmVhZE1zZ1JlcRIOCgZ1c2VySWQYASABKAMSEgoKcmVhZE1zZ0lkcxgCIAMoCSIkChRNYXJrR3JvdXBSZWFkTXNnUmVzcBIMCgRjb2RlGAEgASgFIj8KC0dyb3VwTXNnUmVxEg8KB2NvbW1hbmQYASABKA0SEgoKY2xpZW50VHlwZRgCIAEoDRILCgNtc2cYAyABKAwiPAoMR3JvdXBNc2dSZXNwEg8KB2NvbW1hbmQYASABKA0SDgoGdXNlcklkGAIgASgDEgsKA21zZxgDIAEoDCJvChJPZmZsaW5lR3JvdXBNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEhcKD2RlbGl2ZXJlZE1zZ0lkcxgDIAMoCRINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNIm0KE09mZmxpbmVHcm91cE1zZ1Jlc3ASDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEjcKB21zZ0xpc3QYAyADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnIswBCg9PZmZsaW5lR3JvdXBNc2cSDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSEAoIc0dyb3VwSWQYBSABKAMSDwoHbXNnVGltZRgGIAEoBBIQCghpc0NhbmNlbBgHIAEoDRITCgtwYXJlbnRNc2dJZBgIIAEoCRIOCgZpc1JlYWQYCSABKA0SDQoFYm90SWQYCiABKAkSDgoGaXNFZGl0GAsgASgNInUKGE9mZmxpbmVFeGNoYW5nZUtleU1zZ1JlcRIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSFwoPZGVsaXZlcmVkTXNnSWRzGAMgAygJEg0KBWxpbWl0GAQgASgFEhIKCmNsaWVudFR5cGUYBSABKA0ieQoZT2ZmbGluZUV4Y2hhbmdlS2V5TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSPQoHbXNnTGlzdBgDIAMoCzIsLmdvLm1pY3JvLnNydi5ncm91cHNydi5PZmZsaW5lRXhjaGFuZ2VLZXlNc2cifAoVT2ZmbGluZUV4Y2hhbmdlS2V5TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEhAKCHNHcm91cElkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQifQoVR2V0R3JvdXBIaXN0b3J5TXNnUmVxEg4KBnVzZXJJZBgBIAEoAxIPCgdncm91cElkGAIgASgDEhAKCGJhc2VUaW1lGAMgASgDEg4KBmRpcmVjdBgEIAEoBRINCgVsaW1pdBgFIAEoBRISCgpjbGllbnRUeXBlGAYgASgNIl8KFkdldEdyb3VwSGlzdG9yeU1zZ1Jlc3ASDAoEY29kZRgBIAEoBRI3Cgdtc2dMaXN0GAIgAygLMiYuZ28ubWljcm8uc3J2Lmdyb3Vwc3J2Lk9mZmxpbmVHcm91cE1zZyJZChJHZXRHcm91cE1zZ0J5SWRSZXESDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDgoGbXNnSWRzGAMgAygJEhIKCmNsaWVudFR5cGUYBCABKA0icwoTR2V0R3JvdXBNc2dCeUlkUmVzcBIMCgRjb2RlGAEgASgFEjcKB21zZ0xpc3QYAiADKAsyJi5nby5taWNyby5zcnYuZ3JvdXBzcnYuT2ZmbGluZUdyb3VwTXNnEhUKDW1pc3NpbmdNc2dJZHMYAyADKAlCIgoTY29tLm1vc2FudC5pbS5wcm90b1oLLi4vZ3JvdXBzcnZiBnByb3RvMw");messageDesc(fn,0);messageDesc(fn,1);var su=messageDesc(fn,2),au=messageDesc(fn,3),du=messageDesc(fn,4),cu=messageDesc(fn,5);var lu=messageDesc(fn,11),uu=messageDesc(fn,12);var gu=messageDesc(fn,17),mu=messageDesc(fn,18),pu=messageDesc(fn,19),fu=messageDesc(fn,20);var Iu=fileDesc("ChBpbS5hcHAubXNnLnByb3RvEhNjb20ubW9zYW50LmltLnByb3RvIi0KBEJLZXkSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwiMQoIQkNvbnRlbnQSEQoJc2VjcmV0S2V5GAEgASgMEhIKCmNpcGhlckRhdGEYAiABKAwi4hAKCEJNZXNzYWdlEhMKC2NvbnRlbnRUeXBlGAEgASgNEg8KB2NvbnRlbnQYAiABKAkSEAoIZHVyYXRpb24YAyABKA0SEAoIdGh1bWJVcmwYBCABKAkSEAoIZGVzY3JpYmUYBSABKAkSCwoDbG9uGAYgASgJEgsKA2xhdBgHIAEoCRIQCghleHByVHlwZRgIIAEoDRISCgpmaWxlTGVuZ3RoGAkgASgEEgsKA01ENRgKIAEoCRIRCgljb250ZW50SWQYCyABKAkSGAoQZXhwcmVQYWNrYWdlTmFtZRgMIAEoCRILCgN1cmwYDSABKAkSCgoCaWQYDiABKAkSDAoEaWNvbhgPIAEoCRIMCgRuYW1lGBAgASgJEhAKCHVzZXJuYW1lGBEgASgJEg4KBmdlbmRlchgSIAEoDRIUCgx2aXNpdENhcmRLZXkYEyABKA0SEQoJbG9naWNUeXBlGBQgASgNEg0KBXdpZHRoGBUgASgNEg4KBmhlaWdodBgWIAEoDRIOCgZ0ZWFLZXkYFyABKAwSFwoPZmlsZUVuY3J5cHRUeXBlGBggASgNEhEKCXRodW1iRGF0YRgZIAEoDBIRCglpbWFnZVR5cGUYGiABKA0SEAoIZmlsZVR5cGUYGyABKA0SEQoJZXh0ZW5zaW9uGBwgASgJEg0KBWZpZWxkGB0gASgJEgwKBHR5cGUYHiABKA0SEAoIZmllbE5hbWUYHyABKAkSEQoJb3ByVXNlcklkGCAgASgDEhQKDG1ucGxlZFVzZXJJZBghIAMoAxIPCgdmcm9tVWlkGCIgASgEEg0KBXRvVWlkGCMgASgEEhIKCnRvVXNlck5hbWUYJCABKAkSDgoGYW1vdW50GCUgASgEEhQKDGN1cnJlbmN5VHlwZRgmIAEoDRIOCgZzdGF0dXMYJyABKA0SFAoMc2VyaWFsTnVtYmVyGCggASgEEg4KBnJlbWFyaxgpIAEoCRITCgtzZXNzaW9uVHlwZRgqIAEoDRIUCgx0cmFuc2ZlclRpbWUYKyABKAQSEwoLcmVjZWl2ZVRpbWUYLCABKAQSEgoKcmV0dXJuVGltZRgtIAEoBBIOCgZpc1JlYWQYLiABKA0SDQoFbXNnSWQYLyABKAkSFAoMZnJvbVVzZXJOYW1lGDAgASgJEhAKCGNvaW5OYW1lGDEgASgJEhAKCGNvaW5JY29uGDIgASgJEhAKCGdpZnRUeXBlGDMgASgNEg8KB2V4cGxhaW4YNCABKAkSDQoFc3RhdGUYNSABKA0SFAoMaW5pdGlhdGVUaW1lGDYgASgEEhAKCGdpZnRJY29uGDcgASgJEhAKCGdpZnROYW1lGDggASgJEhUKDWZpc3Npb25OdW1iZXIYOSABKAQSEAoIYmVuQ291bnQYOiABKAQSEgoKemhhbmdDb3VudBg7IAEoBBIOCgZpc0VkaXQYPCABKA0SFwoPbWluaVByb2dyYW1Ib3N0GD0gASgJEh4KFm1pbmlQcm9ncmFtRGV2ZWxvcGVySWQYPiABKAkSGAoQbWluaVByb2dyYW1BcHBJZBg/IAEoCRIXCg9taW5pUHJvZ3JhbU5hbWUYQCABKAkSFwoPbWluaVByb2dyYW1JY29uGEEgASgJEhwKFG1pbmlQcm9ncmFtUHJvZHVjdElkGEIgASgJEiAKGG1pbmlQcm9ncmFtSXNEeW5hbWljSG9zdBhDIAEoDRIUCgxzaG9ydFZpZGVvSWQYRCABKAkSGgoSc2hvcnRWaWRlb0NvdmVyVXJsGEUgASgJEh0KFXNob3J0VmlkZW9EZXNjcmlwdGlvbhhGIAEoCRIaChJzaG9ydFZpZGVvQXV0aG9ySWQYRyABKAkSFQoNcmFkX3BhY2tldF9pZBhIIAEoCRIZChFyYWRfcGFja2V0X2Ftb3VudBhJIAEoCRIXCg9yYWRfcGFja2V0X3R5cGUYSiABKAUSGAoQcmVkX3BhY2tldF9jb3VudBhLIAEoAxIhChlyZWRfcGFja2V0X2lzX3Nob3dfYW1vdW50GEwgASgIEh8KF3JlZF9wYWNrZXRfdGh1bmRlcl9yYXRlGE0gASgJEh0KFXJlZF9wYWNrZXRfaXNfdGh1bmRlchhOIAEoCBIhChlyZWRfcGFja2V0X3RodW5kZXJfbnVtYmVyGE8gASgDEiAKGG1pbmlQcm9ncmFtU3VmZml4QWRkcmVzcxhQIAEoCRIbChNtaW5pUHJvZ3JhbVNob3dUeXBlGFEgASgNEh4KFm1pbmlQcm9ncmFtRGVzY3JpcHRpb24YUiABKAkSGwoTc3lzX21lc3NhZ2VfY29udGVudBhTIAEoCRIaChJzeXNfbWVzc2FnZV9pbWFnZXMYVCADKAkSGQoRc3lzX21lc3NhZ2VfZmlsZXMYVSADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9uYW1lX2xpc3QYViADKAkSIgoac3lzX21lc3NhZ2VfZmlsZV9zaXplX2xpc3QYVyADKAkSEQoJZ2FtZVZhbHVlGFggASgEEhAKCGdhbWVUeXBlGFkgASgEEhYKDmN1cnJlbmN5U291cmNlGFogASgJEh8KF21pbmlQcm9ncmFtQ3VycmVuY3lUeXBlGFsgASgJEhsKE21pbmlQcm9ncmFtR2FtZVBhdGgYXCABKAkSHgoWbWluaVByb2dyYW1TdWJHYW1lTmFtZRhdIAEoCRIhChltaW5pUHJvZ3JhbUdhbWVQcmV2aWV3VXJsGF4gASgJEiMKG21pbmlQcm9ncmFtR2FtZVByZXZpZXdXaWR0aBhfIAEoDRIkChxtaW5pUHJvZ3JhbUdhbWVQcmV2aWV3SGVpZ2h0GGAgASgNYgZwcm90bzM");var Cu=messageDesc(Iu,1),Su=messageDesc(Iu,2);var Zn=fileDesc("ChBpbS5jaGFubmVsLnByb3RvEgppbS5hcHAucHRsIqECCglSYWRpb0NoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIPCgdlbmNyeXB0GAUgASgNEhAKCHNDb250ZW50GAYgASgMEg4KBmV4dGVuZBgHIAEoCRILCgNzSWQYCCABKAkSDQoFc1RvSWQYCSABKAMSFAoMbk5vdGlmeUNvdW50GAogASgFEhQKDHNOb3RpZnlVc2VycxgLIAMoAxIPCgduSW5jcklkGAwgASgEEhMKC3BhcmVudE1zZ0lkGA0gASgJEg0KBWJvdElkGA4gASgJEg4KBmlzRWRpdBgPIAEoCRIQCghvbGRNc2dJZBgQIAEoCSKZAQoMUmFkaW9DaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzSW5kZXgYBiABKAkSDwoHbkluY3JJZBgHIAEoBCJaChVSYWRpb0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDgoGc0luZGV4GAQgASgJIoQBCg9SYWRpb0NhbmNlbENoYXQSDwoHc0Zyb21JZBgBIAEoAxIQCghzUmFkaW9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZleHRlbmQYBSABKAkSDQoFc1RvSWQYBiABKAkSDgoGc0luZGV4GAcgASgJIpUBCglSYWRpb0pvaW4SDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIQCghzUmFkaW9JZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIOCgZleHRlbmQYBiABKAkSFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDQoFc0Rlc2MYCCABKAkiQQoMUmFkaW9Kb2luQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc1JhZGlvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJIlEKFk1FU1JhZGlvU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEhUKDWxhc3RSZWFkSW5kZXgYAyABKAkiZQoSTUVTUmFkaW9FZGl0TXNnQzJDEg4KBnVzZXJJZBgBIAEoAxIPCgdyYWRpb0lkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwSDgoGSW5jcklkGAUgASgEQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[mn]),rt=messageDesc(Zn,0),ft=messageDesc(Zn,1),Ot=messageDesc(Zn,2),Kt=messageDesc(Zn,3),Ga=messageDesc(Zn,4),Ua=messageDesc(Zn,5),ka=messageDesc(Zn,6),Au=messageDesc(Zn,7);var on=fileDesc("Cg5pbS5ncm91cC5wcm90bxIKaW0uYXBwLnB0bCKJAgoKTUVTR3JwQ2hhdBIOCgZzR3JwSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIUCgxuTm90aWZ5Q291bnQYAyABKA0SFAoMc05vdGlmeVVzZXJzGAQgAygDEg4KBnNNc2dJZBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg8KB2VuY3J5cHQYByABKA0SEAoIc0NvbnRlbnQYCCABKAwSDgoGZXh0ZW5kGAkgASgJEg8KB21zZ1R5cGUYCiABKA0SDQoFc1RvSWQYCyABKAMSFgoOZW5jcnlwdFZlcnNpb24YDCABKAkSEwoLcGFyZW50TXNnSWQYDSABKAkSDQoFYm90SWQYDiABKAkieQoMR3JvdXBDaGF0QWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhAKCHNlbmR0aW1lGAQgASgEEiQKB2VycmNvZGUYBSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUibwoWTUVTR3JwQ2hhdERlbGl2ZXJlZEFjaxIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJmCg1NRVNKb2luR3JwQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlImoKEU1FU0V4Y2hhbmdlS2V5QWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIkCgdlcnJjb2RlGAQgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkcKFE1FU0pvaW5HcnBEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJJChZNRVNHcnBOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc0dycElkGAIgASgDEg4KBnNNc2dJZBgDIAEoCSJBCh5NRVNFeGNoYW5nZUtleURlbGl2ZXJOb3RpZnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkiaQoPR3JvdXBDaGF0Q2FuY2VsEhAKCHNHcm91cElkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKY2FuY2VsVGltZRgFIAEoBCKBAQoSR3JvdXBDaGF0Q2FuY2VsQWNrEg8KB3NGcm9tSWQYASABKAMSEAoIc0dyb3VwSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEhIKCmNhbmNlbFRpbWUYBCABKAQSJAoHZXJyY29kZRgFIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSK2AQoKTUVTSm9pbkdycBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHcmVxVHlwZRgFIAEoDRIWCg5zU2VsZkludHJvZHVjZRgGIAEoCRINCgVzRGVzYxgHIAEoCRIPCgdtc2dUaW1lGAggASgEEg8KB3NPcGVySWQYCSABKAkSDgoGZXh0ZW5kGAogASgJIu0BCgxNRVNHcnBOb3RpZnkSDgoGc0dycElkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEhIKCnNPcHJVc2VySWQYBSABKAMSFQoNc01ucGxlZFVzZXJJZBgGIAMoAxIQCghzQ29udGVudBgHIAEoCRIqCgpub3RpZnlUeXBlGAggASgOMhYuaW0uYXBwLnB0bC5Ob3RpZnlUeXBlEiQKB2VycmNvZGUYCSABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDgoGZXh0ZW5kGAogASgJIrYBCg5NRVNFeGNoYW5nZUtleRIPCgdzRnJvbUlkGAEgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSDwoHZW5jcnlwdBgFIAEoDRIUCgxleGNoYW5nZU1vZGUYBiABKA0SEgoKc09wclVzZXJJZBgHIAEoCRIPCgdtc2dUaW1lGAggASgEEicKCmxzVXNlcktleXMYDCADKAsyEy5pbS5hcHAucHRsLlVzZXJLZXkiKAoHVXNlcktleRIPCgdzVXNlcklkGAEgASgDEgwKBHNLZXkYAiABKAwiwQEKFU1FU0V4Y2hhbmdlS2V5RGVsaXZlchIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNHcnBJZBgDIAEoAxIOCgZzTXNnSWQYBCABKAkSFAoMZXhjaGFuZ2VNb2RlGAUgASgNEgwKBHNLZXkYBiABKAwSDwoHZW5jcnlwdBgHIAEoDRISCgpzT3ByVXNlcklkGAggASgJEg8KB21zZ1RpbWUYCSABKAQSDgoGZXh0ZW5kGAogASgJIsgBChhNRVNFeGNoYW5nZUtleURlbGl2ZXJBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzR3JwSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJEgwKBHNLZXkYBSABKAwSDwoHZW5jcnlwdBgGIAEoDRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB21zZ1RpbWUYCCABKAQSFgoOZW5jcnlwdFZlcnNpb24YCSABKAkiTQoWTUVTR3JvdXBTeW5jUmVhZE1zZ0MyQxIPCgdzVXNlcklkGAEgASgDEhEKCW1zZ0lkTGlzdBgCIAMoCRIPCgdncm91cElkGAMgASgDIlAKDU1lc0dycE1zZ0VkaXQSDgoGdXNlcklkGAEgASgDEg8KB2dyb3VwSWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHY29udGVudBgEIAEoDCqOAwoKTm90aWZ5VHlwZRIXChNOT1RJRllfVFlQRV9VTktOT1dOEAASIAocTk9USUZZX1RZUEVfR1JQX0lORk9fQ0hBTkdFRBABEhsKF05PVElGWV9UWVBFX0dSUE1FTV9RVUlUEAISHQoZTk9USUZZX1RZUEVfR1JQTUVNX1JFTU9WRRADEh8KG05PVElGWV9UWVBFX0dSUEFQUExZX1JFU1VMVBAEEiAKHE5PVElGWV9UWVBFX0dSUElOVklURV9SRVNVTFQQBRIhCh1OT1RJRllfVFlQRV9HUlBNQVNURVJfQ0hBTkdFRBAGEhoKFk5PVElGWV9UWVBFX0dSUF9BQ1RJVkUQBxIjCh9OT1RJRllfVFlQRV9NRU1CRVJfTkFNRV9DSEFOR0VEEAoSGwoXTk9USUZZX1RZUEVfR1JQX0RJU01JU1MQCxIeChpOT1RJRllfVFlQRV9HUlBfTVNHX1BJTk5FRBAMEiUKIU5PVElGWV9UWVBFX0dSUF9NU0dfQ0FOQ0VMX1BJTk5FRBANQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[mn]),Lt=messageDesc(on,0),bo=messageDesc(on,1),hu=messageDesc(on,2);var Ru=messageDesc(on,5),Mu=messageDesc(on,6),Eu=messageDesc(on,7),Tu=messageDesc(on,8),vu=messageDesc(on,9),bu=messageDesc(on,10),Nu=messageDesc(on,11);var _u=messageDesc(on,14),xa=messageDesc(on,15),Ba=messageDesc(on,16),Du=messageDesc(on,17);var Qt=fileDesc("Cg5pbS5sb2dpbi5wcm90bxIKaW0uYXBwLnB0bCLnAQoHQ01Mb2dpbhIPCgdzVXNlcklkGAEgASgDEhMKC3NMb2dpblRva2VuGAIgASgJEhQKDHNEZXZpY2VUb2tlbhgDIAEoCRIRCgluUHVzaFR5cGUYBCABKA0SEgoKc1B1c2hUb2tlbhgFIAEoCRIUCgxzVmVyc2lvbkNvZGUYBiABKAkSEgoKc0FwbnNUb2tlbhgHIAEoCRISCgpjbGllbnRUeXBlGAggASgNEhMKC2NoYW5uZWxUeXBlGAkgASgNEhIKCmRldmljZUluZm8YCiABKAkSEgoKZGV2aWNlTmFtZRgLIAEoCSJYCgpDTUxvZ2luQWNrEg8KB3NVc2VySWQYASABKAMSIQoEbkVychgCIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIWCg5uTGFzdExvZ2luVGltZRgDIAEoBCJCChVDTUtpY2tvdXROb3RpZmljYXRpb24SDwoHc1VzZXJJZBgBIAEoAxIKCgJpcBgCIAEoCRIMCgRwb3J0GAMgASgNImEKD0NNUHVzaFRva2VuU3luYxIPCgdzVXNlcklkGAEgASgDEhEKCW5QdXNoVHlwZRgCIAEoDRISCgpzUHVzaFRva2VuGAMgASgJEhYKDm5QdXNoVG9rZW5UeXBlGAQgASgNIkkKE0NDTVB1c2hUb2tlblN5bmNBY2sSDwoHc1VzZXJJZBgBIAEoAxIhCgRuRXJyGAIgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjAKCENNTG9nb3V0Eg8KB3NVc2VySWQYASABKAMSEwoLbkRldmljZVR5cGUYAiABKA0iQQoLQ01Mb2dvdXRBY2sSIQoEbkVychgBIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdzVXNlcklkGAIgASgDIowBChNDTVN5bmNBcHBQcml2YXRlS2V5Eg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1R5cGUYBCABKA0SDwoHY29udGVudBgFIAEoDBIPCgdtc2dUaW1lGAYgASgEEhIKCmNsaWVudFR5cGUYByABKA0iSwoTQ21TeW5jUHJpdmF0ZUtleUFjaxIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKA0SDwoHY29udGVudBgDIAEoDCJMChFLaWNrVXNlckRldmljZVJlcRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRITCgtkZXZpY2VUb2tlbhgDIAEoCSIiChJLaWNrVXNlckRldmljZVJlc3ASDAoEY29kZRgBIAEoBSIsChpHZXRVc2VyT25saW5lRGV2aWNlTGlzdFJlcRIOCgZ1c2VySWQYASABKAMiUgobR2V0VXNlck9ubGluZURldmljZUxpc3RSZXNwEgwKBGNvZGUYASABKAUSJQoFaW5mb3MYAiADKAsyFi5pbS5hcHAucHRsLkRldmljZUluZm8imAEKCkRldmljZUluZm8SDgoGdXNlcklkGAEgASgDEhMKC2RldmljZVRva2VuGAIgASgJEhIKCmRldmljZU5hbWUYAyABKAkSFQoNbGFzdExvZ2luVGltZRgFIAEoAxISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmNsaWVudFR5cGUYByABKAUSEgoKYXBwVmVyc2lvbhgIIAEoCSKgAQocVXNlckRldmljZU9ubGluZVN0YXR1c05vdGlmeRIOCgZ1c2VySWQYASABKAMSEgoKY2xpZW50VHlwZRgCIAEoDRIOCgZzdGF0dXMYAyABKA0SEwoLZGV2aWNlVG9rZW4YBCABKAkSDwoHY29tbWFuZBgFIAEoDRISCgpkZXZpY2VJbmZvGAYgASgJEhIKCmRldmljZU5hbWUYByABKAlCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[mn]),Gu=messageDesc(Qt,0),Uu=messageDesc(Qt,1),ku=messageDesc(Qt,2),xu=messageDesc(Qt,3),Bu=messageDesc(Qt,4);var Be=fileDesc("CgxpbS5tc2cucHJvdG8SCmltLmFwcC5wdGwiuwEKB01FU0NoYXQSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVHlwZRgEIAEoDRIPCgdtc2dUaW1lGAUgASgEEg8KB2VuY3J5cHQYBiABKA0SEAoIc0NvbnRlbnQYByABKAwSDgoGZXh0ZW5kGAogASgJEhYKDmVuY3J5cHRWZXJzaW9uGAsgASgJEhMKC3BhcmVudE1zZ0lkGAwgASgJImUKCk1FU0NoYXRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSEAoIc2VuZHRpbWUYAyABKAQSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSIzChJNRVNSZWFjdGlvbkNvbnRlbnQSDQoFZW1vamkYASABKAkSDgoGYWN0aW9uGAIgASgNIlYKE01FU0NoYXREZWxpdmVyZWRBY2sSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCJCCh9NRVNDaGF0RGVsaXZlcmVkTm90aWZpY2F0aW9uQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKFk1FU0NoYXREZWxpdmVyZWROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEQoJc05vdGlmeUlkGAQgASgJIkUKDU1zZ1JlYWRSZXN1bHQSDgoGc01zZ0lkGAEgASgJEiQKB2VycmNvZGUYAiABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUihQEKC01FU0NoYXRSZWFkEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEi4KC3JlYWRSZXN1bHRzGAQgAygLMhkuaW0uYXBwLnB0bC5Nc2dSZWFkUmVzdWx0EhYKDnJlYWRSZWNlaXB0T2ZmGAUgASgNIiMKDE1FU1JlZmVyZW5jZRITCgtwYXJlbnRNc2dJZBgBIAEoCSJXCg5NRVNDaGF0UmVhZEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIjkKFk1FU0NoYXRSZWFkRGVsaXZlcmVBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkingEKDU1FU0NoYXRDYW5jZWwSDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxITCgtuQ2FuY2VsVHlwZRgDIAEoDRIQCghzR3JvdXBJZBgEIAEoAxIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBISCgpjYW5jZWxUaW1lGAcgASgEEhEKCXNlbmRTdGF0ZRgIIAEoDSJZChBNRVNDaGF0Q2FuY2VsQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUivAEKDE1FU0FkZEZyaWVuZBIPCgdzRnJvbUlkGAEgASgDEg0KBXNUb0lkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRINCgVzRGVzYxgEIAEoCRIRCglzTWVtb05hbWUYBSABKAkSEAoIcGFja2V0SWQYBiABKA0SFgoOc1NlbGZJbnRyb2R1Y2UYByABKAkSDwoHbXNnVGltZRgIIAEoBBIPCgdzT3BlcklkGAkgASgJEg4KBmV4dGVuZBgKIAEoCSJYCg9NRVNBZGRGcmllbmRBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI5ChZNRVNBZGRGcmllbmREZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIrsBCg9NRVNBZGRGcmllbmRBbnMSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDAoEc0FucxgEIAEoCRIkCgdlcnJjb2RlGAUgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEhEKCXNNZW1vTmFtZRgGIAEoCRIQCghwYWNrZXRJZBgHIAEoDRIPCgdtc2dUaW1lGAggASgEEg4KBmV4dGVuZBgJIAEoCSI8ChlNRVNBZGRGcmllbmRBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIlsKEk1FU0FkZEZyaWVuZEFuc0FjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIlkKFU1FU0RlbGV0ZUZyaWVuZE5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBCI5ChhNRVNEZWxldGVGcmllbmROb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJInIKHk1FU0ZyaWVuZEJsYWNrTGlzdENoYW5nZU5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIOCgZzdGF0dXMYBSABKA0iQgohTUVTRnJpZW5kQmxhY2tMaXN0Q2hhbmdlTm90aWZ5QWNrEg4KBnVzZXJJZBgBIAEoAxINCgVtc2dJZBgCIAEoCSJXChdNRVNVc2VySW5mb01vZGlmeU5vdGlmeRIOCgZ1c2VySWQYASABKAMSDAoEdG9JZBgCIAEoAxIPCgdjb250ZW50GAMgASgJEg0KBW1zZ0lkGAQgASgJIkIKIU1FU1VzZXJJbmZvTW9kaWZ5Tm90aWZ5RGVsaXZlckFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkipgEKD01TR0NvbW1vbk5vdGlmeRIPCgdzRnJvbUlkGAEgASgDEg4KBnNUb0lkcxgCIAMoAxIOCgZzTXNnSWQYAyABKAkSMAoKbm90aWZ5VHlwZRgEIAEoDjIcLmltLmFwcC5wdGwuQ29tbW9uTm90aWZ5VHlwZRIQCghzQ29udGVudBgFIAEoCRIPCgdtc2dUaW1lGAYgASgEEg0KBXNUb0lkGAcgASgDIqYBCg9Nc2dXYWxsZXROb3RpZnkSDwoHc0Zyb21JZBgBIAEoAxIOCgZzVG9JZHMYAiADKAMSDgoGc01zZ0lkGAMgASgJEjAKCm5vdGlmeVR5cGUYBCABKA4yHC5pbS5hcHAucHRsLldhbGxldE5vdGlmeVR5cGUSEAoIc0NvbnRlbnQYBSABKAwSDwoHbXNnVGltZRgGIAEoBBINCgVzVG9JZBgHIAEoAyKTAQoJQzJDTm90aWZ5EhMKC25vdGlmeUV2ZW50GAEgASgDEhIKCnNlbGxlck5pY2sYAiABKAkSEQoJYnV5ZXJOaWNrGAMgASgJEg8KB09yZGVyTm8YBCABKAkSFAoMb2NjdXJyZWRUaW1lGAUgASgDEhEKCXNlbGxlclVpZBgGIAEoAxIQCghidXllclVpZBgHIAEoAyLVAQoKQmFua05vdGlmeRIOCgZ1c2VySWQYASABKAMSDwoHb3JkZXJObxgCIAEoCRIVCg1jaGFpbkNvaW5LaW5kGAMgASgFEg4KBmFtb3VudBgEIAEoCRIXCg9jb2xsYXRlcmFsUmF0aW8YBSABKAkSEQoJcHJpbmNpcGFsGAYgASgJEhAKCGludGVyZXN0GAcgASgJEhMKC25vdGlmeUV2ZW50GAggASgFEhUKDWNoYWluQ29pbk5hbWUYCSABKAkSFQoNZmluYW5jaWFsS2luZBgKIAEoBSI8ChlNc2dXYWxsZXROb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAMgASgJIp8BChBXaXRoZHJhd2FsTm90aWZ5EhMKC29yZGVyTnVtYmVyGAEgASgDEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSDgoGc3RhdHVzGAQgASgFEhQKDG9jY3VycmVkVGltZRgFIAEoAxIUCgxzZXJpYWxOdW1iZXIYBiABKAkSFAoMY3VycmVuY3lOYW1lGAcgASgJIpwBChxUcmFuc2ZlclJlY2VpdmVTdWNjZXNzTm90aWZ5EhQKDHNlcmlhbE51bWJlchgBIAEoCRIUCgxjdXJyZW5jeVR5cGUYAiABKAUSDgoGYW1vdW50GAMgASgDEhQKDGZyb21Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIosBChRSZWNoYXJnZUZpbmlzaE5vdGlmeRIUCgxjdXJyZW5jeVR5cGUYASABKAUSDgoGYW1vdW50GAIgASgDEhIKCmZpbmlzaFRpbWUYAyABKAMSDgoGc3RhdHVzGAQgASgFEhMKC29yZGVyTnVtYmVyGAUgASgDEhQKDGN1cnJlbmN5TmFtZRgGIAEoCSKSAQoUVHJhbnNmZXJSZXR1cm5Ob3RpZnkSFAoMc2VyaWFsTnVtYmVyGAEgASgJEhQKDGN1cnJlbmN5VHlwZRgCIAEoBRIOCgZhbW91bnQYAyABKAMSEgoKdG9Vc2VyTmFtZRgEIAEoCRIUCgxvY2N1cnJlZFRpbWUYBSABKAMSFAoMY3VycmVuY3lOYW1lGAYgASgJIlsKEk1TR0NvbW1vbk5vdGlmeUFDSxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIkAKDFNldFVucmVhZE1zZxILCgN1aWQYASABKAMSEwoLdW5yZWFkQ291bnQYAiABKA0SDgoGc01zZ0lkGAMgASgJIlQKD1NldFVucmVhZE1zZ0FjaxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg4KBnNNc2dJZBgCIAEoCRILCgN1aWQYAyABKAMisgEKDE9mZmxpbmVUb3RhbBINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEhMKC3VucmVhZFRvdGFsGAQgASgFEhcKD3VucmVhZENoYXRDb3VudBgFIAEoBRIWCg5zUmVjZW50Y29udGVudBgGIAEoDBIXCg9yZWNlbnR0aW1lc3RhbXAYByABKAQSFAoMc1JlY2VudE1zZ0lkGAggASgJIiQKEU1FU09mZmxpbmVTdW1tYXJ5Eg8KB3NVc2VySWQYASABKAkifgoUTUVTT2ZmbGluZVN1bW1hcnlBY2sSDwoHc1VzZXJJZBgBIAEoAxIvCg1vZmZsaW5lVG90YWxzGAIgAygLMhguaW0uYXBwLnB0bC5PZmZsaW5lVG90YWwSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJACg9NRVNPZmZsaW5lVG90YWwSDQoFY21kSWQYASABKA0SDwoHc0Zyb21JZBgCIAEoAxINCgVzVG9JZBgDIAEoAyKOAQoNTUVTT2ZmbGluZU1zZxINCgVjbWRJZBgBIAEoDRIPCgdzRnJvbUlkGAIgASgDEg0KBXNUb0lkGAMgASgDEg0KBWNvdW50GAQgASgFEg4KBnNNc2dJZBgFIAEoCRIvCgZsc01zZ3MYBiADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2cidwoOT2ZmbGluZU1zZ0RhdGESDQoFY21kSWQYASABKA0SEAoIc01zZ0RhdGEYAiABKAwSDgoGc01zZ0lkGAMgASgJEg8KB3NGcm9tSWQYBCABKAMSDgoGc3RhdHVzGAUgASgNEhMKC3VDcmVhdGVUaW1lGAYgASgEIrgBChBNRVNPZmZsaW5lTXNnQWNrEg8KB3NGcm9tSWQYASABKAMSDQoFc1RvSWQYAiABKAMSJAoHZXJyY29kZRgEIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBBIrCgdtc2dsaXN0GA0gAygLMhouaW0uYXBwLnB0bC5PZmZsaW5lTXNnRGF0YRIQCghtc2dUb3RhbBgOIAEoDSJUChNPZmZsaW5lRGVsaXZlcmVkTXNnEg0KBWNtZElkGAEgASgNEg8KB3NGcm9tSWQYAiABKAMSDQoFc1RvSWQYAyABKAMSDgoGc01zZ0lkGAQgASgJInkKFk1FU09mZmxpbmVNc2dEZWxpdmVyZWQSDwoHc0Zyb21JZBgBIAEoAxINCgVzVG9JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSLwoGbHNNc2dzGAQgAygLMh8uaW0uYXBwLnB0bC5PZmZsaW5lRGVsaXZlcmVkTXNnImMKGk1FU09mZmxpbmVNc2dEZWxpdmVyZWRkQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUicwofTUVTT2ZmbGluZU1zZ0RlbGl2ZXJlZE5vdGlmeUFjaxIOCgZzTXNnSWQYASABKAkSDwoHc0Zyb21JZBgCIAEoAxIvCgZsc01zZ3MYAyADKAsyHy5pbS5hcHAucHRsLk9mZmxpbmVEZWxpdmVyZWRNc2ciSAoRTUVTU3luY1JlYWRNc2dDMkMSDwoHc1VzZXJJZBgBIAEoAxIRCgltc2dJZExpc3QYAiADKAkSDwoHc0Zyb21JZBgDIAEoAyI8ChRNRVNTeW5jUmVhZE1zZ0MyQ0FDSxIkCgdlcnJjb2RlGAEgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIk4KEkFTS0xvZ2luQXV0aE5vdGlmeRIPCgdzVXNlcklkGAEgASgDEhIKCmNsaWVudFR5cGUYAiABKAUSEwoLZGV2aWNlVG9rZW4YAyABKAkipgEKFU1FU0ZyaWVuZEFjdGlvbk5vdGlmeRINCgV1ZXJJZBgBIAEoAxIQCghmcmllbmRJZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBITCgtibGFja1N0YXR1cxgFIAEoDRI2ChBmcmllbmROb3RpZnlUeXBlGAYgASgOMhwuaW0uYXBwLnB0bC5GcmllbmROb3RpZnlUeXBlIjkKGE1FU0ZyaWVuZEFjdGlvbk5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkibQoWTUVTVXNlclN3aXRjaFNldE5vdGlmeRIOCgZ1c2VySWQYASABKAMSEAoIU2V0RmlsZWQYAiABKAkSEAoIU2V0VmFsdWUYAyABKAkSDgoGc01zZ0lkGAQgASgJEg8KB21zZ1RpbWUYBSABKAQiOgoZTUVTVXNlclN3aXRjaFNldE5vdGlmeUFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkiMgogTUVTVXNlckZhdm9yaXRlTGlzdENoYW5nZWROb3RpZnkSDgoGdXNlcklkGAEgASgDIukBChRNRVNHaXZlTG90dGVyeU5vdGlmeRIPCgdldmVudElkGAEgASgJEg4KBnVzZXJJZBgCIAEoAxISCgpyZWNlaXZlcklkGAMgASgDEhAKCGdpdmVUeXBlGAQgASgFEhMKC29wZXJhdGlvbklkGAUgASgJEhMKC3NjcmF0Y2hOYW1lGAYgASgJEg0KBWNvZGVzGAcgAygJEg4KBmFtb3VudBgIIAEoARIOCgZyZW1hcmsYCSABKAkSFQoNc3lzX2dpdmVfdHlwZRgKIAEoBRILCgNudW0YCyABKAUSDQoFYXBwaWQYDCABKAkiOAoXTUVTR2l2ZUxvdHRlcnlOb3RpZnlBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIl0KFE1FU1JvYm90RGVsZXRlTm90aWZ5Eg8KB2V2ZW50SWQYASABKAkSDwoHcm9ib3RJZBgCIAEoCRISCgpyZWNlaXZlcklkGAMgASgDEg8KB21zZ1RpbWUYBCABKAMiTwoKTWVzTXNnRWRpdBIOCgZ1c2VySWQYASABKAMSEQoJcmVjZWl2ZUlkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAwiVgoNTWVzTXNnRWRpdEFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCRIkCgdlcnJjb2RlGAMgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlIoIBChVSYWRpb1JlZFBhY2tldEdyYWJiZWQSEAoIcGFja2V0SWQYASABKAkSEgoKcmVjZWl2ZXJJZBgCIAEoCRIQCghzZW5kZXJJZBgDIAEoCRIQCghzUmFkaW9JZBgEIAEoCRIOCgZzTXNnSWQYBSABKAkSDwoHbXNnVGltZRgGIAEoBCpNChBDb21tb25Ob3RpZnlUeXBlEhkKFU5vdGlmeV9Nb2RpZnlVc2VySW5mbxAAEh4KGk5vdGlmeV9Nb2RpZnlVc2VyUHVibGljS2V5EAEqzAEKEFdhbGxldE5vdGlmeVR5cGUSDwoLTm90aWZ5X05vbmUQABIVChFOb3RpZnlfV2l0aGRyYXdhbBABEiEKHU5vdGlmeV9UcmFuc2ZlclJlY2VpdmVTdWNjZXNzEAISHwobTm90aWZ5X1JlY2hhcmdlRmluaXNoTm90aWZ5EAMSHwobTm90aWZ5X1RyYW5zZmVyUmV0dXJuTm90aWZ5EAQSFAoQTm90aWZ5X0MyQ05vdGlmeRAFEhUKEU5vdGlmeV9CYW5rTm90aWZ5EAYqsQMKDkMyQ05vdGlmeUV2ZW50EhIKDkMyQ05vdGlmeV9Ob25lEAASGAoUQzJDTm90aWZ5X1NlbGxlclRha2UQARIXChNDMkNOb3RpZnlfQnV5ZXJUYWtlEAISFwoTQzJDTm90aWZ5X0J1eWVyUGFpZBADEh8KG0MyQ05vdGlmeV9TZWxsZXJSZWplY3RJc3N1ZRAEEiAKHEMyQ05vdGlmeV9TZWxsZXJJc3N1ZVRpbWVvdXQQBRIiCh5DMkNOb3RpZnlfU2VsbGVySXNzdWVkQ3VycmVuY3kQBhIbChdDMkNOb3RpZnlfQnV5ZXJDYW5jZWxlZBAHEh4KGkMyQ05vdGlmeV9CdXllclBhaWRUaW1lb3V0EAgSIwofQzJDTm90aWZ5X01ha2VPcmRlclJldmlld1JlamVjdBAJEiEKHUMyQ05vdGlmeV9NYWtlT3JkZXJSZXZpZXdQYXNzEAoSGQoVQzJDTm90aWZ5X0J1eWVyQXBwZWFsEAsSGgoWQzJDTm90aWZ5X1NlbGxlckFwcGVhbBAMEhwKGEMyQ05vdGlmeV9BcHBlYWxSZXNvbHZlZBANKqULCg9CYW5rTm90aWZ5RXZlbnQSEwoPQmFua05vdGlmeV9Ob25lEAASHgoaQmFua05vdGlmeV9Mb2FuQXVkaXRQYXNzZWQQARIgChxCYW5rTm90aWZ5X0xvYW5BdWRpdFJlamVjdGVkEAISIAocQmFua05vdGlmeV9Mb2FuTGlxdWlkYXRlV2FybhADEh0KGUJhbmtOb3RpZnlfTG9hbkxpcXVpZGF0ZWQQBBIcChhCYW5rTm90aWZ5X0xvYW5SZXBheW1lbnQQBRIaChZCYW5rTm90aWZ5X0xvYW5PdmVyZHVlEAYSHQoZQmFua05vdGlmeV9Mb2FuU2V0dGxlbWVudBAHEiAKHEJhbmtOb3RpZnlfRmluYW5jZVdpdGhkcmF3YWwQCBIqCiZCYW5rTm90aWZ5X0ZpbmFuY2VGaXhlZFRlcm1BdXRvUmVuZXdhbBAJEiQKIEJhbmtOb3RpZnlfRmluYW5jZVNldHRsZUludGVyZXN0EAoSJQohQmFua05vdGlmeV9GaW5hbmNlVHJhbnNmZXJTdWNjZXNzEAsSLworQmFua05vdGlmeV9JbnRlcm5hdGlvbmFsVHJhbnNmZXJBdWRpdFBhc3NlZBAMEjEKLUJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyQXVkaXRSZWplY3RlZBANEi4KKkJhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJBZ3JlZRAOEi8KK0JhbmtOb3RpZnlfSW50ZXJuYXRpb25hbFRyYW5zZmVyT3JkZXJSZWplY3QQDxIsCihCYW5rTm90aWZ5X0dsb2JhbENhc2hEZWxpdmVyeUF1ZGl0UGFzc2VkEBASLgoqQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlBdWRpdFJlamVjdGVkEBESKwonQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlckFncmVlEBISLAooQmFua05vdGlmeV9HbG9iYWxDYXNoRGVsaXZlcnlPcmRlclJlamVjdBATEiYKIkJhbmtOb3RpZnlfWXVFQmFvU2V0dGxlZFdpdGhkcmF3YWwQFBIqCiZCYW5rTm90aWZ5X1dlbkxpQmFvQmVjb21lRHVlV2l0aGRyYXdhbBAVEiYKIkJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRpbmcQFhIeChpCYW5rTm90aWZ5X1dlbkxpQmFvRGVwb3NpdBAXEikKJUJhbmtOb3RpZnlfV2VuTGlCYW9EZXBvc2l0QXVkaXRSZWplY3QQGBIyCi5CYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0aW5nEBkSKgomQmFua05vdGlmeV9XZW5MaUJhb1ByaW5jaXBhbFdpdGhkcmF3YWwQGhI1CjFCYW5rTm90aWZ5X1dlbkxpQmFvUHJpbmNpcGFsV2l0aGRyYXdhbEF1ZGl0UmVqZWN0EBsSLworQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdGluZxAcEicKI0JhbmtOb3RpZnlfV2VuTGlCYW9Qcm9maXRXaXRoZHJhd2FsEB0SMgouQmFua05vdGlmeV9XZW5MaUJhb1Byb2ZpdFdpdGhkcmF3YWxBdWRpdFJlamVjdBAeEiQKIEJhbmtOb3RpZnlfVHJhbnNmZXJJbkF1ZGl0UGFzc2VkEB8SJgoiQmFua05vdGlmeV9UcmFuc2ZlckluQXVkaXRSZWplY3RlZBAgEiUKIUJhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFBhc3NlZBAhEicKI0JhbmtOb3RpZnlfVHJhbnNmZXJPdXRBdWRpdFJlamVjdGVkECIqjgEKEEZyaWVuZE5vdGlmeVR5cGUSGAoURlJJRU5EX05PVElGWV9ERUxFVEUQABIiCh5GUklFTkRfTk9USUZZX0JMQUNLTElTVF9DSEFOR0UQARIfChtGUklFTkRfTk9USUZZX0JFQ09NRV9GUklFTkQQAhIbChdGUklFTkRfTk9USUZZX0RFTF9BUFBMWRADQh8KE2NvbS5tb3NhbnQuaW0ucHJvdG9IA1oGLi4vYXBwYgZwcm90bzM",[mn]),yt=messageDesc(Be,0),Fa=messageDesc(Be,1),Fu=messageDesc(Be,2),wa=messageDesc(Be,3),wu=messageDesc(Be,4);var Pa=messageDesc(Be,7);var Pu=messageDesc(Be,9),Vu=messageDesc(Be,10),Va=messageDesc(Be,11),Oa=messageDesc(Be,12),Ou=messageDesc(Be,13);var Ku=messageDesc(Be,15),Lu=messageDesc(Be,16),Zu=messageDesc(Be,17);var Qu=messageDesc(Be,26);var Wu=messageDesc(Be,29);var Hu=messageDesc(Be,33);var Ka=messageDesc(Be,48),No=messageDesc(Be,49);var Ju=messageDesc(Be,51),Yu=messageDesc(Be,52);var Xu=messageDesc(Be,55);var zu=messageDesc(Be,58),qu=messageDesc(Be,59),ju=messageDesc(Be,60);var Za=fileDesc("Cg5pbS5yb2JvdC5wcm90bxIKaW0uYXBwLnB0bCJdCghSb2JvdE1zZxIOCgZ1c2VySWQYASABKAMSDwoHcm9ib3RJZBgCIAEoCRIPCgdjb250ZW50GAMgASgJEg8KB21zZ1RpbWUYBCABKAMSDgoGc01zZ0lkGAUgASgJImMKC1JvYm90TXNnQWNrEg4KBnVzZXJJZBgBIAEoAxIPCgdyb2JvdElkGAIgASgJEiQKB2VyckNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUSDQoFbXNnSWQYBCABKAkiZgoRUm9ib3RSZXBseVVzZXJNc2cSDgoGdXNlcklkGAEgASgDEg8KB3JvYm90SWQYAiABKAkSDgoGc01zZ0lkGAMgASgJEg8KB2NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoA0IfChNjb20ubW9zYW50LmltLnByb3RvSANaBi4uL2FwcGIGcHJvdG8z",[mn]),$u=messageDesc(Za,0),eg=messageDesc(Za,1),ng=messageDesc(Za,2);var Ke=fileDesc("CgxpbS5zaWcucHJvdG8SCmltLmFwcC5wdGwimwEKDlNJR1Nwb25zb3JDYWxsEhEKCXNJbnZpdGVJZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB2VuY3J5cHQYBSABKA0SEAoIc0NvbnRlbnQYBiABKAkSEAoIY2FsbFR5cGUYByABKA0SDwoHc2NhbGxJZBgIIAEoCSJYChFTSUdTcG9uc29yQ2FsbEFjaxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSI7ChhTSUdTcG9uc29yQ2FsbERlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkirgEKEVNJR1Nwb25zb3JDYWxsQW5zEg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDwoHZW5jcnlwdBgFIAEoDRIQCghzQ29udGVudBgGIAEoCRIkCgdlcnJjb2RlGAcgASgOMhMuaW0uYXBwLnB0bC5FcnJDb2RlEg8KB3NjYWxsSWQYCCABKAkiWwoUU0lHU3BvbnNvckNhbGxBbnNBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiPgobU0lHU3BvbnNvckNhbGxBbnNEZWxpdmVyQUNLEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIn8KGVNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm8SDQoFc1RvSWQYASABKAMSDwoHc0Zyb21JZBgCIAEoAxIOCgZzTXNnSWQYAyABKAkSEAoIc0NvbnRlbnQYBCABKAkSDwoHbXNnVGltZRgFIAEoBBIPCgdzY2FsbElkGAYgASgJImMKHFNJR1AyUENhbGxFeGNoYW5nZU5hdEluZm9BY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiRgojU0lHUDJQQ2FsbEV4Y2hhbmdlTmF0SW5mb0RlbGl2ZXJBY2sSDwoHc1VzZXJJZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkijAEKCVNJR0hhbmdVcBINCgVzVG9JZBgBIAEoAxIPCgdzRnJvbUlkGAIgASgDEg4KBnNNc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg8KB3NjYWxsSWQYBSABKAkSLQoQaGFuZ3VwUmVhc29uQ29kZRgGIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJTCgxTSUdIYW5nVXBBY2sSDQoFc1RvSWQYASABKAMSDgoGc01zZ0lkGAIgASgJEiQKB2VycmNvZGUYAyABKA4yEy5pbS5hcHAucHRsLkVyckNvZGUiNgoTU0lHSGFuZ1VwRGVsaXZlckFjaxIPCgdzVXNlcklkGAEgASgDEg4KBnNNc2dJZBgCIAEoCSKSAQoVU0lHUDJQQ2FsbFN0YXRlTm90aWZ5Eg0KBXNUb0lkGAEgASgDEg8KB3NGcm9tSWQYAiABKAMSDgoGc01zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSEgoKbm90aWZ5VHlwZRgIIAEoDRITCgtub3RpZnlWYWx1ZRgJIAEoDRIPCgdzY2FsbElkGAogASgJIl8KGFNJR1AyUENhbGxTdGF0ZU5vdGlmeUFDSxINCgVzVG9JZBgBIAEoAxIOCgZzTXNnSWQYAiABKAkSJAoHZXJyY29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZSJCCh9TSUdQMlBDYWxsU3RhdGVOb3RpZnlEZWxpdmVyQWNrEg8KB3NVc2VySWQYASABKAMSDgoGc01zZ0lkGAIgASgJIooBChNTSUdTUG9uc29yR3JvdXBDYWxsEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEg8KB21zZ1RpbWUYBCABKAQSDgoGY2FsbElkGAUgASgJEhEKCWludml0ZUlkcxgGIAMoAxIPCgdjb250ZW50GAcgASgJImcKD1NJR0dyb3VwQ2FsbEFjaxIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSJAoHZXJyQ29kZRgDIAEoDjITLmltLmFwcC5wdGwuRXJyQ29kZRIPCgdtc2dUaW1lGAQgASgEIjcKFlNJR0dyb3VwQ2FsbERlbGl2ZXJBY2sSDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJIpQBCg9TSUdHcm91cENhbGxBbnMSDwoHZ3JvdXBJZBgBIAEoAxIOCgZ1c2VySWQYAiABKAMSDQoFbXNnSWQYAyABKAkSDwoHbXNnVGltZRgEIAEoBBIwCgdhbnNUeXBlGAUgASgOMh8uaW0uYXBwLnB0bC5HUk9VUF9DQUxMX0FOU19UWVBFEg4KBmNhbGxJZBgGIAEoCSKqAQoQU0lHR3JvdXBDYWxsSm9pbhIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIyCghqb2luVHlwZRgEIAEoDjIgLmltLmFwcC5wdGwuR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEQoJaW52aXRlSWRzGAUgAygDEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJImUKElNJR0dyb3VwQ2FsbEZpbmlzaBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRIPCgdtc2dUaW1lGAQgASgEEg4KBmNhbGxJZBgFIAEoCSKtAQoSU0lHR3JvdXBDYWxsU3RhdHVzEg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEjYKCnN0YXR1c1R5cGUYBCABKA4yIi5pbS5hcHAucHRsLkdST1VQX0NBTExfU1RBVFVTX1RZUEUSDgoGc3RhdHVzGAUgASgFEg8KB21zZ1RpbWUYBiABKAQSDgoGY2FsbElkGAcgASgJInoKGFNJR0dyb3VwQ2FsbERpc2Nvbm5lY3RlZBIPCgdncm91cElkGAEgASgDEg4KBnVzZXJJZBgCIAEoAxINCgVtc2dJZBgDIAEoCRINCgV1c2VycxgEIAMoAxIPCgdtc2dUaW1lGAUgASgEEg4KBmNhbGxJZBgGIAEoCSJ1ChBTSUdHcm91cENhbGxCdXN5Eg8KB2dyb3VwSWQYASABKAMSDgoGdXNlcklkGAIgASgDEg0KBW1zZ0lkGAMgASgJEhAKCGhpbnRVc2VyGAQgASgDEg8KB21zZ1RpbWUYBSABKAQSDgoGY2FsbElkGAYgASgJKocBChpQMlBfQ0FMTF9TVEFURV9OT1RJRllfVFlQRRILCgdVTktOT1dOEAASCAoETVVURRABEhIKDlNZU1RFTV9DQUxMSU5HEAISBwoDVFdPEAMSCQoFVEhSRUUQBBIUChBQRUVSX0FVRElPX0JFR0lOEAUSFAoQUEVFUl9WSURFT19CRUdJThAGKj8KE0dST1VQX0NBTExfQU5TX1RZUEUSEwoPQ0FMTF9BTlNfUkVGVVNFEAASEwoPQ0FMTF9BTlNfQUdSRUVEEAEqQQoUR1JPVVBfQ0FMTF9KT0lOX1RZUEUSEwoPQ0FMTF9KT0lOX0FQUExZEAASFAoQQ0FMTF9KT0lOX0lOVklURRABKkUKFkdST1VQX0NBTExfU1RBVFVTX1RZUEUSFQoRQ0FMTF9TVEFUVVNfVklERU8QABIUChBDQUxMX1NUQVRVU19NVVRFEAFCHwoTY29tLm1vc2FudC5pbS5wcm90b0gDWgYuLi9hcHBiBnByb3RvMw",[mn]),Qa=messageDesc(Ke,0),tg=messageDesc(Ke,1),rg=messageDesc(Ke,2),Wa=messageDesc(Ke,3),og=messageDesc(Ke,4),ig=messageDesc(Ke,5),Ha=messageDesc(Ke,6);var sg=messageDesc(Ke,8),Ja=messageDesc(Ke,9),ag=messageDesc(Ke,10),dg=messageDesc(Ke,11),Ya=messageDesc(Ke,12),cg=messageDesc(Ke,13),lg=messageDesc(Ke,14),Xa=messageDesc(Ke,15),kn=messageDesc(Ke,16),xn=messageDesc(Ke,17),za=messageDesc(Ke,18),qa=messageDesc(Ke,19),Wt=messageDesc(Ke,20),ja=messageDesc(Ke,21),$a=messageDesc(Ke,22),ed=messageDesc(Ke,23);var Do=fileDesc("Cgltc2cucHJvdG8SE2NvbS5tb3NhbnQuaW0ucHJvdG8iPwoORGVsaXZlck1zZ0luZm8SDQoFbXNnSWQYASABKAkSDwoHbXNnVGltZRgCIAEoBBINCgVjbWRJZBgDIAEoDSKVAQoRT2ZmbGluZUNoYXRNc2dSZXESDgoGdXNlcklkGAEgASgDEg0KBW1zZ0lkGAIgASgJEj4KEWRlbGl2ZXJlZE1zZ0luZm9zGAMgAygLMiMuY29tLm1vc2FudC5pbS5wcm90by5EZWxpdmVyTXNnSW5mbxINCgVsaW1pdBgEIAEoBRISCgpjbGllbnRUeXBlGAUgASgNImkKEk9mZmxpbmVDaGF0TXNnUmVzcBIOCgZ1c2VySWQYASABKAMSDQoFbXNnSWQYAiABKAkSNAoHbXNnTGlzdBgDIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2ciuQEKDk9mZmxpbmVDaGF0TXNnEg0KBWNtZElkGAEgASgNEhAKCHNNc2dEYXRhGAIgASgMEg4KBnNNc2dJZBgDIAEoCRIPCgdzRnJvbUlkGAQgASgDEg0KBXNUb0lkGAUgASgDEg8KB21zZ1RpbWUYBiABKAQSEAoIaXNDYW5jZWwYByABKA0SEwoLcGFyZW50TXNnSWQYCCABKAkSDgoGaXNSZWFkGAkgASgNEg4KBmlzRWRpdBgKIAEoDSJHChFHZXRDaGF0TXNnQnlJZFJlcRIOCgZ1c2VySWQYASABKAMSDgoGbXNnSWRzGAIgAygJEhIKCmNsaWVudFR5cGUYAyABKA0ibwoSR2V0Q2hhdE1zZ0J5SWRSZXNwEgwKBGNvZGUYASABKAUSNAoHbXNnTGlzdBgCIAMoCzIjLmNvbS5tb3NhbnQuaW0ucHJvdG8uT2ZmbGluZUNoYXRNc2cSFQoNbWlzc2luZ01zZ0lkcxgDIAMoCWIGcHJvdG8z");var ug=messageDesc(Do,1),gg=messageDesc(Do,2);var mg=messageDesc(Do,4),pg=messageDesc(Do,5);function F(e,n){return {command:e,schema:n,encode:t=>toBinary(n,t),decode:t=>fromBinary(n,t),create:t=>create(n,t)}}function ve(e){return {schema:e,encode:n=>toBinary(e,n),decode:n=>fromBinary(e,n),create:n=>create(e,n)}}function Cg(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 Ht=F(257,Gu),Jt=F(261,xu),Go=F(262,Bu),Uo=F(258,Uu),nd=F(264,ku),Qn=F(4097,yt),ko=F(4098,Fa),xo=F(4100,yt),Wn=F(4099,wa),Yt=F(4647,$u),Bo=F(4648,eg),Fo=F(4649,ng),wo=F(24579,zu),Po=F(4650,yt),Vo=F(4651,yt),Oo=F(4652,Fa),Ko=F(4653,yt),Lo=F(4631,Ju),Xt=F(4632,Yu),Zo=F(4633,Xu),Qo=F(4627,Qu),zt=F(4628,Wu),td=ve(Hu),Wo=F(4356,Ou),qt=F(4355,Ku),Ho=F(4360,Lu),jt=F(4359,Zu),$t=F(4107,Va),Jo=F(4108,Oa),Yo=F(4110,Va),er=F(4109,Oa),nr=F(8197,Tu),Xo=F(8198,vu),zo=F(4644,qu),qo=F(4646,ju),jo=F(8976,Du),$o=F(8977,bo),ei=F(4102,wa),tr=F(4101,wu),rr=F(4103,Pa),ni=F(4104,Pu),ti=F(4106,Pa),or=F(4105,Vu),ot=F(4117,Ka),ri=F(4118,No),oi=F(4119,Ka),bn=F(8193,Lt),ii=F(8194,bo),si=F(8196,Lt),ir=F(8195,hu),sr=F(8978,Lt),ai=F(8979,bo),di=F(8980,Lt),ar=F(8967,Ba),ci=F(8968,No),li=F(8969,Ba),It=F(8708,Nu),dr=F(8707,Mu),ui=F(8452,bu),cr=F(8451,Ru),gi=F(8964,_u),lr=F(8963,xa),mi=F(8966,xa),ur=F(8965,Eu),Bn=F(12289,rt),pi=F(12290,ft),gr=F(12291,Ot),fi=F(12292,rt),Sg=F(12816,rt),mr=F(12817,rt),yi=F(12818,ft),Ii=F(12819,rt),pr=F(12293,Kt),Ci=F(12294,ft),Si=F(12295,Ot),Ai=F(12296,Kt),fr=F(12297,Kt),hi=F(12298,ft),Ri=F(12299,Ot),Mi=F(12300,Kt),yr=F(12547,Ua),Ei=F(12548,Ga),Ag=F(12551,Ua),hg=F(12552,Ga),Ir=F(12803,Ot),Ti=F(12804,rt),Cr=F(12805,ka),vi=F(12806,No),bi=F(12807,ka),Ni=F(12808,Au),_i=F(12809,ft),Sr=F(16385,Qa),Di=F(16386,tg),Ar=F(16387,rg),Gi=F(16388,Qa),hr=F(16389,Wa),Ui=F(16390,og),Rr=F(16391,ig),ki=F(16392,Wa),Mr=F(16395,sg),xi=F(16396,Ha),Ct=F(16397,Ja),Bi=F(16398,ag),Er=F(16399,dg),Rg=F(16400,Ja),Tr=F(16401,Ya),Fi=F(16402,cg),vr=F(16403,lg),wi=F(16404,Ya),br=F(16641,Xa),Pi=F(16642,kn),Nr=F(16643,xn),Vi=F(16644,Xa),_r=F(16645,za),Oi=F(16646,kn),Mg=F(16647,xn),Ki=F(16648,za),Dr=F(16649,qa),Li=F(16650,kn),Eg=F(16651,xn),Zi=F(16652,qa),Gr=F(16653,Wt),Qi=F(16654,kn),Tg=F(16655,xn),Wi=F(16656,Wt),Ur=F(16657,Wt),Hi=F(16658,kn),vg=F(16659,xn),Ji=F(16660,Wt),kr=F(16661,ja),Yi=F(16662,kn),bg=F(16663,xn),Xi=F(16664,ja),Ng=F(16665,$a),_g=F(16666,kn),Dg=F(16667,xn),zi=F(16668,$a),xr=F(16669,ed),qi=F(16670,kn),Gg=F(16671,xn),ji=F(16672,ed),pe=ve(Su),Ue=ve(Cu),St=ve(Fu),$i=ve(ug),rd=ve(gg),es=ve(mg),od=ve(pg),ns=ve(du),id=ve(cu),ts=ve(lu),sd=ve(uu),rs=ve(gu),os=ve(mu),is=ve(pu),ad=ve(fu),ss=ve(su),dd=ve(au),as=ve(Ql),cd=ve(Wl),ds=ve(Hl),Br=ve(Jl),_I=ve(Yl),DI=ve(Xl),cs=ve(eu),ld=ve(nu);Cg([Ht,Jt,Go,Uo,Qn,ko,Yt,Bo,Fo,wo,xo,Wn,Po,Vo,Oo,Ko,Lo,Xt,Zo,Qo,zt,Wo,qt,Ho,jt,$t,Jo,Yo,er,qo,ei,tr,rr,ni,ti,or,ot,ri,oi,bn,ii,nr,Xo,$o,si,ir,sr,ai,di,ar,ci,li,It,dr,ui,cr,gi,lr,mi,ur,Bn,pi,gr,fi,Sg,mr,yi,Ii,pr,Ci,Si,Ai,fr,hi,Ri,Mi,yr,Ei,Ag,hg,Ir,Ti,Cr,vi,bi,_i,Sr,Di,Ar,Gi,hr,Ui,Rr,ki,Mr,xi,Ct,Bi,Er,Rg,Tr,Fi,vr,wi,br,Pi,Nr,Vi,_r,Oi,Mg,Ki,Dr,Li,Eg,Zi,Gr,Qi,Tg,Wi,Ur,Hi,vg,Ji,kr,Yi,bg,Xi,Ng,_g,Dg,zi,xr,qi,Gg,ji]);var sn=class extends Error{code;constructor(n,t,r){super(t,r),this.name="BoardPinnedMessageCodecError",this.code=n;}};function xg(e,n){if(e===""||e!==e.trim()||!/^[a-z0-9+/]*={0,2}$/i.test(e)||e.length%4!==0)throw new sn(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 sn(n,"board pinned message Base64 \u975E\u6CD5",{cause:t})}}function Ug(e){let n="";for(let t of e)n+=String.fromCharCode(t);return globalThis.btoa(n)}function PI(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function VI(e){return e===void 0||Number.isInteger(e)}function Fr(e){return e===void 0||e===0||e===1}function kg(e){return e===void 0||typeof e=="string"}function Bg(e){if(!PI(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===""||!Fr(e.isBrowse)||!Fr(e.isCancel)||!Fr(e.isEdit)||!Fr(e.isNotifyAll)||!kg(e.notifyUsersName)||!kg(e.parentMsgId)||!Fr(e.readStatus)||!VI(e.sendStatus)||e.nIncrId!==void 0&&(typeof e.nIncrId!="string"||!/^\d+$/.test(e.nIncrId)))throw new sn("INVALID_ENVELOPE","board pinned message envelope \u7ED3\u6784\u975E\u6CD5")}function OI(e){let n;try{if(n=xg(e,"INVALID_MESSAGE_CONTENT"),n.length===0)throw new Error("BMessage \u4E3A\u7A7A");let t=pe.decode(n);if(!Number.isInteger(t.contentType)||t.contentType<=0)throw new Error("BMessage contentType \u975E\u6CD5");return t}catch(t){throw t instanceof sn?t:new sn("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5",{cause:t})}}function wr(e){let n;try{n=new TextDecoder("utf-8",{fatal:!0}).decode(xg(e,"INVALID_BASE64"));}catch(r){throw r instanceof sn?r:new sn("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 sn("INVALID_JSON","board pinned message \u5916\u5C42 JSON \u975E\u6CD5",{cause:r})}return Bg(t),{envelope:t,message:OI(t.msgContent)}}function Pr(e){let n=pe.encode(e.message);if(n.length===0||e.message.contentType<=0)throw new sn("INVALID_MESSAGE_CONTENT","board pinned message \u5185\u5C42 BMessage \u975E\u6CD5");let t={...e.envelope,msgContent:Ug(n)};return Bg(t),Ug(new TextEncoder().encode(JSON.stringify(t)))}var KI=new Uint8Array(0);function ls(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 X(e){let n=e.flags??65,t=e.appId??0,r=e.msgSeq??0;ls(e.command,16,"command"),ls(n,8,"flags"),ls(t,8,"appId"),ls(r,32,"msgSeq");let o=e.body??KI,i=o.length;if(12+i>1048576)throw new Error(`\u5E27 body \u8FC7\u5927\uFF1AbodyLen=${i}\uFF0CMsgLength \u5C06\u8D85\u8FC7\u4E0A\u9650 1048576`);let a=new Uint8Array(16+i),s=new DataView(a.buffer);return s.setUint32(0,12+i,false),s.setUint8(4,n),s.setUint8(5,t),s.setUint16(6,e.command,false),s.setUint32(8,i,false),s.setUint32(12,r,false),a.set(o,16),a}function ud(e){let n=[],t=new DataView(e.buffer,e.byteOffset,e.byteLength),r=0;for(;e.length-r>=16;){let o=t.getUint32(r,false);if(o<12||o>1048576)throw new Error(`\u5E27\u957F\u5EA6\u975E\u6CD5\uFF1AMsgLength=${o}\uFF0C\u5E94\u6EE1\u8DB3 12 \u2264 MsgLength \u2264 1048576`);let i=4+o;if(e.length-r<i)break;let a=t.getUint32(r+8,false);if(o!==12+a)throw new Error(`\u5E27\u957F\u5EA6\u4E0D\u5339\u914D\uFF1AMsgLength=${o} \u4E0E BodyLen=${a} \u4E0D\u6EE1\u8DB3 MsgLength=12+BodyLen`);let s={msgLength:o,flags:t.getUint8(r+4),appId:t.getUint8(r+5),command:t.getUint16(r+6,false),bodyLen:a,msgSeq:t.getUint32(r+12,false)},c=e.subarray(r+16,r+i);n.push({header:s,body:c}),r+=i;}return {frames:n,remainder:e.subarray(r)}}var LI=5;function Hn(e,n,t){let r=Ft(e.sFromId,e.botId),o=Number(e.msgTime),i=ge(e.sMsgId),a=Mn(n,t.selfId),s=a.contentType==="text",c=o>0?o:t.receivedAt??Date.now(),u={id:i,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:r,contentType:a.contentType,body:a.body,createdAt:c,sortKey:Te(c,i),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};t.decryptFailed===true&&(u.encryption.decryptFailed=true),o>0&&(u.serverTime=o),e.parentMsgId&&(u.refMessageId=ge(e.parentMsgId)),t.edited===true&&(u.edited=true);let y=ZI(e,s?n.content:"");return y!==void 0&&(u.mention=y),t.keepRaw&&(u.raw=JI(e,n,t.cmdId)),u}function At(e,n){let t=Fg(e);if(t.length===0)return n;let r=n?.atUserIds??[],o=wg(r,t);return o.length===r.length?n:n===void 0?{atAll:false,atUserIds:o}:{...n,atUserIds:o}}function ZI(e,n){let t=e.nNotifyCount===-1||e.nNotifyCount===4294967295,r=wg(e.sNotifyUsers.map(s=>s.toString()),Fg(n)),{ranges:o,atUsersName:i}=QI(e.extend);if(!t&&r.length===0&&o===void 0&&i===void 0)return;let a={atAll:t,atUserIds:r};return o!==void 0&&(a.ranges=o),i!==void 0&&(a.atUsersName=i),a}function Fg(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 wg(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 QI(e){if(e==="")return {};try{let n=JSON.parse(e),t=WI(n.atRange),r=HI(n.atUsersName);return {...t===void 0?{}:{ranges:t},...r===void 0?{}:{atUsersName:r}}}catch{return {}}}function WI(e){if(!Array.isArray(e))return;let n=[];for(let t of e){if(typeof t!="object"||t===null)continue;let r=t,{user_id:o,start:i,end:a}=r;(typeof o=="string"||typeof o=="number")&&typeof i=="number"&&Number.isInteger(i)&&i>=0&&typeof a=="number"&&Number.isInteger(a)&&a>=i&&n.push({userId:String(o),start:i,end:a});}return n.length>0?n:void 0}function HI(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 JI(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 Vr(e,n){let t={sGrpId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:Me(e.id),msgType:LI,encrypt:e.encryption.encrypted?1:0,bMessage:an(e.body)};return e.mention!==void 0&&Object.assign(t,YI(e.mention)),e.refMessageId!==void 0&&e.refMessageId!==""&&(t.parentMsgId=Xe(e.refMessageId)),t}function YI(e){let n={nNotifyCount:e.atAll?4294967295:e.atUserIds.length};e.atUserIds.length>0&&(n.sNotifyUsers=e.atUserIds.map(r=>BigInt(r)));let t=XI(e);return t!==void 0&&(n.extend=t),n}function XI(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 Ye=class extends Error{code;constructor(n,t,r){super(t,r),this.name="PinnedMessageMappingError",this.code=n;}};function Or(e){return e instanceof sn||e instanceof Ye?e.code:"INVALID_SNAPSHOT"}function us(e,n){let t=wr(e),{envelope:r}=t;if(r.convType!==2)throw new Ye("INVALID_SNAPSHOT","board pinned message convType \u5FC5\u987B\u4E3A 2");if(r.receiverId!==n.conversationId)throw new Ye("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 Ye("INVALID_SNAPSHOT","board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let s=bn.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=Hn(s,t.message,{selfId:"",edited:r.isEdit===1});}catch(s){throw new Ye("INVALID_SNAPSHOT","board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A\u7FA4\u6D88\u606F",{cause:s})}let a=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"group",messageId:i.id,preview:a,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function zI(e){if(e.conversationType!=="group"||e.conversationId===""||e.senderId==="")throw new Ye("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 Ye("INVALID_SNAPSHOT","\u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=pe.create(an(e.body)),r=Pr({envelope:{convType:2,msgContent:"",msgId:Me(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:us(r,{conversationId:e.conversationId})}}function gs(e,n){let t=wr(e),{envelope:r}=t;if(r.convType!==3)throw new Ye("INVALID_SNAPSHOT","channel board pinned message convType \u5FC5\u987B\u4E3A 3");if(r.receiverId!==n.conversationId)throw new Ye("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 Ye("INVALID_SNAPSHOT","channel board pinned message msgTime \u8D85\u51FA\u9886\u57DF\u65F6\u95F4\u8303\u56F4");let i;try{let s=r.nIncrId??"0";i=vn(Bn.create({sRadioId:BigInt(r.receiverId),sFromId:BigInt(r.senderId),sMsgId:r.msgId,msgTime:BigInt(r.msgTime),encrypt:0,sId:s,nIncrId:BigInt(s),parentMsgId:r.parentMsgId??"",isEdit:r.isEdit===1?"1":""}),t.message,{selfId:"",edited:r.isEdit===1});}catch(s){throw new Ye("INVALID_SNAPSHOT","channel board pinned message \u65E0\u6CD5\u6620\u5C04\u4E3A CHANNEL \u6D88\u606F",{cause:s})}let a=i.contentType!=="unknown"?{state:"ready",message:i}:{state:"partial",senderId:i.senderId,createdAt:i.createdAt,reason:"unsupported-content"};return {conversationId:n.conversationId,conversationType:"channel",messageId:i.id,preview:a,...n.operatorId===void 0?{}:{operatorId:n.operatorId}}}function qI(e){if(e.conversationType!=="channel"||e.conversationId===""||e.senderId==="")throw new Ye("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 Ye("INVALID_SNAPSHOT","CHANNEL \u7F6E\u9876\u6D88\u606F\u65F6\u95F4\u975E\u6CD5");let t=pe.create(an(e.body)),r=e.extensions?.channelSequence,o=typeof r=="string"&&/^\d+$/.test(r)?r:"0",i=Pr({envelope:{convType:3,msgContent:"",msgId:Me(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:gs(i,{conversationId:e.conversationId})}}var jI=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 $I(e,n){return n.startsWith("group_")?e.conversationType==="group":n.startsWith("channel_")?e.conversationType==="channel":n.startsWith("direct_")?e.conversationType==="direct":true}function Jn(e){let n=e.contentType==="system"?e.body.system:void 0;if(n===void 0||Aa(n.eventType)||!$I(e,n.eventType))return e;let t=jI.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 eC={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"},Pg=new Set([17,18,22,23,24]),nC=20;function ms(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?md(n.rawNotifyType):n.eventType,r=t!==n.eventType,o=n.rawNotifyType!==void 0&&Pg.has(n.rawNotifyType)&&n.fallbackText!==void 0,i=n.operatorId,a=t==="channel_member_left"&&(n.targetUserIds===void 0||n.targetUserIds.length===0)&&i!==void 0&&i!=="";if(!r&&!o&&!a)return Jn(e);let s={...n,eventType:t};return o&&delete s.fallbackText,a&&i!==void 0&&(s.targetUserIds=[i]),Jn({...e,body:{...e.body,system:s}})}function Vg(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 gd(e){if(!Vg(e)||e.contentType==="system")return e;let n=e.body.text??e.raw?.content?.text;return ms({...e,senderId:"system",contentType:"system",body:{system:{eventType:"channel_unknown",...n===void 0||n===""?{}:{fallbackText:n}}},receipt:"read"})}function md(e){return eC[e]??"channel_unknown"}function Kr(e,n={}){if(e.channelId<=0n)throw new Error("channel notify: channel id \u7F3A\u5931\u6216\u975E\u6CD5");if(e.messageId.trim()==="")throw new Error("channel notify: message id \u7F3A\u5931");if(e.historyCursor!==void 0&&e.historyCursor.trim()==="")throw new Error("channel notify: history cursor \u7F3A\u5931");if(!Number.isInteger(e.notifyType)||e.notifyType<=0)throw new Error("channel notify: notify type \u7F3A\u5931\u6216\u975E\u6CD5");let t=ge(e.messageId),r=Number(e.occurredAt),o=r>0?r:n.receivedAt??Date.now(),i=e.sequence!==void 0&&e.sequence>0n?e.sequence.toString():void 0,a={eventType:md(e.notifyType),rawNotifyType:e.notifyType};e.operatorId!==void 0&&e.operatorId>0n&&(a.operatorId=e.operatorId.toString());let s=e.targetUserIds?.filter(c=>c>0n).map(c=>c.toString())??[];if(s.length>0&&(a.targetUserIds=s),e.content!==void 0&&e.content!==""&&!Pg.has(e.notifyType)&&(a.fallbackText=e.content),e.notifyType===23)try{a.pinnedMessageAction={type:"pin",pinnedMessage:gs(e.content??"",{conversationId:e.channelId.toString(),...a.operatorId===void 0?{}:{operatorId:a.operatorId}})};}catch(c){a.pinnedMessageAction={type:"invalid",code:Or(c)};}else e.notifyType===24&&(a.pinnedMessageAction={type:"unpin"});return ms({id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:"system",contentType:"system",body:{system:a},createdAt:o,...r>0?{serverTime:r}:{},sortKey:Te(o,i===void 0?t:`${i.padStart(nC,"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 Lr(e){return /^\[[^[\]\s]+\]$/.test(e)}function Zr(e){let n=e.slice(1,-1).toLowerCase();return n==="game_dice"||n==="game_rock"}function tC(e,n){return e.createdAt-n.createdAt||e.id.localeCompare(n.id)}function rC(e){return Object.freeze({...e,conversation:Object.freeze({...e.conversation})})}function pd(e,n,t){let r=new Map;for(let s of e){let c=r.get(s.senderId);(c===void 0||tC(c,s)<0)&&r.set(s.senderId,s);}let o=new Map,i;for(let s of r.values()){if(s.action===1)continue;let c=o.get(s.emoji)??{participants:[],latestAt:0};c.participants.push(s.senderId),c.latestAt=Math.max(c.latestAt,s.createdAt),o.set(s.emoji,c),s.senderId===n&&(i=s.emoji);}let a=[...o.entries()].map(([s,c])=>Object.freeze({emoji:s,count:c.participants.length,mine:c.participants.includes(n),latestAt:c.latestAt,participantIds:Object.freeze([...c.participants].sort())})).sort((s,c)=>Number(c.mine)-Number(s.mine)||c.latestAt-s.latestAt||s.emoji.localeCompare(c.emoji));return Object.freeze({version:t,total:[...o.values()].reduce((s,c)=>s+c.participants.length,0),...i===void 0?{}:{currentUserEmoji:i},events:Object.freeze(e.map(rC)),aggregates:Object.freeze(a)})}function fd(e,n,t){if(!Lr(n.emoji))throw new Error(`Reaction emoji \u5FC5\u987B\u662F [face_name]\uFF1A${n.emoji}`);if(Zr(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:pd([...e?.events??[],n],t,(e?.version??0)+1)}function yd(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 pd(r,t,e.version+1)}function Id(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 pd([...r.values()],t,Math.max(e.version,n.version))}var Og={unread:0,delivered:1,read:2};function ps(e,n){return Og[n]>Og[e]?n:e}function Lg(e,n){return e==="sent"||n==="sent"?"sent":n}function ht(e,n,t=""){let r=To(e)??0,o=To(n)??0,i=o>=r,a=i?{...e,...n}:{...n,...e},s=Math.max(r,o),c=Math.min(e.createdAt,n.createdAt),u=e.extensions===void 0&&n.extensions===void 0?void 0:i?{...e.extensions,...n.extensions}:{...n.extensions,...e.extensions},y=Tn({...a,createdAt:c,serverTime:s,extensions:u}),v=e.status==="failed"&&e.failure?.retryable===false&&n.status==="sent"?"failed":Lg(e.status,n.status),T=v==="failed"?n.failure??e.failure:void 0,A=Id(e.reactions,n.reactions,t),D=e.encryption.decryptFailed===true,b=n.encryption.decryptFailed===true,E=a.contentType,f=a.body,p=a.encryption,R=a.mention;D&&!b?(E=n.contentType,f=n.body,p=n.encryption,R=n.mention):!D&&b&&(E=e.contentType,f=e.body,p=e.encryption,R=e.mention),n.edited===true&&!b&&(E=n.contentType,f=n.body,p=n.encryption,R=n.mention);let k=e.body.voice?.waveform??n.body.voice?.waveform;if(f.voice!==void 0&&f.voice.waveform===void 0&&k!==void 0&&(f={...f,voice:{...f.voice,waveform:k}}),f.video!==void 0&&f.video.size===void 0){let L=f.video,Ce=[e.body.video,n.body.video].find(ye=>ye?.sizeUnit==="bytes"&&ye.size!==void 0&&ye.url===L.url&&ye.fileEncryptType===L.fileEncryptType&&ye.md5===L.md5&&Nn(ye.teaKey,L.teaKey)&&(L.unverifiedFileLength===void 0||L.unverifiedFileLength===String(ye.size)));Ce!==void 0&&(f={...f,video:{...L,size:Ce.size,sizeUnit:"bytes"}});}let V=e.edited===true||n.edited===true,$=e.deletedForEveryone??n.deletedForEveryone;if($!==void 0){let L={...a,id:e.id,createdAt:c,serverTime:s>0?s:void 0,status:v,failure:T,receipt:ps(e.receipt,n.receipt),sortKey:y,extensions:u,recalled:void 0,deletedForEveryone:$,body:{},encryption:a.encryption};return delete L.reactions,L}let ne=e.recalled??n.recalled;if(ne!==void 0){let L={...a,id:e.id,createdAt:c,serverTime:s>0?s:void 0,status:v,failure:T,receipt:ps(e.receipt,n.receipt),sortKey:y,extensions:u,recalled:ne,body:{},encryption:a.encryption};return delete L.reactions,L}let Se={...a,id:e.id,createdAt:c,serverTime:s>0?s:void 0,status:v,failure:T,receipt:ps(e.receipt,n.receipt),sortKey:y,extensions:u,contentType:E,body:f,encryption:p,...A===void 0?{}:{reactions:A},...V?{edited:true}:{}};return R!==void 0?Se.mention=R:delete Se.mention,Se}function oC(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 Fn(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:ht(o,r,n));}return [...t.values()]}function iC(e,n){return e===void 0||n===void 0?e===n:e.code===n.code&&e.reason===n.reason}function sC(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 aC(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&&CC(e.targetUserIds,n.targetUserIds)&&Cd(e.payload,n.payload)&&Cd(e.action,n.action)&&Cd(e.pinnedMessageAction,n.pinnedMessageAction)}function Kg(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&&Nn(e.teaKey,n.teaKey)}function dC(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 cC(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&&Nn(e.thumbData,n.thumbData)}function lC(e,n){return e===void 0||n===void 0?e===n:e.gameType===n.gameType&&e.value===n.value}function uC(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 gC(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&&e.gamePreviewUrl===n.gamePreviewUrl&&e.gamePreviewWidth===n.gamePreviewWidth&&e.gamePreviewHeight===n.gamePreviewHeight}function mC(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 pC(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 fC(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.giftType===n.giftType&&e.giftName===n.giftName&&e.giftIcon===n.giftIcon&&e.explain===n.explain&&e.state===n.state&&e.serialNumber===n.serialNumber&&e.sessionType===n.sessionType&&e.initiateTime===n.initiateTime&&e.amount===n.amount&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead&&e.zhangCount===n.zhangCount&&e.benCount===n.benCount&&e.fissionNumber===n.fissionNumber}function yC(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 IC(e,n){return e===void 0||n===void 0?e===n:e.reason===n.reason}function CC(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function Cd(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function SC(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:sC(e.atUsersName,n.atUsersName)}function Nn(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function AC(e,n){return e===void 0||n===void 0?e===n:e.url===n.url&&e.width===n.width&&e.height===n.height&&Nn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.imageType===n.imageType&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&Nn(e.teaKey,n.teaKey)}function hC(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&&Nn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.describe===n.describe&&e.fileEncryptType===n.fileEncryptType&&Nn(e.teaKey,n.teaKey)}function RC(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&&Nn(e.teaKey,n.teaKey)&&(e.waveform?.length??0)===(n.waveform?.length??0)}function MC(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&&Nn(e.thumbData,n.thumbData)&&e.md5===n.md5&&e.size===n.size&&e.fileEncryptType===n.fileEncryptType&&Nn(e.teaKey,n.teaKey)&&e.hd===n.hd}function EC(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)=>MC(t,n.items[r]))}function it(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&&aC(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??"")&&oC(e.reactions,n.reactions)&&e.encryption.encrypted===n.encryption.encrypted&&e.encryption.scheme===n.encryption.scheme&&e.encryption.decryptFailed===n.encryption.decryptFailed&&SC(e.mention,n.mention)&&AC(e.body.image,n.body.image)&&hC(e.body.video,n.body.video)&&RC(e.body.voice,n.body.voice)&&Kg(e.body.file,n.body.file)&&(e.body.filesAlbum===void 0||n.body.filesAlbum===void 0?e.body.filesAlbum===n.body.filesAlbum:e.body.filesAlbum.caption===n.body.filesAlbum.caption&&e.body.filesAlbum.items.length===n.body.filesAlbum.items.length&&e.body.filesAlbum.items.every((t,r)=>Kg(t,n.body.filesAlbum.items[r])))&&cC(e.body.sticker,n.body.sticker)&&dC(e.body.contact,n.body.contact)&&gC(e.body.miniProgram,n.body.miniProgram)&&uC(e.body.robot,n.body.robot)&&lC(e.body.game,n.body.game)&&pC(e.body.transfer,n.body.transfer)&&fC(e.body.gift,n.body.gift)&&mC(e.body.call,n.body.call)&&yC(e.body.redPacket,n.body.redPacket)&&EC(e.body.mediaAlbum,n.body.mediaAlbum)&&IC(e.body.unknown,n.body.unknown)&&iC(e.failure,n.failure)}var TC=20;function Rt(e){let n=new Set;for(let t of e){let r=t.trim();r!==""&&n.add(Xe(r));}return [...n]}function Mt(e){let n=new Set;for(let t of e)t!==""&&n.add(ge(t));return [...n]}var Zg=2;function vC(e){if(e!==0&&e!==1)throw new Error(`Reaction action \u975E\u6CD5\uFF1A${e}`);return e}function Qr(e){let n=St.decode(e);if(n.emoji.trim()==="")throw new Error("Reaction emoji \u4E0D\u80FD\u4E3A\u7A7A");return {emoji:n.emoji,action:vC(n.action)}}function Wr(e,n){let t=Qr(e.sContent),r=e.sFromId.toString();return {id:ge(e.sMsgId),conversation:{conversationType:"direct",conversationId:r===n?e.sToId.toString():r},parentMessageId:ge(e.parentMsgId),senderId:r,emoji:t.emoji,action:t.action,createdAt:Number(e.msgTime)}}function Hr(e){let n=Qr(e.sContent);return {id:ge(e.sMsgId),conversation:{conversationType:"group",conversationId:e.sGrpId.toString()},parentMessageId:ge(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Sd(e){let n=Qr(e.sContent);return {id:ge(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sRadioId.toString()},parentMessageId:ge(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function Ad(e){if(e.eventType===Zg)return true;if(e.eventType!==0||e.parentMsgId===""||e.encrypt!==0||e.sContent.length===0)return false;try{let n=Qr(e.sContent);return /^\[[^[\]\s]+\]$/.test(n.emoji)}catch{return false}}function hd(e){let n=Qr(e.sContent);return {id:ge(e.sMsgId),conversation:{conversationType:"channel",conversationId:e.sChnnId.toString()},parentMessageId:ge(e.parentMsgId),senderId:e.sFromId.toString(),emoji:n.emoji,action:n.action,createdAt:Number(e.msgTime)}}function fs(e,n,t){return n===e?t:n}var bC=102,Qg=1,NC=2;function Rd(e,n){let t=ge(e.sMsgId),r=String(e.sFromId),o=Number(e.cancelTime)||Number(e.msgTime)||Date.now(),i=e.nCancelType===1,a=i?String(e.sGroupId):fs(n,r,String(e.sToId)),s=Number(e.msgTime)||o;return {id:t,conversationId:a,conversationType:i?"group":"direct",senderId:r,contentType:"text",body:{},createdAt:s,sortKey:Te(s,t),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:r,at:o}}}function Md(e){let n=ge(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:Te(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},recalled:{by:t,at:r}}}function Ed(e){let n=ge(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime);return {id:n,conversationId:e.sRadioId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,sortKey:Te(r,n),status:"sent",receipt:"read",encryption:{encrypted:false},deletedForEveryone:{by:t,at:r,reason:"channel-moderation"}}}function Td(e){let n=ge(e.sMsgId),t=e.sFromId.toString(),r=Number(e.msgTime),o={id:n,conversationId:e.sChnnId.toString(),conversationType:"channel",senderId:t,contentType:"text",body:{},createdAt:r,serverTime:r,sortKey:Te(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 Jr(e,n){if(n.contentType!==bC||n.type!==Qg&&n.type!==NC||!gn(n.content))return null;let t=ge(n.content),r=n.oprUserId>0n?n.oprUserId.toString():e.senderId.toString(),o=Number(e.msgTime),i={id:t,conversationId:e.channelId.toString(),conversationType:"channel",senderId:r,contentType:"text",body:{},createdAt:o,sortKey:Te(o,t),status:"sent",receipt:"read",encryption:{encrypted:e.encrypt!==0}};return n.type===Qg?{...i,deletedForEveryone:{by:r,at:o,reason:"channel-moderation"}}:{...i,recalled:{by:r,at:o}}}var _C=pe.create({contentType:1,content:""}),DC=101;function Wg(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 GC(e){return as.encode(as.create({sUserId:Yr(e.userId,"user"),clientType:e.clientType,lsChnnInfo:e.channels.map(n=>({sChnnId:Yr(n.channelId,"channel"),sReadIndex:n.readCursor}))}))}function Hg(e){return ds.encode(ds.create({sUserId:Yr(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:Yr(n.channelId,"channel"),sBaseIndex:n.baseIndex,uDirection:n.direction,uCount:n.count,uIsContain:n.contain}})}))}function UC(e){return Hg({userId:e.userId,clientType:e.clientType,pulls:[{channelId:e.channelId,baseIndex:e.baseIndex,direction:1,count:e.count??20,contain:e.contain??0}]})}function kC(e,n,t){let r=cd.decode(e);vd(r.errcode,"sessions");let o=Is(n.expectedChannelIds);return {sessions:r.lsSession.map(i=>{let a=i.sChnnId.toString();Cs(a,o,"sessions");let s=Wg(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 c=ys(i.last,{...n,diagnostic:{endpoint:"sessions",surface:"session-last",...n.diagnostic}},t);c!==null&&(s.last=c);}return s})}}function Jg(e,n,t){let r=Br.decode(e);vd(r.errcode,"offlineMessages");let o=Is(n.expectedChannelIds),i={},a={},s=[];for(let c of r.lsMessage){let u=c.sChnnId.toString();Cs(u,o,"offlineMessages"),i[u]=c.sIndex,a[u]=(a[u]??0)+1;let y=ys(c,n,t);y!==null&&s.push(y);}return {messages:Fn(s,n.selfId).sort(Qe),batchSize:r.lsMessage.length,messageCounts:a,nextBaseIndexes:i}}async function xC(e,n,t,r){r.signal?.throwIfAborted();let o=Br.decode(e);vd(o.errcode,"offlineMessages");let i=Is(n.expectedChannelIds),a={},s={},c=[],u=0;for(let I of o.lsMessage){r.signal?.throwIfAborted(),u>0&&u%5===0&&(await r.yieldToEventLoop(),r.signal?.throwIfAborted());let v=I.sChnnId.toString();Cs(v,i,"offlineMessages"),a[v]=I.sIndex,s[v]=(s[v]??0)+1;let T=ys(I,n,t);T!==null&&c.push(T),u+=1;}r.signal?.throwIfAborted();let y=o.lsMessage[0]?.sIndex;return {messages:Fn(c,n.selfId).sort(Qe),batchSize:o.lsMessage.length,messageCounts:s,nextBaseIndexes:a,firstBaseIndex:y}}function Yg(e,n,t,r="specificMsgs"){let o=Is(n.expectedChannelIds),i=[];for(let a of e){let s=a.sChnnId.toString();Cs(s,o,r);let c=ys(a,n,t);c!==null&&i.push(c);}return Fn(i,n.selfId).sort(Qe)}function BC(e){return cs.encode(cs.create({sUserId:BigInt(e.userId),sChnnId:Yr(e.channelId,"channel"),lsMsgId:Rt(e.messageIds),clientType:e.clientType??0}))}function FC(e,n,t){let r=ld.decode(e);return {messages:Yg(r.lsMessage,n,t,"msg/by_id"),missingMessageIds:Mt(r.lsMissingMsgId),code:r.errcode}}function wC(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=Br.decode(e),o=Jg(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 ys(e,n,t){if(Ad(e)){try{n.onReaction?.(hd(e));}catch(a){n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:a});}return null}if(e.uOperationType===1||e.uOperationType===2)return Td(e);let r=_C,o=false;if(e.encrypt===0)try{r=pe.decode(e.sContent);}catch(a){return n.onContentDecodeError?.({...n.diagnostic,messageId:e.sMsgId,channelId:e.sChnnId.toString(),encrypt:e.encrypt,contentLength:e.sContent.length,cause:a}),Ll(e,e.sContent.length,{selfId:n.selfId,receivedAt:n.receivedAt,keepRaw:true})}else if(e.encrypt===1&&t!==void 0){let a=t.resolveUserPrivateKey?.()??null;if(a===null)o=true,t.onDecryptError?.(wn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:t.resolveUserPrivateKey===void 0?"service-absent":"miss"}));else {let s;try{if(s=Ue.decode(e.sContent),s.secretKey.length===0||s.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(c){o=true,t.onDecryptError?.(wn(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:c})),s=Ue.create();}if(!o){let c;try{c=t.crypto.decryptEndToEnd({secretKey:s.secretKey,cipherData:s.cipherData,privateKey:a});}catch(u){o=true,t.onDecryptError?.(wn(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:s.cipherData.length,cause:u})),c=new Uint8Array;}if(!o)try{r=pe.decode(c);}catch(u){o=true,t.onDecryptError?.(wn(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:s.cipherData.length,decryptedByteLength:c.length,cause:u}));}}}}else if(e.encrypt===2&&t!==void 0){let a=e.sChnnId.toString(),s=t.resolveChannelKey(a);if(s===null||s.length!==16)o=true,t.onDecryptError?.(wn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:s?.length??0,keySource:s===null?"miss":"cache"}));else {let c;try{let u=Ue.decode(e.sContent);if(u.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");c=u.cipherData;}catch(u){o=true,t.onDecryptError?.(wn(e,n,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:s.length,keySource:"cache",cause:u})),c=new Uint8Array;}if(!o){let u;try{u=t.crypto.decryptSymmetric({teaKey:s,cipherData:c});}catch(y){o=true,t.onDecryptError?.(wn(e,n,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:s.length,keySource:"cache",cipherDataByteLength:c.length,cause:y})),u=new Uint8Array;}if(!o)try{r=pe.decode(u);}catch(y){o=true,t.onDecryptError?.(wn(e,n,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:s.length,keySource:"cache",cipherDataByteLength:c.length,decryptedByteLength:u.length,cause:y}));}}}}else o=true,t?.onDecryptError?.(wn(e,n,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"}));if(!o){let a=Jr({channelId:e.sChnnId,senderId:e.sFromId,msgTime:e.msgTime,encrypt:e.encrypt},r);if(a!==null)return a}if(!o&&r.contentType===DC)return Kr({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=_a(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 wn(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 vd(e,n){if(e!==0)throw new Error(`channel ${n}: errcode=${e}`)}function Is(e){return e===void 0?void 0:new Set(e)}function Cs(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 Yr(e,n){let t=BigInt(e);if(t<=0n)throw new Error(`channel ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return t}function PC(e,n,t){let r=Mn(n,t),{decryptFailed:o,...i}=e.encryption;return {...e,contentType:r.contentType,body:r.body,encryption:i}}var Ss="system",VC=32768;function Xg(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 bd(e){let n=e.conversationType==="group"&&e.contentType==="system"?e.body.system:void 0;return n?.eventType!=="group_member_joined"||n.rawNotifyType!==5?Jn(e):Jn({...e,body:{...e.body,system:{...n,eventType:"group_member_invited"}}})}function OC(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 Xr(e,n){let t=ge(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=e.sOprUserId===0n?void 0:e.sOprUserId.toString(),a=e.sMnpledUserId.map(T=>T.toString()),s={eventType:Xg(e.notifyType),rawNotifyType:e.notifyType},c=Number(e.errcode);c!==0&&(s.errcode=c),i!==void 0&&(s.operatorId=i),a.length>0&&(s.targetUserIds=a);let u=e.notifyType===12,y=e.notifyType===13;!u&&!y&&e.sContent!==""&&(s.fallbackText=e.sContent);let I=u||y?void 0:OC(e.sContent);if(I!==void 0&&(s.payload=I),u)try{s.pinnedMessageAction={type:"pin",pinnedMessage:us(e.sContent,{conversationId:e.sGrpId.toString(),...i===void 0?{}:{operatorId:i}})};}catch(T){s.pinnedMessageAction={type:"invalid",code:Or(T)};}else y&&(s.pinnedMessageAction={type:"unpin"});let v={id:t,conversationId:e.sGrpId.toString(),conversationType:"group",senderId:Ss,contentType:"system",body:{system:s},createdAt:o,sortKey:Te(o,t),status:"sent",receipt:"read",encryption:{encrypted:false}};return r>0&&(v.serverTime=r),n.keepRaw&&(v.raw={cmdId:n.cmdId}),bd(v)}function Nd(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!==VC?null:{state:"active",reason:""}}default:return null}}function _d(e){switch(e){case 33557:return {state:"dismissed",reason:"group_dismissed"};case 33281:return {state:"unknown_restricted",reason:"send_forbidden"};default:return null}}var KC=new Set([8196,8976]),zg=pe.create({contentType:1,content:""});function LC(e){return ts.encode(ts.create({userId:BigInt(e.userId),msgId:"",deliveredMsgIds:e.deliveredMsgIds??[],limit:e.limit??50,clientType:e.clientType??0}))}function ZC(e){return ns.encode(ns.create({userId:BigInt(e.userId),clientType:String(e.clientType??0),size:BigInt(e.size??21)}))}function QC(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=Ue.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 pe.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 zr(e,n,t){if(As(e.sGroupId,n.expectedGroupId),e.cmdId===8980){let c=bn.decode(e.sMsgData),u={...c,sMsgId:c.sMsgId||e.sMsgId,sFromId:c.sFromId===0n?e.sFromId:c.sFromId,sGrpId:c.sGrpId===0n?e.sGroupId:c.sGrpId,sToId:c.sToId===0n?e.sGroupId:c.sToId,msgTime:c.msgTime===0n?e.msgTime:c.msgTime,parentMsgId:c.parentMsgId||e.parentMsgId};return As(u.sGrpId,n.expectedGroupId),n.onReaction?.(Hr(u)),null}if(e.cmdId===8708){let c=It.decode(e.sMsgData);return As(c.sGrpId,n.expectedGroupId),Xr(c,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw})}if(!KC.has(e.cmdId))return null;let r=bn.decode(e.sMsgData);As(r.sGrpId,n.expectedGroupId);let o=zg,i=false,a=false;if(r.encrypt===0)try{o=pe.decode(r.sContent);}catch{a=true;}else if(r.encrypt===1&&t!==void 0){let c=QC(r,r.sGrpId.toString(),t);o=c??zg,i=c===null;}else i=true;let s=Hn(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return a&&(s.contentType="unknown",s.body={unknown:{reason:"malformed-content"}},s.raw={...s.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:s.conversationId},messageId:s.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:n.source??"offline",createdAt:Date.now()}),s.refMessageId===void 0&&e.parentMsgId&&(s.refMessageId=ge(e.parentMsgId)),e.isEdit===1&&(s.edited=true),s}function As(e,n){if(n!==void 0&&e.toString()!==n)throw new Error(`group history: \u54CD\u5E94\u7FA4\u4E0D\u5C5E\u4E8E\u8BF7\u6C42\uFF08groupId=${e}\uFF09`)}function WC(e,n,t){let r=sd.decode(e),o=[],i=[];for(let a of r.msgList){i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});let s=zr(a,n,t);s!==null&&o.push(s);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function HC(e,n,t){let r=id.decode(e),o=[],i=[];for(let a of r.sessionList){o.push({groupId:a.groupId.toString(),unreadCount:Number(a.unreadCount)});for(let s of a.msgList){let c=zr(s,n,t);c!==null&&i.push(c);}}return {unreads:o,messages:i}}function JC(e){return rs.encode(rs.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 YC(e,n,t){let r=os.decode(e),o=[];for(let a of r.msgList){let s=zr(a,n,t);s!==null&&o.push(s);}let i=r.msgList.map(a=>Number(a.msgTime));return {messages:o,batchSize:r.msgList.length,...i.length===0?{}:{oldestEntryTime:Math.min(...i),newestEntryTime:Math.max(...i)}}}async function XC(e,n,t,r){r.signal?.throwIfAborted();let o=os.decode(e);if(o.code!==200)throw new Error(`group history: code=${o.code}`);let i=[],a,s,c=0;for(let u of o.msgList){r.signal?.throwIfAborted(),c>0&&c%5===0&&(await r.yieldToEventLoop(),r.signal?.throwIfAborted());let y=zr(u,n,t);y!==null&&i.push(y);let I=Number(u.msgTime);a=a===void 0?I:Math.min(a,I),s=s===void 0?I:Math.max(s,I),c+=1;}return r.signal?.throwIfAborted(),{messages:i,batchSize:o.msgList.length,...a===void 0?{}:{oldestEntryTime:a,newestEntryTime:s}}}function zC(e){return is.encode(is.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId),msgIds:Rt(e.messageIds),clientType:e.clientType??0}))}function qC(e,n,t){let r=ad.decode(e),o=[];for(let i of r.msgList){let a=zr(i,n,t);a!==null&&(i.isCancel===1&&(a.recalled={by:a.senderId,at:a.serverTime??a.createdAt},a.body={}),o.push(a));}return {messages:o,missingMessageIds:Mt(r.missingMsgIds),code:r.code}}function jC(e){return ss.encode(ss.create({userId:BigInt(e.userId),groupId:BigInt(e.groupId)}))}function $C(e){return {code:dd.decode(e).code}}var eS=1;function Et(e,n,t){let r=e.sFromId.toString(),o=e.sToId.toString(),i=Number(e.msgTime),a=ge(e.sMsgId),s=Mn(n,t.selfId),c=i>0?i:t.receivedAt??Date.now(),u={id:a,conversationId:fs(t.selfId,r,o),conversationType:"direct",senderId:r,contentType:s.contentType,body:s.body,createdAt:c,sortKey:Te(c,a),status:"sent",receipt:"unread",encryption:{encrypted:e.encrypt!==0}};return t.decryptFailed===true&&(u.encryption.decryptFailed=true),i>0&&(u.serverTime=i),e.parentMsgId&&(u.refMessageId=ge(e.parentMsgId)),t.edited===true&&(u.edited=true),t.keepRaw&&(u.raw=nS(e,n,t.cmdId)),u}function nS(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 qr(e,n){return {sToId:BigInt(e.conversationId),sFromId:BigInt(n.selfId),sMsgId:Me(e.id),msgType:eS,encrypt:e.encryption.encrypted?1:0,bMessage:an(e.body),...e.refMessageId!==void 0&&e.refMessageId!==""?{parentMsgId:Xe(e.refMessageId)}:{}}}function Dd(e){return {id:ge(e.sMsgId),serverTime:Number(e.sendtime),errcode:e.errcode}}function hs(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 tS(e){return $i.encode($i.create({userId:BigInt(e.userId),msgId:String(Date.now()),limit:e.limit??100,clientType:e.clientType??0,deliveredMsgInfos:e.deliveredMsgInfos??[]}))}var rS=new Set([4100,4113,4644,4645]),qg=pe.create({contentType:1,content:""});function oS(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=Ue.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 pe.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 iS(e,n,t){let r=rd.decode(e),o=[],i=[];for(let a of r.msgList){i.push({msgId:a.sMsgId,msgTime:a.msgTime,cmdId:a.cmdId});let s=jg(a,n,t);s!==null&&o.push(s);}return {messages:o,deliveredMsgInfos:i,batchSize:r.msgList.length,responseBytes:e.length}}function jg(e,n,t){if(e.cmdId===4653){let c=Qn.decode(e.sMsgData),u={...c,sMsgId:c.sMsgId||e.sMsgId,sFromId:c.sFromId===0n?e.sFromId:c.sFromId,sToId:c.sToId===0n?e.sToId:c.sToId,msgTime:c.msgTime===0n?e.msgTime:c.msgTime,parentMsgId:c.parentMsgId||e.parentMsgId};return n.onReaction?.(Wr(u,n.selfId)),null}if(!rS.has(e.cmdId))return null;let r=Qn.decode(e.sMsgData),o=qg,i=false,a=false;if(r.encrypt===0)try{o=pe.decode(r.sContent);}catch{a=true;}else if(r.encrypt===1&&t!==void 0){let c=oS(r,t);o=c??qg,i=c===null;}else i=true;let s=Et(r,o,{selfId:n.selfId,cmdId:e.cmdId,receivedAt:n.receivedAt,keepRaw:n.keepRaw,decryptFailed:i});return a&&(s.contentType="unknown",s.body={unknown:{reason:"malformed-content"}},s.raw={...s.raw,contentDecodeFailure:{codec:"BMessage",byteLength:r.sContent.length}}),i&&r.encrypt===1&&t?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:s.conversationId},messageId:s.id,wireEncrypt:1,sContent:r.sContent.slice(),...r.encryptVersion===""?{}:{encryptVersion:r.encryptVersion},cmdId:e.cmdId,source:"offline",createdAt:Date.now()}),s.refMessageId===void 0&&e.parentMsgId&&(s.refMessageId=ge(e.parentMsgId)),e.isCancel===1&&(s.recalled={by:s.senderId,at:s.serverTime??s.createdAt},s.body={}),e.isEdit===1&&(s.edited=true),s}function sS(e){return es.encode(es.create({userId:BigInt(e.userId),msgIds:Rt(e.messageIds),clientType:e.clientType??0}))}function aS(e,n,t){let r=od.decode(e),o=[];for(let i of r.msgList){let a=jg(i,n,t);a!==null&&o.push(a);}return {messages:o,missingMessageIds:Mt(r.missingMsgIds),code:r.code}}function cn(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 Tt(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 dS(e){let n=/^(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?/.exec(e.trim()),t=n?Number(n[1]):Number.NaN;if(!Number.isFinite(t)||t<1900)return;let r=new Date,o=r.getFullYear()-t,i=n?.[2]===void 0?void 0:Number(n[2]),a=n?.[3]===void 0?void 0:Number(n[3]);if(i!==void 0){let s=r.getMonth()+1;(s<i||s===i&&a!==void 0&&r.getDate()<a)&&(o-=1);}return o>=0&&o<200?o:void 0}function cS(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 lS(e){let n=t=>t.flatMap(r=>{if(r===null||typeof r!="object")return [];let o=r,i=o.country_code??o.countryCode;if(typeof i!="string"||typeof o.mobile!="string")return [];let a=i.trim(),s=o.mobile.trim();return a===""||s===""?[]:[{countryCode:a,mobile:s}]});for(let t of ["extend_mobile","extendMobile"]){let r=e[t];if(Array.isArray(r))return n(r);if(typeof r=="string"&&r.trim().startsWith("["))try{let o=JSON.parse(r);if(Array.isArray(o))return n(o)}catch{}}return []}var uS=["user_id","userId","id","uid"],gS=["nick_name","nickName","nickname","name"],mS=["remark_name","remarkName"],pS=["head_img_url","headImgUrl","avatar","head_url","headUrl","portrait"],fS=["per_signature","signature","sign"],yS=["mid"],IS=["birthday"],CS=["public_key","publicKey"],$g=["is_undisturb","isUndisturb"];function SS(e){let n=e.user_info,t=n!==null&&typeof n=="object"?n:e,r=cn(t,uS);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:cn(t,gS)??""},i=cn(e,mS);i!==void 0&&(o.remark=i);let a=cn(t,pS);a!==void 0&&(o.avatar=a);let s=cn(t,fS);s!==void 0&&(o.signature=s);let c=cn(t,yS);c!==void 0&&(o.miCallId=c);let u=cn(t,IS);if(u!==void 0){o.birthday=u;let A=dS(u);A!==void 0&&(o.age=A);}let y=cS(e);y.length>0&&(o.remarkEmail=y);let I=lS(e);I.length>0&&(o.remarkPhones=I);let v=cn(t,CS);v!==void 0&&(o.publicKey=v);let T=Tt(e,$g);return T!==void 0&&(o.muted=T===1),o}var AS=["group_id","groupId","id","gid"],hS=["group_name","groupName","name"],RS=["group_head_img_url","groupHeadImgUrl","head_img_url","headImgUrl","avatar"],MS=["total_users","member_count","memberCount","member_num","memberNum"],ES=["status"],TS=["is_ingroup","isInGroup","isIngroup"],vS=["user_id","userId","owner_id","ownerId","master_id","masterId"],bS=["verify_way","verifyWay"],NS=["invite_code","inviteCode"];function _S(e){let n=cn(e,AS);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:cn(e,hS)??""},r=cn(e,RS);r!==void 0&&(t.avatar=r);let o=Tt(e,MS);o!==void 0&&(t.memberCount=o);let i=Tt(e,ES);i!==void 0&&(t.status=i);let a=Tt(e,TS);a!==void 0&&(t.isInGroup=a===1);let s=cn(e,vS);s!==void 0&&(t.ownerId=s);let c=Tt(e,bS);c!==void 0&&(t.verifyWay=c);let u=cn(e,NS);u!==void 0&&(t.inviteCode=u);let y=e.to_user;if(y!==null&&typeof y=="object"){let I=Tt(y,$g);I!==void 0&&(t.muted=I===1);}return t}function Gd(e,n){if(e.robotId.trim()==="")throw new Error("robot reply: robotId \u7F3A\u5931");if(e.userId<=0n)throw new Error("robot reply: userId \u7F3A\u5931\u6216\u975E\u6CD5");let t=ge(e.sMsgId),r=Number(e.msgTime),o=r>0?r:n.receivedAt??Date.now(),i=em(e.content),a=Mn(i,n.selfId),s={id:t,conversationId:e.robotId,conversationType:"robot",senderId:e.robotId,contentType:a.contentType,body:a.body,createdAt:o,sortKey:Te(o,t),status:"sent",receipt:"unread",encryption:{encrypted:false}};return r>0&&(s.serverTime=r),n.keepRaw&&(s.raw={cmdId:n.cmdId,chat:{sMsgId:e.sMsgId,sFromId:e.robotId,sToId:e.userId.toString(),msgType:11,encrypt:0,msgTime:e.msgTime.toString()},content:{contentType:i.contentType,text:i.content||void 0}}),s}function Ud(e){if(e.msgId.trim()==="")throw new Error("robot ack: msgId \u7F3A\u5931");return {id:ge(e.msgId),serverTime:0,errcode:e.errCode}}function kd(e,n){if(e.encryption.encrypted)throw new Error("robot \u79C1\u804A\u53EA\u8D70\u660E\u6587 JSON\uFF08EncryptType.NONE\uFF09\uFF0C\u7981\u6B62 encrypt=1");if(e.conversationId.trim()==="")throw new Error("robot \u51FA\u7AD9: robotId \u7F3A\u5931");let t=an(e.body);return {userId:BigInt(n.selfId),robotId:e.conversationId,sMsgId:Me(e.id),msgTime:BigInt(e.createdAt),content:GS(t,e.refMessageId)}}function em(e){let n=e.trim();if(n.startsWith("{"))try{let t=JSON.parse(n);if(t!==null&&typeof t=="object"&&!Array.isArray(t))return pe.create(DS(t))}catch{}try{return pe.decode(new TextEncoder().encode(e))}catch{return pe.create({contentType:1,content:e})}}function DS(e){let n=_n(e.contentType)??1,t=typeof e.content=="string"?e.content:"",r=Rs(e.md5)??Rs(e.MD5),o=_n(e.fileLength);return {contentType:n,content:t,..._n(e.width)!==void 0?{width:_n(e.width)}:{},..._n(e.height)!==void 0?{height:_n(e.height)}:{},..._n(e.duration)!==void 0?{duration:_n(e.duration)}:{},...Rs(e.describe)!==void 0?{describe:Rs(e.describe)}:{},...r!==void 0?{MD5:r}:{},..._n(e.imageType)!==void 0?{imageType:_n(e.imageType)}:{},...o!==void 0&&o>0?{fileLength:BigInt(Math.round(o))}:{}}}function GS(e,n){let t={contentType:e.contentType,content:e.content};return e.contentType===1&&(t.logicType=0),e.width!==void 0&&(t.width=e.width),e.height!==void 0&&(t.height=e.height),e.duration!==void 0&&(t.duration=e.duration),e.describe!==void 0&&e.describe!==""&&(t.describe=e.describe),e.MD5!==void 0&&e.MD5!==""&&(t.md5=e.MD5),e.imageType!==void 0&&(t.imageType=e.imageType),e.fileLength!==void 0&&e.fileLength>0n&&(t.fileLength=Number(e.fileLength)),n!==void 0&&n!==""&&(t.parentMsgId=Xe(n)),JSON.stringify(t)}function _n(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"&&e.trim()!==""){let n=Number(e);if(Number.isFinite(n))return n}}function Rs(e){return typeof e=="string"&&e!==""?e:void 0}function US(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0?"":e.body.text??""}function kS(e){if(Yn(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==="filesAlbum"&&e.body.filesAlbum!==void 0)return {kind:"filesAlbum",count:e.body.filesAlbum.items.length,...e.body.filesAlbum.caption===void 0?{}:{caption:e.body.filesAlbum.caption}};if(e.contentType==="file")return {kind:"file"};if(e.contentType==="sticker")return {kind:ca(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==="gift")return {kind:"gift"};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 xS(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)&&BS(e.targetUserIds,n.targetUserIds)&&FS(e.payload,n.payload)}function Yn(e){return e.body.system?.timelineVisibility!=="hidden"}function BS(e,n){return e===void 0||n===void 0?e===n:e.length===n.length&&e.every((t,r)=>t===n[r])}function FS(e,n){return e===n?true:e===void 0||n===void 0?false:JSON.stringify(e)===JSON.stringify(n)}function xd(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 xS(e.system,n.system);case "game":return e.gameType===n.gameType;case "call":return e.callKind===n.callKind;case "filesAlbum":{let t=n;return e.count===t.count&&e.caption===t.caption}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 "gift":case "redPacket":case "encrypted":case "decrypt-failed":case "unknown":return true}}function wS(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 Bd(e,n={}){let t=e.contentType==="system"&&Yn(e)?e.body.system:void 0,r=e.contentType==="text"?e.mention:void 0;return {id:e.conversationId,type:e.conversationType,title:"",lastMessagePreview:US(e),lastMessageSummary:kS(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:En(e),unreadCount:n.unreadCount??0,mentionUnreadCount:n.mentionUnreadCount??0,pinned:false,muted:false,lastMessageSendState:wS(e,n.selfId)}}function tm(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 Fd(e,n){let t=Uint8Array.of(e<<3),r=tm(n),o=new Uint8Array(1+r.length);return o.set(t,0),o.set(r,1),o}function nm(e,n){let t=e<<3|2,r=tm(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 PS(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 vt(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 rm(e,n,t){if(t===0)return vt(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=vt(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 VS(e){let n=new TextEncoder,t=[Fd(1,BigInt(e.userId)),nm(2,n.encode(e.msgId??""))];for(let r of e.deliveredMsgIds??[])t.push(nm(3,n.encode(r)));return t.push(Fd(4,BigInt(e.limit??100))),t.push(Fd(5,BigInt(e.clientType??0))),PS(t)}function OS(e){let n=0,t=0,r=new Uint8Array(0),o="",i=new TextDecoder;for(;n<e.length;){let a=e[n];n+=1;let s=a>>>3,c=a&7;if(s===1&&c===0){let u=vt(e,n);t=Number(u.value),n=u.offset;continue}if(s===2&&c===2){let u=vt(e,n),y=u.offset+Number(u.value);if(y>e.length)throw new Error("signal offline: sMsgData \u8D8A\u754C");r=new Uint8Array(e.subarray(u.offset,y)),n=y;continue}if(s===3&&c===2){let u=vt(e,n),y=u.offset+Number(u.value);if(y>e.length)throw new Error("signal offline: sMsgId \u8D8A\u754C");o=i.decode(e.subarray(u.offset,y)),n=y;continue}n=rm(e,n,c);}return {cmdId:t,body:r,msgId:o}}function KS(e){let n=[],t=0;for(;t<e.length;){let r=e[t];t+=1;let o=r>>>3,i=r&7;if(o===3&&i===2){let a=vt(e,t),s=a.offset+Number(a.value);if(s>e.length)throw new Error("signal offline: msgList \u8D8A\u754C");n.push(OS(e.subarray(a.offset,s))),t=s;continue}t=rm(e,t,i);}return {items:n,deliveredMsgIds:n.map(r=>r.msgId).filter(r=>r!=="")}}var om=-5,Pn=-4,LS=new Set(["image","video","voice","file","sticker"]);function ZS(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.gift!==void 0&&n.push("gift"),e.call!==void 0&&n.push("call"),e.redPacket!==void 0&&n.push("redPacket"),e.filesAlbum!==void 0&&n.push("filesAlbum"),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 Xn(e){let n=bd(ms(gd(e)));if(n.body.video!==void 0){let i=Eo(n.body.video);i!==n.body.video&&(n={...n,body:{...n.body,video:i}});}n.body.game!==void 0&&!wt(n.body.game)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}}),n.body.call!==void 0&&!il(n.body.call)&&(n={...n,contentType:"unknown",body:{unknown:{reason:"malformed-content"}}});let t=ZS(n.body);if(t!==void 0&&t!==n.contentType&&(n={...n,contentType:t}),n=Jn(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 wd(e){if(e.status==="uploading"){let n=LS.has(e.contentType)?e.contentType:void 0;return {...e,status:"failed",failure:{code:om,reason:"unknown",displayCode:"media.uploadInterrupted",...n!==void 0?{mediaKind:n}:{},retryable:false}}}if(e.status==="failed"&&e.failure?.code===Pn){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 QS(e,n){return e.contentType==="transfer"&&e.body.transfer!==void 0&&e.body.transfer.serialNumber===n}function Ms(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 im(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 am(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=im(e),i=im(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 sm(e){let n=e.body.transfer;return e.contentType!=="transfer"||n===void 0?null:`${e.conversationType}\0${e.conversationId}\0${n.serialNumber}`}function dm(e,n){return e.status===n.status&&e.receiveTime===n.receiveTime&&e.returnTime===n.returnTime&&e.isRead===n.isRead}function Pd(e,n){let t=new Map,r=new Set(n.map(a=>a.id)),o=new Map(n.map(a=>[a.id,a]));for(let a of n){let s=sm(a);s!==null&&t.set(s,[...t.get(s)??[],a]);}if(t.size===0)return [...n];for(let a of e){let s=sm(a);s===null||!t.has(s)||r.has(a.id)||t.get(s)?.push(a);}let i=[];for(let a of t.values()){let c=a.reduce(am).body.transfer;if(c!==void 0)for(let u of a){let y=u.body.transfer;if(y===void 0||dm(y,c))continue;let I={...u,body:{transfer:Ms(y,c)}};r.has(u.id)?o.set(u.id,I):i.push(I);}}return [...n.map(a=>o.get(a.id)??a),...i]}function Es(e,n,t,r){let o=[];for(let i of e){if(!QS(i,n))continue;let a=i.body.transfer;if(a===void 0)continue;let s={...a,status:t,...t===1&&r!==void 0?{receiveTime:r}:{},...t===2||t===3?{returnTime:r??a.returnTime}:{}},c={...i,body:{transfer:s}};am(i,c)!==c||dm(a,s)||o.push({...i,body:{transfer:s}});}return o}function Vd(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 cm(e,n,t=e.encrypt){return Bn.encode(Bn.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 HS(e,n,t){return X({command:12289,body:cm(e,n,t)})}function lm(e){return pe.encode(pe.create(e.bMessage))}function Kd(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:lm(e)}),o=Ue.encode(Ue.create({cipherData:r}));return cm(e,o,2)}function um(e){return HS(e,lm(e),0)}function gm(e,n,t){return X({command:12289,body:Kd(e,n,t)})}function Ld(e,n){let t=Qn.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 Qn.encode(t)}function mm(e,n){return X({command:4097,body:Ld(e,n)})}function pm(e,n){let t=Ld(e,n);return [X({command:4097,body:t}),X({command:4113,body:t})]}function Zd(e){return pe.encode(pe.create(e.bMessage))}function Qd(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Zd(e),publicKey:t});return Ue.encode(Ue.create({secretKey:r,cipherData:o}))}function fm(e){return mm(e,Zd(e))}function ym(e){return pm(e,Zd(e))}function Im(e,n,t){return mm(e,Qd(e,n,t))}function Cm(e,n,t){return pm(e,Qd(e,n,t))}function Sm(e,n,t){return Ld(e,Qd(e,n,t))}function Am(e,n,t){let r=bn.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 bn.encode(r)}function hm(e,n,t){return X({command:8193,body:Am(e,n,t)})}function Rm(e){return pe.encode(pe.create(e.bMessage))}function Mm(e,n,t){let{secretKey:r,cipherData:o}=n.encryptEndToEnd({plain:Rm(e),publicKey:t});return Ue.encode(Ue.create({secretKey:r,cipherData:o}))}function Em(e){return hm(e,Rm(e))}function Tm(e,n,t,r){return hm(e,Mm(e,n,t),r)}function vm(e,n,t,r){return Am(e,Mm(e,n,t),r)}function bm(e){let n=zo.create({userId:BigInt(e.selfId),receiveId:BigInt(e.peerId),msgId:Me(e.messageId),content:e.content});return X({command:4644,body:zo.encode(n)})}function Nm(e){let n=jo.create({userId:BigInt(e.selfId),groupId:BigInt(e.groupId),msgId:Me(e.messageId),content:e.content});return X({command:8976,body:jo.encode(n)})}function _m(e){let n=Ni.create({userId:BigInt(e.selfId),radioId:BigInt(e.channelId),msgId:Me(e.messageId),content:e.content,IncrId:e.incrementId});return X({command:12808,body:Ni.encode(n)})}function Dm(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 Gm(){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=qr({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},refMessageId:n.refMessageId},{selfId:t.selfId}),i=Sm(o,t.crypto,r);return {ok:true,frame:bm({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,content:i})}}}}function Um(){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=Vr({id:e.messageId,conversationId:n.conversationId,body:{text:e.text},encryption:{encrypted:true},mention:e.mention,refMessageId:n.refMessageId},{selfId:t.selfId}),i=vm(o,t.crypto,r.publicKey,r.version);return {ok:true,frame:Nm({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,content:i})}}}}function JS(e){return {conversationType:"channel",async prepare(n,t,r){if(t.contentType!=="text")return {ok:false,reason:"unsupported-content"};let o;try{o=await e.resolveProfile(t.conversationId);}catch{return {ok:false,reason:"failed"}}if(o===null||o.channelState!=="active"||!o.permissions.sendMessages)return {ok:false,reason:"restricted"};if(r.crypto===void 0)return {ok:false,reason:"no-key"};let i=await e.resolveChannelKey(t.conversationId);if(i===null||i.length!==16)return {ok:false,reason:"no-key"};let a=t.serverTime??t.createdAt,s=Vt({id:n.messageId,conversationId:t.conversationId,body:{text:n.text},mention:n.mention,refMessageId:t.refMessageId},{selfId:r.selfId,createdAt:a}),c=Kd(s,r.crypto,i),u=t.extensions?.channelSequence,y=typeof u=="string"&&/^\d+$/.test(u)?BigInt(u):0n;return {ok:true,frame:_m({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,content:c,incrementId:y})}}}}function Wd(){return Dm([Gm(),Um()])}var km=120*1e3,YS=15e3;function Hd(e){let n=e.now??(()=>Date.now()),t=e.strategies??Wd(),r=new Map;function o(i,a){let s=r.get(i);s!==void 0&&(clearTimeout(s.timer),r.delete(i),s.resolve(a));}return {edit(i){let a=e.domainState.getConversationMessage(i,i.messageId);if(a===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationId!==a.conversationId||i.conversationType!==a.conversationType)return Promise.resolve({ok:false,reason:"not-found"});let s=e.getSelfId();if(a.senderId!==s)return Promise.resolve({ok:false,reason:"not-own"});if(a.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(a.recalled!==void 0)return Promise.resolve({ok:false,reason:"recalled"});if(a.deletedForEveryone!==void 0)return Promise.resolve({ok:false,reason:"deleted"});if(i.text==="")return Promise.resolve({ok:false,reason:"empty"});let c=t.resolve(i.conversationType);if(c===void 0)return Promise.resolve({ok:false,reason:"unsupported"});if(n()-(a.serverTime??a.createdAt)>km)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let u=Me(i.messageId),y=r.get(u);if(y!==void 0)return y.promise;let I,v=new Promise(A=>{I=A;}),T={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,text:i.text,mention:i.mention,resolve:I,timer:setTimeout(()=>{},0),promise:v};return clearTimeout(T.timer),r.set(u,T),(async()=>{let A;try{A=await c.prepare(i,a,{selfId:s,crypto:e.crypto,resolvePublicKey:e.resolvePublicKey,resolveGroupKey:e.resolveGroupKey});}catch{if(r.get(u)!==T)return;o(u,{ok:false,reason:"encrypt-failed"});return}if(r.get(u)===T){if(!A.ok){o(u,A);return}T.timer=setTimeout(()=>o(u,{ok:false,reason:"timeout"}),YS),e.sendFrame(A.frame);}})(),v},onEditAck({sMsgId:i,errcode:a}){let s=r.get(i);if(s!==void 0){if(a===32768||a===0){e.domainState.editMessage({conversationId:s.conversationId,conversationType:s.conversationType},s.messageId,{text:s.text},s.mention),o(i,{ok:true});return}o(i,s.conversationType==="channel"?{ok:false,reason:"failed",errcode:a}:{ok:false,reason:"failed"});}},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function bt(e){if(e===void 0)return false;let n=e.trim();return !(n===""||n.startsWith("blob:"))}function yn(e){if(e!==void 0)return new Uint8Array(e)}function XS(e){return e.outbox.enqueueText({conversationId:e.target.conversationId,conversationType:e.target.conversationType,text:e.body.text??"",encrypted:e.encryption.encrypted}).id}function st(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 zS={contentType:"text",isContentReady:e=>(e.body.text??"").trim()!=="",cloneBody:e=>({text:e.body.text??""}),enqueue:XS},qS={contentType:"image",isContentReady:e=>bt(e.body.image?.url),cloneBody:e=>{let n=e.body.image;if(n===void 0)return {};let t=yn(n.thumbData),r=yn(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:st},jS={contentType:"video",isContentReady:e=>bt(e.body.video?.url),cloneBody:e=>{let n=e.body.video;if(n===void 0)return {};let t=yn(n.thumbData),r=yn(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:st},$S={contentType:"file",isContentReady:e=>bt(e.body.file?.url),cloneBody:e=>{let n=e.body.file;if(n===void 0)return {};let t=yn(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:st},eA={contentType:"mediaAlbum",isContentReady:e=>{let n=e.body.mediaAlbum;return n===void 0||n.items.length===0?false:n.items.every(t=>bt(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=yn(t.thumbData),o=yn(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:st};function nA(e){let n=yn(e.thumbData),t=yn(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 tA(e){let n=yn(e.thumbData),t=yn(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 xm(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"}:bt(r.url)?{ok:true,contentType:r.kind,body:r.kind==="video"?tA(r):nA(r)}:{ok:false,reason:"item-not-ready"}}var rA={contentType:"sticker",isContentReady:e=>{let n=e.body.sticker;return n===void 0?false:n.exprType!==2?bt(n.url):fo(n.url)&&$n(n.width)&&n.width>0&&$n(n.height)&&n.height>0},cloneBody:e=>{let n=e.body.sticker;if(n===void 0)return {};let t=yn(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=>st({...e,encryption:{encrypted:false}})},oA={contentType:"game",isContentReady:e=>e.body.game!==void 0&&wt(e.body.game),cloneBody:e=>{let n=e.body.game;return n===void 0?{}:{game:{...n}}},enqueue:st},iA={contentType:"miniProgram",isContentReady:e=>e.body.miniProgram!==void 0&>(e.body.miniProgram),cloneBody:e=>{let n=e.body.miniProgram;return n===void 0?{}:{miniProgram:{...n}}},enqueue:st},sA=[zS,qS,jS,$S,eA,rA,oA,iA],aA=new Map(sA.map(e=>[e.contentType,e]));function jr(e){return aA.get(e)}function dA(e){return e.contentType==="voice"||e.contentType==="call"||e.contentType==="unknown"||e.encryption.decryptFailed===true}function Ts(e){return e.recalled!==void 0||e.deletedForEveryone!==void 0||e.encryption.decryptFailed===true?false:jr(e.contentType)!==void 0}function Bm(e){let n=jr(e.contentType);return n===void 0?false:n.isContentReady(e)}function Jd(e){return Ts(e)&&Bm(e)}var Fm=new Set(["text","image","video","voice","file","sticker","contact","game","miniProgram","robot","transfer","gift","call","redPacket","mediaAlbum"]);function Yd(e){return Fm.has(e.contentType)&&e.recalled===void 0&&e.deletedForEveryone===void 0&&e.encryption.decryptFailed!==true}function vs(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 cA(e,n){let t=/^(\d{1,2}):(\d{2})_(\d{1,2}):(\d{2})$/.exec(e);if(t===null)return false;let r=Number(t[1]),o=Number(t[2]),i=Number(t[3]),a=Number(t[4]);if(r>23||i>23||o>59||a>59)return false;let s=new Date(n),c=s.getHours()*60+s.getMinutes(),u=r*60+o,y=i*60+a;return u<=y&&u<=c&&c<=y}function Xd(e){let{channelState:n,snapshot:t}=e;if(t===void 0)return {channelState:n,permissions:e.permissions??vs("unknown",n)};if(n!==t.resolvedState)return {channelState:n,permissions:vs(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||cA(t.mutePeriod,e.nowMs))&&(r="muted",o="all-members")),{channelState:r,permissions:vs(t.role,r),...o===void 0?{}:{muteReason:o}}}function wm(e){return Math.max(e.timestamp,e.draft?.updatedAt??0)}function zd(e){return [...e].sort((n,t)=>n.pinned!==t.pinned?n.pinned?-1:1:n.pinned&&t.pinned?(t.topTime??0)-(n.topTime??0):wm(t)-wm(n))}var lA=new Set(["direct","group","channel","supergroup","robot"]);function ke(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function In(e){return {conversationType:e.type,conversationId:e.id}}function zn(e){return {conversationType:e.conversationType,conversationId:e.conversationId}}function de(e){if(!lA.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 Vn(e){let n=/^v1:(direct|group|channel|supergroup|robot):(.+)$/.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 Pm(){let e=new Map;return {get:n=>e.get(de(n))??null,getAll:()=>[...e.values()],set:n=>e.set(de(n.ref),n),delete:n=>e.delete(de(n)),clear:()=>e.clear()}}function Vm(e){let n=new Map,t=new Map;function r(i){if(typeof i!="string")return de(i);let a=[...t.keys()].filter(s=>Vn(s).conversationId===i);if(a.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${i}`);return a[0]}function o(i){let a=de(ke(i)),s=t.get(a);s===void 0&&(s=new Set,t.set(a,s)),s.add(i.id);}return {get:i=>n.get(i),getAll:()=>[...n.values()],getByConversation(i){let a=r(i),s=a===void 0?void 0:t.get(a);if(s===void 0)return [];let c=[];for(let u of s){let y=n.get(u);y!==void 0&&c.push(y);}return c.sort(Qe)},has:i=>n.has(i),get size(){return n.size},upsert(i,a){let s=n.get(i.id);if(s===void 0){let y={...i,sortKey:Tn(i)};return n.set(i.id,y),o(y),{message:y,isNew:true,changed:true}}let c=ht(s,i,e?.getSelfId?.()??""),u=a?.authoritativeFailure===true&&i.status==="failed"?{...c,status:"failed",failure:i.failure}:c;return n.set(u.id,u),o(u),{message:u,isNew:false,changed:!it(s,u)}},delete(i,a){let s=n.get(a);if(s===void 0||s.conversationType!==i.conversationType||s.conversationId!==i.conversationId)return false;n.delete(a);let c=de(i),u=t.get(c);return u?.delete(a),u?.size===0&&t.delete(c),true},deleteByConversation(i){let a=r(i);if(a===void 0)return;let s=t.get(a);if(s!==void 0){for(let c of s)n.delete(c);t.delete(a);}},clear(){n.clear(),t.clear();}}}var $r=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 qn(e){let n=Xn(e);if(n.conversationType!=="group"||n.contentType!=="text")return n;let t=At(n.body.text??"",n.mention);return t===n.mention?n:{...n,mention:t}}function eo(...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 Om(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=new AbortController;function o(){return r.abort(),r=new AbortController,++t}let i=null,a=null,s=[],c,u,y=false,I=false;async function v(K,Q){if(e.storage===void 0)return [];try{let W=await e.storage.getMessages(K,Q);return e.normalizeStoredUpload===void 0?W:W.map(e.normalizeStoredUpload)}catch(W){throw new $r(W)}}let T=false,A,D=false,b=true,E,f=false,p=null;function R(){c=s[0],u=s.at(-1);}function k(){let K=s[0],Q=s.at(-1);(!y||c===void 0||K!==void 0&&K.sortKey>=c.sortKey)&&(c=K),(!I||u===void 0||Q!==void 0&&Q.sortKey<=u.sortKey)&&(u=Q);}function V(K){let Q=s.filter(W=>(c===void 0||W.sortKey>=c.sortKey)&&(u===void 0||W.sortKey<=u.sortKey));if(Q.length===0){let W=K==="start"?s.at(-1):s[0];c=W,u=W;return}K==="start"?c=Q[0]:u=Q.at(-1);}function $(K){if(!(n===void 0||s.length<=n)){if(K==="start"){s=s.slice(-n),y=true,V(K),A=void 0,f&&(T=false);return}s=s.slice(0,n),I=true,V(K),b=false,E=void 0;}}function ne(K){if(n===void 0||s.length<=n)return;let Q=s.findIndex(Ae=>Ae.sortKey===K);if(Q<0)throw new Error("\u6D88\u606F\u7A97\u53E3\u88C1\u526A\u524D\u7F3A\u5C11\u5B9A\u4F4D\u76EE\u6807");let W=s.length-n,Z=Q-Math.floor((n-1)/2),ce=Math.min(W,Math.max(0,Z)),se=ce+n,ae=se<s.length;ce>0&&(y=true,A=void 0,f&&(T=false)),ae&&(I=true,b=false,E=void 0),s=s.slice(ce,se),ce>0&&V("start"),ae&&V("end");}function Se(K,Q,W){return K.conversationId===Q&&(W===null||K.conversationType===W)}function L(K,Q,W){let Z=K.filter(ce=>Se(ce,Q,W));if(W===null&&new Set(Z.map(ce=>ce.conversationType)).size>1)throw new Error(`\u88F8 conversationId \u7A97\u53E3\u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${Q}`);return Z}function Ce(K,Q){return Q===null?K:{conversationType:Q,conversationId:K}}function ye(K,Q=true){if(i!==null){for(let W of K){if(!Se(W,i,a))continue;if(p!==null){p.push(W);continue}let Z=s.findIndex(se=>se.id===W.id);if(Z>=0){let se=s[Z].sortKey!==W.sortKey;s[Z]=W,se&&(s.sort(Qe),k()),c?.id===W.id&&c.sortKey===W.sortKey&&(c=W),u?.id===W.id&&u.sortKey===W.sortKey&&(u=W);continue}let ce=u;ce===void 0||W.sortKey>ce.sortKey?I||(s.push(W),s.sort(Qe),k()):c!==void 0&&W.sortKey>=c.sortKey&&(s.push(W),s.sort(Qe));}Q&&$(I?"end":"start");}}return {async open(K,{limit:Q}){let W=typeof K=="string"?K:K.conversationId,Z=typeof K=="string"?null:K.conversationType,ce=o();i=W,a=Z,s=[],R(),y=false,I=false,T=false,A=void 0,D=false,b=true,E=void 0,f=false,p=[];try{let se=e.storage===void 0?[]:await v(Ce(W,Z),{limit:Q}),Ae=L(se,W,Z).map(qn).filter(w=>e.shouldIncludeMessage?.(w)??!0);if(ce!==t)return {conversationId:W,messages:Ae,stale:!0};let O=p??[];return s=[...Ae].sort(Qe),R(),y=Ae.length===Q||e.loadOlderFromRemote!==void 0,D=e.loadOlderFromRemote!==void 0&&(Ae.length<Q||Z!==null&&e.shouldEstablishRemoteLatest?.({conversationType:Z,conversationId:W},Ae)===!0),I=!1,b=!0,E=void 0,p=null,ye(O,!1),$("start"),{conversationId:W,messages:s,stale:!1}}finally{ce===t&&(p=null);}},async openAt(K,{anchorSortKey:Q,limit:W,seedMessages:Z,seedHasNewer:ce,seedRemotePagination:se}){let ae=typeof K=="string"?K:K.conversationId,Ae=typeof K=="string"?null:K.conversationType,O=i===ae&&a===Ae&&p===null,w=o();i=ae,a=Ae;let m=()=>{c=void 0,u=void 0,y=false,I=false,T=false,A=void 0,D=false,b=true,E=void 0,f=false;};O||(s=[],m()),p=[];try{if(Z!==void 0&&Z.length>0){if(Z.some(ee=>!Se(ee,ae,Ae)))throw new Error(`messageWindow.openAt seedMessages \u4F1A\u8BDD\u5F52\u5C5E\u4E0D\u4E00\u81F4\uFF08conversationId=${ae}\uFF09`);let B=eo(Z).map(qn).filter(ee=>e.shouldIncludeMessage?.(ee)??!0).sort(Qe);if(!B.some(ee=>ee.sortKey===Q))throw new Error(`messageWindow.openAt seedMessages \u7F3A\u5C11 anchor\uFF08conversationId=${ae}\uFF09`);let P=p??[];return m(),s=B,R(),y=e.loadOlderFromRemote!==void 0,I=ce??B.length===W,b=!I,E=se?.newerCursor,f=se!==void 0,p=null,ye(P,!1),ne(Q),{conversationId:ae,messages:s,stale:w!==t}}if(e.storage===void 0)return s=[],m(),{conversationId:ae,messages:[],stale:w!==t};let[C,h]=await Promise.all([v(Ce(ae,Ae),{beforeSortKey:Q,limit:W}),v(Ce(ae,Ae),{afterSortKey:Q,limit:W})]),S=L(C,ae,Ae).map(qn).filter(B=>e.shouldIncludeMessage?.(B)??!0),_=L(h,ae,Ae).map(qn).filter(B=>e.shouldIncludeMessage?.(B)??!0);if(w!==t)return {conversationId:ae,messages:eo(S,_).map(qn),stale:!0};let G=p??[];return m(),s=eo(S,_).sort(Qe),R(),y=S.length===W||e.loadOlderFromRemote!==void 0,I=_.length===W,b=!I,E=void 0,p=null,ye(G,!1),ne(Q),{conversationId:ae,messages:s,stale:!1}}finally{if(w===t){let C=p;p=null,O&&C!==null&&ye(C);}}},async loadOlder({limit:K}){let Q=i,W=a;if(Q===null||!y)return {conversationId:Q??"",messages:[],stale:false};let Z=t,ce=e.storage===void 0||A!==void 0||f||D?[]:await v(Ce(Q,W),{beforeSortKey:c?.sortKey,limit:K}),se=L(ce,Q,W).map(qn).filter(_=>e.shouldIncludeMessage?.(_)??true);if(Z!==t||i!==Q||a!==W)return {conversationId:Q,messages:se,stale:true};let ae=se.length===K,Ae=[...se],O=false;if(se.length>0&&(A=void 0),!ae&&e.loadOlderFromRemote!==void 0&&!T){if(W===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 _=await e.loadOlderFromRemote({conversation:{conversationType:W,conversationId:Q},signal:r.signal,oldestLoaded:se[0]??c,...A===void 0?{}:{cursor:A},intent:D?"establish-latest":"older",limit:K});if(Z!==t||i!==Q||a!==W)return {conversationId:Q,messages:[],stale:true};D=false,T=_.exhausted,A=_.nextCursor;let G=L(_.messages,Q,W),B=G.map(qn).filter(P=>e.shouldIncludeMessage?.(P)??true);if(_.replaceWindow){if(!_.exhausted&&(_.nextCursor===void 0||_.nextCursor.trim()===""))throw new Error(`\u8FDC\u7AEF\u6700\u65B0\u8FDE\u7EED\u9875\u7F3A\u5C11\u5411\u65E7 cursor\uFF08conversationType=${W}, conversationId=${Q}\uFF09`);let P=new Set(s.map(te=>te.id)),ee=eo(B).sort(Qe),ue=ee.at(-1)?.sortKey,Ee=ue===void 0?s:s.filter(te=>te.sortKey>ue);s=eo(ee,Ee).sort(Qe),R(),y=!T;let Y=ee.filter(te=>!P.has(te.id));return $("start"),{conversationId:Q,messages:Y,stale:false}}O=G.length>0&&B.length===0,O&&(T=true,A=void 0),Ae.push(...B);}let w=new Set(s.map(_=>_.id)),m=new Set,C=Ae.filter(_=>w.has(_.id)||m.has(_.id)?false:(m.add(_.id),true)).sort(Qe);C.length>0&&(s=[...C,...s].sort(Qe));let h=[...Ae].sort(Qe),S=h[0];return S!==void 0&&(c===void 0||S.sortKey<c.sortKey)&&(c=S),u??=h.at(-1),y=ae||e.loadOlderFromRemote!==void 0&&!T&&!O,y||(c=s[0]),$("end"),{conversationId:Q,messages:C,stale:false}},async loadNewer({limit:K}){let Q=i,W=a;if(Q===null||!I)return {conversationId:Q??"",messages:[],stale:false};let Z=t,ce=u,se=ce?.sortKey,ae=e.storage===void 0||se===void 0||f?[]:await v(Ce(Q,W),{afterSortKey:se,limit:K+1}),Ae=L(ae,Q,W).map(qn).filter(B=>e.shouldIncludeMessage?.(B)??true);if(Z!==t||i!==Q||a!==W)return {conversationId:Q,messages:[],stale:true};let O=Ae.filter(B=>se===void 0||B.sortKey>se).slice(0,K),w=O.length===K,m=[...O];if(O.length>0&&(E=void 0),!w&&e.loadNewerFromRemote!==void 0&&!b){if(W===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 B=await e.loadNewerFromRemote({conversation:{conversationType:W,conversationId:Q},signal:r.signal,newestLoaded:O.at(-1)??ce,...E===void 0?{}:{cursor:E},limit:K});if(Z!==t||i!==Q||a!==W)return {conversationId:Q,messages:[],stale:true};b=B.exhausted,E=B.nextCursor,m.push(...L(B.messages,Q,W).filter(P=>e.shouldIncludeMessage?.(P)??true));}let C=new Set(s.map(B=>B.id)),h=new Set,S=m.filter(B=>se!==void 0&&B.sortKey<=se||C.has(B.id)||h.has(B.id)?false:(h.add(B.id),true)).sort(Qe);S.length>0&&(s=[...s,...S].sort(Qe));let _=[...m].sort(Qe),G=_.at(-1);return G!==void 0&&(u===void 0||G.sortKey>u.sortKey)&&(u=G),c??=_[0],I=w||e.loadNewerFromRemote!==void 0&&!b,I||(u=s.at(-1)),$("start"),{conversationId:Q,messages:S,stale:false}},applyIncoming:ye,removeMessage(K,Q){if(i!==K.conversationId||a!==K.conversationType)return false;let W=s.findIndex(Z=>Z.id===Q);return W<0?false:(o(),s.splice(W,1),k(),A=void 0,E=void 0,p=null,true)},clearConversation(K){return i!==K.conversationId||a!==K.conversationType?false:(o(),s=[],R(),y=false,I=false,T=false,A=void 0,D=false,b=true,E=void 0,f=false,p=null,true)},list(){return [...s]},info(){return {conversationId:i,...i===null||a===null?{}:{conversation:{conversationType:a,conversationId:i}},hasMore:y,hasNewer:I}},getRevision(){return t},reset(){o(),i=null,a=null,s=[],R(),y=false,I=false,T=false,A=void 0,D=false,b=true,E=void 0,f=false,p=null;}}}function qd(e,n){if(Object.is(e,n))return true;if(e instanceof Uint8Array&&n instanceof Uint8Array)return e.byteLength!==n.byteLength?false:e.every((a,s)=>a===n[s]);if(Array.isArray(e)&&Array.isArray(n))return e.length===n.length&&e.every((a,s)=>qd(a,n[s]));if(e===null||n===null||typeof e!="object"||typeof n!="object")return false;let t=e,r=n,o=Object.keys(t),i=Object.keys(r);return o.length===i.length&&o.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&qd(t[a],r[a]))}function Km(){let e=new Map;function n(t){if(typeof t!="string")return de(t);let r=[...e.keys()].filter(o=>Vn(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=de(zn(t)),o=e.get(r);return o!==void 0&&qd(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 Lm(){let e=new Map;function n(r){return r.conversationType===void 0?`legacy:${encodeURIComponent(r.conversationId)}`:de(r)}function t(r){if(typeof r!="string"){let i=de(r);if(e.has(i))return i;let a=`legacy:${encodeURIComponent(r.conversationId)}`;return e.has(a)?a:i}let o=[...e.entries()].filter(([i,a])=>a.conversationId===r||!i.startsWith("legacy:")&&Vn(i).conversationId===r).map(([i])=>i);if(o.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r}`);return o[0]}return {get:r=>{let o=t(r);return o===void 0?void 0:e.get(o)},getAll:()=>[...e.values()],set:r=>{if(r.conversationType!==void 0){e.delete(`legacy:${encodeURIComponent(r.conversationId)}`),e.set(n(r),r);return}let o=[...e.entries()].filter(([a,s])=>!a.startsWith("legacy:")&&s.conversationId===r.conversationId);if(o.length>1)throw new Error(`\u65E0\u7C7B\u578B ReadState \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${r.conversationId}`);let i=o[0];if(i!==void 0){let[a,s]=i;e.set(a,{...r,conversationType:s.conversationType});return}e.set(n(r),r);},delete:r=>{let o=t(r);o!==void 0&&e.delete(o);},clear:()=>{e.clear();}}}function jd(){let e=new Map;function n(t){if(typeof t!="string")return de(t);let r=[...e.keys()].filter(o=>Vn(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(de(In(t)),t);},delete:t=>{let r=n(t);r!==void 0&&e.delete(r);},clear:()=>{e.clear();}}}function Ym(e){return e==="direct"||e==="robot"?"local":"server"}function Xm(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 uA=50,Zm="im:deleted-conversations",Qm="im:terminated-conversations",Wm="im:membership-reset-sort-keys",Hm="im:pending-message-reactions",Jm="im:transfer-status-records",gA=["sendMessages","mentionAll","editProfile","manageMembers","manageAdmins","moderateMessages","manageMute","dismissChannel","transferOwnership"];function zm(e,n){return e===n?true:e===void 0||n===void 0?false:gA.every(t=>e[t]===n[t])}function qm(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 bs(e,n){return e.id===n.id&&e.type===n.type&&e.title===n.title&&e.avatar===n.avatar&&xd(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&&zm(e.channelPermissions,n.channelPermissions)&&qm(e.channelAccessSnapshot,n.channelAccessSnapshot)&&e.sendDisabledReason===n.sendDisabledReason}function mA(e){let n=Vm({getSelfId:e.getSelfId}),t=new Map,r=new Map,o=jd(),i=jd(),a=Lm(),s=Pm(),c=Km(),u=new Map,y=new Map,I=0;function v(d){y.set(d,++I);}let T=1,A=new Set,D=new Set,b=new Map,{storage:E}=e,f=Promise.resolve(),p=new Map,R=new Map,k=new Map,V=0,$=e.unreadMode??Ym,ne=new Set;function Se(d={}){let l=Om({storage:E,loadOlderFromRemote:e.loadOlderFromRemote,loadNewerFromRemote:e.loadNewerFromRemote,shouldIncludeMessage:N,normalizeStoredUpload:uo,...d});return ne.add(l),l}let L=Se();function Ce(d={}){let l=Se(d),g=false;return {window:l,dispose(){g||(g=true,l.reset(),ne.delete(l));}}}function ye(d){for(let l of ne){let g=l.list().find(M=>M.id===d);if(g!==void 0)return g}}function K(d,l){let g=n.get(l);if(g?.conversationId===d.conversationId&&g.conversationType===d.conversationType)return g;for(let M of ne){let U=M.list().find(x=>x.id===l&&x.conversationId===d.conversationId&&x.conversationType===d.conversationType);if(U!==void 0)return U}}function Q(d,l){let g=K(ke(d),d.id);g!==void 0&&!n.has(d.id)&&n.upsert(g);let M=n.upsert(d,l);return {...M,previous:g,changed:g===void 0?M.changed:!it(g,M.message)}}function W(d){let l=new Map(n.getByConversation(d).map(g=>[g.id,g]));for(let g of ne)if(Z(g,d))for(let M of g.list())M.conversationType===d.conversationType&&M.conversationId===d.conversationId&&!l.has(M.id)&&l.set(M.id,M);return [...l.values()].sort((g,M)=>g.sortKey.localeCompare(M.sortKey))}function Z(d,l){let g=d.info();return g.conversation===void 0?g.conversationId===l.conversationId:de(g.conversation)===de(l)}let ce=false;function se(d){return `${de(d.conversation)}\0${d.parentMessageId}`}function ae(){if(E===void 0||ce)return;let d=[...t.values()].flat();E.setMeta(Hm,d).catch(l=>oe("\u4FDD\u5B58\u5F85\u5904\u7406 Reaction \u5931\u8D25",l));}async function Ae(){if(E===void 0)return;let d=[...r.values()],l=f.then(()=>E.setMeta(Jm,d));f=l.catch(()=>{});try{await l;}catch(g){throw oe("\u4FDD\u5B58\u8F6C\u8D26\u72B6\u6001\u8BB0\u5F55\u5931\u8D25",g),g}}function O(d,l){if(d===void 0||d.status===0&&l.status!==0)return l;if(l.status===0&&d.status!==0)return d;let g=d.occurredTime??0,M=l.occurredTime??0;return g!==M?M>g?l:d:l.status>d.status?l:d}function w(d){let l=d.body.transfer;if(d.contentType!=="transfer"||l===void 0)return d;let g=r.get(l.serialNumber);if(g===void 0||l.status!==0&&g.status===0)return d;let M={...l,status:g.status,...g.status===1&&g.occurredTime!==void 0?{receiveTime:g.occurredTime}:{},...g.status===2||g.status===3?{returnTime:g.occurredTime??l.returnTime}:{}};return l.status===M.status&&l.receiveTime===M.receiveTime&&l.returnTime===M.returnTime&&l.isRead===M.isRead?d:{...d,body:{transfer:Ms(l,M)}}}function m(d,l){let g=`${de(d)}\0${l}`;return t.delete(g)?(ae(),true):false}function C(d){let l=`${de(d)}\0`,g=false;for(let M of t.keys())M.startsWith(l)&&(t.delete(M),g=true);return g&&ae(),g}function h(d,l){let g=K(d.conversation,d.parentMessageId);if(g===void 0){let U=se(d),x=t.get(U)??[];return x.some(J=>J.id===d.id)?"duplicate":(t.set(U,[...x,d]),ae(),"pending")}if(g.recalled!==void 0||g.deletedForEveryone!==void 0)return "duplicate";let M=fd(g.reactions,d,e.getSelfId?.()??"");return M===g.reactions?"duplicate":(Cn([{...g,reactions:M}],l),"applied")}function S(d,l,g){let M=K(d,l);if(M===void 0){let J=`${de(d)}\0${l}`,q=t.get(J);if(q===void 0)return false;let re=q.filter(le=>le.id!==g);return re.length===q.length?false:(re.length===0?t.delete(J):t.set(J,re),ae(),true)}let U=yd(M.reactions,g,e.getSelfId?.()??"");if(U===M.reactions)return false;let x={...M};return U===void 0?delete x.reactions:x.reactions=U,Cn([x],"live"),true}function _(d,l){let g=ke(d),M=`${de(g)}\0${d.id}`,U=t.get(M);if(U!==void 0){t.delete(M),ae();for(let x of U)h(x,l);}}function G(d){for(let l of [...t.values()]){let g=l[0];if(g===void 0)continue;let M=K(g.conversation,g.parentMessageId);M!==void 0&&(M.recalled!==void 0||M.deletedForEveryone!==void 0?m(g.conversation,g.parentMessageId):_(M,d));}}let B=0,P=new Map,ee=new Map;function ue(d){return de(d)}function Ee(d){return Y(d)||A.has(ue(d))||A.has(d.conversationId)}function Y(d){return D.has(ue(d))||D.has(d.conversationId)}function te(d){let l=A.delete(ue(d)),g=A.delete(d.conversationId);return l||g}function Ie(d){let l=te(d),g=D.delete(ue(d)),M=D.delete(d.conversationId);return {deleted:l,terminal:g||M}}function be(d,l){if(l===""||d.contentType!=="system")return false;let g=d.body.system;return g?.targetUserIds?.includes(l)!==true?false:d.conversationType==="group"?g.eventType==="group_member_joined"||g.eventType==="group_member_invited":d.conversationType==="channel"&&(g.eventType==="channel_member_joined"||g.eventType==="channel_member_invited"||g.eventType==="channel_created")}function N(d){let l=ke(d);if(Y(l)||Ee(l)&&i.get(l)===void 0)return false;if(l.conversationType!=="group")return true;let g=b.get(de(l));return g===void 0||d.sortKey>=g}function H(d){let l=new Map;if(b.size===0)return l;for(let g of Fn(d,e.getSelfId?.()??"")){if(g.conversationType!=="group")continue;let M=ke(g),U=de(M),x=b.get(U);if(x===void 0)continue;let J=K(M,g.id);if(J===void 0||J.sortKey!==x)continue;let q=ht(J,g,e.getSelfId?.()??"");q.sortKey!==x&&(b.set(U,q.sortKey),l.set(U,q.id));}return l.size>0&&ao(),l}function Re(d){let l=de(d),g=(P.get(l)??0)+1;return P.set(l,g),g}function oe(d,l){e.emitter.emit({type:"error",error:{scope:"storage",message:d,cause:l}});}function we(d){e.emitter.emit({type:"session:updated",session:d,conversation:In(d)});}let We=new Set,Le=Promise.resolve(),Dn=0;function Gn(d){let l=Dn===0?d():Le.then(d),g=l.then(()=>{},()=>{});return We.add(g),g.finally(()=>We.delete(g)),l}function kc(d){Dn+=1;let l=Promise.all([...We]),g=Le.then(()=>l).then(d);return Le=g.then(()=>{},()=>{}),Le.finally(()=>{Dn-=1;}),g}function rf(d){let l=d.body.system;if(l?.pinnedMessageAction===void 0)return d;let{pinnedMessageAction:g,...M}=l;return {...d,body:{...d.body,system:M}}}function of(d){E===void 0||ce||d.length===0||Gn(()=>E.saveMessages(d.map(rf))).catch(l=>oe("\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function Os(d){let{lastMessageSendState:l,manuallyUnread:g,...M}=d;return M}function io(d){E===void 0||ce||Gn(()=>E.saveSessions([Os(d)])).catch(l=>oe("\u4F1A\u8BDD\u843D\u76D8\u5931\u8D25",l));}function Ks(){E===void 0||ce||E.setMeta(Zm,[...A]).catch(d=>oe("\u5220\u9664\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",d));}function so(){E===void 0||ce||E.setMeta(Qm,[...D]).catch(d=>oe("\u7EC8\u6001\u4F1A\u8BDD\u5893\u7891\u843D\u76D8\u5931\u8D25",d));}function ao(){E===void 0||ce||E.setMeta(Wm,[...b.entries()]).catch(d=>oe("GROUP \u91CD\u5165\u6C34\u4F4D\u843D\u76D8\u5931\u8D25",d));}function xc(d){E===void 0||ce||Gn(()=>E.saveReadState(d)).catch(l=>oe("\u5DF2\u8BFB\u6001\u843D\u76D8\u5931\u8D25",l));}function sf(d){E===void 0||ce||E.savePinnedMessage(d).catch(l=>oe("\u7F6E\u9876\u6D88\u606F\u843D\u76D8\u5931\u8D25",l));}function af(d){E===void 0||ce||E.removePinnedMessage(d).catch(l=>oe("\u7F6E\u9876\u6D88\u606F\u5220\u9664\u5931\u8D25",l));}function Ls(d){if(de(d),d.conversationType==="supergroup")throw new Error("supergroup \u8349\u7A3F\u672A\u5B9E\u73B0\uFF0C\u4E0D\u5F97 fallback \u5230\u5176\u4ED6\u4F1A\u8BDD\u7C7B\u578B")}function co(d){return Ls(d),Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId})}function df(d){return s.get(co(d))}function cf(){let d=[];for(let l of o.getAll()){let g=In(l);d.push({...l,draft:s.get(g)});}return zd(d)}function Zs(d,l,g){if(Ls(d),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 M=(l.mentions??[]).map(x=>{if(typeof x.userId!="string"||x.userId.trim()===""||typeof x.displayName!="string")throw new TypeError("\u8349\u7A3F mention \u5FC5\u987B\u5305\u542B\u975E\u7A7A userId \u4E0E\u5B57\u7B26\u4E32 displayName");return Object.freeze({userId:x.userId,displayName:x.displayName})}),U=Object.freeze({conversationType:d.conversationType,conversationId:d.conversationId});return Object.freeze({ref:U,text:l.text,mentions:Object.freeze(M),...l.replyToMessageId===void 0?{}:{replyToMessageId:l.replyToMessageId},attachments:Object.freeze([]),updatedAt:g})}function Bc(d,l){return d.text===l.text&&d.replyToMessageId===l.replyToMessageId&&d.mentions.length===l.mentions.length&&d.mentions.every((g,M)=>{let U=l.mentions[M];return U!==void 0&&g.userId===U.userId&&g.displayName===U.displayName})}function Qs(d,l){Ls(d);let g=de(d),U=(p.get(g)??Promise.resolve()).catch(()=>{}).then(l),x=U.then(()=>{},()=>{});return p.set(g,x),x.finally(()=>{p.get(g)===x&&p.delete(g);}),U}async function lf(d,l){let g=co(d),M=de(g),U=Zs(g,l,0),x=V,J=k.get(M)??0;return await Qs(g,async()=>{let q=s.get(g),re=Math.max(Date.now(),(R.get(M)??q?.updatedAt??0)+1),le=Zs(g,U,re);if(q!==null&&Bc(q,le))return q;if(E!==void 0&&await E.saveDraft(le),x!==V||J!==(k.get(M)??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(le),R.set(M,re),e.emitter.emit({type:"draft:updated",conversation:le.ref,draft:le}),le})}async function Fc(d,l){let g=co(d),M=de(g);if(l!==void 0&&(!Number.isFinite(l)||l<0))throw new Error(`\u8349\u7A3F expectedUpdatedAt \u975E\u6CD5\uFF1A${l}`);let U=V,x=k.get(M)??0;return await Qs(g,async()=>{let J=s.get(g);if(J===null||l!==void 0&&J.updatedAt!==l)return false;if(E!==void 0&&await E.deleteDraft(g),U!==V||x!==(k.get(M)??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(g),e.emitter.emit({type:"draft:cleared",conversation:g}),true})}async function uf(d){await Fc(d);}async function gf(d,l){return await Fc(d,l)}function mf(d){let l=co(d),g=de(l);k.set(g,(k.get(g)??0)+1),s.get(l)!==null&&(s.delete(l),e.emitter.emit({type:"draft:cleared",conversation:l})),Qs(l,async()=>{E!==void 0&&await E.deleteDraft(l);}).catch(M=>oe("\u5220\u4F1A\u8BDD\u8349\u7A3F\u5931\u8D25",M));}async function pf(){for(V+=1;p.size>0;)await Promise.all([...p.values()]);}function ff(d){let l=K(zn(d),d.messageId);return l===void 0?d:{...d,preview:{state:"ready",message:l}}}function yf(d,l){let g=ff(d);c.set(g)&&(e.emitter.emit({type:"pinned-message:updated",conversationId:g.conversationId,conversation:{conversationType:g.conversationType,conversationId:g.conversationId},pinnedMessage:g,reason:l}),sf(g));}function If(d,l){let g=typeof d=="string"?d:d.conversationId,M=c.get(d);if(!c.clear(d))return;let U=typeof d=="string"?M===void 0?void 0:zn(M):d;if(U===void 0)throw new Error(`\u7F6E\u9876\u6D88\u606F\u6E05\u7406\u7F3A\u5C11\u590D\u5408\u8EAB\u4EFD\uFF1A${g}`);e.emitter.emit({type:"pinned-message:updated",conversationId:g,conversation:U,pinnedMessage:null,reason:l}),af(d);}function Ws(d,l,g,M){let U=ln(d);if(U===void 0)return;let x={...U,title:l,avatar:g??U.avatar,...M!==void 0?{muted:M}:{}};bs(U,x)||Un(x);}async function Hs(d,l){let{conversationId:g,conversationType:M}=d,U=de(d),x=l?.force===true;if(!x&&ee.has(U))return false;let J=B,q=Re(d);x&&ee.set(U,q);let{profile:re,channelProfile:le}=e,ie=3,j=x?{forceRefresh:true}:void 0;try{if(M==="direct"){if(re===void 0)return !1;let z=await re.getUserProfile(g,j);if(J!==B||q!==P.get(U))return !1;z!==null&&Ws(d,z.remark??z.nickname,z.avatar,z.muted);}else if(M==="group"){if(re===void 0)return !1;let z=await re.getGroupProfile(g,j);if(J!==B||q!==P.get(U))return !1;z!==null&&(Ws(d,z.name,z.avatar,z.muted),z.status===ie&&$s({conversationType:"group",conversationId:g},"group_dismissed"),x&&e.emitter.emit({type:"profile:updated",profileType:"group",id:g}));}else if(M==="channel"){if(le===void 0)return !1;let z=await le.getProfile(g,j);if(J!==B||q!==P.get(U))return !1;if(z!==null){Ws(d,z.name,z.avatar,z.muted);let De=ln(d)?.channelState,fe=De==="left"||De==="removed"||De==="dismissed",Pe=z.channelState==="left"||z.channelState==="removed"||z.channelState==="dismissed";if(l?.allowChannelRecovery===!0&&fe&&De!=="dismissed"&&z.channelState==="active")return js(g,"active",void 0,{permissions:z.permissions,...z.accessSnapshot===void 0?{}:{snapshot:z.accessSnapshot}}),x&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}}),!0;let Ge=fe&&(!Pe||De==="dismissed"||z.channelState!=="dismissed");if(Pe&&!Ge)return $s({conversationType:"channel",conversationId:g},`channel_${z.channelState}`),x&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}}),!1;if(!Ge){let He=z.permissions.sendMessages?void 0:`channel_${z.channelState}`;js(g,z.channelState,He,{permissions:z.permissions,...z.accessSnapshot===void 0?{}:{snapshot:z.accessSnapshot}});}x&&e.emitter.emit({type:"channel-profile:updated",channelId:g,conversation:{conversationType:"channel",conversationId:g}});}}return !1}catch(z){return e.emitter.emit({type:"error",error:{scope:"http",message:"\u4F1A\u8BDD\u8D44\u6599\u8865\u9F50\u5931\u8D25",cause:z}}),false}finally{x&&ee.get(U)===q&&ee.delete(U);}}function Cf(d,l){Hs({conversationType:l,conversationId:d},{force:true});}function Sf(d){return Hs({conversationType:"channel",conversationId:d},{force:true,allowChannelRecovery:true})}function Af(d,l){let g=ln(d);if(g===void 0)return;let M={...g,...l.title!==void 0?{title:l.title}:{},...l.avatar!==void 0?{avatar:l.avatar}:{}};bs(g,M)||Un(M);}function Js(d){return Vd(d,e.getSelfId?.()??"")}function Ys(d){let l=a.get(d);if(l===void 0||l.readCursor==="")return;let g=typeof d=="string"?l.conversationType:d.conversationType;if(g==="channel"){let U={conversationType:g,conversationId:typeof d=="string"?d:d.conversationId};return W(U).find(x=>x.extensions?.historyCursor===l.readCursor)?.sortKey??l.readCursorSortKey}return (typeof d=="string"?n.get(l.readCursor):K(d,l.readCursor))?.sortKey??l.readCursorSortKey}function wc(d,l){let g=0;for(let M of n.getByConversation(d))Yn(M)&&Js(M)&&(l===void 0||M.sortKey>l)&&(g+=1);return g}function Pc(d){let l=e.getSelfId?.();if(l===void 0||l===""||d.senderId===l)return false;let{mention:g}=d;return g===void 0?false:g.atAll||g.atUserIds.includes(l)}function hf(d,l){let g=0;for(let M of n.getByConversation(d))Pc(M)&&(l===void 0||M.sortKey>l)&&(g+=1);return g}function hn(d,l=true){let g=d.conversationType===void 0?o.get(d.conversationId):void 0,M=d.conversationType===void 0&&g!==void 0?{...d,conversationType:g.type}:d,U=M.conversationType===void 0?M.conversationId:{conversationType:M.conversationType,conversationId:M.conversationId},x=a.get(U);if(M.conversationType==="channel"&&v(M.conversationId),a.set(M),l&&xc(M),x===void 0||x.readCursor!==M.readCursor||x.readCursorSortKey!==M.readCursorSortKey||x.unreadCount!==M.unreadCount||(x.manuallyUnread??false)!==(M.manuallyUnread??false)){if(M.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=${M.conversationId}\uFF09`}});return}e.emitter.emit({type:"read:updated",conversationId:M.conversationId,conversation:{conversationType:M.conversationType,conversationId:M.conversationId},readCursor:M.readCursor,unreadCount:M.unreadCount,...M.manuallyUnread===true?{manuallyUnread:true}:{}});}}function Vc(d,l){if(d===void 0||d.sortKey===l.sortKey)return;let g=ke(l),M=a.get(g),U=l.conversationType==="channel"?l.extensions?.historyCursor:void 0,x=l.conversationType==="direct"||l.conversationType==="group"||l.conversationType==="robot";M!==void 0&&(x&&M.readCursor===l.id||typeof U=="string"&&U!==""&&M.readCursor===U||M.readCursorSortKey===d.sortKey)&&hn({...M,readCursorSortKey:l.sortKey});let J=de(g);l.conversationType==="group"&&b.get(J)===d.sortKey&&(b.set(J,l.sortKey),ao());}function lo(d,l,g,M){let U=ln(d),x=M??a.get(d);if(l===void 0){if(U===void 0)return typeof d=="string"||x===void 0||x.unreadCount<=0?void 0:{id:d.conversationId,type:d.conversationType,title:"",lastMessagePreview:"",timestamp:0,unreadCount:x.unreadCount,mentionUnreadCount:x.mentionUnreadCount,readCursor:x.readCursor,pinned:false,muted:false};let ie={...U,...g==="clear"?{lastMessagePreview:"",timestamp:0}:{},...x===void 0?{}:{unreadCount:x.unreadCount,manuallyUnread:x.manuallyUnread,mentionUnreadCount:x.mentionUnreadCount,readCursor:x.readCursor||U.readCursor}};return g==="clear"&&(delete ie.lastMessageSummary,delete ie.lastMessageSenderId,delete ie.lastMessageSystemEvent,delete ie.lastMessageSystemTargetsSelf,delete ie.lastMessageMention,delete ie.lastMessageRecalled,delete ie.lastMessageDeletedForEveryone,delete ie.lastMessageSendState),ie}let J=x?.unreadCount??U?.unreadCount??0,q=x===void 0?U?.manuallyUnread:x.manuallyUnread,re=x?.mentionUnreadCount??U?.mentionUnreadCount??0,le=Bd(l,{unreadCount:J,mentionUnreadCount:re,selfId:e.getSelfId?.()});return U===void 0?{...le,...q===void 0?{}:{manuallyUnread:q},readCursor:(x?.readCursor??"")||le.readCursor}:{...le,title:U.title||le.title,avatar:U.avatar??le.avatar,pinned:U.pinned,muted:U.muted,topTime:U.topTime,...q===void 0?{}:{manuallyUnread:q},readCursor:(x?.readCursor??"")||U.readCursor,groupState:U.groupState,channelState:U.channelState,channelPermissions:U.channelPermissions,channelAccessSnapshot:U.channelAccessSnapshot,sendDisabledReason:U.sendDisabledReason}}function Xs(d,l){if(d===void 0)return;let g=o.get({conversationType:d.type,conversationId:d.id});g!==void 0&&bs(g,d)||(o.set(d),i.delete({conversationType:d.type,conversationId:d.id}),we(d),l&&io(d),d.title===""&&Hs({conversationType:d.type,conversationId:d.id}));}function Rn(d,l=false){if(!l&&o.get(d)===void 0)return;let g=n.getByConversation(d).findLast(Yn);Xs(lo(d,g,"preserve"),true);}function uo(d){if(d.status!=="uploading"&&!(d.status==="failed"&&d.failure?.code===Pn))return d;let l=n.get(d.id);return l!==void 0&&l.conversationType===d.conversationType&&l.conversationId===d.conversationId?l:wd(Xn(d))}function Oc(d,l=()=>true){let g=[],M=Fn(d,e.getSelfId?.()??"").map(re=>{let le=uo(re),ie={...le,sortKey:Tn(le)};if(ie=Xn(ie),ie.conversationType==="group"&&ie.contentType==="text"){let j=At(ie.body.text??"",ie.mention);j!==void 0&&(ie.mention=j);}return w(ie)}),U=new Map;for(let re of M){if(re.contentType!=="transfer"||re.body.transfer===void 0)continue;let le=ke(re);U.set(de(le),le);}let x=[...U.values()].flatMap(re=>W(re)),J=Pd(x,M),q=new Set(M.map(re=>re.id));for(let re of J){if(!l())break;let{previous:le,message:ie,isNew:j,changed:z}=Q(re);if(Vc(le,ie),le!==void 0&&z)for(let De of ne){if(!l())return g;De.list().some(fe=>fe.id===ie.id&&fe.conversationType===ie.conversationType&&fe.conversationId===ie.conversationId)&&De.applyIncoming([ie]);}if(!l())return g;j?e.emitter.emit({type:"message:received",message:ie,conversation:ke(ie),source:"offline",channelLifecycleEffects:false}):z&&e.emitter.emit({type:"message:updated",message:ie,conversation:ke(ie),source:"offline",channelLifecycleEffects:false}),q.has(ie.id)&&g.push(ie);}return g}function Kc(d){let l=uo(d),g={...l,sortKey:Tn(l)};if(g=Xn(g),g.conversationType==="group"&&g.contentType==="text"){let M=At(g.body.text??"",g.mention);M!==void 0&&(g.mention=M);}return w(g)}async function Rf(d,l){let g=K(d,l);if(g!==void 0||E===void 0)return g;try{let M=await E.getMessage(d,l);return M===null||de(ke(M))!==de(d)?void 0:Kc(M)}catch(M){oe("\u6309\u6D88\u606F ID \u8BFB\u53D6\u672C\u5730\u5386\u53F2\u5931\u8D25",M);return}}function Cn(d,l,g={}){let M=e.getSelfId?.()??"";if(l==="live"){let me=false,Ve=false;for(let Ne of d){let Ze=ke(Ne);if(be(Ne,M)){let je=Ie(Ze);je.deleted&&(me=true),je.terminal&&(Ze.conversationType==="group"?(b.set(de(Ze),Ne.sortKey),ao()):Ze.conversationType==="channel"&&b.delete(de(Ze)),e.diagnostics?.record("info","core","conversation","membership-termination-cleared",()=>({conversation:Ze,data:{source:l,eventType:Ne.body.system?.eventType,groupHistoryLowerBoundApplied:Ze.conversationType==="group"}})),Ve=true);}else (M===""||Ne.senderId!==M||g.newOutgoing===true)&&!Y(Ze)&&te(Ze)&&(me=true);}me&&Ks(),Ve&&so();}let x=e.diagnostics?.isEnabled("debug","conversation")===true?new Map:void 0,J=(me,Ve)=>{if(x===void 0)return;let Ne=ke(me),Ze=de(Ne),je=x.get(Ze)??{ref:Ne,tombstone:0,groupLowerBound:0};Ve==="tombstone"?je.tombstone+=1:je.groupLowerBound+=1,x.set(Ze,je);},q=A.size>0||D.size>0?d.filter(me=>{let Ve=ke(me),Ne=!Ee(Ve)||g.backfillOnly===true&&i.get(Ve)!==void 0&&!Y(Ve);return Ne||J(me,"tombstone"),Ne}):d,re=H(q),le=me=>re.get(de(ke(me)))===me.id,ie=b.size>0?q.filter(me=>{let Ve=le(me)||N(me);return Ve||J(me,"groupLowerBound"),Ve}):q,j=re.size===0?ie:[...ie.filter(le),...ie.filter(me=>!le(me))];for(let me of x?.values()??[])e.diagnostics?.record("debug","core","conversation","membership-filter-dropped",()=>({conversation:me.ref,data:{source:l,tombstoneDroppedCount:me.tombstone,groupHistoryLowerBoundDroppedCount:me.groupLowerBound}}));let z=new Map,De=new Map,fe=new Map,Pe=new Set,Ge=Fn(j,M).map(w),He=new Map;for(let me of Ge){if(me.contentType!=="transfer"||me.body.transfer===void 0)continue;let Ve=ke(me);He.set(de(Ve),Ve);}let xt=[...He.values()].flatMap(me=>W(me)),zf=Pd(xt,Ge),ea=[],na=[];for(let me of zf){let{previous:Ve,message:Ne,isNew:Ze,changed:je}=Q(me,{authoritativeFailure:g.authoritativeOutboxFailure===true});if(!Ze&&!je)continue;Vc(Ve,Ne);for(let go of ne)go.applyIncoming([Ne]);Ze?e.emitter.emit({type:"message:received",message:Ne,conversation:ke(Ne),source:l,channelLifecycleEffects:g.applyChannelLifecycleEffects===true}):e.emitter.emit({type:"message:updated",message:Ne,conversation:ke(Ne),source:l,channelLifecycleEffects:g.applyChannelLifecycleEffects===true});let $e=ke(Ne);Y($e)||(ea.push(Ne),z.set(de($e),$e),Ze&&g.backfillOnly!==true&&na.push(Ne));}let ta=new Map;for(let me of na){let Ve=ke(me),Ne=de(Ve);Js(me)&&Pe.add(Ne),ta.has(Ne)||ta.set(Ne,Ys(Ve));let Ze=ta.get(Ne),je=Ze===void 0||me.sortKey>Ze;if(Yn(me)&&je&&Js(me)&&me.recalled===void 0&&me.deletedForEveryone===void 0){let $e=$(me.conversationType);($e==="local"||$e==="server"&&l==="live")&&De.set(Ne,(De.get(Ne)??0)+1);}je&&Pc(me)&&me.recalled===void 0&&me.deletedForEveryone===void 0&&fe.set(Ne,(fe.get(Ne)??0)+1);}for(let me of z.values()){if(g.backfillOnly===true)continue;let Ve=de(me),Ne=De.get(Ve)??0,Ze=fe.get(Ve)??0,je=Pe.has(Ve);if(Ne>0||Ze>0||je){let $e=a.get(me)??{...me,readCursor:"",unreadCount:0},go={...$e,unreadCount:$e.unreadCount+Ne,mentionUnreadCount:($e.mentionUnreadCount??0)+Ze};je&&delete go.manuallyUnread,hn(go);}Rn(me,na.some($e=>$e.conversationType===me.conversationType&&$e.conversationId===me.conversationId&&Yn($e)));}of(ea);for(let me of ea)me.recalled===void 0&&me.deletedForEveryone===void 0?_(me,l):m(ke(me),me.id);}function Lc(d,l,g=Date.now()){let M={conversationType:"direct",conversationId:d},U=K(M,l),x=n.getByConversation(M).findLast(re=>re.body.system?.eventType==="direct_contact_established");if(U!==void 0&&x!==void 0&&En(x)>=En(U))return;let J=`${l}:contact-required`;if(n.get(J)!==void 0)return;let q={id:J,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_required",targetUserIds:[d],action:{type:"request-contact",userId:d}}},createdAt:g,sortKey:Te(g,J),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};Cn([q],"live");}function Mf(d,l,g=Date.now()){let M=`${l}:message-refused`;if(n.get(M)!==void 0)return;let U=n.get(l),x=U?.conversationType==="direct"&&U.conversationId===d?En(U):g,J={id:M,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_message_refused",targetUserIds:[d]}},createdAt:x,sortKey:Te(x,M),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}};Cn([J],"live");}function Ef(d,l=Date.now()){let g=dn(),M={id:g,conversationId:d.conversationId,conversationType:"direct",senderId:d.senderId,contentType:"text",body:{text:d.text},createdAt:l,sortKey:Te(l,g),status:"failed",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},failure:{code:33281,reason:"rejected",displayCode:"contactRequired",retryable:false},...d.refMessageId===void 0?{}:{refMessageId:d.refMessageId}};return Cn([M],"live"),Lc(d.conversationId,g,l+1),M}function Tf(d,l){return `${d.trim()===""?`contact-established:${l}`:d}:contact-established`}function vf(d,l,g=Date.now(),M=g){let U=Tf(l,M);if(n.get(U)!==void 0)return;let x={id:U,conversationId:d,conversationType:"direct",senderId:d,contentType:"system",body:{system:{eventType:"direct_contact_established",targetUserIds:[d]}},createdAt:g,sortKey:Te(g,U),status:"sent",receipt:"unread",encryption:{encrypted:false}};Cn([x],"live");}let kt=new Map,zs=0;function bf(d,l,g=Date.now()){let M=kt.get(d);if(M!==void 0)return M;let U={conversationType:"direct",conversationId:d},x=zs,J=(async()=>{let q=n.getByConversation(U).filter(Ge=>{let He=Ge.body.system?.eventType;return He==="direct_contact_required"||He==="direct_contact_established"}),re=q.filter(Ge=>Ge.body.system?.eventType==="direct_contact_required"),le=re.at(-1)?.createdAt??0,ie=q.findLast(Ge=>Ge.body.system?.eventType==="direct_contact_established")?.createdAt??0,j=ie>=le&&ie>0;if(re.length===0&&j)return;let z=Ys(U);for(let Ge of re)try{let He=await Hc(U,Ge.id),xt=K(U,Ge.id);!He&&xt?.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:U,messageId:Ge.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:U,messageId:Ge.id,error:He}}});}if(x!==zs)return;let De=a.get(U);if(De!==void 0&&(hn({...De,...De.readCursorSortKey===void 0&&z!==void 0?{readCursorSortKey:z}:{},unreadCount:wc(U,z)}),Rn(U)),j)return;let fe=Number.isFinite(g)&&g>0?g:Date.now(),Pe=Math.max(fe,le+1);vf(d,l,Pe,fe);})().finally(()=>{kt.get(d)===J&&kt.delete(d);});return kt.set(d,J),J}function Nf(d,l){let g=typeof d=="string"?n.get(l)??ye(l):K(d,l);if(g===void 0)return;let M=typeof d=="string"?ke(g):d,U=typeof d=="string"?d:d.conversationId;if(g.conversationId!==U||g.conversationType!==M.conversationType)return;let x=Ys(M);if(x!==void 0&&x>=g.sortKey){typeof d!="string"&&Zc(d);return}let J={...M,readCursor:l,readCursorSortKey:g.sortKey,unreadCount:wc(M,g.sortKey),mentionUnreadCount:hf(M,g.sortKey)};return hn(J),Rn(M),J}function _f(d){let l=o.get(d);if(l===void 0)return false;let g=a.get(d)??{...d,readCursor:l.readCursor??"",unreadCount:l.unreadCount,mentionUnreadCount:l.mentionUnreadCount};return g.unreadCount>0||g.manuallyUnread===true?false:(hn({...g,manuallyUnread:true}),Rn(d),true)}function Zc(d){let l=a.get(d);if(l?.manuallyUnread!==true)return false;let g={...l};return delete g.manuallyUnread,hn(g),Rn(d),true}function Qc(d,l,g,M,U){let x=typeof d=="string"?d:d.conversationId,J=ln(d),q=typeof d=="string"?J===void 0?void 0:In(J):d;if(J!==void 0&&$(J.type)!=="server"){e.emitter.emit({type:"error",error:{scope:"unknown",message:`applyServerUnread \u4E0D\u5E94\u7528\u4E8E\u672C\u5730\u672A\u8BFB\u4F1A\u8BDD\uFF08conversationId=${x}, type=${J.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=${x}, count=${l}\uFF09\uFF0C\u5DF2\u5FFD\u7565`}});return}q?.conversationType==="channel"&&u.delete(x);let re=a.get(d),le=re?.readCursor??"",ie=re?.readCursorSortKey,j=g===void 0||g===""?void 0:q===void 0?n.get(g)??ye(g):K(q,g);j!==void 0&&j.conversationId===x&&(ie===void 0||j.sortKey>ie)&&(le=j.id,ie=j.sortKey),M!==void 0&&(le=M),hn({...q===void 0?{conversationId:x}:q,readCursor:le,readCursorSortKey:ie,unreadCount:Math.max(0,Math.floor(l)),...l>0?{}:{manuallyUnread:re?.manuallyUnread},mentionUnreadCount:l===0||U===false?0:U===true?Math.max(1,re?.mentionUnreadCount??0):re?.mentionUnreadCount}),Rn(d,l>0&&q!==void 0&&!Ee(q));}function qs(d){let l=u.get(d.conversation.conversationId);return l?.handle.transactionId===d.transactionId?l:void 0}function Wc(d,l,g,M=false){let U=ln(d),x=K(d,l);if(U?.type!=="channel"||x?.conversationType!=="channel"||x.conversationId!==d.conversationId||x.extensions?.historyCursor!==g)throw new Error(`CHANNEL \u5DF2\u8BFB\u4F4D\u7F6E\u4E0D\u53EF\u4FE1\uFF08channelId=${d.conversationId}, messageId=${l}\uFF09`);M||u.delete(d.conversationId);let J=a.get(d),q=J===void 0?U.mentionUnreadCount:J.mentionUnreadCount;hn({...d,readCursor:g,readCursorSortKey:x.sortKey,unreadCount:J?.unreadCount??U.unreadCount,...q===void 0?{}:{mentionUnreadCount:q}}),Rn(d);}function Df(d){let l=d.conversationId,g=ln(d);if(g===void 0||g.type!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u8981\u6C42 channel \u4F1A\u8BDD\uFF08conversationId=${l}, type=${g?.type??"missing"}\uFF09`);if(u.has(l))throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5B58\u5728\uFF08channelId=${l}\uFF09`);let M={conversation:d,transactionId:T++},x=a.get(d)??{conversationId:l,readCursor:g.readCursor??"",unreadCount:g.unreadCount,...g.mentionUnreadCount===void 0?{}:{mentionUnreadCount:g.mentionUnreadCount}};return u.set(l,{handle:M,baseReadState:{...x},steps:[],committedThrough:-1}),v(l),M}function Gf(d,l,g){let M=d.conversation,U=M.conversationId,x=qs(d);if(x===void 0)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u4E8B\u52A1\u5DF2\u5931\u6548\uFF08channelId=${U}\uFF09`);let J=K(M,l);if(J===void 0||J.conversationId!==U||J.conversationType!=="channel")throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB\u6D88\u606F\u4E0D\u53EF\u4FE1\uFF08channelId=${U}, messageId=${l}\uFF09`);if(J.extensions?.historyCursor!==g)throw new Error(`CHANNEL \u4E50\u89C2\u5DF2\u8BFB cursor \u4E0E\u6D88\u606F\u4E0D\u4E00\u81F4\uFF08channelId=${U}, messageId=${l}\uFF09`);x.steps.at(-1)?.readCursor!==g&&(x.steps.push({readCursor:g,messageId:l,sortKey:J.sortKey}),Wc(M,l,g,true));}function Uf(d,l){let g=qs(d);if(g===void 0)return false;let M=g.steps.findLastIndex(U=>U.readCursor===l);if(M<0)throw new Error(`CHANNEL \u5DF2\u786E\u8BA4 cursor \u4E0D\u5C5E\u4E8E\u4E50\u89C2\u4E8B\u52A1\uFF08channelId=${d.conversation.conversationId}, cursor=${l}\uFF09`);return g.committedThrough=Math.max(g.committedThrough,M),v(d.conversation.conversationId),g.committedThrough===g.steps.length-1&&u.delete(d.conversation.conversationId),true}function kf(d){let l=qs(d);if(l===void 0)return false;let g=d.conversation,M=g.conversationId,U=a.get(g),x=l.committedThrough>=0?l.steps[l.committedThrough]:void 0,J=x===void 0?l.baseReadState:void 0,q=U?.unreadCount??J?.unreadCount??0,re=U?.mentionUnreadCount??J?.mentionUnreadCount??0,le=J?.mentionUnreadCount!==void 0||U?.mentionUnreadCount!==void 0,ie={conversationId:M,conversationType:"channel",readCursor:x?.readCursor??J?.readCursor??"",readCursorSortKey:x?.sortKey??J?.readCursorSortKey,unreadCount:q,...le?{mentionUnreadCount:re}:{}};return u.delete(M),hn(ie),Rn(g),true}function xf(d,l,g){let U=ln({conversationType:"group",conversationId:d});if(U===void 0){Un({id:d,type:"group",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,groupState:l,sendDisabledReason:g});return}if(U.groupState===l&&U.sendDisabledReason===g)return;let x={...U,groupState:l,sendDisabledReason:g};Un(x);}function js(d,l,g,M){let U={conversationType:"channel",conversationId:d},x=de(U);if(Ee(U)&&i.get(U)===void 0)return;let J=ln(U);if(J===void 0){Re(U),ee.delete(x);let ie={id:d,type:"channel",title:"",lastMessagePreview:"",timestamp:0,unreadCount:0,pinned:false,muted:false,channelState:l,channelPermissions:M?.permissions,channelAccessSnapshot:M?.snapshot,sendDisabledReason:g};Un(ie);return}if(J.type!=="channel")throw new Error(`setChannelRestriction: \u4F1A\u8BDD ${d} \u7C7B\u578B\u4E3A ${J.type}\uFF0C\u62D2\u7EDD\u5199\u5165 CHANNEL \u72B6\u6001`);Re(U),ee.delete(x);let q=M?.permissions,re=M?.snapshot;if(J.channelState===l&&J.sendDisabledReason===g&&zm(J.channelPermissions,q)&&qm(J.channelAccessSnapshot,re))return;let le={...J,channelState:l,channelPermissions:q,channelAccessSnapshot:re,sendDisabledReason:g};Un(le);}function Bf(d,l){let g=o.get(d);if(g===void 0||g.pinned===l)return;let M={...g,pinned:l,topTime:l?Date.now():void 0};o.set(M),we(M),io(M);}function Ff(d,l){let g=ln(d);if(g===void 0||g.muted===l)return;let M={...g,muted:l};Un(M);}async function Hc(d,l){if(l.trim()==="")throw new Error("\u672C\u673A\u5220\u9664\u6D88\u606F\u9700\u8981\u975E\u7A7A messageId");let g=n.get(l),M=g!==void 0&&g.conversationType===d.conversationType&&g.conversationId===d.conversationId,U=n.getByConversation(d).filter(j=>j.id!==l),x=o.get(d)===void 0?void 0:lo(d,U.at(-1),"clear"),J=x===void 0?void 0:Os(x);function q(j){return j!==void 0&&(g===void 0||!it(g,j))}let re=E===void 0?{deleted:false,superseded:false}:await kc(async()=>q(n.get(l))?{deleted:false,superseded:true}:{deleted:await E.deleteMessage(d,l,J),superseded:false});if(re.superseded||q(n.get(l)))return false;let le=M&&n.delete(d,l),ie=false;for(let j of ne)ie=j.removeMessage(d,l)||ie;return !re.deleted&&!le&&!ie?false:(Xs(x,false),m(d,l),e.emitter.emit({type:"message:removed",conversation:{...d},messageId:l,scope:"local-only"}),true)}async function wf(d){let l={...d},g=new Map(n.getByConversation(l).map(ie=>[ie.id,ie])),M=o.get(l),U=a.get(l),x=U===void 0&&M===void 0?void 0:{...l,readCursor:U?.readCursor??M?.readCursor??"",...U?.readCursorSortKey===void 0?{}:{readCursorSortKey:U.readCursorSortKey},unreadCount:0,mentionUnreadCount:0},J=M===void 0?void 0:lo(l,void 0,"clear",x);if(E!==void 0){if(E.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 kc(()=>E.clearConversationHistory(l,J===void 0?void 0:Os(J),x));}let q=a.get(l),re=q?.conversationType===U?.conversationType&&q?.conversationId===U?.conversationId&&q?.readCursor===U?.readCursor&&q?.readCursorSortKey===U?.readCursorSortKey&&q?.unreadCount===U?.unreadCount&&q?.mentionUnreadCount===U?.mentionUnreadCount;x!==void 0&&re&&hn(x,false);for(let[ie,j]of g){let z=n.get(ie);z!==void 0&&it(j,z)&&n.delete(l,ie);}let le=n.getByConversation(l);for(let ie of ne)ie.clearConversation(l)&&ie.applyIncoming(le);C(l),o.get(l)!==void 0&&Xs(lo(l,le.at(-1),"clear"),false),e.emitter.emit({type:"conversation-history:cleared",conversation:l,scope:"local-only"});}function Jc(d,l={}){let g=typeof d=="string"?d:d.conversationId,M=o.get(d),U=c.get(d),x=typeof d=="string"?M!==void 0?{conversationType:M.type,conversationId:g}:U===void 0?void 0:zn(U):d;if(x===void 0)throw new Error(`\u88F8 conversationId \u65E0\u6CD5\u786E\u5B9A\u5220\u9664\u7C7B\u578B\uFF1A${g}`);let J=n.getByConversation(x).length;mf(x),C(x),o.delete(d),i.delete(d),x.conversationType==="channel"&&(v(x.conversationId),u.delete(x.conversationId)),a.delete(d),n.deleteByConversation(d),c.clear(d);let q=ue(x);if(l.terminal===true){D.add(q);let re=b.delete(q);A.delete(q),A.delete(g),re&&ao(),e.diagnostics?.record("info","core","conversation","membership-terminated",()=>({conversation:x,data:{reason:l.terminalReason??"membership-terminated",removedMessageCount:J}}));}else A.add(q);for(let re of ne)Z(re,x)&&re.reset();e.emitter.emit({type:"session:removed",conversationId:g,conversation:x}),Ks(),l.terminal===true&&so(),E!==void 0&&(E.deleteConversationMessages(x).catch(re=>oe("\u5220\u4F1A\u8BDD\u6D88\u606F\u5931\u8D25",re)),E.deleteSession(x).catch(re=>oe("\u5220\u4F1A\u8BDD\u5931\u8D25",re)),E.deleteReadState(x).catch(re=>oe("\u5220\u5DF2\u8BFB\u6001\u5931\u8D25",re)),E.removePinnedMessage(x).catch(re=>oe("\u5220\u4F1A\u8BDD\u7F6E\u9876\u6D88\u606F\u5931\u8D25",re)));}function Pf(d){Jc(d);}function $s(d,l){Jc(d,{terminal:true,terminalReason:l});}function Vf(d){let l=In(d);if(de(l),l.conversationType==="supergroup")throw new Error("ensureConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let g=o.get(l);if(g!==void 0)return g;let M={...d,id:l.conversationId,type:l.conversationType,...d.channelPermissions===void 0?{}:{channelPermissions:{...d.channelPermissions}},...d.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...d.channelAccessSnapshot}},...d.extensions===void 0?{}:{extensions:{...d.extensions}}},U=Ie(l);return U.deleted&&Ks(),U.terminal&&so(),o.set(M),i.delete(l),we(M),io(M),M}function ln(d){if(typeof d=="string"){let l=[...o.getAll(),...i.getAll()].filter(g=>g.id===d);if(l.length>1)throw new Error(`\u88F8 conversationId \u5B58\u5728\u591A\u7C7B\u578B\u6B67\u4E49\uFF1A${d}`);return l[0]}return o.get(d)??i.get(d)}function Un(d){let l=In(d);o.get(l)!==void 0?(o.set(d),we(d),io(d)):(i.set(d),e.emitter.emit({type:"conversation-context:updated",conversation:l}));}function Of(d,l={}){let g=In(d);if(g.conversationType==="supergroup")throw new Error("prepareConversation\uFF1Asupergroup \u672A\u5B9E\u73B0");let M=ln(g);if(M!==void 0){let U=M.title||d.title,x=M.avatar??d.avatar;(U!==M.title||x!==M.avatar)&&Un({...M,title:U,avatar:x});return}if(Y(g)){if(l.membershipConfirmed!==true)throw new Error("\u51C6\u5907\u804A\u5929\u5931\u8D25\uFF1A\u9700\u8981\u91CD\u65B0\u786E\u8BA4\u6210\u5458\u8D44\u683C");D.delete(ue(g)),D.delete(g.conversationId),so();}Un({...d,...d.channelPermissions===void 0?{}:{channelPermissions:{...d.channelPermissions}},...d.channelAccessSnapshot===void 0?{}:{channelAccessSnapshot:{...d.channelAccessSnapshot}}}),(a.get(g)?.unreadCount??0)>0&&!Ee(g)&&Rn(g,true);}function Kf(d){return Xm(o.getAll(),d)}async function Lf(d=()=>true){if(!(E===void 0||!d())){ce=true;try{let l=await E.getMeta(Zm);if(!d())return;if(l!==null)for(let j of l)A.add(j);let g=await E.getMeta(Qm);if(!d())return;if(g!==null)for(let j of g)D.add(j);let M=await E.getMeta(Wm);if(!d())return;if(M!==null)for(let[j,z]of M)typeof j=="string"&&typeof z=="string"&&b.set(j,z);let U=await E.getMeta(Hm);if(!d())return;if(U!==null)for(let j of U){let z=se(j);t.set(z,[...t.get(z)??[],j]);}let x=await E.getMeta(Jm);if(!d())return;if(Array.isArray(x))for(let j of x){if(typeof j!="object"||j===null)continue;let z=Reflect.get(j,"serialNumber"),De=Reflect.get(j,"status"),fe=Reflect.get(j,"occurredTime");typeof z!="string"||z.trim()===""||De!==0&&De!==1&&De!==2&&De!==3||fe!==void 0&&(typeof fe!="number"||!Number.isFinite(fe)||fe<=0)||r.set(z,{serialNumber:z,status:De,...fe===void 0?{}:{occurredTime:fe}});}let J=await E.getPinnedMessages();if(!d())return;for(let j of J){if(!d())return;Ee({conversationType:j.conversationType,conversationId:j.conversationId})||c.set(j)&&e.emitter.emit({type:"pinned-message:updated",conversationId:j.conversationId,conversation:zn(j),pinnedMessage:j,reason:"hydrate"});}let q=(await E.getSessions()).filter(j=>!Ee({conversationType:j.type,conversationId:j.id}));if(!d())return;for(let j of q){if(!d())return;let z=In(j),De=o.get(z);o.set(j),i.delete(z),(De===void 0||!bs(De,j))&&we(j);}let re=await E.getReadStates();if(!d())return;for(let j of re)j.conversationType==="channel"&&v(j.conversationId),a.set(j);let le=V,ie=await E.getDrafts();if(!d()||le!==V)return;for(let j of ie){if(!d())return;if(!Number.isFinite(j.updatedAt)||j.updatedAt<0)throw new Error(`\u8349\u7A3F updatedAt \u975E\u6CD5\uFF1A${j.updatedAt}`);let z=Zs(j.ref,j,j.updatedAt);if(Ee(z.ref)){try{if(await E.deleteDraft(z.ref),!d())return}catch(Pe){if(!d())return;oe("\u6E05\u7406\u5DF2\u5220\u4F1A\u8BDD\u6B8B\u7559\u8349\u7A3F\u5931\u8D25",Pe);}continue}let De=de(z.ref);R.set(De,Math.max(R.get(De)??0,z.updatedAt));let fe=s.get(z.ref);fe!==null&&fe.updatedAt===z.updatedAt&&Bc(fe,z)||(s.set(z),e.emitter.emit({type:"draft:updated",conversation:z.ref,draft:z}));}for(let j of q){if(!d())return;let z=In(j),De=(await E.getMessages(z,{limit:uA})).filter(Ge=>de(ke(Ge))===de(z)).filter(N);if(!d())return;let fe=[],Pe=De.map(Ge=>{let He=uo(Xn(Ge));return He!==Ge&&fe.push(He),He});if(Oc(Pe,d),!d())return;if(fe.length>0)try{if(await E.saveMessages(fe),!d())return}catch(Ge){if(!d())return;oe("\u672C\u5730\u6D88\u606F\u4FEE\u590D\u6001\u843D\u76D8\u5931\u8D25",Ge);}if(!d())return;Rn(z);}}catch(l){d()&&oe("\u672C\u5730\u5386\u53F2\u56DE\u8BFB\u5931\u8D25",l);}finally{ce=false,d()&&G("offline");}}}async function Zf(d,l){if(E===void 0)return [];try{let g=await E.getMessages(d,l),M=typeof d=="string"?g.filter(N):g.filter(J=>de(ke(J))===de(d)).filter(N),U=ce;ce=!0;let x;try{x=Oc(M);}finally{ce=U;}return ce||G("offline"),x.map(J=>K(ke(J),J.id)??J)}catch(g){return oe("\u52A0\u8F7D\u66F4\u65E9\u6D88\u606F\u5931\u8D25",g),[]}}function Qf(d,l){let g=l?.match(yo(d));return {message:d,ranges:g?.ranges.map(({start:M,end:U})=>[M,U])??[]}}async function Wf(d,l){let g=l.keyword?.trim()??"",M=l.contentTypes;if(g===""&&(M===void 0||M.length===0))return {results:[],exhausted:true};let U=g===""?void 0:await ga(g),x=fe=>{let Pe=M===void 0||M.includes(fe.contentType),Ge=U===void 0||U.match(yo(fe))!==null;return Pe&&Ge},J=(fe,Pe)=>fe.sortKey<Pe.sortKey?1:fe.sortKey>Pe.sortKey?-1:0,q=fe=>Qf(fe,U),re=()=>{let fe=n.getByConversation(d).filter(x).sort(J),Ge=(l.beforeSortKey===void 0?fe:fe.filter(xt=>xt.sortKey<l.beforeSortKey)).slice(0,l.limit),He=Ge.length<l.limit;return {results:Ge.map(q),exhausted:He,...He?{}:{nextBeforeSortKey:Ge.at(-1)?.sortKey}}};if(E===void 0)return re();let le;try{le=await E.searchMessages(d,{...l.keyword!==void 0?{keyword:l.keyword}:{},...M!==void 0?{contentTypes:M}:{},limit:l.limit,...l.beforeSortKey!==void 0?{beforeSortKey:l.beforeSortKey}:{}});}catch(fe){throw oe("\u4F1A\u8BDD\u5185\u641C\u7D22\u5931\u8D25",fe),fe}let ie=le.exhausted?void 0:le.nextBeforeSortKey,j=new Map(n.getByConversation(d).map(fe=>[fe.id,fe])),z=new Map;for(let fe of le.items){let Pe=Kc(fe);de(ke(Pe))===de(d)&&z.set(Pe.id,j.get(Pe.id)??Pe);}for(let fe of j.values()){let Pe=l.beforeSortKey===void 0||fe.sortKey<l.beforeSortKey,Ge=ie===void 0||fe.sortKey>=ie;Pe&&Ge&&x(fe)&&z.set(fe.id,fe);}return {results:[...z.values()].filter(x).sort(J).map(q),exhausted:le.exhausted,...le.exhausted?{}:{nextBeforeSortKey:le.nextBeforeSortKey}}}function Hf(d,l,g){let M=K(d,l);M!==void 0&&Cn([{...M,recalled:g,body:{}}],"live");}function Jf(d,l,g){let M=K(d,l);M===void 0||M.conversationType!=="channel"||Cn([{...M,recalled:void 0,deletedForEveryone:g,body:{}}],"live");}function Yf(d,l,g,M){let U=K(d,l);if(U===void 0)return;let x={...U,body:g,edited:true};M!==void 0?x.mention=M:delete x.mention,Cn([x],"live");}async function Xf(d,l,g){let M=r.get(d),U={serialNumber:d,status:l,...g===void 0?{}:{occurredTime:g}},x=O(M,U);r.set(x.serialNumber,x),await Ae();let J=new Map;for(let q of Es(n.getAll(),d,x.status,x.occurredTime))J.set(q.id,q);for(let q of o.getAll()){let re=W({conversationType:q.type,conversationId:q.id});for(let le of Es(re,d,x.status,x.occurredTime))J.set(le.id,le);}J.size!==0&&Cn([...J.values()],"live");}return {upsertMessages:Cn,applyReaction:h,rollbackReaction:S,appendDirectContactRequiredNotice:Lc,appendDirectMessageRefusedNotice:Mf,appendDirectContactRequiredTextFailure:Ef,reconcileDirectContactEstablishedNotice:bf,recallMessage:Hf,deleteChannelMessageForEveryone:Jf,editMessage:Yf,applyTransferStatusBySerialNumber:Xf,getMessage:d=>n.get(d),getConversationMessage:K,getLoadedMessagesByConversation:W,resolveConversationMessage:Rf,getMessages:()=>n.getAll(),getMessagesByConversation:d=>n.getByConversation(d),deleteLocalMessage:Hc,clearLocalConversationHistory:wf,getSession:d=>o.get(d),getConversationContext:ln,isMembershipTerminated:Y,prepareConversation:Of,ensureConversation:Vf,getSessions:()=>o.getAll(),getConversationList:cf,getReadState:d=>a.get(d),getPinnedMessage:d=>c.get(d),setPinnedMessage:yf,clearPinnedMessage:If,isPinnedMessage:(d,l)=>c.isPinnedMessage(d,l),setReadState:d=>{let l=d.conversationType===void 0?o.get(d.conversationId):void 0,g=d.conversationType===void 0&&l!==void 0?{...d,conversationType:l.type}:d;g.conversationType==="channel"&&v(g.conversationId),a.set(g),xc(g);},markConversationUnread:_f,clearConversationManualUnread:Zc,advanceRead:Nf,applyServerUnread:Qc,applyChannelReadPosition:Wc,getChannelReadRevision:d=>y.get(d.conversationId)??I,hasPendingChannelRead:d=>u.has(d.conversationId),applyChannelReadSummary:(d,l)=>Qc(d,l.unreadCount,void 0,l.readCursor,l.hasUnreadMention),beginChannelReadTransaction:Df,applyChannelReadOptimistically:Gf,commitChannelReadTransaction:Uf,rollbackChannelReadTransaction:kf,setGroupRestriction:xf,setChannelRestriction:js,setPinned:Bf,setMuted:Ff,removeConversation:Pf,removeConversationForMembershipTermination:$s,refreshConversationProfile:Cf,recoverChannelFromProfile:Sf,updateConversationProfile:Af,getTotalUnread:Kf,getDraft:df,saveDraft:lf,clearDraft:uf,clearDraftIfUnchanged:gf,invalidateAndDrainDraftOperations:pf,clearSession(){B+=1,V+=1,zs+=1,kt.clear(),P.clear(),ee.clear(),n.clear(),o.clear(),i.clear(),a.clear(),s.clear(),p.clear(),R.clear(),k.clear(),u.clear(),y.clear(),I+=1,c.clearAll(),A.clear(),D.clear(),b.clear(),t.clear();for(let d of ne)d.reset();},hydrate:Lf,loadOlderMessages:Zf,searchMessages:Wf,messageWindow:L,createMessageWindow:Ce}}var pA=new Set(["channel_name_changed","channel_avatar_changed","channel_announcement_changed","channel_private_chat_disabled","channel_private_chat_enabled","channel_member_renamed"]);function fA(e){let n=new Set,t=new Map,r=new Map,o=true;function i(u){let y=u.extensions?.channelSequence,I=typeof y=="string"?y:u.raw?.channelNotify?.sequence;if(I===void 0||!/^\d+$/.test(I))return;let v=BigInt(I);return v>0n?v:void 0}function a(u){return n.has(u)?false:(n.add(u),n.size>2048&&n.delete(n.values().next().value),true)}function s(u,y,I,v){v!==void 0&&r.set(u,v),e.clearChannelKey(u),e.stopChannelHistory(u),e.domainState.removeConversationForMembershipTermination({conversationType:"channel",conversationId:u},I);}function c(u){let y=e.domainState.getSession(u);e.domainState.setChannelRestriction(u,y?.channelState??"unknown_restricted",y?.channelState===void 0?"channel_access_requires_refresh":y.sendDisabledReason);}return {handleMessage(u,y={source:"live"}){if(!o||u.conversationType!=="channel"||u.contentType!=="system"||u.body.system===void 0||y.source!=="live"&&y.applyLifecycleEffects!==true||!a(u.id))return;let I=u.conversationId,v=u.body.system,T=v.targetUserIds?.includes(e.getSelfId())??false,A=v.targetUserIds===void 0||v.targetUserIds.length===0,D=i(u),b=t.get(I);if(D!==void 0){if(b!==void 0&&D<=b)return;t.set(I,D);}switch(v.eventType){case "channel_member_left":T?s(I,"left","channel_left",D):e.domainState.refreshConversationProfile(I,"channel");return;case "channel_member_removed":T?s(I,"removed","channel_removed",D):e.domainState.refreshConversationProfile(I,"channel");return;case "channel_dismissed":s(I,"dismissed","channel_dismissed",D);return;case "channel_member_joined":case "channel_member_invited":case "channel_created":{if(!T){e.domainState.refreshConversationProfile(I,"channel");return}let E=e.domainState.getSession(I)?.channelState;if(E==="dismissed")return;if(E==="left"||E==="removed"){let f=r.get(I);if(!(D!==void 0&&f!==void 0&&D>f)){e.domainState.recoverChannelFromProfile(I).then(R=>{!o||!R||(r.delete(I),e.clearConversationTermination?.({conversationType:"channel",conversationId:I}),e.prepareChannelKey(I));});return}r.delete(I);}if(!o)return;e.domainState.setChannelRestriction(I,"active",void 0),e.clearConversationTermination?.({conversationType:"channel",conversationId:I}),e.prepareChannelKey(I),e.domainState.refreshConversationProfile(I,"channel");return}case "channel_all_muted":case "channel_all_unmuted":c(I),e.domainState.refreshConversationProfile(I,"channel");return;case "channel_member_muted":case "channel_member_unmuted":(T||A)&&c(I),e.domainState.refreshConversationProfile(I,"channel");return;case "channel_admin_added":case "channel_admin_removed":(T||A)&&c(I),e.domainState.refreshConversationProfile(I,"channel");return;case "channel_owner_transferred":(T||A||v.operatorId===e.getSelfId())&&c(I),e.domainState.refreshConversationProfile(I,"channel");return;default:pA.has(v.eventType)&&e.domainState.refreshConversationProfile(I,"channel");}},dispose(){o=false,n.clear(),t.clear(),r.clear();}}}function yA(e){let{domainState:n,getSelfId:t,prefetchGroupKey:r,clearGroupKeys:o}=e;return {handleMessage(i){let a=i.body.system;if(i.contentType==="system"&&a!==void 0){if(a.eventType==="group_info_changed"||a.eventType==="group_master_changed"){n.refreshConversationProfile(i.conversationId,"group");return}let s=Nd(a,t());if(s===null)return;s.state==="active"?(n.setGroupRestriction(i.conversationId,s.state,s.reason),e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}),r(i.conversationId)):(o(i.conversationId),n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},s.reason));return}if(i.conversationType==="group"&&i.senderId===t()&&i.status==="failed"){let s=_d(i.failure?.code);s!==null?(o(i.conversationId),s.state==="dismissed"?n.removeConversationForMembershipTermination({conversationType:"group",conversationId:i.conversationId},s.reason):n.setGroupRestriction(i.conversationId,s.state,s.reason)):i.failure?.code===33540&&n.refreshConversationProfile(i.conversationId,"group");return}i.conversationType==="group"&&i.contentType!=="system"&&i.senderId!==t()&&i.encryption.decryptFailed!==true&&(n.getSession(i.conversationId)?.groupState==="removed"&&n.setGroupRestriction(i.conversationId,"active",""),n.getSession(i.conversationId)?.groupState==="active"&&e.clearConversationTermination?.({conversationType:"group",conversationId:i.conversationId}));}}}function IA(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 CA(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:Te(e.createdAt,e.callId),status:e.status??"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false},...e.failure===void 0?{}:{failure:e.failure}}}function at(e,n){let t=e.getMessage(n.callId);t?.contentType==="call"&&t.body.call?.outcome==="completed"&&n.outcome!=="completed"||e.upsertMessages([CA(n)],"live");}var Nt=3e4,jm=0,$m=1,ep=0;function np(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 SA=5,AA=6,tp=1,rp=2;function $d(e){return e==="video"?AA:SA}function op(e){return e==="audio"?$m:jm}function ip(e){if(e===$m)return "audio";if(e===jm)return "video";throw new Error(`call signaling: callType \u975E\u6CD5\uFF08${String(e)}\uFF09`)}function Ns(e,n,t=Nt){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 sp(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 ap(e){switch(e){case "accept":return 32768;case "reject":return 33792;case "busy":return 33793}}function ec(e){switch(e){case "cancel":return 33795;case "no-answer":return 33800;case "end":return 32768;case "peer-lost":return 33799}}function _s(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 he(e,n){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`call signaling: ${n} \u975E\u6CD5`);return BigInt(e)}function ze(e,n){let t=e.trim(),r=n.trim();return t===r?true:t===""||r===""||!/^\d+$/.test(t)||!/^\d+$/.test(r)?false:BigInt(t)===BigInt(r)}function Fe(e){let n=e.trim();if(n===""||n==="0")throw new Error("call signaling: callId \u7F3A\u5931\u6216\u975E\u6CD5");return n}var hA=new Set([33281,33299]);function _t(e){return {conversationType:"direct",conversationId:e}}function dp(e){return e==="accepted"||e==="connected"}function RA(e){let n,t;function r(){return e.now?.()??Date.now()}function o(){let O=e.getSelfId();if(O.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return O}function i(O){if(!e.isAuthenticated())throw new Error(`call signaling: \u672A\u9274\u6743\uFF0C\u4E0D\u80FD${O}`);return o()}function a(){n?.ringTimer!==void 0&&clearTimeout(n.ringTimer),n&&(n.ringTimer=void 0);}function s(){t?.ringTimer!==void 0&&clearTimeout(t.ringTimer),t&&(t.ringTimer=void 0);}function c(O,w){e.emitter.emit({type:"call:hangup",conversation:_t(O.peerId),callId:O.callId,peerId:O.peerId,outcome:w});}function u(O,w=r(),m=true){if(t===void 0)return;let C=t;return s(),I(C,O,w),t=void 0,m&&c(C,O),C}function y(O,w){return O.connectedAt===void 0?0:Math.max(0,w-O.connectedAt)}function I(O,w,m,C){at(e.domainState,{callId:O.callId,peerId:O.peerId,selfId:o(),callKind:O.callKind,outcome:w,durationMs:y(O,m),outgoing:O.direction==="outgoing",createdAt:m,...C});}function v(O,w){n!==void 0&&I(n,O,w);}function T(O,w=r(),m=true){if(n===void 0)return;let C=n;return a(),v(O,w),n=void 0,m&&c(C,O),t!==void 0&&(n=t,t=void 0),C}function A(O,w,m){let C=O===16387?Ar.encode(Ar.create({sUserId:w,sMsgId:m})):O===16391?Rr.encode(Rr.create({sUserId:w,sMsgId:m})):O===16399?Er.encode(Er.create({sUserId:w,sMsgId:m})):O===16403?vr.encode(vr.create({sUserId:w,sMsgId:m})):Mr.encode(Mr.create({sUserId:w,sMsgId:m}));e.sendFrame(X({command:O,body:C}));}function D(O){return setTimeout(O,Nt)}function b(){return Me(dn())}function E(O,w,m,C){let h=Sr.encode(Sr.create({sInviteId:he(w,"peerId"),sFromId:he(O,"selfId"),sMsgId:b(),msgTime:BigInt(r()),encrypt:ep,sContent:np(),callType:op(C),scallId:m}));e.sendFrame(X({command:16385,body:h}));}function f(O,w,m,C){let h=hr.encode(hr.create({sToId:he(w,"peerId"),sFromId:he(O,"selfId"),sMsgId:b(),msgTime:BigInt(r()),errcode:ap(C),scallId:m}));e.sendFrame(X({command:16389,body:h}));}function p(O,w,m,C){let h=Ct.encode(Ct.create({sToId:he(w,"peerId"),sFromId:he(O,"selfId"),sMsgId:b(),msgTime:BigInt(r()),scallId:m,hangupReasonCode:ec(C)}));e.sendFrame(X({command:16397,body:h}));}function R(O,w){let m=Fe(O.callId);if(he(O.peerId,"peerId"),n===void 0||n.callId!==m||n.peerId!==O.peerId)throw new Error(`call signaling: \u6CA1\u6709\u5339\u914D\u7684\u901A\u8BDD\uFF0C\u4E0D\u80FD${w}`);return n}function k(O){let w=i("\u53D1\u8D77\u901A\u8BDD"),m=O.callKind??"audio",C=String(he(O.peerId,"peerId"));if(C===w)throw new Error("call signaling: \u4E0D\u80FD\u547C\u53EB\u81EA\u5DF1");let h=Fe(O.callId);if(n!==void 0)throw new Error("call signaling: \u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u901A\u8BDD");let S=r();return n={callId:h,peerId:C,callKind:m,direction:"outgoing",phase:"outgoing-ringing",startedAt:S},E(w,C,h,m),n.ringTimer=D(()=>{n?.callId!==h||n.phase!=="outgoing-ringing"||(p(w,C,h,"no-answer"),T("cancelled"));}),{callId:h,conversation:_t(C)}}function V(O){let w=i("\u63A5\u542C"),m=Fe(O.callId);if(he(O.peerId,"peerId"),t!==void 0&&t.callId===m&&t.peerId===O.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 C=R(O,"\u63A5\u542C");if(C.direction!=="incoming"||C.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u63A5\u542C");a(),f(w,C.peerId,C.callId,"accept"),C.phase="accepted";}function $(O){let w=i("\u62D2\u7EDD"),m=Fe(O.callId);if(he(O.peerId,"peerId"),t!==void 0&&t.callId===m&&t.peerId===O.peerId){f(w,t.peerId,t.callId,"reject"),u("rejected");return}let C=R(O,"\u62D2\u7EDD");if(C.direction!=="incoming"||C.phase!=="incoming-ringing")throw new Error("call signaling: \u5F53\u524D\u72B6\u6001\u4E0D\u80FD\u62D2\u7EDD");f(w,C.peerId,C.callId,"reject"),T("rejected");}function ne(O){let w=i("\u56DE\u5FD9"),m=Fe(O.callId),C=String(he(O.peerId,"peerId"));if(f(w,C,m,"busy"),n?.callId===m){T("busy");return}if(t?.callId===m){u("busy");return}at(e.domainState,{callId:m,peerId:C,selfId:w,callKind:"audio",outcome:"busy",durationMs:0,outgoing:false,createdAt:r()});}function Se(O){let w=i("\u6302\u65AD"),m=R(O,"\u6302\u65AD");p(w,m.peerId,m.callId,O.reason);let C=m.phase==="connected",h=_s(ec(O.reason),m.direction,C);T(h);}function L(O,w){let m=w==="video"?"\u901A\u77E5\u5BF9\u7AEF\u89C6\u9891\u5DF2\u5F00\u59CB":"\u901A\u77E5\u5BF9\u7AEF\u97F3\u9891\u5DF2\u5F00\u59CB",C=i(m),h=R(O,m);if(h.callKind!==w)throw new Error(`call signaling: \u5F53\u524D\u901A\u8BDD\u4E0D\u662F${w==="video"?"\u89C6\u9891":"\u8BED\u97F3"}\uFF0C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5`);if(h.phase!=="accepted"&&h.phase!=="connected")throw new Error("call signaling: \u672A\u63A5\u542C\u4E0D\u80FD\u53D1\u9001\u9996\u5E27\u901A\u77E5");let S=Tr.encode(Tr.create({sToId:he(h.peerId,"peerId"),sFromId:he(C,"selfId"),sMsgId:b(),msgTime:BigInt(r()),notifyType:$d(w),notifyValue:O.role==="caller"?tp:rp,scallId:h.callId}));e.sendFrame(X({command:16401,body:S}));}function Ce(O){L(O,"audio");}function ye(O){L(O,"video");}function K(O){let w=Gi.decode(O);if(w.sMsgId.trim()==="")throw new Error("call signaling: invite deliver \u7F3A\u5C11 sMsgId");let m=o();A(16387,he(m,"selfId"),w.sMsgId);let C=Fe(w.scallId),h=w.sFromId.toString();if(w.sFromId<=0n||w.sInviteId.toString()!==m)throw new Error("call signaling: invite deliver \u8EAB\u4EFD\u4E0D\u5339\u914D");if(h===m)return;let S=Number(w.msgTime),_=ip(w.callType),G=Ns(S,r()),B=_t(h);if(G){at(e.domainState,{callId:C,peerId:h,selfId:m,callKind:_,outcome:"missed",durationMs:0,outgoing:false,createdAt:S}),e.emitter.emit({type:"call:incoming",conversation:B,callId:C,peerId:h,callKind:_,createdAt:S,expired:true});return}if(n?.callId===C||t?.callId===C)return;if(n!==void 0&&!dp(n.phase)){f(m,h,C,"busy"),at(e.domainState,{callId:C,peerId:h,selfId:m,callKind:_,outcome:"busy",durationMs:0,outgoing:false,createdAt:S});return}if(n!==void 0&&n.peerId===h){f(m,h,C,"busy"),at(e.domainState,{callId:C,peerId:h,selfId:m,callKind:_,outcome:"busy",durationMs:0,outgoing:false,createdAt:S});return}if(t!==void 0){f(m,h,C,"busy"),at(e.domainState,{callId:C,peerId:h,selfId:m,callKind:_,outcome:"busy",durationMs:0,outgoing:false,createdAt:S});return}let P={callId:C,peerId:h,callKind:_,direction:"incoming",phase:"incoming-ringing",startedAt:S};if(P.ringTimer=D(()=>{if(t?.callId===C&&t.phase==="incoming-ringing"){u("missed");return}n?.callId!==C||n.phase!=="incoming-ringing"||T("missed",S);}),n!==void 0&&dp(n.phase)){t=P,e.emitter.emit({type:"call:incoming",conversation:B,callId:C,peerId:h,callKind:_,createdAt:S,expired:false});return}n=P,e.emitter.emit({type:"call:incoming",conversation:B,callId:C,peerId:h,callKind:_,createdAt:S,expired:false});}function Q(O){let w=Di.decode(O);if(n===void 0||n.direction!=="outgoing"||w.errcode===32768)return;let m=w.errcode===33794?"peer-offline":"ack-error",C=n,h=r();a(),n=void 0,hA.has(w.errcode)?(I(C,"cancelled",h,{status:"failed",failure:{code:w.errcode,reason:"rejected",displayCode:"contactRequired",retryable:false}}),e.domainState.appendDirectContactRequiredNotice(C.peerId,C.callId,h+1)):I(C,"cancelled",h),e.emitter.emit({type:"call:failed",conversation:_t(C.peerId),callId:C.callId,peerId:C.peerId,reason:m});}function W(O,w){w!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`call signaling: ${O} ACK \u5931\u8D25`,cause:{errcode:w}}});}function Z(O){let w=ki.decode(O);if(w.sMsgId.trim()==="")throw new Error("call signaling: answer deliver \u7F3A\u5C11 sMsgId");let m=o();A(16391,he(m,"selfId"),w.sMsgId);let C=Fe(w.scallId);if(n===void 0||n.callId!==C||n.direction!=="outgoing")return;let h=sp(w.errcode);if(e.emitter.emit({type:"call:answered",conversation:_t(n.peerId),callId:C,peerId:n.peerId,result:h}),h==="accept"){a(),n.phase="accepted";return}T(h==="reject"?"rejected":h==="busy"?"busy":"cancelled");}function ce(O){let w=Ct.decode(O);if(w.sMsgId.trim()==="")throw new Error("call signaling: hangup deliver \u7F3A\u5C11 sMsgId");let m=o();A(16399,he(m,"selfId"),w.sMsgId);let C=Fe(w.scallId);if(t!==void 0&&t.callId===C){let S=_s(w.hangupReasonCode,t.direction,false);u(S);return}if(n===void 0||n.callId!==C)return;let h=_s(w.hangupReasonCode,n.direction,n.phase==="connected");T(h);}function se(O){let w=wi.decode(O);if(w.sMsgId.trim()==="")throw new Error("call signaling: state notify deliver \u7F3A\u5C11 sMsgId");let m=o();if(A(16403,he(m,"selfId"),w.sMsgId),n===void 0||w.notifyType!==$d(n.callKind))return;let C=Fe(w.scallId);n.callId===C&&(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:_t(n.peerId),callId:C,peerId:n.peerId})));}function ae(O){let w=xi.decode(O);if(w.sMsgId.trim()==="")throw new Error("call signaling: nat deliver \u7F3A\u5C11 sMsgId");A(16395,he(o(),"selfId"),w.sMsgId);}return {handlers:[{command:16388,handler:(O,w)=>K(w)},{command:16386,handler:(O,w)=>Q(w)},{command:16392,handler:(O,w)=>Z(w)},{command:16390,handler:(O,w)=>W("answer",Ui.decode(w).errcode)},{command:16400,handler:(O,w)=>ce(w)},{command:16398,handler:(O,w)=>W("hangup",Bi.decode(w).errcode)},{command:16404,handler:(O,w)=>se(w)},{command:16402,handler:(O,w)=>W("state-notify",Fi.decode(w).errcode)},{command:16396,handler:(O,w)=>ae(w)}],invite:k,accept:V,reject:$,busy:ne,hangup:Se,notifyPeerAudioBegin:Ce,notifyPeerVideoBegin:ye,dispose(){a(),s(),n=void 0,t=void 0;}}}var MA={started:"group_call_started",ended:"group_call_ended",missed:"group_call_missed"};function EA(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 cp(e,n){let t=`group-call-notice:${n}:${e.trim()}`,r=[0,1,2,3].map(o=>EA(`${t}:${o}`).toString(16).padStart(8,"0")).join("");return ge(r)}function TA(e){let n=cp(e.callId,e.kind),t=e.operatorId?.trim()??"";return {id:n,conversationId:e.groupId,conversationType:"group",senderId:Ss,contentType:"system",body:{system:{eventType:MA[e.kind],...t===""?{}:{operatorId:t},payload:{callId:e.callId}}},createdAt:e.createdAt,sortKey:Te(e.createdAt,n),status:"sent",receipt:"unread",encryption:{encrypted:false,decryptFailed:false}}}function lp(e,n){let t=cp(n.callId,n.kind);e.getMessage(t)===void 0&&e.upsertMessages([TA(n)],"live");}var nc=9;function vA(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 up(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 c of t){let u=vA(c),y=new Uint8Array(1+u.length);y[0]=r,y.set(u,1),o.push(y),i+=y.length;}let a=new Uint8Array(e.length+i),s=0;for(let c of o)a.set(c,s),s+=c.length;return a}function qe(e){return {conversationType:"group",conversationId:e}}function bA(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 NA(e){return e.members.filter(n=>n.status==="in-call").length}function Ds(e){return e.filter(n=>n.status==="in-call").length<=1}function _A(e){let n=new Map,t=new Set,r=[];function o(){return e.now?.()??Date.now()}function i(h,S,_,G,B){lp(e.domainState,{kind:h,groupId:S,callId:_,createdAt:G,...B===void 0?{}:{operatorId:B}});}function a(){let h=e.getSelfId();if(h.trim()==="")throw new Error("call signaling: \u5F53\u524D\u8D26\u53F7\u672A\u5C31\u7EEA");return h}function s(h){if(!e.isAuthenticated())throw new Error(`\u672A\u9274\u6743\uFF0C\u4E0D\u80FD${h}`);return a()}function c(){return Me(dn())}function u(h){if(h.trim()===""||t.has(h))return false;if(t.add(h),r.push(h),r.length>256){let S=r.shift();S!==void 0&&t.delete(S);}return true}function y(h){let S=n.get(h);return S===void 0?null:bA(S)}function I(h){h.incomingRingTimer!==void 0&&clearTimeout(h.incomingRingTimer),h.incomingRingTimer=void 0;}function v(h,S,_){let G=h.members.find(B=>B.userId===S);if(G!==void 0){G.status=_;return}h.members.push({userId:S,status:_});}function T(h,S){h.members=h.members.filter(_=>_.userId!==S);}function A(h){let S=n.get(h.groupId);S!==void 0&&I(S);let _=[];for(let B of h.inCallIds)_.some(P=>P.userId===B)||_.push({userId:B,status:"in-call"});for(let B of h.ringingIds)_.some(P=>P.userId===B)||_.push({userId:B,status:"ringing"});let G={groupId:h.groupId,callId:h.callId,inviterId:h.inviterId,createdAt:h.createdAt,members:_};return n.set(h.groupId,G),G}function D(h,S){let _=n.get(h);if(_!==void 0&&!(S!==void 0&&_.callId!==S))return I(_),n.delete(h),_}function b(h,S){for(let _ of n.values())if(_.groupId!==S&&_.members.some(G=>ze(G.userId,h)))return true;return false}function E(h,S,_){let G=Nr.encode(Nr.create({userId:S,msgId:_}));e.sendFrame(X({command:h,body:G}));}function f(h,S,_,G){let B=G.map(ee=>he(ee,"inviteId")),P=up(br.encode(br.create({groupId:he(S,"groupId"),userId:he(h,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:_,inviteIds:B})),6,B);e.sendFrame(X({command:16641,body:P}));}function p(h,S,_,G,B){let P=G.map(ue=>he(ue,"inviteId")),ee=up(Dr.encode(Dr.create({groupId:he(S,"groupId"),userId:he(h,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:_,joinType:B?1:0,inviteIds:P})),5,P);e.sendFrame(X({command:16649,body:ee}));}function R(h,S,_,G){let B=_r.encode(_r.create({groupId:he(S,"groupId"),userId:he(h,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:_,ansType:G?1:0}));e.sendFrame(X({command:16645,body:B}));}function k(h,S,_){let G=Gr.encode(Gr.create({groupId:he(S,"groupId"),userId:he(h,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:_}));e.sendFrame(X({command:16653,body:G}));}function V(h,S,_){let G=Ur.encode(Ur.create({groupId:he(S,"groupId"),userId:he(h,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:_}));e.sendFrame(X({command:16657,body:G}));}function $(h,S,_){let G=s("\u53D1\u8D77\u7FA4\u4F1A\u8BAE"),B=Fe(S),P=[...new Set(_.map(ue=>ue.trim()).filter(ue=>ue!==""&&!ze(ue,G)))];if(P.length===0)throw new Error("call signaling: \u7FA4\u4F1A\u8BAE\u81F3\u5C11\u9080\u8BF7 1 \u4EBA");if(P.length+1>nc)throw new Error(`call signaling: \u7FA4\u4F1A\u8BAE\u4EBA\u6570\u4E0D\u80FD\u8D85\u8FC7 ${nc}`);let ee=n.get(h);if(ee!==void 0&&NA(ee)>0)throw new Error("call signaling: \u5F53\u524D\u7FA4\u5DF2\u6709\u8FDB\u884C\u4E2D\u7684\u4F1A\u8BAE");f(G,h,B,P),A({groupId:h,callId:B,inviterId:G,createdAt:o(),inCallIds:[G],ringingIds:P}),i("started",h,B,o(),G);}function ne(h,S,_,G){let B=s("\u52A0\u5165\u7FA4\u4F1A\u8BAE"),P=Fe(S),ee=[...new Set(_.map(Ee=>Ee.trim()).filter(Ee=>Ee!==""&&!ze(Ee,B)))];p(B,h,P,ee,G);let ue=n.get(h);if(ue!==void 0&&ue.callId===P&&(v(ue,B,"in-call"),G))for(let Ee of ee)v(ue,Ee,"ringing");}function Se(h,S,_){let G=s("\u54CD\u5E94\u7FA4\u4F1A\u8BAE"),B=Fe(S),P=n.get(h);if(P!==void 0&&P.callId===B&&I(P),R(G,h,B,_),!(P===void 0||P.callId!==B)){if(_){v(P,G,"in-call");return}T(P,G),e.emitter.emit({type:"group-call:answered",conversation:qe(h),callId:B,groupId:h,userId:G,agreed:false});}}function L(h,S){let _=s("\u9000\u51FA\u7FA4\u4F1A\u8BAE"),G=Fe(S),B=n.get(h);if(B!==void 0&&B.callId===G&&Ds(B.members)){V(_,h,G),D(h,G),i("ended",h,G,o()),e.emitter.emit({type:"group-call:finished",conversation:qe(h),callId:G,groupId:h,userId:_});return}k(_,h,G),B!==void 0&&B.callId===G&&(I(B),T(B,_)),e.emitter.emit({type:"group-call:left",conversation:qe(h),callId:G,groupId:h,userId:_});}function Ce(h,S){let _=s("\u7ED3\u675F\u7FA4\u4F1A\u8BAE"),G=Fe(S);V(_,h,G),D(h,G),i("ended",h,G,o()),e.emitter.emit({type:"group-call:finished",conversation:qe(h),callId:G,groupId:h,userId:_});}function ye(h,S,_,G){let B=s("\u4FEE\u6539\u7FA4\u4F1A\u8BAE\u72B6\u6001"),P=kr.encode(kr.create({groupId:he(h,"groupId"),userId:he(B,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:Fe(S),statusType:_?1:0,status:G?1:0}));e.sendFrame(X({command:16661,body:P}));}function K(h,S,_){let G=s("\u53D1\u9001\u7FA4\u4F1A\u8BAE\u5FD9\u7EBF"),B=xr.encode(xr.create({groupId:he(h,"groupId"),userId:he(G,"selfId"),msgId:c(),msgTime:BigInt(o()),callId:Fe(S),hintUser:he(_,"hintUserId")}));e.sendFrame(X({command:16669,body:B}));let P=n.get(h);P!==void 0&&P.callId===S&&T(P,G);}function Q(h){let S=Vi.decode(h);if(S.msgId.trim()==="")throw new Error("group call: create deliver \u7F3A\u5C11 msgId");let _=a();if(E(16643,he(_,"selfId"),S.msgId),!u(S.msgId))return;let G=S.groupId.toString(),B=S.userId.toString(),P=Fe(S.callId),ee=S.inviteIds.map(H=>H.toString()).filter(H=>H!=="0"),ue=Number(S.msgTime),Ee=Ns(ue,o(),Nt),Y=qe(G),te=ze(B,_),Ie=ee.some(H=>ze(H,_))||ee.length===0&&!te;if(te){A({groupId:G,callId:P,inviterId:B,createdAt:ue,inCallIds:[_],ringingIds:ee.filter(H=>!ze(H,_))});return}let be=n.get(G);if(be!==void 0&&be.callId!==P&&be.members.some(H=>ze(H.userId,_)&&H.status==="in-call")){V(_,G,P),i("ended",G,P,Number.isFinite(ue)?ue:o());return}if(A({groupId:G,callId:P,inviterId:B,createdAt:ue,inCallIds:[B],ringingIds:Ie?[...new Set([_,...ee.filter(H=>!ze(H,B))])]:ee.filter(H=>!ze(H,B))}),i("started",G,P,Number.isFinite(ue)?ue:o(),B),!Ie)return;if(Ee){e.emitter.emit({type:"group-call:incoming",conversation:Y,callId:P,groupId:G,inviterId:B,inviteIds:ee,createdAt:ue,expired:true});return}if(b(_,G)){K(G,P,B);return}let N=n.get(G);N!==void 0&&(N.incomingRingTimer=setTimeout(()=>{let H=n.get(G);if(H===void 0||H.callId!==P)return;let Re=H.members.find(oe=>ze(oe.userId,_));if(!(Re===void 0||Re.status!=="ringing")){try{Se(G,P,!1);}catch{T(H,_);}i("missed",G,P,o());}},Nt)),e.emitter.emit({type:"group-call:incoming",conversation:Y,callId:P,groupId:G,inviterId:B,inviteIds:ee,createdAt:ue,expired:false});}function W(h){let S=Ki.decode(h);if(S.msgId.trim()==="")throw new Error("group call: answer deliver \u7F3A\u5C11 msgId");let _=a();if(E(16647,he(_,"selfId"),S.msgId),!u(S.msgId))return;let G=S.groupId.toString(),B=S.userId.toString(),P=Fe(S.callId),ee=S.ansType===1,ue=n.get(G);ue===void 0||ue.callId!==P||(ee?v(ue,B,"in-call"):T(ue,B),e.emitter.emit({type:"group-call:answered",conversation:qe(G),callId:P,groupId:G,userId:B,agreed:ee}));}function Z(h){let S=Zi.decode(h);if(S.msgId.trim()==="")throw new Error("group call: join deliver \u7F3A\u5C11 msgId");let _=a();if(E(16651,he(_,"selfId"),S.msgId),!u(S.msgId))return;let G=S.groupId.toString(),B=S.userId.toString(),P=Fe(S.callId),ee=S.inviteIds.map(te=>te.toString()).filter(te=>te!=="0"&&te!==B),ue=n.get(G);if(ue===void 0||ue.callId!==P)ue=A({groupId:G,callId:P,inviterId:B,createdAt:Number(S.msgTime),inCallIds:[B],ringingIds:ee});else if(v(ue,B,"in-call"),S.joinType===1)for(let te of ee)v(ue,te,"ringing");e.emitter.emit({type:"group-call:joined",conversation:qe(G),callId:P,groupId:G,userId:B,inviteIds:ee,isInvite:S.joinType===1});let Ee=ee.some(te=>ze(te,_))||ee.length===0&&S.joinType===1&&!ze(B,_),Y=ue.members.find(te=>ze(te.userId,_));Ee&&S.joinType===1&&!ze(B,_)&&Y?.status!=="in-call"&&e.emitter.emit({type:"group-call:incoming",conversation:qe(G),callId:P,groupId:G,inviterId:B,inviteIds:ee,createdAt:Number(S.msgTime),expired:false});}function ce(h){let S=Wi.decode(h);if(S.msgId.trim()==="")throw new Error("group call: hangup deliver \u7F3A\u5C11 msgId");let _=a();if(E(16655,he(_,"selfId"),S.msgId),!u(S.msgId))return;let G=S.groupId.toString(),B=S.userId.toString(),P=Fe(S.callId),ee=n.get(G);ee===void 0||ee.callId!==P||(T(ee,B),e.emitter.emit({type:"group-call:left",conversation:qe(G),callId:P,groupId:G,userId:B}),Ds(ee.members)&&(D(G,P),i("ended",G,P,o()),e.emitter.emit({type:"group-call:finished",conversation:qe(G),callId:P,groupId:G,userId:B})));}function se(h){let S=Ji.decode(h);if(S.msgId.trim()==="")throw new Error("group call: finish deliver \u7F3A\u5C11 msgId");let _=a();if(E(16659,he(_,"selfId"),S.msgId),!u(S.msgId))return;let G=S.groupId.toString(),B=S.userId.toString(),P=Fe(S.callId);D(G,P),i("ended",G,P,Number(S.msgTime)||o()),e.emitter.emit({type:"group-call:finished",conversation:qe(G),callId:P,groupId:G,userId:B});}function ae(h){let S=ji.decode(h);if(S.msgId.trim()==="")throw new Error("group call: busy deliver \u7F3A\u5C11 msgId");let _=a();if(E(16671,he(_,"selfId"),S.msgId),!u(S.msgId))return;let G=S.groupId.toString(),B=S.userId.toString(),P=Fe(S.callId),ee=n.get(G);ee!==void 0&&ee.callId===P&&T(ee,B),e.emitter.emit({type:"group-call:busy",conversation:qe(G),callId:P,groupId:G,userId:B,hintUserId:S.hintUser.toString()});}function Ae(h){let S=zi.decode(h);if(S.msgId.trim()==="")throw new Error("group call: disconnected deliver \u7F3A\u5C11 msgId");let _=a();if(E(16667,he(_,"selfId"),S.msgId),!u(S.msgId))return;let G=S.groupId.toString(),B=Fe(S.callId),P=n.get(G);if(!(P===void 0||P.callId!==B)){for(let ee of S.users){let ue=ee.toString();T(P,ue),e.emitter.emit({type:"group-call:left",conversation:qe(G),callId:B,groupId:G,userId:ue});}Ds(P.members)&&(D(G,B),i("ended",G,B,o()),e.emitter.emit({type:"group-call:finished",conversation:qe(G),callId:B,groupId:G,userId:S.userId.toString()}));}}function O(h){let S=Xi.decode(h);if(S.msgId.trim()==="")throw new Error("group call: status deliver \u7F3A\u5C11 msgId");E(16663,he(a(),"selfId"),S.msgId);}function w(h){let S=Pi.decode(h);if(S.errCode===32768)return;let _=a();for(let G of n.values()){if(!ze(G.inviterId,_))continue;let B=D(G.groupId,G.callId);if(B!==void 0){e.emitter.emit({type:"group-call:failed",conversation:qe(B.groupId),callId:B.callId,groupId:B.groupId,reason:"ack-error"});return}}e.emitter.emit({type:"error",error:{scope:"protocol",message:"group call: createRoom ACK \u5931\u8D25",cause:{errCode:S.errCode}}});}function m(h,S){S!==32768&&e.emitter.emit({type:"error",error:{scope:"protocol",message:`group call: ${h} ACK \u5931\u8D25`,cause:{errCode:S}}});}return {commandHandlers:[{command:16644,handler:(h,S)=>Q(S)},{command:16642,handler:(h,S)=>w(S)},{command:16648,handler:(h,S)=>W(S)},{command:16646,handler:(h,S)=>m("answer",Oi.decode(S).errCode)},{command:16652,handler:(h,S)=>Z(S)},{command:16650,handler:(h,S)=>m("join",Li.decode(S).errCode)},{command:16656,handler:(h,S)=>ce(S)},{command:16654,handler:(h,S)=>m("hangup",Qi.decode(S).errCode)},{command:16660,handler:(h,S)=>se(S)},{command:16658,handler:(h,S)=>m("finish",Hi.decode(S).errCode)},{command:16672,handler:(h,S)=>ae(S)},{command:16670,handler:(h,S)=>m("busy",qi.decode(S).errCode)},{command:16668,handler:(h,S)=>Ae(S)},{command:16664,handler:(h,S)=>O(S)},{command:16662,handler:(h,S)=>m("status",Yi.decode(S).errCode)}],createRoom:$,joinRoom:ne,answer:Se,hangup:L,finish:Ce,setStatus:ye,busy:K,inspectMeeting:y,dispose(){for(let h of n.values())I(h);n.clear();}}}function Dt(e,n){return `[${n}] \u4F1A\u8BDD\u7C7B\u578B '${e}' \u5C1A\u672A\u63A5\u5165\u6D88\u606F\u94FE\u8DEF\uFF1B\u8BF7\u65B0\u589E\u5BF9\u5E94\u7684\u53D1\u9001\u7B56\u7565 / \u6536\u5305\u5904\u7406\u5668 / \u79BB\u7EBF\u540C\u6B65 / \u5BC6\u94A5\u89E3\u6790\uFF0C\u7981\u6B62\u590D\u7528 direct \u5355\u804A\u94FE\u8DEF\u3002`}function tc(e){return [{command:4646,handler:(n,t)=>{let r=qo.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:8977,handler:(n,t)=>{let r=$o.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}},{command:12809,handler:(n,t)=>{let r=_i.decode(t);e.onEditAck({sMsgId:r.sMsgId,errcode:r.errcode});}}]}var gp=9;function DA(){return {encrypted:true}}function GA(e,n){if(e.length===0)return "empty-input";if(e.length>gp)return "too-many-targets";for(let t of e)if(n.resolve(t.conversationType)===void 0)return "unsupported-target-type"}function UA(e){return "body"in e&&"contentType"in e&&"sortKey"in e}var kA={"not-media-album":"type-not-allowed","item-not-found":"album-item-not-found","item-not-ready":"media-not-ready"};function rc(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=GA(n.targets,e.sendStrategies);if(i!==void 0){for(let s of n.targets.length>0?n.targets:[{conversationId:"",conversationType:"direct"}])for(let c of n.messages)r.push({ok:false,sourceMessageId:c.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:i});return {results:r,skippedSourceIds:[]}}let a=[];for(let s of n.messages){let c=e.resolveCurrentMessage===void 0?UA(s)?s:void 0:e.resolveCurrentMessage(s);if(c===void 0||c.id!==s.id||c.conversationId!==s.conversationId||c.conversationType!==s.conversationType){o.push(s.id);continue}if(!(s.itemIndex===void 0?Jd(c):Ts(c))){o.push(s.id);continue}a.push(s.itemIndex===void 0?{message:c}:{message:c,itemIndex:s.itemIndex});}for(let s of n.targets)for(let{message:c,itemIndex:u}of a)try{let y=u===void 0?void 0:xm(c,u);if(y!==void 0&&!y.ok){r.push({ok:!1,sourceMessageId:c.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:kA[y.reason]});continue}let I=y?.ok===!0?y.contentType:c.contentType,v=jr(I);if(v===void 0){r.push({ok:!1,sourceMessageId:c.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:"type-not-allowed"});continue}let T=y?.ok===!0?y.body:v.cloneBody(c),A=DA(),D=v.enqueue({outbox:e.outbox,target:s,source:c,body:T,encryption:A,now:t,contentType:I});r.push({ok:!0,sourceMessageId:c.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,newMessageId:D});}catch{r.push({ok:false,sourceMessageId:c.id,targetConversationId:s.conversationId,targetConversationType:s.conversationType,reason:"send-failed"});}return {results:r,skippedSourceIds:o}}function mp(e,n){if(n.conversationType==="channel")throw new Error("sendGift: CHANNEL \u4E0D\u53D1\u9001\u793C\u7269");if(!Co(n.gift))throw new Error("sendGift: \u793C\u7269\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:"gift",body:{gift:n.gift},encryption:{encrypted:false},...n.refMessageId===void 0?{}:{refMessageId:n.refMessageId}})}var Gt=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 pp(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 no(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 fp=1,xA=2,oc=3,BA=3,yp=5,Ip=3,Cp=6,FA=16*1024*1024,wA=1e3;function ic(e){return Number.isFinite(e)&&e>0}var PA=320,VA=12*1024,Sp=20*1024,OA=.9,KA=.72,LA=320,ZA=10*1024,uc=16*1024,QA=.84,WA=.68,HA=uc;function sc(e,n){if(!(n!=="video"&&n!=="image"||e===void 0)&&!(!ic(e.width)||!ic(e.height)||n==="video"&&e.duration!==void 0&&!ic(e.duration)||n==="video"&&e.posterData!==void 0&&(!(e.posterData instanceof Uint8Array)||e.posterData.length===0||e.posterData.length>HA)))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 Gs(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 ac={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:PA,targetBytes:VA,maxBytes:Sp,quality:OA,minQuality:KA},r);return {width:o.width,height:o.height,...i.data.byteLength<=Sp?{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}:{}}}}},Us={contentType:"video",uploadKind:"video",encryptMode:"integral",streamUpload:true,async buildPreview(e,n,t,r){let o=await t.videoPoster(e,{mimeType:n,maxSize:LA,targetBytes:ZA,maxBytes:uc,quality:QA,minQuality:WA},r);return {width:o.width,height:o.height,...o.data.byteLength<=uc?{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}:{}}}}},JA={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}:{}}}}},YA={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 XA(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function zA(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 ks={contentType:"file",uploadKind:"file",encryptMode:"simple",streamUpload:true,buildPreview(){return Promise.resolve({width:0,height:0})},buildBody({url:e,size:n,teaKey:t,fileEncryptType:r},o){let i=o.filename??"",a=XA(i),s=zA(a,o.mimeType);return {file:{url:e,fileName:i,...n!==void 0?{size:n}:{},...a!==""?{extension:a}:{},...s!==0?{fileType:s}:{},...o.mimeType!==void 0&&o.mimeType!==""?{mimeType:o.mimeType}:{},...r!==void 0?{fileEncryptType:r}:{},...t!==void 0?{teaKey:t}:{}}}}},qA={...ks,contentType:"filesAlbum",buildBody(e,n){let t=ks.buildBody(e,n).file;return {filesAlbum:{...n.caption?.trim()?{caption:n.caption}:{},items:[{...t,extension:t.extension??"",fileType:t.fileType??0,...["zip","rar","torrent"].includes(t.extension??"")?{fileType:5}:{},...e.md5===void 0?{}:{md5:e.md5}}]}}}};function xs(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 Ap(e,n){return e==="video"||n===void 0||n>FA?"large":"small"}function dc(){return new DOMException("\u5A92\u4F53\u4E0A\u4F20\u5DF2\u53D6\u6D88","AbortError")}function hp(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 jA(e){if(e.kind==="album")return {code:Pn,reason:"unknown",displayCode:xs(e.failureReason),retryable:false};let n=e.spec.contentType==="video"||e.spec.contentType==="file";return {code:Pn,reason:"unknown",displayCode:n?"media.uploadInterrupted":xs(e.failureReason),mediaKind:e.spec.uploadKind,retryable:false}}function $A(e){return typeof e=="function"}function eh(e){return typeof Blob<"u"&&e instanceof Blob}function nh(e){let n=0,t=0,r=[];function o(s){return n<e.total&&(s!=="large"||t<e.largeFiles)}function i(s){n+=1,s==="large"&&(t+=1);let c=false;return ()=>{c||(c=true,n-=1,s==="large"&&(t-=1),a());}}function a(){let s=0;for(;s<r.length;){let c=r[s];if(c.signal.aborted){r.splice(s,1),c.signal.removeEventListener("abort",c.onAbort),c.reject(dc());continue}if(!o(c.tier)){s+=1;continue}r.splice(s,1),c.signal.removeEventListener("abort",c.onAbort),c.resolve(i(c.tier));}}return {acquire(s,c){return c.aborted?Promise.reject(dc()):new Promise((u,y)=>{let I={tier:s,signal:c,resolve:u,reject:y,onAbort:()=>{let v=r.indexOf(I);v>=0&&r.splice(v,1),y(dc());}};r.push(I),c.addEventListener("abort",I.onAbort,{once:true}),a();})}}}function cc(e,n){if(!Number.isInteger(e)||e<1||e>Cp)throw new RangeError(`\u5A92\u4F53\u4E0A\u4F20\u5E76\u53D1\u6570\u5FC5\u987B\u662F 1-${Cp} \u7684\u6574\u6570\uFF08${n}\uFF09`)}function th(e){if(e===void 0)return {total:yp,largeFiles:Ip};if(typeof e=="number")return cc(e,"\u603B\u6570"),{total:e,largeFiles:e};let n=e.total??yp;cc(n,"total");let t=e.largeFiles??Math.min(Ip,n);if(cc(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 gc(e){let n=nh(th(e.maxConcurrentUploads)),t=new Map,r=new Map,o=new Map,i=new Map,a=new Map,s=true,c=0,u=0;function y(f){return {conversationType:f.conversationType,conversationId:f.conversationId}}function I(f,p,R,k){e.mediaTransfer.abandonUpload(f).catch(V=>{e.onMediaTransferError?.({stage:"upload",kind:p,messageId:R,conversation:k,cause:V});});}function v(f,p,R,k,V,$){if(!s)return;let ne=y(p);e.emitter.emit({type:"media-task:updated",conversation:ne,task:{id:`upload:${f}`,messageId:f,ref:ne,direction:"upload",state:R,percent:Math.max(0,Math.min(100,Math.round(k))),...$===void 0?{}:{phase:$},...V===void 0?{}:{failure:V}}});}function T(f,p){for(a.delete(f),a.set(f,p);a.size>BA;){let R=a.keys().next().value;if(R===void 0)break;let k=a.get(R);if(a.delete(R),k===void 0)continue;for(let $ of hp(k))I($.resume,$.kind,R,y(k.input));if(!s)continue;let V=jA(k);e.domainState.upsertMessages([{...k.message,status:"failed",failure:V}],"live"),v(R,k.input,"failed",i.get(R)??0,V);}}async function A(f,p,R,k,V,$,ne=false){let Se=c,L=()=>s&&Se===c;if(!L())return $!==void 0&&R!==void 0&&I($,f.uploadKind,R,y(p)),{ok:false,reason:"cancelled"};let Ce=u,ye=V,K=$,Q,W=$A(p.data),Z=eh(p.data)?p.data:void 0,ce=W||Z!==void 0?void 0:p.data,se=W||Z!==void 0,ae=f.streamUpload===true&&Z!==void 0,Ae=te=>{if(Z!==void 0)return Z;if(te===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([te],p.mimeType===void 0?void 0:{type:p.mimeType})};if(ce?.length===0||Z?.size===0)return {ok:false,reason:"empty"};let O=p.encrypted??true;if(O&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let w=sc(p.localPreviewMetadata,f.contentType);if((f.contentType==="video"||f.contentType==="image")&&p.localPreviewMetadata!==void 0&&w===void 0)return {ok:false,reason:"preview-failed"};let m=R===void 0||k===void 0?e.outbox.allocateMessageIdentity({conversationId:p.conversationId,conversationType:p.conversationType}):{id:R,createdAt:k},{id:C,createdAt:h}=m,S=e.getSelfId(),_=w??{width:0,height:0};if(!se)try{_=Gs(await f.buildPreview(Ae(ce),p.mimeType,e.mediaPreview),w);}catch{}if(!L())return K!==void 0&&I(K,f.uploadKind,C,y(p)),{ok:false,reason:"cancelled"};let G=Z?.size??ce?.byteLength,B={url:p.localPreviewUrl??"",...G===void 0?{}:{size:G}},P={id:C,conversationId:p.conversationId,conversationType:p.conversationType,senderId:S,contentType:f.contentType,body:f.buildBody({...B,meta:_},p),createdAt:h,sortKey:Te(h,C),status:"uploading",receipt:"unread",encryption:{encrypted:O},...p.refMessageId!==void 0?{refMessageId:p.refMessageId}:{}};e.domainState.upsertMessages([P],"live",{newOutgoing:true}),i.set(C,0),v(C,p,"queued",0,void 0,"waiting-upload-slot");let ee=(te,Ie=false)=>{let be={code:Pn,reason:"unknown",displayCode:Q==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":Q==="resume-unavailable"?"media.resumeUnavailable":xs(te),mediaKind:f.uploadKind,retryable:Ie};return L()?(e.domainState.upsertMessages([{...P,status:"failed",failure:be}],"live"),v(C,p,te==="cancelled"?"canceled":"failed",i.get(C)??0,be),{ok:false,reason:te}):{ok:false,reason:te}},ue=async()=>{if(K!==void 0)try{await e.mediaTransfer.abandonUpload(K),K=void 0;}catch(te){throw Q="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:f.uploadKind,messageId:C,conversation:y(p),cause:te}),te}},Ee=async te=>{if(te==="cancelled"&&Q!=="cleanup-unconfirmed")try{await ue();}catch{}return L()?(T(C,{kind:"media",spec:f,input:p,createdAt:h,message:P,failureReason:te,...Q===void 0?{}:{restartRequired:true},...ye===void 0?{}:{teaKey:ye},...K===void 0?{}:{resume:K}}),ee(te,true)):{ok:false,reason:"cancelled"}},Y=new AbortController;t.set(C,Y),r.set(C,y(p));try{if(ne&&(await ue(),!L()))return {ok:!1,reason:"cancelled"};if(Z!==void 0&&!(f.contentType==="video"&&w?.thumbData!==void 0)){try{_=Gs(await f.buildPreview(Z,p.mimeType,e.mediaPreview,Y.signal),w);}catch{}if(!L())return {ok:!1,reason:"cancelled"};P={...P,body:f.buildBody({url:p.localPreviewUrl??"",meta:_,size:Z.size},p)},e.domainState.upsertMessages([P],"live");}let te=await n.acquire(Ap(f.contentType,Z?.size??ce?.byteLength),Y.signal);try{v(C,p,"running",i.get(C)??0);let Ie;try{ae||(Ie=W?await p.data():Z!==void 0?new Uint8Array(await Z.arrayBuffer()):ce);}catch{return ee("upload-failed",!0)}let be=ae?Z.size:Ie.length;if(be===0)return ee("empty");if(W&&!(f.contentType==="video"&&w?.thumbData!==void 0)){try{_=Gs(await f.buildPreview(Ae(Ie),p.mimeType,e.mediaPreview,Y.signal),w);}catch{}if(!L())return {ok:!1,reason:"cancelled"};P={...P,body:f.buildBody({url:p.localPreviewUrl??"",meta:_,size:be},p)},e.domainState.upsertMessages([P],"live");}let N=ae?Z:Ie,H,Re=fp;if(O&&e.crypto!==void 0&&f.encryptMode!=="none"){let We=e.crypto;try{ye??=We.randomTeaKey();let Le=ye;f.encryptMode==="simple"?(N=ae?new Blob([new Uint8Array(We.encryptFileSimple({teaKey:Le,plain:new Uint8Array(await Z.slice(0,32).arrayBuffer())})),Z.slice(32)]):We.encryptFileSimple({teaKey:Le,plain:Ie}),Re=xA):ae?(H=Dn=>We.encryptSymmetricChunked({teaKey:Le,plain:Dn,signal:Y.signal}),Re=oc):(N=We.encryptSymmetric({teaKey:Le,plain:Ie}),Re=oc);}catch{return ee("encrypt-failed")}}let oe;try{oe=(await e.mediaTransfer.upload({data:N,...H===void 0?{}:{transformPart:H},kind:f.uploadKind,conversationType:p.conversationType,signal:Y.signal,...K===void 0?{}:{resume:K},onFailure:Le=>{L()&&t.get(C)===Y&&(Q=Le);},onResumeInvalidated:()=>{L()&&t.get(C)===Y&&(K=void 0);},onResumable:Le=>{!L()||t.get(C)!==Y||(K=Le);},...p.filename!==void 0?{filename:p.filename}:{},...p.mimeType!==void 0?{mimeType:p.mimeType}:{},onProgress:Le=>{if(!L()||Y.signal.aborted||t.get(C)!==Y)return;let Dn=Number.isFinite(Le.percent)?Math.max(0,Math.min(100,Math.round(Le.percent))):0,Gn=Math.max(i.get(C)??0,Dn);i.set(C,Gn),e.emitter.emit({type:"media:progress",conversation:y(p),messageId:C,percent:Gn}),v(C,p,"running",Gn,void 0,Le.phase);}})).url;}catch(We){if((!Y.signal.aborted||!(We instanceof Error&&We.name==="AbortError"))&&e.onMediaTransferError?.({stage:"upload",kind:f.uploadKind,messageId:C,conversation:y(p),cause:We}),!L())return {ok:!1,reason:"cancelled"};let Le=Y.signal.aborted?o.get(C)??"cancelled":"upload-failed";return await Ee(Le)}if(!L())return {ok:!1,reason:"cancelled"};if(Y.signal.aborted){let We=o.get(C)??"cancelled";return await Ee(We)}if(Ce===u&&(f.contentType==="image"||f.contentType==="video")&&e.mediaAssetCache!==void 0){let We=f.contentType,Le=Z??new Blob([Ie],p.mimeType===void 0?void 0:{type:p.mimeType}),Dn=Le.size;e.mediaAssetCache.put({kind:We,messageId:C,resourceVersion:no(oe),blob:Le,...p.mimeType===void 0?{}:{mimeType:p.mimeType}}).catch(Gn=>{e.onMediaAssetCacheError?.({operation:"put",kind:We,messageId:C,byteLength:Dn,cause:Gn});});}let we=f.contentType==="filesAlbum"?await e.mediaPreview.fileMd5?.(Ae(Ie),Y.signal):void 0;if(!L())return {ok:!1,reason:"cancelled"};if(Y.signal.throwIfAborted(),f.contentType==="filesAlbum"&&we===void 0)throw new Error("FILES_ALBUM requires fileMd5");return e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:C,conversationId:p.conversationId,conversationType:p.conversationType,contentType:f.contentType,body:f.buildBody({url:oe,meta:_,size:be,...we===void 0?{}:{md5:we},...f.encryptMode==="none"?{}:{teaKey:ye,fileEncryptType:Re}},p),encryption:{encrypted:O},createdAt:h,...p.refMessageId!==void 0?{refMessageId:p.refMessageId}:{}}),v(C,p,"completed",100),{ok:!0,messageId:C}}finally{te();}}catch{if(!L())return {ok:false,reason:"cancelled"};let te=Y.signal.aborted?o.get(C)??"cancelled":"upload-failed";return await Ee(te)}finally{!L()&&K!==void 0&&I(K,f.uploadKind,C,y(p)),t.get(C)===Y&&(t.delete(C),r.delete(C),i.delete(C),o.delete(C));}}async function D(f){let{conversation:p,encryptWith:R,isCurrentAttempt:k,item:V,onBytesUploaded:$,onPreviewReady:ne,onSlotAcquired:Se,signal:L,state:Ce}=f,ye=V.kind==="video"?Us:ac,K=sc(V.localPreviewMetadata,V.kind),Q=K??{width:0,height:0};if(!(V.kind==="video"&&K?.thumbData!==void 0))try{Q=Gs(await ye.buildPreview(V.data,V.mimeType,e.mediaPreview,L),K);}catch{}Q.thumbData===void 0&&Ce.preview?.thumbData!==void 0&&(Q=Ce.preview),Ce.preview=Q,ne();let W=await n.acquire(Ap(V.kind,V.data.size),L);try{Se();let Z,ce=fp;if(R!==void 0){Ce.teaKey??=R.randomTeaKey();let ae=Ce.teaKey;Z=Ae=>R.encryptSymmetricChunked({teaKey:ae,plain:Ae,signal:L}),ce=oc;}return {url:(await e.mediaTransfer.upload({data:V.data,...Z===void 0?{}:{transformPart:Z},kind:ye.uploadKind,conversationType:p.conversationType,signal:L,...Ce.resume===void 0?{}:{resume:Ce.resume},onFailure:ae=>{k()&&f.onFailure(ae);},onResumeInvalidated:()=>{k()&&delete Ce.resume;},onResumable:ae=>{!s||!k()||(Ce.resume=ae);},...V.filename!==void 0?{filename:V.filename}:{},...V.mimeType!==void 0?{mimeType:V.mimeType}:{},onProgress:ae=>{!s||L.aborted||!k()||$(ae.bytesTransferred);}})).url,meta:Q,size:V.data.size,...Ce.teaKey===void 0?{}:{teaKey:Ce.teaKey},fileEncryptType:ce}}finally{W();}}function b(f,p,R){let k=p.uploaded,V=k?.meta??p.preview??sc(f.localPreviewMetadata,f.kind)??{width:0,height:0};return {kind:f.kind,url:k?.url??f.localPreviewUrl??"",width:V.width,height:V.height,...f.kind==="video"&&V.duration!==void 0&&V.duration>0?{durationMs:Math.max(1,Math.round(V.duration*1e3))}:{},...V.thumbData===void 0?{}:{thumbData:V.thumbData},size:k?.size??f.data.size,...k?.teaKey===void 0?{}:{teaKey:k.teaKey},...k===void 0?{}:{fileEncryptType:k.fileEncryptType},...R===void 0?{}:{hd:R}}}async function E(f,p,R,k,V=false){let $=c,ne=()=>s&&$===c,Se=y(f),L=(Y,te)=>{for(let Ie of te)Ie.resume!==void 0&&I(Ie.resume,Ie.uploadKind,Y,Se);};if(!ne())return p!==void 0&&k!==void 0&&L(p,k),{ok:false,reason:"cancelled"};if(f.items.length===0)return {ok:false,reason:"empty"};if(f.items.length>ut)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u6700\u591A ${ut} \u9879\uFF0C\u6536\u5230 ${f.items.length} \u9879`);let Ce=f.caption!==void 0&&f.caption.trim()!==""?f.caption:void 0;if(Ce!==void 0&&Ce.length>jn)throw new RangeError(`\u5A92\u4F53\u5408\u96C6\u914D\u6587\u6700\u957F ${jn} \u5B57\u7B26\uFF0C\u6536\u5230 ${Ce.length}`);if(f.items.some(Y=>Y.data.size===0))return {ok:false,reason:"empty"};if(p===void 0&&sa(f)!=="mediaAlbum"){let Y=f.items[0];return A(Y.kind==="video"?Us:ac,{conversationId:f.conversationId,conversationType:f.conversationType,data:Y.data,...Y.mimeType!==void 0?{mimeType:Y.mimeType}:{},...Y.filename!==void 0?{filename:Y.filename}:{},...Y.localPreviewUrl!==void 0?{localPreviewUrl:Y.localPreviewUrl}:{},...Y.localPreviewMetadata!==void 0?{localPreviewMetadata:Y.localPreviewMetadata}:{},...f.encrypted!==void 0?{encrypted:f.encrypted}:{},...f.refMessageId!==void 0?{refMessageId:f.refMessageId}:{}})}let ye=f.encrypted??true;if(ye&&e.crypto===void 0)return {ok:false,reason:"no-crypto"};let K=ye?e.crypto:void 0,Q=u,W=p===void 0||R===void 0?e.outbox.allocateMessageIdentity(Se):{id:p,createdAt:R},{id:Z,createdAt:ce}=W,se=f.items.map((Y,te)=>{let Ie=k?.[te];return {uploadKind:Y.kind,...Ie?.uploaded===void 0?{}:{uploaded:Ie.uploaded},...Ie?.preview===void 0?{}:{preview:Ie.preview},...Ie?.teaKey===void 0?{}:{teaKey:Ie.teaKey},...Ie?.resume===void 0?{}:{resume:Ie.resume}}}),ae=()=>({...Ce===void 0?{}:{caption:Ce},items:f.items.map((Y,te)=>b(Y,se[te],f.hd))}),Ae={id:Z,conversationId:f.conversationId,conversationType:f.conversationType,senderId:e.getSelfId(),contentType:"mediaAlbum",body:{mediaAlbum:ae()},createdAt:ce,sortKey:Te(ce,Z),status:"uploading",receipt:"unread",encryption:{encrypted:ye},...f.refMessageId!==void 0?{refMessageId:f.refMessageId}:{}};e.domainState.upsertMessages([Ae],"live",{newOutgoing:true}),i.set(Z,0),v(Z,f,"queued",0,void 0,"waiting-upload-slot");let O,w=(Y,te)=>{let Ie={code:Pn,reason:"unknown",displayCode:O==="cleanup-unconfirmed"?"media.cleanupUnconfirmed":O==="resume-unavailable"?"media.resumeUnavailable":xs(Y),retryable:te};return ne()?(e.domainState.upsertMessages([{...Ae,status:"failed",failure:Ie}],"live"),v(Z,f,Y==="cancelled"?"canceled":"failed",i.get(Z)??0,Ie),{ok:false,reason:Y}):{ok:false,reason:Y}},m=new AbortController;t.set(Z,m),r.set(Z,Se);let C=()=>ne()&&t.get(Z)===m,h=()=>{!ne()||!C()||(Ae={...Ae,body:{mediaAlbum:ae()}},e.domainState.upsertMessages([Ae],"live"));},S=f.items.reduce((Y,te)=>Y+te.data.size,0),_=se.map((Y,te)=>Y.uploaded!==void 0?f.items[te].data.size:Y.resume?.bytesUploaded??0),G=false,B=()=>{if(!ne()||!C())return;let Y=_.reduce((Ie,be)=>Ie+be,0),te=Math.min(99,Math.max(i.get(Z)??0,Math.floor(Y/S*100)));te!==i.get(Z)&&(i.set(Z,te),e.emitter.emit({type:"media:progress",conversation:Se,messageId:Z,percent:te}),v(Z,f,"running",te));},P,ee=(Y,te)=>{P===void 0&&(P=m.signal.aborted?o.get(Z)??"cancelled":"upload-failed",P==="upload-failed"&&e.onMediaTransferError?.({stage:"upload",kind:Y,messageId:Z,conversation:Se,cause:te}),m.abort("offline"));},ue=async()=>{let Y=true;return await Promise.all(se.map(async te=>{if(te.resume!==void 0)try{await e.mediaTransfer.abandonUpload(te.resume),delete te.resume;}catch(Ie){Y=false,O="cleanup-unconfirmed",e.onMediaTransferError?.({stage:"upload",kind:te.uploadKind,messageId:Z,conversation:Se,cause:Ie});}})),Y},Ee=Y=>(T(Z,{kind:"album",input:f,createdAt:ce,message:Ae,failureReason:Y,items:se,...O===void 0?{}:{restartRequired:true}}),w(Y,true));try{if(V){let Ie=await ue();if(!ne())return {ok:!1,reason:"cancelled"};if(!Ie)return Ee(o.get(Z)==="cancelled"?"cancelled":"upload-failed");for(let be=0;be<se.length;be+=1)se[be].uploaded===void 0&&(_[be]=0);}if(await Promise.all(f.items.map(async(Ie,be)=>{let N=se[be];if(N.uploaded===void 0)try{let H=await D({item:Ie,state:N,conversation:Se,encryptWith:K,signal:m.signal,isCurrentAttempt:C,onPreviewReady:h,onSlotAcquired:()=>{G||!ne()||!C()||(G=!0,v(Z,f,"running",i.get(Z)??0));},onFailure:Re=>{O!=="cleanup-unconfirmed"&&(O=Re);},onBytesUploaded:Re=>{_[be]=Math.max(_[be]??0,Re),B();}});N.uploaded=H,_[be]=Ie.data.size,B();}catch(H){ee(Ie.kind,H);}})),!ne())return {ok:!1,reason:"cancelled"};if(!C())return {ok:!1,reason:"cancelled"};if(o.get(Z)==="cancelled")return O!=="cleanup-unconfirmed"&&await ue(),ne()?Ee("cancelled"):{ok:!1,reason:"cancelled"};if(P!==void 0)return Ee(P);if(m.signal.aborted){let Ie=o.get(Z)??"cancelled";return Ee(Ie)}let Y=ae(),te;try{te=po(Bt(Y).content);}catch(Ie){return e.onMediaAlbumContentSize?.({messageId:Z,conversation:Se,itemCount:Y.items.length,outcome:"rejected",cause:Ie}),w("content-too-large",!1)}if(te>=aa&&e.onMediaAlbumContentSize?.({messageId:Z,conversation:Se,itemCount:Y.items.length,contentBytes:te,outcome:"warn"}),Q===u&&e.mediaAssetCache!==void 0){let Ie=e.mediaAssetCache;f.items.forEach((be,N)=>{let H=se[N].uploaded;H!==void 0&&Ie.put({kind:be.kind,messageId:Z,resourceVersion:no(H.url),blob:be.data,...be.mimeType===void 0?{}:{mimeType:be.mimeType}}).catch(Re=>{e.onMediaAssetCacheError?.({operation:"put",kind:be.kind,messageId:Z,byteLength:be.data.size,cause:Re});});});}return e.outbox.enqueueMedia({optimisticAlreadyCreated:!0,id:Z,conversationId:f.conversationId,conversationType:f.conversationType,contentType:"mediaAlbum",body:{mediaAlbum:Y},encryption:{encrypted:ye},createdAt:ce,...f.refMessageId!==void 0?{refMessageId:f.refMessageId}:{}}),v(Z,f,"completed",100),{ok:!0,messageId:Z}}finally{ne()||L(Z,se),t.get(Z)===m&&(t.delete(Z),r.delete(Z),i.delete(Z),o.delete(Z));}}return {sendImage:f=>A(ac,f),sendVideo:f=>A(Us,f),replaceVideo:(f,p,R)=>A(Us,R,f,p),sendVoice:f=>{let p=f.durationMs;return p===void 0||!Number.isFinite(p)||p<wA?Promise.resolve({ok:false,reason:"invalid-duration"}):A(JA,f)},sendFile:f=>f.caption!==void 0&&f.caption.length>jn?Promise.resolve({ok:false,reason:"content-too-large"}):A(f.filesAlbum||f.caption?.trim()?qA:ks,f),sendGif:f=>A(YA,{...f,encrypted:false}),sendMediaAlbum:f=>E(f),replaceFile:(f,p,R)=>A(ks,R,f,p),cancel(f){if(!s)return false;let p=t.get(f);return p===void 0?false:(o.set(f,"cancelled"),p.abort(),true)},cancelConversation(f,p="offline"){if(s)for(let[R,k]of r){if(k.conversationType!==f.conversationType||k.conversationId!==f.conversationId)continue;let V=t.get(R);V!==void 0&&(o.set(R,p),V.abort(p));}},cancelAll(f="offline"){if(s){f==="session-ended"&&(c+=1,u+=1);for(let[p,R]of t)f!=="session-ended"&&o.set(p,f),R.abort(f);}},retry(f,p){if(!s)return false;let R=a.get(f);if(R===void 0||R.restartRequired&&p?.restartUpload!==true)return false;let k=p?.restartUpload===true||R.failureReason==="cancelled";return a.delete(f),v(f,R.input,"queued",0),R.kind==="album"?E(R.input,f,R.createdAt,R.items,k):A(R.spec,R.input,f,R.createdAt,R.teaKey,R.resume,k),true},invalidateAssetCacheWrites(){u+=1;},dispose(){if(s){s=false,u+=1;for(let f of t.values())f.abort();t.clear(),i.clear(),o.clear();for(let[f,p]of a)for(let R of hp(p))I(R.resume,R.kind,f,y(p.input));a.clear();}}}}function Rp(e,n){if(!gt(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 rh(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 oh(e,n){return St.encode(St.create({emoji:e,action:n}))}function ih(e){let n=new Map,t=e.now??Date.now,r=e.timeoutMs??3e4,o=false;function i(y,I){let v=BigInt(e.getSelfId()),T=BigInt(y.conversation.conversationId),A=oh(y.emoji,y.action),D=Me(y.id),b=Xe(y.parentMessageId);switch(y.conversation.conversationType){case "direct":{let E=I===4651?Vo:Po,f=E.create({sToId:T,sFromId:v,sMsgId:D,msgType:1,msgTime:BigInt(y.createdAt),encrypt:0,sContent:A,parentMsgId:b});return X({command:I??4650,body:E.encode(f)})}case "group":{let E=sr.create({sGrpId:T,sToId:T,sFromId:v,sMsgId:D,msgType:5,msgTime:BigInt(y.createdAt),encrypt:0,sContent:A,parentMsgId:b});return X({command:8978,body:sr.encode(E)})}case "channel":{let E=mr.create({sRadioId:T,sFromId:v,sMsgId:D,msgTime:BigInt(y.createdAt),encrypt:0,sContent:A,parentMsgId:b});return X({command:12817,body:mr.encode(E)})}}}function a(y,I,v){clearTimeout(y.timer),n.delete(y.event.id),e.domainState.rollbackReaction(y.event.conversation,y.event.parentMessageId,y.event.id),y.resolve({ok:false,reason:I,...v===void 0?{}:{errcode:v}});}function s(y){if(o||!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let I=e.domainState.getConversationMessage(y.conversation,y.parentMessageId);if(I===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(!Yd(I))return Promise.resolve({ok:false,reason:"unsupported-message"});if(y.action===0&&y.conversation.conversationType==="channel"){let T=e.domainState.getConversationContext(y.conversation),A=Xd({channelState:T?.type==="channel"?T.channelState??"unknown_restricted":"unknown_restricted",snapshot:T?.type==="channel"?T.channelAccessSnapshot:void 0,permissions:T?.type==="channel"?T.channelPermissions:void 0,nowMs:t()});if(A.channelState!=="active"||!A.permissions.sendMessages)return Promise.resolve({ok:false,reason:"restricted"})}if(!Lr(y.emoji)||Zr(y.emoji)||e.isEmojiSupported?.(y.emoji)===false)return Promise.resolve({ok:false,reason:"invalid-emoji"});let v=Object.freeze({id:dn(),conversation:Object.freeze({...y.conversation}),parentMessageId:y.parentMessageId,senderId:e.getSelfId(),emoji:y.emoji,action:y.action,createdAt:t()});return e.domainState.applyReaction(v,"live"),new Promise(T=>{let A=setTimeout(()=>{let D=n.get(v.id);D!==void 0&&a(D,"timeout");},r);n.set(v.id,{event:v,resolve:T,timer:A});try{e.sendFrame(i(v));}catch(D){e.logger?.("reaction-send-frame-failed",{eventId:v.id,cause:D});let b=n.get(v.id);b!==void 0&&a(b,"failed");}})}function c(y){let v=e.domainState.getConversationMessage(y.conversation,y.parentMessageId)?.reactions?.currentUserEmoji===y.emoji?1:0;return s({...y,action:v})}function u(y){let I=n.get(y.eventId);if(I!==void 0){if(y.errcode!==32768&&y.errcode!==0){a(I,"failed",y.errcode);return}if(clearTimeout(I.timer),n.delete(I.event.id),I.event.conversation.conversationType==="direct")try{e.sendFrame(i(I.event,4651));}catch(v){e.logger?.("reaction-opposite-end-send-failed",{eventId:I.event.id,cause:v});}I.event.action===0&&e.reportReaction!==void 0&&e.reportReaction(I.event.emoji).catch(v=>e.logger?.("reaction-report-failed",{emoji:I.event.emoji,cause:v})),I.resolve({ok:true,event:I.event});}}return {set:s,toggle:c,onAck:u,ingest:(y,I="live")=>!rh(y)||!Lr(y.emoji)||Zr(y.emoji)||e.isEmojiSupported?.(y.emoji)===false?(e.logger?.("reaction-event-ignored",{eventId:y.id,parentMessageId:y.parentMessageId,emoji:y.emoji}),"ignored"):e.domainState.applyReaction(y,I),dispose(){o=true;for(let y of [...n.values()])a(y,"disconnected");}}}function sh(e){return [{command:4652,handler:(n,t)=>{let r=Oo.decode(t);e.manager.onAck({eventId:ge(r.sMsgId),errcode:r.errcode});}},{command:4653,handler:(n,t)=>{let r=Wr(Ko.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=ai.decode(t);e.manager.onAck({eventId:ge(r.sMsgId),errcode:r.errcode});}},{command:8980,handler:(n,t)=>{let r=Hr(di.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=yi.decode(t);e.manager.onAck({eventId:ge(r.sMsgId),errcode:r.errcode});}},{command:12819,handler:(n,t)=>{let r=Sd(Ii.decode(t));e.manager.ingest(r,"live"),e.logger?.("channel-reaction-deliver",{eventId:r.id,parentMessageId:r.parentMessageId});}}]}function ah(e){return [{command:12806,handler:(n,t)=>{let r=vi.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=bi.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 dh(e){let n=new Map,t=new Map,r=new Map,o=0;function i(f,p){let R={conversationType:"channel",conversationId:f},k=e.domainState.getConversationContext(R);if(k===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u4E0D\u5B58\u5728\uFF08channelId=${f}\uFF09`);if(k.type!=="channel")throw new Error(`CHANNEL \u5DF2\u8BFB\u5931\u8D25\uFF1A\u4F1A\u8BDD\u7C7B\u578B\u4E3A ${k.type}\uFF08channelId=${f}\uFF09`);if(p.trim()==="")throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u7F3A\u5931\uFF08channelId=${f}\uFF09`);let V=e.domainState.getConversationMessage(R,p),$=e.domainState.getLoadedMessagesByConversation(R).find(L=>L.extensions?.historyCursor===p),Se=(V===void 0?void 0:to(V))??($===void 0?void 0:to($));if(Se===void 0)throw new Error(`CHANNEL \u5DF2\u8BFB cursor \u65E0\u6CD5\u5B9A\u4F4D\u5230\u672C\u5730\u6D88\u606F\uFF08channelId=${f}, cursor=${p}\uFF09`);return Se}function a(f){let p={conversationType:"channel",conversationId:f},R=e.domainState.getReadState(p);if(R?.readCursor!==void 0&&R.readCursor!==""){let k=e.domainState.getLoadedMessagesByConversation(p).find(V=>V.extensions?.historyCursor===R.readCursor);if(k!==void 0){let V=to(k);if(V!==void 0)return V}}return R?.readCursorSortKey===void 0?void 0:{sortKey:R.readCursorSortKey}}function s(f,p){return Mp(f,p)}function c(f,p){let R=r.get(f),k=R===void 0?a(f):R.committed;return k!==void 0&&s(k,p)>=0}function u(f,p){let R=r.get(f);if(R!==void 0){if(s(R.optimistic,p)>=0)return;e.domainState.applyChannelReadOptimistically(R.transaction,p.messageId,p.cursor),R.optimistic=p;return}let k=a(f),V=e.domainState.beginChannelReadTransaction({conversationType:"channel",conversationId:f});e.domainState.applyChannelReadOptimistically(V,p.messageId,p.cursor),r.set(f,{transaction:V,committed:k,optimistic:p});}function y(f,p){let R=n.get(f);(R===void 0||s(p,R)>0)&&n.set(f,p);}function I(f,p){if(e.syncRead!==void 0)try{let R=Cr.encode(Cr.create({sUserId:BigInt(e.syncRead.getSelfId()),radioId:BigInt(f),lastReadIndex:p}));e.syncRead.sendFrame(X({command:12805,body:R}));}catch(R){e.emitter.emit({type:"error",error:{scope:"unknown",message:`CHANNEL \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x3205)\u53D1\u9001\u5931\u8D25\uFF08channelId=${f}\uFF09`,cause:R}});}}function v(f,p){try{e.onReadCommitted?.({channelId:f,readCursor:p});}catch(R){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u6821\u51C6\u672A\u542F\u52A8\uFF08channelId=${f}\uFF09`,cause:R}});}}async function T(f,p){let R;try{for(;;){if(p!==o)return;let k=n.get(f);if(k===void 0)return;if(n.delete(f),c(f,k))continue;try{await e.updateReadIndex({channelId:f,readCursor:k.cursor});}catch(ne){if(p!==o)return;let Se=r.get(f);throw Se!==void 0&&(e.domainState.rollbackChannelReadTransaction(Se.transaction),r.delete(f)),y(f,k),ne}if(p!==o)return;if(c(f,k))continue;let V=r.get(f);V!==void 0&&e.domainState.commitChannelReadTransaction(V.transaction,k.cursor)||e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:f},k.messageId,k.cursor),V!==void 0&&(V.committed=k,s(V.optimistic,k)===0&&r.delete(f)),e.logger?.("channel-read-index",{channelId:f,cursor:k.cursor}),I(f,k.cursor),R=k.cursor;}}finally{if(p===o){R!==void 0&&v(f,R);try{e.onReadSettled?.({channelId:f});}catch(k){e.emitter.emit({type:"error",error:{scope:"sync",message:`CHANNEL \u5DF2\u8BFB\u6458\u8981\u7B49\u5F85\u672A\u89E3\u9664\uFF08channelId=${f}\uFF09`,cause:k}});}}}}function A(f,p){let R=Promise.resolve().then(()=>T(f,p)).then(()=>{if(t.get(f)===R&&(t.delete(f),p===o&&n.has(f)))return A(f,p)},k=>{throw t.get(f)===R&&t.delete(f),k});return t.set(f,R),R}function D(f){let p;try{p=i(f.conversationId,f.readCursor);}catch(k){return Promise.reject(k)}if(c(f.conversationId,p))return Promise.resolve();u(f.conversationId,p),y(f.conversationId,p);let R=t.get(f.conversationId);return R!==void 0?R:A(f.conversationId,o)}function b(f){let p=i(f.conversationId,f.readCursor);c(f.conversationId,p)||(e.domainState.applyChannelReadPosition({conversationType:"channel",conversationId:f.conversationId},p.messageId,p.cursor),r.delete(f.conversationId),v(f.conversationId,p.cursor));}function E(){o+=1;for(let f of r.values())e.domainState.rollbackChannelReadTransaction(f.transaction);n.clear(),t.clear(),r.clear();}return {conversationType:"channel",markRead:D,applyRemoteRead:b,reset:E}}function ch(e){return e===void 0?void 0:to(e)?.cursor}function to(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 lh(e){let n;for(let t of e){let r=to(t);r!==void 0&&(n===void 0||Mp(r,n)>0)&&(n=r);}return n?.cursor}function Mp(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 Bs=50;function Ep(e,n,t){if(!(t===void 0||t===""))return e.domainState.getConversationMessage({conversationType:"direct",conversationId:n},t)?.sortKey}function uh(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:gn(e.id)}function gh(e,n,t,r){let o=Ep(e,n,r);if(o===void 0)return;let i=Ep(e,n,t),a=e.getSelfId();return e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:n}).filter(s=>uh(s)&&s.senderId!==a&&s.sortKey<=o&&(i===void 0||s.sortKey>i)).map(s=>s.id)}function mc(e){let n=new Set,t=new Map,r=new Map;function o(a){let s=r.get(a);if(s===void 0||s.size===0||!e.isAuthenticated())return;for(let u of s)gn(u)||s.delete(u);if(s.size===0){r.delete(a);return}let c=[...s];for(let u=0;u<c.length;u+=Bs){let y=c.slice(u,u+Bs);try{let I=ot.encode(ot.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(a),msgIdList:y.map(Me)}));e.sendFrame(X({command:4117,body:I}));for(let v of y)s.delete(v);}catch(I){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u5A92\u4F53\u6D88\u8D39\u591A\u7AEF\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${a}\uFF09`,cause:I}});break}}s.size===0&&r.delete(a);}function i(a){let s=e.domainState.getReadState({conversationType:"direct",conversationId:a})?.readCursor??"";if(s===""||!e.isAuthenticated())return;let c=gh(e,a,t.get(a),s);if(c===void 0)return;if(c.length===0){t.set(a,s);return}let u,y=true;for(let I=0;I<c.length;I+=Bs){let v=c.slice(I,I+Bs),T=v.map(Me);try{let A=ot.encode(ot.create({sUserId:BigInt(e.getSelfId()),sFromId:BigInt(a),msgIdList:T}));e.sendFrame(X({command:4117,body:A})),u=v.at(-1),e.logger?.("direct-sync-read-c2c",{peerId:a,count:T.length,offset:I});}catch(A){e.emitter.emit({type:"error",error:{scope:"protocol",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(4117)\u53D1\u9001\u5931\u8D25\uFF08peerId=${a}\uFF09`,cause:A}}),y=false;break}}y?t.set(a,s):u!==void 0&&t.set(a,u);}return {report(a){n.add(a),i(a);},reportConsumedMedia(a,s){let c=e.domainState.getConversationMessage({conversationType:"direct",conversationId:a},s);if(c===void 0||c.senderId===e.getSelfId()||c.contentType!=="voice"&&c.contentType!=="video")return;n.add(a);let u=r.get(a);u===void 0&&(u=new Set,r.set(a,u)),u.add(s),o(a);},onAck({errcode:a}){e.logger?.("direct-sync-read-ack",{errcode:a}),a!==32768&&a!==0&&e.emitter.emit({type:"error",error:{scope:"sync",message:`direct \u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65 ACK \u5931\u8D25\uFF08errcode=${a}\uFF09`,code:4118}});},onDeliver({userId:a,peerId:s,msgIdList:c}){if(a!==e.getSelfId())return;let y=c.map(I=>e.domainState.getConversationMessage({conversationType:"direct",conversationId:s},ge(I))).filter(I=>I!==void 0).sort((I,v)=>I.sortKey<v.sortKey?-1:I.sortKey>v.sortKey?1:0).at(-1);y!==void 0&&e.domainState.advanceRead({conversationType:"direct",conversationId:s},y.id);},onAuthenticated(){for(let a of n)i(a),o(a);},reset(){}}}function mh(e){let n=e.body?.system?.eventType;return n==="group_call_started"||n==="group_call_ended"||n==="group_call_missed"?false:gn(e.id)}var pc=50;function ph(e){let n=new Map,t=new Set,r=new Map,o=new Map;function i(){return e.isAuthenticated?.()??true}function a(c,u){let{syncRead:y}=e;if(y===void 0||!i())return;let I=y.getSelfId(),v=e.domainState.getLoadedMessagesByConversation({conversationType:"group",conversationId:c}),T=v.find(R=>R.id===u);if(T===void 0)return;let A=o.get(c),D=A===void 0?void 0:v.find(R=>R.id===A)?.sortKey,b=v.filter(R=>mh(R)&&R.senderId!==I&&R.sortKey<=T.sortKey&&(D===void 0||R.sortKey>D));if(b.length===0){o.set(c,u);return}let E=b.map(R=>Me(R.id)),f,p=true;for(let R=0;R<E.length;R+=pc){let k=E.slice(R,R+pc);try{let V=ar.encode(ar.create({sUserId:BigInt(I),msgIdList:k,groupId:BigInt(c)}));y.sendFrame(X({command:8967,body:V})),f=b[Math.min(R+pc,b.length)-1]?.id,e.logger?.("grp-sync-read-c2c",{groupId:c,count:k.length,offset:R});}catch(V){e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u591A\u7AEF\u5DF2\u8BFB\u540C\u6B65(0x2307)\u53D1\u9001\u5931\u8D25\uFF08groupId=${c}\uFF09`,cause:V}}),p=false;break}}p?o.set(c,u):f!==void 0&&o.set(c,f);}async function s(c){if(!(t.has(c)||!i())){t.add(c);try{for(;i();){let u=n.get(c);if(u===void 0)return;if(n.delete(c),r.get(c)!==u){a(c,u);try{await e.markGroupReadAll(c),r.set(c,u);}catch(y){if(!i()){n.has(c)||n.set(c,u);return}n.get(c)===u&&n.delete(c),e.emitter.emit({type:"error",error:{scope:"unknown",message:`\u7FA4\u5DF2\u8BFB read_all \u5931\u8D25\uFF08groupId=${c}\uFF09`,cause:y}});return}}}}finally{t.delete(c),i()&&n.has(c)&&s(c);}}}return {conversationType:"group",markRead({conversationId:c,readCursor:u}){e.domainState.applyServerUnread({conversationType:"group",conversationId:c},0,u),e.logger?.("grp-read-all",{groupId:c}),n.set(c,u),s(c);},onAuthenticated(){for(let c of n.keys())s(c);}}}function fh(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 yh(e){return {conversationType:"robot",markRead:({conversationId:n,readCursor:t})=>{e.domainState.advanceRead({conversationType:"robot",conversationId:n},t);}}}function Tp(e){let n=$t.create({sToId:BigInt(e.peerId),sFromId:BigInt(e.selfId),nCancelType:0,sMsgId:Me(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return X({command:4107,body:$t.encode(n)})}function vp(e){let n=nr.create({sGroupId:BigInt(e.groupId),sFromId:BigInt(e.selfId),sMsgId:Me(e.messageId),msgTime:BigInt(e.msgTime),cancelTime:BigInt(e.cancelTime)});return X({command:8197,body:nr.encode(n)})}function bp(e){return {sFromId:BigInt(e.selfId),sRadioId:BigInt(e.channelId),sMsgId:Me(e.messageId),msgTime:BigInt(e.msgTime),...e.extend===void 0||e.extend===""?{}:{extend:e.extend}}}function Np(e){let n=fr.create(bp(e));return X({command:12297,body:fr.encode(n)})}function _p(e){let n=pr.create(bp(e));return X({command:12293,body:pr.encode(n)})}var Ih=15e3;function fc(e){let n=e.now??(()=>Date.now()),t=new Map;function r(o,i){let a=t.get(o);a!==void 0&&(a.timer!==void 0&&clearTimeout(a.timer),t.delete(o),a.resolve(i));}return {deleteForEveryone(o){let i=e.domainState.getConversationMessage(o,o.messageId);if(i===void 0||i.conversationId!==o.conversationId||i.id!==o.messageId)return Promise.resolve({ok:false,reason:"not-found"});if(i.conversationType!=="channel")return Promise.resolve({ok:false,reason:"unsupported"});if(i.deletedForEveryone!==void 0)return Promise.resolve({ok:true});if(i.recalled!==void 0)return Promise.resolve({ok:false,reason:"unavailable"});if(i.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let a;try{a=Me(i.id);}catch{return Promise.resolve({ok:false,reason:"unsupported"})}let s=t.get(a);if(s!==void 0)return s.promise;let c,u=new Promise(I=>{c=I;}),y={messageId:i.id,channelId:i.conversationId,deletedAt:n(),resolve:c,promise:u};return t.set(a,y),e.resolveProfile(i.conversationId).then(I=>{if(t.get(a)===y){if(I===null||I.role!=="admin"&&I.role!=="owner"){r(a,{ok:false,reason:"forbidden"});return}y.timer=setTimeout(()=>r(a,{ok:false,reason:"timeout"}),Ih),e.sendFrame(_p({selfId:e.getSelfId(),channelId:i.conversationId,messageId:i.id,msgTime:i.serverTime??i.createdAt}));}}).catch(()=>{t.get(a)===y&&r(a,{ok:false,reason:"failed"});}),u},onDeleteAck({sMsgId:o,errcode:i}){let a=t.get(o);if(a!==void 0){if(i===32768||i===0){e.domainState.deleteChannelMessageForEveryone({conversationId:a.channelId,conversationType:"channel"},a.messageId,{by:e.getSelfId(),at:a.deletedAt,reason:"channel-moderation"}),r(o,{ok:true});return}if(i===34052){e.onPermissionDenied?.(a.channelId),r(o,{ok:false,reason:"forbidden",errcode:i});return}r(o,{ok:false,reason:"failed",errcode:i});}},reset(){for(let o of [...t.keys()])r(o,{ok:false,reason:"disconnected"});}}}var Ut=300*1e3;function Dp(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 Gp(e,n){if(e.senderId!==n.selfId)return "not-own";let t=e.serverTime??e.createdAt;if(n.now-t>Ut)return "expired"}function Up(){return {conversationType:"direct",ownMessageOnly:true,recallWindowMs:Ut,prepare(e,n,t){let r=Gp(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:Tp({selfId:t.selfId,peerId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function kp(){return {conversationType:"group",ownMessageOnly:true,recallWindowMs:Ut,prepare(e,n,t){let r=Gp(n,t);if(r!==void 0)return {ok:false,reason:r};let o=n.serverTime??n.createdAt;return {ok:true,recalledAt:t.now,frame:vp({selfId:t.selfId,groupId:e.conversationId,messageId:e.messageId,msgTime:o,cancelTime:t.now})}}}}function Ch(e={}){return {conversationType:"channel",ownMessageOnly:true,recallWindowMs:Ut,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>Ut)return {ok:false,reason:"expired"};let i=e.resolveSelfDisplayName?.();return {ok:true,recalledAt:r.now,frame:Np({selfId:r.selfId,channelId:t.conversationId,messageId:t.id,msgTime:o,...i===void 0||i===""?{}:{extend:i}})}}}}function yc(){return Dp([Up(),kp()])}var xp=15e3;function Ic(e){let n=e.now??(()=>Date.now()),t=e.strategies??yc(),r=new Map;function o(i,a){let s=r.get(i);s!==void 0&&(s.timer!==void 0&&clearTimeout(s.timer),r.delete(i),s.resolve(a));}return {recall(i){let a=e.domainState.getConversationMessage(i,i.messageId);if(a===void 0)return Promise.resolve({ok:false,reason:"not-found"});if(a.recalled!==void 0)return Promise.resolve({ok:true});if(a.deletedForEveryone!==void 0)return Promise.resolve({ok:true});let s=t.resolve(i.conversationType);if(s===void 0)return Promise.resolve({ok:false,reason:"unsupported"});let c=e.getSelfId();if(s.ownMessageOnly===true&&a.senderId!==c)return Promise.resolve({ok:false,reason:"not-own"});if(a.status!=="sent")return Promise.resolve({ok:false,reason:"not-sent"});let u=n();if(s.recallWindowMs!==void 0&&u-(a.serverTime??a.createdAt)>s.recallWindowMs)return Promise.resolve({ok:false,reason:"expired"});if(!e.isAuthenticated())return Promise.resolve({ok:false,reason:"disconnected"});let y=Me(i.messageId),I=r.get(y);if(I!==void 0)return I.promise;let v=s.prepare(i,a,{selfId:c,now:u});function T(E){if(!E.ok)return Promise.resolve(E);let f,p=new Promise(k=>{f=k;}),R=setTimeout(()=>o(y,{ok:false,reason:"timeout"}),xp);return r.set(y,{messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:E.recalledAt,resolve:f,timer:R,promise:p}),e.sendFrame(E.frame),p}if(!(v instanceof Promise))return T(v);let A,D=new Promise(E=>{A=E;}),b={messageId:i.messageId,conversationId:i.conversationId,conversationType:i.conversationType,cancelTime:u,resolve:A,promise:D};return r.set(y,b),v.then(E=>{if(r.get(y)===b){if(!E.ok){o(y,E);return}b.cancelTime=E.recalledAt,b.timer=setTimeout(()=>o(y,{ok:false,reason:"timeout"}),xp),e.sendFrame(E.frame);}}).catch(()=>{r.get(y)===b&&o(y,{ok:false,reason:"failed"});}),D},onRecallAck({sMsgId:i,errcode:a}){let s=r.get(i);if(s===void 0)return;if(a===32768||a===0){e.domainState.recallMessage({conversationId:s.conversationId,conversationType:s.conversationType},s.messageId,{by:e.getSelfId(),at:s.cancelTime}),o(i,{ok:true});return}let c=a===33284?"server-expired":"failed";o(i,s.conversationType==="channel"?{ok:false,reason:c,errcode:a}:{ok:false,reason:c});},reset(){for(let i of [...r.keys()])o(i,{ok:false,reason:"disconnected"});}}}function Cc(e){function n(r){let o=Yo.decode(r);if(o.sMsgId==="")return;e.domainState.upsertMessages([Rd(o,e.getSelfId())],"live");let i=er.create({sUserId:BigInt(e.getSelfId()),sMsgId:o.sMsgId,errcode:32768});e.sendFrame(X({command:4109,body:er.encode(i)})),e.logger?.("recall-deliver",{sMsgId:o.sMsgId,sFromId:String(o.sFromId),nCancelType:o.nCancelType});}function t(r,o){let a=(o?Ai:Mi).decode(r);if(a.sFromId<=0n||a.sRadioId<=0n||a.sMsgId.trim()==="")return;let s=o?Si:Ri,c=o?12295:12299,u=s.create({sFromId:a.sFromId,sRadioId:a.sRadioId,sMsgId:a.sMsgId,sIndex:a.sIndex});e.sendFrame(X({command:c,body:s.encode(u)})),e.domainState.upsertMessages([o?Ed(a):Md(a)],"live"),e.logger?.(o?"channel-message-deleted-deliver":"channel-recall-deliver",{sMsgId:a.sMsgId,sFromId:a.sFromId.toString(),sRadioId:a.sRadioId.toString()});}return [{command:4110,handler:(r,o)=>n(o)},{command:4108,handler:(r,o)=>{let i=Jo.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:8198,handler:(r,o)=>{let i=Xo.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12298,handler:(r,o)=>{let i=hi.decode(o);e.onRecallAck({sMsgId:i.sMsgId,errcode:i.errcode});}},{command:12294,handler:(r,o)=>{let i=Ci.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 Sc(e,n){if(e<=0n)throw new Error(`channel application: ${n} id \u7F3A\u5931\u6216\u975E\u6CD5`);return e.toString()}function Sh(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 Ah(e){let n=Sc(e.sFromId,"applicant"),t=Sc(e.sToId,"recipient"),r=Sc(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 hh(e){function n(t){let r=Ei.decode(t),o=Sh(e),i=Ah(r),a=yr.create({sFromId:BigInt(o),sRadioId:r.sRadioId,sMsgId:i.messageId});try{e.sendFrame(X({command:12547,body:yr.encode(a)}));}catch(s){e.emitter.emit({type:"error",error:{scope:"transport",message:`CHANNEL \u5165\u7FA4\u7533\u8BF7 ACK \u53D1\u9001\u5931\u8D25\uFF08channelId=${i.channelId}, messageId=${i.messageId}\uFF09`,cause:s}});}i.recipientId===o&&e.emitter.emit({type:"channel-join-application:received",conversation:{conversationType:"channel",conversationId:i.channelId},notification:i});}return [{command:12548,handler:(t,r)=>n(r)}]}function Rh(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 Mh(e){function n(i){let a=Ir.create({sFromId:i.sFromId,sRadioId:i.sRadioId,sMsgId:i.sMsgId,sIndex:i.sId});e.sendFrame(X({command:12803,body:Ir.encode(a)}));}function t(i,a,s,c="CHANNEL \u901A\u77E5\u5904\u7406\u5931\u8D25"){e.emitter.emit({type:"error",error:{scope:i,message:`${c}\uFF08channelId=${a.sRadioId.toString()}, messageId=${a.sMsgId}\uFF09`,cause:s}});}function r(i){if(i.encrypt===0)return pe.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 c=e.decrypt.resolveUserPrivateKey?.()??null;if(c===null)throw new Error("CHANNEL \u901A\u77E5 Web \u79C1\u94A5\u7F3A\u5931");let u=Ue.decode(i.sContent);if(u.secretKey.length===0||u.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.secretKey/cipherData \u7F3A\u5931");return pe.decode(e.decrypt.crypto.decryptEndToEnd({secretKey:u.secretKey,cipherData:u.cipherData,privateKey:c}))}if(i.encrypt!==2)throw new Error(`CHANNEL \u901A\u77E5 encrypt=${i.encrypt} \u4E0D\u652F\u6301`);if(e.decrypt===void 0)throw new Error("CHANNEL \u901A\u77E5\u7F3A\u5C11 ChannelKeyService \u89E3\u5BC6\u4F9D\u8D56");let a=e.decrypt.resolveChannelKey(i.sRadioId.toString());if(a===null||a.length!==16)throw new Error("CHANNEL \u901A\u77E5 key \u7F3A\u5931\u6216\u957F\u5EA6\u975E\u6CD5");let s=Ue.decode(i.sContent);if(s.cipherData.length===0)throw new Error("CHANNEL \u901A\u77E5 BContent.cipherData \u7F3A\u5931");return pe.decode(e.decrypt.crypto.decryptSymmetric({teaKey:a,cipherData:s.cipherData}))}function o(i,a){let s=Ti.decode(a);Rh(s);try{n(s);}catch(u){t("transport",s,u,"CHANNEL \u901A\u77E5 ACK \u53D1\u9001\u5931\u8D25");}let c;try{c=r(s);}catch(u){t(s.encrypt===0?"protocol":"crypto",s,u);let y=vn(s,pe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:i,keepRaw:e.keepRaw,decryptFailed:s.encrypt!==0});e.domainState.upsertMessages([y],"live"),(s.encrypt===1||s.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:y.conversationId},messageId:y.id,wireEncrypt:s.encrypt,sContent:s.sContent.slice(),cmdId:i,source:"live",createdAt:Date.now()});return}try{let u=Kr({channelId:s.sRadioId,messageId:s.sMsgId,occurredAt:s.msgTime,notifyType:c.type,operatorId:c.oprUserId,targetUserIds:c.mnpledUserId,content:c.content,historyCursor:s.sId,sequence:s.nIncrId,encrypted:s.encrypt!==0,extend:s.extend},{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([u],"live"),e.logger?.("channel-notify-deliver",{channelId:s.sRadioId.toString(),messageId:s.sMsgId,notifyType:c.type});}catch(u){t("protocol",s,u);}}return [{command:12804,handler:(i,a)=>o(i,a)}]}function Eh(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 Th(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 Bp(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 vh(e){function n(c){let u=pi.decode(c),y={...u.sIndex===""?{}:{historyCursor:u.sIndex},...u.nIncrId===0n?{}:{channelSequence:u.nIncrId.toString()}},I=Eh(u.errcode);e.outbox.onChatAck({id:ge(u.sMsgId),serverTime:Number(u.msgTime),errcode:u.errcode,...Object.keys(y).length===0?{}:{extensions:y},...I===void 0?{}:{failure:I}});let v=Th(u.errcode);v!==void 0&&u.sRadioId>0n&&e.domainState.setChannelRestriction(u.sRadioId.toString(),v.state,v.reason),e.logger?.("channel-chat-ack",{messageId:u.sMsgId,channelId:u.sRadioId.toString(),errcode:u.errcode});}function t(c){let u=gr.create({sFromId:c.sFromId,sRadioId:c.sRadioId,sMsgId:c.sMsgId,sIndex:c.sId});e.sendFrame(X({command:12291,body:gr.encode(u)}));}function r(c,u,y){let I=c.sRadioId.toString();e.decrypt?.onDecryptError?.({endpoint:"live",surface:u,messageId:c.sMsgId,channelId:I,encrypt:c.encrypt,payloadByteLength:c.sContent.length,...y}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`CHANNEL \u5B9E\u65F6\u6D88\u606F\u5904\u7406\u5931\u8D25\uFF08${y.reason}, channelId=${I}\uFF09`,...y.cause===void 0?{}:{cause:y.cause}}});}function o(c,u){let y;if(c.encrypt===0)try{y=pe.decode(c.sContent);}catch(I){e.emitter.emit({type:"error",error:{scope:"protocol",message:`CHANNEL \u5B9E\u65F6\u660E\u6587 BMessage \u89E3\u7801\u5931\u8D25\uFF08channelId=${c.sRadioId.toString()}\uFF09`,cause:I}});return}else if(c.encrypt===1&&e.decrypt!==void 0){let I=e.decrypt.resolveUserPrivateKey?.()??null;if(I===null){r(c,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:e.decrypt.resolveUserPrivateKey===void 0?"service-absent":"miss"});return}let v;try{if(v=Ue.decode(c.sContent),v.secretKey.length===0||v.cipherData.length===0)throw new Error("BContent.secretKey/cipherData \u7F3A\u5931")}catch(A){r(c,u,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:0,keySource:"user-private-key",cause:A});return}let T;try{T=e.decrypt.crypto.decryptEndToEnd({secretKey:v.secretKey,cipherData:v.cipherData,privateKey:I});}catch(A){r(c,u,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:v.cipherData.length,cause:A});return}try{y=pe.decode(T);}catch(A){r(c,u,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:0,keySource:"user-private-key",cipherDataByteLength:v.cipherData.length,decryptedByteLength:T.length,cause:A});return}}else if(c.encrypt===2&&e.decrypt!==void 0){let I=e.decrypt.resolveChannelKey(c.sRadioId.toString());if(I===null||I.length!==16){r(c,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:I?.length??0,keySource:I===null?"miss":"cache"});return}let v;try{let A=Ue.decode(c.sContent);if(A.cipherData.length===0)throw new Error("BContent.cipherData \u7F3A\u5931");v=A.cipherData;}catch(A){r(c,u,{reason:"decrypt-failed",decryptStage:"bcontent",keyByteLength:I.length,keySource:"cache",cause:A});return}let T;try{T=e.decrypt.crypto.decryptSymmetric({teaKey:I,cipherData:v});}catch(A){r(c,u,{reason:"decrypt-failed",decryptStage:"tea",keyByteLength:I.length,keySource:"cache",cipherDataByteLength:v.length,cause:A});return}try{y=pe.decode(T);}catch(A){r(c,u,{reason:"decrypt-failed",decryptStage:"bmessage",keyByteLength:I.length,keySource:"cache",cipherDataByteLength:v.length,decryptedByteLength:T.length,cause:A});return}}else {r(c,u,{reason:"no-key",decryptStage:"key-resolve",keyByteLength:0,keySource:"service-absent"});return}return y}function i(c,u){let y=vn(c,pe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:u,keepRaw:e.keepRaw,decryptFailed:true});e.domainState.upsertMessages([y],"live"),(c.encrypt===1||c.encrypt===2)&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"channel",conversationId:y.conversationId},messageId:y.id,wireEncrypt:c.encrypt,sContent:c.sContent.slice(),cmdId:u,source:"live",createdAt:Date.now()});}function a(c,u){let y=fi.decode(u);Bp(y),t(y);let I=o(y,"live-deliver");if(I===void 0){i(y,c);return}let v=Jr({channelId:y.sRadioId,senderId:y.sFromId,msgTime:y.msgTime,encrypt:y.encrypt},I);if(v!==null){e.domainState.upsertMessages([v],"live"),e.logger?.("channel-operation-notify-deliver",{messageId:y.sMsgId,targetMessageId:v.id,channelId:y.sRadioId.toString(),operation:v.deletedForEveryone!==void 0?"admin-delete":"self-recall",command:c});return}let T=vn(y,I,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw});e.domainState.upsertMessages([T],"live"),e.logger?.("channel-chat-deliver",{messageId:y.sMsgId,channelId:y.sRadioId.toString(),encrypt:y.encrypt,command:c});}function s(c,u){let y=Bn.decode(u);if(Bp(y,false),y.oldMsgId.trim()==="")throw new Error("channel edit deliver: oldMsgId \u7F3A\u5931");if(y.isEdit===""||y.isEdit==="0")throw new Error("channel edit deliver: isEdit \u6807\u8BB0\u7F3A\u5931");if(y.encrypt!==2)throw new Error("channel edit deliver: \u5FC5\u987B\u4F7F\u7528 CHANNEL encrypt=2");let I=ge(y.oldMsgId),v=o(y,"live-edit");if(v===void 0){let A={conversationType:"channel",conversationId:y.sRadioId.toString()};if(e.domainState.getConversationMessage(A,I)===void 0){let D=vn(y,pe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,decryptFailed:true,edited:true});e.domainState.upsertMessages([{...D,id:I}],"live");}e.decrypt?.onDecryptRecovery?.({conversation:A,messageId:I,wireEncrypt:2,sContent:y.sContent.slice(),cmdId:c,source:"live",createdAt:Date.now()});return}let T=vn(y,v,{selfId:e.getSelfId(),cmdId:c,keepRaw:e.keepRaw,edited:true});if(T.contentType!=="text")throw new Error("channel edit deliver: \u4EC5\u652F\u6301 text \u6D88\u606F");e.domainState.editMessage({conversationType:"channel",conversationId:T.conversationId},I,T.body,T.mention),e.domainState.getConversationMessage({conversationType:"channel",conversationId:T.conversationId},I)===void 0&&e.domainState.upsertMessages([{...T,id:I,edited:true,extensions:{...T.extensions,editOperationMessageId:T.id,previousMessageId:I}}],"live");}return [{command:12290,handler:(c,u)=>n(u)},{command:12292,handler:(c,u)=>a(c,u)},{command:12816,handler:(c,u)=>a(c,u)},{command:12808,handler:(c,u)=>s(c,u)}]}function Ac(){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 bh(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 Nh(e){return [{command:4360,handler:(n,t)=>{let r=Ho.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(X({command:4359,body:jt.encode(jt.create({sUserId:r.sFromId,sMsgId:r.sMsgId}))}));let o=r.sToId.toString();if(e.getSelfId()!==o)return;let i=r.sFromId.toString(),a=r.errcode===32768||r.errcode===33300||bh(r)?"accepted":r.errcode===33297?"rejected":"ambiguous";a==="accepted"&&(e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(s=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u597D\u53CB\u7533\u8BF7\u5DF2\u901A\u8FC7\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:s}});}),e.domainState.refreshConversationProfile(i,"direct")),e.emitter.emit({type:"contact-application:answered",notification:{responderId:r.sFromId.toString(),applicantId:o,messageId:r.sMsgId,result:a}});}}]}function _h(e){return [{command:4356,handler:(n,t)=>{let r=Wo.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(X({command:4355,body:qt.encode(qt.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 hc(e){function n(T){let A=Wn.create({sFromId:T.sFromId,sToId:T.sToId,sMsgId:T.sMsgId,msgTime:T.msgTime});e.sendFrame(X({command:4099,body:Wn.encode(A)}));}function t(T){let A=Dd(ko.decode(T));e.logger?.("chat-ack",{id:A.id,errcode:A.errcode,serverTime:A.serverTime}),e.outbox.onChatAck(A);}function r(T,A,D){let b=Et(T,pe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:A,keepRaw:e.keepRaw,decryptFailed:true,edited:D});e.domainState.upsertMessages([b],"live"),T.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"direct",conversationId:b.conversationId},messageId:b.id,wireEncrypt:1,sContent:T.sContent.slice(),...T.encryptVersion===""?{}:{encryptVersion:T.encryptVersion},cmdId:A,source:"live",createdAt:Date.now()});}function o(T,A,D=false){let b=xo.decode(A),E;if(b.encrypt===0)E=pe.decode(b.sContent);else if(b.encrypt===1&&e.decrypt!==void 0){let p=e.decrypt.resolvePrivateKey({msgType:b.msgType,encrypt:b.encrypt,encryptVersion:b.encryptVersion});if(p===null){e.decrypt.onDecryptError?.({msgId:b.sMsgId,fromId:String(b.sFromId),toId:String(b.sToId),msgType:b.msgType,cmdId:T,encrypt:b.encrypt,encryptVersion:b.encryptVersion,reason:"no-key"}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${b.encrypt})\uFF0C\u4F46\u5B9E\u65F6\u89E3\u5BC6\u7F3A\u5C11\u79C1\u94A5\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(b,T,D);return}try{let R=Ue.decode(b.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 k=e.decrypt.crypto.decryptEndToEnd({secretKey:R.secretKey,cipherData:R.cipherData,privateKey:p});E=pe.decode(k);}catch(R){e.decrypt.onDecryptError?.({msgId:b.sMsgId,fromId:String(b.sFromId),toId:String(b.sToId),msgType:b.msgType,cmdId:T,encrypt:b.encrypt,encryptVersion:b.encryptVersion,reason:"decrypt-failed",cause:R}),e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u5B9E\u65F6\u5BC6\u6587\u6295\u9012\u89E3\u5BC6\u5931\u8D25(encrypt=${b.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,cause:R}}),r(b,T,D);return}}else {e.emitter.emit({type:"error",error:{scope:"crypto",message:`\u6536\u5230\u5BC6\u6587\u6295\u9012(encrypt=${b.encrypt})\uFF0C\u6D88\u606F\u52A0\u5BC6 adapter \u672A\u63A5\u5165\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`}}),r(b,T,D);return}let f=Et(b,E,{selfId:e.getSelfId(),cmdId:T,keepRaw:e.keepRaw,edited:D});e.domainState.upsertMessages([f],"live"),n(b),e.logger?.("chat-deliver",{sMsgId:b.sMsgId,sFromId:String(b.sFromId),sToId:String(b.sToId),encrypt:b.encrypt});}function i(T){let A=tr.create({sUserId:T.sToId,sMsgId:T.sMsgId});e.sendFrame(X({command:4101,body:tr.encode(A)})),e.logger?.("delivered-notif-ack",{sUserId:String(A.sUserId),sMsgId:A.sMsgId});}function a(T,A){let D=ei.decode(A);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:T,name:"MES_CHAT_DELIVERED_NOTIFICATION"});}function s(T){let A=or.create({sUserId:T.sToId,sMsgId:T.sMsgId});e.sendFrame(X({command:4105,body:or.encode(A)})),e.logger?.("read-deliver-ack",{sUserId:String(A.sUserId),sMsgId:A.sMsgId});}function c(T,A){let D=e.getSelfId(),b=[];for(let E of A){let f=e.domainState.getConversationMessage({conversationType:"direct",conversationId:T},ge(E.sMsgId));f!==void 0&&f.senderId===D&&f.receipt!=="read"&&b.push({...f,receipt:"read"});}b.length>0&&e.domainState.upsertMessages(b,"live");}function u(T,A){let D=ti.decode(A);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(s(D),D.readReceiptOff!==1){let b=e.getSelfId(),E=D.sFromId.toString(),f=D.sToId.toString();c(E===b?f:E,D.readResults);}e.emitter.emit({type:"notification",cmdId:T,name:"MES_CHAT_READ_DELIVER"});}function y(T){let A=ni.decode(T);e.logger?.("read-report-ack",{notifyId:A.sMsgId,sUserId:String(A.sUserId),errcode:A.errcode}),e.onReadAck?.({notifyId:A.sMsgId,errcode:A.errcode});}function I(T){let A=ri.decode(T);e.logger?.("direct-sync-read-ack",{errcode:A.errcode}),e.onSyncReadAck?.({errcode:A.errcode});}function v(T,A){let D=oi.decode(A),b=D.sUserId.toString(),E=D.sFromId.toString();e.logger?.("direct-sync-read-deliver",{userId:b,peerId:E,msgIds:D.msgIdList.length}),e.onSyncReadDeliver?.({userId:b,peerId:E,msgIdList:D.msgIdList}),e.emitter.emit({type:"notification",cmdId:T,name:"MES_CHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:4098,handler:(T,A)=>t(A)},{command:4100,handler:(T,A)=>o(T,A)},{command:4644,handler:(T,A)=>o(T,A,true)},{command:4102,handler:(T,A)=>a(T,A)},{command:4106,handler:(T,A)=>u(T,A)},{command:4104,handler:(T,A)=>y(A)},{command:4118,handler:(T,A)=>I(A)},{command:4119,handler:(T,A)=>v(T,A)}]}function Dh(e){function n(t){let r=Lo.decode(t);if(r.uerId<=0n)throw new Error("friend action: user id \u7F3A\u5931\u6216\u975E\u6CD5");let o=Xt.create({userId:r.uerId,msgId:r.sMsgId});if(e.sendFrame(X({command:4632,body:Xt.encode(o)})),r.friendNotifyType===2&&e.getSelfId()===r.uerId.toString()){let i=r.friendId.toString();e.onRelationshipChanged?.(i,"friend"),e.domainState.reconcileDirectContactEstablishedNotice(i,r.sMsgId,Number(r.msgTime)).catch(a=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"\u8054\u7CFB\u4EBA\u5173\u7CFB\u5DF2\u5EFA\u7ACB\uFF0C\u4F46\u672C\u5730\u7CFB\u7EDF\u63D0\u793A\u66F4\u65B0\u5931\u8D25",cause:a}});});}if(e.getSelfId()===r.uerId.toString()&&r.friendId>0n){let i=r.friendId.toString(),a=r.friendNotifyType===0,s=r.friendNotifyType===1&&r.blackStatus===2;(a||s)&&(e.onRelationshipChanged?.(i,a?"none":"blocked"),e.domainState.removeConversation({conversationType:"direct",conversationId:i}),Promise.resolve(e.resetDirectReadReceiptPreference?.(i)).catch(c=>{e.emitter.emit({type:"error",error:{scope:"storage",message:"direct \u5DF2\u8BFB\u56DE\u6267\u504F\u597D\u91CD\u7F6E\u5931\u8D25",cause:{peerId:i,error:c}}});}),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 Gh(e){function n(i,a){let s=It.decode(a),c=e.getSelfId(),u=Xr(s,{cmdId:i,keepRaw:e.keepRaw});e.domainState.upsertMessages([u],"live");let y=dr.create({sUserId:BigInt(c),sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(X({command:8707,body:dr.encode(y)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_GRPNOTIFY_DELIVER"}),e.logger?.("grp-notify-deliver",{groupId:s.sGrpId.toString(),sMsgId:s.sMsgId,notifyType:s.notifyType});}function t(i,a){let s=ui.decode(a),c=cr.create({sUserId:BigInt(e.getSelfId()),sGrpId:s.sGrpId,sMsgId:s.sMsgId});e.sendFrame(X({command:8451,body:cr.encode(c)})),e.emitter.emit({type:"notification",cmdId:i,name:"MES_JOINGRP_DELIVER"}),e.logger?.("grp-join-deliver",{sGrpId:s.sGrpId.toString(),sMsgId:s.sMsgId});}function r(i){let a=gi.decode(i),s=lr.create({sFromId:BigInt(e.getSelfId()),sToId:a.sFromId,sGrpId:a.sGrpId,sMsgId:a.sMsgId});e.sendFrame(X({command:8963,body:lr.encode(s)})),e.logger?.("grp-exchange-key-deliver-noop-ack",{sMsgId:a.sMsgId});}function o(i){let a=mi.decode(i),s=ur.create({sUserId:BigInt(e.getSelfId()),sMsgId:a.sMsgId});e.sendFrame(X({command:8965,body:ur.encode(s)})),e.logger?.("grp-exchange-key-notify-noop-ack",{sMsgId:a.sMsgId});}return [{command:8708,handler:(i,a)=>n(i,a)},{command:8452,handler:(i,a)=>t(i,a)},{command:8964,handler:(i,a)=>r(a)},{command:8966,handler:(i,a)=>o(a)}]}function Uh(e){let n=new Map;function t(A){let D=ii.decode(A),b={id:ge(D.sMsgId),serverTime:Number(D.sendtime),errcode:D.errcode};e.logger?.("grp-chat-ack",{id:b.id,errcode:b.errcode,serverTime:b.serverTime}),e.outbox.onChatAck(b);}function r(A){let D=ir.create({sFromId:BigInt(e.getSelfId()),sGrpId:A.sGrpId,sMsgId:A.sMsgId});e.sendFrame(X({command:8195,body:ir.encode(D)}));}function o(){return e.isActive?.()??true}function i(A,D,b,E,f=false){let p=A.sGrpId.toString(),R=Hn(A,pe.create({contentType:1,content:""}),{selfId:e.getSelfId(),cmdId:D,keepRaw:e.keepRaw,decryptFailed:true,edited:f});e.domainState.upsertMessages([R],"live"),A.encrypt===1&&e.decrypt?.onDecryptRecovery?.({conversation:{conversationType:"group",conversationId:p},messageId:R.id,wireEncrypt:1,sContent:A.sContent.slice(),...A.encryptVersion===""?{}:{encryptVersion:A.encryptVersion},cmdId:D,source:"live",createdAt:Date.now()}),e.decrypt?.onDecryptError?.({msgId:A.sMsgId,groupId:p,fromId:String(A.sFromId),msgType:A.msgType,cmdId:D,encrypt:A.encrypt,encryptVersion:A.encryptVersion,reason:b,...E===void 0?{}:{cause:E}}),e.emitter.emit({type:"error",error:{scope:"crypto",message:b==="no-key"?`\u6536\u5230\u7FA4\u5BC6\u6587\u6295\u9012(encrypt=${A.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=${A.encrypt})\uFF0C\u5DF2\u4FDD\u7559\u5360\u4F4D\u4E14\u4E0D\u56DE ACK`,...E===void 0?{}:{cause:E}}});}function a(A,D,b,E){let f=Hn(A,b,{selfId:e.getSelfId(),cmdId:D,keepRaw:e.keepRaw,edited:E});e.domainState.upsertMessages([f],"live"),r(A),e.logger?.("grp-chat-deliver",{sMsgId:A.sMsgId,sGrpId:String(A.sGrpId),sFromId:String(A.sFromId),encrypt:A.encrypt});}function s(A,D){let b=Ue.decode(A.sContent);if(b.secretKey.length===0||b.cipherData.length===0)throw new Error(`BContent \u5B57\u6BB5\u7F3A\u5931\uFF1AsecretKey=${b.secretKey.length}B cipherData=${b.cipherData.length}B`);let E=e.decrypt.crypto.decryptEndToEnd({secretKey:b.secretKey,cipherData:b.cipherData,privateKey:D});return pe.decode(E)}async function c(A,D,b){if(!o())return;if(A.encrypt===0){try{a(A,D,pe.decode(A.sContent),b);}catch(k){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:k}});}return}if(A.encrypt!==1||e.decrypt===void 0){i(A,D,"no-key",void 0,b);return}let f={groupId:A.sGrpId.toString(),msgType:A.msgType,encrypt:A.encrypt,encryptVersion:A.encryptVersion},p;try{p=e.decrypt.resolvePrivateKey(f),p===null&&e.decrypt.preparePrivateKey!==void 0&&(p=await e.decrypt.preparePrivateKey(f));}catch(k){o()&&i(A,D,"no-key",k,b);return}if(!o())return;if(p===null){i(A,D,"no-key",void 0,b);return}let R;try{R=s(A,p);}catch(k){i(A,D,"decrypt-failed",k,b);return}if(o())try{a(A,D,R,b);}catch(k){o()&&e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5F02\u6B65\u7FA4\u6295\u9012\u843D\u5730\u6216\u56DE ACK \u5931\u8D25",cause:k}});}}function u(A,D,b){let E=A.sGrpId.toString(),p=(n.get(E)??Promise.resolve()).then(()=>c(A,D,b));n.set(E,p),p.finally(()=>{n.get(E)===p&&n.delete(E);});}function y(A,D,b=false){let E=si.decode(D),f=E.sGrpId.toString();if(n.has(f)){u(E,A,b);return}if(E.encrypt===0){a(E,A,pe.decode(E.sContent),b);return}if(E.encrypt!==1||e.decrypt===void 0){i(E,A,"no-key",void 0,b);return}let p={groupId:f,msgType:E.msgType,encrypt:E.encrypt,encryptVersion:E.encryptVersion},R=e.decrypt.resolvePrivateKey(p);if(R===null){if(e.decrypt.preparePrivateKey!==void 0){u(E,A,b);return}i(E,A,"no-key",void 0,b);return}let k;try{k=s(E,R);}catch(V){i(E,A,"decrypt-failed",V,b);return}a(E,A,k,b);}function I(A){let D=ci.decode(A);e.logger?.("grp-sync-read-ack",{errcode:D.errcode});}function v(A,D){for(let b=D.length-1;b>=0;b-=1){let E=D[b];if(E===void 0||E==="")continue;let f=ge(E),p=e.domainState.getConversationMessage({conversationType:"group",conversationId:A},f);if(p!==void 0&&p.conversationId===A)return f}}function T(A,D){let b=li.decode(D),E=b.groupId.toString();if(b.sUserId.toString()!==e.getSelfId()){e.logger?.("grp-sync-read-deliver-skip",{groupId:E,sUserId:String(b.sUserId)});return}e.logger?.("grp-sync-read-deliver",{groupId:E,sUserId:String(b.sUserId),msgIds:b.msgIdList.length});let f=v(E,b.msgIdList);e.domainState.applyServerUnread({conversationType:"group",conversationId:E},0,f),e.emitter.emit({type:"notification",cmdId:A,name:"MES_GRPCHAT_SYNC_READ_MSG_DELIVER_C2C"});}return [{command:8194,handler:(A,D)=>t(D)},{command:8196,handler:(A,D)=>y(A,D)},{command:8976,handler:(A,D)=>y(A,D,true)},{command:8968,handler:(A,D)=>I(D)},{command:8969,handler:(A,D)=>T(A,D)}]}function kh(e){function n(o){let i=Ud(Bo.decode(o));e.logger?.("robot-ack",{id:i.id,errcode:i.errcode}),e.outbox.onChatAck(i);}function t(o,i){let a=Fo.decode(i),s=Gd(a,{selfId:e.getSelfId(),cmdId:o,keepRaw:e.keepRaw});e.domainState.upsertMessages([s],"live");let c=Wn.create({sFromId:BigInt(a.robotId),sToId:a.userId,sMsgId:a.sMsgId,msgTime:a.msgTime});e.sendFrame(X({command:4099,body:Wn.encode(c)}));}function r(o){let i=wo.decode(o);if(i.robotId.trim()==="")throw new Error("robot delete: robotId \u7F3A\u5931");e.domainState.removeConversation({conversationType:"robot",conversationId:i.robotId}),e.emitter.emit({type:"notification",cmdId:24579,name:"BOT_MSG_ROBOT_DELETE_SEND"});}return [{command:4648,handler:(o,i)=>n(i)},{command:4649,handler:(o,i)=>t(o,i)},{command:24579,handler:(o,i)=>r(i)}]}function xh(e){function n(t){let r=Zo.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 Bh(e){function n(t){let r=Qo.decode(t),o=()=>e.sendFrame(X({command:4628,body:zt.encode(zt.create({sUserId:r.sToId,sMsgId:r.sMsgId}))}));if(r.notifyType===4){let i=td.decode(r.sContent),a=i.serialNumber.trim();if(a==="")throw new Error("wallet notify: serialNumber \u7F3A\u5931");let s=Number(i.occurredTime);e.domainState.applyTransferStatusBySerialNumber(a,3,Number.isFinite(s)&&s>0?s:void 0).then(()=>{o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}).catch(c=>{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:c}});});return}o(),e.emitter.emit({type:"notification",cmdId:4627,name:"MS_WALLETNOTIFY_DELIVER"});}return [{command:4627,handler:(t,r)=>n(r)}]}function Fh(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 wh(e={}){return {conversationType:"channel",buildOutgoingFrame(n,t){let r=n.contentType==="sticker"&&Fh(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 um(o);let{crypto:i}=t,{resolveChannelKey:a}=e;return (async()=>{if(i===void 0||a===void 0)throw new Error("channel encrypt=2 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveChannelKey\uFF09");let s=await a(n.conversationId);if(s===null||s.length!==16)throw new Error(`channel encrypt=2 \u53D6\u9891\u9053 key \u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return gm(o,i,s)})()}}}function Fp(e,n){return qr({id:e.id,conversationId:e.conversationId,body:e.body,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId})}function Rc(e={}){let n={conversationType:"direct",buildOutgoingFrame(t,r){let o=Fp(t,r);if(o.encrypt!==1)return fm(o);let{crypto:i,resolveEncryptionKey:a}=r;if(i===void 0||a===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let s=await a(t.conversationId);if(s===null||s==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return Im(o,i,s)})()}};return e.includeOppositeEnd!==true?n:{...n,buildOutgoingFrames(t,r){let o=Fp(t,r);if(o.encrypt!==1)return ym(o);let{crypto:i,resolveEncryptionKey:a}=r;if(i===void 0||a===void 0)throw new Error("direct encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / resolveEncryptionKey\uFF09");return (async()=>{let s=await a(t.conversationId);if(s===null||s==="")throw new Error(`direct encrypt=1 \u53D6\u5BF9\u7AEF\u516C\u94A5\u5931\u8D25\uFF08conversationId=${t.conversationId}\uFF09`);return Cm(o,i,s)})()}}}function Ph(e={}){return {conversationType:"group",buildOutgoingFrame(n,t){let r=Vr({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 Em(r);let{crypto:o}=t,{resolveGroupKey:i}=e;if(o===void 0||i===void 0)throw new Error("group encrypt=1 \u53D1\u9001\u672A\u88C5\u914D\u52A0\u5BC6\u4F9D\u8D56\uFF08crypto / \u7FA4\u5BC6\u94A5\u670D\u52A1 resolveGroupKey\uFF09");return (async()=>{let a=await i(n.conversationId);if(a===null||a.publicKey==="")throw new Error(`group encrypt=1 \u53D6\u7FA4\u516C\u94A5\u5931\u8D25\uFF08conversationId=${n.conversationId}\uFF09`);return Tm(r,o,a.publicKey,a.version)})()}}}function wp(e){let n=Yt.encode(Yt.create({userId:e.userId,robotId:e.robotId,content:e.content,msgTime:e.msgTime,sMsgId:e.sMsgId}));return X({command:4647,body:n})}function Vh(){return {conversationType:"robot",buildOutgoingFrame(e,n){return wp(kd({id:e.id,conversationId:e.conversationId,body:e.body,createdAt:e.createdAt,encryption:e.encryption,refMessageId:e.refMessageId},{selfId:n.selfId}))}}}function Pp(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 ro(){return Pp([Rc()])}function Vp(e,n){if(n.conversationType==="channel")throw new Error("sendTransfer: CHANNEL \u4E0D\u53D1\u9001\u8F6C\u8D26");if(!Mo(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 dt(e){return typeof e=="string"?e:e==null?"":String(e)}function Fs(e){let n=typeof e=="number"?e:Number(dt(e).trim());return Number.isFinite(n)?n:0}function Op(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 Oh(...e){for(let n of e){let t=dt(n).trim();if(/^https?:\/\//i.test(t))return t}return ""}function ws(e){return e.thumbDataUrl!==""?e.thumbDataUrl:e.thumbUrl.startsWith("data:image/")||/^https?:\/\//i.test(e.thumbUrl)&&e.thumbUrl!==e.url?e.thumbUrl:""}function Kh(e){return e.url!==""||ws(e)!==""}function Kp(e){let n=e.items;return Array.isArray(n)?n.flatMap(t=>{if(typeof t!="object"||t===null)return [];let r=t,o=Fs(r.mediaType??r.media_type),i=dt(r.kind).trim(),a={kind:o===2||i==="video"?"video":"image",width:Fs(r.width),height:Fs(r.height),url:dt(r.url).trim(),thumbUrl:dt(r.thumbUrl??r.thumb_url).trim(),thumbDataUrl:Op(r.thumbData??r.thumb_data),durationMs:Fs(r.duration??r.durationMs),hd:r.hd===true||r.hd===1||r.hd==="1"};return Kh(a)?[a]:[]}):[]}function Lh(e){return e.kind!=="mediaAlbum"?"":e.text.trim()||dt(e.body.caption).trim()}function Lp(e){return ws({url:Oh(e.imageURL,e.imageUrl,e.videoURL,e.videoUrl,e.url),thumbUrl:dt(e.thumbUrl??e.thumb_url).trim(),thumbDataUrl:Op(e.thumbData??e.thumb_data??e.thumbBase64)})}function Zh(e,n){if(e==="mediaAlbum"){let t=Kp(n)[0];return t===void 0?"":ws(t)}return e==="image"||e==="video"?Lp(n):""}var Qh=/^[a-z0-9][a-z0-9._-]*[a-z0-9]$/,Wh=/^[a-z0-9][a-z0-9._-]{0,63}$/,Hh=new Set(["durable","rebuildable","ephemeral"]);function Qp(e){if(typeof e!="string"||e!==e.trim()||e.length<3||e.length>64||!Qh.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 Zp(e,n){if(!Wh.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 Jh(e){let n=Qp(e);return {hostPrefix:n,forAccount(t){if(typeof t!="string"||t===""||t!==t.trim())throw new Error("cache namespace accountId \u975E\u6CD5\uFF1A\u5FC5\u987B\u4E3A\u975E\u7A7A\u4E14\u65E0\u9996\u5C3E\u7A7A\u767D\u7684\u5B57\u7B26\u4E32");let r=encodeURIComponent(t);return {hostPrefix:n,accountScope:r,name(o,i,a){if(!Hh.has(o))throw new Error(`cache namespace category \u975E\u6CD5\uFF1A${String(o)}`);return Zp(i,"domain"),Zp(a,"resource"),o==="durable"&&i==="storage"&&a==="indexed-db"?`${n}:${t}`:`${n}:im-sdk:v1:${r}:${o}:${i}:${a}`}}}}}function Yh(e){return e===32768||e===0}function Xh(e,n){if(Yh(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 zh(e){return e===""?"(empty)":`...${e.slice(-6)}(len=${e.length})`}function qh(e){let n=Ht.create({sUserId:BigInt(e.userId),sLoginToken:e.token,sDeviceToken:e.deviceToken,clientType:e.clientType,channelType:e.channelType,sPushToken:e.pushToken??"",sVersionCode:e.versionCode??""});return X({command:257,body:Ht.encode(n)})}function Wp(e,n={}){let t=n.timeoutMs??3e4,r=0,o;function i(s,c){if(o===void 0||o.generation!==s)return;clearTimeout(o.timer);let{resolve:u}=o;o=void 0,u(c);}function a(){if(o===void 0)return;clearTimeout(o.timer);let{resolve:s}=o;o=void 0,s({type:"canceled"});}return {async login(){let s=++r;a();let c;try{c=await e.authProvider.getLoginContext();}catch(y){return {type:"retry",error:{scope:"login",message:"\u83B7\u53D6\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:y}}}if(s!==r)return {type:"canceled"};if(c===null)return {type:"auth-invalid",issue:{code:0,reason:"token_expired"}};let u;try{u=qh(c);}catch(y){return {type:"retry",error:{scope:"login",message:"\u7EC4\u88C5 CM_LOGIN \u5931\u8D25",cause:y}}}return new Promise(y=>{let I=setTimeout(()=>{i(s,{type:"retry",error:{scope:"login",message:`\u767B\u5F55\u8D85\u65F6\uFF08${t}ms \u672A\u6536\u5230 CMLoginAck\uFF09`}});},t);o={generation:s,resolve:y,timer:I,selfId:c.userId},e.logger?.("connection:login-frame-sent",{userId:c.userId,deviceToken:zh(c.deviceToken),clientType:c.clientType,channelType:c.channelType,tokenLength:c.token.length,generation:s}),e.sendFrame(u);})},onLoginAck(s){if(o===void 0)return;let{generation:c,selfId:u}=o,y;try{let I=Uo.decode(s),v=Number(I.nErr);e.logger?.("connection:login-ack-received",{ackUserId:String(I.sUserId),requestUserId:u,errCode:`0x${v.toString(16)}`,isKickedOut:v===33040,lastLoginTime:String(I.nLastLoginTime)}),y=Xh(v,Number(I.nLastLoginTime)),y.type==="success"&&(y={type:"success",selfId:u});}catch(I){y={type:"retry",error:{scope:"protocol",message:"CMLoginAck \u89E3\u6790\u5931\u8D25",cause:I}};}i(c,y);},cancel(){r+=1,a();},get awaitingAck(){return o!==void 0}}}var Hp=4294967295,jh=2,$h=2.2,eR=2880;function nR(e,n){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A\u6B63\u5B89\u5168\u6574\u6570`);return e}function Jp(e,n){if(!Number.isSafeInteger(e)||e<=0||e>Hp)throw new Error(`sendExpression: ${n} \u5FC5\u987B\u4E3A 1..${Hp} \u7684\u6574\u6570`);return e}function tR(e,n){let t=Math.max(e,n),r=Math.min(e,n);return t/r>$h&&t>eR?jh:0}function Mc(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 rR(e,n){return e===void 0?void 0:Mc(e,n)}function oR(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 iR(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=Jp(e.width,"asset.width"),r=Jp(e.height,"asset.height"),o=e.description?.trim(),i=e.kind==="sticker"?Mc(e.resourceId,"asset.resourceId"):rR(e.resourceId,"asset.resourceId"),a=e.kind==="sticker"?Mc(e.packageId,"asset.packageId"):void 0;return {sticker:{url:oR(e.url),width:t,height:r,exprType:2,imageType:e.kind==="gif"?1:tR(t,r),...i===void 0?{}:{contentId:i},...a===void 0?{}:{packageName:a},...e.size===void 0?{}:{size:nR(e.size,"asset.size")},...o===void 0||o===""?{}:{describe:o}}}}function Yp(e,n){let t=iR(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 sR(){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 Xp(e,n=sR){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 aR(e,n){if(e==="rock-paper-scissors")return {gameType:e,value:Xp(3,n)+1};if(e==="dice")return {gameType:e,value:Xp(6,n)+1};throw new Error(`sendGame: \u4E0D\u652F\u6301\u7684 gameType\uFF08${String(e)}\uFF09`)}function zp(e,n){let t=aR(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 qp=new Set([32768,0]),Tc=new Set([33281,33299]),vc=33298,dR=new Set([...Tc,vc]),Ps=-2,cR=-1,Vs=-3,Ec=-4;function Je(e){if(e instanceof Uint8Array)return e.slice();if(Array.isArray(e))return e.map(n=>Je(n));if(e!==null&&typeof e=="object"){let n={};for(let[t,r]of Object.entries(e))n[t]=Je(r);return n}return e}function Kn(e){return Je(e)}function oo(e){return Je(e)}function bc(e,n={}){let t=n.ackTimeoutMs??3e4,r=n.maxAttempts??5,o=e.now??(()=>Date.now()),i=e.sendStrategies??ro(),a=new Map,s=new Map,c=new Map,u=new Map,y=0,I=new Set,v=new Map,T=new Set,A=new Set,D=new Set,b=new Map;function E(m){return de(m)}function f(m,C){return m.createdAt!==C.createdAt?m.createdAt-C.createdAt:m.id<C.id?-1:m.id>C.id?1:0}function p(m){let C=E(m),h=s.get(C);if(h!==void 0)return h;let S=0;for(let _ of e.domainState.getMessagesByConversation({conversationType:m.conversationType,conversationId:m.conversationId}))S=Math.max(S,En(_));for(let _ of a.values())E(_)===C&&(S=Math.max(S,_.createdAt));return s.set(C,S),S}function R(m,C){let h=E(m),S=s.get(h)??p(m);C>S&&s.set(h,C);}function k(m){let C=p(m),h=Math.max(o(),C+1);return s.set(E(m),h),{id:dn(),createdAt:h}}function V(m,C){e.onUpdated?.({messageId:m.id,conversation:{conversationType:m.conversationType,conversationId:m.conversationId},state:C,...m.lastError===void 0?{}:{failure:{reason:m.lastError.reason,retryable:m.lastError.retryable}}});}function $(m){e.storage!==void 0&&e.storage.saveOutboxMessage(Kn(m)).catch(C=>e.onStorageError?.("Outbox \u843D\u76D8\u5931\u8D25",C));}function ne(m){e.storage!==void 0&&e.storage.removeOutboxMessage(m).catch(C=>e.onStorageError?.("Outbox \u5220\u9664\u5931\u8D25",C));}function Se(m){let C=c.get(m);C!==void 0&&(clearTimeout(C),c.delete(m));}function L(m,C,h){let S=h?.authoritativeFailure===true?{authoritativeOutboxFailure:true}:void 0,_=e.domainState.getMessage(m);if(_!==void 0){e.domainState.upsertMessages([{..._,...C}],"live",S);return}let G=a.get(m);if(G===void 0)return;let P={...{id:G.id,conversationId:G.conversationId,conversationType:G.conversationType,senderId:e.getSelfId(),contentType:G.contentType,body:oo(G.body),createdAt:G.createdAt,sortKey:Te(G.createdAt,G.id),status:G.status,receipt:"unread",encryption:Je(G.encryption),failure:G.lastError===void 0?void 0:Je(G.lastError),...G.mention!==void 0?{mention:Je(G.mention)}:{},...G.refMessageId!==void 0?{refMessageId:G.refMessageId}:{}},...C};e.domainState.upsertMessages([{...P,sortKey:Tn(P)}],"live",S);}function Ce(m){if(!dR.has(m.errcode))return;let C=e.domainState.getMessage(m.id);if(C===void 0||C.conversationType!=="direct"||C.senderId!==e.getSelfId())return;let h=Tc.has(m.errcode),S=m.errcode===vc,_=m.failure??hs(m.errcode);h?_={..._,displayCode:"contactRequired",retryable:false}:S&&(_={..._,displayCode:"messageRefused",retryable:false}),e.domainState.upsertMessages([{...C,status:"failed",failure:_}],"live",{authoritativeOutboxFailure:true}),h?e.domainState.appendDirectContactRequiredNotice(C.conversationId,C.id):S&&e.domainState.appendDirectMessageRefusedNotice(C.conversationId,C.id);}function ye(m,C){Se(m);let h=a.get(m);h!==void 0&&(h.status="failed",h.lastError=C,L(m,{status:"failed",failure:C}),$(h),V(h,"failed"),Q(m));}async function K(m){if(u.has(m.id))return;if(I.has(E(m))){ye(m.id,{code:Ec,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}let C=Symbol("outbox-dispatch");u.set(m.id,C);let h=y;try{let S=i.resolve(m.conversationType);if(S===void 0){ye(m.id,{code:Vs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:m.conversationType},message:Dt(m.conversationType,"outbox.dispatch"),retryable:!1});return}let _;try{let G={selfId:e.getSelfId(),crypto:e.crypto,resolveEncryptionKey:e.resolvePublicKey},B=S.buildOutgoingFrames===void 0?S.buildOutgoingFrame(m,G):S.buildOutgoingFrames(m,G);if(B instanceof Uint8Array)_=[B];else if(Array.isArray(B))_=B;else {let P=await B;_=P instanceof Uint8Array?[P]:P;}if(h!==y)return;if(_.length===0||_.some(P=>!(P instanceof Uint8Array)))throw new Error(`\u53D1\u9001\u7B56\u7565\u8FD4\u56DE\u4E86\u975E\u6CD5\u5E27\u5E8F\u5217\uFF08conversationType=${m.conversationType}\uFF09`)}catch{if(h!==y)return;m.attempts+=1,ye(m.id,{code:Ps,reason:"unknown"});return}if(I.has(E(m))){ye(m.id,{code:Ec,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()){m.status="pending",L(m.id,{status:"pending"}),$(m),V(m,"queued");return}m.status="sending",m.attempts+=1,L(m.id,{status:"sending"}),$(m),V(m,"sending");for(let G of _)e.sendFrame(G);Se(m.id),c.set(m.id,setTimeout(()=>ye(m.id,{code:cR,reason:"timeout"}),t));}finally{u.get(m.id)===C&&u.delete(m.id);}}function Q(m){let C=b.get(m);C!==void 0&&(b.delete(m),C());}function W(m){let C=a.get(m);return C===void 0||C.status!=="sending"?Promise.resolve():new Promise(h=>b.set(m,h))}function Z(m){return (m.status==="pending"||m.status==="failed")&&!(m.status==="failed"&&m.lastError?.retryable===false)&&m.resumePolicy!=="manual"&&(m.attempts<r||A.has(m.id))&&i.resolve(m.conversationType)!==void 0}function ce(m,C){let h;for(let S of a.values())C.has(S.id)||E(S)!==m||!Z(S)||(h===void 0||f(S,h)<0)&&(h=S);return h}function se(m,C=false){let h=E(m);if(C&&D.add(h),v.has(h)){T.add(h);return}Ae(h);}function ae(){let m=new Set;for(let C of a.values())Z(C)&&m.add(E(C));for(let C of m)O(C,true);}async function Ae(m){let C=Symbol("outbox-drain"),h=y;v.set(m,C);try{do{T.delete(m);let S=new Set;for(;h===y&&e.isAuthenticated();){let _=ce(m,S);if(_===void 0)break;if(S.add(_.id),A.delete(_.id),await K(_),h!==y)return;D.has(m)&&await W(_.id);}}while(h===y&&T.has(m)&&e.isAuthenticated())}finally{v.get(m)===C&&(v.delete(m),D.delete(m));}}function O(m,C=false){if(C&&D.add(m),v.has(m)){T.add(m);return}Ae(m);}function w(m){let C={code:Ps,reason:"unknown",displayCode:"sendCanceled",retryable:false};m.lastError=C,L(m.id,{status:"failed",failure:C}),A.delete(m.id),a.delete(m.id),ne(m.id),V(m,"canceled"),Q(m.id);}return {allocateMessageIdentity:k,enqueueText(m){let{id:C,createdAt:h}=k(m),S={encrypted:m.encrypted??false},_=i.resolve(m.conversationType)!==void 0,G=_&&e.isAuthenticated(),B={id:C,conversationId:m.conversationId,conversationType:m.conversationType,senderId:e.getSelfId(),contentType:"text",body:{text:m.text},createdAt:h,sortKey:Te(h,C),status:"pending",receipt:"unread",encryption:Je(S),...m.mention!==void 0?{mention:Je(m.mention)}:{},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}},P={id:C,conversationId:m.conversationId,conversationType:m.conversationType,contentType:"text",body:{text:m.text},encryption:Je(S),status:"pending",attempts:0,createdAt:h,...m.mention!==void 0?{mention:Je(m.mention)}:{},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}};return a.set(C,P),$(P),V(P,"queued"),e.domainState.upsertMessages([B],"live",{newOutgoing:true}),_?(G&&se(P),Kn(P)):(ye(C,{code:Vs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:m.conversationType},message:Dt(m.conversationType,"outbox.enqueueText"),retryable:false}),Kn(P))},enqueueContact(m){let C=m.contact.targetId.trim(),h=m.contact.displayName.trim();if(C==="")throw new Error("outbox.enqueueContact: targetId \u4E0D\u80FD\u4E3A\u7A7A");if(h==="")throw new Error("outbox.enqueueContact: displayName \u4E0D\u80FD\u4E3A\u7A7A");if(m.contact.kind!=="individual"&&m.contact.kind!=="group"&&m.contact.kind!=="channel")throw new Error(`outbox.enqueueContact: \u4E0D\u652F\u6301\u53D1\u9001 ${String(m.contact.kind)} \u540D\u7247`);let{id:S,createdAt:_}=k(m),G={encrypted:m.encrypted??false},B=i.resolve(m.conversationType)!==void 0,P=B&&e.isAuthenticated(),ee={contact:{...m.contact,targetId:C,displayName:h}},ue={id:S,conversationId:m.conversationId,conversationType:m.conversationType,senderId:e.getSelfId(),contentType:"contact",body:oo(ee),createdAt:_,sortKey:Te(_,S),status:"pending",receipt:"unread",encryption:Je(G),...m.refMessageId===void 0?{}:{refMessageId:m.refMessageId}},Ee={id:S,conversationId:m.conversationId,conversationType:m.conversationType,contentType:"contact",body:oo(ee),encryption:Je(G),status:"pending",attempts:0,createdAt:_,...m.refMessageId===void 0?{}:{refMessageId:m.refMessageId}};return a.set(S,Ee),$(Ee),V(Ee,"queued"),e.domainState.upsertMessages([ue],"live",{newOutgoing:true}),B?(P&&se(Ee),Kn(Ee)):(ye(S,{code:Vs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:m.conversationType},message:Dt(m.conversationType,"outbox.enqueueContact"),retryable:false}),Kn(Ee))},enqueueMedia(m){let{id:C,createdAt:h}=m,S=oo(m.body);va(m.contentType,S,"outbox.enqueueMedia"),R(m,h);let _=i.resolve(m.conversationType)!==void 0,G=_&&e.isAuthenticated(),B={id:C,conversationId:m.conversationId,conversationType:m.conversationType,senderId:e.getSelfId(),contentType:m.contentType,body:oo(S),createdAt:h,sortKey:Te(h,C),status:"pending",receipt:"unread",encryption:Je(m.encryption),...m.mention!==void 0?{mention:Je(m.mention)}:{},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}},P={id:C,conversationId:m.conversationId,conversationType:m.conversationType,contentType:m.contentType,body:S,encryption:Je(m.encryption),status:"pending",attempts:0,createdAt:h,...m.mention!==void 0?{mention:Je(m.mention)}:{},...m.refMessageId!==void 0?{refMessageId:m.refMessageId}:{}};return a.set(C,P),$(P),V(P,"queued"),e.domainState.upsertMessages([B],"live",{newOutgoing:m.optimisticAlreadyCreated!==true}),_?(G&&se(P),Kn(P)):(ye(C,{code:Vs,reason:"unsupported",displayCode:"conversationUnsupported",params:{type:m.conversationType},message:Dt(m.conversationType,"outbox.enqueueMedia"),retryable:false}),se(P,true),Kn(P))},onChatAck(m){Se(m.id);let C=a.get(m.id);if(C===void 0){qp.has(m.errcode)||Ce(m);return}if(qp.has(m.errcode))a.delete(m.id),ne(m.id),L(m.id,{status:"sent",serverTime:m.serverTime>0?m.serverTime:void 0,...m.extensions===void 0?{}:{extensions:{...e.domainState.getMessage(m.id)?.extensions,...m.extensions}}}),V(C,"sent"),Q(m.id);else {C.status="failed",C.lastError=m.failure??hs(m.errcode);let h=C.conversationType==="direct"&&Tc.has(m.errcode),S=C.conversationType==="direct"&&m.errcode===vc;h?C.lastError={...C.lastError,displayCode:"contactRequired",retryable:false}:S&&(C.lastError={...C.lastError,displayCode:"messageRefused",retryable:false}),L(m.id,{status:"failed",failure:C.lastError},{authoritativeFailure:true}),h?e.domainState.appendDirectContactRequiredNotice(C.conversationId,C.id):S&&e.domainState.appendDirectMessageRefusedNotice(C.conversationId,C.id),$(C),V(C,"failed"),Q(m.id);}},onAuthenticated(){ae();},retry(m){let C=a.get(m);return C===void 0?{accepted:false,reason:"not-found"}:C.status==="sending"||u.has(m)?{accepted:false,reason:"in-flight"}:C.status==="failed"&&C.lastError?.retryable===false?{accepted:false,reason:"not-retryable"}:C.status!=="failed"&&!(C.status==="pending"&&C.resumePolicy==="manual")?{accepted:false,reason:"invalid-state"}:(C.resumePolicy==="manual"&&(C.resumePolicy="automatic",$(C)),A.add(C.id),se(C),{accepted:true})},cancel(m){let C=a.get(m);return C===void 0?{accepted:false,reason:"not-found"}:C.status==="sending"||u.has(m)?{accepted:false,reason:"in-flight"}:C.status!=="pending"?{accepted:false,reason:"invalid-state"}:C.attempts>0?{accepted:false,reason:"delivery-uncertain"}:(w(C),{accepted:true})},markConversationTerminated(m,C){let h=E(m);I.add(h);for(let S of [...a.values()])if(E(S)===h){if(S.status==="pending"&&S.attempts===0&&!u.has(S.id)){w(S);continue}ye(S.id,{code:Ec,reason:"unknown",displayCode:"unknown",message:`\u4F1A\u8BDD\u6210\u5458\u5173\u7CFB\u5DF2\u7EC8\u6B62\uFF1A${C}`,retryable:false});}},clearConversationTerminated(m){let C=E(m);I.delete(C),O(C);},markForLogout(m){for(let C of a.values())if(!(C.status!=="pending"&&C.status!=="sending"&&C.status!=="failed")){if(Se(C.id),C.resumePolicy="manual",m.policy==="fail"){let h={code:Ps,reason:"unknown",displayCode:"sessionLoggedOut",retryable:true};C.status="failed",C.lastError=h,L(C.id,{status:"failed",failure:h}),V(C,"failed");}$(C),Q(C.id);}},getPending(){return [...a.values()].map(Kn)},reset(m){m?.discardInFlight&&(y+=1,u.clear(),v.clear(),T.clear(),D.clear());for(let C of [...c.keys()])Se(C);for(let C of a.values())C.status==="sending"&&(C.status="pending",L(C.id,{status:"pending"}),$(C),V(C,"queued"),Q(C.id));},async hydrate(m=()=>true){if(!(e.storage===void 0||!m()))try{let C=await e.storage.getOutbox();if(!m())return;for(let h of C){if(!m())return;let S=Kn(h);if(S.status==="sent"){ne(S.id);continue}try{va(S.contentType,S.body,`outbox.hydrate(${S.id})`),S.body.video!==void 0&&(S.body={...S.body,video:Eo(S.body.video)});}catch(B){if(e.onStorageError?.(`Outbox \u6301\u4E45\u5316\u6761\u76EE\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u5220\u9664\uFF08id=${S.id}\uFF09`,B),!m())return;if(ne(S.id),e.domainState.getMessage(S.id)!==void 0){let P={code:Ps,reason:"unknown",displayCode:"unknown",message:"\u53D1\u9001\u8D26\u672C\u6B63\u6587\u635F\u574F\uFF0C\u5DF2\u505C\u6B62\u91CD\u8BD5",retryable:!1};L(S.id,{status:"failed",failure:P},{authoritativeFailure:!0});}continue}let _=S.status==="sending"?"pending":S.status,G={...S,status:_};if(a.set(S.id,G),R(G,G.createdAt),V(G,_==="pending"?"queued":_),!m())return;e.domainState.getMessage(S.id)!==void 0&&L(S.id,{status:_,failure:S.lastError===void 0?void 0:Je(S.lastError)});}}catch(C){m()&&e.onStorageError?.("Outbox \u56DE\u8BFB\u5931\u8D25",C);}}}}function jp(e){function n(o,i){e.emitter.emit({type:"error",error:{scope:"protocol",message:o,cause:i}});}let t=Ac(),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 hc(r))t.register(o,i);t.register(108,o=>e.emitter.emit({type:"notification",cmdId:o,name:"CM_DEVICE_ONLINE_STATUS_NOTIFY"}));for(let o of e.commandHandlers??[])t.register(o.command,o.handler);return {route(o,i,a){let s=t.resolve(o);if(s===void 0)return n(`\u672A\u8DEF\u7531\u7684\u547D\u4EE4 cmdId=${o}`,{command:o,bodyLength:i.byteLength}),false;try{return s(o,i,a),!0}catch(c){return n(`\u547D\u4EE4 ${o} \u5904\u7406\u5931\u8D25`,c),false}}}}var lR=new Set([32768,0]);function Nc(e,n={}){let t=n.readReportDebounceMs??400,r=n.readAckTimeoutMs??3e4,o=n.readMaxAttempts??2,i=Math.max(1,n.readReportMaxBatch??200),a=new Map,s=new Map,c=new Map,u=new Set,y=new Map;function I(p){return p!==e.getSelfId()}function v(p){let R=p.body.system?.eventType;return p.contentType==="voice"||p.contentType==="video"?false:!(p.conversationType==="direct"&&(R==="direct_contact_established"||R==="direct_contact_required"||R==="direct_message_refused"))}function T(p,R){if(R!=="")return e.domainState.getConversationMessage({conversationType:"direct",conversationId:p},R)?.sortKey}function A(p,R){let k=T(p,c.get(p)??""),V=new Set;for(let $ of e.domainState.getLoadedMessagesByConversation({conversationType:"direct",conversationId:p}))v($)&&I($.senderId)&&gn($.id)&&$.sortKey<=R&&(k===void 0||$.sortKey>k)&&V.add($.id);for(let $ of y.get(p)??[]){let ne=e.domainState.getConversationMessage({conversationType:"direct",conversationId:p},$);ne!==void 0&&I(ne.senderId)&&gn(ne.id)&&(ne.contentType==="voice"||ne.contentType==="video")&&V.add(ne.id);}return [...V].sort(($,ne)=>{let Se=T(p,$)??"",L=T(p,ne)??"";return Se<L?-1:Se>L?1:0})}function D(p){let R=s.get(p);R!==void 0&&(clearTimeout(R.timer),s.delete(p));}function b(p){let R=a.get(p);R!==void 0&&(clearTimeout(R),a.delete(p)),D(p),y.delete(p);let k=e.domainState.getReadState(p)?.readCursor??"";k!==""&&c.set(p,k);}function E(p,R){let k=s.get(p);if(k!==void 0){if(clearTimeout(k.timer),k.attempts<o&&e.isAuthenticated()){k.attempts+=1,e.sendFrame(k.frame),k.timer=setTimeout(()=>E(p,"timeout"),r);return}s.delete(p),e.emitter.emit({type:"error",error:{scope:"protocol",message:`\u5DF2\u8BFB\u4E0A\u62A5\u672A\u786E\u8BA4\uFF08${R}\uFF09\uFF0C\u5DF2\u8FBE\u91CD\u8BD5\u4E0A\u9650\uFF08${o}\uFF09`,code:4103}});}}function f(p){let R=e.domainState.getReadState(p)?.readCursor??"";if(R==="")return;let k=e.domainState.getConversationMessage({conversationType:"direct",conversationId:p},R);if(k===void 0||s.has(p))return;let V=A(p,k.sortKey);if(V.length===0){c.set(p,R);return}if(!e.isAuthenticated())return;let $=e.canSendReadReceipt?.(p);if($===false){c.set(p,R);return}if($===void 0&&e.canSendReadReceipt!==void 0)return;let ne=V.slice(0,i),Se=y.get(p),L=ne.filter(W=>Se?.has(W)===true),ye=V.length<=i?R:ne[ne.length-1],K=dn(),Q;try{Q=X({command:4103,body:rr.encode(rr.create({sFromId:BigInt(e.getSelfId()),sToId:BigInt(p),sMsgId:K,readResults:ne.map(W=>({sMsgId:Me(W),errcode:0})),readReceiptOff:0}))});}catch(W){e.emitter.emit({type:"error",error:{scope:"protocol",message:"\u5DF2\u8BFB\u4E0A\u62A5\u7EC4\u5E27\u5931\u8D25\uFF08\u975E\u6CD5 id\uFF09",cause:W}});return}e.sendFrame(Q),e.logger?.("read-report",{conversationId:p,notifyId:K,count:ne.length,remaining:V.length-ne.length}),s.set(p,{conversationId:p,cursor:ye,notifyId:K,frame:Q,explicitMediaIds:L,attempts:1,timer:setTimeout(()=>E(p,"timeout"),r)});}return {report(p){u.add(p);let R=a.get(p);if(R!==void 0&&clearTimeout(R),e.canSendReadReceipt?.(p)===false){b(p);return}a.set(p,setTimeout(()=>{a.delete(p),f(p);},t));},reportConsumedMedia(p,R){let k=e.domainState.getConversationMessage({conversationType:"direct",conversationId:p},R);if(k===void 0||!I(k.senderId)||k.contentType!=="voice"&&k.contentType!=="video"||(u.add(p),e.canSendReadReceipt?.(p)===false))return;let V=y.get(p);V===void 0&&(V=new Set,y.set(p,V)),V.add(R),e.isAuthenticated()&&f(p);},onReadAck({notifyId:p,errcode:R}){let k;for(let V of s.values())if(V.notifyId===p){k=V;break}if(k!==void 0)if(e.logger?.("read-report-ack",{conversationId:k.conversationId,notifyId:p,errcode:R}),lR.has(R)){clearTimeout(k.timer),s.delete(k.conversationId),c.set(k.conversationId,k.cursor);let V=y.get(k.conversationId);for(let $ of k.explicitMediaIds)V?.delete($);V?.size===0&&y.delete(k.conversationId),f(k.conversationId);}else E(k.conversationId,"rejected");},onAuthenticated(){for(let p of u)f(p);},suppress(p){if(p!==void 0){b(p);return}let R=new Set([...u,...a.keys(),...s.keys()]);for(let k of R)b(k);},resume(p){if(!u.has(p))return;let R=a.get(p);R!==void 0&&clearTimeout(R),a.set(p,setTimeout(()=>{a.delete(p),f(p);},t));},reset(){for(let p of a.values())clearTimeout(p);a.clear();for(let p of [...s.keys()])D(p);}}}function $p(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 ef(e,n={}){let t=n.intervalMs??1e4,r=n.maxMissed??3,o=n.probeTimeoutMs,i,a,s=false,c=0;function u(){a!==void 0&&(clearTimeout(a),a=void 0);}function y(){i!==void 0&&(clearInterval(i),i=void 0),u(),s=false,c=0;}function I(){if(c>=r){y(),e.onUnhealthy();return}e.sendPing(),c+=1;}return {start(){i===void 0&&(c=0,i=setInterval(I,t));},stop:y,onAck(){u(),s=false,c=0;},probe(){i!==void 0&&(s||(s=true,e.sendPing(),c=1,clearInterval(i),i=setInterval(I,t),o!==void 0&&(a=setTimeout(()=>{a=void 0,y(),e.onUnhealthy();},o))));},get running(){return i!==void 0},get missedCount(){return c}}}function uR(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)}function gR(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 mR(e){try{let n=new URL(e);return n.protocol==="ws:"||n.protocol==="wss:"}catch{return false}}function pR(e,n={}){let{transport:t,authProvider:r,endpointProvider:o,emitter:i}=e,a=n.heartbeatIntervalMs??1e4,s=n.heartbeatMaxMissed??3,c=n.foregroundProbeTimeoutMs??5e3,u=n.loginTimeoutMs??n.readTimeoutMs??3e4,y={baseDelayMs:n.reconnect?.baseDelayMs??1e3,maxDelayMs:n.reconnect?.maxDelayMs??3e4,jitter:n.reconnect?.jitter??true},I="idle",v=true,T=0,A,D=false,b=new Uint8Array(0),E=false,f=0,p="";function R(N){I!==N&&(e.logger?.("connection:state-transition",{from:I,to:N,selfId:p}),I=N,i.emit({type:"connection:changed",state:N}));}function k(N){i.emit({type:"error",error:N});}function V(N){t.send(uR(N)).catch(H=>{k({scope:"transport",message:"\u53D1\u9001\u5931\u8D25",cause:H});});}let $=ef({sendPing:()=>V(X({command:1})),onUnhealthy:()=>{e.logger?.("connection:heartbeat-unhealthy",{stateBefore:I,selfId:p}),k({scope:"transport",message:"\u5FC3\u8DF3\u8FDE\u7EED\u672A ACK\uFF0C\u94FE\u8DEF\u5224\u5B9A\u4E0D\u5065\u5EB7"}),G();}},{intervalMs:a,maxMissed:s,probeTimeoutMs:c}),ne=Wp({authProvider:r,sendFrame:V,logger:e.logger},{timeoutMs:u}),Se=e.sendStrategies??ro(),L=e.domainState?bc({domainState:e.domainState,sendFrame:V,getSelfId:()=>p,isAuthenticated:()=>I==="authenticated",sendStrategies:Se,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,storage:e.storage,onStorageError:(N,H)=>k({scope:"storage",message:N,cause:H}),onUpdated:N=>e.emitter.emit({type:"outbox:updated",conversation:N.conversation,item:N})},{ackTimeoutMs:n.readTimeoutMs??3e4}):void 0,Ce=e.domainState?Nc({domainState:e.domainState,sendFrame:V,getSelfId:()=>p,isAuthenticated:()=>I==="authenticated",emitter:i,logger:e.logger,canSendReadReceipt:e.canSendDirectReadReceipt},{readAckTimeoutMs:n.readTimeoutMs??3e4}):void 0,ye=e.domainState?mc({domainState:e.domainState,sendFrame:V,getSelfId:()=>p,isAuthenticated:()=>I==="authenticated",emitter:i,logger:e.logger}):void 0,K=e.domainState?Ic({domainState:e.domainState,sendFrame:V,getSelfId:()=>p,isAuthenticated:()=>I==="authenticated",strategies:e.recallStrategies}):void 0,Q=e.domainState!==void 0&&e.channelMessageDeletion!==void 0?fc({domainState:e.domainState,sendFrame:V,getSelfId:()=>p,isAuthenticated:()=>I==="authenticated",resolveProfile:e.channelMessageDeletion.resolveProfile,onPermissionDenied:e.channelMessageDeletion.onPermissionDenied}):void 0,W=e.domainState!==void 0&&K!==void 0?Cc({domainState:e.domainState,sendFrame:V,getSelfId:()=>p,onRecallAck:K.onRecallAck,onChannelMessageDeletionAck:N=>Q?.onDeleteAck(N),logger:e.logger}):[],Z=e.domainState?Hd({getSelfId:()=>p,sendFrame:V,isAuthenticated:()=>I==="authenticated",domainState:e.domainState,crypto:e.encryptSend?.crypto,resolvePublicKey:e.encryptSend?.resolvePublicKey,resolveGroupKey:e.encryptSend?.resolveGroupKey,strategies:e.editStrategies}):void 0,ce=e.domainState!==void 0&&Z!==void 0?tc({onEditAck:Z.onEditAck}):[],se=e.domainState!==void 0&&L!==void 0&&e.media!==void 0?gc({getSelfId:()=>p,domainState:e.domainState,outbox:L,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 ae(N,H){return se===void 0?Promise.reject(new Error(`${N} \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState \u6216 media \u7AEF\u53E3`)):p===""?Promise.reject(new Error(`${N} \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09`)):H(se)}function Ae(N,H,Re,oe){let we=e.domainState?.getConversationMessage({conversationId:Re.conversationId,conversationType:Re.conversationType},H);if(we===void 0||we.conversationId!==Re.conversationId||we.conversationType!==Re.conversationType||we.contentType!==oe||we.status!=="failed"||we.failure?.displayCode!=="media.uploadInterrupted")throw new Error(`${N} \u53EA\u5141\u8BB8\u66FF\u6362\u5F53\u524D\u7CBE\u786E\u4F1A\u8BDD\u4E2D\u5237\u65B0\u540E\u4E0A\u4F20\u4E2D\u65AD\u7684${oe==="video"?"\u89C6\u9891":"\u6587\u4EF6"}\u6D88\u606F`);return we}let O=e.domainState&&L?jp({domainState:e.domainState,outbox:L,onReadAck:Ce?.onReadAck,onSyncReadAck:ye?.onAck,onSyncReadDeliver:ye?.onDeliver,sendFrame:V,getSelfId:()=>p,emitter:i,logger:e.logger,decrypt:e.decrypt,commandHandlers:[...e.commandHandlers??[],...W,...ce]}):void 0;function w(){(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{});}function m(){A!==void 0&&(clearTimeout(A),A=void 0);}function C(N){return N!==null&&N.userId.trim()!==""&&N.token.trim()!==""}async function h(){try{return C(await r.getLoginContext())?"available":"missing"}catch(N){return k({scope:"login",message:"\u68C0\u67E5\u767B\u5F55\u4E0A\u4E0B\u6587\u5931\u8D25",cause:N}),"unavailable"}}function S(N,H){k({scope:"transport",message:N,cause:H}),$.stop(),R("disconnected");}function _(){if(A!==void 0)return;let N=$p(T,y);T+=1,A=setTimeout(()=>{A=void 0,Y();},N);}function G(){if(I==="reconnecting"||I==="suspended")return;let N=++f;$.stop(),ne.cancel(),L?.reset(),Ce?.reset(),K?.reset(),Q?.reset(),Z?.reset(),R("reconnecting"),w(),h().then(H=>{if(!(I!=="reconnecting"||N!==f)){if(H==="missing"){ee({code:0,reason:"token_expired"});return}_();}});}function B(N="offline"){let H=I==="idle"||I==="disconnected"||I==="disconnecting";N==="offline"&&(H||I==="suspended")||(m(),f+=1,$.stop(),ne.cancel(),se?.cancelAll(N),L?.reset({discardInFlight:N==="session-ended"}),Ce?.reset(),K?.reset(),Q?.reset(),Z?.reset(),H||R("suspended"),w());}function P(){if(!(I!=="suspended"||!v)){if(e.isOnline?.()===false){R("offline");return}T=0,Y();}}function ee(N){I==="idle"||I==="disconnected"||(e.logger?.("connection:auth-invalid-terminal",{reason:N.reason,code:`0x${N.code.toString(16)}`,stateBefore:I,selfId:p}),m(),f+=1,$.stop(),ne.cancel(),R("disconnected"),w(),se?.cancelAll("session-ended"),L?.reset({discardInFlight:true}),Ce?.reset(),K?.reset(),Q?.reset(),Z?.reset(),i.emit({type:"auth:invalid",issue:N}),Promise.resolve().then(()=>r.onAuthInvalid?.(N)).catch(H=>k({scope:"login",message:"onAuthInvalid \u56DE\u8C03\u5F02\u5E38",cause:H})));}function ue(N){switch(N.type){case "success":T=0,E=false,N.selfId&&(p=N.selfId),R("authenticated"),$.start(),L?.onAuthenticated(),Ce?.onAuthenticated(),ye?.onAuthenticated(),e.readStrategies?.onAuthenticated(),e.onAuthenticated?.();break;case "auth-invalid":if(N.issue.reason==="token_expired"&&N.issue.code!==0&&!E){E=true,k({scope:"login",message:"token \u5931\u6548\uFF0C\u81EA\u52A8\u91CD\u8BD5\u767B\u5F55\u4E00\u6B21"}),G();return}ee(N.issue);break;case "retry":k(N.error),G();break;}}async function Ee(){let N=await ne.login();N.type!=="canceled"&&I==="authenticating"&&ue(N);}async function Y(){if(!v){m(),R("suspended");return}if(e.isOnline?.()===false){m(),$.stop(),R("offline");return}let N=++f;R("connecting"),D=false,b=new Uint8Array(0);let H=await h();if(N!==f)return;if(H==="missing"){ee({code:0,reason:"token_expired"});return}if(H==="unavailable"){G();return}let Re;try{Re=await o.getEndpoints();}catch(we){if(N!==f)return;S("\u83B7\u53D6\u8FDE\u63A5\u7AEF\u70B9\u5931\u8D25",we);return}if(N!==f)return;let oe=Re[0];if(oe===void 0){S("\u65E0\u53EF\u7528\u8FDE\u63A5\u7AEF\u70B9\uFF08getEndpoints \u8FD4\u56DE\u7A7A\u6570\u7EC4\uFF09");return}if(!mR(oe.url)){S(`\u8FDE\u63A5\u7AEF\u70B9 URL \u975E\u6CD5\uFF1A${oe.url}`);return}try{await t.connect([oe]);}catch(we){if(N!==f)return;k({scope:"transport",message:"\u8FDE\u63A5\u5931\u8D25",cause:we}),G();return}N!==f&&w();}function te(N,H,Re){switch(N){case 258:ne.onLoginAck(H);break;case 2:$.onAck();break;case 264:if(e.logger!==void 0)try{let oe=nd.decode(H);e.logger("connection:kickout-received",{kickedUserId:String(oe.sUserId),selfId:p,matchesSelf:String(oe.sUserId)===p,entryIp:oe.ip,entryPort:oe.port,stateBefore:I});}catch(oe){e.logger("connection:kickout-decode-failed",{message:oe?.message,stateBefore:I});}ee({code:33040,reason:"kicked"});break;default:O?.route(N,H,{msgSeq:Re});break}}function Ie(){return I==="authenticating"||I==="authenticated"}function be(N){if(!Ie())return;let H=f;b=gR(b,new Uint8Array(N));let Re;try{let oe=ud(b);Re=oe.frames,b=oe.remainder;}catch(oe){k({scope:"protocol",message:"\u5E27\u89E3\u6790\u5931\u8D25\uFF0C\u8FDE\u63A5\u91CD\u7F6E",cause:oe}),G();return}for(let oe of Re){if(!Ie()||H!==f)return;te(oe.header.command,oe.body,oe.header.msgSeq);}}return t.on("open",()=>{I==="connecting"&&(R("authenticating"),Ee());}),t.on("message",({data:N})=>be(N)),t.on("error",({error:N})=>{k({scope:"transport",message:"transport \u9519\u8BEF",cause:N});}),t.on("close",({code:N,reason:H,wasClean:Re})=>{if($.stop(),e.logger?.("connection:transport-closed",{code:N,reason:H,wasClean:Re,stateBefore:I,intentionalClose:D,nextPath:D||I==="disconnecting"?"disconnected":I==="idle"||I==="disconnected"||I==="reconnecting"||I==="suspended"||I==="offline"?"ignored":"reconnect"}),D||I==="disconnecting"){D=false,R("disconnected");return}I==="idle"||I==="disconnected"||I==="reconnecting"||I==="suspended"||I==="offline"||G();}),{get state(){return I},setConnectionAllowed(N){v!==N&&(v=N,N||B("session-ended"));},async connect(){I==="connecting"||I==="authenticating"||I==="authenticated"||(m(),T=0,await Y());},disconnect(){if(m(),f+=1,$.stop(),ne.cancel(),L?.reset(),Ce?.reset(),K?.reset(),Q?.reset(),Z?.reset(),D=true,I==="idle"||I==="disconnected"){R("disconnected");return}R("disconnecting"),(t.state==="open"||t.state==="connecting"||t.state==="closing")&&t.close().catch(()=>{}),(t.state==="closed"||t.state==="idle")&&R("disconnected");},notifyOnline(){if(I==="offline"){T=0,Y();return}I==="reconnecting"&&(m(),Y());},notifyOffline(){I==="idle"||I==="disconnected"||I==="disconnecting"||I==="suspended"||I==="offline"||(m(),f+=1,$.stop(),ne.cancel(),se?.cancelAll("offline"),L?.reset(),Ce?.reset(),K?.reset(),Q?.reset(),Z?.reset(),R("offline"),w());},notifyVisible(){if(I==="suspended"){P();return}if(I==="offline"&&e.isOnline?.()===true){T=0,Y();return}if(I==="reconnecting"){m(),Y();return}if(I==="authenticated"){let N=f;h().then(H=>{if(!(I!=="authenticated"||N!==f)){if(H==="missing"){ee({code:0,reason:"token_expired"});return}$.probe();}});}},suspendForPageLifecycle:B,resumeFromPageLifecycle:P,suppressDirectReadReceipts(N){Ce?.suppress(N);},resumeDirectReadReceipts(N){Ce?.resume(N);},reportDirectMediaConsumed(N,H){Ce?.reportConsumedMedia(N,H),ye?.reportConsumedMedia?.(N,H);},sendText(N){if(L===void 0)throw new Error("sendText \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(p==="")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 L.enqueueText(N)},sendContact(N){if(L===void 0)throw new Error("sendContact \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(p==="")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 L.enqueueContact(N)},forwardMessages(N){if(L===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");let H=e.domainState;if(H===void 0)throw new Error("forwardMessages \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(p==="")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 rc({outbox:L,sendStrategies:Se,resolveCurrentMessage:Re=>H.getConversationMessage(Re,Re.id)},N)},recallMessage(N){return K===void 0?Promise.reject(new Error("recallMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):K.recall(N)},deleteChannelMessageForEveryone(N){return Q===void 0?Promise.reject(new Error("deleteChannelMessageForEveryone \u4E0D\u53EF\u7528\uFF1A\u672A\u88C5\u914D CHANNEL \u7BA1\u7406\u5458\u5220\u9664\u4F9D\u8D56")):Q.deleteForEveryone(N)},editMessage(N){return Z===void 0?Promise.reject(new Error("editMessage \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09")):Z.edit(N)},sendImage(N){return ae("sendImage",H=>H.sendImage(N))},sendVideo(N){return ae("sendVideo",H=>H.sendVideo(N))},sendVoice(N){return ae("sendVoice",H=>H.sendVoice(N))},sendFile(N){return ae("sendFile",H=>H.sendFile(N))},sendGif(N){return ae("sendGif",H=>H.sendGif(N))},sendMediaAlbum(N){return ae("sendMediaAlbum",H=>H.sendMediaAlbum(N))},sendExpression(N){if(L===void 0)throw new Error("sendExpression \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(p==="")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 Yp({outbox:L},N)},sendGame(N){if(L===void 0)throw new Error("sendGame \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(p==="")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 zp({outbox:L,randomUint32:e.randomUint32},N)},sendMiniProgram(N){if(L===void 0)throw new Error("sendMiniProgram \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(p==="")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 Rp({outbox:L},N)},sendTransfer(N){if(L===void 0)throw new Error("sendTransfer \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(p==="")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 Vp({outbox:L},N)},sendGift(N){if(L===void 0)throw new Error("sendGift \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");if(p==="")throw new Error("sendGift \u9700\u5148\u6210\u529F\u767B\u5F55\u4E00\u6B21\u4EE5\u83B7\u53D6\u672C\u7AEF id\uFF08\u5C1A\u672A\u9274\u6743\u8FC7\uFF09");return mp({outbox:L},N)},replaceInterruptedVideo(N,H){return ae("replaceInterruptedVideo",Re=>{let oe=Ae("replaceInterruptedVideo",N,H,"video");return Re.replaceVideo(N,oe.createdAt,{...H,...H.caption===void 0&&oe.body.video?.describe!==void 0?{caption:oe.body.video.describe}:{},...H.refMessageId===void 0&&oe.refMessageId!==void 0?{refMessageId:oe.refMessageId}:{}})})},replaceInterruptedFile(N,H){return ae("replaceInterruptedFile",Re=>{let oe=Ae("replaceInterruptedFile",N,H,"file");return Re.replaceFile(N,oe.createdAt,{...H,...H.refMessageId===void 0&&oe.refMessageId!==void 0?{refMessageId:oe.refMessageId}:{}})})},cancelMedia(N){se?.cancel(N);},cancelMediaUpload(N){return se?.cancel(N)??false},retryMediaUpload(N,H){return se?.retry(N,H)??false},invalidateMediaAssetCacheWrites(){se?.invalidateAssetCacheWrites();},disposeMediaTasks(){se?.dispose();},retryMessage(N){se?.retry(N)!==true&&L?.retry(N);},retryOutboxMessage(N){return L?.retry(N)??{accepted:false,reason:"not-found"}},cancelOutboxMessage(N){return L?.cancel(N)??{accepted:false,reason:"not-found"}},markOutboxConversationTerminated(N,H){L?.markConversationTerminated(N,H);},clearOutboxConversationTerminated(N){L?.clearConversationTerminated(N);},terminateConversationSending(N,H){se?.cancelConversation(N),L?.markConversationTerminated(N,H);},markRead(N,H,Re){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 oe=Re??e.domainState.getSession(N)?.type;if(oe===void 0)throw new Error(`markRead \u65E0\u6CD5\u786E\u5B9A\u4F1A\u8BDD\u7C7B\u578B\uFF08conversationId=${N}\uFF09\uFF0C\u7981\u6B62\u9ED8\u8BA4 direct`);if(oe==="direct"){if(Ce===void 0)throw new Error("markRead \u4E0D\u53EF\u7528\uFF1AcreateImConnection \u672A\u6CE8\u5165 domainState\uFF08\u4EC5\u8FDE\u63A5\u6A21\u5F0F\uFF09");e.domainState.advanceRead(N,H),Ce.report(N),ye?.report(N);return}let we=e.readStrategies?.resolve(oe);if(we===void 0)throw new Error(`markRead \u6682\u4E0D\u652F\u6301\u4F1A\u8BDD\u7C7B\u578B\u300C${oe}\u300D\uFF1A\u672A\u6CE8\u518C\u5BF9\u5E94\u5DF2\u8BFB\u7B56\u7565\uFF0C\u7981\u6B62 fallthrough direct`);return we.markRead({conversationId:N,readCursor:H})},sendFrame(N){V(N);},onChatAck(N){L?.onChatAck(N);},getPendingOutbox(){return L?.getPending()??[]},async hydrateOutbox(N){await L?.hydrate(N);},markOutboxForLogout(N){L?.markForLogout({policy:N});}}}var nf={error:0,warn:1,info:2,debug:3,trace:4},fR=8,_c=50,Dc=100,yR="[REDACTED]",IR="[REDACTED_PRIVATE_KEY]",CR="[SIGNED_URL_REDACTED]",SR=/https?:\/\/[^\s<>"'`,。;!)\])}]+/gi,AR=/\b(authorization|cookie|set-cookie)(\s*[:=]\s*)[^\r\n]*/gi,hR=/(["'])(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,RR=/\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,MR=/-----BEGIN ([A-Z ]*PRIVATE KEY)-----[\s\S]*?-----END \1-----/gi;function ER(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function TR(e){let n=ER(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 vR(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 bR(e){return e.replace(SR,n=>vR(n)?CR:n)}function Gc(e){return bR(e).replace(MR,IR).replace(AR,"$1$2[REDACTED]").replace(hR,"$1$2$1$3[REDACTED]").replace(RR,"$1$2[REDACTED]")}function NR(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 Uc(e){let n=new WeakSet;function t(r,o,i){if(i!==void 0&&TR(i))return yR;if(r==null||typeof r=="number"||typeof r=="boolean")return r;if(typeof r=="bigint")return r.toString();if(typeof r=="string")return Gc(r);if(typeof r=="function")return `[Function ${r.name||"anonymous"}]`;if(typeof r=="symbol")return r.toString();if(o>=fR)return "[MAX_DEPTH]";let a=NR(r);if(a!==void 0)return a;if(r instanceof Date)return r.toISOString();if(r instanceof Error){let u=r;return {name:u.name,message:Gc(u.message),...u.code===void 0?{}:{code:u.code},...u.category===void 0?{}:{category:u.category},...u.retryable===void 0?{}:{retryable:u.retryable},...u.stack===void 0?{}:{stack:Gc(u.stack)},...u.data===void 0?{}:{data:t(u.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 u=r.slice(0,_c).map(y=>t(y,o+1));return r.length>_c&&u.push({omittedItems:r.length-_c}),u}let s=Object.entries(r),c={};for(let[u,y]of s.slice(0,Dc))c[u]=t(y,o+1,u);return s.length>Dc&&(c.omittedKeys=s.length-Dc),c}return t(e,0)}function _R(e){let n=new Set(e.categories),t=e.now??Date.now,r=0,o=e.sink,i=false;function a(c,u){return e.enabled&&o!==void 0&&nf[c]<=nf[e.level]&&n.has(u)}function s(c){if(i||e.fallbackSink===void 0)return;i=true;let u={message:"diagnostic-sink-failed"};try{u={message:"diagnostic-sink-failed",data:Uc(c)};}catch{}try{e.fallbackSink.write(Object.freeze({timestamp:t(),sequence:++r,level:"error",layer:"sdk",category:"session",event:"diagnostic-sink-failed",error:u}));}catch{}}return {isEnabled:a,record(c,u,y,I,v){if(!a(c,y))return;let T;try{T={...e.getRuntimeContext?.(),...v?.()};}catch(E){T={error:{message:"diagnostic-payload-factory-failed",data:E}};}let A;try{A=t();}catch{A=Date.now();}let D=++r,b;try{b=Uc({timestamp:A,sequence:D,level:c,layer:u,category:y,event:I,...T});}catch{b={timestamp:A,sequence:D,level:c,layer:u,category:y,event:I,error:{message:"diagnostic-sanitization-failed"}};}try{o?.write(Object.freeze(b));}catch(E){o=void 0,s(E);}}}}function DR(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 GR(){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 tf(e={}){let n=e.defaultTimeoutMs??3e4,t=new Map,r=0;function o(i){let a=t.get(i);if(a!==void 0)return clearTimeout(a.timer),t.delete(i),a}return {nextSeq(){return r=r>=4294967295?1:r+1,r},track(i,a){if(t.has(i))throw new Error(`\u91CD\u590D\u767B\u8BB0\u5728\u9014\u8BF7\u6C42 msgSeq=${i}\uFF08\u5E94\u7531 nextSeq() \u4FDD\u8BC1\u552F\u4E00\uFF09`);return new Promise((s,c)=>{let u=setTimeout(()=>{t.delete(i),c(new Error(`\u8BF7\u6C42\u8D85\u65F6\uFF1AmsgSeq=${i}\uFF0C\u7B49\u5F85 ${a??n}ms \u65E0\u54CD\u5E94`));},a??n);t.set(i,{resolve:s,reject:c,timer:u});})},resolve(i,a){let s=o(i);return s?.resolve(a),s!==void 0},reject(i,a){let s=o(i);return s?.reject(a),s!==void 0},rejectAll(i){for(let a of [...t.values()])clearTimeout(a.timer),a.reject(i);t.clear();},get pendingCount(){return t.size}}}function UR(e){let n=false,t=false,r=false,o,i,a=tf(),s,c,u={status:"idle"},y=new Set;function I(E){try{E({...u});}catch{e.onListenerError();}}function v(E){u=E;for(let f of [...y])I(f);}function T(){c&&clearTimeout(c.timer),c=void 0;}function A(E,f){T(),r=E!=="server-rejected";let p={status:"error",error:E,requiresReconnect:r,...f===void 0?{}:{serverCode:f}};o=r?p:void 0,v(i?p:{status:"idle"});}function D(){if(t||r||c||!i)return;if(!n){v({status:"pending"});return}if(i.token===s?.token){v(s.snapshot);return}let E=i,f=a.nextSeq(),p=X({command:261,msgSeq:f,body:Jt.encode(Jt.create({sUserId:BigInt(E.userId),nPushType:20,nPushTokenType:0,sPushToken:E.token}))}),R={...E,msgSeq:f,timer:setTimeout(()=>A("timeout"),e.timeoutMs??3e4)};if(c=R,v({status:"syncing"}),!(c!==R||t||!n)){if(!i){T();return}try{e.sendFrame(p);}catch{c===R&&A("send-failed");}}}return {api:{setWebSubscription({userId:E,subscription:f}){if(t)throw new Error("\u63A8\u9001\u7ED1\u5B9A\u5DF2\u9500\u6BC1");if(!/^[1-9]\d*$/.test(E)||E!==e.getSelfId())throw new Error("\u63A8\u9001\u8BA2\u9605\u8D26\u53F7\u4E0E\u5F53\u524D\u4F1A\u8BDD\u4E0D\u4E00\u81F4");let{endpoint:p,keys:R,expirationTime:k}=f;if(!p||!R?.p256dh||!R.auth)throw new Error("Web Push \u8BA2\u9605\u7F3A\u5C11 endpoint \u6216\u52A0\u5BC6\u5BC6\u94A5");let V=new URL(p);if(V.protocol!=="https:"||V.username||V.password)throw new Error("Web Push endpoint \u5FC5\u987B\u662F HTTPS \u5730\u5740");if(k!=null&&(!Number.isFinite(k)||k<=Date.now()))throw new Error("Web Push \u8BA2\u9605\u5DF2\u8FC7\u671F");let $=JSON.stringify({endpoint:p,expirationTime:k??null,keys:{p256dh:R.p256dh,auth:R.auth}});i={userId:E,token:$},o?v(o):c&&v({status:"syncing"}),D();},clear(){t||(i=void 0,s=void 0,v({status:"idle"}));},snapshot:()=>({...u}),subscribe(E){return t||y.add(E),I(E),()=>{y.delete(E);}}},commandHandlers:[{command:262,handler(E,f,p){if(!c||!n||t||r||p?.msgSeq!==c.msgSeq)return;let R;try{R=Go.decode(f);}catch{A("invalid-ack");return}let k=R.nErr===0&&(String(R.sUserId)===c.userId||String(R.sUserId)==="0");if(!k&&String(R.sUserId)!==c.userId)return;let V=c;if(T(),!k&&R.nErr!==32768){A("server-rejected",Number(R.nErr));return}if(s={token:V.token,snapshot:k?{status:"unconfirmed",serverCode:Number(R.nErr)}:{status:"synced"}},!i){v({status:"idle"});return}D();}}],setAuthenticated(E){t||n===E||(n=E,T(),s=void 0,r=false,o=void 0,i&&D());},dispose(){t||(t=true,T(),i=void 0,s=void 0,v({status:"disposed"}),y.clear());}}}var kR=200,xR=20;function BR(e){return e instanceof Gt&&e.status>=500}function FR(e){let n=e.maxBatchesPerEndpoint??kR,t=e.reducedBatchLimit??xR,r=e.yieldToEventLoop??(()=>Promise.resolve()),o=false,i=false;async function a(c,u){let y=[],I="",v=0,T;async function A(){try{return await c.pullBatch({deliveredMsgInfos:y,...T===void 0?{}:{limit:T}})}catch(D){if(T!==void 0||!BR(D))throw D;return T=t,e.logger?.("sync-batch-reduced",{endpoint:c.endpoint,limit:T,status:D.status}),await c.pullBatch({deliveredMsgInfos:y,limit:T})}}for(let D=1;;D++){if(D>n)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${c.endpoint}' \u9012\u5F52\u8D85\u8FC7 ${n} \u6279\u4FDD\u62A4\u4E0A\u9650\uFF08\u7591\u5F02\u5E38/\u672A\u7EC8\u6B62\uFF09`);let b=await A();if(b.messages.length>0){e.domainState.upsertMessages(b.messages,"offline"),v+=b.messages.length;for(let p of b.messages){let R={conversationType:p.conversationType,conversationId:p.conversationId};u.set(de(R),R);}}let E=b.batchSize>0;if(e.logger?.("sync-batch",{endpoint:c.endpoint,batchNo:D,fetched:b.batchSize,newMessages:b.messages.length,responseBytes:b.responseBytes,endpointTotal:v,hasMore:E}),!E)break;let f=b.deliveredMsgInfos.at(-1)?.msgId??"";if(f!==""&&f===I)throw new Error(`\u79BB\u7EBF\u540C\u6B65\u7AEF\u70B9 '${c.endpoint}' \u7EED\u70B9\u672A\u524D\u8FDB\uFF08\u670D\u52A1\u7AEF\u7591\u91CD\u590D\u8FD4\u56DE\u540C\u6279 msgId=${f}\uFF09\uFF0C\u4E2D\u6B62\u907F\u514D\u6B7B\u5FAA\u73AF`);I=f,y=b.deliveredMsgInfos,await r();}return v}async function s(){let c=new Map,u=0;for(let y of e.pullers)u+=await a(y,c);e.logger?.("sync-done",{totalMessages:u,conversations:c.size,done:true}),e.emitter.emit({type:"sync:complete",conversations:[...c.values()]});}return {async sync(){if(o){i=true;return}o=true;try{do{i=!1;try{await s();}catch(c){e.emitter.emit({type:"error",error:{scope:"sync",message:"\u79BB\u7EBF\u540C\u6B65\u5931\u8D25",cause:c}});}}while(i)}finally{o=false;}}}}
|
|
2
|
+
export{iS as $,hh as $a,gs as A,Yd as Aa,qI as B,vs as Ba,Vg as C,Xd as Ca,Kr as D,fA as Da,TC as E,ke as Ea,GC as F,In as Fa,Hg as G,zn as Ga,UC as H,de as Ha,kC as I,$r as Ia,Jg as J,zd as Ja,xC as K,Xm as Ka,BC as L,mA as La,FC as M,yA as Ma,wC as N,IA as Na,PC as O,ih as Oa,LC as P,sh as Pa,ZC as Q,ah as Qa,WC as R,dh as Ra,HC as S,ch as Sa,JC as T,lh as Ta,YC as U,ph as Ua,XC as V,fh as Va,zC as W,yh as Wa,qC as X,Dp as Xa,jC as Y,Up as Ya,$C as Z,kp as Za,tS as _,Ch as _a,Qp as a,sS as aa,Mh as ab,Jh as b,aS as ba,vh as bb,pe as c,SS as ca,Nh as cb,Ue as d,_S as da,_h as db,Br as e,yo as ea,Dh as eb,_I as f,sy as fa,Gh as fb,DI as g,ga,Uh as gb,sn as h,Yn as ha,kh as hb,wr as i,VS as ia,xh as ib,dn as j,KS as ja,Bh as jb,En as k,Xn as ka,wh as kb,Tn as l,dy as la,Rc as lb,Qe as m,Vd as ma,Ph as mb,RA as n,Dm as na,Vh as nb,Co as o,Gm as oa,Pp as ob,jn as p,Um as pa,pR as pb,ut as q,JS as qa,_R as qb,sa as r,km as ra,DR as rb,Ny as s,dA as sa,GR as sb,gt as t,Ts as ta,UR as tb,ca as u,Bm as ua,ws as ub,Mo as v,Jd as va,Kp as vb,Ye as w,Gt as wa,Lh as wb,us as x,pp as xa,Zh as xb,zI as y,no as ya,FR as yb,_A as z,Fm as za};
|