@libp2p/webrtc 3.1.10-0ee4f784 → 3.1.10-20d5f220

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/index.min.js CHANGED
@@ -27,7 +27,7 @@ if (cid) {
27
27
  doSomethingWithCID(cid)
28
28
  }
29
29
  `});var q1=ye(()=>{V1();Is();Ur();Y0();Zi()});var Q0,YT,H1=ye(()=>{g1();m1();x1();b1();w1();K0();v1();q0();E1();C1();L1();U1();O1();F1();q1();Q0={...L0,...N0,...P0,...U0,...O0,...F0,...M0,...V0,...H0,...z0},YT={...Z0,...X0}});function oi(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}var Rs=ye(()=>{});function Ls(e=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?oi(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}var j0=ye(()=>{Rs()});function G1(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var z1,J0,O3,Ns,eu=ye(()=>{H1();j0();z1=G1("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),J0=G1("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=Ls(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),O3={utf8:z1,"utf-8":z1,hex:Q0.base16,latin1:J0,ascii:J0,binary:J0,...Q0},Ns=O3});var W1={};ue(W1,{toString:()=>F3});function F3(e,t="utf8"){let r=Ns[t];if(!r)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var $1=ye(()=>{eu()});var Y1={};ue(Y1,{fromString:()=>K3});function K3(e,t="utf8"){let r=Ns[t];if(!r)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?oi(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var Z1=ye(()=>{eu();Rs()});var X1={};ue(X1,{concat:()=>M3});function M3(e,t){t||(t=e.reduce((i,o)=>i+o.length,0));let r=Ls(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return oi(r)}var Q1=ye(()=>{j0();Rs()});var ru=$((a_,n2)=>{"use strict";var j1=Zp(),si=s1(),{names:Qi}=c1(),{toString:Ps}=($1(),Ji(W1)),{fromString:V3}=(Z1(),Ji(Y1)),{concat:q3}=(Q1(),Ji(X1)),ai={};for(let e in Qi){let t=e;ai[Qi[t]]=t}Object.freeze(ai);function H3(e){if(!(e instanceof Uint8Array))throw new Error("must be passed a Uint8Array");return Ps(e,"base16")}function z3(e){return V3(e,"base16")}function G3(e){if(!(e instanceof Uint8Array))throw new Error("must be passed a Uint8Array");return Ps(j1.encode("base58btc",e)).slice(1)}function W3(e){let t=e instanceof Uint8Array?Ps(e):e;return j1.decode("z"+t)}function J1(e){if(!(e instanceof Uint8Array))throw new Error("multihash must be a Uint8Array");if(e.length<2)throw new Error("multihash too short. must be > 2 bytes.");let t=si.decode(e);if(!t2(t))throw new Error(`multihash unknown function code: 0x${t.toString(16)}`);e=e.slice(si.decode.bytes);let r=si.decode(e);if(r<0)throw new Error(`multihash invalid length: ${r}`);if(e=e.slice(si.decode.bytes),e.length!==r)throw new Error(`multihash length inconsistent: 0x${Ps(e,"base16")}`);return{code:t,name:ai[t],length:r,digest:e}}function $3(e,t,r){if(!e||t===void 0)throw new Error("multihash encode requires at least two args: digest, code");let n=e2(t);if(!(e instanceof Uint8Array))throw new Error("digest should be a Uint8Array");if(r==null&&(r=e.length),r&&e.length!==r)throw new Error("digest length should be equal to specified length.");let i=si.encode(n),o=si.encode(r);return q3([i,o,e],i.length+o.length+e.length)}function e2(e){let t=e;if(typeof e=="string"){if(Qi[e]===void 0)throw new Error(`Unrecognized hash function named: ${e}`);t=Qi[e]}if(typeof t!="number")throw new Error(`Hash function code should be a number. Got: ${t}`);if(ai[t]===void 0&&!tu(t))throw new Error(`Unrecognized function code: ${t}`);return t}function tu(e){return e>0&&e<16}function t2(e){return!!(tu(e)||ai[e])}function r2(e){J1(e)}function Y3(e){return r2(e),e.subarray(0,2)}n2.exports={names:Qi,codes:ai,toHexString:H3,fromHexString:z3,toB58String:G3,fromB58String:W3,decode:J1,encode:$3,coerceCode:e2,isAppCode:tu,validate:r2,prefix:Y3,isValidCode:t2}});var s4={};ue(s4,{webRTC:()=>o4,webRTCDirect:()=>i4});var Z=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}},ui=class e extends Error{code;constructor(t="Unexpected Peer"){super(t),this.code=e.code}static code="ERR_UNEXPECTED_PEER"},Kr=class e extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=e.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var eo=Symbol.for("@libp2p/transport");var mu;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(mu||(mu={}));var ct=ke(Eu(),1);var zs={};ue(zs,{base32:()=>Et,base32hex:()=>z2,base32hexpad:()=>W2,base32hexpadupper:()=>$2,base32hexupper:()=>G2,base32pad:()=>q2,base32padupper:()=>H2,base32upper:()=>V2,base32z:()=>Y2});function U2(e,t){if(e.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<e.length;i++){var o=e.charAt(i),s=o.charCodeAt(0);if(r[s]!==255)throw new TypeError(o+" is ambiguous");r[s]=i}var a=e.length,c=e.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var p=0,g=0,m=0,v=d.length;m!==v&&d[m]===0;)m++,p++;for(var x=(v-m)*f+1>>>0,A=new Uint8Array(x);m!==v;){for(var E=d[m],w=0,B=x-1;(E!==0||w<g)&&B!==-1;B--,w++)E+=256*A[B]>>>0,A[B]=E%a>>>0,E=E/a>>>0;if(E!==0)throw new Error("Non-zero carry");g=w,m++}for(var D=x-g;D!==x&&A[D]===0;)D++;for(var R=c.repeat(p);D<x;++D)R+=e.charAt(A[D]);return R}function h(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var p=0;if(d[p]!==" "){for(var g=0,m=0;d[p]===c;)g++,p++;for(var v=(d.length-p)*u+1>>>0,x=new Uint8Array(v);d[p];){var A=r[d.charCodeAt(p)];if(A===255)return;for(var E=0,w=v-1;(A!==0||E<m)&&w!==-1;w--,E++)A+=a*x[w]>>>0,x[w]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");m=E,p++}if(d[p]!==" "){for(var B=v-m;B!==v&&x[B]===0;)B++;for(var D=new Uint8Array(g+(v-B)),R=g;B!==v;)D[R++]=x[B++];return D}}}function y(d){var p=h(d);if(p)return p;throw new Error(`Non-${t} character`)}return{encode:l,decodeUnsafe:h,decode:y}}var O2=U2,F2=O2,Su=F2;var d4=new Uint8Array(0);var Cu=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},jt=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var Au=e=>new TextEncoder().encode(e),Du=e=>new TextDecoder().decode(e);var Ms=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Vs=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Iu(this,t)}},qs=class{constructor(t){this.decoders=t}or(t){return Iu(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Iu=(e,t)=>new qs({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),Hs=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Ms(t,r,n),this.decoder=new Vs(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},wn=({name:e,prefix:t,encode:r,decode:n})=>new Hs(e,t,r,n),mr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=Su(r,t);return wn({prefix:e,name:t,encode:n,decode:o=>jt(i(o))})},K2=(e,t,r,n)=>{let i={};for(let f=0;f<t.length;++f)i[t[f]]=f;let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),a=0,c=0,u=0;for(let f=0;f<o;++f){let l=i[e[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|l,a+=r,a>=8&&(a-=8,s[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return s},M2=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,o="",s=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],s+=8;s>r;)s-=r,o+=t[i&a>>s];if(s&&(o+=t[i&a<<r-s]),n)for(;o.length*r&7;)o+="=";return o},Re=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>wn({prefix:t,name:e,encode(i){return M2(i,n,r)},decode(i){return K2(i,n,r,e)}});var Et=Re({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),V2=Re({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),q2=Re({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),H2=Re({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),z2=Re({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),G2=Re({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),W2=Re({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),$2=Re({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Y2=Re({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Gs={};ue(Gs,{base58btc:()=>Ne,base58flickr:()=>Z2});var Ne=mr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Z2=mr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ws={};ue(Ws,{base64:()=>vn,base64pad:()=>X2,base64url:()=>Q2,base64urlpad:()=>j2});var vn=Re({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),X2=Re({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Q2=Re({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),j2=Re({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});ct.default.formatters.b=e=>e==null?"undefined":Ne.baseEncode(e);ct.default.formatters.t=e=>e==null?"undefined":Et.baseEncode(e);ct.default.formatters.m=e=>e==null?"undefined":vn.baseEncode(e);ct.default.formatters.p=e=>e==null?"undefined":e.toString();ct.default.formatters.c=e=>e==null?"undefined":e.toString();ct.default.formatters.k=e=>e==null?"undefined":e.toString();ct.default.formatters.a=e=>e==null?"undefined":e.toString();function J2(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function Je(e){let t=J2(`${e}:trace`);return ct.default.enabled(`${e}:trace`)&&ct.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,ct.default)(`${e}:trace`)),Object.assign((0,ct.default)(e),{error:(0,ct.default)(`${e}:error`),trace:t})}var Tu=Symbol.for("@libp2p/peer-id");var $s={};ue($s,{base10:()=>ey});var ey=mr({prefix:"9",name:"base10",alphabet:"0123456789"});var Ys={};ue(Ys,{base16:()=>ty,base16upper:()=>ry});var ty=Re({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),ry=Re({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Zs={};ue(Zs,{base2:()=>ny});var ny=Re({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Xs={};ue(Xs,{base256emoji:()=>cy});var _u=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),iy=_u.reduce((e,t,r)=>(e[r]=t,e),[]),oy=_u.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function sy(e){return e.reduce((t,r)=>(t+=iy[r],t),"")}function ay(e){let t=[];for(let r of e){let n=oy[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var cy=wn({prefix:"\u{1F680}",name:"base256emoji",encode:sy,decode:ay});var Qs={};ue(Qs,{base36:()=>uy,base36upper:()=>fy});var uy=mr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),fy=mr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var js={};ue(js,{base8:()=>ly});var ly=Re({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Js={};ue(Js,{identity:()=>hy});var hy=wn({prefix:"\0",name:"identity",encode:e=>Du(e),decode:e=>Au(e)});var L4=new TextEncoder,N4=new TextDecoder;var ta={};ue(ta,{identity:()=>xr});var yy=Lu,ku=128,gy=127,my=~gy,xy=Math.pow(2,31);function Lu(e,t,r){t=t||[],r=r||0;for(var n=r;e>=xy;)t[r++]=e&255|ku,e/=128;for(;e&my;)t[r++]=e&255|ku,e>>>=7;return t[r]=e|0,Lu.bytes=r-n+1,t}var by=ea,wy=128,Ru=127;function ea(e,n){var r=0,n=n||0,i=0,o=n,s,a=e.length;do{if(o>=a)throw ea.bytes=0,new RangeError("Could not decode varint");s=e[o++],r+=i<28?(s&Ru)<<i:(s&Ru)*Math.pow(2,i),i+=7}while(s>=wy);return ea.bytes=o-n,r}var vy=Math.pow(2,7),Ey=Math.pow(2,14),Sy=Math.pow(2,21),Cy=Math.pow(2,28),Ay=Math.pow(2,35),Dy=Math.pow(2,42),By=Math.pow(2,49),Iy=Math.pow(2,56),Ty=Math.pow(2,63),_y=function(e){return e<vy?1:e<Ey?2:e<Sy?3:e<Cy?4:e<Ay?5:e<Dy?6:e<By?7:e<Iy?8:e<Ty?9:10},ky={encode:yy,decode:by,encodingLength:_y},Ry=ky,fi=Ry;var li=(e,t=0)=>[fi.decode(e,t),fi.decode.bytes],En=(e,t,r=0)=>(fi.encode(e,t,r),t),Sn=e=>fi.encodingLength(e);var Ft=(e,t)=>{let r=t.byteLength,n=Sn(e),i=n+Sn(r),o=new Uint8Array(i+r);return En(e,o,0),En(r,o,n),o.set(t,i),new Cn(e,r,t,o)},Vr=e=>{let t=jt(e),[r,n]=li(t),[i,o]=li(t.subarray(n)),s=t.subarray(n+o);if(s.byteLength!==i)throw new Error("Incorrect length");return new Cn(r,i,s,t)},Nu=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Cu(e.bytes,r.bytes)}},Cn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var Pu=0,Ly="identity",Uu=jt,Ny=e=>Ft(Pu,Uu(e)),xr={code:Pu,name:Ly,encode:Uu,digest:Ny};var ia={};ue(ia,{sha256:()=>Ye,sha512:()=>Py});var na=({name:e,code:t,encode:r})=>new ra(e,t,r),ra=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Ft(this.code,r):r.then(n=>Ft(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Fu=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),Ye=na({name:"sha2-256",code:18,encode:Fu("SHA-256")}),Py=na({name:"sha2-512",code:19,encode:Fu("SHA-512")});var Ku=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return Oy(r,oa(e),t||Ne.encoder);default:return Fy(r,oa(e),t||Et.encoder)}};var Mu=new WeakMap,oa=e=>{let t=Mu.get(e);if(t==null){let r=new Map;return Mu.set(e,r),r}return t},St=class e{constructor(t,r,n,i){this.code=r,this.version=t,this.multihash=n,this.bytes=i,this["/"]=i}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:t,multihash:r}=this;if(t!==hi)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Ky)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.createV0(r)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:t,digest:r}=this.multihash,n=Ft(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&Nu(t.multihash,n.multihash)}toString(t){return Ku(this,t)}toJSON(){return{"/":Ku(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:o,bytes:s}=r;return new e(n,i,o,s||Vu(n,i,o.bytes))}else if(r[My]===!0){let{version:n,multihash:i,code:o}=r,s=Vr(i);return e.create(n,o,s)}else return null}static create(t,r,n){if(typeof r!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(r!==hi)throw new Error(`Version 0 CID must use dag-pb (code: ${hi}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=Vu(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,hi,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=jt(t.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let o=i.subarray(r.multihashSize-r.digestSize),s=new Cn(r.multihashCode,r.digestSize,o,i);return[r.version===0?e.createV0(s):e.createV1(r.codec,s),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[l,h]=li(t.subarray(r));return r+=h,l},i=n(),o=hi;if(i===18?(i=0,r=0):o=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let s=r,a=n(),c=n(),u=r+c,f=u-s;return{version:i,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:u}}static parse(t,r){let[n,i]=Uy(t,r),o=e.decode(i);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return oa(o).set(n,t),o}},Uy=(e,t)=>{switch(e[0]){case"Q":{let r=t||Ne;return[Ne.prefix,r.decode(`${Ne.prefix}${e}`)]}case Ne.prefix:{let r=t||Ne;return[Ne.prefix,r.decode(e)]}case Et.prefix:{let r=t||Et;return[Et.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},Oy=(e,t,r)=>{let{prefix:n}=r;if(n!==Ne.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let o=r.encode(e).slice(1);return t.set(n,o),o}else return i},Fy=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let o=r.encode(e);return t.set(n,o),o}else return i},hi=112,Ky=18,Vu=(e,t,r)=>{let n=Sn(e),i=n+Sn(t),o=new Uint8Array(i+r.byteLength);return En(e,o,0),En(t,o,n),o.set(r,i),o},My=Symbol.for("@ipld/js-cid/CID");var Kt={...Js,...Zs,...js,...$s,...Ys,...zs,...Qs,...Gs,...Ws,...Xs},X4={...ia,...ta};function Oe(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}var Vy=Symbol.for("nodejs.util.inspect.custom"),qu=Object.values(Kt).map(e=>e.decoder).reduce((e,t)=>e.or(t),Kt.identity.decoder),Hu=114,sa=36,aa=37,di=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Tu]=!0;toString(){return this.string==null&&(this.string=Ne.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return St.createV1(Hu,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return Oe(this.multihash.bytes,t);if(typeof t=="string")return pi(t).equals(this);if(t?.multihash?.bytes!=null)return Oe(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[Vy](){return`PeerId(${this.toString()})`}},An=class extends di{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Dn=class extends di{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},Bn=class extends di{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function pi(e,t){if(t=t??qu,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=Vr(Ne.decode(`z${e}`));return e.startsWith("12D")?new Dn({multihash:r}):e.startsWith("16U")?new Bn({multihash:r}):new An({multihash:r})}return qy(qu.decode(e))}function qy(e){try{let t=Vr(e);if(t.code===xr.code){if(t.digest.length===sa)return new Dn({multihash:t});if(t.digest.length===aa)return new Bn({multihash:t})}if(t.code===Ye.code)return new An({multihash:t})}catch{return Hy(St.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function Hy(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Hu)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===Ye.code)return new An({multihash:e.multihash});if(t.code===xr.code){if(t.digest.length===sa)return new Dn({multihash:e.multihash});if(t.digest.length===aa)return new Bn({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function ca(e,t){return e.length===sa?new Dn({multihash:Ft(xr.code,e),privateKey:t}):e.length===aa?new Bn({multihash:Ft(xr.code,e),privateKey:t}):new An({multihash:await Ye.digest(e),publicKey:e,privateKey:t})}function br(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}function Jt(e=0){return globalThis.Buffer?.alloc!=null?br(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function dt(e=0){return globalThis.Buffer?.allocUnsafe!=null?br(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function Gu(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var zu=Gu("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),ua=Gu("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=dt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),Gy={utf8:zu,"utf-8":zu,hex:Kt.base16,latin1:ua,ascii:ua,binary:ua,...Kt},io=Gy;function se(e,t="utf8"){let r=io[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var Wy=Math.pow(2,7),$y=Math.pow(2,14),Yy=Math.pow(2,21),fa=Math.pow(2,28),la=Math.pow(2,35),ha=Math.pow(2,42),da=Math.pow(2,49),ge=128,et=127;function it(e){if(e<Wy)return 1;if(e<$y)return 2;if(e<Yy)return 3;if(e<fa)return 4;if(e<la)return 5;if(e<ha)return 6;if(e<da)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Zy(e,t,r=0){switch(it(e)){case 8:t[r++]=e&255|ge,e/=128;case 7:t[r++]=e&255|ge,e/=128;case 6:t[r++]=e&255|ge,e/=128;case 5:t[r++]=e&255|ge,e/=128;case 4:t[r++]=e&255|ge,e>>>=7;case 3:t[r++]=e&255|ge,e>>>=7;case 2:t[r++]=e&255|ge,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function Xy(e,t,r=0){switch(it(e)){case 8:t.set(r++,e&255|ge),e/=128;case 7:t.set(r++,e&255|ge),e/=128;case 6:t.set(r++,e&255|ge),e/=128;case 5:t.set(r++,e&255|ge),e/=128;case 4:t.set(r++,e&255|ge),e>>>=7;case 3:t.set(r++,e&255|ge),e>>>=7;case 2:t.set(r++,e&255|ge),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function Qy(e,t){let r=e[t],n=0;if(n+=r&et,r<ge||(r=e[t+1],n+=(r&et)<<7,r<ge)||(r=e[t+2],n+=(r&et)<<14,r<ge)||(r=e[t+3],n+=(r&et)<<21,r<ge)||(r=e[t+4],n+=(r&et)*fa,r<ge)||(r=e[t+5],n+=(r&et)*la,r<ge)||(r=e[t+6],n+=(r&et)*ha,r<ge)||(r=e[t+7],n+=(r&et)*da,r<ge))return n;throw new RangeError("Could not decode varint")}function jy(e,t){let r=e.get(t),n=0;if(n+=r&et,r<ge||(r=e.get(t+1),n+=(r&et)<<7,r<ge)||(r=e.get(t+2),n+=(r&et)<<14,r<ge)||(r=e.get(t+3),n+=(r&et)<<21,r<ge)||(r=e.get(t+4),n+=(r&et)*fa,r<ge)||(r=e.get(t+5),n+=(r&et)*la,r<ge)||(r=e.get(t+6),n+=(r&et)*ha,r<ge)||(r=e.get(t+7),n+=(r&et)*da,r<ge))return n;throw new RangeError("Could not decode varint")}function wr(e,t,r=0){return t==null&&(t=dt(it(e))),t instanceof Uint8Array?Zy(e,t,r):Xy(e,t,r)}function Ct(e,t=0){return e instanceof Uint8Array?Qy(e,t):jy(e,t)}function me(e,t){t==null&&(t=e.reduce((i,o)=>i+o.length,0));let r=dt(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return br(r)}var oo=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();if(this.index===this.input.length)return r}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,r,n,i){return this.readAtomically(()=>{let o=0,s=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let h=Number.parseInt(l,t);if(!Number.isNaN(h))return h});if(f===void 0)break;if(o*=t,o+=f,o>u||(s+=1,r!==void 0&&s>r))return}if(s!==0)return!n&&c&&s>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let s=this.readSeparator(":",n,()=>this.readIPv4Addr());if(s!==void 0)return r[i]=s[0],r[i+1]=s[1],r[i+2]=s[2],r[i+3]=s[3],[i+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[i,!1];r[i]=o>>8,r[i+1]=o&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=t(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),s=16-(n+2),[a]=t(o.subarray(0,s));return r.set(o.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Wu=45,Jy=15,In=new oo;function pa(e){if(!(e.length>Jy))return In.new(e).parseWith(()=>In.readIPv4Addr())}function ya(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Wu))return In.new(e).parseWith(()=>In.readIPv6Addr())}function so(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Wu))return In.new(e).parseWith(()=>In.readIPAddr())}var IE=parseInt("0xFFFF",16),TE=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Be(e,t="utf8"){let r=io[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?br(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}function Zu(e){return!!pa(e)}function Xu(e){return!!ya(e)}function ao(e){return!!so(e)}var Qu=Zu,ig=Xu,ga=function(e){let t=0;if(e=e.toString().trim(),Qu(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(ig(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let o=Qu(r[n]),s;o&&(s=ga(r[n]),r[n]=se(s.slice(0,2),"base16")),s!=null&&++n<8&&r.splice(n,0,se(s.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let o=[n,1];for(n=9-r.length;n>0;n--)o.push("0");r.splice.apply(r,o)}let i=new Uint8Array(t+16);for(n=0;n<r.length;n++){let o=parseInt(r[n],16);i[t++]=o>>8&255,i[t++]=o&255}return i}throw new Error("invalid ip address")},ju=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let o=0;o<r;o++)i.push(e[t+o]);return i.join(".")}if(r===16){let i=[];for(let o=0;o<r;o+=2)i.push(n.getUint16(t+o).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Tn={},ma={},sg=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[777,-1,"memory"]];sg.forEach(e=>{let t=ag(...e);ma[t.code]=t,Tn[t.name]=t});function ag(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function he(e){if(typeof e=="number"){if(ma[e]!=null)return ma[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(Tn[e]!=null)return Tn[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var yS=he("ip4"),gS=he("ip6"),mS=he("ipcidr");function ba(e,t){switch(he(e).code){case 4:case 41:return ug(t);case 42:return tf(t);case 6:case 273:case 33:case 132:return nf(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return tf(t);case 421:return dg(t);case 444:return rf(t);case 445:return rf(t);case 466:return hg(t);default:return se(t,"base16")}}function wa(e,t){switch(he(e).code){case 4:return Ju(t);case 41:return Ju(t);case 42:return ef(t);case 6:case 273:case 33:case 132:return va(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return ef(t);case 421:return fg(t);case 444:return pg(t);case 445:return yg(t);case 466:return lg(t);default:return Be(t,"base16")}}var xa=Object.values(Kt).map(e=>e.decoder),cg=function(){let e=xa[0].or(xa[1]);return xa.slice(2).forEach(t=>e=e.or(t)),e}();function Ju(e){if(!ao(e))throw new Error("invalid ip address");return ga(e)}function ug(e){let t=ju(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!ao(t))throw new Error("invalid ip address");return t}function va(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function nf(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function ef(e){let t=Be(e),r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function tf(e){let t=Ct(e);if(e=e.slice(it(t)),e.length!==t)throw new Error("inconsistent lengths");return se(e)}function fg(e){let t;e[0]==="Q"||e[0]==="1"?t=Vr(Ne.decode(`z${e}`)).bytes:t=St.parse(e).multihash.bytes;let r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function lg(e){let t=cg.decode(e),r=Uint8Array.from(wr(t.length));return me([r,t],r.length+t.length)}function hg(e){let t=Ct(e),r=e.slice(it(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+se(r,"base64url")}function dg(e){let t=Ct(e),r=e.slice(it(t));if(r.length!==t)throw new Error("inconsistent lengths");return se(r,"base58btc")}function pg(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=Et.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=va(n);return me([r,i],r.length+i.length)}function yg(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=Et.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=va(n);return me([r,i],r.length+i.length)}function rf(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=se(t,"base32"),i=nf(r);return`${n}:${i}`}function of(e){e=Ea(e);let t=[],r=[],n=null,i=e.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<i.length;o++){let s=i[o],a=he(s);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(o++,o>=i.length)throw af("invalid address: "+e);if(a.path===!0){n=Ea(i.slice(o).join("/")),t.push([a.code,wa(a.code,n)]),r.push([a.code,n]);break}let c=wa(a.code,i[o]);t.push([a.code,c]),r.push([a.code,ba(a.code,c)])}return{string:sf(r),bytes:Ca(t),tuples:t,stringTuples:r,path:n}}function Sa(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let o=Ct(e,i),s=it(o),a=he(o),c=gg(a,e.slice(i+s));if(c===0){t.push([o]),r.push([o]),i+=s;continue}let u=e.slice(i+s,i+s+c);if(i+=c+s,i>e.length)throw af("Invalid address Uint8Array: "+se(e,"base16"));t.push([o,u]);let f=ba(o,u);if(r.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(e),string:sf(r),tuples:t,stringTuples:r,path:n}}function sf(e){let t=[];return e.map(r=>{let n=he(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),Ea(t.join("/"))}function Ca(e){return me(e.map(t=>{let r=he(t[0]),n=Uint8Array.from(wr(r.code));return t.length>1&&t[1]!=null&&(n=me([n,t[1]])),n}))}function gg(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=Ct(t instanceof Uint8Array?t:Uint8Array.from(t));return r+it(r)}}function Ea(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function af(e){return new Error("Error parsing address: "+e)}var mg=Symbol.for("nodejs.util.inspect.custom"),xg=[he("dns").code,he("dns4").code,he("dns6").code,he("dnsaddr").code],bg=new Map,cf=Symbol.for("@multiformats/js-multiaddr/multiaddr");function wg(e){return!!e?.[cf]}var Aa=class e{bytes;#e;#t;#r;#n;[cf]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Sa(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=of(t)}else if(wg(t))r=Sa(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#t=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let t,r,n,i,o="",s=he("tcp"),a=he("udp"),c=he("ip4"),u=he("ip6"),f=he("dns6"),l=he("ip6zone");for(let[y,d]of this.stringTuples())y===l.code&&(o=`%${d??""}`),xg.includes(y)&&(r=s.name,i=443,n=`${d??""}${o}`,t=y===f.code?6:4),(y===s.code||y===a.code)&&(r=he(y).name,i=parseInt(d??"")),(y===c.code||y===u.code)&&(r=he(y).name,n=`${d??""}${o}`,t=y===u.code?6:4);if(t==null||r==null||n==null||i==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:r,port:i}}protos(){return this.#t.map(([t])=>Object.assign({},he(t)))}protoCodes(){return this.#t.map(([t])=>t)}protoNames(){return this.#t.map(([t])=>he(t).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(Ca(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===Tn.p2p.code&&t.push([n,i]),n===Tn["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?se(Ne.decode(`z${n}`),"base58btc"):se(St.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Oe(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(o=>o.resolvable);if(r==null)return[this];let n=bg.get(r.name);if(n==null)throw new Z(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(o=>new e(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[mg](){return`Multiaddr(${this.#e})`}};function er(e){return new Aa(e)}var ut;(function(e){e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_DATA_CHANNEL="ERR_DATA_CHANNEL",e.ERR_CONNECTION_CLOSED="ERR_CONNECTION_CLOSED",e.ERR_HASH_NOT_SUPPORTED="ERR_HASH_NOT_SUPPORTED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_INVALID_FINGERPRINT="ERR_INVALID_FINGERPRINT",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS"})(ut||(ut={}));var vr=class extends Z{constructor(t,r){super(`WebRTC transport error: ${t}`,r??""),this.name="WebRTCTransportError"}};var Da=class extends vr{constructor(t,r){super(`[stream: ${t}] data channel error: ${r}`,ut.ERR_DATA_CHANNEL),this.name="WebRTC/DataChannelError"}};function Ra(e,t){return new Da(e,t)}var Ba=class extends vr{constructor(t){super(`There was a problem with the Multiaddr which was passed in: ${t}`,ut.ERR_INVALID_MULTIADDR),this.name="WebRTC/InappropriateMultiaddrError"}};function co(e){return new Ba(e)}var Ia=class extends vr{constructor(t){super(`There was a problem with a provided argument: ${t}`,ut.ERR_INVALID_PARAMETERS),this.name="WebRTC/InvalidArgumentError"}};function gi(e){return new Ia(e)}var Ta=class extends vr{constructor(t,r){super(`Invalid fingerprint "${t}" within ${r}`,ut.ERR_INVALID_FINGERPRINT),this.name="WebRTC/InvalidFingerprintError"}};function La(e,t){return new Ta(e,t)}var _a=class extends vr{constructor(t){super(`A method (${t}) was called though it has been intentionally left unimplemented.`,ut.ERR_NOT_IMPLEMENTED),this.name="WebRTC/UnimplementedError"}};function uf(e){return new _a(e)}var ka=class extends vr{constructor(t){super(`unsupported hash algorithm: ${t}`,ut.ERR_HASH_NOT_SUPPORTED),this.name="WebRTC/UnsupportedHashAlgorithmError"}};function ff(e){return new ka(e)}var lf=function(e,t,r){if(r||arguments.length===2)for(var n=0,i=t.length,o;n<i;n++)(o||!(n in t))&&(o||(o=Array.prototype.slice.call(t,0,n)),o[n]=t[n]);return e.concat(o||Array.prototype.slice.call(t))},vg=function(){function e(t,r,n){this.name=t,this.version=r,this.os=n,this.type="browser"}return e}();var Eg=function(){function e(t){this.version=t,this.type="node",this.name="node",this.os=process.platform}return e}();var Sg=function(){function e(t,r,n,i){this.name=t,this.version=r,this.os=n,this.bot=i,this.type="bot-device"}return e}();var Cg=function(){function e(){this.type="bot",this.bot=!0,this.name="bot",this.version=null,this.os=null}return e}();var Ag=function(){function e(){this.type="react-native",this.name="react-native",this.version=null,this.os=null}return e}();var Dg=/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/,Bg=/(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,hf=3,Ig=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["edge-ios",/EdgiOS\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/EdgA?\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["pie",/^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],["pie",/^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],["netfront",/^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FB[AS]V\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["curl",/^curl\/([0-9\.]+)$/],["searchbot",Dg]],df=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Windows CE",/Windows CE|WinCE|Microsoft Pocket Internet Explorer/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/]];function yf(e){return e?pf(e):typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new Ag:typeof navigator<"u"?pf(navigator.userAgent):kg()}function Tg(e){return e!==""&&Ig.reduce(function(t,r){var n=r[0],i=r[1];if(t)return t;var o=i.exec(e);return!!o&&[n,o]},!1)}function pf(e){var t=Tg(e);if(!t)return null;var r=t[0],n=t[1];if(r==="searchbot")return new Cg;var i=n[1]&&n[1].split(".").join("_").split("_").slice(0,3);i?i.length<hf&&(i=lf(lf([],i,!0),Rg(hf-i.length),!0)):i=[];var o=i.join("."),s=_g(e),a=Bg.exec(e);return a&&a[1]?new Sg(r,o,s,a[1]):new vg(r,o,s)}function _g(e){for(var t=0,r=df.length;t<r;t++){var n=df[t],i=n[0],o=n[1],s=o.exec(e);if(s)return i}return null}function kg(){var e=typeof process<"u"&&process.version;return e?new Eg(process.version.slice(1)):null}function Rg(e){for(var t=[],r=0;r<e;r++)t.push("0");return t}var gf=yf(),mi=gf!=null&&gf.name==="firefox",uo=async function*(){},fo=async e=>{};var mf=Je("libp2p:webrtc:connection"),Hr=class{peerConnection;remoteAddr;timeline;metrics;source=uo();sink=fo;constructor(t){this.remoteAddr=t.remoteAddr,this.timeline=t.timeline,this.peerConnection=t.peerConnection,this.peerConnection.onconnectionstatechange=()=>{(this.peerConnection.connectionState==="closed"||this.peerConnection.connectionState==="disconnected"||this.peerConnection.connectionState==="failed")&&(this.timeline.close=Date.now())}}async close(t){mf.trace("closing connection"),this.peerConnection.close(),this.timeline.close=Date.now(),this.metrics?.increment({close:!0})}abort(t){mf.error("closing connection due to error",t),this.peerConnection.close(),this.timeline.close=Date.now(),this.metrics?.increment({abort:!0})}};var _n=globalThis.RTCPeerConnection,Na=globalThis.RTCSessionDescription,xf=globalThis.RTCIceCandidate;var xi=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function bf(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function lo(e,t,r){let n=r??{},i=bf(e);async function*o(){let s,a=()=>{s?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:f,abortCode:l}=n;throw new xi(f,l)}let u=new Promise((f,l)=>{s=()=>{let{abortMessage:h,abortCode:y}=n;l(new xi(h,y))}});c=await Promise.race([u,i.next()]),s=null}catch(u){t.removeEventListener("abort",a);let f=u.type==="aborted"&&t.aborted;if(f&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let l=i.return();l instanceof Promise&&l.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(l){n.onReturnError!=null&&n.onReturnError(l)}if(f&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return o()}function Lg(e,t,r){return n=>e(lo(n,t,r))}function Pa(e,t,r){return{sink:Lg(e.sink,t,{...r,onAbort:void 0}),source:lo(e.source,t,r)}}function pt(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var ho=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},kn=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new ho(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new ho(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var Ua=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Mt(e={}){return Ng(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},e)}function Ng(e,t){t=t??{};let r=t.onEnd,n=new kn,i,o,s,a=pt(),c=async()=>{try{return n.isEmpty()?s?{done:!0}:await new Promise((g,m)=>{o=v=>{o=null,n.push(v);try{g(e(n))}catch(x){m(x)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=pt()})}},u=g=>o!=null?o(g):(n.push(g),i),f=g=>(n=new kn,o!=null?o({error:g}):(n.push({error:g}),i)),l=g=>{if(s)return i;if(t?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},h=g=>s?i:(s=!0,g!=null?f(g):u({done:!0})),y=()=>(n=new kn,h(),{done:!0}),d=g=>(h(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:y,throw:d,push:l,end:h,get readableLength(){return n.size},onEmpty:async g=>{let m=g?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let v,x;m!=null&&(v=new Promise((A,E)=>{x=()=>{E(new Ua)},m.addEventListener("abort",x)}));try{await Promise.race([a.promise,v])}finally{x!=null&&m!=null&&m?.removeEventListener("abort",x)}}},r==null)return i;let p=i;return i={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(g){return p.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return p.return(),r!=null&&(r(),r=void 0),{done:!0}},push:l,end(g){return p.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return p.readableLength}},i}var vf=Symbol.for("@achingbrain/uint8arraylist");function wf(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function po(e){return!!e?.[vf]}var Ze=class e{constructor(...t){Object.defineProperty(this,vf,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(po(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(po(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(t){let r=wf(this.bufs,t);return r.buf[r.index]}set(t,r){let n=wf(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(po(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return me(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:me(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),o=new e;return o.length=i,o.bufs=n,o}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===0&&r===this.length)return{bufs:[...this.bufs],length:this.length};let n=[],i=0;for(let o=0;o<this.bufs.length;o++){let s=this.bufs[o],a=i,c=a+s.byteLength;if(i=c,t>=c)continue;let u=t>=a&&t<c,f=r>a&&r<=c;if(u&&f){if(t===a&&r===c){n.push(s);break}let l=t-a;n.push(s.subarray(l,l+(r-t)));break}if(u){if(t===0){n.push(s);continue}n.push(s.subarray(t-a));continue}if(f){if(r===c){n.push(s);break}n.push(s.subarray(0,r-a));break}n.push(s)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!po(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let o=256,s=new Int32Array(o);for(let l=0;l<o;l++)s[l]=-1;for(let l=0;l<i;l++)s[n[l]]=l;let a=s,c=this.byteLength-n.byteLength,u=n.byteLength-1,f;for(let l=r;l<=c;l+=f){f=0;for(let h=u;h>=0;h--){let y=this.get(l+h);if(n[h]!==y){f=Math.max(1,h-a[y]);break}}if(f===0)return l}return-1}getInt8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=dt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=Jt(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=Jt(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=Jt(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=dt(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=Jt(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=Jt(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=Jt(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=Jt(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=Jt(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Oe(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,o)=>i+o.byteLength,0)),n.length=r,n}};var yo=class extends Error{code;constructor(t,r){super(t),this.code=r}},Oa=class extends yo{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted"}};function Ef(e){let t=Mt();e.sink(t).catch(o=>{t.end(o)}),e.sink=async o=>{for await(let s of o)t.push(s);t.end()};let r=e.source;e.source[Symbol.iterator]!=null?r=e.source[Symbol.iterator]():e.source[Symbol.asyncIterator]!=null&&(r=e.source[Symbol.asyncIterator]());let n=new Ze;return{read:async(o,s)=>{s?.signal?.throwIfAborted();let a,c=new Promise((u,f)=>{a=()=>{f(new Oa("Read aborted"))},s?.signal?.addEventListener("abort",a)});try{if(o==null){let{done:f,value:l}=await Promise.race([r.next(),c]);return f===!0?new Ze:l}for(;n.byteLength<o;){let{value:f,done:l}=await Promise.race([r.next(),c]);if(l===!0)throw new yo("unexpected end of input","ERR_UNEXPECTED_EOF");n.append(f)}let u=n.sublist(0,o);return n.consume(o),u}finally{a!=null&&s?.signal?.removeEventListener("abort",a)}},write:async(o,s)=>{s?.signal?.throwIfAborted(),o instanceof Uint8Array?t.push(o):t.push(o.subarray()),await t.onEmpty(s)},unwrap:()=>{let o=e.source;return e.source=async function*(){yield*n,yield*o}(),e}}}function go(e){return e[Symbol.asyncIterator]!=null}var mo=e=>{let t=it(e),r=dt(t);return wr(e,r),mo.bytes=t,r};mo.bytes=0;function zr(e,t){t=t??{};let r=t.lengthEncoder??mo;function*n(i){let o=r(i.byteLength);o instanceof Uint8Array?yield o:yield*o,i instanceof Uint8Array?yield i:yield*i}return go(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}zr.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??mo;return new Ze(r(e.byteLength),e)};var Rn=ke(Af(),1);var Ug=8,Og=1024*1024*4,Gr;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Gr||(Gr={}));var Fa=e=>{let t=Ct(e);return Fa.bytes=it(t),t};Fa.bytes=0;function Wr(e,t){let r=new Ze,n=Gr.LENGTH,i=-1,o=t?.lengthDecoder??Fa,s=t?.maxLengthLength??Ug,a=t?.maxDataLength??Og;function*c(){for(;r.byteLength>0;){if(n===Gr.LENGTH)try{if(i=o(r),i<0)throw(0,Rn.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,Rn.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=o.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Gr.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>s)throw(0,Rn.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Gr.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Gr.LENGTH}}}return go(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Rn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Rn.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Wr.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:o,value:s}=await e.next(r);if(o===!0)return;s!=null&&(yield s)}catch(o){if(o.code==="ERR_UNDER_READ")return{done:!0,value:null};throw o}finally{r=1}}();return Wr(n,{...t??{},onLength:o=>{r=o}})};var xo=class extends Error{code;constructor(t,r){super(t),this.code=r}},Bf=e=>Ct(e);Bf.bytes=0;function bi(e,t){let r=Ef(e);return{read:async i=>{let o=-1,s=new Ze,a=t?.lengthDecoder??Bf;for(;;){s.append(await r.read(1,i));try{o=a(s)}catch(c){if(c instanceof RangeError)continue;throw c}if(o>-1)break;if(t?.maxLengthLength!=null&&s.byteLength>t.maxLengthLength)throw new xo("message length length too long","ERR_MSG_LENGTH_TOO_LONG")}if(t?.maxDataLength!=null&&o>t.maxDataLength)throw new xo("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(o,i)},write:async(i,o)=>{await r.write(zr.single(i,t),o)},unwrap:()=>r.unwrap()}}function Ka(e,t){let r=bi(e,t),n={read:async(i,o)=>{let s=await r.read(o);return i.decode(s)},write:async(i,o,s)=>{await r.write(o.encode(i),s)},pb:i=>({read:async o=>n.read(i,o),write:async(o,s)=>n.write(o,i,s),unwrap:()=>n}),unwrap:()=>r.unwrap()};return n}var Fg="ERR_STREAM_RESET",Kg="ERR_SINK_INVALID_STATE";function Ma(e){return e!=null&&typeof e.then=="function"}var bo=class{id;direction;timeline;protocol;metadata;source;status;readStatus;writeStatus;sinkController;sinkEnd;endErr;streamSource;onEnd;onCloseRead;onCloseWrite;onReset;onAbort;log;constructor(t){this.sinkController=new AbortController,this.sinkEnd=pt(),this.log=t.log,this.status="open",this.readStatus="ready",this.writeStatus="ready",this.id=t.id,this.metadata=t.metadata??{},this.direction=t.direction,this.timeline={open:Date.now()},this.onEnd=t.onEnd,this.onCloseRead=t?.onCloseRead,this.onCloseWrite=t?.onCloseWrite,this.onReset=t?.onReset,this.onAbort=t?.onAbort,this.source=this.streamSource=Mt({onEnd:r=>{r!=null?this.log.trace("source ended with error",r):this.log.trace("source ended"),this.readStatus="closed",this.onSourceEnd(r)}}),this.sink=this.sink.bind(this)}async sink(t){if(this.writeStatus!=="ready")throw new Z(`writable end state is "${this.writeStatus}" not "ready"`,Kg);try{this.writeStatus="writing";let r={signal:this.sinkController.signal};if(this.direction==="outbound"){let n=this.sendNewStream(r);Ma(n)&&await n}t=lo(t,this.sinkController.signal,{returnOnAbort:!0}),this.log.trace("sink reading from source");for await(let n of t){n=n instanceof Uint8Array?new Ze(n):n;let i=this.sendData(n,r);Ma(i)&&await i}this.log.trace("sink finished reading from source"),this.writeStatus="done",this.log.trace("sink calling closeWrite"),await this.closeWrite(r),this.onSinkEnd()}catch(r){throw this.log.trace("sink ended with error, calling abort with error",r),this.abort(r),r}finally{this.log.trace("resolve sink end"),this.sinkEnd.resolve()}}onSourceEnd(t){this.timeline.closeRead==null&&(this.timeline.closeRead=Date.now(),t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseRead?.(),this.timeline.closeWrite!=null?(this.log.trace("source and sink ended"),this.timeline.close=Date.now(),this.onEnd!=null&&this.onEnd(this.endErr)):this.log.trace("source ended, waiting for sink to end"))}onSinkEnd(t){this.timeline.closeWrite==null&&(this.timeline.closeWrite=Date.now(),t!=null&&this.endErr==null&&(this.endErr=t),this.onCloseWrite?.(),this.timeline.closeRead!=null?(this.log.trace("sink and source ended"),this.timeline.close=Date.now(),this.onEnd!=null&&this.onEnd(this.endErr)):this.log.trace("sink ended, waiting for source to end"))}async close(t){this.log.trace("closing gracefully"),this.status="closing",await Promise.all([this.closeRead(t),this.closeWrite(t)]),this.status="closed",this.log.trace("closed gracefully")}async closeRead(t={}){if(this.readStatus==="closing"||this.readStatus==="closed")return;this.log.trace('closing readable end of stream with starting read status "%s"',this.readStatus);let r=this.readStatus;this.readStatus="closing",r==="ready"&&(this.log.trace("ending internal source queue"),this.streamSource.end()),this.status!=="reset"&&this.status!=="aborted"&&this.timeline.closeRead==null&&(this.log.trace("send close read to remote"),await this.sendCloseRead(t)),this.log.trace("closed readable end of stream")}async closeWrite(t={}){if(this.writeStatus==="closing"||this.writeStatus==="closed")return;this.log.trace('closing writable end of stream with starting write status "%s"',this.writeStatus);let r=this.writeStatus;this.writeStatus==="ready"&&(this.log.trace("sink was never sunk, sink an empty array"),await this.sink([])),this.writeStatus="closing",r==="writing"&&await new Promise((n,i)=>{queueMicrotask(()=>{this.log.trace("aborting source passed to .sink"),this.sinkController.abort(),this.sinkEnd.promise.then(n,i)})}),this.status!=="reset"&&this.status!=="aborted"&&this.timeline.closeWrite==null&&(this.log.trace("send close write to remote"),await this.sendCloseWrite(t)),this.writeStatus="closed",this.log.trace("closed writable end of stream")}abort(t){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;this.log("abort with error",t),this.log("try to send reset to remote");let r=this.sendReset();Ma(r)&&r.catch(n=>{this.log.error("error sending reset message",n)}),this.status="aborted",this.timeline.abort=Date.now(),this._closeSinkAndSource(t),this.onAbort?.(t)}reset(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset")return;let t=new Z("stream reset",Fg);this.status="reset",this._closeSinkAndSource(t),this.onReset?.()}_closeSinkAndSource(t){this._closeSink(t),this._closeSource(t)}_closeSink(t){this.writeStatus==="writing"&&(this.log.trace("end sink source"),this.sinkController.abort()),this.onSinkEnd(t)}_closeSource(t){this.readStatus!=="closing"&&this.readStatus!=="closed"&&(this.log.trace("ending source with %d bytes to be read by consumer",this.streamSource.readableLength),this.readStatus="closing",this.streamSource.end(t))}remoteCloseWrite(){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("received remote close write but local source is already closed");return}this.log.trace("remote close write"),this._closeSource()}remoteCloseRead(){if(this.writeStatus==="closing"||this.writeStatus==="closed"){this.log("received remote close read but local sink is already closed");return}this.log.trace("remote close read"),this._closeSink()}destroy(){if(this.status==="closed"||this.status==="aborted"||this.status==="reset"){this.log("received destroy but we are already closed");return}this.log.trace("muxer destroyed"),this._closeSinkAndSource()}sourcePush(t){this.streamSource.push(t)}sourceReadableLength(){return this.streamSource.readableLength}};var Ln=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Va=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},If=e=>globalThis.DOMException===void 0?new Va(e):new DOMException(e),Tf=e=>{let t=e.reason===void 0?If("This operation was aborted."):e.reason;return t instanceof Error?t:If(t)};function qa(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:o={setTimeout,clearTimeout}}=t,s,c=new Promise((u,f)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(t.signal){let{signal:h}=t;h.aborted&&f(Tf(h)),h.addEventListener("abort",()=>{f(Tf(h))})}if(r===Number.POSITIVE_INFINITY){e.then(u,f);return}let l=new Ln;s=o.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){f(h)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?f(i):(l.message=i??`Promise timed out after ${r} milliseconds`,f(l))},r),(async()=>{try{u(await e)}catch(h){f(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{o.clearTimeout.call(void 0,s),s=void 0},c}var Mg=e=>{let t=e.on||e.addListener||e.addEventListener,r=e.off||e.removeListener||e.removeEventListener;if(!t||!r)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:r.bind(e)}};function Vg(e,t,r){let n,i=new Promise((o,s)=>{if(r={rejectionEvents:["error"],multiArgs:!1,resolveImmediately:!1,...r},!(r.count>=0&&(r.count===Number.POSITIVE_INFINITY||Number.isInteger(r.count))))throw new TypeError("The `count` option should be at least 0 or more");r.signal?.throwIfAborted();let a=[t].flat(),c=[],{addListener:u,removeListener:f}=Mg(e),l=(...y)=>{let d=r.multiArgs?y:y[0];r.filter&&!r.filter(d)||(c.push(d),r.count===c.length&&(n(),o(c)))},h=y=>{n(),s(y)};n=()=>{for(let y of a)f(y,l);for(let y of r.rejectionEvents)f(y,h)};for(let y of a)u(y,l);for(let y of r.rejectionEvents)u(y,h);r.signal&&r.signal.addEventListener("abort",()=>{h(r.signal.reason)},{once:!0}),r.resolveImmediately&&o(c)});if(i.cancel=n,typeof r.timeout=="number"){let o=qa(i,{milliseconds:r.timeout});return o.cancel=n,o}return i}function _f(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=Vg(e,t,r),i=n.then(o=>o[0]);return i.cancel=n.cancel,i}var tc=ke($a(),1),ml=ke(ul(),1),xl=ke(Yr(),1),rc=ke(ec(),1),bl=ke(gl(),1);function Xg(){xl.default._configure(),tc.default._configure(ml.default),rc.default._configure(bl.default)}Xg();var wl=["uint64","int64","sint64","fixed64","sfixed64"];function Qg(e){for(let t of wl){if(e[t]==null)continue;let r=e[t];e[t]=function(){return BigInt(r.call(this).toString())}}return e}function nc(e){return Qg(new tc.default(e))}function jg(e){for(let t of wl){if(e[t]==null)continue;let r=e[t];e[t]=function(n){return r.call(this,n.toString())}}return e}function ic(){return jg(rc.default.create())}function It(e,t){let r=nc(e instanceof Uint8Array?e:e.subarray());return t.decode(r)}function Tt(e,t){let r=ic();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Pn;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(Pn||(Pn={}));function Co(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function Xr(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(o,s){let a=t(o);s.int32(a)},n=function(o){let s=o.int32();return t(s)};return Co("enum",Pn.VARINT,r,n)}function _t(e,t){return Co("message",Pn.LENGTH_DELIMITED,e,t)}var gt;(function(e){let t;(function(i){i.FIN="FIN",i.STOP_SENDING="STOP_SENDING",i.RESET="RESET"})(t=e.Flag||(e.Flag={}));let r;(function(i){i[i.FIN=0]="FIN",i[i.STOP_SENDING=1]="STOP_SENDING",i[i.RESET=2]="RESET"})(r||(r={})),function(i){i.codec=()=>Xr(r)}(t=e.Flag||(e.Flag={}));let n;e.codec=()=>(n==null&&(n=_t((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.flag!=null&&(o.uint32(8),e.Flag.codec().encode(i.flag,o)),i.message!=null&&(o.uint32(18),o.bytes(i.message)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.flag=e.Flag.codec().decode(i);break;case 2:s.message=i.bytes();break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>Tt(i,e.codec()),e.decode=i=>It(i,e.codec())})(gt||(gt={}));var vl=16*1024,Jg=16*1024*1024,em=30*1e3,tm=3,oc=class extends bo{channel;dataChannelOptions;incomingData;messageQueue;maxDataSize;constructor(t){switch(super(t),this.channel=t.channel,this.channel.binaryType="arraybuffer",this.incomingData=Mt(),this.messageQueue=new Ze,this.dataChannelOptions={bufferedAmountLowEventTimeout:t.dataChannelOptions?.bufferedAmountLowEventTimeout??em,maxBufferedAmount:t.dataChannelOptions?.maxBufferedAmount??Jg,maxMessageSize:t.dataChannelOptions?.maxMessageSize??vl},this.maxDataSize=t.maxDataSize,this.channel.readyState){case"open":break;case"closed":case"closing":(this.timeline.close===void 0||this.timeline.close===0)&&(this.timeline.close=Date.now());break;case"connecting":break;default:throw this.log.error("unknown datachannel state %s",this.channel.readyState),new Z("Unknown datachannel state","ERR_INVALID_STATE")}this.channel.onopen=n=>{this.timeline.open=new Date().getTime(),this.messageQueue!=null&&(this._sendMessage(this.messageQueue).catch(i=>{this.abort(i)}),this.messageQueue=void 0)},this.channel.onclose=n=>{this.close().catch(i=>{this.log.error("error closing stream after channel closed",i)})},this.channel.onerror=n=>{let i=n.error;this.abort(i)};let r=this;this.channel.onmessage=async n=>{let{data:i}=n;i===null||i.byteLength===0||this.incomingData.push(new Uint8Array(i,0,i.byteLength))},Promise.resolve().then(async()=>{for await(let n of Wr(this.incomingData)){let i=r.processIncomingProtobuf(n.subarray());i!=null&&r.sourcePush(new Ze(i))}}).catch(n=>{this.log.error("error processing incoming data channel messages",n)})}sendNewStream(){}async _sendMessage(t,r=!0){if(r&&this.channel.bufferedAmount>this.dataChannelOptions.maxBufferedAmount)try{await _f(this.channel,"bufferedamountlow",{timeout:this.dataChannelOptions.bufferedAmountLowEventTimeout})}catch(n){throw n instanceof Ln?new Error("Timed out waiting for DataChannel buffer to clear"):n}if(this.channel.readyState==="closed"||this.channel.readyState==="closing")throw new Z("Invalid datachannel state - closed or closing","ERR_INVALID_STATE");if(this.channel.readyState==="open")for(let n of t)this.channel.send(n);else if(this.channel.readyState==="connecting")this.messageQueue==null&&(this.messageQueue=new Ze),this.messageQueue.append(t);else throw this.log.error("unknown datachannel state %s",this.channel.readyState),new Z("Unknown datachannel state","ERR_INVALID_STATE")}async sendData(t){for(t=t.sublist();t.byteLength>0;){let r=Math.min(t.byteLength,this.maxDataSize),n=t.subarray(0,r),i=gt.encode({message:n}),o=zr.single(i);await this._sendMessage(o),t.consume(r)}}async sendReset(){await this._sendFlag(gt.Flag.RESET)}async sendCloseWrite(){await this._sendFlag(gt.Flag.FIN)}async sendCloseRead(){await this._sendFlag(gt.Flag.STOP_SENDING)}processIncomingProtobuf(t){let r=gt.decode(t);return r.flag!==void 0&&(r.flag===gt.Flag.FIN&&(this.incomingData.end(),this.remoteCloseWrite()),r.flag===gt.Flag.RESET&&this.reset(),r.flag===gt.Flag.STOP_SENDING&&this.remoteCloseRead()),r.message}async _sendFlag(t){this.log.trace("Sending flag: %s",t.toString());let r=gt.encode({flag:t}),n=zr.single(r);await this._sendMessage(n,!1)}};function Un(e){let{channel:t,direction:r,onEnd:n,dataChannelOptions:i}=e;return new oc({id:r==="inbound"?`i${t.id}`:`r${t.id}`,direction:r,maxDataSize:(i?.maxMessageSize??vl)-tm,dataChannelOptions:i,onEnd:n,channel:t,log:Je(`libp2p:webrtc:stream:${r}:${t.id}`)})}var El="/webrtc",Qr=class{protocol;peerConnection;streamBuffer=[];metrics;dataChannelOptions;constructor(t){this.peerConnection=t.peerConnection,this.metrics=t.metrics,this.protocol=t.protocol??El,this.dataChannelOptions=t.dataChannelOptions,this.peerConnection.ondatachannel=({channel:r})=>{let n=Un({channel:r,direction:"inbound",dataChannelOptions:t.dataChannelOptions,onEnd:()=>{this.streamBuffer=this.streamBuffer.filter(i=>i.id!==n.id)}});this.streamBuffer.push(n)}}createStreamMuxer(t){return new sc({...t,peerConnection:this.peerConnection,dataChannelOptions:this.dataChannelOptions,metrics:this.metrics,streams:this.streamBuffer,protocol:this.protocol})}},sc=class{init;streams;protocol;peerConnection;dataChannelOptions;metrics;close=async()=>{};abort=()=>{};source=uo();sink=fo;constructor(t){this.init=t,this.streams=t.streams,this.peerConnection=t.peerConnection,this.protocol=t.protocol??El,this.metrics=t.metrics,this.peerConnection.ondatachannel=({channel:n})=>{let i=Un({channel:n,direction:"inbound",dataChannelOptions:this.dataChannelOptions,onEnd:()=>{this.streams=this.streams.filter(o=>o.id!==i.id),this.metrics?.increment({stream_end:!0}),t?.onStreamEnd?.(i)}});this.streams.push(i),t?.onIncomingStream!=null&&(this.metrics?.increment({incoming_stream:!0}),t.onIncomingStream(i))};let r=t?.onIncomingStream;r!=null&&this.streams.forEach(n=>{r(n)})}newStream(){let t=this.peerConnection.createDataChannel(""),r=Un({channel:t,direction:"outbound",dataChannelOptions:this.dataChannelOptions,onEnd:()=>{t.close(),this.streams=this.streams.filter(n=>n.id!==r.id),this.metrics?.increment({stream_end:!0}),this.init?.onStreamEnd?.(r)}});return this.streams.push(r),this.metrics?.increment({outgoing_stream:!0}),r}};var ft;(function(e){let t;(function(i){i.SDP_OFFER="SDP_OFFER",i.SDP_ANSWER="SDP_ANSWER",i.ICE_CANDIDATE="ICE_CANDIDATE"})(t=e.Type||(e.Type={}));let r;(function(i){i[i.SDP_OFFER=0]="SDP_OFFER",i[i.SDP_ANSWER=1]="SDP_ANSWER",i[i.ICE_CANDIDATE=2]="ICE_CANDIDATE"})(r||(r={})),function(i){i.codec=()=>Xr(r)}(t=e.Type||(e.Type={}));let n;e.codec=()=>(n==null&&(n=_t((i,o,s={})=>{s.lengthDelimited!==!1&&o.fork(),i.type!=null&&(o.uint32(8),e.Type.codec().encode(i.type,o)),i.data!=null&&(o.uint32(18),o.string(i.data)),s.lengthDelimited!==!1&&o.ldelim()},(i,o)=>{let s={},a=o==null?i.len:i.pos+o;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:s.type=e.Type.codec().decode(i);break;case 2:s.data=i.string();break;default:i.skipType(c&7);break}}return s})),n),e.encode=i=>Tt(i,e.codec()),e.decode=i=>It(i,e.codec())})(ft||(ft={}));var Ao=Je("libp2p:webrtc:peer:util"),ac=async(e,t,r)=>{for(;;){let n=await Promise.race([e.promise,r.read()]);if(n instanceof Object){let i=n;if(i.type!==ft.Type.ICE_CANDIDATE)throw new Error("expected only ice candidates");if(i.data==null||i.data===""){Ao.trace("end-of-candidates received");break}Ao.trace("received new ICE candidate: %s",i.data);try{await t.addIceCandidate(new xf(JSON.parse(i.data)))}catch(o){throw Ao.error("bad candidate received: ",o),new Error("bad candidate received")}}else break}await e.promise};function cc(e,t){e[mi?"oniceconnectionstatechange":"onconnectionstatechange"]=r=>{switch(Ao.trace("receiver peerConnectionState state: ",e.connectionState),mi?e.iceConnectionState:e.connectionState){case"connected":t.resolve();break;case"failed":case"disconnected":case"closed":t.reject(new Error("RTCPeerConnection was closed"));break;default:break}}}var rm=30*1e3,Cr=Je("libp2p:webrtc:peer");async function Sl({rtcConfiguration:e,dataChannelOptions:t,stream:r}){let n=AbortSignal.timeout(rm),i=Ka(Pa(r,n)).pb(ft),o=new _n(e);try{let s=new Qr({peerConnection:o,dataChannelOptions:t}),a=pt(),c=pt();n.onabort=()=>{a.reject(new Z("Timed out while trying to connect","ERR_TIMEOUT"))},o.onicecandidate=({candidate:y})=>{c.promise.then(async()=>{await i.write({type:ft.Type.ICE_CANDIDATE,data:y!=null?JSON.stringify(y.toJSON()):""})},d=>{Cr.error("cannot set candidate since sending answer failed",d),a.reject(d)})},cc(o,a);let u=await i.read();if(u.type!==ft.Type.SDP_OFFER)throw new Error(`expected message type SDP_OFFER, received: ${u.type??"undefined"} `);let f=new Na({type:"offer",sdp:u.data});await o.setRemoteDescription(f).catch(y=>{throw Cr.error("could not execute setRemoteDescription",y),new Error("Failed to set remoteDescription")});let l=await o.createAnswer().catch(y=>{throw Cr.error("could not execute createAnswer",y),c.reject(y),new Error("Failed to create answer")});await i.write({type:ft.Type.SDP_ANSWER,data:l.sdp}),await o.setLocalDescription(l).catch(y=>{throw Cr.error("could not execute setLocalDescription",y),c.reject(y),new Error("Failed to set localDescription")}),c.resolve(),await ac(a,o,i);let h=Al(o.currentRemoteDescription?.sdp??"");return{pc:o,muxerFactory:s,remoteAddress:h}}catch(s){throw o.close(),s}}async function Cl({rtcConfiguration:e,dataChannelOptions:t,signal:r,stream:n}){let i=Ka(Pa(n,r)).pb(ft),o=new _n(e);try{let s=new Qr({peerConnection:o,dataChannelOptions:t}),a=pt();cc(o,a),r.onabort=a.reject;let c=o.createDataChannel("init");o.onicecandidate=({candidate:y})=>{i.write({type:ft.Type.ICE_CANDIDATE,data:y!=null?JSON.stringify(y.toJSON()):""}).catch(d=>{Cr.error("error sending ICE candidate",d)})};let u=await o.createOffer();await i.write({type:ft.Type.SDP_OFFER,data:u.sdp}),await o.setLocalDescription(u).catch(y=>{throw Cr.error("could not execute setLocalDescription",y),new Error("Failed to set localDescription")});let f=await i.read();if(f.type!==ft.Type.SDP_ANSWER)throw new Error("remote should send an SDP answer");let l=new Na({type:"answer",sdp:f.data});await o.setRemoteDescription(l).catch(y=>{throw Cr.error("could not execute setRemoteDescription",y),new Error("Failed to set remoteDescription")}),await ac(a,o,i),c.close();let h=Al(o.currentRemoteDescription?.sdp??"");return{pc:o,muxerFactory:s,remoteAddress:h}}catch(s){throw o.close(),s}}function Al(e){let t=e.split(`\r
30
- `).filter(n=>n.startsWith("a=candidate")).pop(),r=t?.split(" ");return t==null||r==null||r.length<5?(Cr("could not parse remote address from",t),"/webrtc"):`/dnsaddr/${r[4]}/${r[2].toLowerCase()}/${r[3]}/webrtc`}var Do=class extends EventTarget{#e=new Map;listenerCount(t){let r=this.#e.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#e.get(t);i==null&&(i=[],this.#e.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#e.get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#e.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#e.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new nm(t,r))}},uc=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},nm=globalThis.CustomEvent??uc;var im=z("dns4"),om=z("dns6"),sm=z("dnsaddr"),jr=Ue(z("dns"),sm,im,om),To=Ue(z("ip4"),z("ip6")),On=Ue(X(To,z("tcp")),X(jr,z("tcp"))),_o=X(To,z("udp")),am=X(_o,z("utp")),cm=X(_o,z("quic")),um=X(_o,z("quic-v1")),fc=Ue(X(On,z("ws")),X(jr,z("ws"))),Bo=Ue(X(fc,z("p2p")),fc),lc=Ue(X(On,z("wss")),X(jr,z("wss")),X(On,z("tls"),z("ws")),X(jr,z("tls"),z("ws"))),Io=Ue(X(lc,z("p2p")),lc),hc=Ue(X(On,z("http")),X(To,z("http")),X(jr,z("http"))),dc=Ue(X(On,z("https")),X(To,z("https")),X(jr,z("https"))),Dl=X(_o,z("webrtc-direct"),z("certhash")),Tl=Ue(X(Dl,z("p2p")),Dl),Bl=X(um,z("webtransport"),z("certhash"),z("certhash")),_l=Ue(X(Bl,z("p2p")),Bl),kl=Ue(X(Bo,z("p2p-webrtc-star"),z("p2p")),X(Io,z("p2p-webrtc-star"),z("p2p")),X(Bo,z("p2p-webrtc-star")),X(Io,z("p2p-webrtc-star"))),q6=Ue(X(Bo,z("p2p-websocket-star"),z("p2p")),X(Io,z("p2p-websocket-star"),z("p2p")),X(Bo,z("p2p-websocket-star")),X(Io,z("p2p-websocket-star"))),Rl=Ue(X(hc,z("p2p-webrtc-direct"),z("p2p")),X(dc,z("p2p-webrtc-direct"),z("p2p")),X(hc,z("p2p-webrtc-direct")),X(dc,z("p2p-webrtc-direct"))),Jr=Ue(fc,lc,hc,dc,kl,Rl,On,am,cm,jr,Tl,_l),H6=Ue(X(Jr,z("p2p-stardust"),z("p2p")),X(Jr,z("p2p-stardust"))),Ar=Ue(X(Jr,z("p2p")),kl,Rl,Tl,_l,z("p2p")),Il=Ue(X(Ar,z("p2p-circuit"),Ar),X(Ar,z("p2p-circuit")),X(z("p2p-circuit"),Ar),X(Jr,z("p2p-circuit")),X(z("p2p-circuit"),Jr),z("p2p-circuit")),Ll=()=>Ue(X(Il,Ll),Il),tr=Ll(),z6=Ue(X(tr,Ar,tr),X(Ar,tr),X(tr,Ar),tr,Ar);var G6=Ue(X(tr,z("webrtc"),z("p2p")),X(tr,z("webrtc")),X(Jr,z("webrtc"),z("p2p")),X(Jr,z("webrtc")),z("webrtc"));function Nl(e){function t(r){let n;try{n=er(r)}catch{return!1}let i=e(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return t}function X(...e){function t(r){if(r.length<e.length)return null;let n=r;return e.some(i=>(n=typeof i=="function"?i().partialMatch(r):i.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+e.join(" ")+" }"},input:e,matches:Nl(t),partialMatch:t}}function Ue(...e){function t(n){let i=null;return e.some(o=>{let s=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return s!=null?(i=s,!0):!1}),i}return{toString:function(){return"{ "+e.join(" ")+" }"},input:e,matches:Nl(t),partialMatch:t}}function z(e){let t=e;function r(i){let o;try{o=er(i)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===t}function n(i){return i.length===0?null:i[0]===t?i.slice(1):null}return{toString:function(){return t},matches:r,partialMatch:n}}var ko=class extends Do{peerId;transportManager;constructor(t){super(),this.peerId=t.peerId,this.transportManager=t.transportManager}async listen(){this.safeDispatchEvent("listening",{})}getAddrs(){return this.transportManager.getListeners().filter(t=>t!==this).map(t=>t.getAddrs().filter(r=>tr.matches(r)).map(r=>r.encapsulate(`/webrtc/p2p/${this.peerId}`))).flat()}async close(){this.safeDispatchEvent("close",{})}};var Pl=Je("libp2p:webrtc:peer"),fm="/webrtc",lm="/p2p-circuit",pc="/webrtc-signaling/0.0.1",hm=he("webrtc").code,Ro=class{components;init;_started=!1;constructor(t,r={}){this.components=t,this.init=r}isStarted(){return this._started}async start(){await this.components.registrar.handle(pc,t=>{this._onProtocol(t).catch(r=>{Pl.error("failed to handle incoming connect from %p",t.connection.remotePeer,r)})},{runOnTransientConnection:!0}),this._started=!0}async stop(){await this.components.registrar.unhandle(pc),this._started=!1}createListener(t){return new ko(this.components)}[Symbol.toStringTag]="@libp2p/webrtc";[eo]=!0;filter(t){return t.filter(r=>r.protoCodes().includes(hm))}async dial(t,r){Pl.trace("dialing address: ",t);let{baseAddr:n,peerId:i}=dm(t);if(r.signal==null){let a=new AbortController;r.signal=a.signal}let o=await this.components.transportManager.dial(n,r),s=await o.newStream(pc,{...r,runOnTransientConnection:!0});try{let{pc:a,muxerFactory:c,remoteAddress:u}=await Cl({stream:s,rtcConfiguration:this.init.rtcConfiguration,dataChannelOptions:this.init.dataChannel,signal:r.signal}),f=await r.upgrader.upgradeOutbound(new Hr({peerConnection:a,timeline:{open:Date.now()},remoteAddr:er(u).encapsulate(`/p2p/${i.toString()}`)}),{skipProtection:!0,skipEncryption:!0,muxerFactory:c});return await s.close(),f}catch(a){throw s.abort(a),a}finally{await o.close()}}async _onProtocol({connection:t,stream:r}){try{let{pc:n,muxerFactory:i,remoteAddress:o}=await Sl({rtcConfiguration:this.init.rtcConfiguration,connection:t,stream:r,dataChannelOptions:this.init.dataChannel});await this.components.upgrader.upgradeInbound(new Hr({peerConnection:n,timeline:{open:new Date().getTime()},remoteAddr:er(o).encapsulate(`/p2p/${t.remotePeer.toString()}`)}),{skipEncryption:!0,skipProtection:!0,muxerFactory:i})}catch(n){throw r.abort(n),n}finally{await t.close()}}};function dm(e){let t=e.toString().split(fm+"/");if(t.length!==2)throw new Z("webrtc protocol was not present in multiaddr",ut.ERR_INVALID_MULTIADDR);if(!t[0].includes(lm))throw new Z("p2p-circuit protocol was not present in multiaddr",ut.ERR_INVALID_MULTIADDR);let r=er(t[0]),i=er("/"+t[1]).getPeerId();if(i==null)throw new Z("destination peer id was missing",ut.ERR_INVALID_MULTIADDR);let o=r.protos().pop();if(o===void 0)throw new Z("invalid multiaddr",ut.ERR_INVALID_MULTIADDR);return o.name!=="p2p"&&(r=r.encapsulate(`/p2p/${i}`)),{baseAddr:r,peerId:pi(i)}}function yc(){let e=pt(),t=!1;return{sink:async r=>{if(t)throw new Error("already piped");t=!0,e.resolve(r)},source:async function*(){yield*await e.promise}()}}function Ul(){let e=yc(),t=yc();return[{source:e.source,sink:t.sink},{source:t.source,sink:e.sink}]}function pm(e){return e[Symbol.asyncIterator]!=null}function ym(...e){let t=[];for(let r of e)pm(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Mt({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Ol=ym;function Fl(e,...t){if(e==null)throw new Error("Empty pipeline");if(gc(e)){let n=e;e=()=>n.source}else if(Ml(e)||Kl(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&gc(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)gc(r[n])&&(r[n]=mm(r[n]));return gm(...r)}var gm=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},Kl=e=>e?.[Symbol.asyncIterator]!=null,Ml=e=>e?.[Symbol.iterator]!=null,gc=e=>e==null?!1:e.sink!=null&&e.source!=null,mm=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Mt({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(Kl(o))i=async function*(){yield*o,n.end()};else if(Ml(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Ol(n,i())}return e.source};var Vl=!!globalThis.process?.env?.DUMP_SESSION_KEYS;var xm=e=>e instanceof Uint8Array;var rr=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),ql=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),bm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!bm)throw new Error("Non little-endian hardware is not supported");function Lo(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function No(e){if(typeof e=="string"&&(e=Lo(e)),!xm(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}var wm=e=>Object.prototype.toString.call(e)==="[object Object]"&&e.constructor===Object;function Hl(e,t){if(t!==void 0&&(typeof t!="object"||!wm(t)))throw new Error("options must be object or undefined");return Object.assign(e,t)}function en(e,t){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");if(typeof t=="number"&&e.length!==t)throw new Error(`Uint8Array length ${t} expected`)}function zl(e,t){if(e.length!==t.length)throw new Error("equalBytes: Different size of Uint8Arrays");let r=!0;for(let n=0;n<e.length;n++)r&&(r=e[n]===t[n]);return r}function mc(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}function xc(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function vm(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Gl(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Em(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("hash must be wrapped by utils.wrapConstructor");xc(e.outputLen),xc(e.blockLen)}function Sm(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Cm(e,t){Gl(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Am={number:xc,bool:vm,bytes:Gl,hash:Em,exists:Sm,output:Cm},tt=Am;var Xe=(e,t)=>e[t++]&255|(e[t++]&255)<<8,bc=class{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,t=No(t),en(t,32);let r=Xe(t,0),n=Xe(t,2),i=Xe(t,4),o=Xe(t,6),s=Xe(t,8),a=Xe(t,10),c=Xe(t,12),u=Xe(t,14);this.r[0]=r&8191,this.r[1]=(r>>>13|n<<3)&8191,this.r[2]=(n>>>10|i<<6)&7939,this.r[3]=(i>>>7|o<<9)&8191,this.r[4]=(o>>>4|s<<12)&255,this.r[5]=s>>>1&8190,this.r[6]=(s>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=Xe(t,16+2*f)}process(t,r,n=!1){let i=n?0:2048,{h:o,r:s}=this,a=s[0],c=s[1],u=s[2],f=s[3],l=s[4],h=s[5],y=s[6],d=s[7],p=s[8],g=s[9],m=Xe(t,r+0),v=Xe(t,r+2),x=Xe(t,r+4),A=Xe(t,r+6),E=Xe(t,r+8),w=Xe(t,r+10),B=Xe(t,r+12),D=Xe(t,r+14),R=o[0]+(m&8191),F=o[1]+((m>>>13|v<<3)&8191),O=o[2]+((v>>>10|x<<6)&8191),K=o[3]+((x>>>7|A<<9)&8191),q=o[4]+((A>>>4|E<<12)&8191),j=o[5]+(E>>>1&8191),I=o[6]+((E>>>14|w<<2)&8191),L=o[7]+((w>>>11|B<<5)&8191),_=o[8]+((B>>>8|D<<8)&8191),k=o[9]+(D>>>5|i),S=0,U=S+R*a+F*(5*g)+O*(5*p)+K*(5*d)+q*(5*y);S=U>>>13,U&=8191,U+=j*(5*h)+I*(5*l)+L*(5*f)+_*(5*u)+k*(5*c),S+=U>>>13,U&=8191;let M=S+R*c+F*a+O*(5*g)+K*(5*p)+q*(5*d);S=M>>>13,M&=8191,M+=j*(5*y)+I*(5*h)+L*(5*l)+_*(5*f)+k*(5*u),S+=M>>>13,M&=8191;let H=S+R*u+F*c+O*a+K*(5*g)+q*(5*p);S=H>>>13,H&=8191,H+=j*(5*d)+I*(5*y)+L*(5*h)+_*(5*l)+k*(5*f),S+=H>>>13,H&=8191;let Q=S+R*f+F*u+O*c+K*a+q*(5*g);S=Q>>>13,Q&=8191,Q+=j*(5*p)+I*(5*d)+L*(5*y)+_*(5*h)+k*(5*l),S+=Q>>>13,Q&=8191;let J=S+R*l+F*f+O*u+K*c+q*a;S=J>>>13,J&=8191,J+=j*(5*g)+I*(5*p)+L*(5*d)+_*(5*y)+k*(5*h),S+=J>>>13,J&=8191;let oe=S+R*h+F*l+O*f+K*u+q*c;S=oe>>>13,oe&=8191,oe+=j*a+I*(5*g)+L*(5*p)+_*(5*d)+k*(5*y),S+=oe>>>13,oe&=8191;let ee=S+R*y+F*h+O*l+K*f+q*u;S=ee>>>13,ee&=8191,ee+=j*c+I*a+L*(5*g)+_*(5*p)+k*(5*d),S+=ee>>>13,ee&=8191;let re=S+R*d+F*y+O*h+K*l+q*f;S=re>>>13,re&=8191,re+=j*u+I*c+L*a+_*(5*g)+k*(5*p),S+=re>>>13,re&=8191;let ve=S+R*p+F*d+O*y+K*h+q*l;S=ve>>>13,ve&=8191,ve+=j*f+I*u+L*c+_*a+k*(5*g),S+=ve>>>13,ve&=8191;let be=S+R*g+F*p+O*d+K*y+q*h;S=be>>>13,be&=8191,be+=j*l+I*f+L*u+_*c+k*a,S+=be>>>13,be&=8191,S=(S<<2)+S|0,S=S+U|0,U=S&8191,S=S>>>13,M+=S,o[0]=U,o[1]=M,o[2]=H,o[3]=Q,o[4]=J,o[5]=oe,o[6]=ee,o[7]=re,o[8]=ve,o[9]=be}finalize(){let{h:t,pad:r}=this,n=new Uint16Array(10),i=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=i,i=t[a]>>>13,t[a]&=8191;t[0]+=i*5,i=t[0]>>>13,t[0]&=8191,t[1]+=i,i=t[1]>>>13,t[1]&=8191,t[2]+=i,n[0]=t[0]+5,i=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+i,i=n[a]>>>13,n[a]&=8191;n[9]-=8192;let o=(i^1)-1;for(let a=0;a<10;a++)n[a]&=o;o=~o;for(let a=0;a<10;a++)t[a]=t[a]&o|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let s=t[0]+r[0];t[0]=s&65535;for(let a=1;a<8;a++)s=(t[a]+r[a]|0)+(s>>>16)|0,t[a]=s&65535}update(t){tt.exists(this);let{buffer:r,blockLen:n}=this;t=No(t);let i=t.length;for(let o=0;o<i;){let s=Math.min(n-this.pos,i-o);if(s===n){for(;n<=i-o;o+=n)this.process(t,o);continue}r.set(t.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(r,0,!1),this.pos=0)}return this}destroy(){this.h.fill(0),this.r.fill(0),this.buffer.fill(0),this.pad.fill(0)}digestInto(t){tt.exists(this),tt.output(t,this),this.finished=!0;let{buffer:r,h:n}=this,{pos:i}=this;if(i){for(r[i++]=1;i<16;i++)r[i]=0;this.process(r,0,!0)}this.finalize();let o=0;for(let s=0;s<8;s++)t[o++]=n[s]>>>0,t[o++]=n[s]>>>8;return t}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}};function Dm(e){let t=(n,i)=>e(i).update(No(n)).digest(),r=e(new Uint8Array(32));return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}var Wl=Dm(e=>new bc(e));var Bm=Lo("expand 16-byte k"),Im=Lo("expand 32-byte k"),Tm=rr(Bm),_m=rr(Im),Po=e=>!(e.byteOffset%4),$l=e=>{let{core:t,rounds:r,counterRight:n,counterLen:i,allow128bitKeys:o,extendNonceFn:s,blockLen:a}=Hl({rounds:20,counterRight:!1,counterLen:8,allow128bitKeys:!0,blockLen:64},e);tt.number(i),tt.number(r),tt.number(a),tt.bool(n),tt.bool(o);let c=a/4;if(a%4!==0)throw new Error("Salsa/ChaCha: blockLen must be aligned to 4 bytes");return(u,f,l,h,y=0)=>{if(tt.bytes(u),tt.bytes(f),tt.bytes(l),h||(h=new Uint8Array(l.length)),tt.bytes(h),tt.number(y),y<0||y>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");if(h.length<l.length)throw new Error(`Salsa/ChaCha: output (${h.length}) is shorter than data (${l.length})`);let d=[],p,g;if(u.length===32)Po(u)?p=u:(p=u.slice(),d.push(p)),g=_m;else if(u.length===16&&o)p=new Uint8Array(32),p.set(u),p.set(u,16),g=Tm,d.push(p);else throw new Error(`Salsa/ChaCha: invalid 32-byte key, got length=${u.length}`);if(Po(f)||(f=f.slice(),d.push(f)),s){if(f.length<=16)throw new Error("Salsa/ChaCha: extended nonce must be bigger than 16 bytes");p=s(g,p,f.subarray(0,16),new Uint8Array(32)),d.push(p),f=f.subarray(16)}let m=16-i;if(f.length!==m)throw new Error(`Salsa/ChaCha: nonce must be ${m} or 16 bytes`);if(m!==12){let R=new Uint8Array(12);R.set(f,n?0:12-f.length),d.push(f=R)}let v=new Uint8Array(a),x=rr(v),A=rr(p),E=rr(f),w=Po(l)&&rr(l),B=Po(h)&&rr(h);d.push(x);let D=l.length;for(let R=0,F=y;R<D;F++){if(t(g,A,E,x,F,r),F>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");let O=Math.min(a,D-R);if(O===a&&B&&w){let K=R/4;if(R%4!==0)throw new Error("Salsa/ChaCha: invalid block position");for(let q=0;q<c;q++)B[K+q]=w[K+q]^x[q];R+=a;continue}for(let K=0;K<O;K++)h[R+K]=l[R+K]^v[K];R+=O}for(let R=0;R<d.length;R++)d[R].fill(0);return h}};var de=(e,t)=>e<<t|e>>>32-t;function km(e,t,r,n,i,o=20){let s=e[0],a=e[1],c=e[2],u=e[3],f=t[0],l=t[1],h=t[2],y=t[3],d=t[4],p=t[5],g=t[6],m=t[7],v=i,x=r[0],A=r[1],E=r[2],w=s,B=a,D=c,R=u,F=f,O=l,K=h,q=y,j=d,I=p,L=g,_=m,k=v,S=x,U=A,M=E;for(let Q=0;Q<o;Q+=2)w=w+F|0,k=de(k^w,16),j=j+k|0,F=de(F^j,12),w=w+F|0,k=de(k^w,8),j=j+k|0,F=de(F^j,7),B=B+O|0,S=de(S^B,16),I=I+S|0,O=de(O^I,12),B=B+O|0,S=de(S^B,8),I=I+S|0,O=de(O^I,7),D=D+K|0,U=de(U^D,16),L=L+U|0,K=de(K^L,12),D=D+K|0,U=de(U^D,8),L=L+U|0,K=de(K^L,7),R=R+q|0,M=de(M^R,16),_=_+M|0,q=de(q^_,12),R=R+q|0,M=de(M^R,8),_=_+M|0,q=de(q^_,7),w=w+O|0,M=de(M^w,16),L=L+M|0,O=de(O^L,12),w=w+O|0,M=de(M^w,8),L=L+M|0,O=de(O^L,7),B=B+K|0,k=de(k^B,16),_=_+k|0,K=de(K^_,12),B=B+K|0,k=de(k^B,8),_=_+k|0,K=de(K^_,7),D=D+q|0,S=de(S^D,16),j=j+S|0,q=de(q^j,12),D=D+q|0,S=de(S^D,8),j=j+S|0,q=de(q^j,7),R=R+F|0,U=de(U^R,16),I=I+U|0,F=de(F^I,12),R=R+F|0,U=de(U^R,8),I=I+U|0,F=de(F^I,7);let H=0;n[H++]=s+w|0,n[H++]=a+B|0,n[H++]=c+D|0,n[H++]=u+R|0,n[H++]=f+F|0,n[H++]=l+O|0,n[H++]=h+K|0,n[H++]=y+q|0,n[H++]=d+j|0,n[H++]=p+I|0,n[H++]=g+L|0,n[H++]=m+_|0,n[H++]=v+k|0,n[H++]=x+S|0,n[H++]=A+U|0,n[H++]=E+M|0}var Rm=$l({core:km,counterRight:!1,counterLen:4,allow128bitKeys:!1});var Lm=new Uint8Array(16),Yl=(e,t)=>{e.update(t);let r=t.length%16;r&&e.update(Lm.subarray(r))},Zl=(e,t,r,n,i)=>{let o=e(t,r,new Uint8Array(32)),s=Wl.create(o);i&&Yl(s,i),Yl(s,n);let a=new Uint8Array(16),c=ql(a);mc(c,0,BigInt(i?i.length:0),!0),mc(c,8,BigInt(n.length),!0),s.update(a);let u=s.digest();return o.fill(0),u},Nm=e=>(t,r,n)=>(en(t,32),en(r),{tagLength:16,encrypt:(o,s)=>{let a=o.length,c=a+16;s?en(s,c):s=new Uint8Array(c),e(t,r,o,s,1);let u=Zl(e,t,r,s.subarray(0,-16),n);return s.set(u,a),s},decrypt:(o,s)=>{let a=o.length,c=a-16;if(a<16)throw new Error("encrypted data must be at least 16 bytes");s?en(s,c):s=new Uint8Array(c);let u=o.subarray(0,-16),f=o.subarray(-16),l=Zl(e,t,r,u,n);if(!zl(f,l))throw new Error("invalid tag");return e(t,r,u,s,1),s}}),wc=Nm(Rm);function Uo(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function vc(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Ei(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Uo(e.outputLen),Uo(e.blockLen)}function Fn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Xl(e,t){vc(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Oo=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Ql=e=>e instanceof Uint8Array;var Fo=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),kt=(e,t)=>e<<32-t|e>>>t,Pm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Pm)throw new Error("Non little-endian hardware is not supported");function Ec(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Dr(e){if(typeof e=="string"&&(e=Ec(e)),!Ql(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function Ko(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Ql(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Kn=class{clone(){return this._cloneInto()}},LC={}.toString;function Mo(e){let t=n=>e().update(Dr(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function tn(e=32){if(Oo&&typeof Oo.getRandomValues=="function")return Oo.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function Um(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}var Mn=class extends Kn{constructor(t,r,n,i){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Fo(this.buffer)}update(t){Fn(this);let{view:r,buffer:n,blockLen:i}=this;t=Dr(t);let o=t.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=Fo(t);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Fn(this),Xl(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let l=s;l<i;l++)r[l]=0;Um(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=Fo(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:s,pos:a}=this;return t.length=i,t.pos=a,t.finished=o,t.destroyed=s,i%r&&t.buffer.set(n),t}};var Vo=BigInt(4294967295),Sc=BigInt(32);function jl(e,t=!1){return t?{h:Number(e&Vo),l:Number(e>>Sc&Vo)}:{h:Number(e>>Sc&Vo)|0,l:Number(e&Vo)|0}}function Om(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:o,l:s}=jl(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var Fm=(e,t)=>BigInt(e>>>0)<<Sc|BigInt(t>>>0),Km=(e,t,r)=>e>>>r,Mm=(e,t,r)=>e<<32-r|t>>>r,Vm=(e,t,r)=>e>>>r|t<<32-r,qm=(e,t,r)=>e<<32-r|t>>>r,Hm=(e,t,r)=>e<<64-r|t>>>r-32,zm=(e,t,r)=>e>>>r-32|t<<64-r,Gm=(e,t)=>t,Wm=(e,t)=>e,$m=(e,t,r)=>e<<r|t>>>32-r,Ym=(e,t,r)=>t<<r|e>>>32-r,Zm=(e,t,r)=>t<<r-32|e>>>64-r,Xm=(e,t,r)=>e<<r-32|t>>>64-r;function Qm(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var jm=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Jm=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,ex=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),tx=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,rx=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),nx=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var ix={fromBig:jl,split:Om,toBig:Fm,shrSH:Km,shrSL:Mm,rotrSH:Vm,rotrSL:qm,rotrBH:Hm,rotrBL:zm,rotr32H:Gm,rotr32L:Wm,rotlSH:$m,rotlSL:Ym,rotlBH:Zm,rotlBL:Xm,add:Qm,add3L:jm,add3H:Jm,add4L:ex,add4H:tx,add5H:nx,add5L:rx},ne=ix;var[ox,sx]=(()=>ne.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),Br=new Uint32Array(80),Ir=new Uint32Array(80),Cc=class extends Mn{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:o,Cl:s,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:h,Gh:y,Gl:d,Hh:p,Hl:g}=this;return[t,r,n,i,o,s,a,c,u,f,l,h,y,d,p,g]}set(t,r,n,i,o,s,a,c,u,f,l,h,y,d,p,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=s|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=h|0,this.Gh=y|0,this.Gl=d|0,this.Hh=p|0,this.Hl=g|0}process(t,r){for(let x=0;x<16;x++,r+=4)Br[x]=t.getUint32(r),Ir[x]=t.getUint32(r+=4);for(let x=16;x<80;x++){let A=Br[x-15]|0,E=Ir[x-15]|0,w=ne.rotrSH(A,E,1)^ne.rotrSH(A,E,8)^ne.shrSH(A,E,7),B=ne.rotrSL(A,E,1)^ne.rotrSL(A,E,8)^ne.shrSL(A,E,7),D=Br[x-2]|0,R=Ir[x-2]|0,F=ne.rotrSH(D,R,19)^ne.rotrBH(D,R,61)^ne.shrSH(D,R,6),O=ne.rotrSL(D,R,19)^ne.rotrBL(D,R,61)^ne.shrSL(D,R,6),K=ne.add4L(B,O,Ir[x-7],Ir[x-16]),q=ne.add4H(K,w,F,Br[x-7],Br[x-16]);Br[x]=q|0,Ir[x]=K|0}let{Ah:n,Al:i,Bh:o,Bl:s,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:h,Fh:y,Fl:d,Gh:p,Gl:g,Hh:m,Hl:v}=this;for(let x=0;x<80;x++){let A=ne.rotrSH(l,h,14)^ne.rotrSH(l,h,18)^ne.rotrBH(l,h,41),E=ne.rotrSL(l,h,14)^ne.rotrSL(l,h,18)^ne.rotrBL(l,h,41),w=l&y^~l&p,B=h&d^~h&g,D=ne.add5L(v,E,B,sx[x],Ir[x]),R=ne.add5H(D,m,A,w,ox[x],Br[x]),F=D|0,O=ne.rotrSH(n,i,28)^ne.rotrBH(n,i,34)^ne.rotrBH(n,i,39),K=ne.rotrSL(n,i,28)^ne.rotrBL(n,i,34)^ne.rotrBL(n,i,39),q=n&o^n&a^o&a,j=i&s^i&c^s&c;m=p|0,v=g|0,p=y|0,g=d|0,y=l|0,d=h|0,{h:l,l:h}=ne.add(u|0,f|0,R|0,F|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let I=ne.add3L(F,K,j);n=ne.add3H(I,R,O,q),i=I|0}({h:n,l:i}=ne.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=ne.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=ne.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=ne.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:h}=ne.add(this.Eh|0,this.El|0,l|0,h|0),{h:y,l:d}=ne.add(this.Fh|0,this.Fl|0,y|0,d|0),{h:p,l:g}=ne.add(this.Gh|0,this.Gl|0,p|0,g|0),{h:m,l:v}=ne.add(this.Hh|0,this.Hl|0,m|0,v|0),this.set(n,i,o,s,a,c,u,f,l,h,y,d,p,g,m,v)}roundClean(){Br.fill(0),Ir.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Ac=Mo(()=>new Cc);var zo={};ue(zo,{bitGet:()=>dx,bitLen:()=>hx,bitMask:()=>Si,bitSet:()=>px,bytesToHex:()=>nr,bytesToNumberBE:()=>ir,bytesToNumberLE:()=>Rt,concatBytes:()=>sr,createHmacDrbg:()=>Ic,ensureBytes:()=>Se,equalBytes:()=>fx,hexToBytes:()=>rn,hexToNumber:()=>Bc,numberToBytesBE:()=>Tr,numberToBytesLE:()=>or,numberToHexUnpadded:()=>th,numberToVarBytesBE:()=>ux,utf8ToBytes:()=>lx,validateObject:()=>mt});var eh=BigInt(0),qo=BigInt(1),ax=BigInt(2),Ho=e=>e instanceof Uint8Array,cx=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function nr(e){if(!Ho(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=cx[e[r]];return t}function th(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Bc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function rn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,o=e.slice(i,i+2),s=Number.parseInt(o,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");r[n]=s}return r}function ir(e){return Bc(nr(e))}function Rt(e){if(!Ho(e))throw new Error("Uint8Array expected");return Bc(nr(Uint8Array.from(e).reverse()))}function Tr(e,t){return rn(e.toString(16).padStart(t*2,"0"))}function or(e,t){return Tr(e,t).reverse()}function ux(e){return rn(th(e))}function Se(e,t,r){let n;if(typeof t=="string")try{n=rn(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Ho(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function sr(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Ho(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function fx(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function lx(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function hx(e){let t;for(t=0;e>eh;e>>=qo,t+=1);return t}function dx(e,t){return e>>BigInt(t)&qo}var px=(e,t,r)=>e|(r?qo:eh)<<BigInt(t),Si=e=>(ax<<BigInt(e-1))-qo,Dc=e=>new Uint8Array(e),Jl=e=>Uint8Array.from(e);function Ic(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Dc(e),i=Dc(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=Dc())=>{i=a(Jl([0]),l),n=a(),l.length!==0&&(i=a(Jl([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,h=[];for(;l<t;){n=a();let y=n.slice();h.push(y),l+=n.length}return sr(...h)};return(l,h)=>{s(),c(l);let y;for(;!(y=h(u()));)c();return s(),y}}var yx={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function mt(e,t,r={}){let n=(i,o,s)=>{let a=yx[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(s&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${o}`)};for(let[i,o]of Object.entries(t))n(i,o,!1);for(let[i,o]of Object.entries(r))n(i,o,!0);return e}var Me=BigInt(0),Ie=BigInt(1),nn=BigInt(2),gx=BigInt(3),Tc=BigInt(4),rh=BigInt(5),nh=BigInt(8),mx=BigInt(9),xx=BigInt(16);function pe(e,t){let r=e%t;return r>=Me?r:t+r}function _c(e,t,r){if(r<=Me||t<Me)throw new Error("Expected power/modulo > 0");if(r===Ie)return Me;let n=Ie;for(;t>Me;)t&Ie&&(n=n*e%r),e=e*e%r,t>>=Ie;return n}function Ce(e,t,r){let n=e;for(;t-- >Me;)n*=n,n%=r;return n}function Go(e,t){if(e===Me||t<=Me)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=pe(e,t),n=t,i=Me,o=Ie,s=Ie,a=Me;for(;r!==Me;){let u=n/r,f=n%r,l=i-s*u,h=o-a*u;n=r,r=f,i=s,o=a,s=l,a=h}if(n!==Ie)throw new Error("invert: does not exist");return pe(i,t)}function bx(e){let t=(e-Ie)/nn,r,n,i;for(r=e-Ie,n=0;r%nn===Me;r/=nn,n++);for(i=nn;i<e&&_c(i,t,e)!==e-Ie;i++);if(n===1){let s=(e+Ie)/Tc;return function(c,u){let f=c.pow(u,s);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+Ie)/nn;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,i),r),l=a.pow(c,o),h=a.pow(c,r);for(;!a.eql(h,a.ONE);){if(a.eql(h,a.ZERO))return a.ZERO;let y=1;for(let p=a.sqr(h);y<u&&!a.eql(p,a.ONE);y++)p=a.sqr(p);let d=a.pow(f,Ie<<BigInt(u-y-1));f=a.sqr(d),l=a.mul(l,d),h=a.mul(h,f),u=y}return l}}function wx(e){if(e%Tc===gx){let t=(e+Ie)/Tc;return function(n,i){let o=n.pow(i,t);if(!n.eql(n.sqr(o),i))throw new Error("Cannot find square root");return o}}if(e%nh===rh){let t=(e-rh)/nh;return function(n,i){let o=n.mul(i,nn),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,nn),s),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%xx,bx(e)}var ih=(e,t)=>(pe(e,t)&Ie)===Ie,vx=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kc(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=vx.reduce((n,i)=>(n[i]="function",n),t);return mt(e,r)}function Ex(e,t,r){if(r<Me)throw new Error("Expected power > 0");if(r===Me)return e.ONE;if(r===Ie)return t;let n=e.ONE,i=t;for(;r>Me;)r&Ie&&(n=e.mul(n,i)),i=e.sqr(i),r>>=Ie;return n}function Sx(e,t){let r=new Array(t.length),n=t.reduce((o,s,a)=>e.is0(s)?o:(r[a]=o,e.mul(o,s)),e.ONE),i=e.inv(n);return t.reduceRight((o,s,a)=>e.is0(s)?o:(r[a]=e.mul(o,r[a]),e.mul(o,s)),i),r}function Rc(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Wo(e,t,r=!1,n={}){if(e<=Me)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=Rc(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=wx(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:Si(i),ZERO:Me,ONE:Ie,create:c=>pe(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Me<=c&&c<e},is0:c=>c===Me,isOdd:c=>(c&Ie)===Ie,neg:c=>pe(-c,e),eql:(c,u)=>c===u,sqr:c=>pe(c*c,e),add:(c,u)=>pe(c+u,e),sub:(c,u)=>pe(c-u,e),mul:(c,u)=>pe(c*u,e),pow:(c,u)=>Ex(a,c,u),div:(c,u)=>pe(c*Go(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Go(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>Sx(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?or(c,o):Tr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?Rt(c):ir(c)}});return Object.freeze(a)}function oh(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function sh(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Lc(e){let t=sh(e);return t+Math.ceil(t/2)}function ah(e,t,r=!1){let n=e.length,i=sh(t),o=Lc(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let s=r?ir(e):Rt(e),a=pe(s,t-Ie)+Ie;return r?or(a,i):Tr(a,i)}var Ax=BigInt(0),Nc=BigInt(1);function $o(e,t){let r=(i,o)=>{let s=o.negate();return i?s:o},n=i=>{let o=Math.ceil(t/i)+1,s=2**(i-1);return{windows:o,windowSize:s}};return{constTimeNegate:r,unsafeLadder(i,o){let s=e.ZERO,a=i;for(;o>Ax;)o&Nc&&(s=s.add(a)),a=a.double(),o>>=Nc;return s},precomputeWindow(i,o){let{windows:s,windowSize:a}=n(o),c=[],u=i,f=u;for(let l=0;l<s;l++){f=u,c.push(f);for(let h=1;h<a;h++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,s){let{windows:a,windowSize:c}=n(i),u=e.ZERO,f=e.BASE,l=BigInt(2**i-1),h=2**i,y=BigInt(i);for(let d=0;d<a;d++){let p=d*c,g=Number(s&l);s>>=y,g>c&&(g-=h,s+=Nc);let m=p,v=p+Math.abs(g)-1,x=d%2!==0,A=g<0;g===0?f=f.add(r(x,o[m])):u=u.add(r(A,o[v]))}return{p:u,f}},wNAFCached(i,o,s,a){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,a(u))),this.wNAF(c,u,s)}}}function Ci(e){return kc(e.Fp),mt(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Rc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Lt=BigInt(0),lt=BigInt(1),Yo=BigInt(2),Dx=BigInt(8),Bx={zip215:!0};function Ix(e){let t=Ci(e);return mt(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function Zo(e){let t=Ix(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=Yo<<BigInt(a*8)-lt,f=r.create,l=t.uvRatio||((k,S)=>{try{return{isValid:!0,value:r.sqrt(k*r.inv(S))}}catch{return{isValid:!1,value:Lt}}}),h=t.adjustScalarBytes||(k=>k),y=t.domain||((k,S,U)=>{if(S.length||U)throw new Error("Contexts/pre-hash are not supported");return k}),d=k=>typeof k=="bigint"&&Lt<k,p=(k,S)=>d(k)&&d(S)&&k<S,g=k=>k===Lt||p(k,u);function m(k,S){if(p(k,S))return k;throw new Error(`Expected valid scalar < ${S}, got ${typeof k} ${k}`)}function v(k){return k===Lt?k:m(k,n)}let x=new Map;function A(k){if(!(k instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(S,U,M,H){if(this.ex=S,this.ey=U,this.ez=M,this.et=H,!g(S))throw new Error("x required");if(!g(U))throw new Error("y required");if(!g(M))throw new Error("z required");if(!g(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(S){if(S instanceof E)throw new Error("extended point not allowed");let{x:U,y:M}=S||{};if(!g(U)||!g(M))throw new Error("invalid affine point");return new E(U,M,lt,f(U*M))}static normalizeZ(S){let U=r.invertBatch(S.map(M=>M.ez));return S.map((M,H)=>M.toAffine(U[H])).map(E.fromAffine)}_setWindowSize(S){this._WINDOW_SIZE=S,x.delete(this)}assertValidity(){let{a:S,d:U}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:H,ez:Q,et:J}=this,oe=f(M*M),ee=f(H*H),re=f(Q*Q),ve=f(re*re),be=f(oe*S),We=f(re*f(be+ee)),$e=f(ve+f(U*f(oe*ee)));if(We!==$e)throw new Error("bad point: equation left != right (1)");let Ke=f(M*H),je=f(Q*J);if(Ke!==je)throw new Error("bad point: equation left != right (2)")}equals(S){A(S);let{ex:U,ey:M,ez:H}=this,{ex:Q,ey:J,ez:oe}=S,ee=f(U*oe),re=f(Q*H),ve=f(M*oe),be=f(J*H);return ee===re&&ve===be}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:S}=t,{ex:U,ey:M,ez:H}=this,Q=f(U*U),J=f(M*M),oe=f(Yo*f(H*H)),ee=f(S*Q),re=U+M,ve=f(f(re*re)-Q-J),be=ee+J,We=be-oe,$e=ee-J,Ke=f(ve*We),je=f(be*$e),Qt=f(ve*$e),Fr=f(We*be);return new E(Ke,je,Fr,Qt)}add(S){A(S);let{a:U,d:M}=t,{ex:H,ey:Q,ez:J,et:oe}=this,{ex:ee,ey:re,ez:ve,et:be}=S;if(U===BigInt(-1)){let uu=f((Q-H)*(re+ee)),fu=f((Q+H)*(re-ee)),Ks=f(fu-uu);if(Ks===Lt)return this.double();let lu=f(J*Yo*be),hu=f(oe*Yo*ve),du=hu+lu,pu=fu+uu,yu=hu-lu,y2=f(du*Ks),g2=f(pu*yu),m2=f(du*yu),x2=f(Ks*pu);return new E(y2,g2,x2,m2)}let We=f(H*ee),$e=f(Q*re),Ke=f(oe*M*be),je=f(J*ve),Qt=f((H+Q)*(ee+re)-We-$e),Fr=je-Ke,ci=je+Ke,cu=f($e-U*We),l2=f(Qt*Fr),h2=f(ci*cu),d2=f(Qt*cu),p2=f(Fr*ci);return new E(l2,h2,p2,d2)}subtract(S){return this.add(S.negate())}wNAF(S){return D.wNAFCached(this,x,S,E.normalizeZ)}multiply(S){let{p:U,f:M}=this.wNAF(m(S,n));return E.normalizeZ([U,M])[0]}multiplyUnsafe(S){let U=v(S);return U===Lt?B:this.equals(B)||U===lt?this:this.equals(w)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(S){let{ex:U,ey:M,ez:H}=this,Q=this.is0();S==null&&(S=Q?Dx:r.inv(H));let J=f(U*S),oe=f(M*S),ee=f(H*S);if(Q)return{x:Lt,y:lt};if(ee!==lt)throw new Error("invZ was invalid");return{x:J,y:oe}}clearCofactor(){let{h:S}=t;return S===lt?this:this.multiplyUnsafe(S)}static fromHex(S,U=!1){let{d:M,a:H}=t,Q=r.BYTES;S=Se("pointHex",S,Q);let J=S.slice(),oe=S[Q-1];J[Q-1]=oe&-129;let ee=Rt(J);ee===Lt||(U?m(ee,u):m(ee,r.ORDER));let re=f(ee*ee),ve=f(re-lt),be=f(M*re-H),{isValid:We,value:$e}=l(ve,be);if(!We)throw new Error("Point.fromHex: invalid y coordinate");let Ke=($e&lt)===lt,je=(oe&128)!==0;if(!U&&$e===Lt&&je)throw new Error("Point.fromHex: x=0 and x_0=1");return je!==Ke&&($e=f(-$e)),E.fromAffine({x:$e,y:ee})}static fromPrivateKey(S){return O(S).point}toRawBytes(){let{x:S,y:U}=this.toAffine(),M=or(U,r.BYTES);return M[M.length-1]|=S&lt?128:0,M}toHex(){return nr(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,lt,f(t.Gx*t.Gy)),E.ZERO=new E(Lt,lt,lt,Lt);let{BASE:w,ZERO:B}=E,D=$o(E,a*8);function R(k){return pe(k,n)}function F(k){return R(Rt(k))}function O(k){let S=a;k=Se("private key",k,S);let U=Se("hashed private key",o(k),2*S),M=h(U.slice(0,S)),H=U.slice(S,2*S),Q=F(M),J=w.multiply(Q),oe=J.toRawBytes();return{head:M,prefix:H,scalar:Q,point:J,pointBytes:oe}}function K(k){return O(k).pointBytes}function q(k=new Uint8Array,...S){let U=sr(...S);return F(o(y(U,Se("context",k),!!i)))}function j(k,S,U={}){k=Se("message",k),i&&(k=i(k));let{prefix:M,scalar:H,pointBytes:Q}=O(S),J=q(U.context,M,k),oe=w.multiply(J).toRawBytes(),ee=q(U.context,oe,Q,k),re=R(J+ee*H);v(re);let ve=sr(oe,or(re,r.BYTES));return Se("result",ve,a*2)}let I=Bx;function L(k,S,U,M=I){let{context:H,zip215:Q}=M,J=r.BYTES;k=Se("signature",k,2*J),S=Se("message",S),i&&(S=i(S));let oe=Rt(k.slice(J,2*J)),ee,re,ve;try{ee=E.fromHex(U,Q),re=E.fromHex(k.slice(0,J),Q),ve=w.multiplyUnsafe(oe)}catch{return!1}if(!Q&&ee.isSmallOrder())return!1;let be=q(H,re.toRawBytes(),ee.toRawBytes(),S);return re.add(ee.multiplyUnsafe(be)).subtract(ve).clearCofactor().equals(E.ZERO)}return w._setWindowSize(8),{CURVE:t,getPublicKey:K,sign:j,verify:L,ExtendedPoint:E,utils:{getExtendedPublicKey:O,randomPrivateKey:()=>s(r.BYTES),precompute(k=8,S=E.BASE){return S._setWindowSize(k),S.multiply(BigInt(3)),S}}}}var Ai=BigInt(0),Pc=BigInt(1);function Tx(e){return mt(e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...e})}function ch(e){let t=Tx(e),{P:r}=t,n=x=>pe(x,r),i=t.montgomeryBits,o=Math.ceil(i/8),s=t.nByteLength,a=t.adjustScalarBytes||(x=>x),c=t.powPminus2||(x=>_c(x,r-BigInt(2),r));function u(x,A,E){let w=n(x*(A-E));return A=n(A-w),E=n(E+w),[A,E]}function f(x){if(typeof x=="bigint"&&Ai<=x&&x<r)return x;throw new Error("Expected valid scalar 0 < scalar < CURVE.P")}let l=(t.a-BigInt(2))/BigInt(4);function h(x,A){let E=f(x),w=f(A),B=E,D=Pc,R=Ai,F=E,O=Pc,K=Ai,q;for(let I=BigInt(i-1);I>=Ai;I--){let L=w>>I&Pc;K^=L,q=u(K,D,F),D=q[0],F=q[1],q=u(K,R,O),R=q[0],O=q[1],K=L;let _=D+R,k=n(_*_),S=D-R,U=n(S*S),M=k-U,H=F+O,Q=F-O,J=n(Q*_),oe=n(H*S),ee=J+oe,re=J-oe;F=n(ee*ee),O=n(B*n(re*re)),D=n(k*U),R=n(M*(k+n(l*M)))}q=u(K,D,F),D=q[0],F=q[1],q=u(K,R,O),R=q[0],O=q[1];let j=c(R);return n(D*j)}function y(x){return or(n(x),o)}function d(x){let A=Se("u coordinate",x,o);return s===o&&(A[s-1]&=127),Rt(A)}function p(x){let A=Se("scalar",x);if(A.length!==o&&A.length!==s)throw new Error(`Expected ${o} or ${s} bytes, got ${A.length}`);return Rt(a(A))}function g(x,A){let E=d(A),w=p(x),B=h(E,w);if(B===Ai)throw new Error("Invalid private or public key received");return y(B)}let m=y(t.Gu);function v(x){return g(x,m)}return{scalarMult:g,scalarMultBase:v,getSharedSecret:(x,A)=>g(x,A),getPublicKey:x=>v(x),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:m}}var Di=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),uh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),oA=BigInt(0),_x=BigInt(1),Uc=BigInt(2),kx=BigInt(5),fh=BigInt(10),Rx=BigInt(20),Lx=BigInt(40),lh=BigInt(80);function hh(e){let t=Di,n=e*e%t*e%t,i=Ce(n,Uc,t)*n%t,o=Ce(i,_x,t)*e%t,s=Ce(o,kx,t)*o%t,a=Ce(s,fh,t)*s%t,c=Ce(a,Rx,t)*a%t,u=Ce(c,Lx,t)*c%t,f=Ce(u,lh,t)*u%t,l=Ce(f,lh,t)*u%t,h=Ce(l,fh,t)*s%t;return{pow_p_5_8:Ce(h,Uc,t)*e%t,b2:n}}function dh(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function Nx(e,t){let r=Di,n=pe(t*t*t,r),i=pe(n*n*t,r),o=hh(e*i).pow_p_5_8,s=pe(e*n*o,r),a=pe(t*s*s,r),c=s,u=pe(s*uh,r),f=a===e,l=a===pe(-e,r),h=a===pe(-e*uh,r);return f&&(s=c),(l||h)&&(s=u),ih(s,r)&&(s=pe(-s,r)),{isValid:f||l,value:s}}var ar=Wo(Di,void 0,!0),Oc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ar,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Ac,randomBytes:tn,adjustScalarBytes:dh,uvRatio:Nx},Vn=Zo(Oc);function ph(e,t,r){if(t.length>255)throw new Error("Context is too big");return Ko(Ec("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var sA=Zo({...Oc,domain:ph}),aA=Zo({...Oc,domain:ph,prehash:Ac}),Bi=(()=>ch({P:Di,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:e=>{let t=Di,{pow_p_5_8:r,b2:n}=hh(e);return pe(Ce(r,BigInt(3),t)*n,t)},adjustScalarBytes:dh,randomBytes:tn}))();var Px=(ar.ORDER+BigInt(3))/BigInt(8),cA=ar.pow(Uc,Px),uA=ar.sqrt(ar.neg(ar.ONE)),fA=(ar.ORDER-BigInt(5))/BigInt(8),lA=BigInt(486662);var hA=oh(ar,ar.neg(BigInt(486664)));var dA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),pA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),yA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),gA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var mA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Xo=class extends Kn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,Ei(t);let n=Dr(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?t.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(t){return Fn(this),this.iHash.update(t),this}digestInto(t){Fn(this),vc(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:s,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=s,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},qn=(e,t,r)=>new Xo(e,t).update(r).digest();qn.create=(e,t)=>new Xo(e,t);function gh(e,t,r){return Ei(e),r===void 0&&(r=new Uint8Array(e.outputLen)),qn(e,Dr(r),Dr(t))}var Fc=new Uint8Array([0]),yh=new Uint8Array;function mh(e,t,r,n=32){if(Ei(e),Uo(n),n>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");let i=Math.ceil(n/e.outputLen);r===void 0&&(r=yh);let o=new Uint8Array(i*e.outputLen),s=qn.create(e,t),a=s._cloneInto(),c=new Uint8Array(s.outputLen);for(let u=0;u<i;u++)Fc[0]=u+1,a.update(u===0?yh:c).update(r).update(Fc).digestInto(c),o.set(c,e.outputLen*u),s._cloneInto(a);return s.destroy(),a.destroy(),c.fill(0),Fc.fill(0),o.slice(0,n)}var Ux=(e,t,r)=>e&t^~e&r,Ox=(e,t,r)=>e&t^e&r^t&r,Fx=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),_r=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kr=new Uint32Array(64),Kc=class extends Mn{constructor(){super(64,32,8,!1),this.A=_r[0]|0,this.B=_r[1]|0,this.C=_r[2]|0,this.D=_r[3]|0,this.E=_r[4]|0,this.F=_r[5]|0,this.G=_r[6]|0,this.H=_r[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[t,r,n,i,o,s,a,c]}set(t,r,n,i,o,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)kr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let h=kr[l-15],y=kr[l-2],d=kt(h,7)^kt(h,18)^h>>>3,p=kt(y,17)^kt(y,19)^y>>>10;kr[l]=p+kr[l-7]+d+kr[l-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let h=kt(a,6)^kt(a,11)^kt(a,25),y=f+h+Ux(a,c,u)+Fx[l]+kr[l]|0,p=(kt(n,2)^kt(n,13)^kt(n,22))+Ox(n,i,o)|0;f=u,u=c,c=a,a=s+y|0,s=o,o=i,i=n,n=y+p|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){kr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Hn=Mo(()=>new Kc);var Mc={hashSHA256(e){return Hn(e)},getHKDF(e,t){let r=gh(Hn,t,e),i=mh(Hn,r,void 0,96),o=i.subarray(0,32),s=i.subarray(32,64),a=i.subarray(64,96);return[o,s,a]},generateX25519KeyPair(){let e=Bi.utils.randomPrivateKey();return{publicKey:Bi.getPublicKey(e),privateKey:e}},generateX25519KeyPairFromSeed(e){return{publicKey:Bi.getPublicKey(e),privateKey:e}},generateX25519SharedKey(e,t){return Bi.getSharedSecret(e,t)},chaCha20Poly1305Encrypt(e,t,r,n){return wc(n,t,r).encrypt(e)},chaCha20Poly1305Decrypt(e,t,r,n,i){return wc(n,t,r).decrypt(e,i)}};var Kx=e=>globalThis.Buffer?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e),zn=e=>{let t=Kx(2);return new DataView(t.buffer,t.byteOffset,t.byteLength).setUint16(0,e,!1),t};zn.bytes=2;var Ii=e=>{if(e.length<2)throw RangeError("Could not decode int16BE");return e instanceof Uint8Array?new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,!1):e.getUint16(0)};Ii.bytes=2;function xh(e){return me([e.ne,e.ciphertext],e.ne.length+e.ciphertext.length)}function bh(e){return me([e.ne,e.ns,e.ciphertext],e.ne.length+e.ns.length+e.ciphertext.length)}function wh(e){return me([e.ns,e.ciphertext],e.ns.length+e.ciphertext.length)}function vh(e){if(e.length<32)throw new Error("Cannot decode stage 0 MessageBuffer: length less than 32 bytes.");return{ne:e.subarray(0,32),ciphertext:e.subarray(32,e.length),ns:new Uint8Array(0)}}function Eh(e){if(e.length<80)throw new Error("Cannot decode stage 1 MessageBuffer: length less than 80 bytes.");return{ne:e.subarray(0,32),ns:e.subarray(32,80),ciphertext:e.subarray(80,e.length)}}function Sh(e){if(e.length<48)throw new Error("Cannot decode stage 2 MessageBuffer: length less than 48 bytes.");return{ne:new Uint8Array(0),ns:e.subarray(0,48),ciphertext:e.subarray(48,e.length)}}var Ah=16;function Dh(e,t){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65519){let o=i+65519;o>n.length&&(o=n.length);let s=e.encrypt(n.subarray(i,o),e.session);t?.encryptedPackets.increment(),yield zn(s.byteLength),yield s}}}function Bh(e,t){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65535){let o=i+65535;if(o>n.length&&(o=n.length),o-Ah<i)throw new Error("Invalid chunk");let s=n.subarray(i,o),a=n.subarray(i,o-Ah),{plaintext:c,valid:u}=e.decrypt(s,e.session,a);if(!u)throw t?.decryptErrors.increment(),new Error("Failed to validate decrypted chunk");t?.decryptedPackets.increment(),yield c}}}var XB=ke(Li(),1),QB=ke(Hd(),1);var Mv=ke(we(),1);var h0={};ue(h0,{Ed25519PrivateKey:()=>fn,Ed25519PublicKey:()=>Ui,generateKeyPair:()=>dv,generateKeyPairFromSeed:()=>Xd,unmarshalEd25519PrivateKey:()=>lv,unmarshalEd25519PublicKey:()=>hv});var Zn=32,lr=64,ys=32;async function zd(){let e=Vn.utils.randomPrivateKey(),t=Vn.getPublicKey(e);return{privateKey:Yd(e,t),publicKey:t}}async function Gd(e){if(e.length!==ys)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=Vn.getPublicKey(t);return{privateKey:Yd(t,r),publicKey:r}}async function Wd(e,t){let r=e.subarray(0,ys);return Vn.sign(t,r)}async function $d(e,t,r){return Vn.verify(t,r,e)}function Yd(e,t){let r=new Uint8Array(lr);for(let n=0;n<ys;n++)r[n]=e[n],r[ys+n]=t[n];return r}var st={get(e=globalThis){let t=e.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var u0={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function f0(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,s=e?.iterations??32767,a=st.get();r*=8;async function c(l,h){let y=a.getRandomValues(new Uint8Array(o)),d=a.getRandomValues(new Uint8Array(n)),p={name:t,iv:d};typeof h=="string"&&(h=Be(h));let g;if(h.length===0){g=await a.subtle.importKey("jwk",u0,{name:"AES-GCM"},!0,["encrypt"]);try{let v={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},x=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(v,x,{name:t,length:r},!0,["encrypt"])}catch{g=await a.subtle.importKey("jwk",u0,{name:"AES-GCM"},!0,["encrypt"])}}else{let v={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},x=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(v,x,{name:t,length:r},!0,["encrypt"])}let m=await a.subtle.encrypt(p,g,l);return me([y,p.iv,new Uint8Array(m)])}async function u(l,h){let y=l.subarray(0,o),d=l.subarray(o,o+n),p=l.subarray(o+n),g={name:t,iv:d};typeof h=="string"&&(h=Be(h));let m;if(h.length===0)try{let x={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},A=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,A,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",u0,{name:"AES-GCM"},!0,["decrypt"])}else{let x={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},A=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,A,{name:t,length:r},!0,["decrypt"])}let v=await a.subtle.decrypt(g,m,p);return new Uint8Array(v)}return{encrypt:c,decrypt:u}}async function Xn(e,t){let n=await f0().encrypt(e,t);return vn.encode(n)}var _e;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(_e||(_e={}));var l0;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(l0||(l0={}));(function(e){e.codec=()=>Xr(l0)})(_e||(_e={}));var Yt;(function(e){let t;e.codec=()=>(t==null&&(t=_t((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Tt(r,e.codec()),e.decode=r=>It(r,e.codec())})(Yt||(Yt={}));var Zt;(function(e){let t;e.codec=()=>(t==null&&(t=_t((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Tt(r,e.codec()),e.decode=r=>It(r,e.codec())})(Zt||(Zt={}));var Ui=class{_key;constructor(t){this._key=Qn(t,Zn)}async verify(t,r){return $d(this._key,r,t)}marshal(){return this._key}get bytes(){return Yt.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}},fn=class{_key;_publicKey;constructor(t,r){this._key=Qn(t,lr),this._publicKey=Qn(r,Zn)}async sign(t){return Wd(this._key,t)}get public(){return new Ui(this._publicKey)}marshal(){return this._key}get bytes(){return Zt.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}async id(){let t=xr.digest(this.public.bytes);return Ne.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Xn(this.bytes,t);throw new Z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function lv(e){if(e.length>lr){e=Qn(e,lr+Zn);let n=e.subarray(0,lr),i=e.subarray(lr,e.length);return new fn(n,i)}e=Qn(e,lr);let t=e.subarray(0,lr),r=e.subarray(Zn);return new fn(t,r)}function hv(e){return e=Qn(e,Zn),new Ui(e)}async function dv(){let{privateKey:e,publicKey:t}=await zd();return new fn(e,t)}async function Xd(e){let{privateKey:t,publicKey:r}=await Gd(e);return new fn(t,r)}function Qn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new Z(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var CD=ke(Fe(),1),AD=ke(ls(),1),Qd=ke(we(),1);function Ut(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=me([new Uint8Array(t-r.length),r])}return se(r,"base64url")}function ht(e){let t=jd(e);return new Qd.default.jsbn.BigInteger(se(t,"base16"),16)}function jd(e,t){let r=Be(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=me([new Uint8Array(t-r.length),r])}return r}var pv={"P-256":256,"P-384":384,"P-521":521},yv=Object.keys(pv),UD=yv.join(" / ");var m0={};ue(m0,{MAX_KEY_SIZE:()=>Mi,RsaPrivateKey:()=>jn,RsaPublicKey:()=>Ki,fromJwk:()=>Dv,generateKeyPair:()=>Bv,unmarshalRsaPrivateKey:()=>Cv,unmarshalRsaPublicKey:()=>Av});var Fi=ke(we(),1);var wB=ke(np(),1);function ms(e){if(isNaN(e)||e<=0)throw new Z("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return tn(e)}var rB=ke(ps(),1),y0=ke(we(),1);function ip(e,t){return t.map(r=>ht(e[r]))}function op(e){return y0.default.pki.setRsaPrivateKey(...ip(e,["n","e","d","p","q","dp","dq","qi"]))}function sp(e){return y0.default.pki.setRsaPublicKey(...ip(e,["n","e"]))}var hn={};ue(hn,{jwkToPkcs1:()=>bv,jwkToPkix:()=>vv,pkcs1ToJwk:()=>xv,pkixToJwk:()=>wv});var oB=ke(Li(),1),sB=ke(ps(),1);var hr=ke(we(),1);function xv(e){let t=hr.default.asn1.fromDer(se(e,"ascii")),r=hr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Ut(r.n),e:Ut(r.e),d:Ut(r.d),p:Ut(r.p),q:Ut(r.q),dp:Ut(r.dP),dq:Ut(r.dQ),qi:Ut(r.qInv),alg:"RS256"}}function bv(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new Z("JWK was missing components","ERR_INVALID_PARAMETERS");let t=hr.default.pki.privateKeyToAsn1({n:ht(e.n),e:ht(e.e),d:ht(e.d),p:ht(e.p),q:ht(e.q),dP:ht(e.dp),dQ:ht(e.dq),qInv:ht(e.qi)});return Be(hr.default.asn1.toDer(t).getBytes(),"ascii")}function wv(e){let t=hr.default.asn1.fromDer(se(e,"ascii")),r=hr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Ut(r.n),e:Ut(r.e)}}function vv(e){if(e.n==null||e.e==null)throw new Z("JWK was missing components","ERR_INVALID_PARAMETERS");let t=hr.default.pki.publicKeyToAsn1({n:ht(e.n),e:ht(e.e)});return Be(hr.default.asn1.toDer(t).getBytes(),"ascii")}async function ap(e){let t=await st.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await fp(t);return{privateKey:r[0],publicKey:r[1]}}async function g0(e){let r=[await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Ev(e)],n=await fp({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function cp(e,t){let r=await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await st.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function up(e,t,r){let n=await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return st.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function fp(e){if(e.privateKey==null||e.publicKey==null)throw new Z("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([st.get().subtle.exportKey("jwk",e.privateKey),st.get().subtle.exportKey("jwk",e.publicKey)])}async function Ev(e){return st.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function lp(e,t,r,n){let i=t?sp(e):op(e),o=se(Uint8Array.from(r),"ascii"),s=n(o,i);return Be(s,"ascii")}function hp(e,t){return lp(e,!0,t,(r,n)=>n.encrypt(r))}function dp(e,t){return lp(e,!1,t,(r,n)=>n.decrypt(r))}function xs(e){if(e.kty!=="RSA")throw new Z("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new Z("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Be(e.n,"base64url").length*8}var Mi=8192,Ki=class{_key;constructor(t){this._key=t}async verify(t,r){return up(this._key,r,t)}marshal(){return hn.jwkToPkix(this._key)}get bytes(){return Yt.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}encrypt(t){return hp(this._key,t)}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}},jn=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return ms(16)}async sign(t){return cp(this._key,t)}get public(){if(this._publicKey==null)throw new Z("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Ki(this._publicKey)}decrypt(t){return dp(this._key,t)}marshal(){return hn.jwkToPkcs1(this._key)}get bytes(){return Zt.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}async id(){let t=await this.public.hash();return se(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new Fi.default.util.ByteBuffer(this.marshal()),i=Fi.default.asn1.fromDer(n),o=Fi.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Fi.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return Xn(this.bytes,t);throw new Z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Cv(e){let t=hn.pkcs1ToJwk(e);if(xs(t)>Mi)throw new Z("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await g0(t);return new jn(r.privateKey,r.publicKey)}function Av(e){let t=hn.pkixToJwk(e);if(xs(t)>Mi)throw new Z("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Ki(t)}async function Dv(e){if(xs(e)>Mi)throw new Z("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await g0(e);return new jn(t.privateKey,t.publicKey)}async function Bv(e){if(e>Mi)throw new Z("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await ap(e);return new jn(t.privateKey,t.publicKey)}var v0={};ue(v0,{Secp256k1PrivateKey:()=>qi,Secp256k1PublicKey:()=>Vi,generateKeyPair:()=>Kv,unmarshalSecp256k1PrivateKey:()=>Ov,unmarshalSecp256k1PublicKey:()=>Fv});function Iv(e){let t=Ci(e);mt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Tv,hexToBytes:_v}=zo,dn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=dn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Tv(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=dn,r=typeof e=="string"?_v(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:o}=dn._parseInt(r.subarray(2)),{d:s,l:a}=dn._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(r(e.s)),i=t(r(e.r)),o=n.length/2,s=i.length/2,a=r(o),c=r(s);return`30${r(s+o+4)}02${c}${i}02${a}${n}`}},dr=BigInt(0),wt=BigInt(1),DB=BigInt(2),pp=BigInt(3),BB=BigInt(4);function kv(e){let t=Iv(e),{Fp:r}=t,n=t.toBytes||((d,p,g)=>{let m=p.toAffine();return sr(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(d=>{let p=d.subarray(1),g=r.fromBytes(p.subarray(0,r.BYTES)),m=r.fromBytes(p.subarray(r.BYTES,2*r.BYTES));return{x:g,y:m}});function o(d){let{a:p,b:g}=t,m=r.sqr(d),v=r.mul(m,d);return r.add(r.add(v,r.mul(d,p)),g)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(d){return typeof d=="bigint"&&dr<d&&d<t.n}function a(d){if(!s(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:p,nByteLength:g,wrapPrivateKey:m,n:v}=t;if(p&&typeof d!="bigint"){if(d instanceof Uint8Array&&(d=nr(d)),typeof d!="string"||!p.includes(d.length))throw new Error("Invalid key");d=d.padStart(g*2,"0")}let x;try{x=typeof d=="bigint"?d:ir(Se("private key",d,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof d}`)}return m&&(x=pe(x,v)),a(x),x}let u=new Map;function f(d){if(!(d instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(p,g,m){if(this.px=p,this.py=g,this.pz=m,p==null||!r.isValid(p))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(p){let{x:g,y:m}=p||{};if(!p||!r.isValid(g)||!r.isValid(m))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let v=x=>r.eql(x,r.ZERO);return v(g)&&v(m)?l.ZERO:new l(g,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let g=r.invertBatch(p.map(m=>m.pz));return p.map((m,v)=>m.toAffine(g[v])).map(l.fromAffine)}static fromHex(p){let g=l.fromAffine(i(Se("pointHex",p)));return g.assertValidity(),g}static fromPrivateKey(p){return l.BASE.multiply(c(p))}_setWindowSize(p){this._WINDOW_SIZE=p,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:p,y:g}=this.toAffine();if(!r.isValid(p)||!r.isValid(g))throw new Error("bad point: x or y not FE");let m=r.sqr(g),v=o(p);if(!r.eql(m,v))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:p}=this.toAffine();if(r.isOdd)return!r.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){f(p);let{px:g,py:m,pz:v}=this,{px:x,py:A,pz:E}=p,w=r.eql(r.mul(g,E),r.mul(x,v)),B=r.eql(r.mul(m,E),r.mul(A,v));return w&&B}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:p,b:g}=t,m=r.mul(g,pp),{px:v,py:x,pz:A}=this,E=r.ZERO,w=r.ZERO,B=r.ZERO,D=r.mul(v,v),R=r.mul(x,x),F=r.mul(A,A),O=r.mul(v,x);return O=r.add(O,O),B=r.mul(v,A),B=r.add(B,B),E=r.mul(p,B),w=r.mul(m,F),w=r.add(E,w),E=r.sub(R,w),w=r.add(R,w),w=r.mul(E,w),E=r.mul(O,E),B=r.mul(m,B),F=r.mul(p,F),O=r.sub(D,F),O=r.mul(p,O),O=r.add(O,B),B=r.add(D,D),D=r.add(B,D),D=r.add(D,F),D=r.mul(D,O),w=r.add(w,D),F=r.mul(x,A),F=r.add(F,F),D=r.mul(F,O),E=r.sub(E,D),B=r.mul(F,R),B=r.add(B,B),B=r.add(B,B),new l(E,w,B)}add(p){f(p);let{px:g,py:m,pz:v}=this,{px:x,py:A,pz:E}=p,w=r.ZERO,B=r.ZERO,D=r.ZERO,R=t.a,F=r.mul(t.b,pp),O=r.mul(g,x),K=r.mul(m,A),q=r.mul(v,E),j=r.add(g,m),I=r.add(x,A);j=r.mul(j,I),I=r.add(O,K),j=r.sub(j,I),I=r.add(g,v);let L=r.add(x,E);return I=r.mul(I,L),L=r.add(O,q),I=r.sub(I,L),L=r.add(m,v),w=r.add(A,E),L=r.mul(L,w),w=r.add(K,q),L=r.sub(L,w),D=r.mul(R,I),w=r.mul(F,q),D=r.add(w,D),w=r.sub(K,D),D=r.add(K,D),B=r.mul(w,D),K=r.add(O,O),K=r.add(K,O),q=r.mul(R,q),I=r.mul(F,I),K=r.add(K,q),q=r.sub(O,q),q=r.mul(R,q),I=r.add(I,q),O=r.mul(K,I),B=r.add(B,O),O=r.mul(L,I),w=r.mul(j,w),w=r.sub(w,O),O=r.mul(j,K),D=r.mul(L,D),D=r.add(D,O),new l(w,B,D)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return y.wNAFCached(this,u,p,g=>{let m=r.invertBatch(g.map(v=>v.pz));return g.map((v,x)=>v.toAffine(m[x])).map(l.fromAffine)})}multiplyUnsafe(p){let g=l.ZERO;if(p===dr)return g;if(a(p),p===wt)return this;let{endo:m}=t;if(!m)return y.unsafeLadder(this,p);let{k1neg:v,k1:x,k2neg:A,k2:E}=m.splitScalar(p),w=g,B=g,D=this;for(;x>dr||E>dr;)x&wt&&(w=w.add(D)),E&wt&&(B=B.add(D)),D=D.double(),x>>=wt,E>>=wt;return v&&(w=w.negate()),A&&(B=B.negate()),B=new l(r.mul(B.px,m.beta),B.py,B.pz),w.add(B)}multiply(p){a(p);let g=p,m,v,{endo:x}=t;if(x){let{k1neg:A,k1:E,k2neg:w,k2:B}=x.splitScalar(g),{p:D,f:R}=this.wNAF(E),{p:F,f:O}=this.wNAF(B);D=y.constTimeNegate(A,D),F=y.constTimeNegate(w,F),F=new l(r.mul(F.px,x.beta),F.py,F.pz),m=D.add(F),v=R.add(O)}else{let{p:A,f:E}=this.wNAF(g);m=A,v=E}return l.normalizeZ([m,v])[0]}multiplyAndAddUnsafe(p,g,m){let v=l.BASE,x=(E,w)=>w===dr||w===wt||!E.equals(v)?E.multiplyUnsafe(w):E.multiply(w),A=x(this,g).add(x(p,m));return A.is0()?void 0:A}toAffine(p){let{px:g,py:m,pz:v}=this,x=this.is0();p==null&&(p=x?r.ONE:r.inv(v));let A=r.mul(g,p),E=r.mul(m,p),w=r.mul(v,p);if(x)return{x:r.ZERO,y:r.ZERO};if(!r.eql(w,r.ONE))throw new Error("invZ was invalid");return{x:A,y:E}}isTorsionFree(){let{h:p,isTorsionFree:g}=t;if(p===wt)return!0;if(g)return g(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:g}=t;return p===wt?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(p=!0){return this.assertValidity(),n(l,this,p)}toHex(p=!0){return nr(this.toRawBytes(p))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let h=t.nBitLength,y=$o(l,t.endo?Math.ceil(h/2):h);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function Rv(e){let t=Ci(e);return mt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function yp(e){let t=Rv(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(I){return dr<I&&I<r.ORDER}function a(I){return pe(I,n)}function c(I){return Go(I,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:h}=kv({...t,toBytes(I,L,_){let k=L.toAffine(),S=r.toBytes(k.x),U=sr;return _?U(Uint8Array.from([L.hasEvenY()?2:3]),S):U(Uint8Array.from([4]),S,r.toBytes(k.y))},fromBytes(I){let L=I.length,_=I[0],k=I.subarray(1);if(L===i&&(_===2||_===3)){let S=ir(k);if(!s(S))throw new Error("Point is not on curve");let U=l(S),M=r.sqrt(U),H=(M&wt)===wt;return(_&1)===1!==H&&(M=r.neg(M)),{x:S,y:M}}else if(L===o&&_===4){let S=r.fromBytes(k.subarray(0,r.BYTES)),U=r.fromBytes(k.subarray(r.BYTES,2*r.BYTES));return{x:S,y:U}}else throw new Error(`Point of length ${L} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),y=I=>nr(Tr(I,t.nByteLength));function d(I){let L=n>>wt;return I>L}function p(I){return d(I)?a(-I):I}let g=(I,L,_)=>ir(I.slice(L,_));class m{constructor(L,_,k){this.r=L,this.s=_,this.recovery=k,this.assertValidity()}static fromCompact(L){let _=t.nByteLength;return L=Se("compactSignature",L,_*2),new m(g(L,0,_),g(L,_,2*_))}static fromDER(L){let{r:_,s:k}=dn.toSig(Se("DER",L));return new m(_,k)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(L){return new m(this.r,this.s,L)}recoverPublicKey(L){let{r:_,s:k,recovery:S}=this,U=B(Se("msgHash",L));if(S==null||![0,1,2,3].includes(S))throw new Error("recovery id invalid");let M=S===2||S===3?_+t.n:_;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=S&1?"03":"02",Q=u.fromHex(H+y(M)),J=c(M),oe=a(-U*J),ee=a(k*J),re=u.BASE.multiplyAndAddUnsafe(Q,oe,ee);if(!re)throw new Error("point at infinify");return re.assertValidity(),re}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return rn(this.toDERHex())}toDERHex(){return dn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return rn(this.toCompactHex())}toCompactHex(){return y(this.r)+y(this.s)}}let v={isValidPrivateKey(I){try{return f(I),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let I=Lc(t.n);return ah(t.randomBytes(I),t.n)},precompute(I=8,L=u.BASE){return L._setWindowSize(I),L.multiply(BigInt(3)),L}};function x(I,L=!0){return u.fromPrivateKey(I).toRawBytes(L)}function A(I){let L=I instanceof Uint8Array,_=typeof I=="string",k=(L||_)&&I.length;return L?k===i||k===o:_?k===2*i||k===2*o:I instanceof u}function E(I,L,_=!0){if(A(I))throw new Error("first arg must be private key");if(!A(L))throw new Error("second arg must be public key");return u.fromHex(L).multiply(f(I)).toRawBytes(_)}let w=t.bits2int||function(I){let L=ir(I),_=I.length*8-t.nBitLength;return _>0?L>>BigInt(_):L},B=t.bits2int_modN||function(I){return a(w(I))},D=Si(t.nBitLength);function R(I){if(typeof I!="bigint")throw new Error("bigint expected");if(!(dr<=I&&I<D))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Tr(I,t.nByteLength)}function F(I,L,_=O){if(["recovered","canonical"].some(be=>be in _))throw new Error("sign() legacy options not supported");let{hash:k,randomBytes:S}=t,{lowS:U,prehash:M,extraEntropy:H}=_;U==null&&(U=!0),I=Se("msgHash",I),M&&(I=Se("prehashed msgHash",k(I)));let Q=B(I),J=f(L),oe=[R(J),R(Q)];if(H!=null){let be=H===!0?S(r.BYTES):H;oe.push(Se("extraEntropy",be))}let ee=sr(...oe),re=Q;function ve(be){let We=w(be);if(!h(We))return;let $e=c(We),Ke=u.BASE.multiply(We).toAffine(),je=a(Ke.x);if(je===dr)return;let Qt=a($e*a(re+je*J));if(Qt===dr)return;let Fr=(Ke.x===je?0:2)|Number(Ke.y&wt),ci=Qt;return U&&d(Qt)&&(ci=p(Qt),Fr^=1),new m(je,ci,Fr)}return{seed:ee,k2sig:ve}}let O={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};function q(I,L,_=O){let{seed:k,k2sig:S}=F(I,L,_),U=t;return Ic(U.hash.outputLen,U.nByteLength,U.hmac)(k,S)}u.BASE._setWindowSize(8);function j(I,L,_,k=K){let S=I;if(L=Se("msgHash",L),_=Se("publicKey",_),"strict"in k)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:M}=k,H,Q;try{if(typeof S=="string"||S instanceof Uint8Array)try{H=m.fromDER(S)}catch(Ke){if(!(Ke instanceof dn.Err))throw Ke;H=m.fromCompact(S)}else if(typeof S=="object"&&typeof S.r=="bigint"&&typeof S.s=="bigint"){let{r:Ke,s:je}=S;H=new m(Ke,je)}else throw new Error("PARSE");Q=u.fromHex(_)}catch(Ke){if(Ke.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&H.hasHighS())return!1;M&&(L=t.hash(L));let{r:J,s:oe}=H,ee=B(L),re=c(oe),ve=a(ee*re),be=a(J*re),We=u.BASE.multiplyAndAddUnsafe(Q,ve,be)?.toAffine();return We?a(We.x)===J:!1}return{CURVE:t,getPublicKey:x,getSharedSecret:E,sign:q,verify:j,ProjectivePoint:u,Signature:m,utils:v}}function Lv(e){return{hash:e,hmac:(t,...r)=>qn(e,t,Ko(...r)),randomBytes:tn}}function gp(e,t){let r=n=>yp({...e,...Lv(n)});return Object.freeze({...r(t),create:r})}var bp=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),mp=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Nv=BigInt(1),x0=BigInt(2),xp=(e,t)=>(e+t/x0)/t;function Pv(e){let t=bp,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=Ce(f,r,t)*f%t,h=Ce(l,r,t)*f%t,y=Ce(h,x0,t)*u%t,d=Ce(y,i,t)*y%t,p=Ce(d,o,t)*d%t,g=Ce(p,a,t)*p%t,m=Ce(g,c,t)*g%t,v=Ce(m,a,t)*p%t,x=Ce(v,r,t)*f%t,A=Ce(x,s,t)*d%t,E=Ce(A,n,t)*u%t,w=Ce(E,x0,t);if(!b0.eql(b0.sqr(w),e))throw new Error("Cannot find square root");return w}var b0=Wo(bp,void 0,void 0,{sqrt:Pv}),pr=gp({a:BigInt(0),b:BigInt(7),Fp:b0,n:mp,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=mp,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Nv*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=xp(o*e,t),c=xp(-n*e,t),u=pe(e-a*r-c*i,t),f=pe(-a*n-c*o,t),l=u>s,h=f>s;if(l&&(u=t-u),h&&(f=t-f),u>s||f>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:h,k2:f}}}},Hn),UB=BigInt(0);var OB=pr.ProjectivePoint;function wp(){return pr.utils.randomPrivateKey()}async function vp(e,t){let{digest:r}=await Ye.digest(t);try{return pr.sign(r,e).toDERRawBytes()}catch(n){throw new Z(String(n),"ERR_INVALID_INPUT")}}async function Ep(e,t,r){try{let{digest:n}=await Ye.digest(r);return pr.verify(t,n,e)}catch(n){throw new Z(String(n),"ERR_INVALID_INPUT")}}function Sp(e){return pr.ProjectivePoint.fromHex(e).toRawBytes(!0)}function Cp(e){try{pr.getPublicKey(e,!0)}catch(t){throw new Z(String(t),"ERR_INVALID_PRIVATE_KEY")}}function w0(e){try{pr.ProjectivePoint.fromHex(e)}catch(t){throw new Z(String(t),"ERR_INVALID_PUBLIC_KEY")}}function Ap(e){try{return pr.getPublicKey(e,!0)}catch(t){throw new Z(String(t),"ERR_INVALID_PRIVATE_KEY")}}var Vi=class{_key;constructor(t){w0(t),this._key=t}async verify(t,r){return Ep(this._key,r,t)}marshal(){return Sp(this._key)}get bytes(){return Yt.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}},qi=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??Ap(t),Cp(this._key),w0(this._publicKey)}async sign(t){return vp(this._key,t)}get public(){return new Vi(this._publicKey)}marshal(){return this._key}get bytes(){return Zt.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}async id(){let t=await this.public.hash();return se(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Xn(this.bytes,t);throw new Z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Ov(e){return new qi(e)}function Fv(e){return new Vi(e)}async function Kv(){let e=wp();return new qi(e)}var pn={rsa:m0,ed25519:h0,secp256k1:v0};function Dp(e){let t=Object.keys(pn).join(" / ");return new Z(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Bp(e){let t=Yt.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case _e.RSA:return pn.rsa.unmarshalRsaPublicKey(r);case _e.Ed25519:return pn.ed25519.unmarshalEd25519PublicKey(r);case _e.Secp256k1:return pn.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Dp(t.Type??"RSA")}}async function Ip(e){let t=Zt.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case _e.RSA:return pn.rsa.unmarshalRsaPrivateKey(r);case _e.Ed25519:return pn.ed25519.unmarshalEd25519PrivateKey(r);case _e.Secp256k1:return pn.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Dp(t.Type??"RSA")}}var bs;(function(e){let t;e.codec=()=>(t==null&&(t=_t((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.webtransportCerthashes!=null)for(let o of r.webtransportCerthashes)n.uint32(10),n.bytes(o);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={webtransportCerthashes:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.webtransportCerthashes.push(r.bytes());break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Tt(r,e.codec()),e.decode=r=>It(r,e.codec())})(bs||(bs={}));var Hi;(function(e){let t;e.codec=()=>(t==null&&(t=_t((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.identityKey!=null&&r.identityKey.byteLength>0)&&(n.uint32(10),n.bytes(r.identityKey??new Uint8Array(0))),(i.writeDefaults===!0||r.identitySig!=null&&r.identitySig.byteLength>0)&&(n.uint32(18),n.bytes(r.identitySig??new Uint8Array(0))),r.extensions!=null&&(n.uint32(34),bs.codec().encode(r.extensions,n,{writeDefaults:!1})),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identityKey:new Uint8Array(0),identitySig:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.identityKey=r.bytes();break;case 2:i.identitySig=r.bytes();break;case 4:i.extensions=bs.codec().decode(r,r.uint32());break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Tt(r,e.codec()),e.decode=r=>It(r,e.codec())})(Hi||(Hi={}));async function Tp(e,t,r){let n=await qv(e,_p(t));if(e.publicKey==null)throw new Error("PublicKey was missing from local PeerId");return Vv(e.publicKey,n,r)}function Vv(e,t,r){return Hi.encode({identityKey:e,identitySig:t,extensions:r??{webtransportCerthashes:[]}}).subarray()}async function qv(e,t){if(e.privateKey==null)throw new Error("PrivateKey was missing from PeerId");return(await Ip(e.privateKey)).sign(t)}async function E0(e){return ca(e.identityKey)}function S0(e){return Hi.decode(e)}function _p(e){let t=Be("noise-libp2p-static-key:");return me([t,e],t.length+e.length)}async function C0(e,t,r){let n=await ca(t.identityKey);if(!n.equals(r))throw new Error(`Payload identity key ${n.toString()} does not match expected remote peer ${r.toString()}`);let i=_p(e);if(n.publicKey==null)throw new Error("PublicKey was missing from PeerId");if(t.identitySig==null)throw new Error("Signature was missing from message");if(!await Bp(n.publicKey).verify(i,t.identitySig))throw new Error("Static key doesn't match to peer that signed payload!");return n}function zi(e){return!(!(e instanceof Uint8Array)||e.length!==32)}var Ge=Je("libp2p:noise");var vt;Vl?vt=Ge:vt=Object.assign(()=>{},{enabled:!1,trace:()=>{},error:()=>{}});function kp(e){vt(`LOCAL_STATIC_PUBLIC_KEY ${se(e.publicKey,"hex")}`),vt(`LOCAL_STATIC_PRIVATE_KEY ${se(e.privateKey,"hex")}`)}function A0(e){e?(vt(`LOCAL_PUBLIC_EPHEMERAL_KEY ${se(e.publicKey,"hex")}`),vt(`LOCAL_PRIVATE_EPHEMERAL_KEY ${se(e.privateKey,"hex")}`)):vt("Missing local ephemeral keys.")}function Rp(e){vt(`REMOTE_STATIC_PUBLIC_KEY ${se(e,"hex")}`)}function D0(e){vt(`REMOTE_EPHEMERAL_PUBLIC_KEY ${se(e,"hex")}`)}function Lp(e){e.cs1&&e.cs2?(vt(`CIPHER_STATE_1 ${e.cs1.n.getUint64()} ${se(e.cs1.k,"hex")}`),vt(`CIPHER_STATE_2 ${e.cs2.n.getUint64()} ${se(e.cs2.k,"hex")}`)):vt("Missing cipher state.")}var Hv="Cipherstate has reached maximum n, a new handshake must be performed",ws=class{n;bytes;view;constructor(t=0){this.n=t,this.bytes=new Uint8Array(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>4294967295)throw new Error(Hv)}};var vs=class{crypto;constructor(t){this.crypto=t}encryptWithAd(t,r,n){let i=this.encrypt(t.k,t.n,r,n);return t.n.increment(),i}decryptWithAd(t,r,n,i){let{plaintext:o,valid:s}=this.decrypt(t.k,t.n,r,n,i);return s&&t.n.increment(),{plaintext:o,valid:s}}hasKey(t){return!this.isEmptyKey(t.k)}createEmptyKey(){return new Uint8Array(32)}isEmptyKey(t){let r=this.createEmptyKey();return Oe(r,t)}encrypt(t,r,n,i){return r.assertValue(),this.crypto.chaCha20Poly1305Encrypt(i,r.getBytes(),n,t)}encryptAndHash(t,r){let n;return this.hasKey(t.cs)?n=this.encryptWithAd(t.cs,t.h,r):n=r,this.mixHash(t,n),n}decrypt(t,r,n,i,o){r.assertValue();let s=this.crypto.chaCha20Poly1305Decrypt(i,r.getBytes(),n,t,o);return s?{plaintext:s,valid:!0}:{plaintext:new Uint8Array(0),valid:!1}}decryptAndHash(t,r){let n,i=!0;return this.hasKey(t.cs)?{plaintext:n,valid:i}=this.decryptWithAd(t.cs,t.h,r):n=r,this.mixHash(t,r),{plaintext:n,valid:i}}dh(t,r){try{let n=this.crypto.generateX25519SharedKey(t,r);return n.length===32?n:n.subarray(0,32)}catch(n){let i=n;return Ge.error(i),new Uint8Array(32)}}mixHash(t,r){t.h=this.getHash(t.h,r)}getHash(t,r){return this.crypto.hashSHA256(me([t,r],t.length+r.length))}mixKey(t,r){let[n,i]=this.crypto.getHKDF(t.ck,r);t.cs=this.initializeKey(i),t.ck=n}initializeKey(t){return{k:t,n:new ws}}initializeSymmetric(t){let r=Be(t,"utf-8"),n=this.hashProtocolName(r),i=n,o=this.createEmptyKey();return{cs:this.initializeKey(o),ck:i,h:n}}hashProtocolName(t){if(t.length<=32){let r=new Uint8Array(32);return r.set(t),r}else return this.getHash(t,new Uint8Array(0))}split(t){let[r,n]=this.crypto.getHKDF(t.ck,new Uint8Array(0)),i=this.initializeKey(r),o=this.initializeKey(n);return{cs1:i,cs2:o}}writeMessageRegular(t,r){let n=this.encryptWithAd(t,new Uint8Array(0),r),i=this.createEmptyKey(),o=new Uint8Array(0);return{ne:i,ns:o,ciphertext:n}}readMessageRegular(t,r){return this.decryptWithAd(t,new Uint8Array(0),r.ciphertext)}};var Es=class extends vs{initializeInitiator(t,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,t);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}initializeResponder(t,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,t);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}writeMessageA(t,r,n){let i=new Uint8Array(0);n!==void 0?t.e=n:t.e=this.crypto.generateX25519KeyPair();let o=t.e.publicKey;this.mixHash(t.ss,o);let s=this.encryptAndHash(t.ss,r);return{ne:o,ns:i,ciphertext:s}}writeMessageB(t,r){t.e=this.crypto.generateX25519KeyPair();let n=t.e.publicKey;this.mixHash(t.ss,n),this.mixKey(t.ss,this.dh(t.e.privateKey,t.re));let i=t.s.publicKey,o=this.encryptAndHash(t.ss,i);this.mixKey(t.ss,this.dh(t.s.privateKey,t.re));let s=this.encryptAndHash(t.ss,r);return{ne:n,ns:o,ciphertext:s}}writeMessageC(t,r){let n=t.s.publicKey,i=this.encryptAndHash(t.ss,n);this.mixKey(t.ss,this.dh(t.s.privateKey,t.re));let o=this.encryptAndHash(t.ss,r),a={ne:this.createEmptyKey(),ns:i,ciphertext:o},{cs1:c,cs2:u}=this.split(t.ss);return{h:t.ss.h,messageBuffer:a,cs1:c,cs2:u}}readMessageA(t,r){return zi(r.ne)&&(t.re=r.ne),this.mixHash(t.ss,t.re),this.decryptAndHash(t.ss,r.ciphertext)}readMessageB(t,r){if(zi(r.ne)&&(t.re=r.ne),this.mixHash(t.ss,t.re),!t.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(t.ss,this.dh(t.e.privateKey,t.re));let{plaintext:n,valid:i}=this.decryptAndHash(t.ss,r.ns);i&&zi(n)&&(t.rs=n),this.mixKey(t.ss,this.dh(t.e.privateKey,t.rs));let{plaintext:o,valid:s}=this.decryptAndHash(t.ss,r.ciphertext);return{plaintext:o,valid:i&&s}}readMessageC(t,r){let{plaintext:n,valid:i}=this.decryptAndHash(t.ss,r.ns);if(i&&zi(n)&&(t.rs=n),!t.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(t.ss,this.dh(t.e.privateKey,t.rs));let{plaintext:o,valid:s}=this.decryptAndHash(t.ss,r.ciphertext),{cs1:a,cs2:c}=this.split(t.ss);return{h:t.ss.h,plaintext:o,valid:i&&s,cs1:a,cs2:c}}initSession(t,r,n){let i=this.createEmptyKey(),o=new Uint8Array(32),s;return t?s=this.initializeInitiator(r,n,o,i):s=this.initializeResponder(r,n,o,i),{hs:s,i:t,mc:0}}sendMessage(t,r,n){let i;if(t.mc===0)i=this.writeMessageA(t.hs,r,n);else if(t.mc===1)i=this.writeMessageB(t.hs,r);else if(t.mc===2){let{h:o,messageBuffer:s,cs1:a,cs2:c}=this.writeMessageC(t.hs,r);i=s,t.h=o,t.cs1=a,t.cs2=c}else if(t.mc>2)if(t.i){if(!t.cs1)throw new Error("CS1 (cipher state) is not defined");i=this.writeMessageRegular(t.cs1,r)}else{if(!t.cs2)throw new Error("CS2 (cipher state) is not defined");i=this.writeMessageRegular(t.cs2,r)}else throw new Error("Session invalid.");return t.mc++,i}recvMessage(t,r){let n=new Uint8Array(0),i=!1;if(t.mc===0)({plaintext:n,valid:i}=this.readMessageA(t.hs,r));else if(t.mc===1)({plaintext:n,valid:i}=this.readMessageB(t.hs,r));else if(t.mc===2){let{h:o,plaintext:s,valid:a,cs1:c,cs2:u}=this.readMessageC(t.hs,r);n=s,i=a,t.h=o,t.cs1=c,t.cs2=u}return t.mc++,{plaintext:n,valid:i}}};var Ss=class{isInitiator;session;remotePeer;remoteExtensions={webtransportCerthashes:[]};payload;connection;xx;staticKeypair;prologue;constructor(t,r,n,i,o,s,a,c){this.isInitiator=t,this.payload=r,this.prologue=n,this.staticKeypair=o,this.connection=s,a&&(this.remotePeer=a),this.xx=c??new Es(i),this.session=this.xx.initSession(this.isInitiator,this.prologue,this.staticKeypair)}async propose(){if(kp(this.session.hs.s),this.isInitiator){Ge.trace("Stage 0 - Initiator starting to send first message.");let t=this.xx.sendMessage(this.session,new Uint8Array(0));await this.connection.write(xh(t)),Ge.trace("Stage 0 - Initiator finished sending first message."),A0(this.session.hs.e)}else{Ge.trace("Stage 0 - Responder waiting to receive first message...");let t=vh((await this.connection.read()).subarray()),{valid:r}=this.xx.recvMessage(this.session,t);if(!r)throw new Kr("xx handshake stage 0 validation fail");Ge.trace("Stage 0 - Responder received first message."),D0(this.session.hs.re)}}async exchange(){if(this.isInitiator){Ge.trace("Stage 1 - Initiator waiting to receive first message from responder...");let t=Eh((await this.connection.read()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,t);if(!n)throw new Kr("xx handshake stage 1 validation fail");Ge.trace("Stage 1 - Initiator received the message."),D0(this.session.hs.re),Rp(this.session.hs.rs),Ge.trace("Initiator going to check remote's signature...");try{let i=S0(r);this.remotePeer=this.remotePeer||await E0(i),await C0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new ui(`Error occurred while verifying signed payload: ${o.message}`)}Ge.trace("All good with the signature!")}else{Ge.trace("Stage 1 - Responder sending out first message with signed payload and static key.");let t=this.xx.sendMessage(this.session,this.payload);await this.connection.write(bh(t)),Ge.trace("Stage 1 - Responder sent the second handshake message with signed payload."),A0(this.session.hs.e)}}async finish(){if(this.isInitiator){Ge.trace("Stage 2 - Initiator sending third handshake message.");let t=this.xx.sendMessage(this.session,this.payload);await this.connection.write(wh(t)),Ge.trace("Stage 2 - Initiator sent message with signed payload.")}else{Ge.trace("Stage 2 - Responder waiting for third handshake message...");let t=Sh((await this.connection.read()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,t);if(!n)throw new Kr("xx handshake stage 2 validation fail");Ge.trace("Stage 2 - Responder received the message, finished handshake.");try{let i=S0(r);this.remotePeer=this.remotePeer||await E0(i),await C0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new ui(`Error occurred while verifying signed payload: ${o.message}`)}}Lp(this.session)}encrypt(t,r){let n=this.getCS(r);return this.xx.encryptWithAd(n,new Uint8Array(0),t)}decrypt(t,r,n){let i=this.getCS(r,!1);return this.xx.decryptWithAd(i,new Uint8Array(0),t,n)}getRemoteStaticKey(){return this.session.hs.rs}getCS(t,r=!0){if(!t.cs1||!t.cs2)throw new Kr("Handshake not completed properly, cipher state does not exist.");return this.isInitiator?r?t.cs1:t.cs2:r?t.cs2:t.cs1}setRemoteNoiseExtension(t){t&&(this.remoteExtensions=t)}};function Np(e){return{xxHandshakeSuccesses:e.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:e.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:e.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:e.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:e.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var Cs=class{protocol="/noise";crypto;prologue;staticKeys;extensions;metrics;constructor(t={}){let{staticNoiseKey:r,extensions:n,crypto:i,prologueBytes:o,metrics:s}=t;this.crypto=i??Mc,this.extensions=n,this.metrics=s?Np(s):void 0,r?this.staticKeys=this.crypto.generateX25519KeyPairFromSeed(r):this.staticKeys=this.crypto.generateX25519KeyPair(),this.prologue=o??new Uint8Array(0)}async secureOutbound(t,r,n){let i=bi(r,{lengthEncoder:zn,lengthDecoder:Ii,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!0,localPeer:t,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remoteExtensions:o.remoteExtensions,remotePeer:o.remotePeer}}async secureInbound(t,r,n){let i=bi(r,{lengthEncoder:zn,lengthDecoder:Ii,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!1,localPeer:t,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remotePeer:o.remotePeer,remoteExtensions:o.remoteExtensions}}async performHandshake(t){let r=await Tp(t.localPeer,this.staticKeys.publicKey,this.extensions);return this.performXXHandshake(t,r)}async performXXHandshake(t,r){let{isInitiator:n,remotePeer:i,connection:o}=t,s=new Ss(n,r,this.prologue,this.crypto,this.staticKeys,o,i);try{await s.propose(),await s.exchange(),await s.finish(),this.metrics?.xxHandshakeSuccesses.increment()}catch(a){if(this.metrics?.xxHandshakeErrors.increment(),a instanceof Error)throw a.message=`Error occurred during XX handshake: ${a.message}`,a}return s}async createSecureConnection(t,r){let[n,i]=Ul(),o=t.unwrap();return await Fl(n,Dh(r,this.metrics),o,s=>Wr(s,{lengthDecoder:Ii}),Bh(r,this.metrics),n),i}};function Pp(e={}){return()=>new Cs(e)}var f2=ke(ru(),1);var i2=ke(ru(),1);var nu=Je("libp2p:webrtc:sdp"),iu=Object.values(Kt).map(e=>e.decoder).reduce((e,t)=>e.or(t));function o2(e){let t=e.getConfiguration().certificates?.at(0);if(t==null||t.getFingerprints==null){nu.trace("fetching fingerprint from local SDP");let n=e.localDescription;return n==null?void 0:X3(n.sdp)}if(nu.trace("fetching fingerprint from local certificate"),t.getFingerprints().length===0)return;let r=t.getFingerprints()[0].value;if(r==null)throw La("","no fingerprint on local certificate");return r}var Z3=/^a=fingerprint:(?:\w+-[0-9]+)\s(?<fingerprint>(:?[0-9a-fA-F]{2})+)$/m;function X3(e){return e.match(Z3)?.groups?.fingerprint}function Q3(e){for(let t of e.protoNames())if(t.startsWith("ip"))return t.toUpperCase();return nu("Warning: multiaddr does not appear to contain IP4 or IP6, defaulting to IP6",e),"IP6"}function Us(e){let r=e.stringTuples().filter(n=>n[0]===au).map(n=>n[1])[0];if(r===void 0||r==="")throw co(`Couldn't find a certhash component of multiaddr: ${e.toString()}`);return r}function ou(e){let t=iu.decode(e);return i2.decode(t)}function j3(e){let t=ou(Us(e)),r=su(t.name),n=t.digest.reduce((o,s)=>o+s.toString(16).padStart(2,"0"),""),i=n.match(/.{1,2}/g);if(i==null)throw La(n,e.toString());return[`${r.toUpperCase()} ${i.join(":").toUpperCase()}`,n]}function su(e){switch(e){case"sha1":return"sha-1";case"sha2-256":return"sha-256";case"sha2-512":return"sha-512";default:throw ff(e)}}function J3(e,t){let{host:r,port:n}=e.toOptions(),i=Q3(e),[o]=j3(e);return`v=0
30
+ `).filter(n=>n.startsWith("a=candidate")).pop(),r=t?.split(" ");return t==null||r==null||r.length<5?(Cr("could not parse remote address from",t),"/webrtc"):`/dnsaddr/${r[4]}/${r[2].toLowerCase()}/${r[5]}/webrtc`}var Do=class extends EventTarget{#e=new Map;listenerCount(t){let r=this.#e.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#e.get(t);i==null&&(i=[],this.#e.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#e.get(t);i!=null&&(i=i.filter(({callback:o})=>o!==r),this.#e.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#e.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new nm(t,r))}},uc=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},nm=globalThis.CustomEvent??uc;var im=z("dns4"),om=z("dns6"),sm=z("dnsaddr"),jr=Ue(z("dns"),sm,im,om),To=Ue(z("ip4"),z("ip6")),On=Ue(X(To,z("tcp")),X(jr,z("tcp"))),_o=X(To,z("udp")),am=X(_o,z("utp")),cm=X(_o,z("quic")),um=X(_o,z("quic-v1")),fc=Ue(X(On,z("ws")),X(jr,z("ws"))),Bo=Ue(X(fc,z("p2p")),fc),lc=Ue(X(On,z("wss")),X(jr,z("wss")),X(On,z("tls"),z("ws")),X(jr,z("tls"),z("ws"))),Io=Ue(X(lc,z("p2p")),lc),hc=Ue(X(On,z("http")),X(To,z("http")),X(jr,z("http"))),dc=Ue(X(On,z("https")),X(To,z("https")),X(jr,z("https"))),Dl=X(_o,z("webrtc-direct"),z("certhash")),Tl=Ue(X(Dl,z("p2p")),Dl),Bl=X(um,z("webtransport"),z("certhash"),z("certhash")),_l=Ue(X(Bl,z("p2p")),Bl),kl=Ue(X(Bo,z("p2p-webrtc-star"),z("p2p")),X(Io,z("p2p-webrtc-star"),z("p2p")),X(Bo,z("p2p-webrtc-star")),X(Io,z("p2p-webrtc-star"))),q6=Ue(X(Bo,z("p2p-websocket-star"),z("p2p")),X(Io,z("p2p-websocket-star"),z("p2p")),X(Bo,z("p2p-websocket-star")),X(Io,z("p2p-websocket-star"))),Rl=Ue(X(hc,z("p2p-webrtc-direct"),z("p2p")),X(dc,z("p2p-webrtc-direct"),z("p2p")),X(hc,z("p2p-webrtc-direct")),X(dc,z("p2p-webrtc-direct"))),Jr=Ue(fc,lc,hc,dc,kl,Rl,On,am,cm,jr,Tl,_l),H6=Ue(X(Jr,z("p2p-stardust"),z("p2p")),X(Jr,z("p2p-stardust"))),Ar=Ue(X(Jr,z("p2p")),kl,Rl,Tl,_l,z("p2p")),Il=Ue(X(Ar,z("p2p-circuit"),Ar),X(Ar,z("p2p-circuit")),X(z("p2p-circuit"),Ar),X(Jr,z("p2p-circuit")),X(z("p2p-circuit"),Jr),z("p2p-circuit")),Ll=()=>Ue(X(Il,Ll),Il),tr=Ll(),z6=Ue(X(tr,Ar,tr),X(Ar,tr),X(tr,Ar),tr,Ar);var G6=Ue(X(tr,z("webrtc"),z("p2p")),X(tr,z("webrtc")),X(Jr,z("webrtc"),z("p2p")),X(Jr,z("webrtc")),z("webrtc"));function Nl(e){function t(r){let n;try{n=er(r)}catch{return!1}let i=e(n.protoNames());return i===null?!1:i===!0||i===!1?i:i.length===0}return t}function X(...e){function t(r){if(r.length<e.length)return null;let n=r;return e.some(i=>(n=typeof i=="function"?i().partialMatch(r):i.partialMatch(r),Array.isArray(n)&&(r=n),n===null)),n}return{toString:function(){return"{ "+e.join(" ")+" }"},input:e,matches:Nl(t),partialMatch:t}}function Ue(...e){function t(n){let i=null;return e.some(o=>{let s=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return s!=null?(i=s,!0):!1}),i}return{toString:function(){return"{ "+e.join(" ")+" }"},input:e,matches:Nl(t),partialMatch:t}}function z(e){let t=e;function r(i){let o;try{o=er(i)}catch{return!1}let s=o.protoNames();return s.length===1&&s[0]===t}function n(i){return i.length===0?null:i[0]===t?i.slice(1):null}return{toString:function(){return t},matches:r,partialMatch:n}}var ko=class extends Do{peerId;transportManager;constructor(t){super(),this.peerId=t.peerId,this.transportManager=t.transportManager}async listen(){this.safeDispatchEvent("listening",{})}getAddrs(){return this.transportManager.getListeners().filter(t=>t!==this).map(t=>t.getAddrs().filter(r=>tr.matches(r)).map(r=>r.encapsulate(`/webrtc/p2p/${this.peerId}`))).flat()}async close(){this.safeDispatchEvent("close",{})}};var Pl=Je("libp2p:webrtc:peer"),fm="/webrtc",lm="/p2p-circuit",pc="/webrtc-signaling/0.0.1",hm=he("webrtc").code,Ro=class{components;init;_started=!1;constructor(t,r={}){this.components=t,this.init=r}isStarted(){return this._started}async start(){await this.components.registrar.handle(pc,t=>{this._onProtocol(t).catch(r=>{Pl.error("failed to handle incoming connect from %p",t.connection.remotePeer,r)})},{runOnTransientConnection:!0}),this._started=!0}async stop(){await this.components.registrar.unhandle(pc),this._started=!1}createListener(t){return new ko(this.components)}[Symbol.toStringTag]="@libp2p/webrtc";[eo]=!0;filter(t){return t.filter(r=>r.protoCodes().includes(hm))}async dial(t,r){Pl.trace("dialing address: ",t);let{baseAddr:n,peerId:i}=dm(t);if(r.signal==null){let a=new AbortController;r.signal=a.signal}let o=await this.components.transportManager.dial(n,r),s=await o.newStream(pc,{...r,runOnTransientConnection:!0});try{let{pc:a,muxerFactory:c,remoteAddress:u}=await Cl({stream:s,rtcConfiguration:this.init.rtcConfiguration,dataChannelOptions:this.init.dataChannel,signal:r.signal}),f=await r.upgrader.upgradeOutbound(new Hr({peerConnection:a,timeline:{open:Date.now()},remoteAddr:er(u).encapsulate(`/p2p/${i.toString()}`)}),{skipProtection:!0,skipEncryption:!0,muxerFactory:c});return await s.close(),f}catch(a){throw s.abort(a),a}finally{await o.close()}}async _onProtocol({connection:t,stream:r}){try{let{pc:n,muxerFactory:i,remoteAddress:o}=await Sl({rtcConfiguration:this.init.rtcConfiguration,connection:t,stream:r,dataChannelOptions:this.init.dataChannel});await this.components.upgrader.upgradeInbound(new Hr({peerConnection:n,timeline:{open:new Date().getTime()},remoteAddr:er(o).encapsulate(`/p2p/${t.remotePeer.toString()}`)}),{skipEncryption:!0,skipProtection:!0,muxerFactory:i})}catch(n){throw r.abort(n),n}finally{await t.close()}}};function dm(e){let t=e.toString().split(fm+"/");if(t.length!==2)throw new Z("webrtc protocol was not present in multiaddr",ut.ERR_INVALID_MULTIADDR);if(!t[0].includes(lm))throw new Z("p2p-circuit protocol was not present in multiaddr",ut.ERR_INVALID_MULTIADDR);let r=er(t[0]),i=er("/"+t[1]).getPeerId();if(i==null)throw new Z("destination peer id was missing",ut.ERR_INVALID_MULTIADDR);let o=r.protos().pop();if(o===void 0)throw new Z("invalid multiaddr",ut.ERR_INVALID_MULTIADDR);return o.name!=="p2p"&&(r=r.encapsulate(`/p2p/${i}`)),{baseAddr:r,peerId:pi(i)}}function yc(){let e=pt(),t=!1;return{sink:async r=>{if(t)throw new Error("already piped");t=!0,e.resolve(r)},source:async function*(){yield*await e.promise}()}}function Ul(){let e=yc(),t=yc();return[{source:e.source,sink:t.sink},{source:t.source,sink:e.sink}]}function pm(e){return e[Symbol.asyncIterator]!=null}function ym(...e){let t=[];for(let r of e)pm(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Mt({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Ol=ym;function Fl(e,...t){if(e==null)throw new Error("Empty pipeline");if(gc(e)){let n=e;e=()=>n.source}else if(Ml(e)||Kl(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&gc(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)gc(r[n])&&(r[n]=mm(r[n]));return gm(...r)}var gm=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},Kl=e=>e?.[Symbol.asyncIterator]!=null,Ml=e=>e?.[Symbol.iterator]!=null,gc=e=>e==null?!1:e.sink!=null&&e.source!=null,mm=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Mt({objectMode:!0});r.then(()=>{n.end()},s=>{n.end(s)});let i,o=e.source;if(Kl(o))i=async function*(){yield*o,n.end()};else if(Ml(o))i=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Ol(n,i())}return e.source};var Vl=!!globalThis.process?.env?.DUMP_SESSION_KEYS;var xm=e=>e instanceof Uint8Array;var rr=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),ql=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),bm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!bm)throw new Error("Non little-endian hardware is not supported");function Lo(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function No(e){if(typeof e=="string"&&(e=Lo(e)),!xm(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}var wm=e=>Object.prototype.toString.call(e)==="[object Object]"&&e.constructor===Object;function Hl(e,t){if(t!==void 0&&(typeof t!="object"||!wm(t)))throw new Error("options must be object or undefined");return Object.assign(e,t)}function en(e,t){if(!(e instanceof Uint8Array))throw new Error("Uint8Array expected");if(typeof t=="number"&&e.length!==t)throw new Error(`Uint8Array length ${t} expected`)}function zl(e,t){if(e.length!==t.length)throw new Error("equalBytes: Different size of Uint8Arrays");let r=!0;for(let n=0;n<e.length;n++)r&&(r=e[n]===t[n]);return r}function mc(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}function xc(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function vm(e){if(typeof e!="boolean")throw new Error(`Expected boolean, not ${e}`)}function Gl(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Em(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("hash must be wrapped by utils.wrapConstructor");xc(e.outputLen),xc(e.blockLen)}function Sm(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Cm(e,t){Gl(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Am={number:xc,bool:vm,bytes:Gl,hash:Em,exists:Sm,output:Cm},tt=Am;var Xe=(e,t)=>e[t++]&255|(e[t++]&255)<<8,bc=class{constructor(t){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,t=No(t),en(t,32);let r=Xe(t,0),n=Xe(t,2),i=Xe(t,4),o=Xe(t,6),s=Xe(t,8),a=Xe(t,10),c=Xe(t,12),u=Xe(t,14);this.r[0]=r&8191,this.r[1]=(r>>>13|n<<3)&8191,this.r[2]=(n>>>10|i<<6)&7939,this.r[3]=(i>>>7|o<<9)&8191,this.r[4]=(o>>>4|s<<12)&255,this.r[5]=s>>>1&8190,this.r[6]=(s>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=Xe(t,16+2*f)}process(t,r,n=!1){let i=n?0:2048,{h:o,r:s}=this,a=s[0],c=s[1],u=s[2],f=s[3],l=s[4],h=s[5],y=s[6],d=s[7],p=s[8],g=s[9],m=Xe(t,r+0),v=Xe(t,r+2),x=Xe(t,r+4),A=Xe(t,r+6),E=Xe(t,r+8),w=Xe(t,r+10),B=Xe(t,r+12),D=Xe(t,r+14),R=o[0]+(m&8191),F=o[1]+((m>>>13|v<<3)&8191),O=o[2]+((v>>>10|x<<6)&8191),K=o[3]+((x>>>7|A<<9)&8191),q=o[4]+((A>>>4|E<<12)&8191),j=o[5]+(E>>>1&8191),I=o[6]+((E>>>14|w<<2)&8191),L=o[7]+((w>>>11|B<<5)&8191),_=o[8]+((B>>>8|D<<8)&8191),k=o[9]+(D>>>5|i),S=0,U=S+R*a+F*(5*g)+O*(5*p)+K*(5*d)+q*(5*y);S=U>>>13,U&=8191,U+=j*(5*h)+I*(5*l)+L*(5*f)+_*(5*u)+k*(5*c),S+=U>>>13,U&=8191;let M=S+R*c+F*a+O*(5*g)+K*(5*p)+q*(5*d);S=M>>>13,M&=8191,M+=j*(5*y)+I*(5*h)+L*(5*l)+_*(5*f)+k*(5*u),S+=M>>>13,M&=8191;let H=S+R*u+F*c+O*a+K*(5*g)+q*(5*p);S=H>>>13,H&=8191,H+=j*(5*d)+I*(5*y)+L*(5*h)+_*(5*l)+k*(5*f),S+=H>>>13,H&=8191;let Q=S+R*f+F*u+O*c+K*a+q*(5*g);S=Q>>>13,Q&=8191,Q+=j*(5*p)+I*(5*d)+L*(5*y)+_*(5*h)+k*(5*l),S+=Q>>>13,Q&=8191;let J=S+R*l+F*f+O*u+K*c+q*a;S=J>>>13,J&=8191,J+=j*(5*g)+I*(5*p)+L*(5*d)+_*(5*y)+k*(5*h),S+=J>>>13,J&=8191;let oe=S+R*h+F*l+O*f+K*u+q*c;S=oe>>>13,oe&=8191,oe+=j*a+I*(5*g)+L*(5*p)+_*(5*d)+k*(5*y),S+=oe>>>13,oe&=8191;let ee=S+R*y+F*h+O*l+K*f+q*u;S=ee>>>13,ee&=8191,ee+=j*c+I*a+L*(5*g)+_*(5*p)+k*(5*d),S+=ee>>>13,ee&=8191;let re=S+R*d+F*y+O*h+K*l+q*f;S=re>>>13,re&=8191,re+=j*u+I*c+L*a+_*(5*g)+k*(5*p),S+=re>>>13,re&=8191;let ve=S+R*p+F*d+O*y+K*h+q*l;S=ve>>>13,ve&=8191,ve+=j*f+I*u+L*c+_*a+k*(5*g),S+=ve>>>13,ve&=8191;let be=S+R*g+F*p+O*d+K*y+q*h;S=be>>>13,be&=8191,be+=j*l+I*f+L*u+_*c+k*a,S+=be>>>13,be&=8191,S=(S<<2)+S|0,S=S+U|0,U=S&8191,S=S>>>13,M+=S,o[0]=U,o[1]=M,o[2]=H,o[3]=Q,o[4]=J,o[5]=oe,o[6]=ee,o[7]=re,o[8]=ve,o[9]=be}finalize(){let{h:t,pad:r}=this,n=new Uint16Array(10),i=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=i,i=t[a]>>>13,t[a]&=8191;t[0]+=i*5,i=t[0]>>>13,t[0]&=8191,t[1]+=i,i=t[1]>>>13,t[1]&=8191,t[2]+=i,n[0]=t[0]+5,i=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+i,i=n[a]>>>13,n[a]&=8191;n[9]-=8192;let o=(i^1)-1;for(let a=0;a<10;a++)n[a]&=o;o=~o;for(let a=0;a<10;a++)t[a]=t[a]&o|n[a];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let s=t[0]+r[0];t[0]=s&65535;for(let a=1;a<8;a++)s=(t[a]+r[a]|0)+(s>>>16)|0,t[a]=s&65535}update(t){tt.exists(this);let{buffer:r,blockLen:n}=this;t=No(t);let i=t.length;for(let o=0;o<i;){let s=Math.min(n-this.pos,i-o);if(s===n){for(;n<=i-o;o+=n)this.process(t,o);continue}r.set(t.subarray(o,o+s),this.pos),this.pos+=s,o+=s,this.pos===n&&(this.process(r,0,!1),this.pos=0)}return this}destroy(){this.h.fill(0),this.r.fill(0),this.buffer.fill(0),this.pad.fill(0)}digestInto(t){tt.exists(this),tt.output(t,this),this.finished=!0;let{buffer:r,h:n}=this,{pos:i}=this;if(i){for(r[i++]=1;i<16;i++)r[i]=0;this.process(r,0,!0)}this.finalize();let o=0;for(let s=0;s<8;s++)t[o++]=n[s]>>>0,t[o++]=n[s]>>>8;return t}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}};function Dm(e){let t=(n,i)=>e(i).update(No(n)).digest(),r=e(new Uint8Array(32));return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=n=>e(n),t}var Wl=Dm(e=>new bc(e));var Bm=Lo("expand 16-byte k"),Im=Lo("expand 32-byte k"),Tm=rr(Bm),_m=rr(Im),Po=e=>!(e.byteOffset%4),$l=e=>{let{core:t,rounds:r,counterRight:n,counterLen:i,allow128bitKeys:o,extendNonceFn:s,blockLen:a}=Hl({rounds:20,counterRight:!1,counterLen:8,allow128bitKeys:!0,blockLen:64},e);tt.number(i),tt.number(r),tt.number(a),tt.bool(n),tt.bool(o);let c=a/4;if(a%4!==0)throw new Error("Salsa/ChaCha: blockLen must be aligned to 4 bytes");return(u,f,l,h,y=0)=>{if(tt.bytes(u),tt.bytes(f),tt.bytes(l),h||(h=new Uint8Array(l.length)),tt.bytes(h),tt.number(y),y<0||y>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");if(h.length<l.length)throw new Error(`Salsa/ChaCha: output (${h.length}) is shorter than data (${l.length})`);let d=[],p,g;if(u.length===32)Po(u)?p=u:(p=u.slice(),d.push(p)),g=_m;else if(u.length===16&&o)p=new Uint8Array(32),p.set(u),p.set(u,16),g=Tm,d.push(p);else throw new Error(`Salsa/ChaCha: invalid 32-byte key, got length=${u.length}`);if(Po(f)||(f=f.slice(),d.push(f)),s){if(f.length<=16)throw new Error("Salsa/ChaCha: extended nonce must be bigger than 16 bytes");p=s(g,p,f.subarray(0,16),new Uint8Array(32)),d.push(p),f=f.subarray(16)}let m=16-i;if(f.length!==m)throw new Error(`Salsa/ChaCha: nonce must be ${m} or 16 bytes`);if(m!==12){let R=new Uint8Array(12);R.set(f,n?0:12-f.length),d.push(f=R)}let v=new Uint8Array(a),x=rr(v),A=rr(p),E=rr(f),w=Po(l)&&rr(l),B=Po(h)&&rr(h);d.push(x);let D=l.length;for(let R=0,F=y;R<D;F++){if(t(g,A,E,x,F,r),F>=2**32-1)throw new Error("Salsa/ChaCha: counter overflow");let O=Math.min(a,D-R);if(O===a&&B&&w){let K=R/4;if(R%4!==0)throw new Error("Salsa/ChaCha: invalid block position");for(let q=0;q<c;q++)B[K+q]=w[K+q]^x[q];R+=a;continue}for(let K=0;K<O;K++)h[R+K]=l[R+K]^v[K];R+=O}for(let R=0;R<d.length;R++)d[R].fill(0);return h}};var de=(e,t)=>e<<t|e>>>32-t;function km(e,t,r,n,i,o=20){let s=e[0],a=e[1],c=e[2],u=e[3],f=t[0],l=t[1],h=t[2],y=t[3],d=t[4],p=t[5],g=t[6],m=t[7],v=i,x=r[0],A=r[1],E=r[2],w=s,B=a,D=c,R=u,F=f,O=l,K=h,q=y,j=d,I=p,L=g,_=m,k=v,S=x,U=A,M=E;for(let Q=0;Q<o;Q+=2)w=w+F|0,k=de(k^w,16),j=j+k|0,F=de(F^j,12),w=w+F|0,k=de(k^w,8),j=j+k|0,F=de(F^j,7),B=B+O|0,S=de(S^B,16),I=I+S|0,O=de(O^I,12),B=B+O|0,S=de(S^B,8),I=I+S|0,O=de(O^I,7),D=D+K|0,U=de(U^D,16),L=L+U|0,K=de(K^L,12),D=D+K|0,U=de(U^D,8),L=L+U|0,K=de(K^L,7),R=R+q|0,M=de(M^R,16),_=_+M|0,q=de(q^_,12),R=R+q|0,M=de(M^R,8),_=_+M|0,q=de(q^_,7),w=w+O|0,M=de(M^w,16),L=L+M|0,O=de(O^L,12),w=w+O|0,M=de(M^w,8),L=L+M|0,O=de(O^L,7),B=B+K|0,k=de(k^B,16),_=_+k|0,K=de(K^_,12),B=B+K|0,k=de(k^B,8),_=_+k|0,K=de(K^_,7),D=D+q|0,S=de(S^D,16),j=j+S|0,q=de(q^j,12),D=D+q|0,S=de(S^D,8),j=j+S|0,q=de(q^j,7),R=R+F|0,U=de(U^R,16),I=I+U|0,F=de(F^I,12),R=R+F|0,U=de(U^R,8),I=I+U|0,F=de(F^I,7);let H=0;n[H++]=s+w|0,n[H++]=a+B|0,n[H++]=c+D|0,n[H++]=u+R|0,n[H++]=f+F|0,n[H++]=l+O|0,n[H++]=h+K|0,n[H++]=y+q|0,n[H++]=d+j|0,n[H++]=p+I|0,n[H++]=g+L|0,n[H++]=m+_|0,n[H++]=v+k|0,n[H++]=x+S|0,n[H++]=A+U|0,n[H++]=E+M|0}var Rm=$l({core:km,counterRight:!1,counterLen:4,allow128bitKeys:!1});var Lm=new Uint8Array(16),Yl=(e,t)=>{e.update(t);let r=t.length%16;r&&e.update(Lm.subarray(r))},Zl=(e,t,r,n,i)=>{let o=e(t,r,new Uint8Array(32)),s=Wl.create(o);i&&Yl(s,i),Yl(s,n);let a=new Uint8Array(16),c=ql(a);mc(c,0,BigInt(i?i.length:0),!0),mc(c,8,BigInt(n.length),!0),s.update(a);let u=s.digest();return o.fill(0),u},Nm=e=>(t,r,n)=>(en(t,32),en(r),{tagLength:16,encrypt:(o,s)=>{let a=o.length,c=a+16;s?en(s,c):s=new Uint8Array(c),e(t,r,o,s,1);let u=Zl(e,t,r,s.subarray(0,-16),n);return s.set(u,a),s},decrypt:(o,s)=>{let a=o.length,c=a-16;if(a<16)throw new Error("encrypted data must be at least 16 bytes");s?en(s,c):s=new Uint8Array(c);let u=o.subarray(0,-16),f=o.subarray(-16),l=Zl(e,t,r,u,n);if(!zl(f,l))throw new Error("invalid tag");return e(t,r,u,s,1),s}}),wc=Nm(Rm);function Uo(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function vc(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function Ei(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Uo(e.outputLen),Uo(e.blockLen)}function Fn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Xl(e,t){vc(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Oo=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var Ql=e=>e instanceof Uint8Array;var Fo=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),kt=(e,t)=>e<<32-t|e>>>t,Pm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Pm)throw new Error("Non little-endian hardware is not supported");function Ec(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Dr(e){if(typeof e=="string"&&(e=Ec(e)),!Ql(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function Ko(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Ql(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Kn=class{clone(){return this._cloneInto()}},LC={}.toString;function Mo(e){let t=n=>e().update(Dr(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function tn(e=32){if(Oo&&typeof Oo.getRandomValues=="function")return Oo.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function Um(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let i=BigInt(32),o=BigInt(4294967295),s=Number(r>>i&o),a=Number(r&o),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}var Mn=class extends Kn{constructor(t,r,n,i){super(),this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Fo(this.buffer)}update(t){Fn(this);let{view:r,buffer:n,blockLen:i}=this;t=Dr(t);let o=t.length;for(let s=0;s<o;){let a=Math.min(i-this.pos,o-s);if(a===i){let c=Fo(t);for(;i<=o-s;s+=i)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Fn(this),Xl(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:o}=this,{pos:s}=this;r[s++]=128,this.buffer.subarray(s).fill(0),this.padOffset>i-s&&(this.process(n,0),s=0);for(let l=s;l<i;l++)r[l]=0;Um(n,i-8,BigInt(this.length*8),o),this.process(n,0);let a=Fo(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<u;l++)a.setUint32(4*l,f[l],o)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:o,destroyed:s,pos:a}=this;return t.length=i,t.pos=a,t.finished=o,t.destroyed=s,i%r&&t.buffer.set(n),t}};var Vo=BigInt(4294967295),Sc=BigInt(32);function jl(e,t=!1){return t?{h:Number(e&Vo),l:Number(e>>Sc&Vo)}:{h:Number(e>>Sc&Vo)|0,l:Number(e&Vo)|0}}function Om(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:o,l:s}=jl(e[i],t);[r[i],n[i]]=[o,s]}return[r,n]}var Fm=(e,t)=>BigInt(e>>>0)<<Sc|BigInt(t>>>0),Km=(e,t,r)=>e>>>r,Mm=(e,t,r)=>e<<32-r|t>>>r,Vm=(e,t,r)=>e>>>r|t<<32-r,qm=(e,t,r)=>e<<32-r|t>>>r,Hm=(e,t,r)=>e<<64-r|t>>>r-32,zm=(e,t,r)=>e>>>r-32|t<<64-r,Gm=(e,t)=>t,Wm=(e,t)=>e,$m=(e,t,r)=>e<<r|t>>>32-r,Ym=(e,t,r)=>t<<r|e>>>32-r,Zm=(e,t,r)=>t<<r-32|e>>>64-r,Xm=(e,t,r)=>e<<r-32|t>>>64-r;function Qm(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var jm=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Jm=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,ex=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),tx=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,rx=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),nx=(e,t,r,n,i,o)=>t+r+n+i+o+(e/2**32|0)|0;var ix={fromBig:jl,split:Om,toBig:Fm,shrSH:Km,shrSL:Mm,rotrSH:Vm,rotrSL:qm,rotrBH:Hm,rotrBL:zm,rotr32H:Gm,rotr32L:Wm,rotlSH:$m,rotlSL:Ym,rotlBH:Zm,rotlBL:Xm,add:Qm,add3L:jm,add3H:Jm,add4L:ex,add4H:tx,add5H:nx,add5L:rx},ne=ix;var[ox,sx]=(()=>ne.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))))(),Br=new Uint32Array(80),Ir=new Uint32Array(80),Cc=class extends Mn{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:r,Bh:n,Bl:i,Ch:o,Cl:s,Dh:a,Dl:c,Eh:u,El:f,Fh:l,Fl:h,Gh:y,Gl:d,Hh:p,Hl:g}=this;return[t,r,n,i,o,s,a,c,u,f,l,h,y,d,p,g]}set(t,r,n,i,o,s,a,c,u,f,l,h,y,d,p,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=o|0,this.Cl=s|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=f|0,this.Fh=l|0,this.Fl=h|0,this.Gh=y|0,this.Gl=d|0,this.Hh=p|0,this.Hl=g|0}process(t,r){for(let x=0;x<16;x++,r+=4)Br[x]=t.getUint32(r),Ir[x]=t.getUint32(r+=4);for(let x=16;x<80;x++){let A=Br[x-15]|0,E=Ir[x-15]|0,w=ne.rotrSH(A,E,1)^ne.rotrSH(A,E,8)^ne.shrSH(A,E,7),B=ne.rotrSL(A,E,1)^ne.rotrSL(A,E,8)^ne.shrSL(A,E,7),D=Br[x-2]|0,R=Ir[x-2]|0,F=ne.rotrSH(D,R,19)^ne.rotrBH(D,R,61)^ne.shrSH(D,R,6),O=ne.rotrSL(D,R,19)^ne.rotrBL(D,R,61)^ne.shrSL(D,R,6),K=ne.add4L(B,O,Ir[x-7],Ir[x-16]),q=ne.add4H(K,w,F,Br[x-7],Br[x-16]);Br[x]=q|0,Ir[x]=K|0}let{Ah:n,Al:i,Bh:o,Bl:s,Ch:a,Cl:c,Dh:u,Dl:f,Eh:l,El:h,Fh:y,Fl:d,Gh:p,Gl:g,Hh:m,Hl:v}=this;for(let x=0;x<80;x++){let A=ne.rotrSH(l,h,14)^ne.rotrSH(l,h,18)^ne.rotrBH(l,h,41),E=ne.rotrSL(l,h,14)^ne.rotrSL(l,h,18)^ne.rotrBL(l,h,41),w=l&y^~l&p,B=h&d^~h&g,D=ne.add5L(v,E,B,sx[x],Ir[x]),R=ne.add5H(D,m,A,w,ox[x],Br[x]),F=D|0,O=ne.rotrSH(n,i,28)^ne.rotrBH(n,i,34)^ne.rotrBH(n,i,39),K=ne.rotrSL(n,i,28)^ne.rotrBL(n,i,34)^ne.rotrBL(n,i,39),q=n&o^n&a^o&a,j=i&s^i&c^s&c;m=p|0,v=g|0,p=y|0,g=d|0,y=l|0,d=h|0,{h:l,l:h}=ne.add(u|0,f|0,R|0,F|0),u=a|0,f=c|0,a=o|0,c=s|0,o=n|0,s=i|0;let I=ne.add3L(F,K,j);n=ne.add3H(I,R,O,q),i=I|0}({h:n,l:i}=ne.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:o,l:s}=ne.add(this.Bh|0,this.Bl|0,o|0,s|0),{h:a,l:c}=ne.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=ne.add(this.Dh|0,this.Dl|0,u|0,f|0),{h:l,l:h}=ne.add(this.Eh|0,this.El|0,l|0,h|0),{h:y,l:d}=ne.add(this.Fh|0,this.Fl|0,y|0,d|0),{h:p,l:g}=ne.add(this.Gh|0,this.Gl|0,p|0,g|0),{h:m,l:v}=ne.add(this.Hh|0,this.Hl|0,m|0,v|0),this.set(n,i,o,s,a,c,u,f,l,h,y,d,p,g,m,v)}roundClean(){Br.fill(0),Ir.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Ac=Mo(()=>new Cc);var zo={};ue(zo,{bitGet:()=>dx,bitLen:()=>hx,bitMask:()=>Si,bitSet:()=>px,bytesToHex:()=>nr,bytesToNumberBE:()=>ir,bytesToNumberLE:()=>Rt,concatBytes:()=>sr,createHmacDrbg:()=>Ic,ensureBytes:()=>Se,equalBytes:()=>fx,hexToBytes:()=>rn,hexToNumber:()=>Bc,numberToBytesBE:()=>Tr,numberToBytesLE:()=>or,numberToHexUnpadded:()=>th,numberToVarBytesBE:()=>ux,utf8ToBytes:()=>lx,validateObject:()=>mt});var eh=BigInt(0),qo=BigInt(1),ax=BigInt(2),Ho=e=>e instanceof Uint8Array,cx=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function nr(e){if(!Ho(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=cx[e[r]];return t}function th(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Bc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function rn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,o=e.slice(i,i+2),s=Number.parseInt(o,16);if(Number.isNaN(s)||s<0)throw new Error("Invalid byte sequence");r[n]=s}return r}function ir(e){return Bc(nr(e))}function Rt(e){if(!Ho(e))throw new Error("Uint8Array expected");return Bc(nr(Uint8Array.from(e).reverse()))}function Tr(e,t){return rn(e.toString(16).padStart(t*2,"0"))}function or(e,t){return Tr(e,t).reverse()}function ux(e){return rn(th(e))}function Se(e,t,r){let n;if(typeof t=="string")try{n=rn(t)}catch(o){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${o}`)}else if(Ho(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function sr(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!Ho(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function fx(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function lx(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function hx(e){let t;for(t=0;e>eh;e>>=qo,t+=1);return t}function dx(e,t){return e>>BigInt(t)&qo}var px=(e,t,r)=>e|(r?qo:eh)<<BigInt(t),Si=e=>(ax<<BigInt(e-1))-qo,Dc=e=>new Uint8Array(e),Jl=e=>Uint8Array.from(e);function Ic(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Dc(e),i=Dc(e),o=0,s=()=>{n.fill(1),i.fill(0),o=0},a=(...l)=>r(i,n,...l),c=(l=Dc())=>{i=a(Jl([0]),l),n=a(),l.length!==0&&(i=a(Jl([1]),l),n=a())},u=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,h=[];for(;l<t;){n=a();let y=n.slice();h.push(y),l+=n.length}return sr(...h)};return(l,h)=>{s(),c(l);let y;for(;!(y=h(u()));)c();return s(),y}}var yx={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function mt(e,t,r={}){let n=(i,o,s)=>{let a=yx[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=e[i];if(!(s&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${o}`)};for(let[i,o]of Object.entries(t))n(i,o,!1);for(let[i,o]of Object.entries(r))n(i,o,!0);return e}var Me=BigInt(0),Ie=BigInt(1),nn=BigInt(2),gx=BigInt(3),Tc=BigInt(4),rh=BigInt(5),nh=BigInt(8),mx=BigInt(9),xx=BigInt(16);function pe(e,t){let r=e%t;return r>=Me?r:t+r}function _c(e,t,r){if(r<=Me||t<Me)throw new Error("Expected power/modulo > 0");if(r===Ie)return Me;let n=Ie;for(;t>Me;)t&Ie&&(n=n*e%r),e=e*e%r,t>>=Ie;return n}function Ce(e,t,r){let n=e;for(;t-- >Me;)n*=n,n%=r;return n}function Go(e,t){if(e===Me||t<=Me)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=pe(e,t),n=t,i=Me,o=Ie,s=Ie,a=Me;for(;r!==Me;){let u=n/r,f=n%r,l=i-s*u,h=o-a*u;n=r,r=f,i=s,o=a,s=l,a=h}if(n!==Ie)throw new Error("invert: does not exist");return pe(i,t)}function bx(e){let t=(e-Ie)/nn,r,n,i;for(r=e-Ie,n=0;r%nn===Me;r/=nn,n++);for(i=nn;i<e&&_c(i,t,e)!==e-Ie;i++);if(n===1){let s=(e+Ie)/Tc;return function(c,u){let f=c.pow(u,s);if(!c.eql(c.sqr(f),u))throw new Error("Cannot find square root");return f}}let o=(r+Ie)/nn;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,f=a.pow(a.mul(a.ONE,i),r),l=a.pow(c,o),h=a.pow(c,r);for(;!a.eql(h,a.ONE);){if(a.eql(h,a.ZERO))return a.ZERO;let y=1;for(let p=a.sqr(h);y<u&&!a.eql(p,a.ONE);y++)p=a.sqr(p);let d=a.pow(f,Ie<<BigInt(u-y-1));f=a.sqr(d),l=a.mul(l,d),h=a.mul(h,f),u=y}return l}}function wx(e){if(e%Tc===gx){let t=(e+Ie)/Tc;return function(n,i){let o=n.pow(i,t);if(!n.eql(n.sqr(o),i))throw new Error("Cannot find square root");return o}}if(e%nh===rh){let t=(e-rh)/nh;return function(n,i){let o=n.mul(i,nn),s=n.pow(o,t),a=n.mul(i,s),c=n.mul(n.mul(a,nn),s),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return e%xx,bx(e)}var ih=(e,t)=>(pe(e,t)&Ie)===Ie,vx=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kc(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=vx.reduce((n,i)=>(n[i]="function",n),t);return mt(e,r)}function Ex(e,t,r){if(r<Me)throw new Error("Expected power > 0");if(r===Me)return e.ONE;if(r===Ie)return t;let n=e.ONE,i=t;for(;r>Me;)r&Ie&&(n=e.mul(n,i)),i=e.sqr(i),r>>=Ie;return n}function Sx(e,t){let r=new Array(t.length),n=t.reduce((o,s,a)=>e.is0(s)?o:(r[a]=o,e.mul(o,s)),e.ONE),i=e.inv(n);return t.reduceRight((o,s,a)=>e.is0(s)?o:(r[a]=e.mul(o,r[a]),e.mul(o,s)),i),r}function Rc(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Wo(e,t,r=!1,n={}){if(e<=Me)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:o}=Rc(e,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let s=wx(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:o,MASK:Si(i),ZERO:Me,ONE:Ie,create:c=>pe(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Me<=c&&c<e},is0:c=>c===Me,isOdd:c=>(c&Ie)===Ie,neg:c=>pe(-c,e),eql:(c,u)=>c===u,sqr:c=>pe(c*c,e),add:(c,u)=>pe(c+u,e),sub:(c,u)=>pe(c-u,e),mul:(c,u)=>pe(c*u,e),pow:(c,u)=>Ex(a,c,u),div:(c,u)=>pe(c*Go(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Go(c,e),sqrt:n.sqrt||(c=>s(a,c)),invertBatch:c=>Sx(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>r?or(c,o):Tr(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return r?Rt(c):ir(c)}});return Object.freeze(a)}function oh(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function sh(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Lc(e){let t=sh(e);return t+Math.ceil(t/2)}function ah(e,t,r=!1){let n=e.length,i=sh(t),o=Lc(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let s=r?ir(e):Rt(e),a=pe(s,t-Ie)+Ie;return r?or(a,i):Tr(a,i)}var Ax=BigInt(0),Nc=BigInt(1);function $o(e,t){let r=(i,o)=>{let s=o.negate();return i?s:o},n=i=>{let o=Math.ceil(t/i)+1,s=2**(i-1);return{windows:o,windowSize:s}};return{constTimeNegate:r,unsafeLadder(i,o){let s=e.ZERO,a=i;for(;o>Ax;)o&Nc&&(s=s.add(a)),a=a.double(),o>>=Nc;return s},precomputeWindow(i,o){let{windows:s,windowSize:a}=n(o),c=[],u=i,f=u;for(let l=0;l<s;l++){f=u,c.push(f);for(let h=1;h<a;h++)f=f.add(u),c.push(f);u=f.double()}return c},wNAF(i,o,s){let{windows:a,windowSize:c}=n(i),u=e.ZERO,f=e.BASE,l=BigInt(2**i-1),h=2**i,y=BigInt(i);for(let d=0;d<a;d++){let p=d*c,g=Number(s&l);s>>=y,g>c&&(g-=h,s+=Nc);let m=p,v=p+Math.abs(g)-1,x=d%2!==0,A=g<0;g===0?f=f.add(r(x,o[m])):u=u.add(r(A,o[v]))}return{p:u,f}},wNAFCached(i,o,s,a){let c=i._WINDOW_SIZE||1,u=o.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&o.set(i,a(u))),this.wNAF(c,u,s)}}}function Ci(e){return kc(e.Fp),mt(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Rc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Lt=BigInt(0),lt=BigInt(1),Yo=BigInt(2),Dx=BigInt(8),Bx={zip215:!0};function Ix(e){let t=Ci(e);return mt(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function Zo(e){let t=Ix(e),{Fp:r,n,prehash:i,hash:o,randomBytes:s,nByteLength:a,h:c}=t,u=Yo<<BigInt(a*8)-lt,f=r.create,l=t.uvRatio||((k,S)=>{try{return{isValid:!0,value:r.sqrt(k*r.inv(S))}}catch{return{isValid:!1,value:Lt}}}),h=t.adjustScalarBytes||(k=>k),y=t.domain||((k,S,U)=>{if(S.length||U)throw new Error("Contexts/pre-hash are not supported");return k}),d=k=>typeof k=="bigint"&&Lt<k,p=(k,S)=>d(k)&&d(S)&&k<S,g=k=>k===Lt||p(k,u);function m(k,S){if(p(k,S))return k;throw new Error(`Expected valid scalar < ${S}, got ${typeof k} ${k}`)}function v(k){return k===Lt?k:m(k,n)}let x=new Map;function A(k){if(!(k instanceof E))throw new Error("ExtendedPoint expected")}class E{constructor(S,U,M,H){if(this.ex=S,this.ey=U,this.ez=M,this.et=H,!g(S))throw new Error("x required");if(!g(U))throw new Error("y required");if(!g(M))throw new Error("z required");if(!g(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(S){if(S instanceof E)throw new Error("extended point not allowed");let{x:U,y:M}=S||{};if(!g(U)||!g(M))throw new Error("invalid affine point");return new E(U,M,lt,f(U*M))}static normalizeZ(S){let U=r.invertBatch(S.map(M=>M.ez));return S.map((M,H)=>M.toAffine(U[H])).map(E.fromAffine)}_setWindowSize(S){this._WINDOW_SIZE=S,x.delete(this)}assertValidity(){let{a:S,d:U}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:M,ey:H,ez:Q,et:J}=this,oe=f(M*M),ee=f(H*H),re=f(Q*Q),ve=f(re*re),be=f(oe*S),We=f(re*f(be+ee)),$e=f(ve+f(U*f(oe*ee)));if(We!==$e)throw new Error("bad point: equation left != right (1)");let Ke=f(M*H),je=f(Q*J);if(Ke!==je)throw new Error("bad point: equation left != right (2)")}equals(S){A(S);let{ex:U,ey:M,ez:H}=this,{ex:Q,ey:J,ez:oe}=S,ee=f(U*oe),re=f(Q*H),ve=f(M*oe),be=f(J*H);return ee===re&&ve===be}is0(){return this.equals(E.ZERO)}negate(){return new E(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:S}=t,{ex:U,ey:M,ez:H}=this,Q=f(U*U),J=f(M*M),oe=f(Yo*f(H*H)),ee=f(S*Q),re=U+M,ve=f(f(re*re)-Q-J),be=ee+J,We=be-oe,$e=ee-J,Ke=f(ve*We),je=f(be*$e),Qt=f(ve*$e),Fr=f(We*be);return new E(Ke,je,Fr,Qt)}add(S){A(S);let{a:U,d:M}=t,{ex:H,ey:Q,ez:J,et:oe}=this,{ex:ee,ey:re,ez:ve,et:be}=S;if(U===BigInt(-1)){let uu=f((Q-H)*(re+ee)),fu=f((Q+H)*(re-ee)),Ks=f(fu-uu);if(Ks===Lt)return this.double();let lu=f(J*Yo*be),hu=f(oe*Yo*ve),du=hu+lu,pu=fu+uu,yu=hu-lu,y2=f(du*Ks),g2=f(pu*yu),m2=f(du*yu),x2=f(Ks*pu);return new E(y2,g2,x2,m2)}let We=f(H*ee),$e=f(Q*re),Ke=f(oe*M*be),je=f(J*ve),Qt=f((H+Q)*(ee+re)-We-$e),Fr=je-Ke,ci=je+Ke,cu=f($e-U*We),l2=f(Qt*Fr),h2=f(ci*cu),d2=f(Qt*cu),p2=f(Fr*ci);return new E(l2,h2,p2,d2)}subtract(S){return this.add(S.negate())}wNAF(S){return D.wNAFCached(this,x,S,E.normalizeZ)}multiply(S){let{p:U,f:M}=this.wNAF(m(S,n));return E.normalizeZ([U,M])[0]}multiplyUnsafe(S){let U=v(S);return U===Lt?B:this.equals(B)||U===lt?this:this.equals(w)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(S){let{ex:U,ey:M,ez:H}=this,Q=this.is0();S==null&&(S=Q?Dx:r.inv(H));let J=f(U*S),oe=f(M*S),ee=f(H*S);if(Q)return{x:Lt,y:lt};if(ee!==lt)throw new Error("invZ was invalid");return{x:J,y:oe}}clearCofactor(){let{h:S}=t;return S===lt?this:this.multiplyUnsafe(S)}static fromHex(S,U=!1){let{d:M,a:H}=t,Q=r.BYTES;S=Se("pointHex",S,Q);let J=S.slice(),oe=S[Q-1];J[Q-1]=oe&-129;let ee=Rt(J);ee===Lt||(U?m(ee,u):m(ee,r.ORDER));let re=f(ee*ee),ve=f(re-lt),be=f(M*re-H),{isValid:We,value:$e}=l(ve,be);if(!We)throw new Error("Point.fromHex: invalid y coordinate");let Ke=($e&lt)===lt,je=(oe&128)!==0;if(!U&&$e===Lt&&je)throw new Error("Point.fromHex: x=0 and x_0=1");return je!==Ke&&($e=f(-$e)),E.fromAffine({x:$e,y:ee})}static fromPrivateKey(S){return O(S).point}toRawBytes(){let{x:S,y:U}=this.toAffine(),M=or(U,r.BYTES);return M[M.length-1]|=S&lt?128:0,M}toHex(){return nr(this.toRawBytes())}}E.BASE=new E(t.Gx,t.Gy,lt,f(t.Gx*t.Gy)),E.ZERO=new E(Lt,lt,lt,Lt);let{BASE:w,ZERO:B}=E,D=$o(E,a*8);function R(k){return pe(k,n)}function F(k){return R(Rt(k))}function O(k){let S=a;k=Se("private key",k,S);let U=Se("hashed private key",o(k),2*S),M=h(U.slice(0,S)),H=U.slice(S,2*S),Q=F(M),J=w.multiply(Q),oe=J.toRawBytes();return{head:M,prefix:H,scalar:Q,point:J,pointBytes:oe}}function K(k){return O(k).pointBytes}function q(k=new Uint8Array,...S){let U=sr(...S);return F(o(y(U,Se("context",k),!!i)))}function j(k,S,U={}){k=Se("message",k),i&&(k=i(k));let{prefix:M,scalar:H,pointBytes:Q}=O(S),J=q(U.context,M,k),oe=w.multiply(J).toRawBytes(),ee=q(U.context,oe,Q,k),re=R(J+ee*H);v(re);let ve=sr(oe,or(re,r.BYTES));return Se("result",ve,a*2)}let I=Bx;function L(k,S,U,M=I){let{context:H,zip215:Q}=M,J=r.BYTES;k=Se("signature",k,2*J),S=Se("message",S),i&&(S=i(S));let oe=Rt(k.slice(J,2*J)),ee,re,ve;try{ee=E.fromHex(U,Q),re=E.fromHex(k.slice(0,J),Q),ve=w.multiplyUnsafe(oe)}catch{return!1}if(!Q&&ee.isSmallOrder())return!1;let be=q(H,re.toRawBytes(),ee.toRawBytes(),S);return re.add(ee.multiplyUnsafe(be)).subtract(ve).clearCofactor().equals(E.ZERO)}return w._setWindowSize(8),{CURVE:t,getPublicKey:K,sign:j,verify:L,ExtendedPoint:E,utils:{getExtendedPublicKey:O,randomPrivateKey:()=>s(r.BYTES),precompute(k=8,S=E.BASE){return S._setWindowSize(k),S.multiply(BigInt(3)),S}}}}var Ai=BigInt(0),Pc=BigInt(1);function Tx(e){return mt(e,{a:"bigint"},{montgomeryBits:"isSafeInteger",nByteLength:"isSafeInteger",adjustScalarBytes:"function",domain:"function",powPminus2:"function",Gu:"bigint"}),Object.freeze({...e})}function ch(e){let t=Tx(e),{P:r}=t,n=x=>pe(x,r),i=t.montgomeryBits,o=Math.ceil(i/8),s=t.nByteLength,a=t.adjustScalarBytes||(x=>x),c=t.powPminus2||(x=>_c(x,r-BigInt(2),r));function u(x,A,E){let w=n(x*(A-E));return A=n(A-w),E=n(E+w),[A,E]}function f(x){if(typeof x=="bigint"&&Ai<=x&&x<r)return x;throw new Error("Expected valid scalar 0 < scalar < CURVE.P")}let l=(t.a-BigInt(2))/BigInt(4);function h(x,A){let E=f(x),w=f(A),B=E,D=Pc,R=Ai,F=E,O=Pc,K=Ai,q;for(let I=BigInt(i-1);I>=Ai;I--){let L=w>>I&Pc;K^=L,q=u(K,D,F),D=q[0],F=q[1],q=u(K,R,O),R=q[0],O=q[1],K=L;let _=D+R,k=n(_*_),S=D-R,U=n(S*S),M=k-U,H=F+O,Q=F-O,J=n(Q*_),oe=n(H*S),ee=J+oe,re=J-oe;F=n(ee*ee),O=n(B*n(re*re)),D=n(k*U),R=n(M*(k+n(l*M)))}q=u(K,D,F),D=q[0],F=q[1],q=u(K,R,O),R=q[0],O=q[1];let j=c(R);return n(D*j)}function y(x){return or(n(x),o)}function d(x){let A=Se("u coordinate",x,o);return s===o&&(A[s-1]&=127),Rt(A)}function p(x){let A=Se("scalar",x);if(A.length!==o&&A.length!==s)throw new Error(`Expected ${o} or ${s} bytes, got ${A.length}`);return Rt(a(A))}function g(x,A){let E=d(A),w=p(x),B=h(E,w);if(B===Ai)throw new Error("Invalid private or public key received");return y(B)}let m=y(t.Gu);function v(x){return g(x,m)}return{scalarMult:g,scalarMultBase:v,getSharedSecret:(x,A)=>g(x,A),getPublicKey:x=>v(x),utils:{randomPrivateKey:()=>t.randomBytes(t.nByteLength)},GuBytes:m}}var Di=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),uh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),oA=BigInt(0),_x=BigInt(1),Uc=BigInt(2),kx=BigInt(5),fh=BigInt(10),Rx=BigInt(20),Lx=BigInt(40),lh=BigInt(80);function hh(e){let t=Di,n=e*e%t*e%t,i=Ce(n,Uc,t)*n%t,o=Ce(i,_x,t)*e%t,s=Ce(o,kx,t)*o%t,a=Ce(s,fh,t)*s%t,c=Ce(a,Rx,t)*a%t,u=Ce(c,Lx,t)*c%t,f=Ce(u,lh,t)*u%t,l=Ce(f,lh,t)*u%t,h=Ce(l,fh,t)*s%t;return{pow_p_5_8:Ce(h,Uc,t)*e%t,b2:n}}function dh(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function Nx(e,t){let r=Di,n=pe(t*t*t,r),i=pe(n*n*t,r),o=hh(e*i).pow_p_5_8,s=pe(e*n*o,r),a=pe(t*s*s,r),c=s,u=pe(s*uh,r),f=a===e,l=a===pe(-e,r),h=a===pe(-e*uh,r);return f&&(s=c),(l||h)&&(s=u),ih(s,r)&&(s=pe(-s,r)),{isValid:f||l,value:s}}var ar=Wo(Di,void 0,!0),Oc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ar,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Ac,randomBytes:tn,adjustScalarBytes:dh,uvRatio:Nx},Vn=Zo(Oc);function ph(e,t,r){if(t.length>255)throw new Error("Context is too big");return Ko(Ec("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var sA=Zo({...Oc,domain:ph}),aA=Zo({...Oc,domain:ph,prehash:Ac}),Bi=(()=>ch({P:Di,a:BigInt(486662),montgomeryBits:255,nByteLength:32,Gu:BigInt(9),powPminus2:e=>{let t=Di,{pow_p_5_8:r,b2:n}=hh(e);return pe(Ce(r,BigInt(3),t)*n,t)},adjustScalarBytes:dh,randomBytes:tn}))();var Px=(ar.ORDER+BigInt(3))/BigInt(8),cA=ar.pow(Uc,Px),uA=ar.sqrt(ar.neg(ar.ONE)),fA=(ar.ORDER-BigInt(5))/BigInt(8),lA=BigInt(486662);var hA=oh(ar,ar.neg(BigInt(486664)));var dA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),pA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),yA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),gA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var mA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Xo=class extends Kn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,Ei(t);let n=Dr(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,o=new Uint8Array(i);o.set(n.length>i?t.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),o.fill(0)}update(t){return Fn(this),this.iHash.update(t),this}digestInto(t){Fn(this),vc(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:o,blockLen:s,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=o,t.blockLen=s,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},qn=(e,t,r)=>new Xo(e,t).update(r).digest();qn.create=(e,t)=>new Xo(e,t);function gh(e,t,r){return Ei(e),r===void 0&&(r=new Uint8Array(e.outputLen)),qn(e,Dr(r),Dr(t))}var Fc=new Uint8Array([0]),yh=new Uint8Array;function mh(e,t,r,n=32){if(Ei(e),Uo(n),n>255*e.outputLen)throw new Error("Length should be <= 255*HashLen");let i=Math.ceil(n/e.outputLen);r===void 0&&(r=yh);let o=new Uint8Array(i*e.outputLen),s=qn.create(e,t),a=s._cloneInto(),c=new Uint8Array(s.outputLen);for(let u=0;u<i;u++)Fc[0]=u+1,a.update(u===0?yh:c).update(r).update(Fc).digestInto(c),o.set(c,e.outputLen*u),s._cloneInto(a);return s.destroy(),a.destroy(),c.fill(0),Fc.fill(0),o.slice(0,n)}var Ux=(e,t,r)=>e&t^~e&r,Ox=(e,t,r)=>e&t^e&r^t&r,Fx=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),_r=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),kr=new Uint32Array(64),Kc=class extends Mn{constructor(){super(64,32,8,!1),this.A=_r[0]|0,this.B=_r[1]|0,this.C=_r[2]|0,this.D=_r[3]|0,this.E=_r[4]|0,this.F=_r[5]|0,this.G=_r[6]|0,this.H=_r[7]|0}get(){let{A:t,B:r,C:n,D:i,E:o,F:s,G:a,H:c}=this;return[t,r,n,i,o,s,a,c]}set(t,r,n,i,o,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=o|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let l=0;l<16;l++,r+=4)kr[l]=t.getUint32(r,!1);for(let l=16;l<64;l++){let h=kr[l-15],y=kr[l-2],d=kt(h,7)^kt(h,18)^h>>>3,p=kt(y,17)^kt(y,19)^y>>>10;kr[l]=p+kr[l-7]+d+kr[l-16]|0}let{A:n,B:i,C:o,D:s,E:a,F:c,G:u,H:f}=this;for(let l=0;l<64;l++){let h=kt(a,6)^kt(a,11)^kt(a,25),y=f+h+Ux(a,c,u)+Fx[l]+kr[l]|0,p=(kt(n,2)^kt(n,13)^kt(n,22))+Ox(n,i,o)|0;f=u,u=c,c=a,a=s+y|0,s=o,o=i,i=n,n=y+p|0}n=n+this.A|0,i=i+this.B|0,o=o+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,f=f+this.H|0,this.set(n,i,o,s,a,c,u,f)}roundClean(){kr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Hn=Mo(()=>new Kc);var Mc={hashSHA256(e){return Hn(e)},getHKDF(e,t){let r=gh(Hn,t,e),i=mh(Hn,r,void 0,96),o=i.subarray(0,32),s=i.subarray(32,64),a=i.subarray(64,96);return[o,s,a]},generateX25519KeyPair(){let e=Bi.utils.randomPrivateKey();return{publicKey:Bi.getPublicKey(e),privateKey:e}},generateX25519KeyPairFromSeed(e){return{publicKey:Bi.getPublicKey(e),privateKey:e}},generateX25519SharedKey(e,t){return Bi.getSharedSecret(e,t)},chaCha20Poly1305Encrypt(e,t,r,n){return wc(n,t,r).encrypt(e)},chaCha20Poly1305Decrypt(e,t,r,n,i){return wc(n,t,r).decrypt(e,i)}};var Kx=e=>globalThis.Buffer?globalThis.Buffer.allocUnsafe(e):new Uint8Array(e),zn=e=>{let t=Kx(2);return new DataView(t.buffer,t.byteOffset,t.byteLength).setUint16(0,e,!1),t};zn.bytes=2;var Ii=e=>{if(e.length<2)throw RangeError("Could not decode int16BE");return e instanceof Uint8Array?new DataView(e.buffer,e.byteOffset,e.byteLength).getUint16(0,!1):e.getUint16(0)};Ii.bytes=2;function xh(e){return me([e.ne,e.ciphertext],e.ne.length+e.ciphertext.length)}function bh(e){return me([e.ne,e.ns,e.ciphertext],e.ne.length+e.ns.length+e.ciphertext.length)}function wh(e){return me([e.ns,e.ciphertext],e.ns.length+e.ciphertext.length)}function vh(e){if(e.length<32)throw new Error("Cannot decode stage 0 MessageBuffer: length less than 32 bytes.");return{ne:e.subarray(0,32),ciphertext:e.subarray(32,e.length),ns:new Uint8Array(0)}}function Eh(e){if(e.length<80)throw new Error("Cannot decode stage 1 MessageBuffer: length less than 80 bytes.");return{ne:e.subarray(0,32),ns:e.subarray(32,80),ciphertext:e.subarray(80,e.length)}}function Sh(e){if(e.length<48)throw new Error("Cannot decode stage 2 MessageBuffer: length less than 48 bytes.");return{ne:new Uint8Array(0),ns:e.subarray(0,48),ciphertext:e.subarray(48,e.length)}}var Ah=16;function Dh(e,t){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65519){let o=i+65519;o>n.length&&(o=n.length);let s=e.encrypt(n.subarray(i,o),e.session);t?.encryptedPackets.increment(),yield zn(s.byteLength),yield s}}}function Bh(e,t){return async function*(r){for await(let n of r)for(let i=0;i<n.length;i+=65535){let o=i+65535;if(o>n.length&&(o=n.length),o-Ah<i)throw new Error("Invalid chunk");let s=n.subarray(i,o),a=n.subarray(i,o-Ah),{plaintext:c,valid:u}=e.decrypt(s,e.session,a);if(!u)throw t?.decryptErrors.increment(),new Error("Failed to validate decrypted chunk");t?.decryptedPackets.increment(),yield c}}}var XB=ke(Li(),1),QB=ke(Hd(),1);var Mv=ke(we(),1);var h0={};ue(h0,{Ed25519PrivateKey:()=>fn,Ed25519PublicKey:()=>Ui,generateKeyPair:()=>dv,generateKeyPairFromSeed:()=>Xd,unmarshalEd25519PrivateKey:()=>lv,unmarshalEd25519PublicKey:()=>hv});var Zn=32,lr=64,ys=32;async function zd(){let e=Vn.utils.randomPrivateKey(),t=Vn.getPublicKey(e);return{privateKey:Yd(e,t),publicKey:t}}async function Gd(e){if(e.length!==ys)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=Vn.getPublicKey(t);return{privateKey:Yd(t,r),publicKey:r}}async function Wd(e,t){let r=e.subarray(0,ys);return Vn.sign(t,r)}async function $d(e,t,r){return Vn.verify(t,r,e)}function Yd(e,t){let r=new Uint8Array(lr);for(let n=0;n<ys;n++)r[n]=e[n],r[ys+n]=t[n];return r}var st={get(e=globalThis){let t=e.crypto;if(t==null||t.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var u0={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function f0(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",o=e?.saltLength??16,s=e?.iterations??32767,a=st.get();r*=8;async function c(l,h){let y=a.getRandomValues(new Uint8Array(o)),d=a.getRandomValues(new Uint8Array(n)),p={name:t,iv:d};typeof h=="string"&&(h=Be(h));let g;if(h.length===0){g=await a.subtle.importKey("jwk",u0,{name:"AES-GCM"},!0,["encrypt"]);try{let v={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},x=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(v,x,{name:t,length:r},!0,["encrypt"])}catch{g=await a.subtle.importKey("jwk",u0,{name:"AES-GCM"},!0,["encrypt"])}}else{let v={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},x=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(v,x,{name:t,length:r},!0,["encrypt"])}let m=await a.subtle.encrypt(p,g,l);return me([y,p.iv,new Uint8Array(m)])}async function u(l,h){let y=l.subarray(0,o),d=l.subarray(o,o+n),p=l.subarray(o+n),g={name:t,iv:d};typeof h=="string"&&(h=Be(h));let m;if(h.length===0)try{let x={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},A=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,A,{name:t,length:r},!0,["decrypt"])}catch{m=await a.subtle.importKey("jwk",u0,{name:"AES-GCM"},!0,["decrypt"])}else{let x={name:"PBKDF2",salt:y,iterations:s,hash:{name:i}},A=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);m=await a.subtle.deriveKey(x,A,{name:t,length:r},!0,["decrypt"])}let v=await a.subtle.decrypt(g,m,p);return new Uint8Array(v)}return{encrypt:c,decrypt:u}}async function Xn(e,t){let n=await f0().encrypt(e,t);return vn.encode(n)}var _e;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(_e||(_e={}));var l0;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(l0||(l0={}));(function(e){e.codec=()=>Xr(l0)})(_e||(_e={}));var Yt;(function(e){let t;e.codec=()=>(t==null&&(t=_t((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Tt(r,e.codec()),e.decode=r=>It(r,e.codec())})(Yt||(Yt={}));var Zt;(function(e){let t;e.codec=()=>(t==null&&(t=_t((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),_e.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.Type=_e.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Tt(r,e.codec()),e.decode=r=>It(r,e.codec())})(Zt||(Zt={}));var Ui=class{_key;constructor(t){this._key=Qn(t,Zn)}async verify(t,r){return $d(this._key,r,t)}marshal(){return this._key}get bytes(){return Yt.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}},fn=class{_key;_publicKey;constructor(t,r){this._key=Qn(t,lr),this._publicKey=Qn(r,Zn)}async sign(t){return Wd(this._key,t)}get public(){return new Ui(this._publicKey)}marshal(){return this._key}get bytes(){return Zt.encode({Type:_e.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}async id(){let t=xr.digest(this.public.bytes);return Ne.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Xn(this.bytes,t);throw new Z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function lv(e){if(e.length>lr){e=Qn(e,lr+Zn);let n=e.subarray(0,lr),i=e.subarray(lr,e.length);return new fn(n,i)}e=Qn(e,lr);let t=e.subarray(0,lr),r=e.subarray(Zn);return new fn(t,r)}function hv(e){return e=Qn(e,Zn),new Ui(e)}async function dv(){let{privateKey:e,publicKey:t}=await zd();return new fn(e,t)}async function Xd(e){let{privateKey:t,publicKey:r}=await Gd(e);return new fn(t,r)}function Qn(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new Z(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}var CD=ke(Fe(),1),AD=ke(ls(),1),Qd=ke(we(),1);function Ut(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=me([new Uint8Array(t-r.length),r])}return se(r,"base64url")}function ht(e){let t=jd(e);return new Qd.default.jsbn.BigInteger(se(t,"base16"),16)}function jd(e,t){let r=Be(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=me([new Uint8Array(t-r.length),r])}return r}var pv={"P-256":256,"P-384":384,"P-521":521},yv=Object.keys(pv),UD=yv.join(" / ");var m0={};ue(m0,{MAX_KEY_SIZE:()=>Mi,RsaPrivateKey:()=>jn,RsaPublicKey:()=>Ki,fromJwk:()=>Dv,generateKeyPair:()=>Bv,unmarshalRsaPrivateKey:()=>Cv,unmarshalRsaPublicKey:()=>Av});var Fi=ke(we(),1);var wB=ke(np(),1);function ms(e){if(isNaN(e)||e<=0)throw new Z("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return tn(e)}var rB=ke(ps(),1),y0=ke(we(),1);function ip(e,t){return t.map(r=>ht(e[r]))}function op(e){return y0.default.pki.setRsaPrivateKey(...ip(e,["n","e","d","p","q","dp","dq","qi"]))}function sp(e){return y0.default.pki.setRsaPublicKey(...ip(e,["n","e"]))}var hn={};ue(hn,{jwkToPkcs1:()=>bv,jwkToPkix:()=>vv,pkcs1ToJwk:()=>xv,pkixToJwk:()=>wv});var oB=ke(Li(),1),sB=ke(ps(),1);var hr=ke(we(),1);function xv(e){let t=hr.default.asn1.fromDer(se(e,"ascii")),r=hr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:Ut(r.n),e:Ut(r.e),d:Ut(r.d),p:Ut(r.p),q:Ut(r.q),dp:Ut(r.dP),dq:Ut(r.dQ),qi:Ut(r.qInv),alg:"RS256"}}function bv(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new Z("JWK was missing components","ERR_INVALID_PARAMETERS");let t=hr.default.pki.privateKeyToAsn1({n:ht(e.n),e:ht(e.e),d:ht(e.d),p:ht(e.p),q:ht(e.q),dP:ht(e.dp),dQ:ht(e.dq),qInv:ht(e.qi)});return Be(hr.default.asn1.toDer(t).getBytes(),"ascii")}function wv(e){let t=hr.default.asn1.fromDer(se(e,"ascii")),r=hr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:Ut(r.n),e:Ut(r.e)}}function vv(e){if(e.n==null||e.e==null)throw new Z("JWK was missing components","ERR_INVALID_PARAMETERS");let t=hr.default.pki.publicKeyToAsn1({n:ht(e.n),e:ht(e.e)});return Be(hr.default.asn1.toDer(t).getBytes(),"ascii")}async function ap(e){let t=await st.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await fp(t);return{privateKey:r[0],publicKey:r[1]}}async function g0(e){let r=[await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Ev(e)],n=await fp({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function cp(e,t){let r=await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await st.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function up(e,t,r){let n=await st.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return st.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function fp(e){if(e.privateKey==null||e.publicKey==null)throw new Z("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([st.get().subtle.exportKey("jwk",e.privateKey),st.get().subtle.exportKey("jwk",e.publicKey)])}async function Ev(e){return st.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function lp(e,t,r,n){let i=t?sp(e):op(e),o=se(Uint8Array.from(r),"ascii"),s=n(o,i);return Be(s,"ascii")}function hp(e,t){return lp(e,!0,t,(r,n)=>n.encrypt(r))}function dp(e,t){return lp(e,!1,t,(r,n)=>n.decrypt(r))}function xs(e){if(e.kty!=="RSA")throw new Z("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new Z("invalid key modulus","ERR_INVALID_KEY_MODULUS");return Be(e.n,"base64url").length*8}var Mi=8192,Ki=class{_key;constructor(t){this._key=t}async verify(t,r){return up(this._key,r,t)}marshal(){return hn.jwkToPkix(this._key)}get bytes(){return Yt.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}encrypt(t){return hp(this._key,t)}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}},jn=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return ms(16)}async sign(t){return cp(this._key,t)}get public(){if(this._publicKey==null)throw new Z("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Ki(this._publicKey)}decrypt(t){return dp(this._key,t)}marshal(){return hn.jwkToPkcs1(this._key)}get bytes(){return Zt.encode({Type:_e.RSA,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}async id(){let t=await this.public.hash();return se(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new Fi.default.util.ByteBuffer(this.marshal()),i=Fi.default.asn1.fromDer(n),o=Fi.default.pki.privateKeyFromAsn1(i),s={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Fi.default.pki.encryptRsaPrivateKey(o,t,s)}else{if(r==="libp2p-key")return Xn(this.bytes,t);throw new Z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Cv(e){let t=hn.pkcs1ToJwk(e);if(xs(t)>Mi)throw new Z("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await g0(t);return new jn(r.privateKey,r.publicKey)}function Av(e){let t=hn.pkixToJwk(e);if(xs(t)>Mi)throw new Z("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Ki(t)}async function Dv(e){if(xs(e)>Mi)throw new Z("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await g0(e);return new jn(t.privateKey,t.publicKey)}async function Bv(e){if(e>Mi)throw new Z("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await ap(e);return new jn(t.privateKey,t.publicKey)}var v0={};ue(v0,{Secp256k1PrivateKey:()=>qi,Secp256k1PublicKey:()=>Vi,generateKeyPair:()=>Kv,unmarshalSecp256k1PrivateKey:()=>Ov,unmarshalSecp256k1PublicKey:()=>Fv});function Iv(e){let t=Ci(e);mt(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=t;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Tv,hexToBytes:_v}=zo,dn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=dn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:Tv(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=dn,r=typeof e=="string"?_v(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:o}=dn._parseInt(r.subarray(2)),{d:s,l:a}=dn._parseInt(o);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s}},hexFromSig(e){let t=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let f=u.toString(16);return f.length&1?`0${f}`:f},n=t(r(e.s)),i=t(r(e.r)),o=n.length/2,s=i.length/2,a=r(o),c=r(s);return`30${r(s+o+4)}02${c}${i}02${a}${n}`}},dr=BigInt(0),wt=BigInt(1),DB=BigInt(2),pp=BigInt(3),BB=BigInt(4);function kv(e){let t=Iv(e),{Fp:r}=t,n=t.toBytes||((d,p,g)=>{let m=p.toAffine();return sr(Uint8Array.from([4]),r.toBytes(m.x),r.toBytes(m.y))}),i=t.fromBytes||(d=>{let p=d.subarray(1),g=r.fromBytes(p.subarray(0,r.BYTES)),m=r.fromBytes(p.subarray(r.BYTES,2*r.BYTES));return{x:g,y:m}});function o(d){let{a:p,b:g}=t,m=r.sqr(d),v=r.mul(m,d);return r.add(r.add(v,r.mul(d,p)),g)}if(!r.eql(r.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function s(d){return typeof d=="bigint"&&dr<d&&d<t.n}function a(d){if(!s(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:p,nByteLength:g,wrapPrivateKey:m,n:v}=t;if(p&&typeof d!="bigint"){if(d instanceof Uint8Array&&(d=nr(d)),typeof d!="string"||!p.includes(d.length))throw new Error("Invalid key");d=d.padStart(g*2,"0")}let x;try{x=typeof d=="bigint"?d:ir(Se("private key",d,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof d}`)}return m&&(x=pe(x,v)),a(x),x}let u=new Map;function f(d){if(!(d instanceof l))throw new Error("ProjectivePoint expected")}class l{constructor(p,g,m){if(this.px=p,this.py=g,this.pz=m,p==null||!r.isValid(p))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(m==null||!r.isValid(m))throw new Error("z required")}static fromAffine(p){let{x:g,y:m}=p||{};if(!p||!r.isValid(g)||!r.isValid(m))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let v=x=>r.eql(x,r.ZERO);return v(g)&&v(m)?l.ZERO:new l(g,m,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let g=r.invertBatch(p.map(m=>m.pz));return p.map((m,v)=>m.toAffine(g[v])).map(l.fromAffine)}static fromHex(p){let g=l.fromAffine(i(Se("pointHex",p)));return g.assertValidity(),g}static fromPrivateKey(p){return l.BASE.multiply(c(p))}_setWindowSize(p){this._WINDOW_SIZE=p,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:p,y:g}=this.toAffine();if(!r.isValid(p)||!r.isValid(g))throw new Error("bad point: x or y not FE");let m=r.sqr(g),v=o(p);if(!r.eql(m,v))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:p}=this.toAffine();if(r.isOdd)return!r.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){f(p);let{px:g,py:m,pz:v}=this,{px:x,py:A,pz:E}=p,w=r.eql(r.mul(g,E),r.mul(x,v)),B=r.eql(r.mul(m,E),r.mul(A,v));return w&&B}negate(){return new l(this.px,r.neg(this.py),this.pz)}double(){let{a:p,b:g}=t,m=r.mul(g,pp),{px:v,py:x,pz:A}=this,E=r.ZERO,w=r.ZERO,B=r.ZERO,D=r.mul(v,v),R=r.mul(x,x),F=r.mul(A,A),O=r.mul(v,x);return O=r.add(O,O),B=r.mul(v,A),B=r.add(B,B),E=r.mul(p,B),w=r.mul(m,F),w=r.add(E,w),E=r.sub(R,w),w=r.add(R,w),w=r.mul(E,w),E=r.mul(O,E),B=r.mul(m,B),F=r.mul(p,F),O=r.sub(D,F),O=r.mul(p,O),O=r.add(O,B),B=r.add(D,D),D=r.add(B,D),D=r.add(D,F),D=r.mul(D,O),w=r.add(w,D),F=r.mul(x,A),F=r.add(F,F),D=r.mul(F,O),E=r.sub(E,D),B=r.mul(F,R),B=r.add(B,B),B=r.add(B,B),new l(E,w,B)}add(p){f(p);let{px:g,py:m,pz:v}=this,{px:x,py:A,pz:E}=p,w=r.ZERO,B=r.ZERO,D=r.ZERO,R=t.a,F=r.mul(t.b,pp),O=r.mul(g,x),K=r.mul(m,A),q=r.mul(v,E),j=r.add(g,m),I=r.add(x,A);j=r.mul(j,I),I=r.add(O,K),j=r.sub(j,I),I=r.add(g,v);let L=r.add(x,E);return I=r.mul(I,L),L=r.add(O,q),I=r.sub(I,L),L=r.add(m,v),w=r.add(A,E),L=r.mul(L,w),w=r.add(K,q),L=r.sub(L,w),D=r.mul(R,I),w=r.mul(F,q),D=r.add(w,D),w=r.sub(K,D),D=r.add(K,D),B=r.mul(w,D),K=r.add(O,O),K=r.add(K,O),q=r.mul(R,q),I=r.mul(F,I),K=r.add(K,q),q=r.sub(O,q),q=r.mul(R,q),I=r.add(I,q),O=r.mul(K,I),B=r.add(B,O),O=r.mul(L,I),w=r.mul(j,w),w=r.sub(w,O),O=r.mul(j,K),D=r.mul(L,D),D=r.add(D,O),new l(w,B,D)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return y.wNAFCached(this,u,p,g=>{let m=r.invertBatch(g.map(v=>v.pz));return g.map((v,x)=>v.toAffine(m[x])).map(l.fromAffine)})}multiplyUnsafe(p){let g=l.ZERO;if(p===dr)return g;if(a(p),p===wt)return this;let{endo:m}=t;if(!m)return y.unsafeLadder(this,p);let{k1neg:v,k1:x,k2neg:A,k2:E}=m.splitScalar(p),w=g,B=g,D=this;for(;x>dr||E>dr;)x&wt&&(w=w.add(D)),E&wt&&(B=B.add(D)),D=D.double(),x>>=wt,E>>=wt;return v&&(w=w.negate()),A&&(B=B.negate()),B=new l(r.mul(B.px,m.beta),B.py,B.pz),w.add(B)}multiply(p){a(p);let g=p,m,v,{endo:x}=t;if(x){let{k1neg:A,k1:E,k2neg:w,k2:B}=x.splitScalar(g),{p:D,f:R}=this.wNAF(E),{p:F,f:O}=this.wNAF(B);D=y.constTimeNegate(A,D),F=y.constTimeNegate(w,F),F=new l(r.mul(F.px,x.beta),F.py,F.pz),m=D.add(F),v=R.add(O)}else{let{p:A,f:E}=this.wNAF(g);m=A,v=E}return l.normalizeZ([m,v])[0]}multiplyAndAddUnsafe(p,g,m){let v=l.BASE,x=(E,w)=>w===dr||w===wt||!E.equals(v)?E.multiplyUnsafe(w):E.multiply(w),A=x(this,g).add(x(p,m));return A.is0()?void 0:A}toAffine(p){let{px:g,py:m,pz:v}=this,x=this.is0();p==null&&(p=x?r.ONE:r.inv(v));let A=r.mul(g,p),E=r.mul(m,p),w=r.mul(v,p);if(x)return{x:r.ZERO,y:r.ZERO};if(!r.eql(w,r.ONE))throw new Error("invZ was invalid");return{x:A,y:E}}isTorsionFree(){let{h:p,isTorsionFree:g}=t;if(p===wt)return!0;if(g)return g(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:g}=t;return p===wt?this:g?g(l,this):this.multiplyUnsafe(t.h)}toRawBytes(p=!0){return this.assertValidity(),n(l,this,p)}toHex(p=!0){return nr(this.toRawBytes(p))}}l.BASE=new l(t.Gx,t.Gy,r.ONE),l.ZERO=new l(r.ZERO,r.ONE,r.ZERO);let h=t.nBitLength,y=$o(l,t.endo?Math.ceil(h/2):h);return{CURVE:t,ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:o,isWithinCurveOrder:s}}function Rv(e){let t=Ci(e);return mt(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function yp(e){let t=Rv(e),{Fp:r,n}=t,i=r.BYTES+1,o=2*r.BYTES+1;function s(I){return dr<I&&I<r.ORDER}function a(I){return pe(I,n)}function c(I){return Go(I,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:h}=kv({...t,toBytes(I,L,_){let k=L.toAffine(),S=r.toBytes(k.x),U=sr;return _?U(Uint8Array.from([L.hasEvenY()?2:3]),S):U(Uint8Array.from([4]),S,r.toBytes(k.y))},fromBytes(I){let L=I.length,_=I[0],k=I.subarray(1);if(L===i&&(_===2||_===3)){let S=ir(k);if(!s(S))throw new Error("Point is not on curve");let U=l(S),M=r.sqrt(U),H=(M&wt)===wt;return(_&1)===1!==H&&(M=r.neg(M)),{x:S,y:M}}else if(L===o&&_===4){let S=r.fromBytes(k.subarray(0,r.BYTES)),U=r.fromBytes(k.subarray(r.BYTES,2*r.BYTES));return{x:S,y:U}}else throw new Error(`Point of length ${L} was invalid. Expected ${i} compressed bytes or ${o} uncompressed bytes`)}}),y=I=>nr(Tr(I,t.nByteLength));function d(I){let L=n>>wt;return I>L}function p(I){return d(I)?a(-I):I}let g=(I,L,_)=>ir(I.slice(L,_));class m{constructor(L,_,k){this.r=L,this.s=_,this.recovery=k,this.assertValidity()}static fromCompact(L){let _=t.nByteLength;return L=Se("compactSignature",L,_*2),new m(g(L,0,_),g(L,_,2*_))}static fromDER(L){let{r:_,s:k}=dn.toSig(Se("DER",L));return new m(_,k)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(L){return new m(this.r,this.s,L)}recoverPublicKey(L){let{r:_,s:k,recovery:S}=this,U=B(Se("msgHash",L));if(S==null||![0,1,2,3].includes(S))throw new Error("recovery id invalid");let M=S===2||S===3?_+t.n:_;if(M>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=S&1?"03":"02",Q=u.fromHex(H+y(M)),J=c(M),oe=a(-U*J),ee=a(k*J),re=u.BASE.multiplyAndAddUnsafe(Q,oe,ee);if(!re)throw new Error("point at infinify");return re.assertValidity(),re}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new m(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return rn(this.toDERHex())}toDERHex(){return dn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return rn(this.toCompactHex())}toCompactHex(){return y(this.r)+y(this.s)}}let v={isValidPrivateKey(I){try{return f(I),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{let I=Lc(t.n);return ah(t.randomBytes(I),t.n)},precompute(I=8,L=u.BASE){return L._setWindowSize(I),L.multiply(BigInt(3)),L}};function x(I,L=!0){return u.fromPrivateKey(I).toRawBytes(L)}function A(I){let L=I instanceof Uint8Array,_=typeof I=="string",k=(L||_)&&I.length;return L?k===i||k===o:_?k===2*i||k===2*o:I instanceof u}function E(I,L,_=!0){if(A(I))throw new Error("first arg must be private key");if(!A(L))throw new Error("second arg must be public key");return u.fromHex(L).multiply(f(I)).toRawBytes(_)}let w=t.bits2int||function(I){let L=ir(I),_=I.length*8-t.nBitLength;return _>0?L>>BigInt(_):L},B=t.bits2int_modN||function(I){return a(w(I))},D=Si(t.nBitLength);function R(I){if(typeof I!="bigint")throw new Error("bigint expected");if(!(dr<=I&&I<D))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Tr(I,t.nByteLength)}function F(I,L,_=O){if(["recovered","canonical"].some(be=>be in _))throw new Error("sign() legacy options not supported");let{hash:k,randomBytes:S}=t,{lowS:U,prehash:M,extraEntropy:H}=_;U==null&&(U=!0),I=Se("msgHash",I),M&&(I=Se("prehashed msgHash",k(I)));let Q=B(I),J=f(L),oe=[R(J),R(Q)];if(H!=null){let be=H===!0?S(r.BYTES):H;oe.push(Se("extraEntropy",be))}let ee=sr(...oe),re=Q;function ve(be){let We=w(be);if(!h(We))return;let $e=c(We),Ke=u.BASE.multiply(We).toAffine(),je=a(Ke.x);if(je===dr)return;let Qt=a($e*a(re+je*J));if(Qt===dr)return;let Fr=(Ke.x===je?0:2)|Number(Ke.y&wt),ci=Qt;return U&&d(Qt)&&(ci=p(Qt),Fr^=1),new m(je,ci,Fr)}return{seed:ee,k2sig:ve}}let O={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};function q(I,L,_=O){let{seed:k,k2sig:S}=F(I,L,_),U=t;return Ic(U.hash.outputLen,U.nByteLength,U.hmac)(k,S)}u.BASE._setWindowSize(8);function j(I,L,_,k=K){let S=I;if(L=Se("msgHash",L),_=Se("publicKey",_),"strict"in k)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:M}=k,H,Q;try{if(typeof S=="string"||S instanceof Uint8Array)try{H=m.fromDER(S)}catch(Ke){if(!(Ke instanceof dn.Err))throw Ke;H=m.fromCompact(S)}else if(typeof S=="object"&&typeof S.r=="bigint"&&typeof S.s=="bigint"){let{r:Ke,s:je}=S;H=new m(Ke,je)}else throw new Error("PARSE");Q=u.fromHex(_)}catch(Ke){if(Ke.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&H.hasHighS())return!1;M&&(L=t.hash(L));let{r:J,s:oe}=H,ee=B(L),re=c(oe),ve=a(ee*re),be=a(J*re),We=u.BASE.multiplyAndAddUnsafe(Q,ve,be)?.toAffine();return We?a(We.x)===J:!1}return{CURVE:t,getPublicKey:x,getSharedSecret:E,sign:q,verify:j,ProjectivePoint:u,Signature:m,utils:v}}function Lv(e){return{hash:e,hmac:(t,...r)=>qn(e,t,Ko(...r)),randomBytes:tn}}function gp(e,t){let r=n=>yp({...e,...Lv(n)});return Object.freeze({...r(t),create:r})}var bp=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),mp=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Nv=BigInt(1),x0=BigInt(2),xp=(e,t)=>(e+t/x0)/t;function Pv(e){let t=bp,r=BigInt(3),n=BigInt(6),i=BigInt(11),o=BigInt(22),s=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,f=u*u*e%t,l=Ce(f,r,t)*f%t,h=Ce(l,r,t)*f%t,y=Ce(h,x0,t)*u%t,d=Ce(y,i,t)*y%t,p=Ce(d,o,t)*d%t,g=Ce(p,a,t)*p%t,m=Ce(g,c,t)*g%t,v=Ce(m,a,t)*p%t,x=Ce(v,r,t)*f%t,A=Ce(x,s,t)*d%t,E=Ce(A,n,t)*u%t,w=Ce(E,x0,t);if(!b0.eql(b0.sqr(w),e))throw new Error("Cannot find square root");return w}var b0=Wo(bp,void 0,void 0,{sqrt:Pv}),pr=gp({a:BigInt(0),b:BigInt(7),Fp:b0,n:mp,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=mp,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Nv*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=r,s=BigInt("0x100000000000000000000000000000000"),a=xp(o*e,t),c=xp(-n*e,t),u=pe(e-a*r-c*i,t),f=pe(-a*n-c*o,t),l=u>s,h=f>s;if(l&&(u=t-u),h&&(f=t-f),u>s||f>s)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:l,k1:u,k2neg:h,k2:f}}}},Hn),UB=BigInt(0);var OB=pr.ProjectivePoint;function wp(){return pr.utils.randomPrivateKey()}async function vp(e,t){let{digest:r}=await Ye.digest(t);try{return pr.sign(r,e).toDERRawBytes()}catch(n){throw new Z(String(n),"ERR_INVALID_INPUT")}}async function Ep(e,t,r){try{let{digest:n}=await Ye.digest(r);return pr.verify(t,n,e)}catch(n){throw new Z(String(n),"ERR_INVALID_INPUT")}}function Sp(e){return pr.ProjectivePoint.fromHex(e).toRawBytes(!0)}function Cp(e){try{pr.getPublicKey(e,!0)}catch(t){throw new Z(String(t),"ERR_INVALID_PRIVATE_KEY")}}function w0(e){try{pr.ProjectivePoint.fromHex(e)}catch(t){throw new Z(String(t),"ERR_INVALID_PUBLIC_KEY")}}function Ap(e){try{return pr.getPublicKey(e,!0)}catch(t){throw new Z(String(t),"ERR_INVALID_PRIVATE_KEY")}}var Vi=class{_key;constructor(t){w0(t),this._key=t}async verify(t,r){return Ep(this._key,r,t)}marshal(){return Sp(this._key)}get bytes(){return Yt.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}},qi=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??Ap(t),Cp(this._key),w0(this._publicKey)}async sign(t){return vp(this._key,t)}get public(){return new Vi(this._publicKey)}marshal(){return this._key}get bytes(){return Zt.encode({Type:_e.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Oe(this.bytes,t.bytes)}async hash(){let{bytes:t}=await Ye.digest(this.bytes);return t}async id(){let t=await this.public.hash();return se(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return Xn(this.bytes,t);throw new Z(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Ov(e){return new qi(e)}function Fv(e){return new Vi(e)}async function Kv(){let e=wp();return new qi(e)}var pn={rsa:m0,ed25519:h0,secp256k1:v0};function Dp(e){let t=Object.keys(pn).join(" / ");return new Z(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function Bp(e){let t=Yt.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case _e.RSA:return pn.rsa.unmarshalRsaPublicKey(r);case _e.Ed25519:return pn.ed25519.unmarshalEd25519PublicKey(r);case _e.Secp256k1:return pn.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw Dp(t.Type??"RSA")}}async function Ip(e){let t=Zt.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case _e.RSA:return pn.rsa.unmarshalRsaPrivateKey(r);case _e.Ed25519:return pn.ed25519.unmarshalEd25519PrivateKey(r);case _e.Secp256k1:return pn.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw Dp(t.Type??"RSA")}}var bs;(function(e){let t;e.codec=()=>(t==null&&(t=_t((r,n,i={})=>{if(i.lengthDelimited!==!1&&n.fork(),r.webtransportCerthashes!=null)for(let o of r.webtransportCerthashes)n.uint32(10),n.bytes(o);i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={webtransportCerthashes:[]},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.webtransportCerthashes.push(r.bytes());break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Tt(r,e.codec()),e.decode=r=>It(r,e.codec())})(bs||(bs={}));var Hi;(function(e){let t;e.codec=()=>(t==null&&(t=_t((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),(i.writeDefaults===!0||r.identityKey!=null&&r.identityKey.byteLength>0)&&(n.uint32(10),n.bytes(r.identityKey??new Uint8Array(0))),(i.writeDefaults===!0||r.identitySig!=null&&r.identitySig.byteLength>0)&&(n.uint32(18),n.bytes(r.identitySig??new Uint8Array(0))),r.extensions!=null&&(n.uint32(34),bs.codec().encode(r.extensions,n,{writeDefaults:!1})),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={identityKey:new Uint8Array(0),identitySig:new Uint8Array(0)},o=n==null?r.len:r.pos+n;for(;r.pos<o;){let s=r.uint32();switch(s>>>3){case 1:i.identityKey=r.bytes();break;case 2:i.identitySig=r.bytes();break;case 4:i.extensions=bs.codec().decode(r,r.uint32());break;default:r.skipType(s&7);break}}return i})),t),e.encode=r=>Tt(r,e.codec()),e.decode=r=>It(r,e.codec())})(Hi||(Hi={}));async function Tp(e,t,r){let n=await qv(e,_p(t));if(e.publicKey==null)throw new Error("PublicKey was missing from local PeerId");return Vv(e.publicKey,n,r)}function Vv(e,t,r){return Hi.encode({identityKey:e,identitySig:t,extensions:r??{webtransportCerthashes:[]}}).subarray()}async function qv(e,t){if(e.privateKey==null)throw new Error("PrivateKey was missing from PeerId");return(await Ip(e.privateKey)).sign(t)}async function E0(e){return ca(e.identityKey)}function S0(e){return Hi.decode(e)}function _p(e){let t=Be("noise-libp2p-static-key:");return me([t,e],t.length+e.length)}async function C0(e,t,r){let n=await ca(t.identityKey);if(!n.equals(r))throw new Error(`Payload identity key ${n.toString()} does not match expected remote peer ${r.toString()}`);let i=_p(e);if(n.publicKey==null)throw new Error("PublicKey was missing from PeerId");if(t.identitySig==null)throw new Error("Signature was missing from message");if(!await Bp(n.publicKey).verify(i,t.identitySig))throw new Error("Static key doesn't match to peer that signed payload!");return n}function zi(e){return!(!(e instanceof Uint8Array)||e.length!==32)}var Ge=Je("libp2p:noise");var vt;Vl?vt=Ge:vt=Object.assign(()=>{},{enabled:!1,trace:()=>{},error:()=>{}});function kp(e){vt(`LOCAL_STATIC_PUBLIC_KEY ${se(e.publicKey,"hex")}`),vt(`LOCAL_STATIC_PRIVATE_KEY ${se(e.privateKey,"hex")}`)}function A0(e){e?(vt(`LOCAL_PUBLIC_EPHEMERAL_KEY ${se(e.publicKey,"hex")}`),vt(`LOCAL_PRIVATE_EPHEMERAL_KEY ${se(e.privateKey,"hex")}`)):vt("Missing local ephemeral keys.")}function Rp(e){vt(`REMOTE_STATIC_PUBLIC_KEY ${se(e,"hex")}`)}function D0(e){vt(`REMOTE_EPHEMERAL_PUBLIC_KEY ${se(e,"hex")}`)}function Lp(e){e.cs1&&e.cs2?(vt(`CIPHER_STATE_1 ${e.cs1.n.getUint64()} ${se(e.cs1.k,"hex")}`),vt(`CIPHER_STATE_2 ${e.cs2.n.getUint64()} ${se(e.cs2.k,"hex")}`)):vt("Missing cipher state.")}var Hv="Cipherstate has reached maximum n, a new handshake must be performed",ws=class{n;bytes;view;constructor(t=0){this.n=t,this.bytes=new Uint8Array(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,t,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>4294967295)throw new Error(Hv)}};var vs=class{crypto;constructor(t){this.crypto=t}encryptWithAd(t,r,n){let i=this.encrypt(t.k,t.n,r,n);return t.n.increment(),i}decryptWithAd(t,r,n,i){let{plaintext:o,valid:s}=this.decrypt(t.k,t.n,r,n,i);return s&&t.n.increment(),{plaintext:o,valid:s}}hasKey(t){return!this.isEmptyKey(t.k)}createEmptyKey(){return new Uint8Array(32)}isEmptyKey(t){let r=this.createEmptyKey();return Oe(r,t)}encrypt(t,r,n,i){return r.assertValue(),this.crypto.chaCha20Poly1305Encrypt(i,r.getBytes(),n,t)}encryptAndHash(t,r){let n;return this.hasKey(t.cs)?n=this.encryptWithAd(t.cs,t.h,r):n=r,this.mixHash(t,n),n}decrypt(t,r,n,i,o){r.assertValue();let s=this.crypto.chaCha20Poly1305Decrypt(i,r.getBytes(),n,t,o);return s?{plaintext:s,valid:!0}:{plaintext:new Uint8Array(0),valid:!1}}decryptAndHash(t,r){let n,i=!0;return this.hasKey(t.cs)?{plaintext:n,valid:i}=this.decryptWithAd(t.cs,t.h,r):n=r,this.mixHash(t,r),{plaintext:n,valid:i}}dh(t,r){try{let n=this.crypto.generateX25519SharedKey(t,r);return n.length===32?n:n.subarray(0,32)}catch(n){let i=n;return Ge.error(i),new Uint8Array(32)}}mixHash(t,r){t.h=this.getHash(t.h,r)}getHash(t,r){return this.crypto.hashSHA256(me([t,r],t.length+r.length))}mixKey(t,r){let[n,i]=this.crypto.getHKDF(t.ck,r);t.cs=this.initializeKey(i),t.ck=n}initializeKey(t){return{k:t,n:new ws}}initializeSymmetric(t){let r=Be(t,"utf-8"),n=this.hashProtocolName(r),i=n,o=this.createEmptyKey();return{cs:this.initializeKey(o),ck:i,h:n}}hashProtocolName(t){if(t.length<=32){let r=new Uint8Array(32);return r.set(t),r}else return this.getHash(t,new Uint8Array(0))}split(t){let[r,n]=this.crypto.getHKDF(t.ck,new Uint8Array(0)),i=this.initializeKey(r),o=this.initializeKey(n);return{cs1:i,cs2:o}}writeMessageRegular(t,r){let n=this.encryptWithAd(t,new Uint8Array(0),r),i=this.createEmptyKey(),o=new Uint8Array(0);return{ne:i,ns:o,ciphertext:n}}readMessageRegular(t,r){return this.decryptWithAd(t,new Uint8Array(0),r.ciphertext)}};var Es=class extends vs{initializeInitiator(t,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,t);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}initializeResponder(t,r,n,i){let o="Noise_XX_25519_ChaChaPoly_SHA256",s=this.initializeSymmetric(o);this.mixHash(s,t);let a=new Uint8Array(32);return{ss:s,s:r,rs:n,psk:i,re:a}}writeMessageA(t,r,n){let i=new Uint8Array(0);n!==void 0?t.e=n:t.e=this.crypto.generateX25519KeyPair();let o=t.e.publicKey;this.mixHash(t.ss,o);let s=this.encryptAndHash(t.ss,r);return{ne:o,ns:i,ciphertext:s}}writeMessageB(t,r){t.e=this.crypto.generateX25519KeyPair();let n=t.e.publicKey;this.mixHash(t.ss,n),this.mixKey(t.ss,this.dh(t.e.privateKey,t.re));let i=t.s.publicKey,o=this.encryptAndHash(t.ss,i);this.mixKey(t.ss,this.dh(t.s.privateKey,t.re));let s=this.encryptAndHash(t.ss,r);return{ne:n,ns:o,ciphertext:s}}writeMessageC(t,r){let n=t.s.publicKey,i=this.encryptAndHash(t.ss,n);this.mixKey(t.ss,this.dh(t.s.privateKey,t.re));let o=this.encryptAndHash(t.ss,r),a={ne:this.createEmptyKey(),ns:i,ciphertext:o},{cs1:c,cs2:u}=this.split(t.ss);return{h:t.ss.h,messageBuffer:a,cs1:c,cs2:u}}readMessageA(t,r){return zi(r.ne)&&(t.re=r.ne),this.mixHash(t.ss,t.re),this.decryptAndHash(t.ss,r.ciphertext)}readMessageB(t,r){if(zi(r.ne)&&(t.re=r.ne),this.mixHash(t.ss,t.re),!t.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(t.ss,this.dh(t.e.privateKey,t.re));let{plaintext:n,valid:i}=this.decryptAndHash(t.ss,r.ns);i&&zi(n)&&(t.rs=n),this.mixKey(t.ss,this.dh(t.e.privateKey,t.rs));let{plaintext:o,valid:s}=this.decryptAndHash(t.ss,r.ciphertext);return{plaintext:o,valid:i&&s}}readMessageC(t,r){let{plaintext:n,valid:i}=this.decryptAndHash(t.ss,r.ns);if(i&&zi(n)&&(t.rs=n),!t.e)throw new Error("Handshake state `e` param is missing.");this.mixKey(t.ss,this.dh(t.e.privateKey,t.rs));let{plaintext:o,valid:s}=this.decryptAndHash(t.ss,r.ciphertext),{cs1:a,cs2:c}=this.split(t.ss);return{h:t.ss.h,plaintext:o,valid:i&&s,cs1:a,cs2:c}}initSession(t,r,n){let i=this.createEmptyKey(),o=new Uint8Array(32),s;return t?s=this.initializeInitiator(r,n,o,i):s=this.initializeResponder(r,n,o,i),{hs:s,i:t,mc:0}}sendMessage(t,r,n){let i;if(t.mc===0)i=this.writeMessageA(t.hs,r,n);else if(t.mc===1)i=this.writeMessageB(t.hs,r);else if(t.mc===2){let{h:o,messageBuffer:s,cs1:a,cs2:c}=this.writeMessageC(t.hs,r);i=s,t.h=o,t.cs1=a,t.cs2=c}else if(t.mc>2)if(t.i){if(!t.cs1)throw new Error("CS1 (cipher state) is not defined");i=this.writeMessageRegular(t.cs1,r)}else{if(!t.cs2)throw new Error("CS2 (cipher state) is not defined");i=this.writeMessageRegular(t.cs2,r)}else throw new Error("Session invalid.");return t.mc++,i}recvMessage(t,r){let n=new Uint8Array(0),i=!1;if(t.mc===0)({plaintext:n,valid:i}=this.readMessageA(t.hs,r));else if(t.mc===1)({plaintext:n,valid:i}=this.readMessageB(t.hs,r));else if(t.mc===2){let{h:o,plaintext:s,valid:a,cs1:c,cs2:u}=this.readMessageC(t.hs,r);n=s,i=a,t.h=o,t.cs1=c,t.cs2=u}return t.mc++,{plaintext:n,valid:i}}};var Ss=class{isInitiator;session;remotePeer;remoteExtensions={webtransportCerthashes:[]};payload;connection;xx;staticKeypair;prologue;constructor(t,r,n,i,o,s,a,c){this.isInitiator=t,this.payload=r,this.prologue=n,this.staticKeypair=o,this.connection=s,a&&(this.remotePeer=a),this.xx=c??new Es(i),this.session=this.xx.initSession(this.isInitiator,this.prologue,this.staticKeypair)}async propose(){if(kp(this.session.hs.s),this.isInitiator){Ge.trace("Stage 0 - Initiator starting to send first message.");let t=this.xx.sendMessage(this.session,new Uint8Array(0));await this.connection.write(xh(t)),Ge.trace("Stage 0 - Initiator finished sending first message."),A0(this.session.hs.e)}else{Ge.trace("Stage 0 - Responder waiting to receive first message...");let t=vh((await this.connection.read()).subarray()),{valid:r}=this.xx.recvMessage(this.session,t);if(!r)throw new Kr("xx handshake stage 0 validation fail");Ge.trace("Stage 0 - Responder received first message."),D0(this.session.hs.re)}}async exchange(){if(this.isInitiator){Ge.trace("Stage 1 - Initiator waiting to receive first message from responder...");let t=Eh((await this.connection.read()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,t);if(!n)throw new Kr("xx handshake stage 1 validation fail");Ge.trace("Stage 1 - Initiator received the message."),D0(this.session.hs.re),Rp(this.session.hs.rs),Ge.trace("Initiator going to check remote's signature...");try{let i=S0(r);this.remotePeer=this.remotePeer||await E0(i),await C0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new ui(`Error occurred while verifying signed payload: ${o.message}`)}Ge.trace("All good with the signature!")}else{Ge.trace("Stage 1 - Responder sending out first message with signed payload and static key.");let t=this.xx.sendMessage(this.session,this.payload);await this.connection.write(bh(t)),Ge.trace("Stage 1 - Responder sent the second handshake message with signed payload."),A0(this.session.hs.e)}}async finish(){if(this.isInitiator){Ge.trace("Stage 2 - Initiator sending third handshake message.");let t=this.xx.sendMessage(this.session,this.payload);await this.connection.write(wh(t)),Ge.trace("Stage 2 - Initiator sent message with signed payload.")}else{Ge.trace("Stage 2 - Responder waiting for third handshake message...");let t=Sh((await this.connection.read()).subarray()),{plaintext:r,valid:n}=this.xx.recvMessage(this.session,t);if(!n)throw new Kr("xx handshake stage 2 validation fail");Ge.trace("Stage 2 - Responder received the message, finished handshake.");try{let i=S0(r);this.remotePeer=this.remotePeer||await E0(i),await C0(this.session.hs.rs,i,this.remotePeer),this.setRemoteNoiseExtension(i.extensions)}catch(i){let o=i;throw new ui(`Error occurred while verifying signed payload: ${o.message}`)}}Lp(this.session)}encrypt(t,r){let n=this.getCS(r);return this.xx.encryptWithAd(n,new Uint8Array(0),t)}decrypt(t,r,n){let i=this.getCS(r,!1);return this.xx.decryptWithAd(i,new Uint8Array(0),t,n)}getRemoteStaticKey(){return this.session.hs.rs}getCS(t,r=!0){if(!t.cs1||!t.cs2)throw new Kr("Handshake not completed properly, cipher state does not exist.");return this.isInitiator?r?t.cs1:t.cs2:r?t.cs2:t.cs1}setRemoteNoiseExtension(t){t&&(this.remoteExtensions=t)}};function Np(e){return{xxHandshakeSuccesses:e.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:e.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:e.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:e.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:e.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var Cs=class{protocol="/noise";crypto;prologue;staticKeys;extensions;metrics;constructor(t={}){let{staticNoiseKey:r,extensions:n,crypto:i,prologueBytes:o,metrics:s}=t;this.crypto=i??Mc,this.extensions=n,this.metrics=s?Np(s):void 0,r?this.staticKeys=this.crypto.generateX25519KeyPairFromSeed(r):this.staticKeys=this.crypto.generateX25519KeyPair(),this.prologue=o??new Uint8Array(0)}async secureOutbound(t,r,n){let i=bi(r,{lengthEncoder:zn,lengthDecoder:Ii,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!0,localPeer:t,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remoteExtensions:o.remoteExtensions,remotePeer:o.remotePeer}}async secureInbound(t,r,n){let i=bi(r,{lengthEncoder:zn,lengthDecoder:Ii,maxDataLength:65535}),o=await this.performHandshake({connection:i,isInitiator:!1,localPeer:t,remotePeer:n});return{conn:await this.createSecureConnection(i,o),remotePeer:o.remotePeer,remoteExtensions:o.remoteExtensions}}async performHandshake(t){let r=await Tp(t.localPeer,this.staticKeys.publicKey,this.extensions);return this.performXXHandshake(t,r)}async performXXHandshake(t,r){let{isInitiator:n,remotePeer:i,connection:o}=t,s=new Ss(n,r,this.prologue,this.crypto,this.staticKeys,o,i);try{await s.propose(),await s.exchange(),await s.finish(),this.metrics?.xxHandshakeSuccesses.increment()}catch(a){if(this.metrics?.xxHandshakeErrors.increment(),a instanceof Error)throw a.message=`Error occurred during XX handshake: ${a.message}`,a}return s}async createSecureConnection(t,r){let[n,i]=Ul(),o=t.unwrap();return await Fl(n,Dh(r,this.metrics),o,s=>Wr(s,{lengthDecoder:Ii}),Bh(r,this.metrics),n),i}};function Pp(e={}){return()=>new Cs(e)}var f2=ke(ru(),1);var i2=ke(ru(),1);var nu=Je("libp2p:webrtc:sdp"),iu=Object.values(Kt).map(e=>e.decoder).reduce((e,t)=>e.or(t));function o2(e){let t=e.getConfiguration().certificates?.at(0);if(t==null||t.getFingerprints==null){nu.trace("fetching fingerprint from local SDP");let n=e.localDescription;return n==null?void 0:X3(n.sdp)}if(nu.trace("fetching fingerprint from local certificate"),t.getFingerprints().length===0)return;let r=t.getFingerprints()[0].value;if(r==null)throw La("","no fingerprint on local certificate");return r}var Z3=/^a=fingerprint:(?:\w+-[0-9]+)\s(?<fingerprint>(:?[0-9a-fA-F]{2})+)$/m;function X3(e){return e.match(Z3)?.groups?.fingerprint}function Q3(e){for(let t of e.protoNames())if(t.startsWith("ip"))return t.toUpperCase();return nu("Warning: multiaddr does not appear to contain IP4 or IP6, defaulting to IP6",e),"IP6"}function Us(e){let r=e.stringTuples().filter(n=>n[0]===au).map(n=>n[1])[0];if(r===void 0||r==="")throw co(`Couldn't find a certhash component of multiaddr: ${e.toString()}`);return r}function ou(e){let t=iu.decode(e);return i2.decode(t)}function j3(e){let t=ou(Us(e)),r=su(t.name),n=t.digest.reduce((o,s)=>o+s.toString(16).padStart(2,"0"),""),i=n.match(/.{1,2}/g);if(i==null)throw La(n,e.toString());return[`${r.toUpperCase()} ${i.join(":").toUpperCase()}`,n]}function su(e){switch(e){case"sha1":return"sha-1";case"sha2-256":return"sha-256";case"sha2-512":return"sha-512";default:throw ff(e)}}function J3(e,t){let{host:r,port:n}=e.toOptions(),i=Q3(e),[o]=j3(e);return`v=0
31
31
  o=- 0 0 IN ${i} ${r}
32
32
  s=-
33
33
  c=IN ${i} ${r}
@@ -132,6 +132,6 @@ function parseRemoteAddress(sdp) {
132
132
  log('could not parse remote address from', candidateLine);
133
133
  return '/webrtc';
134
134
  }
135
- return `/dnsaddr/${candidateParts[4]}/${candidateParts[2].toLowerCase()}/${candidateParts[3]}/webrtc`;
135
+ return `/dnsaddr/${candidateParts[4]}/${candidateParts[2].toLowerCase()}/${candidateParts[5]}/webrtc`;
136
136
  }
137
137
  //# sourceMappingURL=handler.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libp2p/webrtc",
3
- "version": "3.1.10-0ee4f784",
3
+ "version": "3.1.10-20d5f220",
4
4
  "description": "A libp2p transport using WebRTC connections",
5
5
  "license": "Apache-2.0 OR MIT",
6
6
  "homepage": "https://github.com/libp2p/js-libp2p/tree/master/packages/transport-webrtc#readme",
@@ -45,10 +45,10 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@chainsafe/libp2p-noise": "^13.0.0",
48
- "@libp2p/interface": "0.1.2-0ee4f784",
49
- "@libp2p/interface-internal": "0.1.4-0ee4f784",
50
- "@libp2p/logger": "3.0.2-0ee4f784",
51
- "@libp2p/peer-id": "3.0.2-0ee4f784",
48
+ "@libp2p/interface": "0.1.2-20d5f220",
49
+ "@libp2p/interface-internal": "0.1.4-20d5f220",
50
+ "@libp2p/logger": "3.0.2-20d5f220",
51
+ "@libp2p/peer-id": "3.0.2-20d5f220",
52
52
  "@multiformats/mafmt": "^12.1.2",
53
53
  "@multiformats/multiaddr": "^12.1.5",
54
54
  "abortable-iterator": "^5.0.1",
@@ -70,18 +70,18 @@
70
70
  },
71
71
  "devDependencies": {
72
72
  "@chainsafe/libp2p-yamux": "^5.0.0",
73
- "@libp2p/interface-compliance-tests": "4.0.5-0ee4f784",
74
- "@libp2p/peer-id-factory": "3.0.3-0ee4f784",
75
- "@libp2p/websockets": "7.0.6-0ee4f784",
73
+ "@libp2p/interface-compliance-tests": "4.0.5-20d5f220",
74
+ "@libp2p/peer-id-factory": "3.0.3-20d5f220",
75
+ "@libp2p/websockets": "7.0.6-20d5f220",
76
76
  "@types/sinon": "^10.0.15",
77
77
  "aegir": "^40.0.8",
78
78
  "delay": "^6.0.0",
79
79
  "it-length": "^3.0.2",
80
80
  "it-map": "^3.0.3",
81
81
  "it-pair": "^2.0.6",
82
- "libp2p": "0.46.10-0ee4f784",
82
+ "libp2p": "0.46.10-20d5f220",
83
83
  "protons": "^7.0.2",
84
- "sinon": "^15.1.2",
84
+ "sinon": "^16.0.0",
85
85
  "sinon-ts": "^1.0.0"
86
86
  },
87
87
  "browser": {
@@ -173,5 +173,5 @@ function parseRemoteAddress (sdp: string): string {
173
173
  return '/webrtc'
174
174
  }
175
175
 
176
- return `/dnsaddr/${candidateParts[4]}/${candidateParts[2].toLowerCase()}/${candidateParts[3]}/webrtc`
176
+ return `/dnsaddr/${candidateParts[4]}/${candidateParts[2].toLowerCase()}/${candidateParts[5]}/webrtc`
177
177
  }