@libp2p/webtransport 6.0.27-29797a5bb → 6.0.27-b7c6dc0f2

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
@@ -1,5 +1,5 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PWebtransport = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2PWebtransport=(()=>{var Ps=Object.defineProperty;var td=Object.getOwnPropertyDescriptor;var ed=Object.getOwnPropertyNames;var rd=Object.prototype.hasOwnProperty;var tt=(e,t)=>{for(var r in t)Ps(e,r,{get:t[r],enumerable:!0})},nd=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ed(t))!rd.call(e,o)&&o!==r&&Ps(e,o,{get:()=>t[o],enumerable:!(n=td(t,o))||n.enumerable});return e};var od=e=>nd(Ps({},"__esModule",{value:!0}),e);var Eg={};tt(Eg,{webTransport:()=>wg});var oo=class extends Error{static name="UnexpectedPeerError";constructor(t="Unexpected Peer"){super(t),this.name="UnexpectedPeerError"}},pr=class extends Error{static name="InvalidCryptoExchangeError";constructor(t="Invalid crypto exchange"){super(t),this.name="InvalidCryptoExchangeError"}},Q=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},mr=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var so=class extends Error{static name="MuxerClosedError";constructor(t="The muxer is closed"){super(t),this.name="MuxerClosedError"}},io=class extends Error{static name="StreamResetError";constructor(t="The stream has been reset"){super(t),this.name="StreamResetError"}};var we=class extends Error{static name="StreamStateError";constructor(t="The stream is in an invalid state"){super(t),this.name="StreamStateError"}},rn=class extends Error{static name="StreamBufferError";constructor(t="The stream buffer was full"){super(t),this.name="StreamBufferError"}};var nn=class extends Error{static name="InvalidMultiaddrError";constructor(t="Invalid multiaddr"){super(t),this.name="InvalidMultiaddrError"}},ao=class extends Error{static name="InvalidCIDError";constructor(t="Invalid CID"){super(t),this.name="InvalidCIDError"}},co=class extends Error{static name="InvalidMultihashError";constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var Fe=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var fo=class extends Event{data;constructor(t,r){super("message",r),this.data=t}},yr=class extends Event{error;local;constructor(t,r,n){super("close",n),this.error=r,this.local=t}},uo=class extends yr{constructor(t,r){super(!0,t,r)}},ho=class extends yr{constructor(t,r){super(!1,t,r)}};var Us=Symbol.for("@libp2p/peer-id");var yf=Symbol.for("@libp2p/transport");var mf;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(mf||(mf={}));function sd(e){return typeof e?.handleEvent=="function"}function id(e){return(e!==!0&&e!==!1&&e?.once)??!1}var gr=class extends EventTarget{#t=new Map;constructor(){super()}listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){let o=id(n);super.addEventListener(t,i=>{if(o){let a=this.#t.get(i.type);a!=null&&(a=a.filter(({callback:c})=>c!==r),this.#t.set(i.type,a))}sd(r)?r.handleEvent(i):r(i)},n);let s=this.#t.get(t);s==null&&(s=[],this.#t.set(t,s)),s.push({callback:r,once:o})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let o=this.#t.get(t);o!=null&&(o=o.filter(({callback:s})=>s!==r),this.#t.set(t,o))}safeDispatchEvent(t,r={}){return this.dispatchEvent(new CustomEvent(t,r))}};var lo=Symbol.for("@libp2p/service-capabilities");var Fs={};tt(Fs,{base58btc:()=>ft,base58flickr:()=>dd});var Jg=new Uint8Array(0);function gf(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}function ie(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")}function bf(e){return new TextEncoder().encode(e)}function xf(e){return new TextDecoder().decode(e)}function ad(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 o=0;o<e.length;o++){var s=e.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=e.length,c=e.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var b=0,l=0,g=0,A=p.length;g!==A&&p[g]===0;)g++,b++;for(var L=(A-g)*u+1>>>0,R=new Uint8Array(L);g!==A;){for(var D=p[g],U=0,T=L-1;(D!==0||U<l)&&T!==-1;T--,U++)D+=256*R[T]>>>0,R[T]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,g++}for(var I=L-l;I!==L&&R[I]===0;)I++;for(var P=c.repeat(b);I<L;++I)P+=e.charAt(R[I]);return P}function y(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var b=0;if(p[b]!==" "){for(var l=0,g=0;p[b]===c;)l++,b++;for(var A=(p.length-b)*f+1>>>0,L=new Uint8Array(A);p[b];){var R=r[p.charCodeAt(b)];if(R===255)return;for(var D=0,U=A-1;(R!==0||D<g)&&U!==-1;U--,D++)R+=a*L[U]>>>0,L[U]=R%256>>>0,R=R/256>>>0;if(R!==0)throw new Error("Non-zero carry");g=D,b++}if(p[b]!==" "){for(var T=A-g;T!==A&&L[T]===0;)T++;for(var I=new Uint8Array(l+(A-T)),P=l;T!==A;)I[P++]=L[T++];return I}}}function d(p){var b=y(p);if(b)return b;throw new Error(`Non-${t} character`)}return{encode:h,decodeUnsafe:y,decode:d}}var cd=ad,fd=cd,Ef=fd;var Ns=class{name;prefix;baseEncode;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")}},ks=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,r,n){this.name=t,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 Sf(this,t)}},Ms=class{decoders;constructor(t){this.decoders=t}or(t){return Sf(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Sf(e,t){return new Ms({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}var Ks=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,r,n,o){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ns(t,r,n),this.decoder=new ks(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function br({name:e,prefix:t,encode:r,decode:n}){return new Ks(e,t,r,n)}function Ee({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=Ef(r,e);return br({prefix:t,name:e,encode:n,decode:s=>ie(o(s))})}function ud(e,t,r,n){let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[e[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<r|u,i+=r,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=r||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function hd(e,t,r){let n=t[t.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],i+=8;i>r;)i-=r,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function ld(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}function ct({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=ld(n);return br({prefix:t,name:e,encode(s){return hd(s,n,r)},decode(s){return ud(s,o,r,e)}})}var ft=Ee({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),dd=Ee({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Hs={};tt(Hs,{base32:()=>Se,base32hex:()=>gd,base32hexpad:()=>xd,base32hexpadupper:()=>wd,base32hexupper:()=>bd,base32pad:()=>md,base32padupper:()=>yd,base32upper:()=>pd,base32z:()=>Ed});var Se=ct({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),pd=ct({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),md=ct({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),yd=ct({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),gd=ct({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),bd=ct({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),xd=ct({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),wd=ct({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ed=ct({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Vs={};tt(Vs,{base36:()=>on,base36upper:()=>Sd});var on=Ee({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Sd=Ee({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ae={};tt(ae,{Digest:()=>He,create:()=>Kt,decode:()=>Er,equals:()=>qs,hasCode:()=>Hd});var vd=Bf,vf=128,Ad=127,Bd=~Ad,_d=Math.pow(2,31);function Bf(e,t,r){t=t||[],r=r||0;for(var n=r;e>=_d;)t[r++]=e&255|vf,e/=128;for(;e&Bd;)t[r++]=e&255|vf,e>>>=7;return t[r]=e|0,Bf.bytes=r-n+1,t}var Ld=zs,Id=128,Af=127;function zs(e,n){var r=0,n=n||0,o=0,s=n,i,a=e.length;do{if(s>=a)throw zs.bytes=0,new RangeError("Could not decode varint");i=e[s++],r+=o<28?(i&Af)<<o:(i&Af)*Math.pow(2,o),o+=7}while(i>=Id);return zs.bytes=s-n,r}var Cd=Math.pow(2,7),Td=Math.pow(2,14),Dd=Math.pow(2,21),Rd=Math.pow(2,28),Od=Math.pow(2,35),Pd=Math.pow(2,42),Ud=Math.pow(2,49),Nd=Math.pow(2,56),kd=Math.pow(2,63),Md=function(e){return e<Cd?1:e<Td?2:e<Dd?3:e<Rd?4:e<Od?5:e<Pd?6:e<Ud?7:e<Nd?8:e<kd?9:10},Kd={encode:vd,decode:Ld,encodingLength:Md},Fd=Kd,sn=Fd;function an(e,t=0){return[sn.decode(e,t),sn.decode.bytes]}function xr(e,t,r=0){return sn.encode(e,t,r),t}function wr(e){return sn.encodingLength(e)}function Kt(e,t){let r=t.byteLength,n=wr(e),o=n+wr(r),s=new Uint8Array(o+r);return xr(e,s,0),xr(r,s,n),s.set(t,o),new He(e,r,t,s)}function Er(e){let t=ie(e),[r,n]=an(t),[o,s]=an(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new He(r,o,i,t)}function qs(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&gf(e.bytes,r.bytes)}}var He=class{code;size;digest;bytes;constructor(t,r,n,o){this.code=t,this.size=r,this.digest=n,this.bytes=o}};function Hd(e,t){return e.code===t}function _f(e,t){let{bytes:r,version:n}=e;return n===0?zd(r,$s(e),t??ft.encoder):qd(r,$s(e),t??Se.encoder)}var Lf=new WeakMap;function $s(e){let t=Lf.get(e);if(t==null){let r=new Map;return Lf.set(e,r),r}return t}var dt=class e{code;version;multihash;bytes;"/";constructor(t,r,n,o){this.code=r,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}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!==cn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==$d)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=Kt(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!=null&&t.code===n.code&&t.version===n.version&&qs(t.multihash,n.multihash)}toString(t){return _f(this,t)}toJSON(){return{"/":_f(this)}}link(){return this}[Symbol.toStringTag]="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:o,multihash:s,bytes:i}=r;return new e(n,o,s,i??If(n,o,s.bytes))}else if(r[jd]===!0){let{version:n,multihash:o,code:s}=r,i=Er(o);return e.create(n,s,i)}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!==cn)throw new Error(`Version 0 CID must use dag-pb (code: ${cn}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let o=If(t,r,n.bytes);return new e(t,r,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,cn,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,o=ie(t.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),i=new He(r.multihashCode,r.digestSize,s,o);return[r.version===0?e.createV0(i):e.createV1(r.codec,i),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[h,y]=an(t.subarray(r));return r+=y,h},o=n(),s=cn;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=r,a=n(),c=n(),f=r+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,r){let[n,o]=Vd(t,r),s=e.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return $s(s).set(n,t),s}};function Vd(e,t){switch(e[0]){case"Q":{let r=t??ft;return[ft.prefix,r.decode(`${ft.prefix}${e}`)]}case ft.prefix:{let r=t??ft;return[ft.prefix,r.decode(e)]}case Se.prefix:{let r=t??Se;return[Se.prefix,r.decode(e)]}case on.prefix:{let r=t??on;return[on.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}}function zd(e,t,r){let{prefix:n}=r;if(n!==ft.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return o}function qd(e,t,r){let{prefix:n}=r,o=t.get(n);if(o==null){let s=r.encode(e);return t.set(n,s),s}else return o}var cn=112,$d=18;function If(e,t,r){let n=wr(e),o=n+wr(t),s=new Uint8Array(o+r.byteLength);return xr(e,s,0),xr(t,s,n),s.set(r,o),s}var jd=Symbol.for("@ipld/js-cid/CID");var js={};tt(js,{identity:()=>Ft});var Cf=0,Wd="identity",Tf=ie;function Gd(e,t){if(t?.truncate!=null&&t.truncate!==e.byteLength){if(t.truncate<0||t.truncate>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,t.truncate)}return Kt(Cf,Tf(e))}var Ft={code:Cf,name:Wd,encode:Tf,digest:Gd};function It(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}function Zd(e){return e.buffer instanceof ArrayBuffer}function Ut(e){return Zd(e)?e:e.slice()}async function Df(e,t,r,n){let o=await crypto.subtle.importKey("jwk",e,{name:"ECDSA",namedCurve:e.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,Ut(t),Ut(r.subarray()));return n?.signal?.throwIfAborted(),s}function ce(e=0){return new Uint8Array(e)}function fn(e=0){return new Uint8Array(e)}function Ws(e,t){t==null&&(t=e.reduce((o,s)=>o+s.length,0));let r=fn(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function Rf(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 Pf=Symbol.for("@achingbrain/uint8arraylist");function Of(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let o=r+n.byteLength;if(t<o)return{buf:n,index:t-r};r=o}throw new RangeError("index is out of bounds")}function mo(e){return!!e?.[Pf]}var j=class e{bufs;length;[Pf]=!0;constructor(...t){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(mo(n)){r+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}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(mo(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=Of(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Of(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(mo(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:o}=this._subList(t,r);return Ws(n,o)}subarray(t,r){let{bufs:n,length:o}=this._subList(t,r);return n.length===1?n[0]:Ws(n,o)}sublist(t,r){let{bufs:n,length:o}=this._subList(t,r),s=new e;return s.length=o,s.bufs=n,s}_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=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=r>a&&r<=c;if(f&&u){if(t===a&&r===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(r-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(r===c){n.push(i);break}n.push(i.subarray(0,r-a));break}n.push(i)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!mo(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 o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=r;h<=c;h+=u){u=0;for(let y=f;y>=0;y--){let d=this.get(h+y);if(n[y]!==d){u=Math.max(1,y-a[d]);break}}if(u===0)return h}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=fn(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 o=ce(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,r,n),this.write(o,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 o=ce(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,r,n),this.write(o,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 o=ce(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,r,n),this.write(o,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=fn(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 o=ce(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,r,n),this.write(o,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 o=ce(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,r,n),this.write(o,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 o=ce(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,r,n),this.write(o,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 o=ce(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,r,n),this.write(o,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 o=ce(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,r,n),this.write(o,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(!Rf(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((o,s)=>o+s.byteLength,0)),n.length=r,n}};var Qs={};tt(Qs,{base10:()=>np});var Rb=new Uint8Array(0);function Uf(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}function fe(e){if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return Ve(e);if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return Ve(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));throw new Error("Unknown type, must be binary type")}function Nf(e){return new TextEncoder().encode(e)}function kf(e){return new TextDecoder().decode(e)}function Yd(e){return e?.buffer instanceof ArrayBuffer}function Ve(e){return Yd(e)?e:e.slice()}function Xd(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 o=0;o<e.length;o++){var s=e.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=e.length,c=e.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var b=0,l=0,g=0,A=p.length;g!==A&&p[g]===0;)g++,b++;for(var L=(A-g)*u+1>>>0,R=new Uint8Array(L);g!==A;){for(var D=p[g],U=0,T=L-1;(D!==0||U<l)&&T!==-1;T--,U++)D+=256*R[T]>>>0,R[T]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,g++}for(var I=L-l;I!==L&&R[I]===0;)I++;for(var P=c.repeat(b);I<L;++I)P+=e.charAt(R[I]);return P}function y(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var b=0;if(p[b]!==" "){for(var l=0,g=0;p[b]===c;)l++,b++;for(var A=(p.length-b)*f+1>>>0,L=new Uint8Array(A);p[b];){var R=r[p.charCodeAt(b)];if(R===255)return;for(var D=0,U=A-1;(R!==0||D<g)&&U!==-1;U--,D++)R+=a*L[U]>>>0,L[U]=R%256>>>0,R=R/256>>>0;if(R!==0)throw new Error("Non-zero carry");g=D,b++}if(p[b]!==" "){for(var T=A-g;T!==A&&L[T]===0;)T++;for(var I=new Uint8Array(l+(A-T)),P=l;T!==A;)I[P++]=L[T++];return I}}}function d(p){var b=y(p);if(b)return b;throw new Error(`Non-${t} character`)}return{encode:h,decodeUnsafe:y,decode:d}}var Qd=Xd,Jd=Qd,Kf=Jd;var Gs=class{name;prefix;baseEncode;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")}},Zs=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,r,n){this.name=t,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 Ff(this,t)}},Ys=class{decoders;constructor(t){this.decoders=t}or(t){return Ff(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Ff(e,t){return new Ys({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}var Xs=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,r,n,o){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Gs(t,r,n),this.decoder=new Zs(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Sr({name:e,prefix:t,encode:r,decode:n}){return new Xs(e,t,r,n)}function ve({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=Kf(r,e);return Sr({prefix:t,name:e,encode:n,decode:s=>fe(o(s))})}function tp(e,t,r,n){let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[e[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<r|u,i+=r,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=r||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function ep(e,t,r){let n=t[t.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],i+=8;i>r;)i-=r,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function rp(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}function ut({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=rp(n);return Sr({prefix:t,name:e,encode(s){return ep(s,n,r)},decode(s){return tp(s,o,r,e)}})}var np=ve({prefix:"9",name:"base10",alphabet:"0123456789"});var Js={};tt(Js,{base16:()=>op,base16upper:()=>sp});var op=ut({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),sp=ut({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ti={};tt(ti,{base2:()=>ip});var ip=ut({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ei={};tt(ei,{base256emoji:()=>hp});var Hf=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}"),ap=Hf.reduce((e,t,r)=>(e[r]=t,e),[]),cp=Hf.reduce((e,t,r)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return e[n]=r,e},[]);function fp(e){return e.reduce((t,r)=>(t+=ap[r],t),"")}function up(e){let t=[];for(let r of e){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=cp[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);t.push(o)}return new Uint8Array(t)}var hp=Sr({prefix:"\u{1F680}",name:"base256emoji",encode:fp,decode:up});var ri={};tt(ri,{base32:()=>vr,base32hex:()=>mp,base32hexpad:()=>gp,base32hexpadupper:()=>bp,base32hexupper:()=>yp,base32pad:()=>dp,base32padupper:()=>pp,base32upper:()=>lp,base32z:()=>xp});var vr=ut({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),lp=ut({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),dp=ut({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),pp=ut({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),mp=ut({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),yp=ut({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),gp=ut({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),bp=ut({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),xp=ut({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ni={};tt(ni,{base36:()=>un,base36upper:()=>wp});var un=ve({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),wp=ve({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var oi={};tt(oi,{base58btc:()=>Zt,base58flickr:()=>Ep});var Zt=ve({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Ep=ve({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var si={};tt(si,{base64:()=>Sp,base64pad:()=>vp,base64url:()=>Ap,base64urlpad:()=>Bp});var Sp=ut({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),vp=ut({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ap=ut({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Bp=ut({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ii={};tt(ii,{base8:()=>_p});var _p=ut({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ai={};tt(ai,{identity:()=>Lp});var Lp=Sr({prefix:"\0",name:"identity",encode:e=>kf(e),decode:e=>Nf(e)});var Gb=new TextEncoder,Zb=new TextDecoder;var fi={};tt(fi,{identity:()=>Yp});var Tp=qf,Vf=128,Dp=127,Rp=~Dp,Op=Math.pow(2,31);function qf(e,t,r){t=t||[],r=r||0;for(var n=r;e>=Op;)t[r++]=e&255|Vf,e/=128;for(;e&Rp;)t[r++]=e&255|Vf,e>>>=7;return t[r]=e|0,qf.bytes=r-n+1,t}var Pp=ci,Up=128,zf=127;function ci(e,n){var r=0,n=n||0,o=0,s=n,i,a=e.length;do{if(s>=a)throw ci.bytes=0,new RangeError("Could not decode varint");i=e[s++],r+=o<28?(i&zf)<<o:(i&zf)*Math.pow(2,o),o+=7}while(i>=Up);return ci.bytes=s-n,r}var Np=Math.pow(2,7),kp=Math.pow(2,14),Mp=Math.pow(2,21),Kp=Math.pow(2,28),Fp=Math.pow(2,35),Hp=Math.pow(2,42),Vp=Math.pow(2,49),zp=Math.pow(2,56),qp=Math.pow(2,63),$p=function(e){return e<Np?1:e<kp?2:e<Mp?3:e<Kp?4:e<Fp?5:e<Hp?6:e<Vp?7:e<zp?8:e<qp?9:10},jp={encode:Tp,decode:Pp,encodingLength:$p},Wp=jp,hn=Wp;function ln(e,t=0){return[hn.decode(e,t),hn.decode.bytes]}function Ar(e,t,r=0){return hn.encode(e,t,r),t}function Br(e){return hn.encodingLength(e)}function Lr(e,t){let r=t.byteLength,n=Br(e),o=n+Br(r),s=new Uint8Array(o+r);return Ar(e,s,0),Ar(r,s,n),s.set(t,o),new _r(e,r,t,s)}function $f(e){let t=fe(e),[r,n]=ln(t),[o,s]=ln(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new _r(r,o,i,t)}function jf(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Uf(e.bytes,r.bytes)}}var _r=class{code;size;digest;bytes;constructor(t,r,n,o){this.code=t,this.size=r,this.digest=Ve(n),this.bytes=Ve(o)}};var Wf=0,Gp="identity",Gf=fe;function Zp(e,t){if(t?.truncate!=null&&t.truncate!==e.byteLength){if(t.truncate<0||t.truncate>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,t.truncate)}return Lr(Wf,Gf(e))}var Yp={code:Wf,name:Gp,encode:Gf,digest:Zp};var li={};tt(li,{sha256:()=>Qp,sha512:()=>Jp});var Xp=20;function hi({name:e,code:t,encode:r,minDigestLength:n,maxDigestLength:o}){return new ui(e,t,r,n,o)}var ui=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,r,n,o,s){this.name=t,this.code=r,this.encode=n,this.minDigestLength=o??Xp,this.maxDigestLength=s}digest(t,r){if(r?.truncate!=null){if(r.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&r.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Zf(n,this.code,r?.truncate):n.then(o=>Zf(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function Zf(e,t,r){if(r!=null&&r!==e.byteLength){if(r>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,r)}return Lr(t,e)}function Xf(e){return async t=>new Uint8Array(await crypto.subtle.digest(e,t))}var Qp=hi({name:"sha2-256",code:18,encode:Xf("SHA-256")}),Jp=hi({name:"sha2-512",code:19,encode:Xf("SHA-512")});function Qf(e,t){let{bytes:r,version:n}=e;return n===0?em(r,di(e),t??Zt.encoder):rm(r,di(e),t??vr.encoder)}var Jf=new WeakMap;function di(e){let t=Jf.get(e);if(t==null){let r=new Map;return Jf.set(e,r),r}return t}var go=class e{code;version;multihash;bytes;"/";constructor(t,r,n,o){this.code=r,this.version=t,this.multihash=n,this.bytes=Ve(o),this["/"]=this.bytes}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!==pn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==nm)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=Lr(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!=null&&t.code===n.code&&t.version===n.version&&jf(t.multihash,n.multihash)}toString(t){return Qf(this,t)}toJSON(){return{"/":Qf(this)}}link(){return this}[Symbol.toStringTag]="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:o,multihash:s,bytes:i}=r;return new e(n,o,s,i??tu(n,o,s.bytes))}else if(r[om]===!0){let{version:n,multihash:o,code:s}=r,i=$f(o);return e.create(n,s,i)}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!==pn)throw new Error(`Version 0 CID must use dag-pb (code: ${pn}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let o=tu(t,r,n.bytes);return new e(t,r,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,pn,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,o=fe(t.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),i=new _r(r.multihashCode,r.digestSize,s,o);return[r.version===0?e.createV0(i):e.createV1(r.codec,i),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[h,y]=ln(t.subarray(r));return r+=y,h},o=n(),s=pn;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=r,a=n(),c=n(),f=r+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,r){let[n,o]=tm(t,r),s=e.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return di(s).set(n,t),s}};function tm(e,t){switch(e[0]){case"Q":{let r=t??Zt;return[Zt.prefix,r.decode(`${Zt.prefix}${e}`)]}case Zt.prefix:{let r=t??Zt;return[Zt.prefix,r.decode(e)]}case vr.prefix:{let r=t??vr;return[vr.prefix,r.decode(e)]}case un.prefix:{let r=t??un;return[un.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}}function em(e,t,r){let{prefix:n}=r;if(n!==Zt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return o}function rm(e,t,r){let{prefix:n}=r,o=t.get(n);if(o==null){let s=r.encode(e);return t.set(n,s),s}else return o}var pn=112,nm=18;function tu(e,t,r){let n=Br(e),o=n+Br(t),s=new Uint8Array(o+r.byteLength);return Ar(e,s,0),Ar(t,s,n),s.set(r,o),s}var om=Symbol.for("@ipld/js-cid/CID");var pi={...ai,...ti,...ii,...Qs,...Js,...ri,...ni,...oi,...si,...ei},gx={...li,...fi};function mi(e=0){return new Uint8Array(e)}function ru(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var eu=ru("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),yi=ru("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=mi(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),sm={utf8:eu,"utf-8":eu,hex:pi.base16,latin1:yi,ascii:yi,binary:yi,...pi},bo=sm;function pt(e,t="utf8"){let r=bo[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}function st(e,t="utf8"){let r=bo[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}var im=parseInt("11111",2),gi=parseInt("10000000",2),am=parseInt("01111111",2),nu={0:mn,1:mn,2:cm,3:hm,4:lm,5:um,6:fm,16:mn,22:mn,48:mn};function ue(e,t={offset:0}){let r=e[t.offset]&im;if(t.offset++,nu[r]!=null)return nu[r](e,t);throw new Error("No decoder for tag "+r)}function yn(e,t){let r=0;if((e[t.offset]&gi)===gi){let n=e[t.offset]&am,o="0x";t.offset++;for(let s=0;s<n;s++,t.offset++)o+=e[t.offset].toString(16).padStart(2,"0");r=parseInt(o,16)}else r=e[t.offset],t.offset++;return r}function mn(e,t){yn(e,t);let r=[];for(;!(t.offset>=e.byteLength);){let n=ue(e,t);if(n===null)break;r.push(n)}return r}function cm(e,t){let r=yn(e,t),n=t.offset,o=t.offset+r,s=[];for(let i=n;i<o;i++)i===n&&e[i]===0||s.push(e[i]);return t.offset+=r,Uint8Array.from(s)}function fm(e,t){let r=yn(e,t),n=t.offset+r,o=e[t.offset];t.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;t.offset<n;){let f=e[t.offset];if(t.offset++,c.push(f&127),f<128){c.reverse();let u=0;for(let h=0;h<c.length;h++)u+=c[h]<<h*7;a+=`.${u}`,c=[]}}return a}function um(e,t){return t.offset++,null}function hm(e,t){let r=yn(e,t),n=e[t.offset];t.offset++;let o=e.subarray(t.offset,t.offset+r-1);if(t.offset+=r,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function lm(e,t){let r=yn(e,t),n=e.subarray(t.offset,t.offset+r);return t.offset+=r,n}function dm(e){let t=e.toString(16);t.length%2===1&&(t="0"+t);let r=new j;for(let n=0;n<t.length;n+=2)r.append(Uint8Array.from([parseInt(`${t[n]}${t[n+1]}`,16)]));return r}function bi(e){if(e.byteLength<128)return Uint8Array.from([e.byteLength]);let t=dm(e.byteLength);return new j(Uint8Array.from([t.byteLength|gi]),t)}function Ct(e){let t=new j,r=128;return(e.subarray()[0]&r)===r&&t.append(Uint8Array.from([0])),t.append(e),new j(Uint8Array.from([2]),bi(t),t)}function xo(e){let t=Uint8Array.from([0]),r=new j(t,e);return new j(Uint8Array.from([3]),bi(r),r)}function Ae(e,t=48){let r=new j;for(let n of e)r.append(n);return new j(Uint8Array.from([t]),bi(r),r)}var pm=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),mm=Uint8Array.from([6,5,43,129,4,0,34]),ym=Uint8Array.from([6,5,43,129,4,0,35]),gm={ext:!0,kty:"EC",crv:"P-256"},bm={ext:!0,kty:"EC",crv:"P-384"},xm={ext:!0,kty:"EC",crv:"P-521"},xi=32,wi=48,Ei=66;function Si(e){let t=ue(e);return ou(t)}function ou(e){let t=e[1][1][0],r=1,n,o;if(t.byteLength===xi*2+1)return n=st(t.subarray(r,r+xi),"base64url"),o=st(t.subarray(r+xi),"base64url"),new Ir({...gm,key_ops:["verify"],x:n,y:o});if(t.byteLength===wi*2+1)return n=st(t.subarray(r,r+wi),"base64url"),o=st(t.subarray(r+wi),"base64url"),new Ir({...bm,key_ops:["verify"],x:n,y:o});if(t.byteLength===Ei*2+1)return n=st(t.subarray(r,r+Ei),"base64url"),o=st(t.subarray(r+Ei),"base64url"),new Ir({...xm,key_ops:["verify"],x:n,y:o});throw new Q(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function su(e){return Ae([Ct(Uint8Array.from([1])),Ae([wm(e.crv)],160),Ae([xo(new j(Uint8Array.from([4]),pt(e.x??"","base64url"),pt(e.y??"","base64url")))],161)]).subarray()}function wm(e){if(e==="P-256")return pm;if(e==="P-384")return mm;if(e==="P-521")return ym;throw new Q(`Invalid curve ${e}`)}var Ir=class{type="ECDSA";jwk;_raw;constructor(t){this.jwk=t}get raw(){return this._raw==null&&(this._raw=su(this.jwk)),this._raw}toMultihash(){return Ft.digest(Be(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ft.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}async verify(t,r,n){return Df(this.jwk,r,t,n)}};function vi(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function Yt(e,t=""){if(typeof e!="number"){let r=t&&`"${t}" `;throw new TypeError(`${r}expected number, got ${typeof e}`)}if(!Number.isSafeInteger(e)||e<0){let r=t&&`"${t}" `;throw new RangeError(`${r}expected integer >= 0, got ${e}`)}}function vt(e,t,r=""){let n=vi(e),o=e?.length,s=t!==void 0;if(!n||s&&o!==t){let i=r&&`"${r}" `,a=s?` of length ${t}`:"",c=n?`length=${o}`:`type=${typeof e}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return e}function ze(e){if(typeof e!="function"||typeof e.create!="function")throw new TypeError("Hash must wrapped by utils.createHasher");if(Yt(e.outputLen),Yt(e.blockLen),e.outputLen<1)throw new Error('"outputLen" must be >= 1');if(e.blockLen<1)throw new Error('"blockLen" must be >= 1')}function Cr(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 wo(e,t){vt(e,void 0,"digestInto() output");let r=t.outputLen;if(e.length<r)throw new RangeError('"digestInto() output" expected to be of length >='+r)}function Ht(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Eo(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Vt(e,t){return e<<32-t|e>>>t}var au=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Em=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function So(e){if(vt(e),au)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=Em[e[r]];return t}var he={_0:48,_9:57,A:65,F:70,a:97,f:102};function iu(e){if(e>=he._0&&e<=he._9)return e-he._0;if(e>=he.A&&e<=he.F)return e-(he.A-10);if(e>=he.a&&e<=he.f)return e-(he.a-10)}function gn(e){if(typeof e!="string")throw new TypeError("hex string expected, got "+typeof e);if(au)try{return Uint8Array.fromHex(e)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let t=e.length,r=t/2;if(t%2)throw new RangeError("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,s=0;o<r;o++,s+=2){let i=iu(e.charCodeAt(s)),a=iu(e.charCodeAt(s+1));if(i===void 0||a===void 0){let c=e[s]+e[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ai(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];vt(o),t+=o.length}let r=new Uint8Array(t);for(let n=0,o=0;n<e.length;n++){let s=e[n];r.set(s,o),o+=s.length}return r}function Bi(e,t={}){let r=(o,s)=>e(s).update(o).digest(),n=e(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=o=>e(o),Object.assign(r,t),Object.freeze(r)}function cu(e=32){Yt(e,"bytesLength");let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(e>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${e}`);return t.getRandomValues(new Uint8Array(e))}var _i=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function fu(e,t,r){return e&t^~e&r}function uu(e,t,r){return e&t^e&r^t&r}var bn=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,r,n,o){this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Eo(this.buffer)}update(t){Cr(this),vt(t);let{view:r,buffer:n,blockLen:o}=this,s=t.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=Eo(t);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(t.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Cr(this),wo(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;r[i++]=128,Ht(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let h=i;h<o;h++)r[h]=0;n.setBigUint64(o-8,BigInt(this.length*8),s),this.process(n,0);let a=Eo(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let f=c/4,u=this.get();if(f>u.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<f;h++)a.setUint32(4*h,u[h],s)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||=new this.constructor,t.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return t.destroyed=i,t.finished=s,t.length=o,t.pos=a,o%r&&t.buffer.set(n),t}clone(){return this._cloneInto()}},le=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var xt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var vo=BigInt(4294967295),hu=BigInt(32);function Sm(e,t=!1){return t?{h:Number(e&vo),l:Number(e>>hu&vo)}:{h:Number(e>>hu&vo)|0,l:Number(e&vo)|0}}function lu(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let s=0;s<r;s++){let{h:i,l:a}=Sm(e[s],t);[n[s],o[s]]=[i,a]}return[n,o]}var Li=(e,t,r)=>e>>>r,Ii=(e,t,r)=>e<<32-r|t>>>r,qe=(e,t,r)=>e>>>r|t<<32-r,$e=(e,t,r)=>e<<32-r|t>>>r,xn=(e,t,r)=>e<<64-r|t>>>r-32,wn=(e,t,r)=>e>>>r-32|t<<64-r;function Xt(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var du=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),pu=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,mu=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),yu=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,gu=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0),bu=(e,t,r,n,o,s)=>t+r+n+o+s+(e/2**32|0)|0;var Am=Uint32Array.from([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]),_e=new Uint32Array(64),Ci=class extends bn{constructor(t){super(64,t,8,!1)}get(){let{A:t,B:r,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,r,n,o,s,i,a,c]}set(t,r,n,o,s,i,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,r){for(let h=0;h<16;h++,r+=4)_e[h]=t.getUint32(r,!1);for(let h=16;h<64;h++){let y=_e[h-15],d=_e[h-2],p=Vt(y,7)^Vt(y,18)^y>>>3,b=Vt(d,17)^Vt(d,19)^d>>>10;_e[h]=b+_e[h-7]+p+_e[h-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let h=0;h<64;h++){let y=Vt(a,6)^Vt(a,11)^Vt(a,25),d=u+y+fu(a,c,f)+Am[h]+_e[h]|0,b=(Vt(n,2)^Vt(n,13)^Vt(n,22))+uu(n,o,s)|0;u=f,f=c,c=a,a=i+d|0,i=s,s=o,o=n,n=d+b|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,f,u)}roundClean(){Ht(_e)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Ht(this.buffer)}},Ti=class extends Ci{A=le[0]|0;B=le[1]|0;C=le[2]|0;D=le[3]|0;E=le[4]|0;F=le[5]|0;G=le[6]|0;H=le[7]|0;constructor(){super(32)}};var xu=lu(["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))),Bm=xu[0],_m=xu[1],Le=new Uint32Array(80),Ie=new Uint32Array(80),Di=class extends bn{constructor(t){super(128,t,16,!1)}get(){let{Ah:t,Al:r,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:f,El:u,Fh:h,Fl:y,Gh:d,Gl:p,Hh:b,Hl:l}=this;return[t,r,n,o,s,i,a,c,f,u,h,y,d,p,b,l]}set(t,r,n,o,s,i,a,c,f,u,h,y,d,p,b,l){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=f|0,this.El=u|0,this.Fh=h|0,this.Fl=y|0,this.Gh=d|0,this.Gl=p|0,this.Hh=b|0,this.Hl=l|0}process(t,r){for(let L=0;L<16;L++,r+=4)Le[L]=t.getUint32(r),Ie[L]=t.getUint32(r+=4);for(let L=16;L<80;L++){let R=Le[L-15]|0,D=Ie[L-15]|0,U=qe(R,D,1)^qe(R,D,8)^Li(R,D,7),T=$e(R,D,1)^$e(R,D,8)^Ii(R,D,7),I=Le[L-2]|0,P=Ie[L-2]|0,M=qe(I,P,19)^xn(I,P,61)^Li(I,P,6),N=$e(I,P,19)^wn(I,P,61)^Ii(I,P,6),m=mu(T,N,Ie[L-7],Ie[L-16]),v=yu(m,U,M,Le[L-7],Le[L-16]);Le[L]=v|0,Ie[L]=m|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:y,Fh:d,Fl:p,Gh:b,Gl:l,Hh:g,Hl:A}=this;for(let L=0;L<80;L++){let R=qe(h,y,14)^qe(h,y,18)^xn(h,y,41),D=$e(h,y,14)^$e(h,y,18)^wn(h,y,41),U=h&d^~h&b,T=y&p^~y&l,I=gu(A,D,T,_m[L],Ie[L]),P=bu(I,g,R,U,Bm[L],Le[L]),M=I|0,N=qe(n,o,28)^xn(n,o,34)^xn(n,o,39),m=$e(n,o,28)^wn(n,o,34)^wn(n,o,39),v=n&s^n&a^s&a,S=o&i^o&c^i&c;g=b|0,A=l|0,b=d|0,l=p|0,d=h|0,p=y|0,{h,l:y}=Xt(f|0,u|0,P|0,M|0),f=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let w=du(M,m,S);n=pu(w,P,N,v),o=w|0}({h:n,l:o}=Xt(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=Xt(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=Xt(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l:u}=Xt(this.Dh|0,this.Dl|0,f|0,u|0),{h,l:y}=Xt(this.Eh|0,this.El|0,h|0,y|0),{h:d,l:p}=Xt(this.Fh|0,this.Fl|0,d|0,p|0),{h:b,l}=Xt(this.Gh|0,this.Gl|0,b|0,l|0),{h:g,l:A}=Xt(this.Hh|0,this.Hl|0,g|0,A|0),this.set(n,o,s,i,a,c,f,u,h,y,d,p,b,l,g,A)}roundClean(){Ht(Le,Ie)}destroy(){this.destroyed=!0,Ht(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Ri=class extends Di{Ah=xt[0]|0;Al=xt[1]|0;Bh=xt[2]|0;Bl=xt[3]|0;Ch=xt[4]|0;Cl=xt[5]|0;Dh=xt[6]|0;Dl=xt[7]|0;Eh=xt[8]|0;El=xt[9]|0;Fh=xt[10]|0;Fl=xt[11]|0;Gh=xt[12]|0;Gl=xt[13]|0;Hh=xt[14]|0;Hl=xt[15]|0;constructor(){super(64)}};var Qt=Bi(()=>new Ti,_i(1));var Ao=Bi(()=>new Ri,_i(3));var V=(e,t,r)=>vt(e,t,r),Pi=Yt,Tr=So,mt=(...e)=>Ai(...e),Dr=e=>gn(e),je=vi,We=e=>cu(e),_o=BigInt(0),Oi=BigInt(1);function zt(e,t=""){if(typeof e!="boolean"){let r=t&&`"${t}" `;throw new TypeError(r+"expected boolean, got type="+typeof e)}return e}function Lo(e){if(typeof e=="bigint"){if(!Bo(e))throw new RangeError("positive bigint expected, got "+e)}else Pi(e);return e}function qt(e,t=""){if(typeof e!="number"){let r=t&&`"${t}" `;throw new TypeError(r+"expected number, got type="+typeof e)}if(!Number.isSafeInteger(e)){let r=t&&`"${t}" `;throw new RangeError(r+"expected safe integer, got "+e)}}function En(e){let t=Lo(e).toString(16);return t.length&1?"0"+t:t}function wu(e){if(typeof e!="string")throw new TypeError("hex string expected, got "+typeof e);return e===""?_o:BigInt("0x"+e)}function Ge(e){return wu(So(e))}function Tt(e){return wu(So(Ce(vt(e)).reverse()))}function Io(e,t){if(Yt(t),t===0)throw new RangeError("zero length");e=Lo(e);let r=e.toString(16);if(r.length>t*2)throw new RangeError("number too large");return gn(r.padStart(t*2,"0"))}function Sn(e,t){return Io(e,t).reverse()}function Eu(e,t){if(e=V(e),t=V(t),e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function Ce(e){return Uint8Array.from(V(e))}function Co(e){if(typeof e!="string")throw new TypeError("ascii string expected, got "+typeof e);return Uint8Array.from(e,(t,r)=>{let n=t.charCodeAt(0);if(t.length!==1||n>127)throw new RangeError(`string contains non-ASCII character "${e[r]}" with code ${n} at position ${r}`);return n})}var Bo=e=>typeof e=="bigint"&&_o<=e;function Lm(e,t,r){return Bo(e)&&Bo(t)&&Bo(r)&&t<=e&&e<r}function de(e,t,r,n){if(!Lm(t,r,n))throw new RangeError("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function Rr(e){if(e<_o)throw new Error("expected non-negative bigint, got "+e);let t;for(t=0;e>_o;e>>=Oi,t+=1);return t}var vn=e=>(Oi<<BigInt(e))-Oi;function Su(e,t,r){if(Yt(e,"hashLen"),Yt(t,"qByteLen"),typeof r!="function")throw new TypeError("hmacFn must be a function");let n=l=>new Uint8Array(l),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(e),f=n(e),u=0,h=()=>{c.fill(1),f.fill(0),u=0},y=(...l)=>r(f,mt(c,...l)),d=(l=o)=>{f=y(s,l),c=y(),l.length!==0&&(f=y(i,l),c=y())},p=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let l=0,g=[];for(;l<t;){c=y();let A=c.slice();g.push(A),l+=c.length}return mt(...g)};return(l,g)=>{h(),d(l);let A;for(;(A=g(p()))===void 0;)d();return h(),A}}function Dt(e,t={},r={}){if(Object.prototype.toString.call(e)!=="[object Object]")throw new TypeError("expected valid options object");function n(s,i,a){if(!a&&i!=="function"&&!Object.hasOwn(e,s))throw new TypeError(`param "${s}" is invalid: expected own property`);let c=e[s];if(a&&c===void 0)return;let f=typeof c;if(f!==i||c===null)throw new TypeError(`param "${s}" is invalid: expected ${i}, got ${f}`)}let o=(s,i)=>Object.entries(s).forEach(([a,c])=>n(a,c,i));o(t,!1),o(r,!0)}var Ui=()=>{throw new Error("not implemented")};var wt=BigInt(0),ht=BigInt(1),Ze=BigInt(2),_u=BigInt(3),Lu=BigInt(4),Iu=BigInt(5),Im=BigInt(7),Cu=BigInt(8),Cm=BigInt(9),Tu=BigInt(16);function it(e,t){if(t<=wt)throw new Error("mod: expected positive modulus, got "+t);let r=e%t;return r>=wt?r:t+r}function et(e,t,r){if(t<wt)throw new Error("pow2: expected non-negative exponent, got "+t);let n=e;for(;t-- >wt;)n*=n,n%=r;return n}function vu(e,t){if(e===wt)throw new Error("invert: expected non-zero number");if(t<=wt)throw new Error("invert: expected positive modulus, got "+t);let r=it(e,t),n=t,o=wt,s=ht,i=ht,a=wt;for(;r!==wt;){let f=n/r,u=n-r*f,h=o-i*f,y=s-a*f;n=r,r=u,o=i,s=a,i=h,a=y}if(n!==ht)throw new Error("invert: does not exist");return it(o,t)}function Ni(e,t,r){let n=e;if(!n.eql(n.sqr(t),r))throw new Error("Cannot find square root")}function Du(e,t){let r=e,n=(r.ORDER+ht)/Lu,o=r.pow(t,n);return Ni(r,o,t),o}function Tm(e,t){let r=e,n=(r.ORDER-Iu)/Cu,o=r.mul(t,Ze),s=r.pow(o,n),i=r.mul(t,s),a=r.mul(r.mul(i,Ze),s),c=r.mul(i,r.sub(a,r.ONE));return Ni(r,c,t),c}function Dm(e){let t=Or(e),r=Ru(e),n=r(t,t.neg(t.ONE)),o=r(t,n),s=r(t,t.neg(n)),i=(e+Im)/Tu;return((a,c)=>{let f=a,u=f.pow(c,i),h=f.mul(u,n),y=f.mul(u,o),d=f.mul(u,s),p=f.eql(f.sqr(h),c),b=f.eql(f.sqr(y),c);u=f.cmov(u,h,p),h=f.cmov(d,y,b);let l=f.eql(f.sqr(h),c),g=f.cmov(u,h,l);return Ni(f,g,c),g})}function Ru(e){if(e<_u)throw new Error("sqrt is not defined for small field");let t=e-ht,r=0;for(;t%Ze===wt;)t/=Ze,r++;let n=Ze,o=Or(e);for(;Au(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return Du;let s=o.pow(n,t),i=(t+ht)/Ze;return function(c,f){let u=c;if(u.is0(f))return f;if(Au(u,f)!==1)throw new Error("Cannot find square root");let h=r,y=u.mul(u.ONE,s),d=u.pow(f,t),p=u.pow(f,i);for(;!u.eql(d,u.ONE);){if(u.is0(d))return u.ZERO;let b=1,l=u.sqr(d);for(;!u.eql(l,u.ONE);)if(b++,l=u.sqr(l),b===h)throw new Error("Cannot find square root");let g=ht<<BigInt(h-b-1),A=u.pow(y,g);h=b,y=u.sqr(A),d=u.mul(d,y),p=u.mul(p,A)}return p}}function Rm(e){return e%Lu===_u?Du:e%Cu===Iu?Tm:e%Tu===Cm?Dm(e):Ru(e)}var pe=(e,t)=>(it(e,t)&ht)===ht,Om=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ki(e){let t={ORDER:"bigint",BYTES:"number",BITS:"number"},r=Om.reduce((n,o)=>(n[o]="function",n),t);if(Dt(e,r),qt(e.BYTES,"BYTES"),qt(e.BITS,"BITS"),e.BYTES<1||e.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(e.ORDER<=ht)throw new Error("invalid field: expected ORDER > 1, got "+e.ORDER);return e}function Pm(e,t,r){let n=e;if(r<wt)throw new Error("invalid exponent, negatives unsupported");if(r===wt)return n.ONE;if(r===ht)return t;let o=n.ONE,s=t;for(;r>wt;)r&ht&&(o=n.mul(o,s)),s=n.sqr(s),r>>=ht;return o}function An(e,t,r=!1){let n=e,o=new Array(t.length).fill(r?n.ZERO:void 0),s=t.reduce((a,c,f)=>n.is0(c)?a:(o[f]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return t.reduceRight((a,c,f)=>n.is0(c)?a:(o[f]=n.mul(a,o[f]),n.mul(a,c)),i),o}function Au(e,t){let r=e,n=(r.ORDER-ht)/Ze,o=r.pow(t,n),s=r.eql(o,r.ONE),i=r.eql(o,r.ZERO),a=r.eql(o,r.neg(r.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function Um(e,t){if(t!==void 0&&Pi(t),e<=wt)throw new Error("invalid n length: expected positive n, got "+e);if(t!==void 0&&t<1)throw new Error("invalid n length: expected positive bit length, got "+t);let r=Rr(e);if(t!==void 0&&t<r)throw new Error(`invalid n length: expected bit length (${r}) >= n.length (${t})`);let n=t!==void 0?t:r,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var Bu=new WeakMap,To=class{ORDER;BITS;BYTES;isLE;ZERO=wt;ONE=ht;_lengths;_mod;constructor(t,r={}){if(t<=ht)throw new Error("invalid field: expected ORDER > 1, got "+t);let n;this.isLE=!1,r!=null&&typeof r=="object"&&(typeof r.BITS=="number"&&(n=r.BITS),typeof r.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:r.sqrt,enumerable:!0}),typeof r.isLE=="boolean"&&(this.isLE=r.isLE),r.allowedLengths&&(this._lengths=Object.freeze(r.allowedLengths.slice())),typeof r.modFromBytes=="boolean"&&(this._mod=r.modFromBytes));let{nBitLength:o,nByteLength:s}=Um(t,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(t){return it(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof t);return wt<=t&&t<this.ORDER}is0(t){return t===wt}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&ht)===ht}neg(t){return it(-t,this.ORDER)}eql(t,r){return t===r}sqr(t){return it(t*t,this.ORDER)}add(t,r){return it(t+r,this.ORDER)}sub(t,r){return it(t-r,this.ORDER)}mul(t,r){return it(t*r,this.ORDER)}pow(t,r){return Pm(this,t,r)}div(t,r){return it(t*vu(r,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,r){return t+r}subN(t,r){return t-r}mulN(t,r){return t*r}inv(t){return vu(t,this.ORDER)}sqrt(t){let r=Bu.get(this);return r||Bu.set(this,r=Rm(this.ORDER)),r(this,t)}toBytes(t){return this.isLE?Sn(t,this.BYTES):Io(t,this.BYTES)}fromBytes(t,r=!1){V(t);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(t.length<1||!n.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+t.length);let f=new Uint8Array(o);f.set(t,s?0:f.length-t.length),t=f}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let c=s?Tt(t):Ge(t);if(a&&(c=it(c,i)),!r&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(t){return An(this,t)}cmov(t,r,n){return zt(n,"condition"),n?r:t}};Object.freeze(To.prototype);function Or(e,t={}){return new To(e,t)}function Ou(e){if(typeof e!="bigint")throw new Error("field order must be bigint");if(e<=ht)throw new Error("field order must be greater than 1");let t=Rr(e-ht);return Math.ceil(t/8)}function Mi(e){let t=Ou(e);return t+Math.ceil(t/2)}function Ki(e,t,r=!1){V(e);let n=e.length,o=Ou(t),s=Math.max(Mi(t),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=r?Tt(e):Ge(e),a=it(i,t-ht)+ht;return r?Sn(a,o):Io(a,o)}var Pr=BigInt(0),Ye=BigInt(1);function Bn(e,t){let r=t.negate();return e?r:t}function Xe(e,t){let r=An(e.Fp,t.map(n=>n.Z));return t.map((n,o)=>e.fromAffine(n.toAffine(r[o])))}function ku(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Fi(e,t){ku(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),o=2**e,s=vn(e),i=BigInt(e);return{windows:r,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function Pu(e,t,r){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=r,a=Number(e&o),c=e>>i;a>n&&(a-=s,c+=Ye);let f=t*n,u=f+Math.abs(a)-1,h=a===0,y=a<0,d=t%2!==0;return{nextN:c,offset:u,isZero:h,isNeg:y,isNegF:d,offsetF:f}}var Hi=new WeakMap,Mu=new WeakMap;function Vi(e){return Mu.get(e)||1}function Uu(e){if(e!==Pr)throw new Error("invalid wNAF")}var Ur=class{BASE;ZERO;Fn;bits;constructor(t,r){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=r}_unsafeLadder(t,r,n=this.ZERO){let o=t;for(;r>Pr;)r&Ye&&(n=n.add(o)),o=o.double(),r>>=Ye;return n}precomputeWindow(t,r){let{windows:n,windowSize:o}=Fi(r,this.bits),s=[],i=t,a=i;for(let c=0;c<n;c++){a=i,s.push(a);for(let f=1;f<o;f++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(t,r,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Fi(t,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:f,isZero:u,isNeg:h,isNegF:y,offsetF:d}=Pu(n,a,i);n=c,u?s=s.add(Bn(y,r[d])):o=o.add(Bn(h,r[f]))}return Uu(n),{p:o,f:s}}wNAFUnsafe(t,r,n,o=this.ZERO){let s=Fi(t,this.bits);for(let i=0;i<s.windows&&n!==Pr;i++){let{nextN:a,offset:c,isZero:f,isNeg:u}=Pu(n,i,s);if(n=a,!f){let h=r[c];o=o.add(u?h.negate():h)}}return Uu(n),o}getPrecomputes(t,r,n){let o=Hi.get(r);return o||(o=this.precomputeWindow(r,t),t!==1&&(typeof n=="function"&&(o=n(o)),Hi.set(r,o))),o}cached(t,r,n){let o=Vi(t);return this.wNAF(o,this.getPrecomputes(o,t,n),r)}unsafe(t,r,n,o){let s=Vi(t);return s===1?this._unsafeLadder(t,r,o):this.wNAFUnsafe(s,this.getPrecomputes(s,t,n),r,o)}createCache(t,r){ku(r,this.bits),Mu.set(t,r),Hi.delete(t)}hasCache(t){return Vi(t)!==1}};function Ku(e,t,r,n){let o=t,s=e.ZERO,i=e.ZERO;for(;r>Pr||n>Pr;)r&Ye&&(s=s.add(o)),n&Ye&&(i=i.add(o)),o=o.double(),r>>=Ye,n>>=Ye;return{p1:s,p2:i}}function Nu(e,t,r){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return ki(t),t}else return Or(e,{isLE:r})}function Do(e,t,r={},n){if(n===void 0&&(n=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(let c of["p","n","h"]){let f=t[c];if(!(typeof f=="bigint"&&f>Pr))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Nu(t.p,r.Fp,n),s=Nu(t.n,r.Fn,n),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:s}}function Nr(e,t){return function(n){let o=e(n);return{secretKey:o,publicKey:t(o)}}}var Te=BigInt(0),gt=BigInt(1),zi=BigInt(2),Nm=BigInt(8);function km(e,t,r,n){let o=e.sqr(r),s=e.sqr(n),i=e.add(e.mul(t.a,o),s),a=e.add(e.ONE,e.mul(t.d,e.mul(o,s)));return e.eql(i,a)}function Fu(e,t={}){let r=t,n=Do("edwards",e,r,r.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;Dt(r,{},{uvRatio:"function"});let c=zi<<BigInt(s.BYTES*8)-gt,f=b=>o.create(b),u=r.uvRatio===void 0?(b,l)=>{try{return{isValid:!0,value:o.sqrt(o.div(b,l))}}catch{return{isValid:!1,value:Te}}}:r.uvRatio;if(!km(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");function h(b,l,g=!1){let A=g?gt:Te;return de("coordinate "+b,l,A,c),l}function y(b){if(!(b instanceof d))throw new Error("EdwardsPoint expected")}class d{static BASE=new d(i.Gx,i.Gy,gt,f(i.Gx*i.Gy));static ZERO=new d(Te,gt,gt,Te);static Fp=o;static Fn=s;X;Y;Z;T;constructor(l,g,A,L){this.X=h("x",l),this.Y=h("y",g),this.Z=h("z",A,!0),this.T=h("t",L),Object.freeze(this)}static CURVE(){return i}static fromAffine(l){if(l instanceof d)throw new Error("extended point not allowed");let{x:g,y:A}=l||{};return h("x",g),h("y",A),new d(g,A,gt,f(g*A))}static fromBytes(l,g=!1){let A=o.BYTES,{a:L,d:R}=i;l=Ce(V(l,A,"point")),zt(g,"zip215");let D=Ce(l),U=l[A-1];D[A-1]=U&-129;let T=Tt(D),I=g?c:o.ORDER;de("point.y",T,Te,I);let P=f(T*T),M=f(P-gt),N=f(R*P-L),{isValid:m,value:v}=u(M,N);if(!m)throw new Error("bad point: invalid y coordinate");let S=(v&gt)===gt,w=(U&128)!==0;if(!g&&v===Te&&w)throw new Error("bad point: x=0 and x_0=1");return w!==S&&(v=f(-v)),d.fromAffine({x:v,y:T})}static fromHex(l,g=!1){return d.fromBytes(Dr(l),g)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(l=8,g=!0){return p.createCache(this,l),g||this.multiply(zi),this}assertValidity(){let l=this,{a:g,d:A}=i;if(l.is0())throw new Error("bad point: ZERO");let{X:L,Y:R,Z:D,T:U}=l,T=f(L*L),I=f(R*R),P=f(D*D),M=f(P*P),N=f(T*g),m=f(P*f(N+I)),v=f(M+f(A*f(T*I)));if(m!==v)throw new Error("bad point: equation left != right (1)");let S=f(L*R),w=f(D*U);if(S!==w)throw new Error("bad point: equation left != right (2)")}equals(l){y(l);let{X:g,Y:A,Z:L}=this,{X:R,Y:D,Z:U}=l,T=f(g*U),I=f(R*L),P=f(A*U),M=f(D*L);return T===I&&P===M}is0(){return this.equals(d.ZERO)}negate(){return new d(f(-this.X),this.Y,this.Z,f(-this.T))}double(){let{a:l}=i,{X:g,Y:A,Z:L}=this,R=f(g*g),D=f(A*A),U=f(zi*f(L*L)),T=f(l*R),I=g+A,P=f(f(I*I)-R-D),M=T+D,N=M-U,m=T-D,v=f(P*N),S=f(M*m),w=f(P*m),x=f(N*M);return new d(v,S,x,w)}add(l){y(l);let{a:g,d:A}=i,{X:L,Y:R,Z:D,T:U}=this,{X:T,Y:I,Z:P,T:M}=l,N=f(L*T),m=f(R*I),v=f(U*A*M),S=f(D*P),w=f((L+R)*(T+I)-N-m),x=S-v,B=S+v,_=f(m-g*N),E=f(w*x),C=f(B*_),O=f(w*_),k=f(x*B);return new d(E,C,k,O)}subtract(l){return y(l),this.add(l.negate())}multiply(l){if(!s.isValidNot0(l))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:g,f:A}=p.cached(this,l,L=>Xe(d,L));return Xe(d,[g,A])[0]}multiplyUnsafe(l){if(!s.isValid(l))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return l===Te?d.ZERO:this.is0()||l===gt?this:p.unsafe(this,l,g=>Xe(d,g))}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return p.unsafe(this,i.n).is0()}toAffine(l){let g=this,A=l,{X:L,Y:R,Z:D}=g,U=g.is0();A==null&&(A=U?Nm:o.inv(D));let T=f(L*A),I=f(R*A),P=o.mul(D,A);if(U)return{x:Te,y:gt};if(P!==gt)throw new Error("invZ was invalid");return{x:T,y:I}}clearCofactor(){return a===gt?this:this.multiplyUnsafe(a)}toBytes(){let{x:l,y:g}=this.toAffine(),A=o.toBytes(g);return A[A.length-1]|=l&gt?128:0,A}toHex(){return Tr(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let p=new Ur(d,s.BITS);return s.BITS>=8&&d.BASE.precompute(8),Object.freeze(d.prototype),Object.freeze(d),d}var Ro=class{static BASE;static ZERO;static Fp;static Fn;ep;constructor(t){this.ep=t}static fromBytes(t){Ui()}static fromHex(t){Ui()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(t){return this.ep.toAffine(t)}toHex(){return Tr(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(t){return this.assertSame(t),this.init(this.ep.add(t.ep))}subtract(t){return this.assertSame(t),this.init(this.ep.subtract(t.ep))}multiply(t){return this.init(this.ep.multiply(t))}multiplyUnsafe(t){return this.init(this.ep.multiplyUnsafe(t))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(t,r){return this.ep.precompute(t,r),this}};function Hu(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');let n=t,o=r;Dt(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=e,f=n.outputLen,u=2*a.BYTES;if(f!==void 0&&(qt(f,"hash.outputLen"),f!==u))throw new Error(`hash.outputLen must be ${u}, got ${f}`);let h=o.randomBytes===void 0?We:o.randomBytes,y=o.adjustScalarBytes===void 0?m=>m:o.adjustScalarBytes,d=o.domain===void 0?(m,v,S)=>{if(zt(S,"phflag"),v.length||S)throw new Error("Contexts/pre-hash are not supported");return m}:o.domain;function p(m){return c.create(Tt(m))}function b(m){let v=T.secretKey;V(m,T.secretKey,"secretKey");let S=V(n(m),2*v,"hashedSecretKey"),w=y(S.slice(0,v)),x=S.slice(v,2*v),B=p(w);return{head:w,prefix:x,scalar:B}}function l(m){let{head:v,prefix:S,scalar:w}=b(m),x=i.multiply(w),B=x.toBytes();return{head:v,prefix:S,scalar:w,point:x,pointBytes:B}}function g(m){return l(m).pointBytes}function A(m=Uint8Array.of(),...v){let S=mt(...v);return p(n(d(S,V(m,void 0,"context"),!!s)))}function L(m,v,S={}){m=V(m,void 0,"message"),s&&(m=s(m));let{prefix:w,scalar:x,pointBytes:B}=l(v),_=A(S.context,w,m),E=i.multiply(_).toBytes(),C=A(S.context,E,B,m),O=c.create(_+C*x);if(!c.isValid(O))throw new Error("sign failed: invalid s");let k=mt(E,c.toBytes(O));return V(k,T.signature,"result")}let R={zip215:o.zip215};function D(m,v,S,w=R){let{context:x}=w,B=w.zip215===void 0?!!R.zip215:w.zip215,_=T.signature;m=V(m,_,"signature"),v=V(v,void 0,"message"),S=V(S,T.publicKey,"publicKey"),B!==void 0&&zt(B,"zip215"),s&&(v=s(v));let E=_/2,C=m.subarray(0,E),O=Tt(m.subarray(E,_)),k,H,F;try{k=e.fromBytes(S,B),H=e.fromBytes(C,B),F=i.multiplyUnsafe(O)}catch{return!1}if(!B&&k.isSmallOrder())return!1;let Z=A(x,C,S,v);return H.add(k.multiplyUnsafe(Z)).subtract(F).clearCofactor().is0()}let U=a.BYTES,T={secretKey:U,publicKey:U,signature:2*U,seed:U};function I(m){return m=m===void 0?h(T.seed):m,V(m,T.seed,"seed")}function P(m){return je(m)&&m.length===T.secretKey}function M(m,v){try{return!!e.fromBytes(m,v===void 0?R.zip215:v)}catch{return!1}}let N={getExtendedPublicKey:l,randomSecretKey:I,isValidSecretKey:P,isValidPublicKey:M,toMontgomery(m){let{y:v}=e.fromBytes(m),S=T.publicKey,w=S===32;if(!w&&S!==57)throw new Error("only defined for 25519 and 448");let x=w?a.div(gt+v,gt-v):a.div(v-gt,v+gt);return a.toBytes(x)},toMontgomerySecret(m){let v=T.secretKey;V(m,v);let S=n(m.subarray(0,v));return y(S).subarray(0,v)}};return Object.freeze(T),Object.freeze(N),Object.freeze({keygen:Nr(I,g),getPublicKey:g,sign:L,verify:D,utils:N,Point:e,lengths:T})}function _n(e,t){if(qt(e),qt(t),t<0||t>4)throw new Error("invalid I2OSP length: "+t);if(e<0||e>2**(8*t)-1)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function Mm(e,t){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return r}function Km(e){if(!je(e)&&typeof e!="string")throw new Error("DST must be Uint8Array or ascii string");let t=typeof e=="string"?Co(e):e;if(t.length===0)throw new Error("DST must be non-empty");return t}function qi(e,t,r,n){V(e),qt(r),t=Km(t),t.length>255&&(t=n(mt(Co("H2C-OVERSIZE-DST-"),t)));let{outputLen:o,blockLen:s}=n,i=Math.ceil(r/o);if(r>65535||i>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=mt(t,_n(t.length,1)),c=new Uint8Array(s),f=_n(r,2),u=new Array(i),h=n(mt(c,e,f,_n(0,1),a));u[0]=n(mt(h,_n(1,1),a));for(let d=1;d<i;d++){let p=[Mm(h,u[d-1]),_n(d+1,1),a];u[d]=n(mt(...p))}return mt(...u).slice(0,r)}var Vu="HashToScalar-";var Ln=BigInt(0),kr=BigInt(1),Oo=BigInt(2);function Fm(e){return Dt(e,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function"}),Object.freeze({...e})}function zu(e){let t=Fm(e),{P:r,type:n,adjustScalarBytes:o,powPminus2:s,randomBytes:i}=t,a=n==="x25519";if(!a&&n!=="x448")throw new Error("invalid type");let c=i===void 0?We:i,f=a?255:448,u=a?32:56,h=BigInt(a?9:5),y=BigInt(a?121665:39081),d=a?Oo**BigInt(254):Oo**BigInt(447),p=a?BigInt(8)*Oo**BigInt(251)-kr:BigInt(4)*Oo**BigInt(445)-kr,b=d+p+kr,l=S=>it(S,r),g=A(h);function A(S){return Sn(l(S),u)}function L(S){let w=Ce(V(S,u,"uCoordinate"));return a&&(w[31]&=127),l(Tt(w))}function R(S){return Tt(o(Ce(V(S,u,"scalar"))))}function D(S,w){let x=M(L(w),R(S));if(x===Ln)throw new Error("invalid private or public key received");return A(x)}function U(S){return D(S,g)}let T=U,I=D;function P(S,w,x){let B=l(S*(w-x));return w=l(w-B),x=l(x+B),{x_2:w,x_3:x}}function M(S,w){de("u",S,Ln,r),de("scalar",w,d,b);let x=w,B=S,_=kr,E=Ln,C=S,O=kr,k=Ln;for(let F=BigInt(f-1);F>=Ln;F--){let Z=x>>F&kr;k^=Z,{x_2:_,x_3:C}=P(k,_,C),{x_2:E,x_3:O}=P(k,E,O),k=Z;let Y=_+E,X=l(Y*Y),$=_-E,ot=l($*$),se=X-ot,Ke=C+O,dr=C-O,tn=l(dr*Y),en=l(Ke*$),df=tn+en,pf=tn-en;C=l(df*df),O=l(B*l(pf*pf)),_=l(X*ot),E=l(se*(X+l(y*se)))}({x_2:_,x_3:C}=P(k,_,C)),{x_2:E,x_3:O}=P(k,E,O);let H=s(E);return l(_*H)}let N={secretKey:u,publicKey:u,seed:u},m=S=>(S=S===void 0?c(u):S,V(S,N.seed,"seed"),S),v={randomSecretKey:m};return Object.freeze(N),Object.freeze(v),Object.freeze({keygen:Nr(m,T),getSharedSecret:I,getPublicKey:T,scalarMult:D,scalarMultBase:U,utils:v,GuBytes:g.slice(),lengths:N})}var Hm=BigInt(0),me=BigInt(1),qu=BigInt(2),Vm=BigInt(3),zm=BigInt(5),qm=BigInt(8),Qe=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Gi={p:Qe,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:qm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Wu(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),o=BigInt(80),s=Qe,a=e*e%s*e%s,c=et(a,qu,s)*a%s,f=et(c,me,s)*e%s,u=et(f,zm,s)*f%s,h=et(u,t,s)*u%s,y=et(h,r,s)*h%s,d=et(y,n,s)*y%s,p=et(d,o,s)*d%s,b=et(p,o,s)*d%s,l=et(b,t,s)*u%s;return{pow_p_5_8:et(l,qu,s)*e%s,b2:a}}function Gu(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var $i=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Zi(e,t){let r=Qe,n=it(t*t*t,r),o=it(n*n*t,r),s=Wu(e*o).pow_p_5_8,i=it(e*n*s,r),a=it(t*i*i,r),c=i,f=it(i*$i,r),u=a===e,h=a===it(-e,r),y=a===it(-e*$i,r);return u&&(i=c),(h||y)&&(i=f),pe(i,r)&&(i=it(-i,r)),{isValid:u||h,value:i}}var Re=Fu(Gi,{uvRatio:Zi}),De=Re.Fp,Zu=Re.Fn;function $m(e){return Hu(Re,Ao,Object.assign({adjustScalarBytes:Gu,zip215:!0},e))}var Yu=$m({});var In=(()=>{let e=Qe;return zu({P:e,type:"x25519",powPminus2:t=>{let{pow_p_5_8:r,b2:n}=Wu(t);return it(et(r,Vm,e)*n,e)},adjustScalarBytes:Gu})})();var ji=$i,jm=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Wm=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Gm=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Zm=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),$u=e=>Zi(me,e),Ym=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Wi=e=>De.create(Tt(e)&Ym);function ju(e){let{d:t}=Gi,r=Qe,n=g=>De.create(g),o=n(ji*e*e),s=n((o+me)*Gm),i=BigInt(-1),a=n((i-t*o)*n(o+t)),{isValid:c,value:f}=Zi(s,a),u=n(f*e);pe(u,r)||(u=n(-u)),c||(f=u),c||(i=o);let h=n(i*(o-me)*Zm-a),y=f*f,d=n((f+f)*a),p=n(h*jm),b=n(me-y),l=n(me+y);return new Re(n(d*l),n(b*p),n(p*l),n(d*b))}var Oe=class e extends Ro{static BASE=new e(Re.BASE);static ZERO=new e(Re.ZERO);static Fp=De;static Fn=Zu;constructor(t){super(t)}static fromAffine(t){return new e(Re.fromAffine(t))}assertSame(t){if(!(t instanceof e))throw new Error("RistrettoPoint expected")}init(t){return new e(t)}static fromBytes(t){vt(t,32);let{a:r,d:n}=Gi,o=Qe,s=R=>De.create(R),i=Wi(t);if(!Eu(De.toBytes(i),t)||pe(i,o))throw new Error("invalid ristretto255 encoding 1");let a=s(i*i),c=s(me+r*a),f=s(me-r*a),u=s(c*c),h=s(f*f),y=s(r*n*u-h),{isValid:d,value:p}=$u(s(y*h)),b=s(p*f),l=s(p*b*y),g=s((i+i)*b);pe(g,o)&&(g=s(-g));let A=s(c*l),L=s(g*A);if(!d||pe(L,o)||A===Hm)throw new Error("invalid ristretto255 encoding 2");return new e(new Re(g,A,me,L))}static fromHex(t){return e.fromBytes(gn(t))}toBytes(){let{X:t,Y:r,Z:n,T:o}=this.ep,s=Qe,i=l=>De.create(l),a=i(i(n+r)*i(n-r)),c=i(t*r),f=i(c*c),{value:u}=$u(i(a*f)),h=i(u*a),y=i(u*c),d=i(h*y*o),p;if(pe(o*d,s)){let l=i(r*ji),g=i(t*ji);t=l,r=g,p=i(h*Wm)}else p=y;pe(t*d,s)&&(r=i(-r));let b=i((n-r)*p);return pe(b,s)&&(b=i(-b)),De.toBytes(b)}equals(t){this.assertSame(t);let{X:r,Y:n}=this.ep,{X:o,Y:s}=t.ep,i=f=>De.create(f),a=i(r*s)===i(n*o),c=i(n*s)===i(r*o);return a||c}is0(){return this.equals(e.ZERO)}};Object.freeze(Oe.BASE);Object.freeze(Oe.ZERO);Object.freeze(Oe.prototype);Object.freeze(Oe);var Xm=Object.freeze({Point:Oe,hashToCurve(e,t){let r=t?.DST===void 0?"ristretto255_XMD:SHA-512_R255MAP_RO_":t.DST,n=qi(e,r,64,Ao);return Xm.deriveToCurve(n)},hashToScalar(e,t={DST:Vu}){let r=qi(e,t.DST,64,Ao);return Zu.create(Tt(r))},deriveToCurve(e){vt(e,64);let t=Wi(e.subarray(0,32)),r=ju(t),n=Wi(e.subarray(32,64)),o=ju(n);return new Oe(r.add(o))}});var Cn=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},Po=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Nt={get(e=globalThis){let t=e.crypto;if(t?.subtle==null)throw new Po("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/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var Uo=32;var Yi,Qm=(async()=>{try{return await Nt.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function Jm(e,t,r){if(e.buffer instanceof ArrayBuffer){let n=await Nt.get().subtle.importKey("raw",e.buffer,{name:"Ed25519"},!1,["verify"]);return await Nt.get().subtle.verify({name:"Ed25519"},n,Ut(t),Ut(r instanceof Uint8Array?r:r.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function t0(e,t,r){return Yu.verify(t,r instanceof Uint8Array?r:r.subarray(),e)}async function Xu(e,t,r){return Yi==null&&(Yi=await Qm),Yi?Jm(e,t,r):t0(e,t,r)}function No(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}var ko=class{type="Ed25519";raw;constructor(t){this.raw=Xi(t,Uo)}toMultihash(){return Ft.digest(Be(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ft.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}verify(t,r,n){n?.signal?.throwIfAborted();let o=Xu(this.raw,r,t);return No(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Qi(e){return e=Xi(e,Uo),new ko(e)}function Xi(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new Q(`Key must be a Uint8Array of length ${t}, got ${e.length}`);return e}function Ju(e=0){return new Uint8Array(e)}var r0=Math.pow(2,7),n0=Math.pow(2,14),o0=Math.pow(2,21),Ji=Math.pow(2,28),ta=Math.pow(2,35),ea=Math.pow(2,42),ra=Math.pow(2,49),G=128,At=127;function lt(e){if(e<r0)return 1;if(e<n0)return 2;if(e<o0)return 3;if(e<Ji)return 4;if(e<ta)return 5;if(e<ea)return 6;if(e<ra)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Pe(e,t,r=0){switch(lt(e)){case 8:t[r++]=e&255|G,e/=128;case 7:t[r++]=e&255|G,e/=128;case 6:t[r++]=e&255|G,e/=128;case 5:t[r++]=e&255|G,e/=128;case 4:t[r++]=e&255|G,e>>>=7;case 3:t[r++]=e&255|G,e>>>=7;case 2:t[r++]=e&255|G,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function s0(e,t,r=0){switch(lt(e)){case 8:t.set(r++,e&255|G),e/=128;case 7:t.set(r++,e&255|G),e/=128;case 6:t.set(r++,e&255|G),e/=128;case 5:t.set(r++,e&255|G),e/=128;case 4:t.set(r++,e&255|G),e>>>=7;case 3:t.set(r++,e&255|G),e>>>=7;case 2:t.set(r++,e&255|G),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function Tn(e,t){let r=e[t],n=0;if(n+=r&At,r<G||(r=e[t+1],n+=(r&At)<<7,r<G)||(r=e[t+2],n+=(r&At)<<14,r<G)||(r=e[t+3],n+=(r&At)<<21,r<G)||(r=e[t+4],n+=(r&At)*Ji,r<G)||(r=e[t+5],n+=(r&At)*ta,r<G)||(r=e[t+6],n+=(r&At)*ea,r<G)||(r=e[t+7],n+=(r&At)*ra,r<G))return n;throw new RangeError("Could not decode varint")}function i0(e,t){let r=e.get(t),n=0;if(n+=r&At,r<G||(r=e.get(t+1),n+=(r&At)<<7,r<G)||(r=e.get(t+2),n+=(r&At)<<14,r<G)||(r=e.get(t+3),n+=(r&At)<<21,r<G)||(r=e.get(t+4),n+=(r&At)*Ji,r<G)||(r=e.get(t+5),n+=(r&At)*ta,r<G)||(r=e.get(t+6),n+=(r&At)*ea,r<G)||(r=e.get(t+7),n+=(r&At)*ra,r<G))return n;throw new RangeError("Could not decode varint")}function th(e,t,r=0){return t==null&&(t=Ju(lt(e))),t instanceof Uint8Array?Pe(e,t,r):s0(e,t,r)}function Je(e,t=0){return e instanceof Uint8Array?Tn(e,t):i0(e,t)}var oa=new Float32Array([-0]),Ue=new Uint8Array(oa.buffer);function eh(e,t,r){oa[0]=e,t[r]=Ue[0],t[r+1]=Ue[1],t[r+2]=Ue[2],t[r+3]=Ue[3]}function rh(e,t){return Ue[0]=e[t],Ue[1]=e[t+1],Ue[2]=e[t+2],Ue[3]=e[t+3],oa[0]}var sa=new Float64Array([-0]),Bt=new Uint8Array(sa.buffer);function nh(e,t,r){sa[0]=e,t[r]=Bt[0],t[r+1]=Bt[1],t[r+2]=Bt[2],t[r+3]=Bt[3],t[r+4]=Bt[4],t[r+5]=Bt[5],t[r+6]=Bt[6],t[r+7]=Bt[7]}function oh(e,t){return Bt[0]=e[t],Bt[1]=e[t+1],Bt[2]=e[t+2],Bt[3]=e[t+3],Bt[4]=e[t+4],Bt[5]=e[t+5],Bt[6]=e[t+6],Bt[7]=e[t+7],sa[0]}var a0=BigInt(Number.MAX_SAFE_INTEGER),c0=BigInt(Number.MIN_SAFE_INTEGER),Rt=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return tr;if(t<a0&&t>c0)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,o=t-(n<<32n);return r&&(n=~n|0n,o=~o|0n,++o>sh&&(o=0n,++n>sh&&(n=0n))),new e(Number(o),Number(n))}static fromNumber(t){if(t===0)return tr;let r=t<0;r&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new e(n,o)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):tr}},tr=new Rt(0,0);tr.toBigInt=function(){return 0n};tr.zzEncode=tr.zzDecode=function(){return this};tr.length=function(){return 1};var sh=4294967296n;function ih(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function ah(e,t,r){if(r-t<1)return"";let o,s=[],i=0,a;for(;t<r;)a=e[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function ia(e,t,r){let n=r,o,s;for(let i=0;i<e.length;++i)o=e.charCodeAt(i),o<128?t[r++]=o:o<2048?(t[r++]=o>>6|192,t[r++]=o&63|128):(o&64512)===55296&&((s=e.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[r++]=o>>18|240,t[r++]=o>>12&63|128,t[r++]=o>>6&63|128,t[r++]=o&63|128):(t[r++]=o>>12|224,t[r++]=o>>6&63|128,t[r++]=o&63|128);return r-n}function $t(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function Mo(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var aa=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,$t(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw $t(this,4);return Mo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw $t(this,4);return Mo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw $t(this,4);let t=rh(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw $t(this,4);let t=oh(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw $t(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return ah(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw $t(this,t);this.pos+=t}else do if(this.pos>=this.len)throw $t(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Rt(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw $t(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw $t(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw $t(this,8);let t=Mo(this.buf,this.pos+=4),r=Mo(this.buf,this.pos+=4);return new Rt(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Tn(this.buf,this.pos);return this.pos+=lt(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Dn(e){return new aa(e instanceof Uint8Array?e:e.subarray())}function Ko(e,t,r){let n=Dn(e);return t.decode(n,void 0,r)}function er(e=0){return new Uint8Array(e)}var ca={};tt(ca,{base10:()=>f0});var f0=Ee({prefix:"9",name:"base10",alphabet:"0123456789"});var fa={};tt(fa,{base16:()=>u0,base16upper:()=>h0});var u0=ct({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),h0=ct({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ua={};tt(ua,{base2:()=>l0});var l0=ct({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ha={};tt(ha,{base256emoji:()=>g0});var fh=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}"),d0=fh.reduce((e,t,r)=>(e[r]=t,e),[]),p0=fh.reduce((e,t,r)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return e[n]=r,e},[]);function m0(e){return e.reduce((t,r)=>(t+=d0[r],t),"")}function y0(e){let t=[];for(let r of e){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=p0[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);t.push(o)}return new Uint8Array(t)}var g0=br({prefix:"\u{1F680}",name:"base256emoji",encode:m0,decode:y0});var da={};tt(da,{base64:()=>b0,base64pad:()=>x0,base64url:()=>la,base64urlpad:()=>w0});var b0=ct({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),x0=ct({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),la=ct({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),w0=ct({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var pa={};tt(pa,{base8:()=>E0});var E0=ct({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ma={};tt(ma,{identity:()=>S0});var S0=br({prefix:"\0",name:"identity",encode:e=>xf(e),decode:e=>bf(e)});var A1=new TextEncoder,B1=new TextDecoder;var ba={};tt(ba,{sha256:()=>Rn,sha512:()=>_0});var B0=20;function ga({name:e,code:t,encode:r,minDigestLength:n,maxDigestLength:o}){return new ya(e,t,r,n,o)}var ya=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,r,n,o,s){this.name=t,this.code=r,this.encode=n,this.minDigestLength=o??B0,this.maxDigestLength=s}digest(t,r){if(r?.truncate!=null){if(r.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&r.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?uh(n,this.code,r?.truncate):n.then(o=>uh(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function uh(e,t,r){if(r!=null&&r!==e.byteLength){if(r>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,r)}return Kt(t,e)}function lh(e){return async t=>new Uint8Array(await crypto.subtle.digest(e,t))}var Rn=ga({name:"sha2-256",code:18,encode:lh("SHA-256")}),_0=ga({name:"sha2-512",code:19,encode:lh("SHA-512")});var Ot={...ma,...ua,...pa,...ca,...fa,...Hs,...Vs,...Fs,...da,...ha},k1={...ba,...js};function ph(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var dh=ph("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),xa=ph("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=er(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),L0={utf8:dh,"utf-8":dh,hex:Ot.base16,latin1:xa,ascii:xa,binary:xa,...Ot},mh=L0;function yh(e,t="utf8"){let r=mh[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}function wa(e){let t=e??8192,r=t>>>1,n,o=t;return function(i){if(i<1||i>r)return er(i);o+i>t&&(n=er(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var rr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Ea(){}var va=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},I0=wa();function C0(e){return globalThis.Buffer!=null?er(e):I0(e)}var Pn=class{len;head;tail;states;constructor(){this.len=0,this.head=new rr(Ea,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new rr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Aa((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Fo,10,Rt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=Rt.fromBigInt(t);return this._push(Fo,r.length(),r)}uint64Number(t){return this._push(Pe,lt(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=Rt.fromBigInt(t).zzEncode();return this._push(Fo,r.length(),r)}sint64Number(t){let r=Rt.fromNumber(t).zzEncode();return this._push(Fo,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Sa,1,t?1:0)}fixed32(t){return this._push(On,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=Rt.fromBigInt(t);return this._push(On,4,r.lo)._push(On,4,r.hi)}fixed64Number(t){let r=Rt.fromNumber(t);return this._push(On,4,r.lo)._push(On,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(eh,4,t)}double(t){return this._push(nh,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Sa,1,0):this.uint32(r)._push(D0,r,t)}string(t){let r=ih(t);return r!==0?this.uint32(r)._push(ia,r,t):this._push(Sa,1,0)}fork(){return this.states=new va(this),this.head=this.tail=new rr(Ea,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new rr(Ea,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=C0(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Sa(e,t,r){t[r]=e&255}function T0(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Aa=class extends rr{next;constructor(t,r){super(T0,t,r),this.next=void 0}};function Fo(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function On(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function D0(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Pn.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(R0,t,e),this},Pn.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(O0,t,e),this});function R0(e,t,r){t.set(e,r)}function O0(e,t,r){e.length<40?ia(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(yh(e),r)}function Ba(){return new Pn}function Ho(e,t){let r=Ba();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}function*Vo(e,t,r){let n=Dn(e);yield*t.stream(n,void 0,"$",r)}var zo={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function qo(e,t,r,n,o){return{name:e,type:t,encode:r,decode:n,stream:o}}function _a(e){function t(s){if(e[s.toString()]==null)throw new Error("Invalid enum value");return e[s]}let r=function(i,a){let c=t(i);a.int32(c)},n=function(i){let a=i.int32();return t(a)},o=function*(i){let a=i.int32();yield t(a)};return qo("enum",zo.VARINT,r,n,o)}function $o(e,t,r){return qo("message",zo.LENGTH_DELIMITED,e,t,r)}var at;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.secp256k1="secp256k1",e.ECDSA="ECDSA"})(at||(at={}));var La;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.secp256k1=2]="secp256k1",e[e.ECDSA=3]="ECDSA"})(La||(La={}));(function(e){e.codec=()=>_a(La)})(at||(at={}));var Jt;(function(e){let t;e.codec=()=>(t==null&&(t=$o((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),at.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=at.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:at.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function r(s){return Ho(s,e.codec())}e.encode=r;function n(s,i){return Ko(s,e.codec(),i)}e.decode=n;function o(s,i){return Vo(s,e.codec(),i)}e.stream=o})(Jt||(Jt={}));var Ia;(function(e){let t;e.codec=()=>(t==null&&(t=$o((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),at.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=at.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:at.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function r(s){return Ho(s,e.codec())}e.encode=r;function n(s,i){return Ko(s,e.codec(),i)}e.decode=n;function o(s,i){return Vo(s,e.codec(),i)}e.stream=o})(Ia||(Ia={}));var Nn={};tt(Nn,{MAX_RSA_KEY_SIZE:()=>Ca,generateRSAKeyPair:()=>Eh,jwkToJWKKeyPair:()=>Sh,jwkToPkcs1:()=>k0,jwkToPkix:()=>Oa,jwkToRSAPrivateKey:()=>ka,pkcs1MessageToJwk:()=>Da,pkcs1MessageToRSAPrivateKey:()=>Pa,pkcs1ToJwk:()=>N0,pkcs1ToRSAPrivateKey:()=>wh,pkixMessageToJwk:()=>Ra,pkixMessageToRSAPublicKey:()=>Na,pkixToJwk:()=>M0,pkixToRSAPublicKey:()=>Ua});var Mr=class{type="RSA";jwk;_raw;_multihash;constructor(t,r){this.jwk=t,this._multihash=r}get raw(){return this._raw==null&&(this._raw=Nn.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return dt.createV1(114,this._multihash)}toString(){return ft.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}verify(t,r,n){return xh(this.jwk,r,t,n)}},Un=class{type="RSA";jwk;_raw;publicKey;constructor(t,r){this.jwk=t,this.publicKey=r}get raw(){return this._raw==null&&(this._raw=Nn.jwkToPkcs1(this.jwk)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}sign(t,r){return bh(this.jwk,t,r)}};var Ca=8192,Ta=18,P0=1062,U0=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function N0(e){let t=ue(e);return Da(t)}function Da(e){return{n:st(e[1],"base64url"),e:st(e[2],"base64url"),d:st(e[3],"base64url"),p:st(e[4],"base64url"),q:st(e[5],"base64url"),dp:st(e[6],"base64url"),dq:st(e[7],"base64url"),qi:st(e[8],"base64url"),kty:"RSA"}}function k0(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 Q("JWK was missing components");return Ae([Ct(Uint8Array.from([0])),Ct(pt(e.n,"base64url")),Ct(pt(e.e,"base64url")),Ct(pt(e.d,"base64url")),Ct(pt(e.p,"base64url")),Ct(pt(e.q,"base64url")),Ct(pt(e.dp,"base64url")),Ct(pt(e.dq,"base64url")),Ct(pt(e.qi,"base64url"))]).subarray()}function M0(e){let t=ue(e,{offset:0});return Ra(t)}function Ra(e){let t=ue(e[1],{offset:0});return{kty:"RSA",n:st(t[0],"base64url"),e:st(t[1],"base64url")}}function Oa(e){if(e.n==null||e.e==null)throw new Q("JWK was missing components");return Ae([U0,xo(Ae([Ct(pt(e.n,"base64url")),Ct(pt(e.e,"base64url"))]))]).subarray()}function wh(e){let t=ue(e);return Pa(t)}function Pa(e){let t=Da(e);return ka(t)}function Ua(e,t){if(e.byteLength>=P0)throw new mr("Key size is too large");let r=ue(e,{offset:0});return Na(r,e,t)}function Na(e,t,r){let n=Ra(e);if(r==null){let o=Qt(Jt.encode({Type:at.RSA,Data:t}));r=Kt(Ta,o)}return new Mr(n,r)}function ka(e){if(Ah(e)>Ca)throw new Q("Key size is too large");let t=Sh(e),r=Qt(Jt.encode({Type:at.RSA,Data:Oa(t.publicKey)})),n=Kt(Ta,r);return new Un(t.privateKey,new Mr(t.publicKey,n))}async function Eh(e){if(e>Ca)throw new Q("Key size is too large");let t=await vh(e),r=Qt(Jt.encode({Type:at.RSA,Data:Oa(t.publicKey)})),n=Kt(Ta,r);return new Un(t.privateKey,new Mr(t.publicKey,n))}function Sh(e){if(e==null)throw new Q("Missing key parameter");return{privateKey:e,publicKey:{kty:e.kty,n:e.n,e:e.e}}}async function vh(e,t){let r=await Nt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);t?.signal?.throwIfAborted();let n=await K0(r,t);return{privateKey:n[0],publicKey:n[1]}}async function bh(e,t,r){let n=await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);r?.signal?.throwIfAborted();let o=await Nt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,Ut(t instanceof Uint8Array?t:t.subarray()));return r?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function xh(e,t,r,n){let o=await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await Nt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,Ut(t),Ut(r instanceof Uint8Array?r:r.subarray()));return n?.signal?.throwIfAborted(),s}async function K0(e,t){if(e.privateKey==null||e.publicKey==null)throw new Q("Private and public key are required");let r=await Promise.all([Nt.get().subtle.exportKey("jwk",e.privateKey),Nt.get().subtle.exportKey("jwk",e.publicKey)]);return t?.signal?.throwIfAborted(),r}function Ah(e){if(e.kty!=="RSA")throw new Q("invalid key type");if(e.n==null)throw new Q("invalid key modulus");return pt(e.n,"base64url").length*8}var jo=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(t,r){if(ze(t),vt(r,void 0,"key"),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 n=this.blockLen,o=new Uint8Array(n);o.set(r.length>n?t.create().update(r).digest():r);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),Ht(o)}update(t){return Cr(this),this.iHash.update(t),this}digestInto(t){Cr(this),wo(t,this),this.finished=!0;let r=t.subarray(0,this.outputLen);this.iHash.digestInto(r),this.oHash.update(r),this.oHash.digestInto(r),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:r,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},kn=(()=>{let e=((t,r,n)=>new jo(t,r).update(n).digest());return e.create=(t,r)=>new jo(t,r),e})();var Bh=(e,t)=>(e+(e>=0?t:-t)/_h)/t;function F0(e,t,r){de("scalar",e,te,r);let[[n,o],[s,i]]=t,a=Bh(i*e,r),c=Bh(-o*e,r),f=e-a*n-c*s,u=-a*o-c*i,h=f<te,y=u<te;h&&(f=-f),y&&(u=-u);let d=vn(Math.ceil(Rr(r)/2))+Ne;if(f<te||f>=d||u<te||u>=d)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:h,k1:f,k2neg:y,k2:u}}function Ka(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Ma(e,t){Dt(e);let r={};for(let n of Object.keys(t))r[n]=e[n]===void 0?t[n]:e[n];return zt(r.lowS,"lowS"),zt(r.prehash,"prehash"),r.format!==void 0&&Ka(r.format),r}var Fa=class extends Error{constructor(t=""){super(t)}},jt={Err:Fa,_tlv:{encode:(e,t)=>{let{Err:r}=jt;if(qt(e,"tag"),e<0||e>255)throw new r("tlv.encode: wrong tag");if(typeof t!="string")throw new TypeError('"data" expected string, got type='+typeof t);if(t.length&1)throw new r("tlv.encode: unpadded data");let n=t.length/2,o=En(n);if(o.length/2&128)throw new r("tlv.encode: long form length too big");let s=n>127?En(o.length/2|128):"";return En(e)+s+o+t},decode(e,t){let{Err:r}=jt;t=V(t,void 0,"DER data");let n=0;if(e<0||e>255)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new r("tlv.decode(long): indefinite length not supported");if(c>4)throw new r("tlv.decode(long): byte length is too big");let f=t.subarray(n,n+c);if(f.length!==c)throw new r("tlv.decode: length bytes not complete");if(f[0]===0)throw new r("tlv.decode(long): zero leftmost byte");for(let u of f)i=i<<8|u;if(n+=c,i<128)throw new r("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new r("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(e){let{Err:t}=jt;if(Lo(e),e<te)throw new t("integer: negative integers are not allowed");let r=En(e);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){let{Err:t}=jt;if(e.length<1)throw new t("invalid signature integer: empty");if(e[0]&128)throw new t("invalid signature integer: negative");if(e.length>1&&e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return Ge(e)}},toSig(e){let{Err:t,_int:r,_tlv:n}=jt,o=V(e,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:f,l:u}=n.decode(2,c);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(f)}},hexFromSig(e){let{_tlv:t,_int:r}=jt,n=t.encode(2,r.encode(e.r)),o=t.encode(2,r.encode(e.s)),s=n+o;return t.encode(48,s)}};Object.freeze(jt._tlv);Object.freeze(jt._int);Object.freeze(jt);var te=BigInt(0),Ne=BigInt(1),_h=BigInt(2),Wo=BigInt(3),H0=BigInt(4);function Lh(e,t={}){let r=Do("weierstrass",e,t),n=r.Fp,o=r.Fn,s=r.CURVE,{h:i,n:a}=s;Dt(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c,allowInfinityPoint:f}=t;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let u=Ch(n,o);function h(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function y(N,m,v){if(f&&m.is0())return Uint8Array.of(0);let{x:S,y:w}=m.toAffine(),x=n.toBytes(S);if(zt(v,"isCompressed"),v){h();let B=!n.isOdd(w);return mt(Ih(B),x)}else return mt(Uint8Array.of(4),x,n.toBytes(w))}function d(N){V(N,void 0,"Point");let{publicKey:m,publicKeyUncompressed:v}=u,S=N.length,w=N[0],x=N.subarray(1);if(f&&S===1&&w===0)return{x:n.ZERO,y:n.ZERO};if(S===m&&(w===2||w===3)){let B=n.fromBytes(x);if(!n.isValid(B))throw new Error("bad point: is not on curve, wrong x");let _=l(B),E;try{E=n.sqrt(_)}catch(k){let H=k instanceof Error?": "+k.message:"";throw new Error("bad point: is not on curve, sqrt error"+H)}h();let C=n.isOdd(E);return(w&1)===1!==C&&(E=n.neg(E)),{x:B,y:E}}else if(S===v&&w===4){let B=n.BYTES,_=n.fromBytes(x.subarray(0,B)),E=n.fromBytes(x.subarray(B,B*2));if(!g(_,E))throw new Error("bad point: is not on curve");return{x:_,y:E}}else throw new Error(`bad point: got length ${S}, expected compressed=${m} or uncompressed=${v}`)}let p=t.toBytes===void 0?y:t.toBytes,b=t.fromBytes===void 0?d:t.fromBytes;function l(N){let m=n.sqr(N),v=n.mul(m,N);return n.add(n.add(v,n.mul(N,s.a)),s.b)}function g(N,m){let v=n.sqr(m),S=l(N);return n.eql(v,S)}if(!g(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let A=n.mul(n.pow(s.a,Wo),H0),L=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(A,L)))throw new Error("bad curve params: a or b");function R(N,m,v=!1){if(!n.isValid(m)||v&&n.is0(m))throw new Error(`bad point coordinate ${N}`);return m}function D(N){if(!(N instanceof I))throw new Error("Weierstrass Point expected")}function U(N){if(!c||!c.basises)throw new Error("no endo");return F0(N,c.basises,o.ORDER)}function T(N,m,v,S,w){return v=new I(n.mul(v.X,N),v.Y,v.Z),m=Bn(S,m),v=Bn(w,v),m.add(v)}class I{static BASE=new I(s.Gx,s.Gy,n.ONE);static ZERO=new I(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(m,v,S){this.X=R("x",m),this.Y=R("y",v,!0),this.Z=R("z",S),Object.freeze(this)}static CURVE(){return s}static fromAffine(m){let{x:v,y:S}=m||{};if(!m||!n.isValid(v)||!n.isValid(S))throw new Error("invalid affine point");if(m instanceof I)throw new Error("projective point not allowed");return n.is0(v)&&n.is0(S)?I.ZERO:new I(v,S,n.ONE)}static fromBytes(m){let v=I.fromAffine(b(V(m,void 0,"point")));return v.assertValidity(),v}static fromHex(m){return I.fromBytes(Dr(m))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(m=8,v=!0){return M.createCache(this,m),v||this.multiply(Wo),this}assertValidity(){let m=this;if(m.is0()){if(t.allowInfinityPoint&&n.is0(m.X)&&n.eql(m.Y,n.ONE)&&n.is0(m.Z))return;throw new Error("bad point: ZERO")}let{x:v,y:S}=m.toAffine();if(!n.isValid(v)||!n.isValid(S))throw new Error("bad point: x or y not field elements");if(!g(v,S))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:m}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(m)}equals(m){D(m);let{X:v,Y:S,Z:w}=this,{X:x,Y:B,Z:_}=m,E=n.eql(n.mul(v,_),n.mul(x,w)),C=n.eql(n.mul(S,_),n.mul(B,w));return E&&C}negate(){return new I(this.X,n.neg(this.Y),this.Z)}double(){let{a:m,b:v}=s,S=n.mul(v,Wo),{X:w,Y:x,Z:B}=this,_=n.ZERO,E=n.ZERO,C=n.ZERO,O=n.mul(w,w),k=n.mul(x,x),H=n.mul(B,B),F=n.mul(w,x);return F=n.add(F,F),C=n.mul(w,B),C=n.add(C,C),_=n.mul(m,C),E=n.mul(S,H),E=n.add(_,E),_=n.sub(k,E),E=n.add(k,E),E=n.mul(_,E),_=n.mul(F,_),C=n.mul(S,C),H=n.mul(m,H),F=n.sub(O,H),F=n.mul(m,F),F=n.add(F,C),C=n.add(O,O),O=n.add(C,O),O=n.add(O,H),O=n.mul(O,F),E=n.add(E,O),H=n.mul(x,B),H=n.add(H,H),O=n.mul(H,F),_=n.sub(_,O),C=n.mul(H,k),C=n.add(C,C),C=n.add(C,C),new I(_,E,C)}add(m){D(m);let{X:v,Y:S,Z:w}=this,{X:x,Y:B,Z:_}=m,E=n.ZERO,C=n.ZERO,O=n.ZERO,k=s.a,H=n.mul(s.b,Wo),F=n.mul(v,x),Z=n.mul(S,B),Y=n.mul(w,_),X=n.add(v,S),$=n.add(x,B);X=n.mul(X,$),$=n.add(F,Z),X=n.sub(X,$),$=n.add(v,w);let ot=n.add(x,_);return $=n.mul($,ot),ot=n.add(F,Y),$=n.sub($,ot),ot=n.add(S,w),E=n.add(B,_),ot=n.mul(ot,E),E=n.add(Z,Y),ot=n.sub(ot,E),O=n.mul(k,$),E=n.mul(H,Y),O=n.add(E,O),E=n.sub(Z,O),O=n.add(Z,O),C=n.mul(E,O),Z=n.add(F,F),Z=n.add(Z,F),Y=n.mul(k,Y),$=n.mul(H,$),Z=n.add(Z,Y),Y=n.sub(F,Y),Y=n.mul(k,Y),$=n.add($,Y),F=n.mul(Z,$),C=n.add(C,F),F=n.mul(ot,$),E=n.mul(X,E),E=n.sub(E,F),F=n.mul(X,Z),O=n.mul(ot,O),O=n.add(O,F),new I(E,C,O)}subtract(m){return D(m),this.add(m.negate())}is0(){return this.equals(I.ZERO)}multiply(m){let{endo:v}=t;if(!o.isValidNot0(m))throw new RangeError("invalid scalar: out of range");let S,w,x=B=>M.cached(this,B,_=>Xe(I,_));if(v){let{k1neg:B,k1:_,k2neg:E,k2:C}=U(m),{p:O,f:k}=x(_),{p:H,f:F}=x(C);w=k.add(F),S=T(v.beta,O,H,B,E)}else{let{p:B,f:_}=x(m);S=B,w=_}return Xe(I,[S,w])[0]}multiplyUnsafe(m){let{endo:v}=t,S=this,w=m;if(!o.isValid(w))throw new RangeError("invalid scalar: out of range");if(w===te||S.is0())return I.ZERO;if(w===Ne)return S;if(M.hasCache(this))return this.multiply(w);if(v){let{k1neg:x,k1:B,k2neg:_,k2:E}=U(w),{p1:C,p2:O}=Ku(I,S,B,E);return T(v.beta,C,O,x,_)}else return M.unsafe(S,w)}toAffine(m){let v=this,S=m,{X:w,Y:x,Z:B}=v;if(n.eql(B,n.ONE))return{x:w,y:x};let _=v.is0();S==null&&(S=_?n.ONE:n.inv(B));let E=n.mul(w,S),C=n.mul(x,S),O=n.mul(B,S);if(_)return{x:n.ZERO,y:n.ZERO};if(!n.eql(O,n.ONE))throw new Error("invZ was invalid");return{x:E,y:C}}isTorsionFree(){let{isTorsionFree:m}=t;return i===Ne?!0:m?m(I,this):M.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:m}=t;return i===Ne?this:m?m(I,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===Ne?this.is0():this.clearCofactor().is0()}toBytes(m=!0){return zt(m,"isCompressed"),this.assertValidity(),p(I,this,m)}toHex(m=!0){return Tr(this.toBytes(m))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let P=o.BITS,M=new Ur(I,t.endo?Math.ceil(P/2):P);return P>=8&&I.BASE.precompute(8),Object.freeze(I.prototype),Object.freeze(I),I}function Ih(e){return Uint8Array.of(e?2:3)}function Ch(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function V0(e,t={}){let{Fn:r}=e,n=t.randomBytes===void 0?We:t.randomBytes,o=Object.assign(Ch(e.Fp,r),{seed:Math.max(Mi(r.ORDER),16)});function s(d){try{let p=r.fromBytes(d);return r.isValidNot0(p)}catch{return!1}}function i(d,p){let{publicKey:b,publicKeyUncompressed:l}=o;try{let g=d.length;return p===!0&&g!==b||p===!1&&g!==l?!1:!!e.fromBytes(d)}catch{return!1}}function a(d){return d=d===void 0?n(o.seed):d,Ki(V(d,o.seed,"seed"),r.ORDER)}function c(d,p=!0){return e.BASE.multiply(r.fromBytes(d)).toBytes(p)}function f(d){let{secretKey:p,publicKey:b,publicKeyUncompressed:l}=o,g=r._lengths;if(!je(d))return;let A=V(d,void 0,"key").length,L=A===b||A===l,R=A===p||!!g?.includes(A);if(!(L&&R))return L}function u(d,p,b=!0){if(f(d)===!0)throw new Error("first arg must be private key");if(f(p)===!1)throw new Error("second arg must be public key");let l=r.fromBytes(d);return e.fromBytes(p).multiply(l).toBytes(b)}let h={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},y=Nr(a,c);return Object.freeze(h),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:y,Point:e,utils:h,lengths:o})}function Th(e,t,r={}){let n=t;ze(n),Dt(r,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),r=Object.assign({},r);let o=r.randomBytes===void 0?We:r.randomBytes,s=r.hmac===void 0?(w,x)=>kn(n,w,x):r.hmac,{Fp:i,Fn:a}=e,{ORDER:c,BITS:f}=a,{keygen:u,getPublicKey:h,getSharedSecret:y,utils:d,lengths:p}=V0(e,r),b={prehash:!0,lowS:typeof r.lowS=="boolean"?r.lowS:!0,format:"compact",extraEntropy:!1},l=c*_h+Ne<i.ORDER;function g(w){let x=c>>Ne;return w>x}function A(w,x){if(!a.isValidNot0(x))throw new Error(`invalid signature ${w}: out of range 1..Point.Fn.ORDER`);return x}function L(){if(l)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function R(w,x){Ka(x);let B=p.signature,_=x==="compact"?B:x==="recovered"?B+1:void 0;return V(w,_)}class D{r;s;recovery;constructor(x,B,_){if(this.r=A("r",x),this.s=A("s",B),_!=null){if(L(),![0,1,2,3].includes(_))throw new Error("invalid recovery id");this.recovery=_}Object.freeze(this)}static fromBytes(x,B=b.format){R(x,B);let _;if(B==="der"){let{r:k,s:H}=jt.toSig(V(x));return new D(k,H)}B==="recovered"&&(_=x[0],B="compact",x=x.subarray(1));let E=p.signature/2,C=x.subarray(0,E),O=x.subarray(E,E*2);return new D(a.fromBytes(C),a.fromBytes(O),_)}static fromHex(x,B){return this.fromBytes(Dr(x),B)}assertRecovery(){let{recovery:x}=this;if(x==null)throw new Error("invalid recovery id: must be present");return x}addRecoveryBit(x){return new D(this.r,this.s,x)}recoverPublicKey(x){let{r:B,s:_}=this,E=this.assertRecovery(),C=E===2||E===3?B+c:B;if(!i.isValid(C))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let O=i.toBytes(C),k=e.fromBytes(mt(Ih((E&1)===0),O)),H=a.inv(C),F=T(V(x,void 0,"msgHash")),Z=a.create(-F*H),Y=a.create(_*H),X=e.BASE.multiplyUnsafe(Z).add(k.multiplyUnsafe(Y));if(X.is0())throw new Error("invalid recovery: point at infinify");return X.assertValidity(),X}hasHighS(){return g(this.s)}toBytes(x=b.format){if(Ka(x),x==="der")return Dr(jt.hexFromSig(this));let{r:B,s:_}=this,E=a.toBytes(B),C=a.toBytes(_);return x==="recovered"?(L(),mt(Uint8Array.of(this.assertRecovery()),E,C)):mt(E,C)}toHex(x){return Tr(this.toBytes(x))}}Object.freeze(D.prototype),Object.freeze(D);let U=r.bits2int===void 0?function(x){if(x.length>8192)throw new Error("input is too large");let B=Ge(x),_=x.length*8-f;return _>0?B>>BigInt(_):B}:r.bits2int,T=r.bits2int_modN===void 0?function(x){return a.create(U(x))}:r.bits2int_modN,I=vn(f);function P(w){return de("num < 2^"+f,w,te,I),a.toBytes(w)}function M(w,x){return V(w,void 0,"message"),x?V(n(w),void 0,"prehashed message"):w}function N(w,x,B){let{lowS:_,prehash:E,extraEntropy:C}=Ma(B,b);w=M(w,E);let O=T(w),k=a.fromBytes(x);if(!a.isValidNot0(k))throw new Error("invalid private key");let H=[P(k),P(O)];if(C!=null&&C!==!1){let X=C===!0?o(p.secretKey):C;H.push(V(X,void 0,"extraEntropy"))}let F=mt(...H),Z=O;function Y(X){let $=U(X);if(!a.isValidNot0($))return;let ot=a.inv($),se=e.BASE.multiply($).toAffine(),Ke=a.create(se.x);if(Ke===te)return;let dr=a.create(ot*a.create(Z+Ke*k));if(dr===te)return;let tn=(se.x===Ke?0:2)|Number(se.y&Ne),en=dr;return _&&g(dr)&&(en=a.neg(dr),tn^=1),new D(Ke,en,l?void 0:tn)}return{seed:F,k2sig:Y}}function m(w,x,B={}){let{seed:_,k2sig:E}=N(w,x,B);return Su(n.outputLen,a.BYTES,s)(_,E).toBytes(B.format)}function v(w,x,B,_={}){let{lowS:E,prehash:C,format:O}=Ma(_,b);if(B=V(B,void 0,"publicKey"),x=M(x,C),!je(w)){let k=w instanceof D?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+k)}R(w,O);try{let k=D.fromBytes(w,O),H=e.fromBytes(B);if(E&&k.hasHighS())return!1;let{r:F,s:Z}=k,Y=T(x),X=a.inv(Z),$=a.create(Y*X),ot=a.create(F*X),se=e.BASE.multiplyUnsafe($).add(H.multiplyUnsafe(ot));return se.is0()?!1:a.create(se.x)===F}catch{return!1}}function S(w,x,B={}){let{prehash:_}=Ma(B,b);return x=M(x,_),D.fromBytes(w,"recovered").recoverPublicKey(x).toBytes()}return Object.freeze({keygen:u,getPublicKey:h,getSharedSecret:y,utils:d,lengths:p,Point:e,sign:m,verify:v,recoverPublicKey:S,Signature:D,hash:n})}var Va={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},z0={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var Dh=BigInt(2);function q0(e){let t=Va.p,r=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=e*e*e%t,u=f*f*e%t,h=et(u,r,t)*u%t,y=et(h,r,t)*u%t,d=et(y,Dh,t)*f%t,p=et(d,o,t)*d%t,b=et(p,s,t)*p%t,l=et(b,a,t)*b%t,g=et(l,c,t)*l%t,A=et(g,a,t)*b%t,L=et(A,r,t)*u%t,R=et(L,i,t)*p%t,D=et(R,n,t)*f%t,U=et(D,Dh,t);if(!Ha.eql(Ha.sqr(U),e))throw new Error("Cannot find square root");return U}var Ha=Or(Va.p,{sqrt:q0}),$0=Lh(Va,{Fp:Ha,endo:z0}),Kr=Th($0,Qt);function Rh(e,t,r,n){let o=Rn.digest(r instanceof Uint8Array?r:r.subarray());if(No(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),Kr.verify(t,s,e,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new Cn(String(s))});try{return n?.signal?.throwIfAborted(),Kr.verify(t,o.digest,e,{prehash:!1,format:"der"})}catch(s){throw new Cn(String(s))}}var Go=class{type="secp256k1";raw;_key;constructor(t){this._key=Ph(t),this.raw=Oh(this._key)}toMultihash(){return Ft.digest(Be(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ft.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}verify(t,r,n){return Rh(this._key,r,t,n)}};function za(e){return new Go(e)}function Oh(e){return Kr.Point.fromBytes(e).toBytes()}function Ph(e){try{return Kr.Point.fromBytes(e),e}catch(t){throw new mr(String(t))}}function Mn(e,t){let{Type:r,Data:n}=Jt.decode(e),o=n??new Uint8Array;switch(r){case at.RSA:return Ua(o,t);case at.Ed25519:return Qi(o);case at.secp256k1:return za(o);case at.ECDSA:return Si(o);default:throw new Fe}}function Uh(e){let{Type:t,Data:r}=Jt.decode(e.digest),n=r??new Uint8Array;switch(t){case at.Ed25519:return Qi(n);case at.secp256k1:return za(n);case at.ECDSA:return Si(n);default:throw new Fe}}function Be(e){return Jt.encode({Type:at[e.type],Data:e.raw})}var Nh=Symbol.for("nodejs.util.inspect.custom"),j0=114,Kn=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Us]=!0;toString(){return this.string==null&&(this.string=ft.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return dt.createV1(j0,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return It(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return It(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[Nh](){return`PeerId(${this.toString()})`}},Fn=class extends Kn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Hn=class extends Kn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},Vn=class extends Kn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},W0=2336,zn=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Ft.digest(pt(this.url))}[Nh](){return`PeerId(${this.url})`}[Us]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return dt.createV1(W0,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=st(t)),t.toString()===this.toString())}};var G0=114,kh=2336;function Mh(e,t){let r;if(e.charAt(0)==="1"||e.charAt(0)==="Q")r=Er(ft.decode(`z${e}`));else{if(e.startsWith("k51qzi5uqu5")||e.startsWith("kzwfwjn5ji4")||e.startsWith("k2k4r8")||e.startsWith("bafz"))return Z0(dt.parse(e));if(t==null)throw new Q('Please pass a multibase decoder for strings that do not start with "1" or "Q"');r=Er(t.decode(e))}return Kh(r)}function qa(e){if(e.type==="Ed25519")return new Hn({multihash:e.toCID().multihash,publicKey:e});if(e.type==="secp256k1")return new Vn({multihash:e.toCID().multihash,publicKey:e});if(e.type==="RSA")return new Fn({multihash:e.toCID().multihash,publicKey:e});throw new Fe}function Kh(e){if(X0(e))return new Fn({multihash:e});if(Y0(e))try{let t=Uh(e);if(t.type==="Ed25519")return new Hn({multihash:e,publicKey:t});if(t.type==="secp256k1")return new Vn({multihash:e,publicKey:t})}catch{let r=st(e.digest);return new zn(new URL(r))}throw new co("Supplied PeerID Multihash is invalid")}function Z0(e){if(e?.multihash==null||e.version==null||e.version===1&&e.code!==G0&&e.code!==kh)throw new ao("Supplied PeerID CID is invalid");if(e.code===kh){let t=st(e.multihash.digest);return new zn(new URL(t))}return Kh(e.multihash)}function Y0(e){return e.code===Ft.code}function X0(e){return e.code===Rn.code}function Q0(e){let t=e.getComponents(),r={},n=0;return t[n]?.name==="ip6zone"&&(r.zone=`${t[n].value}`,n++),t[n]?.name==="ip4"||t[n]?.name==="ip6"||t[n]?.name==="dns"||t[n]?.name==="dns4"||t[n]?.name==="dns6"?(r.type=t[n].name,r.host=t[n].value,n++):t[n]?.name==="dnsaddr"&&(r.type=t[n].name,r.host=`_dnsaddr.${t[n].value}`,n++),(t[n]?.name==="tcp"||t[n]?.name==="udp")&&(r.protocol=t[n].name==="tcp"?"tcp":"udp",r.port=parseInt(`${t[n].value}`),n++),t[n]?.name==="ipcidr"&&(r.type==="ip4"?r.cidr=parseInt(`${t[n].value}`):r.type==="ip6"&&(r.cidr=`${t[n].value}`),n++),r.type==null||r.host==null?null:(t[n]?.name==="tls"&&t[n+1]?.name==="sni"&&(r.sni=t[n+1].value,n+=2),r)}function Fh(e){let t=Q0(e);if(t==null)throw new Q(`Multiaddr ${e} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return t}var Zo=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,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let h=this.readChar();if(h===void 0)return;let y=Number.parseInt(h,t);if(!Number.isNaN(y))return y});if(u===void 0)break;if(s*=t,s+=u,s>f||(i+=1,r!==void 0&&i>r))return}if(i!==0)return!n&&c&&i>1?void 0:s})}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 o=n*2;if(n<r.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return r[o]=i[0],r[o+1]=i[1],r[o+2]=i[2],r[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];r[o]=s>>8,r[o+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,o]=t(r);if(n===16)return r;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=t(s.subarray(0,i));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var J0=45,ty=15,Yo=new Zo;function Hh(e){if(!(e.length>ty))return Yo.new(e).parseWith(()=>Yo.readIPv4Addr())}function Vh(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>J0))return Yo.new(e).parseWith(()=>Yo.readIPv6Addr())}function Xo(e){return!!Hh(e)}function zh(e){return!!Vh(e)}function qh(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}function Qo(e=0){return new Uint8Array(e)}function qn(e,t){t==null&&(t=e.reduce((o,s)=>o+s.length,0));let r=Qo(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function jh(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var $h=jh("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),$a=jh("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=Qo(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),ey={utf8:$h,"utf-8":$h,hex:Ot.base16,latin1:$a,ascii:$a,binary:$a,...Ot},Jo=ey;function $n(e,t="utf8"){let r=Jo[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}function nr(e,t="utf8"){let r=Jo[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}var Et=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},ye=class extends Error{static name="ValidationError";name="ValidationError"},ts=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},es=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function Wa(e){return t=>nr(t,e)}function Ga(e){return t=>$n(t,e)}function Fr(e){return new DataView(e.buffer).getUint16(e.byteOffset).toString()}function or(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,typeof e=="string"?parseInt(e):e),new Uint8Array(t)}function Wh(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=$n(t[0],"base32"),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=or(n);return qn([r,o],r.length+o.length)}function Gh(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=Se.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 o=or(n);return qn([r,o],r.length+o.length)}function Za(e){let t=e.subarray(0,e.length-2),r=e.subarray(e.length-2),n=nr(t,"base32"),o=Fr(r);return`${n}:${o}`}var Ya=function(e){e=e.toString().trim();let t=new Uint8Array(4);return e.split(/\./g).forEach((r,n)=>{let o=parseInt(r,10);if(isNaN(o)||o<0||o>255)throw new Et("Invalid byte value in IP address");t[n]=o}),t},Zh=function(e){let t=0;e=e.toString().trim();let r=e.split(":",8),n;for(n=0;n<r.length;n++){let s=Xo(r[n]),i;s&&(i=Ya(r[n]),r[n]=nr(i.subarray(0,2),"base16")),i!=null&&++n<8&&r.splice(n,0,nr(i.subarray(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 s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let o=new Uint8Array(t+16);for(n=0;n<r.length;n++){r[n]===""&&(r[n]="0");let s=parseInt(r[n],16);if(isNaN(s)||s<0||s>65535)throw new Et("Invalid byte value in IP address");o[t++]=s>>8&255,o[t++]=s&255}return o},Yh=function(e){if(e.byteLength!==4)throw new Et("IPv4 address was incorrect length");let t=[];for(let r=0;r<e.byteLength;r++)t.push(e[r]);return t.join(".")},Xh=function(e){if(e.byteLength!==16)throw new Et("IPv6 address was incorrect length");let t=[];for(let n=0;n<e.byteLength;n+=2){let o=e[n],s=e[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;t.push(i)}let r=t.join(":");try{let n=new URL(`http://[${r}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new Et(`Invalid IPv6 address "${r}"`)}};function Qh(e){try{let t=new URL(`http://[${e}]`);return t.hostname.substring(1,t.hostname.length-1)}catch{throw new Et(`Invalid IPv6 address "${e}"`)}}var ja=Object.values(Ot).map(e=>e.decoder),ry=(function(){let e=ja[0].or(ja[1]);return ja.slice(2).forEach(t=>e=e.or(t)),e})();function Jh(e){return ry.decode(e)}function tl(e){return t=>e.encoder.encode(t)}function ny(e){if(parseInt(e).toString()!==e)throw new ye("Value must be an integer")}function oy(e){if(e<0)throw new ye("Value must be a positive integer, or zero")}function sy(e){return t=>{if(t>e)throw new ye(`Value must be smaller than or equal to ${e}`)}}function iy(...e){return t=>{for(let r of e)r(t)}}var jn=iy(ny,oy,sy(65535));var bt=-1,Xa=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(t){let r;if(typeof t=="string"?r=this.protocolsByName.get(t):r=this.protocolsByCode.get(t),r==null)throw new es(`Protocol ${t} was unknown`);return r}addProtocol(t){this.protocolsByCode.set(t.code,t),this.protocolsByName.set(t.name,t),t.aliases?.forEach(r=>{this.protocolsByName.set(r,t)})}removeProtocol(t){let r=this.protocolsByCode.get(t);r!=null&&(this.protocolsByCode.delete(r.code),this.protocolsByName.delete(r.name),r.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},be=new Xa,wy=[{code:4,name:"ip4",size:32,valueToBytes:Ya,bytesToValue:Yh,validate:e=>{if(!Xo(e))throw new ye(`Invalid IPv4 address "${e}"`)}},{code:6,name:"tcp",size:16,valueToBytes:or,bytesToValue:Fr,validate:jn},{code:273,name:"udp",size:16,valueToBytes:or,bytesToValue:Fr,validate:jn},{code:33,name:"dccp",size:16,valueToBytes:or,bytesToValue:Fr,validate:jn},{code:41,name:"ip6",size:128,valueToBytes:Zh,bytesToValue:Xh,stringToValue:Qh,validate:e=>{if(!zh(e))throw new ye(`Invalid IPv6 address "${e}"`)}},{code:42,name:"ip6zone",size:bt},{code:43,name:"ipcidr",size:8,bytesToValue:Wa("base10"),valueToBytes:Ga("base10")},{code:53,name:"dns",size:bt},{code:54,name:"dns4",size:bt},{code:55,name:"dns6",size:bt},{code:56,name:"dnsaddr",size:bt},{code:132,name:"sctp",size:16,valueToBytes:or,bytesToValue:Fr,validate:jn},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:bt,stringToValue:e=>decodeURIComponent(e),valueToString:e=>encodeURIComponent(e)},{code:421,name:"p2p",aliases:["ipfs"],size:bt,bytesToValue:Wa("base58btc"),valueToBytes:e=>e.startsWith("Q")||e.startsWith("1")?Ga("base58btc")(e):dt.parse(e).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Za,valueToBytes:Wh},{code:445,name:"onion3",size:296,bytesToValue:Za,valueToBytes:Gh},{code:446,name:"garlic64",size:bt},{code:447,name:"garlic32",size:bt},{code:448,name:"tls"},{code:449,name:"sni",size:bt},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:bt,bytesToValue:tl(la),valueToBytes:Jh},{code:480,name:"http"},{code:481,name:"http-path",size:bt,stringToValue:e=>`/${decodeURIComponent(e)}`,valueToString:e=>encodeURIComponent(e.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:bt}];wy.forEach(e=>{be.addProtocol(e)});function el(e){let t=[],r=0;for(;r<e.length;){let n=Je(e,r),o=be.getProtocol(n),s=lt(n),i=Ey(o,e,r+s),a=0;i>0&&o.size===bt&&(a=lt(i));let c=s+a+i,f={code:n,name:o.name,bytes:e.subarray(r,r+c)};if(i>0){let u=r+s+a,h=e.subarray(u,u+i);f.value=o.bytesToValue?.(h)??nr(h)}t.push(f),r+=c}return t}function rl(e){let t=0,r=[];for(let n of e){if(n.bytes==null){let o=be.getProtocol(n.code),s=lt(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??$n(n.value),a=i.byteLength,o.size===bt&&(c=lt(a)));let f=new Uint8Array(s+c+a),u=0;Pe(n.code,f,u),u+=s,i!=null&&(o.size===bt&&(Pe(a,f,u),u+=c),f.set(i,u)),n.bytes=f}r.push(n.bytes),t+=n.bytes.byteLength}return qn(r,t)}function nl(e){if(e.charAt(0)!=="/")throw new Et('String multiaddr must start with "/"');let t=[],r="protocol",n="",o="";for(let s=1;s<e.length;s++){let i=e.charAt(s);i!=="/"&&(r==="protocol"?o+=e.charAt(s):n+=e.charAt(s));let a=s===e.length-1;if(i==="/"||a){let c=be.getProtocol(o);if(r==="protocol"){if(c.size==null||c.size===0){t.push({code:c.code,name:c.name}),n="",o="",r="protocol";continue}else if(a)throw new Et(`Component ${o} was missing value`);r="value"}else if(r==="value"){let f={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new Et(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}t.push(f),n="",o="",r="protocol"}}}if(o!==""&&n!=="")throw new Et("Incomplete multiaddr");return t}function ol(e){return`/${e.flatMap(t=>{if(t.value==null)return t.name;let r=be.getProtocol(t.code);if(r==null)throw new Et(`Unknown protocol code ${t.code}`);return[t.name,r.valueToString?.(t.value)??t.value]}).join("/")}`}function Ey(e,t,r){return e.size==null||e.size===0?0:e.size>0?e.size/8:Je(t,r)}var Sy=Symbol.for("nodejs.util.inspect.custom"),mc=Symbol.for("@multiformats/multiaddr");function vy(e){if(e==null&&(e="/"),sl(e))return e.getComponents();if(e instanceof Uint8Array)return el(e);if(typeof e=="string")return e=e.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),e===""&&(e="/"),nl(e);if(Array.isArray(e))return e;throw new Et("Must be a string, Uint8Array, Component[], or another Multiaddr")}var pc=class e{[mc]=!0;#t;#e;#r;constructor(t="/",r={}){this.#t=vy(t),r.validate!==!1&&Ay(this)}get bytes(){return this.#r==null&&(this.#r=rl(this.#t)),this.#r}toString(){return this.#e==null&&(this.#e=ol(this.#t)),this.#e}toJSON(){return this.toString()}getComponents(){return[...this.#t.map(t=>({...t}))]}encapsulate(t){let r=new e(t);return new e([...this.#t,...r.getComponents()],{validate:!1})}decapsulate(t){let r=t.toString(),n=this.toString(),o=n.lastIndexOf(r);if(o<0)throw new ts(`Address ${this.toString()} does not contain subaddress: ${r}`);return new e(n.slice(0,o),{validate:!1})}decapsulateCode(t){let r;for(let n=this.#t.length-1;n>-1;n--)if(this.#t[n].code===t){r=n;break}return new e(this.#t.slice(0,r),{validate:!1})}equals(t){return qh(this.bytes,t.bytes)}[Sy](){return`Multiaddr(${this.toString()})`}};function Ay(e){e.getComponents().forEach(t=>{let r=be.getProtocol(t.code);t.value!=null&&r.validate?.(t.value)})}function sl(e){return!!e?.[mc]}var rt=e=>({match:t=>{let r=t[0];return r==null||r.code!==e||r.value!=null?!1:t.slice(1)}}),K=(e,t)=>({match:r=>{let n=r[0];return n?.code!==e||n.value==null||t!=null&&n.value!==t?!1:r.slice(1)}}),il=e=>({match:t=>e.match(t)===!1?t:!1}),z=e=>({match:t=>{let r=e.match(t);return r===!1?t:r}}),_t=(...e)=>({match:t=>{let r;for(let n of e){let o=n.match(t);o!==!1&&(r==null||o.length<r.length)&&(r=o)}return r??!1}}),W=(...e)=>({match:t=>{for(let r of e){let n=r.match(t);if(n===!1)return!1;t=n}return t}});function nt(...e){function t(o){if(o==null)return!1;let s=o.getComponents();for(let i of e){let a=i.match(s);if(a===!1)return!1;s=a}return s}function r(o){return t(o)!==!1}function n(o){let s=t(o);return s===!1?!1:s.length===0}return{matchers:e,matches:r,exactMatch:n}}var By=K(421),r6=nt(By),cs=K(54),fs=K(55),us=K(56),gc=K(53),n6=nt(cs,z(K(421))),o6=nt(fs,z(K(421))),s6=nt(us,z(K(421))),i6=nt(_t(gc,us,cs,fs),z(K(421))),al=W(K(4),z(K(43))),cl=W(z(K(42)),K(41),z(K(43))),bc=_t(al,cl),qr=_t(bc,gc,cs,fs,us),a6=nt(_t(bc,W(_t(gc,us,cs,fs),z(K(421))))),c6=nt(al),f6=nt(cl),u6=nt(bc),xc=W(qr,K(6)),Wn=W(qr,K(273)),h6=nt(W(xc,z(K(421)))),l6=nt(Wn),wc=W(Wn,rt(460),z(K(421))),hs=W(Wn,rt(461),z(K(421))),_y=_t(wc,hs),d6=nt(wc),p6=nt(hs),yc=_t(qr,xc,Wn,wc,hs),fl=_t(W(yc,rt(477),z(K(421)))),m6=nt(fl),ul=_t(W(yc,rt(478),z(K(421))),W(yc,rt(448),z(K(449)),rt(477),z(K(421)))),y6=nt(ul),hl=W(Wn,rt(280),z(K(466)),z(K(466)),z(K(421))),g6=nt(hl),ll=W(hs,rt(465),z(K(466)),z(K(466)),z(K(421))),ls=nt(ll),as=_t(fl,ul,W(xc,z(K(421))),W(_y,z(K(421))),W(qr,z(K(421))),hl,ll,K(421)),b6=nt(as),Ly=W(z(as),rt(290),il(rt(281)),z(K(421))),x6=nt(Ly),Iy=_t(W(as,rt(290),rt(281),z(K(421))),W(as,rt(281),z(K(421))),W(rt(281),z(K(421)))),w6=nt(Iy),Cy=W(qr,_t(W(K(6,"80")),W(K(6),rt(480)),rt(480)),z(K(481)),z(K(421))),E6=nt(Cy),Ty=W(qr,_t(W(K(6,"443")),W(K(6,"443"),rt(480)),W(K(6),rt(443)),W(K(6),rt(448),rt(480)),W(rt(448),rt(480)),rt(448),rt(443)),z(K(481)),z(K(421))),S6=nt(Ty),Dy=_t(W(K(777),z(K(421)))),v6=nt(Dy),Ry=_t(W(K(400),z(K(421)))),A6=nt(Ry);function ds(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var ps=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||(t-1&t)!==0)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}},$r=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new ps(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 ps(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 Ec=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function ms(e={}){return Oy(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 Oy(e,t){t=t??{};let r=t.onEnd,n=new $r,o,s,i,a=ds(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((l,g)=>{s=A=>{s=null,n.push(A);try{l(e(n))}catch(L){g(L)}return o}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=ds()})}},f=l=>s!=null?s(l):(n.push(l),o),u=l=>(n=new $r,s!=null?s({error:l}):(n.push({error:l}),o)),h=l=>{if(i)return o;if(t?.objectMode!==!0&&l?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:l})},y=l=>i?o:(i=!0,l!=null?u(l):f({done:!0})),d=()=>(n=new $r,y(),{done:!0}),p=l=>(y(l),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:d,throw:p,push:h,end:y,get readableLength(){return n.size},onEmpty:async l=>{let g=l?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let A,L;g!=null&&(A=new Promise((R,D)=>{L=()=>{D(new Ec)},g.addEventListener("abort",L)}));try{await Promise.race([a.promise,A])}finally{L!=null&&g!=null&&g?.removeEventListener("abort",L)}}},r==null)return o;let b=o;return o={[Symbol.asyncIterator](){return this},next(){return b.next()},throw(l){return b.throw(l),r!=null&&(r(l),r=void 0),{done:!0}},return(){return b.return(),r!=null&&(r(),r=void 0),{done:!0}},push:h,end(l){return b.end(l),r!=null&&(r(l),r=void 0),o},get readableLength(){return b.readableLength},onEmpty:l=>b.onEmpty(l)},o}var Sc=class e extends Error{name="TimeoutError";constructor(t,r){super(t,r),Error.captureStackTrace?.(this,e)}},dl=e=>e.reason??new DOMException("This operation was aborted.","AbortError");function vc(e,t){let{milliseconds:r,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=t,a,c,u=new Promise((h,y)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(i?.aborted){y(dl(i));return}if(i&&(c=()=>{y(dl(i))},i.addEventListener("abort",c,{once:!0})),e.then(h,y),r===Number.POSITIVE_INFINITY)return;let d=new Sc;a=s.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(p){y(p)}return}typeof e.cancel=="function"&&e.cancel(),o===!1?h():o instanceof Error?y(o):(d.message=o??`Promise timed out after ${r} milliseconds`,y(d))},r)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var Py=e=>{let t=e.addEventListener||e.on||e.addListener,r=e.removeEventListener||e.off||e.removeListener;if(!t||!r)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:r.bind(e)}};function Uy(e,t,r){let n,o=new Promise((s,i)=>{if(r={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!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:f,removeListener:u}=Py(e),h=async(...d)=>{let p=r.multiArgs?d:d[0];if(r.filter)try{if(!await r.filter(p))return}catch(b){n(),i(b);return}c.push(p),r.count===c.length&&(n(),s(c))},y=(...d)=>{n(),i(r.rejectionMultiArgs?d:d[0])};n=()=>{for(let d of a)u(d,h);for(let d of r.rejectionEvents)a.includes(d)||u(d,y)};for(let d of a)f(d,h);for(let d of r.rejectionEvents)a.includes(d)||f(d,y);r.signal&&r.signal.addEventListener("abort",()=>{y(r.signal.reason)},{once:!0}),r.resolveImmediately&&s(c)});if(o.cancel=n,typeof r.timeout=="number"){let s=vc(o,{milliseconds:r.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function ke(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=Uy(e,t,r),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var ir=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"},ys=class extends Error{static name="MaxEarlyStreamsError";name="MaxEarlyStreamsError"},gs=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function Ny(e){return e.reason}async function kt(e,t,r){if(t==null)return e;let n=r?.translateError??Ny;if(t.aborted)return e.catch(()=>{}),Promise.reject(n(t));let o;try{return await Promise.race([e,new Promise((s,i)=>{o=()=>{i(n(t))},t.addEventListener("abort",o)})])}finally{o!=null&&t.removeEventListener("abort",o)}}var ky=Math.pow(2,20)*4,ee=class extends gr{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(t){super(),this.status="open",this.log=t.log,this.direction=t.direction??"outbound",this.inactivityTimeout=t.inactivityTimeout??12e4,this.maxReadBufferLength=t.maxReadBufferLength??ky,this.maxWriteBufferLength=t.maxWriteBufferLength,this.maxMessageSize=t.maxMessageSize,this.readBuffer=new j,this.writeBuffer=new j,this.readStatus="readable",this.remoteReadStatus="readable",this.writeStatus="writable",this.remoteWriteStatus="writable",this.sendingData=!1,this.writableNeedsDrain=!1,this.timeline={open:Date.now()},this.processSendQueue=this.processSendQueue.bind(this);let r=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,queueMicrotask(()=>{try{this.processSendQueue()}catch(o){this.log.error("processSendQueue threw - %e",o)}})),this.onDrainPromise?.resolve()};this.addEventListener("drain",r);let n=o=>{this.onDrainPromise?.reject(o.error??new gs)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(t){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),kt(this.onDrainPromise.promise,t?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let t=ms(),r=s=>{t.push(s.data)};this.addEventListener("message",r);let n=s=>{t.end(s.error)};this.addEventListener("close",n);let o=()=>{t.end()};this.addEventListener("remoteCloseWrite",o);try{yield*t}finally{this.removeEventListener("message",r),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(t){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new we(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",t.byteLength),this.writeBuffer.append(t),this.processSendQueue()}abort(t){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",t),this.status="aborted",this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle")),this.writeStatus="closed",this.remoteWriteStatus="closed",this.readStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now();try{this.sendReset(t)}catch(r){this.log("failed to send reset to remote - %e",r)}this.dispatchEvent(new uo(t))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new we("Cannot pause a stream that is closing/closed");this.readStatus!=="paused"&&(this.readStatus="paused",this.sendPause())}resume(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new we("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new we(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.append(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new we(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.prepend(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(t){if(t.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(t),this.dispatchReadBuffer()}}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="message"&&this.readBuffer.byteLength>0&&queueMicrotask(()=>{this.dispatchReadBuffer()})}onRemoteReset(){this.log("remote reset"),this.status="reset",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.readBuffer.byteLength===0&&(this.readStatus="closed");let t=new io;this.dispatchEvent(new ho(t))}onTransportClosed(t){this.log("transport closed"),this.readStatus==="readable"&&this.readBuffer.byteLength===0&&(this.log("close readable end after transport closed and read buffer is empty"),this.readStatus="closed"),this.remoteReadStatus!=="closed"&&(this.remoteReadStatus="closed"),this.remoteWriteStatus!=="closed"&&(this.remoteWriteStatus="closed"),this.writeStatus!=="closed"&&(this.writeStatus="closed"),t!=null?this.abort(t):(this.status==="open"||this.status==="closing")&&(this.timeline.close=Date.now(),this.status="closed",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.dispatchEvent(new yr))}onRemoteCloseWrite(){this.remoteWriteStatus!=="closed"&&(this.log.trace("on remote close write"),this.remoteWriteStatus="closed",this.safeDispatchEvent("remoteCloseWrite"),this.writeStatus==="closed"&&this.onTransportClosed())}onRemoteCloseRead(){this.log.trace("on remote close read"),this.remoteReadStatus="closed",this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle"))}processSendQueue(){if(this.writableNeedsDrain)return this.log.trace("not processing send queue as drain is required"),this.checkWriteBufferLength(),!1;if(this.writeBuffer.byteLength===0)return this.log.trace("not processing send queue as no bytes to send"),!0;if(this.sendingData)return this.log.trace("not processing send queue as already sending data"),!0;if(this.writeStatus!=="writable"&&this.writeStatus!=="closing")return this.log.trace("not processing send queue as stream is %s",this.writeStatus),!1;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let t=!0,r=this.writeBuffer.byteLength,n=0;for(;this.writeBuffer.byteLength>0;){let o=Math.min(this.maxMessageSize??this.writeBuffer.byteLength,this.writeBuffer.byteLength);if(o===0){t=!1;break}let s=this.writeBuffer.sublist(0,o),i=new j(s);this.writeBuffer.consume(s.byteLength);let a=this.sendData(s);if(t=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!t)break}return t||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,r,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),t}finally{this.sendingData=!1}}dispatchReadBuffer(){try{if(this.listenerCount("message")===0){this.log.trace("not dispatching pause buffer as there are no listeners for the message event");return}if(this.readBuffer.byteLength===0){this.log.trace("not dispatching pause buffer as there is no data to dispatch");return}if(this.readStatus==="paused"){this.log.trace("not dispatching pause buffer we are paused");return}if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("dropping %d bytes because the readable end is %s",this.readBuffer.byteLength,this.readStatus),this.readBuffer.consume(this.readBuffer.byteLength);return}let t=this.readBuffer.sublist();this.readBuffer.consume(t.byteLength),this.dispatchEvent(new fo(t))}finally{this.readBuffer.byteLength===0&&this.remoteWriteStatus==="closed"&&(this.log("close readable end after dispatching read buffer and remote writable end is closed"),this.readStatus="closed"),this.checkReadBufferLength()}}checkReadBufferLength(){this.readBuffer.byteLength>this.maxReadBufferLength&&this.abort(new rn(`Read buffer length of ${this.readBuffer.byteLength} exceeded limit of ${this.maxReadBufferLength}, read status is ${this.readStatus}`))}checkWriteBufferLength(){this.maxWriteBufferLength!=null&&this.writeBuffer.byteLength>this.maxWriteBufferLength&&this.abort(new rn(`Write buffer length of ${this.writeBuffer.byteLength} exceeded limit of ${this.maxWriteBufferLength}, write status is ${this.writeStatus}`))}onMuxerNeedsDrain(){this.writableNeedsDrain=!0}onMuxerDrain(){this.safeDispatchEvent("drain")}};var bs=class extends ee{remoteAddr;metricPrefix;metrics;constructor(t){super(t),this.metricPrefix=t.metricPrefix??"",this.metrics=t.metrics,this.remoteAddr=t.remoteAddr,this.addEventListener("close",r=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),r.error!=null?r.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):r.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(t){this.status==="open"&&(this.status="closing",this.writeStatus="closing",this.remoteWriteStatus="closing",this.remoteReadStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"drain",{...t,rejectionEvents:["close"]})),await this.sendClose(t),this.onTransportClosed())}};function pl(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}var xs=class extends gr{streams;protocol;status;log;maConn;streamOptions;earlyStreams;maxEarlyStreams;metrics;constructor(t,r){super(),this.maConn=t,this.protocol=r.protocol,this.streams=[],this.earlyStreams=[],this.status="open",this.log=t.log.newScope(r.name),this.streamOptions=r.streamOptions,this.maxEarlyStreams=r.maxEarlyStreams??10,this.metrics=r.metrics;let n=i=>{try{this.onData(i.data)}catch(a){this.abort(a),this.maConn.abort(a)}};this.maConn.addEventListener("message",n);let o=()=>{this.log("underlying stream drained, signal %d streams to continue writing",this.streams.length),this.streams.forEach(i=>{i.onMuxerDrain()})};this.maConn.addEventListener("drain",o);let s=()=>{this.log("underlying stream closed with status %s and %d streams",this.status,this.streams.length),this.onTransportClosed()};this.maConn.addEventListener("close",s)}send(t){let r=this.maConn.send(t);return r===!1&&(this.log("underlying stream saturated, signal %d streams to pause writing",this.streams.length),this.streams.forEach(n=>{n.onMuxerNeedsDrain()})),r}async close(t){this.status==="closed"||this.status==="closing"||(this.status="closing",await kt(Promise.all([...this.streams].map(async r=>{await r.close(t)})),t?.signal),this.status="closed")}abort(t){this.status!=="closed"&&(this.status="closing",[...this.streams].forEach(r=>{r.abort(t)}),this.status="closed")}onTransportClosed(t){this.status="closing";try{[...this.streams].forEach(r=>{r.onTransportClosed(t)})}catch(r){this.abort(r)}this.status="closed"}async createStream(t){if(this.status!=="open")throw new so;let r=this.onCreateStream({...this.streamOptions,...t});return pl(r)&&(r=await r),this.streams.push(r),this.cleanUpStream(r),r}onRemoteStream(t){if(this.streams.push(t),this.cleanUpStream(t),this.listenerCount("stream")===0){this.earlyStreams.push(t),this.earlyStreams.length>this.maxEarlyStreams&&this.abort(new ys(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));return}this.safeDispatchEvent("stream",{detail:t})}cleanUpStream(t){let r=n=>{let o=this.streams.findIndex(s=>s===t);o!==-1&&this.streams.splice(o,1),n.error!=null?n.local?this.metrics?.increment({[`${t.direction}_stream_reset`]:!0}):this.metrics?.increment({[`${t.direction}_stream_abort`]:!0}):this.metrics?.increment({[`${t.direction}_stream_end`]:!0})};t.addEventListener("close",r),this.metrics?.increment({[`${t.direction}_stream`]:!0})}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="stream"&&this.earlyStreams.length>0&&queueMicrotask(()=>{this.earlyStreams.forEach(r=>{this.safeDispatchEvent("stream",{detail:r})}),this.earlyStreams=[]})}};var ws=class extends ee{id;protocol;constructor(t){super(t),this.id=t.id,this.protocol=t.protocol??""}async close(t){this.writeStatus==="closing"||this.writeStatus==="closed"||(this.writeStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData),await ke(this,"drain",{...t,rejectionEvents:["close"]}),this.log("write queue drained, closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData)),await this.sendCloseWrite(t),this.writeStatus="closed",this.log("closed writable end gracefully"),this.remoteWriteStatus==="closed"&&this.onTransportClosed())}async closeRead(t){this.readStatus==="closing"||this.readStatus==="closed"||(this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.readStatus="closing",await this.sendCloseRead(t),this.readStatus="closed",this.log("closed readable end gracefully"))}};var My=4194304,Es=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Gn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Bc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},_c=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Ky(e){return typeof e?.closeRead=="function"}function Fy(e){return typeof e?.close=="function"}function Ac(e){return Ky(e)?e.remoteWriteStatus!=="writable"&&e.readBufferLength===0:Fy(e)?e.status!=="open":!1}function Hy(e){return e?.addEventListener!=null&&e?.removeEventListener!=null&&e?.send!=null&&e?.push!=null&&e?.log!=null}function Vy(e,t){let r=t?.maxBufferSize??My,n=new j,o,s=!1;if(!Hy(e))throw new Q("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>r){let h=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${h} > ${r}`))}o?.resolve()};e.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};e.addEventListener("close",a);let c=()=>{o?.resolve()};e.addEventListener("remoteCloseWrite",c);let f={readBuffer:n,async read(u){if(s===!0)throw new Es("Stream was unwrapped");if(Ac(e)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw e.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new ir(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let h=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=h){o.resolve();break}if(await kt(o.promise,u?.signal),Ac(e)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let y=u?.bytes??n.byteLength;if(n.byteLength<y){if(Ac(e))throw e.log.error("closed while reading %d/%d bytes",n.byteLength,y),new ir(`Unexpected EOF - stream closed while reading ${n.byteLength}/${y} bytes`);return f.read(u)}let d=n.sublist(0,y);return n.consume(y),d},async write(u,h){if(s===!0)throw new Es("Stream was unwrapped");e.send(u)||await ke(e,"drain",{signal:h?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,e.removeEventListener("message",i),e.removeEventListener("close",a),e.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(e.log("stream unwrapped with %d unread bytes",n.byteLength),e.unshift(n))),e}};return f}function Lc(e,t={}){let r=Vy(e,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=lt(t.maxDataLength));let n=t?.lengthDecoder??Je,o=t?.lengthEncoder??th;return{async read(i){let a=-1,c=new j;for(;;){let u=await r.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Gn("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new _c(`Message length length too long - ${c.byteLength} > ${t.maxLengthLength}`);if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new Bc(`Message length too long - ${a} > ${t.maxDataLength}`);let f=await r.read({...i,bytes:a});if(f==null)throw e.log.error("tried to read %d bytes but the stream closed",a),new ir(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(f.byteLength!==a)throw e.log.error("read %d/%d bytes before the stream closed",f.byteLength,a),new ir(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await r.write(new j(o(i.byteLength),i),a)},async writeV(i,a){let c=new j(...i.flatMap(f=>[o(f.byteLength),f]));await r.write(c,a)},unwrap(){return r.unwrap()}}}var zy=1024*1024*4,qy=1024*1024*4,Ss=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(t={}){this.buffer=new j,this.maxBufferSize=t.maxBufferSize??zy,this.maxDataLength=t.maxDataLength??qy,this.lengthDecoder=t.lengthDecoder??Je,this.encodingLength=t.encodingLength??lt}*decode(t){if(this.buffer.append(t),this.buffer.byteLength>this.maxBufferSize)throw new Q(`Buffer length limit exceeded - ${this.buffer.byteLength}/${this.maxBufferSize}`);for(;;){let r;try{r=this.lengthDecoder(this.buffer)}catch(s){if(s instanceof RangeError)break;throw s}if(r<0||r>this.maxDataLength)throw new Gn("Invalid message length");let n=this.encodingLength(r),o=n+r;if(this.buffer.byteLength>=o){let s=this.buffer.sublist(n,o);this.buffer.consume(o),s.byteLength>0&&(yield s)}else break}}};function re(e=0){return new Uint8Array(e)}function Mt(e=0){return new Uint8Array(e)}var jr=!!globalThis.process?.env?.DUMP_SESSION_KEYS,Ic=16;function $y(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function vs(e){if(typeof e!="boolean")throw new TypeError(`boolean expected, not ${e}`)}function Wr(e){if(typeof e!="number")throw new TypeError("number expected, got "+typeof e);if(!Number.isSafeInteger(e)||e<0)throw new RangeError("positive integer expected, got "+e)}function yt(e,t,r=""){let n=$y(e),o=e?.length,s=t!==void 0;if(!n||s&&o!==t){let i=r&&`"${r}" `,a=s?` of length ${t}`:"",c=n?`length=${o}`:`type=${typeof e}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return e}function Cc(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 ml(e,t,r=!1){yt(e,void 0,"output");let n=t.outputLen;if(e.length<n)throw new RangeError("digestInto() expects output buffer of length at least "+n);if(r&&!Gr(e))throw new Error("invalid output, must be aligned")}function ne(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Wt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function jy(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var ar=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,Wy=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;var Gy=e=>{for(let t=0;t<e.length;t++)e[t]=Wy(e[t]);return e},xe=ar?e=>e:Gy;function yl(e,t){if(t==null||typeof t!="object")throw new Error("options must be defined");return Object.assign(e,t)}function gl(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function bl(e,t,r){let n=t,o=r||(()=>[]),s=(a,c)=>n(c,...o(a)).update(a).digest(),i=n(new Uint8Array(e),...o(new Uint8Array(0)));return s.outputLen=i.outputLen,s.blockLen=i.blockLen,s.create=(a,...c)=>n(a,...c),s}var xl=(e,t)=>{function r(n,...o){if(yt(n,void 0,"key"),e.nonceLength!==void 0){let u=o[0];yt(u,e.varSizeNonce?void 0:e.nonceLength,"nonce")}let s=e.tagLength;s&&o[1]!==void 0&&yt(o[1],void 0,"AAD");let i=t(n,...o),a=(u,h)=>{if(h!==void 0){if(u!==2)throw new Error("cipher output not supported");yt(h,void 0,"output")}},c=!1;return{encrypt(u,h){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,yt(u),a(i.encrypt.length,h),i.encrypt(u,h)},decrypt(u,h){if(yt(u),s&&u.length<s)throw new Error('"ciphertext" expected length bigger than tagLength='+s);return a(i.decrypt.length,h),i.decrypt(u,h)}}}return Object.assign(r,e),r};function Zn(e,t,r=!0){if(t===void 0)return new Uint8Array(e);if(yt(t,void 0,"output"),t.length!==e)throw new Error('"output" expected Uint8Array of length '+e+", got: "+t.length);if(r&&!Gr(t))throw new Error("invalid output, must be aligned");return t}function wl(e,t,r){Wr(e),Wr(t),vs(r);let n=new Uint8Array(16),o=jy(n);return o.setBigUint64(0,BigInt(t),r),o.setBigUint64(8,BigInt(e),r),n}function Gr(e){return e.byteOffset%4===0}function Zr(e){return Uint8Array.from(yt(e))}var Sl=e=>Uint8Array.from(e.split(""),t=>t.charCodeAt(0)),Zy=xe(ne(Sl("expand 16-byte k"))),Yy=xe(ne(Sl("expand 32-byte k")));function q(e,t){return e<<t|e>>>32-t}var Yn=64,Xy=16,Tc=2**32-1,El=Uint32Array.of();function Qy(e,t,r,n,o,s,i,a){let c=o.length,f=new Uint8Array(Yn),u=ne(f),h=ar&&Gr(o)&&Gr(s),y=h?ne(o):El,d=h?ne(s):El;if(!ar){for(let p=0;p<c;i++){if(e(t,r,n,u,i,a),xe(u),i>=Tc)throw new Error("arx: counter overflow");let b=Math.min(Yn,c-p);for(let l=0,g;l<b;l++)g=p+l,s[g]=o[g]^f[l];p+=b}return}for(let p=0;p<c;i++){if(e(t,r,n,u,i,a),i>=Tc)throw new Error("arx: counter overflow");let b=Math.min(Yn,c-p);if(h&&b===Yn){let l=p/4;if(p%4!==0)throw new Error("arx: invalid block position");for(let g=0,A;g<Xy;g++)A=l+g,d[A]=y[A]^u[g];p+=Yn;continue}for(let l=0,g;l<b;l++)g=p+l,s[g]=o[g]^f[l];p+=b}}function vl(e,t){let{allowShortKeys:r,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=yl({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!="function")throw new Error("core must be a function");return Wr(o),Wr(i),vs(s),vs(r),(a,c,f,u,h=0)=>{yt(a,void 0,"key"),yt(c,void 0,"nonce"),yt(f,void 0,"data");let y=f.length;if(u=Zn(y,u,!1),Wr(h),h<0||h>=Tc)throw new Error("arx: counter overflow");let d=[],p=a.length,b,l;if(p===32)d.push(b=Zr(a)),l=Yy;else if(p===16&&r)b=new Uint8Array(32),b.set(a),b.set(a,16),l=Zy,d.push(b);else throw yt(a,32,"arx key"),new Error("invalid key size");(!ar||!Gr(c))&&d.push(c=Zr(c));let g=ne(b);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let R=c.subarray(0,16);if(ar)n(l,g,ne(R),g);else{let D=xe(Uint32Array.from(l));n(D,g,ne(R),g),Wt(D),xe(g)}c=c.subarray(16)}else ar||xe(g);let A=16-o;if(A!==c.length)throw new Error(`arx: nonce must be ${A} or 16 bytes`);if(A!==12){let R=new Uint8Array(12);R.set(c,s?0:12-c.length),c=R,d.push(c)}let L=xe(ne(c));try{return Qy(e,l,g,L,f,u,h,i),u}finally{Wt(...d)}}}function St(e,t){return e[t++]&255|(e[t++]&255)<<8}var Dc=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(t){t=Zr(yt(t,32,"key"));let r=St(t,0),n=St(t,2),o=St(t,4),s=St(t,6),i=St(t,8),a=St(t,10),c=St(t,12),f=St(t,14);this.r[0]=r&8191,this.r[1]=(r>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|f<<8)&8191,this.r[9]=f>>>5&127;for(let u=0;u<8;u++)this.pad[u]=St(t,16+2*u)}process(t,r,n=!1){let o=n?0:2048,{h:s,r:i}=this,a=i[0],c=i[1],f=i[2],u=i[3],h=i[4],y=i[5],d=i[6],p=i[7],b=i[8],l=i[9],g=St(t,r+0),A=St(t,r+2),L=St(t,r+4),R=St(t,r+6),D=St(t,r+8),U=St(t,r+10),T=St(t,r+12),I=St(t,r+14),P=s[0]+(g&8191),M=s[1]+((g>>>13|A<<3)&8191),N=s[2]+((A>>>10|L<<6)&8191),m=s[3]+((L>>>7|R<<9)&8191),v=s[4]+((R>>>4|D<<12)&8191),S=s[5]+(D>>>1&8191),w=s[6]+((D>>>14|U<<2)&8191),x=s[7]+((U>>>11|T<<5)&8191),B=s[8]+((T>>>8|I<<8)&8191),_=s[9]+(I>>>5|o),E=0,C=E+P*a+M*(5*l)+N*(5*b)+m*(5*p)+v*(5*d);E=C>>>13,C&=8191,C+=S*(5*y)+w*(5*h)+x*(5*u)+B*(5*f)+_*(5*c),E+=C>>>13,C&=8191;let O=E+P*c+M*a+N*(5*l)+m*(5*b)+v*(5*p);E=O>>>13,O&=8191,O+=S*(5*d)+w*(5*y)+x*(5*h)+B*(5*u)+_*(5*f),E+=O>>>13,O&=8191;let k=E+P*f+M*c+N*a+m*(5*l)+v*(5*b);E=k>>>13,k&=8191,k+=S*(5*p)+w*(5*d)+x*(5*y)+B*(5*h)+_*(5*u),E+=k>>>13,k&=8191;let H=E+P*u+M*f+N*c+m*a+v*(5*l);E=H>>>13,H&=8191,H+=S*(5*b)+w*(5*p)+x*(5*d)+B*(5*y)+_*(5*h),E+=H>>>13,H&=8191;let F=E+P*h+M*u+N*f+m*c+v*a;E=F>>>13,F&=8191,F+=S*(5*l)+w*(5*b)+x*(5*p)+B*(5*d)+_*(5*y),E+=F>>>13,F&=8191;let Z=E+P*y+M*h+N*u+m*f+v*c;E=Z>>>13,Z&=8191,Z+=S*a+w*(5*l)+x*(5*b)+B*(5*p)+_*(5*d),E+=Z>>>13,Z&=8191;let Y=E+P*d+M*y+N*h+m*u+v*f;E=Y>>>13,Y&=8191,Y+=S*c+w*a+x*(5*l)+B*(5*b)+_*(5*p),E+=Y>>>13,Y&=8191;let X=E+P*p+M*d+N*y+m*h+v*u;E=X>>>13,X&=8191,X+=S*f+w*c+x*a+B*(5*l)+_*(5*b),E+=X>>>13,X&=8191;let $=E+P*b+M*p+N*d+m*y+v*h;E=$>>>13,$&=8191,$+=S*u+w*f+x*c+B*a+_*(5*l),E+=$>>>13,$&=8191;let ot=E+P*l+M*b+N*p+m*d+v*y;E=ot>>>13,ot&=8191,ot+=S*h+w*u+x*f+B*c+_*a,E+=ot>>>13,ot&=8191,E=(E<<2)+E|0,E=E+C|0,C=E&8191,E=E>>>13,O+=E,s[0]=C,s[1]=O,s[2]=k,s[3]=H,s[4]=F,s[5]=Z,s[6]=Y,s[7]=X,s[8]=$,s[9]=ot}finalize(){let{h:t,pad:r}=this,n=new Uint16Array(10),o=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=o,o=t[a]>>>13,t[a]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,n[0]=t[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+o,o=n[a]>>>13,n[a]&=8191;n[9]-=8192;let s=(o^1)-1;for(let a=0;a<10;a++)n[a]&=s;s=~s;for(let a=0;a<10;a++)t[a]=t[a]&s|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 i=t[0]+r[0];t[0]=i&65535;for(let a=1;a<8;a++)i=(t[a]+r[a]|0)+(i>>>16)|0,t[a]=i&65535;Wt(n)}update(t){Cc(this),yt(t),t=Zr(t);let{buffer:r,blockLen:n}=this,o=t.length;for(let s=0;s<o;){let i=Math.min(n-this.pos,o-s);if(i===n){for(;n<=o-s;s+=n)this.process(t,s);continue}r.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===n&&(this.process(r,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,Wt(this.h,this.r,this.buffer,this.pad)}digestInto(t){Cc(this),ml(t,this),this.finished=!0;let{buffer:r,h:n}=this,{pos:o}=this;if(o){for(r[o++]=1;o<16;o++)r[o]=0;this.process(r,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)t[s++]=n[i]>>>0,t[s++]=n[i]>>>8}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}},Al=bl(32,e=>new Dc(e));function Jy(e,t,r,n,o,s=20){let i=e[0],a=e[1],c=e[2],f=e[3],u=t[0],h=t[1],y=t[2],d=t[3],p=t[4],b=t[5],l=t[6],g=t[7],A=o,L=r[0],R=r[1],D=r[2],U=i,T=a,I=c,P=f,M=u,N=h,m=y,v=d,S=p,w=b,x=l,B=g,_=A,E=L,C=R,O=D;for(let H=0;H<s;H+=2)U=U+M|0,_=q(_^U,16),S=S+_|0,M=q(M^S,12),U=U+M|0,_=q(_^U,8),S=S+_|0,M=q(M^S,7),T=T+N|0,E=q(E^T,16),w=w+E|0,N=q(N^w,12),T=T+N|0,E=q(E^T,8),w=w+E|0,N=q(N^w,7),I=I+m|0,C=q(C^I,16),x=x+C|0,m=q(m^x,12),I=I+m|0,C=q(C^I,8),x=x+C|0,m=q(m^x,7),P=P+v|0,O=q(O^P,16),B=B+O|0,v=q(v^B,12),P=P+v|0,O=q(O^P,8),B=B+O|0,v=q(v^B,7),U=U+N|0,O=q(O^U,16),x=x+O|0,N=q(N^x,12),U=U+N|0,O=q(O^U,8),x=x+O|0,N=q(N^x,7),T=T+m|0,_=q(_^T,16),B=B+_|0,m=q(m^B,12),T=T+m|0,_=q(_^T,8),B=B+_|0,m=q(m^B,7),I=I+v|0,E=q(E^I,16),S=S+E|0,v=q(v^S,12),I=I+v|0,E=q(E^I,8),S=S+E|0,v=q(v^S,7),P=P+M|0,C=q(C^P,16),w=w+C|0,M=q(M^w,12),P=P+M|0,C=q(C^P,8),w=w+C|0,M=q(M^w,7);let k=0;n[k++]=i+U|0,n[k++]=a+T|0,n[k++]=c+I|0,n[k++]=f+P|0,n[k++]=u+M|0,n[k++]=h+N|0,n[k++]=y+m|0,n[k++]=d+v|0,n[k++]=p+S|0,n[k++]=b+w|0,n[k++]=l+x|0,n[k++]=g+B|0,n[k++]=A+_|0,n[k++]=L+E|0,n[k++]=R+C|0,n[k++]=D+O|0}var tg=vl(Jy,{counterRight:!1,counterLength:4,allowShortKeys:!1});var eg=new Uint8Array(16),Bl=(e,t)=>{e.update(t);let r=t.length%16;r&&e.update(eg.subarray(r))},rg=new Uint8Array(32);function _l(e,t,r,n,o){o!==void 0&&yt(o,void 0,"AAD");let s=e(t,r,rg),i=wl(n.length,o?o.length:0,!0),a=Al.create(s);o&&Bl(a,o),Bl(a,n),a.update(i);let c=a.digest();return Wt(s,i),c}var ng=e=>(t,r,n)=>({encrypt(s,i){let a=s.length;i=Zn(a+16,i,!1),i.set(s);let c=i.subarray(0,-16);e(t,r,c,c,1);let f=_l(e,t,r,c,n);return i.set(f,a),Wt(f),i},decrypt(s,i){i=Zn(s.length-16,i,!1);let a=s.subarray(0,-16),c=s.subarray(-16),f=_l(e,t,r,a,n);if(!gl(c,f))throw Wt(f),new Error("invalid tag");return i.set(s.subarray(0,-16)),e(t,r,i,i,1),Wt(f),i}}),Rc=xl({blockSize:64,nonceLength:12,tagLength:16},ng(tg));function Il(e,t,r){return ze(e),r===void 0&&(r=new Uint8Array(e.outputLen)),kn(e,r,t)}var Oc=Uint8Array.of(0),Ll=Uint8Array.of();function Cl(e,t,r,n=32){ze(e),Yt(n,"length"),vt(t,void 0,"prk");let o=e.outputLen;if(t.length<o)throw new Error('"prk" must be at least HashLen octets');if(n>255*o)throw new Error("Length must be <= 255*HashLen");let s=Math.ceil(n/o);r===void 0?r=Ll:vt(r,void 0,"info");let i=new Uint8Array(s*o),a=kn.create(e,t),c=a._cloneInto(),f=new Uint8Array(a.outputLen);for(let u=0;u<s;u++)Oc[0]=u+1,c.update(u===0?Ll:f).update(r).update(Oc).digestInto(f),i.set(f,o*u),a._cloneInto(c);return a.destroy(),c.destroy(),Ht(f,Oc),i.slice(0,n)}var Pc={hashSHA256(e){return Qt(e.subarray())},getHKDF(e,t){let r=Il(Qt,t,e),o=Cl(Qt,r,void 0,96),s=o.subarray(0,32),i=o.subarray(32,64),a=o.subarray(64,96);return[s,i,a]},generateX25519KeyPair(){let e=In.utils.randomSecretKey();return{publicKey:In.getPublicKey(e),privateKey:e}},generateX25519KeyPairFromSeed(e){return{publicKey:In.getPublicKey(e),privateKey:e}},generateX25519SharedKey(e,t){return In.getSharedSecret(e.subarray(),t.subarray())},chaCha20Poly1305Encrypt(e,t,r,n){return Rc(n,t,r).encrypt(e.subarray())},chaCha20Poly1305Decrypt(e,t,r,n,o){return Rc(n,t,r).decrypt(e.subarray(),o)}};var Tl=Pc;function Dl(e){return{generateKeypair:e.generateX25519KeyPair,dh:(t,r)=>e.generateX25519SharedKey(t.privateKey,r).subarray(0,32),encrypt:e.chaCha20Poly1305Encrypt,decrypt:e.chaCha20Poly1305Decrypt,hash:e.hashSHA256,hkdf:e.getHKDF}}var Yr=e=>{let t=Mt(2);return t[0]=e>>8,t[1]=e,t};Yr.bytes=2;var Xr=e=>{if(e.length<2)throw RangeError("Could not decode int16BE");if(e instanceof Uint8Array){let t=0;return t+=e[0]<<8,t+=e[1],t}return e.getUint16(0)};Xr.bytes=2;function Rl(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"})}}function Pl(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Ol=Pl("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Uc=Pl("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=Mt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),og={utf8:Ol,"utf-8":Ol,hex:Ot.base16,latin1:Uc,ascii:Uc,binary:Uc,...Ot},As=og;function oe(e,t="utf8"){let r=As[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}function Nc(e,t){!t.enabled||!jr||(e?(t(`LOCAL_STATIC_PUBLIC_KEY ${oe(e.publicKey,"hex")}`),t(`LOCAL_STATIC_PRIVATE_KEY ${oe(e.privateKey,"hex")}`)):t("Missing local static keys."))}function kc(e,t){!t.enabled||!jr||(e?(t(`LOCAL_PUBLIC_EPHEMERAL_KEY ${oe(e.publicKey,"hex")}`),t(`LOCAL_PRIVATE_EPHEMERAL_KEY ${oe(e.privateKey,"hex")}`)):t("Missing local ephemeral keys."))}function Ul(e,t){!t.enabled||!jr||t(e?`REMOTE_STATIC_PUBLIC_KEY ${oe(e.subarray(),"hex")}`:"Missing remote static public key.")}function Mc(e,t){!t.enabled||!jr||t(e?`REMOTE_EPHEMERAL_PUBLIC_KEY ${oe(e.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Kc(e,t,r){!r.enabled||!jr||(r(`CIPHER_STATE_1 ${e.n.getUint64()} ${e.k&&oe(e.k,"hex")}`),r(`CIPHER_STATE_2 ${t.n.getUint64()} ${t.k&&oe(t.k,"hex")}`))}function Fc(e,t){t==null&&(t=e.reduce((o,s)=>o+s.length,0));let r=Mt(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function cr(e,t="utf8"){let r=As[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}var Qr=class e extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=e.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var ig=0,ag=4294967295,cg="Cipherstate has reached maximum n, a new handshake must be performed",Bs=class{n;bytes;view;constructor(t=ig){this.n=t,this.bytes=re(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>ag)throw new Error(cg)}};var fr=re(0),Jr=class{k;n;crypto;constructor(t,r=void 0,n=0){this.crypto=t,this.k=r,this.n=new Bs(n)}hasKey(){return!!this.k}encryptWithAd(t,r){if(!this.hasKey())return r;this.n.assertValue();let n=this.crypto.encrypt(r,this.n.getBytes(),t,this.k);return this.n.increment(),n}decryptWithAd(t,r,n){if(!this.hasKey())return r;this.n.assertValue();let o=this.crypto.decrypt(r,this.n.getBytes(),t,this.k,n);return this.n.increment(),o}},Hc=class{cs;ck;h;crypto;constructor(t,r){this.crypto=t;let n=cr(r,"utf-8");this.h=fg(t,n),this.ck=this.h,this.cs=new Jr(t)}mixKey(t){let[r,n]=this.crypto.hkdf(this.ck,t);this.ck=r,this.cs=new Jr(this.crypto,n)}mixHash(t){this.h=this.crypto.hash(new j(this.h,t))}encryptAndHash(t){let r=this.cs.encryptWithAd(this.h,t);return this.mixHash(r),r}decryptAndHash(t){let r=this.cs.decryptWithAd(this.h,t);return this.mixHash(t),r}split(){let[t,r]=this.crypto.hkdf(this.ck,fr);return[new Jr(this.crypto,t),new Jr(this.crypto,r)]}},Vc=class{ss;s;e;rs;re;initiator;crypto;constructor(t){let{crypto:r,protocolName:n,prologue:o,initiator:s,s:i,e:a,rs:c,re:f}=t;this.crypto=r,this.ss=new Hc(r,n),this.ss.mixHash(o),this.initiator=s,this.s=i,this.e=a,this.rs=c,this.re=f}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let t=this.crypto.generateKeypair();return this.ss.mixHash(t.publicKey),this.e=t,t.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(t,r=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(t.byteLength<r+32)throw new Error("message is not long enough");this.re=t.sublist(r,r+32),this.ss.mixHash(this.re)}readS(t,r=0){if(this.rs)throw new Error("remote static public key is already set");let n=32+(this.ss.cs.hasKey()?16:0);if(t.byteLength<r+n)throw new Error("message is not long enough");let o=t.sublist(r,r+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},Xn=class extends Vc{writeMessageA(t){return new j(this.writeE(),this.ss.encryptAndHash(t))}writeMessageB(t){let r=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new j(r,n,this.ss.encryptAndHash(t))}writeMessageC(t){let r=this.writeS();return this.writeSE(),new j(r,this.ss.encryptAndHash(t))}readMessageA(t){try{return this.readE(t),this.ss.decryptAndHash(t.sublist(32))}catch(r){throw new Qr(`handshake stage 0 validation fail: ${r.message}`)}}readMessageB(t){try{this.readE(t),this.readEE();let r=this.readS(t,32);return this.readES(),this.ss.decryptAndHash(t.sublist(32+r))}catch(r){throw new Qr(`handshake stage 1 validation fail: ${r.message}`)}}readMessageC(t){try{let r=this.readS(t);return this.readSE(),this.ss.decryptAndHash(t.sublist(r))}catch(r){throw new Qr(`handshake stage 2 validation fail: ${r.message}`)}}};function fg(e,t){if(t.length<=32){let r=re(32);return r.set(t),r}else return e.hash(t)}var zc=new Float32Array([-0]),Me=new Uint8Array(zc.buffer);function Nl(e,t,r){zc[0]=e,t[r]=Me[0],t[r+1]=Me[1],t[r+2]=Me[2],t[r+3]=Me[3]}function kl(e,t){return Me[0]=e[t],Me[1]=e[t+1],Me[2]=e[t+2],Me[3]=e[t+3],zc[0]}var qc=new Float64Array([-0]),Lt=new Uint8Array(qc.buffer);function Ml(e,t,r){qc[0]=e,t[r]=Lt[0],t[r+1]=Lt[1],t[r+2]=Lt[2],t[r+3]=Lt[3],t[r+4]=Lt[4],t[r+5]=Lt[5],t[r+6]=Lt[6],t[r+7]=Lt[7]}function Kl(e,t){return Lt[0]=e[t],Lt[1]=e[t+1],Lt[2]=e[t+2],Lt[3]=e[t+3],Lt[4]=e[t+4],Lt[5]=e[t+5],Lt[6]=e[t+6],Lt[7]=e[t+7],qc[0]}var ug=BigInt(Number.MAX_SAFE_INTEGER),hg=BigInt(Number.MIN_SAFE_INTEGER),Pt=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return ur;if(t<ug&&t>hg)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,o=t-(n<<32n);return r&&(n=~n|0n,o=~o|0n,++o>Fl&&(o=0n,++n>Fl&&(n=0n))),new e(Number(o),Number(n))}static fromNumber(t){if(t===0)return ur;let r=t<0;r&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new e(n,o)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):ur}},ur=new Pt(0,0);ur.toBigInt=function(){return 0n};ur.zzEncode=ur.zzDecode=function(){return this};ur.length=function(){return 1};var Fl=4294967296n;function Hl(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Vl(e,t,r){if(r-t<1)return"";let o,s=[],i=0,a;for(;t<r;)a=e[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function $c(e,t,r){let n=r,o,s;for(let i=0;i<e.length;++i)o=e.charCodeAt(i),o<128?t[r++]=o:o<2048?(t[r++]=o>>6|192,t[r++]=o&63|128):(o&64512)===55296&&((s=e.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[r++]=o>>18|240,t[r++]=o>>12&63|128,t[r++]=o>>6&63|128,t[r++]=o&63|128):(t[r++]=o>>12|224,t[r++]=o>>6&63|128,t[r++]=o&63|128);return r-n}function Gt(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function _s(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var jc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Gt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Gt(this,4);return _s(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Gt(this,4);return _s(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Gt(this,4);let t=kl(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Gt(this,4);let t=Kl(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Gt(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Vl(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Gt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Gt(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Pt(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Gt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Gt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Gt(this,8);let t=_s(this.buf,this.pos+=4),r=_s(this.buf,this.pos+=4);return new Pt(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Tn(this.buf,this.pos);return this.pos+=lt(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Wc(e){return new jc(e instanceof Uint8Array?e:e.subarray())}function Ls(e,t,r){let n=Wc(e);return t.decode(n,void 0,r)}function Gc(e){let t=e??8192,r=t>>>1,n,o=t;return function(i){if(i<1||i>r)return Mt(i);o+i>t&&(n=Mt(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var hr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Zc(){}var Xc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},lg=Gc();function dg(e){return globalThis.Buffer!=null?Mt(e):lg(e)}var Jn=class{len;head;tail;states;constructor(){this.len=0,this.head=new hr(Zc,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new hr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Qc((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Is,10,Pt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=Pt.fromBigInt(t);return this._push(Is,r.length(),r)}uint64Number(t){return this._push(Pe,lt(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=Pt.fromBigInt(t).zzEncode();return this._push(Is,r.length(),r)}sint64Number(t){let r=Pt.fromNumber(t).zzEncode();return this._push(Is,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Yc,1,t?1:0)}fixed32(t){return this._push(Qn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=Pt.fromBigInt(t);return this._push(Qn,4,r.lo)._push(Qn,4,r.hi)}fixed64Number(t){let r=Pt.fromNumber(t);return this._push(Qn,4,r.lo)._push(Qn,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Nl,4,t)}double(t){return this._push(Ml,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Yc,1,0):this.uint32(r)._push(mg,r,t)}string(t){let r=Hl(t);return r!==0?this.uint32(r)._push($c,r,t):this._push(Yc,1,0)}fork(){return this.states=new Xc(this),this.head=this.tail=new hr(Zc,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new hr(Zc,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=dg(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Yc(e,t,r){t[r]=e&255}function pg(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Qc=class extends hr{next;constructor(t,r){super(pg,t,r),this.next=void 0}};function Is(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Qn(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function mg(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Jn.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(yg,t,e),this},Jn.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(gg,t,e),this});function yg(e,t,r){t.set(e,r)}function gg(e,t,r){e.length<40?$c(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(cr(e),r)}function Jc(){return new Jn}function Cs(e,t){let r=Jc();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var to;(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"})(to||(to={}));function tf(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function Ts(e,t){return tf("message",to.LENGTH_DELIMITED,e,t)}var eo=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var Ds;(function(e){let t;e.codec=()=>(t==null&&(t=Ts((r,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),r.webtransportCerthashes!=null)for(let s of r.webtransportCerthashes)n.uint32(10),n.bytes(s);if(r.streamMuxers!=null)for(let s of r.streamMuxers)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(r,n,o={})=>{let s={webtransportCerthashes:[],streamMuxers:[]},i=n==null?r.len:r.pos+n;for(;r.pos<i;){let a=r.uint32();switch(a>>>3){case 1:{if(o.limits?.webtransportCerthashes!=null&&s.webtransportCerthashes.length===o.limits.webtransportCerthashes)throw new eo('Decode error - map field "webtransportCerthashes" had too many elements');s.webtransportCerthashes.push(r.bytes());break}case 2:{if(o.limits?.streamMuxers!=null&&s.streamMuxers.length===o.limits.streamMuxers)throw new eo('Decode error - map field "streamMuxers" had too many elements');s.streamMuxers.push(r.string());break}default:{r.skipType(a&7);break}}}return s})),t),e.encode=r=>Cs(r,e.codec()),e.decode=(r,n)=>Ls(r,e.codec(),n)})(Ds||(Ds={}));var ro;(function(e){let t;e.codec=()=>(t==null&&(t=Ts((r,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),r.identityKey!=null&&r.identityKey.byteLength>0&&(n.uint32(10),n.bytes(r.identityKey)),r.identitySig!=null&&r.identitySig.byteLength>0&&(n.uint32(18),n.bytes(r.identitySig)),r.extensions!=null&&(n.uint32(34),Ds.codec().encode(r.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(r,n,o={})=>{let s={identityKey:re(0),identitySig:re(0)},i=n==null?r.len:r.pos+n;for(;r.pos<i;){let a=r.uint32();switch(a>>>3){case 1:{s.identityKey=r.bytes();break}case 2:{s.identitySig=r.bytes();break}case 4:{s.extensions=Ds.codec().decode(r,r.uint32(),{limits:o.limits?.extensions});break}default:{r.skipType(a&7);break}}}return s})),t),e.encode=r=>Cs(r,e.codec()),e.decode=(r,n)=>Ls(r,e.codec(),n)})(ro||(ro={}));async function rf(e,t,r){let n=await e.sign($l(t));return ro.encode({identityKey:Be(e.publicKey),identitySig:n,extensions:r})}async function nf(e,t,r){try{let n=ro.decode(e),o=Mn(n.identityKey);if(r?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${r}`);if(!t)throw new Error("Remote static does not exist");let s=$l(t);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new oo(n.message)}}function $l(e){let t=cr("noise-libp2p-static-key:");return e instanceof Uint8Array?Fc([t,e],t.length+e.length):(e.prepend(t),e)}var ef=class extends ee{stream;handshake;metrics;decoder;constructor(t,r,n){super({log:t.log,inactivityTimeout:t.inactivityTimeout,maxReadBufferLength:t.maxReadBufferLength,direction:t.direction}),this.stream=t,this.handshake=r,this.metrics=n,this.decoder=new Ss({lengthDecoder:Xr,maxBufferSize:16*1024*1024,encodingLength:()=>2});let o=c=>{try{for(let f of this.decoder.decode(c.data))this.onData(this.decrypt(f))}catch(f){this.abort(f)}};this.stream.addEventListener("message",o);let s=c=>{c.error!=null?c.local===!0?this.abort(c.error):this.onRemoteReset():this.onTransportClosed()};this.stream.addEventListener("close",s);let i=()=>{this.safeDispatchEvent("drain")};this.stream.addEventListener("drain",i);let a=()=>{this.onRemoteCloseWrite()};this.stream.addEventListener("remoteCloseWrite",a)}encrypt(t){let r=new j;for(let n=0;n<t.byteLength;n+=65519){let o=n+65519;o>t.byteLength&&(o=t.byteLength);let s;t instanceof Uint8Array?s=this.handshake.encrypt(t.subarray(n,o)):s=this.handshake.encrypt(t.sublist(n,o)),this.metrics?.encryptedPackets.increment(),r.append(Yr(s.byteLength)),r.append(s)}return r}decrypt(t){let r=new j;for(let n=0;n<t.byteLength;n+=65535){let o=n+65535;if(o>t.byteLength&&(o=t.byteLength),o-Ic<n)throw new Error("Invalid chunk");let s;t instanceof Uint8Array?s=t.subarray(n,o):s=t.sublist(n,o);let i=t.subarray(n,o-Ic);try{let a=this.handshake.decrypt(s,i);this.metrics?.decryptedPackets.increment(),r.append(a)}catch(a){throw this.metrics?.decryptErrors.increment(),a}}return r}close(t){return this.stream.close(t)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(t){this.stream.abort(t)}sendData(t){return{sentBytes:t.byteLength,canSendMore:this.stream.send(this.encrypt(t))}}};function of(e,t,r){return new ef(e,t,r)}async function jl(e,t){let{log:r,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=e,u=await rf(s,a.publicKey,f),h=new Xn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Nc(h.s,r),r.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(fr),t),r.trace("Stage 0 - Initiator finished sending first message."),kc(h.e,r),r.trace("Stage 1 - Initiator waiting to receive first message from responder...");let y=h.readMessageB(await n.read(t));r.trace("Stage 1 - Initiator received the message."),Mc(h.re,r),Ul(h.rs,r),r.trace("Initiator going to check remote's signature...");let d=await nf(y,h.rs,c);r.trace("All good with the signature!"),r.trace("Stage 2 - Initiator sending third handshake message."),await n.write(h.writeMessageC(u),t),r.trace("Stage 2 - Initiator sent message with signed payload.");let[p,b]=h.ss.split();return Kc(p,b,r),{payload:d,encrypt:l=>p.encryptWithAd(fr,l),decrypt:(l,g)=>b.decryptWithAd(fr,l,g)}}async function Wl(e,t){let{log:r,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=e,u=await rf(s,a.publicKey,f),h=new Xn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Nc(h.s,r),r.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(t)),r.trace("Stage 0 - Responder received first message."),Mc(h.re,r),r.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(u),t),r.trace("Stage 1 - Responder sent the second handshake message with signed payload."),kc(h.e,r),r.trace("Stage 2 - Responder waiting for third handshake message...");let y=h.readMessageC(await n.read(t));r.trace("Stage 2 - Responder received the message, finished handshake.");let d=await nf(y,h.rs,c),[p,b]=h.ss.split();return Kc(p,b,r),{payload:d,encrypt:l=>b.encryptWithAd(fr,l),decrypt:(l,g)=>p.decryptWithAd(fr,l,g)}}var Rs=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(t,r={}){let{staticNoiseKey:n,extensions:o,crypto:s,prologueBytes:i}=r,{metrics:a}=t;this.components=t,this.log=t.logger.forComponent("libp2p:noise");let c=s??Tl;this.crypto=Dl(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?Rl(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=i??re(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[lo]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(t,r){let n=t.log?.newScope("noise")??this.log,o=Lc(t,{lengthEncoder:Yr,lengthDecoder:Xr,maxDataLength:65535}),s=await this.performHandshakeInitiator(o,this.components.privateKey,n,r?.remotePeer?.publicKey,r),i=Mn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:qa(i),streamMuxer:r?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}getStreamMuxer(t){if(t==null||t.length===0)return;let r=this.components.upgrader.getStreamMuxers();if(r!=null)for(let n of t){let o=r.get(n);if(o!=null)return o}if(t.length)throw new pr("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(t,r){let n=t.log?.newScope("noise")??this.log,o=Lc(t,{lengthEncoder:Yr,lengthDecoder:Xr,maxDataLength:65535}),s=await this.performHandshakeResponder(o,this.components.privateKey,n,r?.remotePeer?.publicKey,r),i=Mn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:qa(i),streamMuxer:r?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(t,r,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await jl({connection:t,privateKey:r,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}async performHandshakeResponder(t,r,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Wl({connection:t,privateKey:r,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}};function Gl(e={}){return t=>new Rs(t,e)}var lr=class extends Event{type;detail;constructor(t,r){super(t),this.type=t,this.detail=r}};function sf(e){throw new Error("Not implemented")}var af=class extends ws{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),this.writer.closed.then(()=>{this.log("writer closed gracefully")}).catch(r=>{r.message.includes("STOP_SENDING")||r.message.includes("StopSending")?this.onRemoteCloseRead():r.message.includes("RESET_STREAM")||r.message.includes("Reset")?this.onRemoteReset():this.log("writer close promise rejected - %e",r)}),this.readData()}readData(){Promise.resolve().then(async()=>{for(;;){let t=await this.reader.read();if(t.value!=null&&this.onData(t.value),t.done){this.log("remote closed write"),this.onRemoteCloseWrite();return}if(this.readStatus==="paused")break}}).catch(t=>{this.abort(t)}).finally(()=>{this.reader.releaseLock()})}sendData(t){for(let n of t)this.writer.write(n).catch(o=>{this.abort(o)});if(this.log.trace("desired size after sending %d bytes is %d bytes",t.byteLength,this.writer.desiredSize),this.writer.desiredSize==null)return{sentBytes:t.byteLength,canSendMore:!1};let r=this.writer.desiredSize>0;return r||this.writer.ready.then(()=>{this.safeDispatchEvent("drain")},n=>{this.abort(n)}),{sentBytes:t.byteLength,canSendMore:r}}sendReset(t){this.writer.abort(t).catch(r=>{this.log.error("error aborting writer - %e",r)})}async sendCloseWrite(t){this.log("sendCloseWrite closing writer"),await kt(this.writer.close().catch(()=>{}),t?.signal),this.log("sendCloseWrite closed writer")}async sendCloseRead(t){this.log("sendCloseRead cancelling reader"),await kt(this.reader.cancel(),t?.signal),this.log("sendCloseRead cancelled reader")}sendPause(){}sendResume(){this.readData()}};function cf(e,t,r,n,o){return new af({...o,stream:e,id:t,direction:r,log:n.newScope(`${r}:${t}`),protocol:""})}var Zl="/webtransport",ff=class extends xs{webTransport;streamIDCounter;reader;constructor(t,r){super(r,{protocol:Zl,name:"muxer"}),this.webTransport=t,this.streamIDCounter=0,this.reader=this.webTransport.incomingBidirectionalStreams.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:n,value:o}=await this.reader.read();if(n||o==null)break;this.onRemoteStream(cf(o,String(this.streamIDCounter++),"inbound",this.log,this.streamOptions))}}).catch(n=>{this.log.error("could not create a new stream - %e",n)})}async onCreateStream(t){let r=await this.webTransport.createBidirectionalStream();return t?.signal?.throwIfAborted(),cf(r,String(this.streamIDCounter++),"outbound",this.log,t)}onData(){}sendReset(){this.webTransport.close()}};function Yl(e){return{protocol:Zl,createStreamMuxer(t){return new ff(e,t)}}}var uf=class extends bs{cleanUpWTSession;constructor(t){super(t),this.cleanUpWTSession=t.cleanUpWTSession}sendData(t){return{sentBytes:t.byteLength,canSendMore:!0}}sendReset(){this.cleanUpWTSession("abort")}async sendClose(t){this.cleanUpWTSession("close"),t?.signal?.throwIfAborted()}sendPause(){}sendResume(){}},Xl=e=>new uf(e);function Ql(e,t){return t.filter(n=>!!e.find(o=>It(n,o))).length===t.length}var bg=Object.values(Ot).map(e=>e.decoder).reduce((e,t)=>e.or(t));function xg(e){return ae.decode(bg.decode(e))}function hf(e){if(!ls.matches(e))throw new nn("Invalid multiaddr, was not a WebTransport address");let t=[],r;for(let s of e.getComponents())s.name==="certhash"&&t.push(xg(s.value??"")),s.name==="p2p"&&r==null&&(r=Mh(s.value??""));if(r==null)throw new nn("Remote peer must be present in multiaddr");let n=Fh(e),o=n.host;return n.type==="ip6"&&o.includes(":")&&(o=`[${o}]`),{url:`https://${o}:${n.port}`,certhashes:t,remotePeer:r}}var Os=class extends ee{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:r,value:n}=await this.reader.read();if(n!=null&&this.onData(n),r)break}}).catch(r=>{this.abort(r)})}async close(t){await kt(this.writer.close(),t?.signal)}sendData(t){return this.writer.write(t.subarray()).catch(r=>{this.abort(r)}),{sentBytes:t.byteLength,canSendMore:!0}}sendReset(t){this.writer.abort(t).catch(r=>{this.log.error("could not send reset - %e",r)})}sendPause(){}sendResume(){}};var Jl=globalThis.WebTransport;var lf=class{log;components;config;metrics;constructor(t,r={}){this.log=t.logger.forComponent("libp2p:webtransport"),this.components=t,this.config={...r,certificates:r.certificates??[]},t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_webtransport_dialer_events_total",{label:"event",help:"Total count of WebTransport dialer events by type"})})}[Symbol.toStringTag]="@libp2p/webtransport";[yf]=!0;[lo]=["@libp2p/transport"];async dial(t,r){r.signal.throwIfAborted(),this.log("dialing %s",t),r=r??{};let{url:n,certhashes:o,remotePeer:s}=hf(t),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let y=new Jl(`${n}/.well-known/libp2p-webtransport?type=noise`,{serverCertificateHashes:o.map(d=>({algorithm:"sha-256",value:Ut(d.digest)}))});if(c=d=>{if(!f)try{this.metrics?.dialerEvents.increment({[d]:!0}),y.close()}catch(p){this.log.error("error closing wt session - %e",p)}finally{a!=null&&(a.timeline.close=Date.now()),f=!0}},i=()=>{c(u?"noise_timeout":"ready_timeout")},r.signal.addEventListener("abort",i,{once:!0}),this.log("wait for session to be ready"),r.onProgress?.(new lr("webtransport:wait-for-session")),await Promise.race([y.closed,y.ready]),this.log("session became ready"),u=!0,this.metrics?.dialerEvents.increment({ready:!0}),y.closed.catch(d=>{this.log.error("error on remote wt session close - %e",d)}).finally(()=>{c("remote_close")}),this.metrics?.dialerEvents.increment({open:!0}),a=Xl({remoteAddr:t,cleanUpWTSession:c,direction:"outbound",log:this.components.logger.forComponent("libp2p:webtransport:connection")}),h=await this.authenticateWebTransport({wt:y,maConn:a,remotePeer:s,certhashes:o,...r}),!h)throw new pr("Failed to authenticate webtransport");return await r.upgrader.upgradeOutbound(a,{...r,skipEncryption:!0,remotePeer:s,muxerFactory:Yl(y),skipProtection:!0})}catch(y){throw this.log.error("caught wt session err - %e",y),c(h?"upgrade_error":u?"noise_error":"ready_error"),y}finally{i!=null&&r.signal?.removeEventListener("abort",i)}}async authenticateWebTransport({wt:t,maConn:r,remotePeer:n,certhashes:o,onProgress:s,signal:i}){s?.(new lr("webtransport:open-authentication-stream"));let a=await t.createBidirectionalStream();i?.throwIfAborted();let c=new Os({stream:a,log:r.log.newScope("muxer")}),f=Gl()(this.components);s?.(new lr("webtransport:secure-outbound-connection"));let{remoteExtensions:u}=await f.secureOutbound(c,{signal:i,remotePeer:n,skipStreamMuxerNegotiation:!0});if(s?.(new lr("webtransport:close-authentication-stream")),await c.close({signal:i}),!Ql(u?.webtransportCerthashes??[],o.map(h=>h.bytes)))throw new Q("Our certhashes are not a subset of the remote's reported certhashes");return!0}createListener(t){return sf(this.components,{...t,certificates:this.config.certificates})}listenFilter(){return[]}dialFilter(t){return globalThis.WebTransport==null?[]:t.filter(r=>{if(!ls.exactMatch(r))return!1;let{url:n,certhashes:o}=hf(r);return n!=null&&o.length>0})}};function wg(e={}){return t=>new lf(t,e)}return od(Eg);})();
2
+ "use strict";var Libp2PWebtransport=(()=>{var Ps=Object.defineProperty;var td=Object.getOwnPropertyDescriptor;var ed=Object.getOwnPropertyNames;var rd=Object.prototype.hasOwnProperty;var tt=(e,t)=>{for(var r in t)Ps(e,r,{get:t[r],enumerable:!0})},nd=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ed(t))!rd.call(e,o)&&o!==r&&Ps(e,o,{get:()=>t[o],enumerable:!(n=td(t,o))||n.enumerable});return e};var od=e=>nd(Ps({},"__esModule",{value:!0}),e);var Eg={};tt(Eg,{webTransport:()=>wg});var no=class extends Error{static name="UnexpectedPeerError";constructor(t="Unexpected Peer"){super(t),this.name="UnexpectedPeerError"}},pr=class extends Error{static name="InvalidCryptoExchangeError";constructor(t="Invalid crypto exchange"){super(t),this.name="InvalidCryptoExchangeError"}},Q=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},mr=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var oo=class extends Error{static name="MuxerClosedError";constructor(t="The muxer is closed"){super(t),this.name="MuxerClosedError"}},so=class extends Error{static name="StreamResetError";constructor(t="The stream has been reset"){super(t),this.name="StreamResetError"}};var we=class extends Error{static name="StreamStateError";constructor(t="The stream is in an invalid state"){super(t),this.name="StreamStateError"}},rn=class extends Error{static name="StreamBufferError";constructor(t="The stream buffer was full"){super(t),this.name="StreamBufferError"}};var io=class extends Error{static name="InvalidMultiaddrError";constructor(t="Invalid multiaddr"){super(t),this.name="InvalidMultiaddrError"}},ao=class extends Error{static name="InvalidCIDError";constructor(t="Invalid CID"){super(t),this.name="InvalidCIDError"}},co=class extends Error{static name="InvalidMultihashError";constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var Fe=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var fo=class extends Event{data;constructor(t,r){super("message",r),this.data=t}},yr=class extends Event{error;local;constructor(t,r,n){super("close",n),this.error=r,this.local=t}},uo=class extends yr{constructor(t,r){super(!0,t,r)}},ho=class extends yr{constructor(t,r){super(!1,t,r)}};var Us=Symbol.for("@libp2p/peer-id");var yf=Symbol.for("@libp2p/transport");var mf;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(mf||(mf={}));function sd(e){return typeof e?.handleEvent=="function"}function id(e){return(e!==!0&&e!==!1&&e?.once)??!1}var gr=class extends EventTarget{#t=new Map;constructor(){super()}listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){let o=id(n);super.addEventListener(t,i=>{if(o){let a=this.#t.get(i.type);a!=null&&(a=a.filter(({callback:c})=>c!==r),this.#t.set(i.type,a))}sd(r)?r.handleEvent(i):r(i)},n);let s=this.#t.get(t);s==null&&(s=[],this.#t.set(t,s)),s.push({callback:r,once:o})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let o=this.#t.get(t);o!=null&&(o=o.filter(({callback:s})=>s!==r),this.#t.set(t,o))}safeDispatchEvent(t,r={}){return this.dispatchEvent(new CustomEvent(t,r))}};var lo=Symbol.for("@libp2p/service-capabilities");var Fs={};tt(Fs,{base58btc:()=>ft,base58flickr:()=>dd});var Jg=new Uint8Array(0);function gf(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}function ie(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")}function bf(e){return new TextEncoder().encode(e)}function xf(e){return new TextDecoder().decode(e)}function ad(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 o=0;o<e.length;o++){var s=e.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=e.length,c=e.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(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 b=0,l=0,g=0,A=d.length;g!==A&&d[g]===0;)g++,b++;for(var L=(A-g)*u+1>>>0,R=new Uint8Array(L);g!==A;){for(var D=d[g],U=0,T=L-1;(D!==0||U<l)&&T!==-1;T--,U++)D+=256*R[T]>>>0,R[T]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,g++}for(var I=L-l;I!==L&&R[I]===0;)I++;for(var P=c.repeat(b);I<L;++I)P+=e.charAt(R[I]);return P}function y(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var b=0;if(d[b]!==" "){for(var l=0,g=0;d[b]===c;)l++,b++;for(var A=(d.length-b)*f+1>>>0,L=new Uint8Array(A);d[b];){var R=r[d.charCodeAt(b)];if(R===255)return;for(var D=0,U=A-1;(R!==0||D<g)&&U!==-1;U--,D++)R+=a*L[U]>>>0,L[U]=R%256>>>0,R=R/256>>>0;if(R!==0)throw new Error("Non-zero carry");g=D,b++}if(d[b]!==" "){for(var T=A-g;T!==A&&L[T]===0;)T++;for(var I=new Uint8Array(l+(A-T)),P=l;T!==A;)I[P++]=L[T++];return I}}}function p(d){var b=y(d);if(b)return b;throw new Error(`Non-${t} character`)}return{encode:h,decodeUnsafe:y,decode:p}}var cd=ad,fd=cd,Ef=fd;var Ns=class{name;prefix;baseEncode;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")}},ks=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,r,n){this.name=t,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 Sf(this,t)}},Ms=class{decoders;constructor(t){this.decoders=t}or(t){return Sf(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Sf(e,t){return new Ms({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}var Ks=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,r,n,o){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Ns(t,r,n),this.decoder=new ks(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function br({name:e,prefix:t,encode:r,decode:n}){return new Ks(e,t,r,n)}function Ee({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=Ef(r,e);return br({prefix:t,name:e,encode:n,decode:s=>ie(o(s))})}function ud(e,t,r,n){let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[e[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<r|u,i+=r,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=r||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function hd(e,t,r){let n=t[t.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],i+=8;i>r;)i-=r,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function ld(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}function ct({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=ld(n);return br({prefix:t,name:e,encode(s){return hd(s,n,r)},decode(s){return ud(s,o,r,e)}})}var ft=Ee({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),dd=Ee({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Hs={};tt(Hs,{base32:()=>Se,base32hex:()=>gd,base32hexpad:()=>xd,base32hexpadupper:()=>wd,base32hexupper:()=>bd,base32pad:()=>md,base32padupper:()=>yd,base32upper:()=>pd,base32z:()=>Ed});var Se=ct({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),pd=ct({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),md=ct({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),yd=ct({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),gd=ct({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),bd=ct({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),xd=ct({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),wd=ct({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ed=ct({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Vs={};tt(Vs,{base36:()=>nn,base36upper:()=>Sd});var nn=Ee({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Sd=Ee({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ae={};tt(ae,{Digest:()=>He,create:()=>Kt,decode:()=>Er,equals:()=>qs,hasCode:()=>Hd});var vd=Bf,vf=128,Ad=127,Bd=~Ad,_d=Math.pow(2,31);function Bf(e,t,r){t=t||[],r=r||0;for(var n=r;e>=_d;)t[r++]=e&255|vf,e/=128;for(;e&Bd;)t[r++]=e&255|vf,e>>>=7;return t[r]=e|0,Bf.bytes=r-n+1,t}var Ld=zs,Id=128,Af=127;function zs(e,n){var r=0,n=n||0,o=0,s=n,i,a=e.length;do{if(s>=a)throw zs.bytes=0,new RangeError("Could not decode varint");i=e[s++],r+=o<28?(i&Af)<<o:(i&Af)*Math.pow(2,o),o+=7}while(i>=Id);return zs.bytes=s-n,r}var Cd=Math.pow(2,7),Td=Math.pow(2,14),Dd=Math.pow(2,21),Rd=Math.pow(2,28),Od=Math.pow(2,35),Pd=Math.pow(2,42),Ud=Math.pow(2,49),Nd=Math.pow(2,56),kd=Math.pow(2,63),Md=function(e){return e<Cd?1:e<Td?2:e<Dd?3:e<Rd?4:e<Od?5:e<Pd?6:e<Ud?7:e<Nd?8:e<kd?9:10},Kd={encode:vd,decode:Ld,encodingLength:Md},Fd=Kd,on=Fd;function sn(e,t=0){return[on.decode(e,t),on.decode.bytes]}function xr(e,t,r=0){return on.encode(e,t,r),t}function wr(e){return on.encodingLength(e)}function Kt(e,t){let r=t.byteLength,n=wr(e),o=n+wr(r),s=new Uint8Array(o+r);return xr(e,s,0),xr(r,s,n),s.set(t,o),new He(e,r,t,s)}function Er(e){let t=ie(e),[r,n]=sn(t),[o,s]=sn(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new He(r,o,i,t)}function qs(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&gf(e.bytes,r.bytes)}}var He=class{code;size;digest;bytes;constructor(t,r,n,o){this.code=t,this.size=r,this.digest=n,this.bytes=o}};function Hd(e,t){return e.code===t}function _f(e,t){let{bytes:r,version:n}=e;return n===0?zd(r,$s(e),t??ft.encoder):qd(r,$s(e),t??Se.encoder)}var Lf=new WeakMap;function $s(e){let t=Lf.get(e);if(t==null){let r=new Map;return Lf.set(e,r),r}return t}var dt=class e{code;version;multihash;bytes;"/";constructor(t,r,n,o){this.code=r,this.version=t,this.multihash=n,this.bytes=o,this["/"]=o}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!==an)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==$d)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=Kt(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!=null&&t.code===n.code&&t.version===n.version&&qs(t.multihash,n.multihash)}toString(t){return _f(this,t)}toJSON(){return{"/":_f(this)}}link(){return this}[Symbol.toStringTag]="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:o,multihash:s,bytes:i}=r;return new e(n,o,s,i??If(n,o,s.bytes))}else if(r[jd]===!0){let{version:n,multihash:o,code:s}=r,i=Er(o);return e.create(n,s,i)}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!==an)throw new Error(`Version 0 CID must use dag-pb (code: ${an}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let o=If(t,r,n.bytes);return new e(t,r,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,an,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,o=ie(t.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),i=new He(r.multihashCode,r.digestSize,s,o);return[r.version===0?e.createV0(i):e.createV1(r.codec,i),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[h,y]=sn(t.subarray(r));return r+=y,h},o=n(),s=an;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=r,a=n(),c=n(),f=r+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,r){let[n,o]=Vd(t,r),s=e.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return $s(s).set(n,t),s}};function Vd(e,t){switch(e[0]){case"Q":{let r=t??ft;return[ft.prefix,r.decode(`${ft.prefix}${e}`)]}case ft.prefix:{let r=t??ft;return[ft.prefix,r.decode(e)]}case Se.prefix:{let r=t??Se;return[Se.prefix,r.decode(e)]}case nn.prefix:{let r=t??nn;return[nn.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}}function zd(e,t,r){let{prefix:n}=r;if(n!==ft.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return o}function qd(e,t,r){let{prefix:n}=r,o=t.get(n);if(o==null){let s=r.encode(e);return t.set(n,s),s}else return o}var an=112,$d=18;function If(e,t,r){let n=wr(e),o=n+wr(t),s=new Uint8Array(o+r.byteLength);return xr(e,s,0),xr(t,s,n),s.set(r,o),s}var jd=Symbol.for("@ipld/js-cid/CID");var js={};tt(js,{identity:()=>Ft});var Cf=0,Wd="identity",Tf=ie;function Gd(e,t){if(t?.truncate!=null&&t.truncate!==e.byteLength){if(t.truncate<0||t.truncate>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,t.truncate)}return Kt(Cf,Tf(e))}var Ft={code:Cf,name:Wd,encode:Tf,digest:Gd};function It(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}function Zd(e){return e.buffer instanceof ArrayBuffer}function Ut(e){return Zd(e)?e:e.slice()}async function Df(e,t,r,n){let o=await crypto.subtle.importKey("jwk",e,{name:"ECDSA",namedCurve:e.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,Ut(t),Ut(r.subarray()));return n?.signal?.throwIfAborted(),s}function ce(e=0){return new Uint8Array(e)}function cn(e=0){return new Uint8Array(e)}function Ws(e,t){t==null&&(t=e.reduce((o,s)=>o+s.length,0));let r=cn(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function Rf(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 Pf=Symbol.for("@achingbrain/uint8arraylist");function Of(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let o=r+n.byteLength;if(t<o)return{buf:n,index:t-r};r=o}throw new RangeError("index is out of bounds")}function mo(e){return!!e?.[Pf]}var j=class e{bufs;length;[Pf]=!0;constructor(...t){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(mo(n)){r+=n.byteLength;for(let o of n.bufs)this.bufs.push(o)}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(mo(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=Of(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Of(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(mo(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:o}=this._subList(t,r);return Ws(n,o)}subarray(t,r){let{bufs:n,length:o}=this._subList(t,r);return n.length===1?n[0]:Ws(n,o)}sublist(t,r){let{bufs:n,length:o}=this._subList(t,r),s=new e;return s.length=o,s.bufs=n,s}_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=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,t>=c)continue;let f=t>=a&&t<c,u=r>a&&r<=c;if(f&&u){if(t===a&&r===c){n.push(i);break}let h=t-a;n.push(i.subarray(h,h+(r-t)));break}if(f){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(u){if(r===c){n.push(i);break}n.push(i.subarray(0,r-a));break}n.push(i)}return{bufs:n,length:r-t}}indexOf(t,r=0){if(!mo(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 o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let h=0;h<s;h++)i[h]=-1;for(let h=0;h<o;h++)i[n[h]]=h;let a=i,c=this.byteLength-n.byteLength,f=n.byteLength-1,u;for(let h=r;h<=c;h+=u){u=0;for(let y=f;y>=0;y--){let p=this.get(h+y);if(n[y]!==p){u=Math.max(1,y-a[p]);break}}if(u===0)return h}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=cn(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 o=ce(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,r,n),this.write(o,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 o=ce(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,r,n),this.write(o,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 o=ce(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,r,n),this.write(o,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=cn(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 o=ce(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,r,n),this.write(o,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 o=ce(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,r,n),this.write(o,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 o=ce(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,r,n),this.write(o,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 o=ce(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,r,n),this.write(o,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 o=ce(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,r,n),this.write(o,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(!Rf(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((o,s)=>o+s.byteLength,0)),n.length=r,n}};var Qs={};tt(Qs,{base10:()=>np});var Rb=new Uint8Array(0);function Uf(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}function fe(e){if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return Ve(e);if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return Ve(new Uint8Array(e.buffer,e.byteOffset,e.byteLength));throw new Error("Unknown type, must be binary type")}function Nf(e){return new TextEncoder().encode(e)}function kf(e){return new TextDecoder().decode(e)}function Yd(e){return e?.buffer instanceof ArrayBuffer}function Ve(e){return Yd(e)?e:e.slice()}function Xd(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 o=0;o<e.length;o++){var s=e.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=e.length,c=e.charAt(0),f=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function h(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 b=0,l=0,g=0,A=d.length;g!==A&&d[g]===0;)g++,b++;for(var L=(A-g)*u+1>>>0,R=new Uint8Array(L);g!==A;){for(var D=d[g],U=0,T=L-1;(D!==0||U<l)&&T!==-1;T--,U++)D+=256*R[T]>>>0,R[T]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,g++}for(var I=L-l;I!==L&&R[I]===0;)I++;for(var P=c.repeat(b);I<L;++I)P+=e.charAt(R[I]);return P}function y(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var b=0;if(d[b]!==" "){for(var l=0,g=0;d[b]===c;)l++,b++;for(var A=(d.length-b)*f+1>>>0,L=new Uint8Array(A);d[b];){var R=r[d.charCodeAt(b)];if(R===255)return;for(var D=0,U=A-1;(R!==0||D<g)&&U!==-1;U--,D++)R+=a*L[U]>>>0,L[U]=R%256>>>0,R=R/256>>>0;if(R!==0)throw new Error("Non-zero carry");g=D,b++}if(d[b]!==" "){for(var T=A-g;T!==A&&L[T]===0;)T++;for(var I=new Uint8Array(l+(A-T)),P=l;T!==A;)I[P++]=L[T++];return I}}}function p(d){var b=y(d);if(b)return b;throw new Error(`Non-${t} character`)}return{encode:h,decodeUnsafe:y,decode:p}}var Qd=Xd,Jd=Qd,Kf=Jd;var Gs=class{name;prefix;baseEncode;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")}},Zs=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,r,n){this.name=t,this.prefix=r;let o=r.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,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 Ff(this,t)}},Ys=class{decoders;constructor(t){this.decoders=t}or(t){return Ff(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Ff(e,t){return new Ys({...e.decoders??{[e.prefix]:e},...t.decoders??{[t.prefix]:t}})}var Xs=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,r,n,o){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Gs(t,r,n),this.decoder=new Zs(t,r,o)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function Sr({name:e,prefix:t,encode:r,decode:n}){return new Xs(e,t,r,n)}function ve({name:e,prefix:t,alphabet:r}){let{encode:n,decode:o}=Kf(r,e);return Sr({prefix:t,name:e,encode:n,decode:s=>fe(o(s))})}function tp(e,t,r,n){let o=e.length;for(;e[o-1]==="=";)--o;let s=new Uint8Array(o*r/8|0),i=0,a=0,c=0;for(let f=0;f<o;++f){let u=t[e[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<r|u,i+=r,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=r||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function ep(e,t,r){let n=t[t.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],i+=8;i>r;)i-=r,s+=t[o&a>>i];if(i!==0&&(s+=t[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function rp(e){let t={};for(let r=0;r<e.length;++r)t[e[r]]=r;return t}function ut({name:e,prefix:t,bitsPerChar:r,alphabet:n}){let o=rp(n);return Sr({prefix:t,name:e,encode(s){return ep(s,n,r)},decode(s){return tp(s,o,r,e)}})}var np=ve({prefix:"9",name:"base10",alphabet:"0123456789"});var Js={};tt(Js,{base16:()=>op,base16upper:()=>sp});var op=ut({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),sp=ut({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ti={};tt(ti,{base2:()=>ip});var ip=ut({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ei={};tt(ei,{base256emoji:()=>hp});var Hf=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}"),ap=Hf.reduce((e,t,r)=>(e[r]=t,e),[]),cp=Hf.reduce((e,t,r)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return e[n]=r,e},[]);function fp(e){return e.reduce((t,r)=>(t+=ap[r],t),"")}function up(e){let t=[];for(let r of e){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=cp[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);t.push(o)}return new Uint8Array(t)}var hp=Sr({prefix:"\u{1F680}",name:"base256emoji",encode:fp,decode:up});var ri={};tt(ri,{base32:()=>vr,base32hex:()=>mp,base32hexpad:()=>gp,base32hexpadupper:()=>bp,base32hexupper:()=>yp,base32pad:()=>dp,base32padupper:()=>pp,base32upper:()=>lp,base32z:()=>xp});var vr=ut({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),lp=ut({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),dp=ut({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),pp=ut({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),mp=ut({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),yp=ut({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),gp=ut({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),bp=ut({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),xp=ut({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var ni={};tt(ni,{base36:()=>fn,base36upper:()=>wp});var fn=ve({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),wp=ve({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var oi={};tt(oi,{base58btc:()=>Zt,base58flickr:()=>Ep});var Zt=ve({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Ep=ve({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var si={};tt(si,{base64:()=>Sp,base64pad:()=>vp,base64url:()=>Ap,base64urlpad:()=>Bp});var Sp=ut({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),vp=ut({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ap=ut({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Bp=ut({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var ii={};tt(ii,{base8:()=>_p});var _p=ut({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ai={};tt(ai,{identity:()=>Lp});var Lp=Sr({prefix:"\0",name:"identity",encode:e=>kf(e),decode:e=>Nf(e)});var Gb=new TextEncoder,Zb=new TextDecoder;var fi={};tt(fi,{identity:()=>Yp});var Tp=qf,Vf=128,Dp=127,Rp=~Dp,Op=Math.pow(2,31);function qf(e,t,r){t=t||[],r=r||0;for(var n=r;e>=Op;)t[r++]=e&255|Vf,e/=128;for(;e&Rp;)t[r++]=e&255|Vf,e>>>=7;return t[r]=e|0,qf.bytes=r-n+1,t}var Pp=ci,Up=128,zf=127;function ci(e,n){var r=0,n=n||0,o=0,s=n,i,a=e.length;do{if(s>=a)throw ci.bytes=0,new RangeError("Could not decode varint");i=e[s++],r+=o<28?(i&zf)<<o:(i&zf)*Math.pow(2,o),o+=7}while(i>=Up);return ci.bytes=s-n,r}var Np=Math.pow(2,7),kp=Math.pow(2,14),Mp=Math.pow(2,21),Kp=Math.pow(2,28),Fp=Math.pow(2,35),Hp=Math.pow(2,42),Vp=Math.pow(2,49),zp=Math.pow(2,56),qp=Math.pow(2,63),$p=function(e){return e<Np?1:e<kp?2:e<Mp?3:e<Kp?4:e<Fp?5:e<Hp?6:e<Vp?7:e<zp?8:e<qp?9:10},jp={encode:Tp,decode:Pp,encodingLength:$p},Wp=jp,un=Wp;function hn(e,t=0){return[un.decode(e,t),un.decode.bytes]}function Ar(e,t,r=0){return un.encode(e,t,r),t}function Br(e){return un.encodingLength(e)}function Lr(e,t){let r=t.byteLength,n=Br(e),o=n+Br(r),s=new Uint8Array(o+r);return Ar(e,s,0),Ar(r,s,n),s.set(t,o),new _r(e,r,t,s)}function $f(e){let t=fe(e),[r,n]=hn(t),[o,s]=hn(t.subarray(n)),i=t.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new _r(r,o,i,t)}function jf(e,t){if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&Uf(e.bytes,r.bytes)}}var _r=class{code;size;digest;bytes;constructor(t,r,n,o){this.code=t,this.size=r,this.digest=Ve(n),this.bytes=Ve(o)}};var Wf=0,Gp="identity",Gf=fe;function Zp(e,t){if(t?.truncate!=null&&t.truncate!==e.byteLength){if(t.truncate<0||t.truncate>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,t.truncate)}return Lr(Wf,Gf(e))}var Yp={code:Wf,name:Gp,encode:Gf,digest:Zp};var li={};tt(li,{sha256:()=>Qp,sha512:()=>Jp});var Xp=20;function hi({name:e,code:t,encode:r,minDigestLength:n,maxDigestLength:o}){return new ui(e,t,r,n,o)}var ui=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,r,n,o,s){this.name=t,this.code=r,this.encode=n,this.minDigestLength=o??Xp,this.maxDigestLength=s}digest(t,r){if(r?.truncate!=null){if(r.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&r.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?Zf(n,this.code,r?.truncate):n.then(o=>Zf(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function Zf(e,t,r){if(r!=null&&r!==e.byteLength){if(r>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,r)}return Lr(t,e)}function Xf(e){return async t=>new Uint8Array(await crypto.subtle.digest(e,t))}var Qp=hi({name:"sha2-256",code:18,encode:Xf("SHA-256")}),Jp=hi({name:"sha2-512",code:19,encode:Xf("SHA-512")});function Qf(e,t){let{bytes:r,version:n}=e;return n===0?em(r,di(e),t??Zt.encoder):rm(r,di(e),t??vr.encoder)}var Jf=new WeakMap;function di(e){let t=Jf.get(e);if(t==null){let r=new Map;return Jf.set(e,r),r}return t}var go=class e{code;version;multihash;bytes;"/";constructor(t,r,n,o){this.code=r,this.version=t,this.multihash=n,this.bytes=Ve(o),this["/"]=this.bytes}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!==dn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==nm)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=Lr(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!=null&&t.code===n.code&&t.version===n.version&&jf(t.multihash,n.multihash)}toString(t){return Qf(this,t)}toJSON(){return{"/":Qf(this)}}link(){return this}[Symbol.toStringTag]="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:o,multihash:s,bytes:i}=r;return new e(n,o,s,i??tu(n,o,s.bytes))}else if(r[om]===!0){let{version:n,multihash:o,code:s}=r,i=$f(o);return e.create(n,s,i)}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!==dn)throw new Error(`Version 0 CID must use dag-pb (code: ${dn}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let o=tu(t,r,n.bytes);return new e(t,r,n,o)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,dn,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,o=fe(t.subarray(n,n+r.multihashSize));if(o.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=o.subarray(r.multihashSize-r.digestSize),i=new _r(r.multihashCode,r.digestSize,s,o);return[r.version===0?e.createV0(i):e.createV1(r.codec,i),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[h,y]=hn(t.subarray(r));return r+=y,h},o=n(),s=dn;if(o===18?(o=0,r=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=r,a=n(),c=n(),f=r+c,u=f-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:f}}static parse(t,r){let[n,o]=tm(t,r),s=e.decode(o);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return di(s).set(n,t),s}};function tm(e,t){switch(e[0]){case"Q":{let r=t??Zt;return[Zt.prefix,r.decode(`${Zt.prefix}${e}`)]}case Zt.prefix:{let r=t??Zt;return[Zt.prefix,r.decode(e)]}case vr.prefix:{let r=t??vr;return[vr.prefix,r.decode(e)]}case fn.prefix:{let r=t??fn;return[fn.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}}function em(e,t,r){let{prefix:n}=r;if(n!==Zt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=t.get(n);if(o==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return o}function rm(e,t,r){let{prefix:n}=r,o=t.get(n);if(o==null){let s=r.encode(e);return t.set(n,s),s}else return o}var dn=112,nm=18;function tu(e,t,r){let n=Br(e),o=n+Br(t),s=new Uint8Array(o+r.byteLength);return Ar(e,s,0),Ar(t,s,n),s.set(r,o),s}var om=Symbol.for("@ipld/js-cid/CID");var pi={...ai,...ti,...ii,...Qs,...Js,...ri,...ni,...oi,...si,...ei},gx={...li,...fi};function mi(e=0){return new Uint8Array(e)}function ru(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var eu=ru("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),yi=ru("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=mi(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),sm={utf8:eu,"utf-8":eu,hex:pi.base16,latin1:yi,ascii:yi,binary:yi,...pi},bo=sm;function pt(e,t="utf8"){let r=bo[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}function st(e,t="utf8"){let r=bo[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}var im=parseInt("11111",2),gi=parseInt("10000000",2),am=parseInt("01111111",2),nu={0:pn,1:pn,2:cm,3:hm,4:lm,5:um,6:fm,16:pn,22:pn,48:pn};function ue(e,t={offset:0}){let r=e[t.offset]&im;if(t.offset++,nu[r]!=null)return nu[r](e,t);throw new Error("No decoder for tag "+r)}function mn(e,t){let r=0;if((e[t.offset]&gi)===gi){let n=e[t.offset]&am,o="0x";t.offset++;for(let s=0;s<n;s++,t.offset++)o+=e[t.offset].toString(16).padStart(2,"0");r=parseInt(o,16)}else r=e[t.offset],t.offset++;return r}function pn(e,t){mn(e,t);let r=[];for(;!(t.offset>=e.byteLength);){let n=ue(e,t);if(n===null)break;r.push(n)}return r}function cm(e,t){let r=mn(e,t),n=t.offset,o=t.offset+r,s=[];for(let i=n;i<o;i++)i===n&&e[i]===0||s.push(e[i]);return t.offset+=r,Uint8Array.from(s)}function fm(e,t){let r=mn(e,t),n=t.offset+r,o=e[t.offset];t.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;t.offset<n;){let f=e[t.offset];if(t.offset++,c.push(f&127),f<128){c.reverse();let u=0;for(let h=0;h<c.length;h++)u+=c[h]<<h*7;a+=`.${u}`,c=[]}}return a}function um(e,t){return t.offset++,null}function hm(e,t){let r=mn(e,t),n=e[t.offset];t.offset++;let o=e.subarray(t.offset,t.offset+r-1);if(t.offset+=r,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function lm(e,t){let r=mn(e,t),n=e.subarray(t.offset,t.offset+r);return t.offset+=r,n}function dm(e){let t=e.toString(16);t.length%2===1&&(t="0"+t);let r=new j;for(let n=0;n<t.length;n+=2)r.append(Uint8Array.from([parseInt(`${t[n]}${t[n+1]}`,16)]));return r}function bi(e){if(e.byteLength<128)return Uint8Array.from([e.byteLength]);let t=dm(e.byteLength);return new j(Uint8Array.from([t.byteLength|gi]),t)}function Ct(e){let t=new j,r=128;return(e.subarray()[0]&r)===r&&t.append(Uint8Array.from([0])),t.append(e),new j(Uint8Array.from([2]),bi(t),t)}function xo(e){let t=Uint8Array.from([0]),r=new j(t,e);return new j(Uint8Array.from([3]),bi(r),r)}function Ae(e,t=48){let r=new j;for(let n of e)r.append(n);return new j(Uint8Array.from([t]),bi(r),r)}var pm=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),mm=Uint8Array.from([6,5,43,129,4,0,34]),ym=Uint8Array.from([6,5,43,129,4,0,35]),gm={ext:!0,kty:"EC",crv:"P-256"},bm={ext:!0,kty:"EC",crv:"P-384"},xm={ext:!0,kty:"EC",crv:"P-521"},xi=32,wi=48,Ei=66;function Si(e){let t=ue(e);return ou(t)}function ou(e){let t=e[1][1][0],r=1,n,o;if(t.byteLength===xi*2+1)return n=st(t.subarray(r,r+xi),"base64url"),o=st(t.subarray(r+xi),"base64url"),new Ir({...gm,key_ops:["verify"],x:n,y:o});if(t.byteLength===wi*2+1)return n=st(t.subarray(r,r+wi),"base64url"),o=st(t.subarray(r+wi),"base64url"),new Ir({...bm,key_ops:["verify"],x:n,y:o});if(t.byteLength===Ei*2+1)return n=st(t.subarray(r,r+Ei),"base64url"),o=st(t.subarray(r+Ei),"base64url"),new Ir({...xm,key_ops:["verify"],x:n,y:o});throw new Q(`coordinates were wrong length, got ${t.byteLength}, expected 65, 97 or 133`)}function su(e){return Ae([Ct(Uint8Array.from([1])),Ae([wm(e.crv)],160),Ae([xo(new j(Uint8Array.from([4]),pt(e.x??"","base64url"),pt(e.y??"","base64url")))],161)]).subarray()}function wm(e){if(e==="P-256")return pm;if(e==="P-384")return mm;if(e==="P-521")return ym;throw new Q(`Invalid curve ${e}`)}var Ir=class{type="ECDSA";jwk;_raw;constructor(t){this.jwk=t}get raw(){return this._raw==null&&(this._raw=su(this.jwk)),this._raw}toMultihash(){return Ft.digest(Be(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ft.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}async verify(t,r,n){return Df(this.jwk,r,t,n)}};function vi(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function Yt(e,t=""){if(typeof e!="number"){let r=t&&`"${t}" `;throw new TypeError(`${r}expected number, got ${typeof e}`)}if(!Number.isSafeInteger(e)||e<0){let r=t&&`"${t}" `;throw new RangeError(`${r}expected integer >= 0, got ${e}`)}}function vt(e,t,r=""){let n=vi(e),o=e?.length,s=t!==void 0;if(!n||s&&o!==t){let i=r&&`"${r}" `,a=s?` of length ${t}`:"",c=n?`length=${o}`:`type=${typeof e}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return e}function ze(e){if(typeof e!="function"||typeof e.create!="function")throw new TypeError("Hash must wrapped by utils.createHasher");if(Yt(e.outputLen),Yt(e.blockLen),e.outputLen<1)throw new Error('"outputLen" must be >= 1');if(e.blockLen<1)throw new Error('"blockLen" must be >= 1')}function Cr(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 wo(e,t){vt(e,void 0,"digestInto() output");let r=t.outputLen;if(e.length<r)throw new RangeError('"digestInto() output" expected to be of length >='+r)}function Ht(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Eo(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Vt(e,t){return e<<32-t|e>>>t}var au=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Em=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function So(e){if(vt(e),au)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=Em[e[r]];return t}var he={_0:48,_9:57,A:65,F:70,a:97,f:102};function iu(e){if(e>=he._0&&e<=he._9)return e-he._0;if(e>=he.A&&e<=he.F)return e-(he.A-10);if(e>=he.a&&e<=he.f)return e-(he.a-10)}function yn(e){if(typeof e!="string")throw new TypeError("hex string expected, got "+typeof e);if(au)try{return Uint8Array.fromHex(e)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let t=e.length,r=t/2;if(t%2)throw new RangeError("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,s=0;o<r;o++,s+=2){let i=iu(e.charCodeAt(s)),a=iu(e.charCodeAt(s+1));if(i===void 0||a===void 0){let c=e[s]+e[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ai(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];vt(o),t+=o.length}let r=new Uint8Array(t);for(let n=0,o=0;n<e.length;n++){let s=e[n];r.set(s,o),o+=s.length}return r}function Bi(e,t={}){let r=(o,s)=>e(s).update(o).digest(),n=e(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=o=>e(o),Object.assign(r,t),Object.freeze(r)}function cu(e=32){Yt(e,"bytesLength");let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(e>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${e}`);return t.getRandomValues(new Uint8Array(e))}var _i=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function fu(e,t,r){return e&t^~e&r}function uu(e,t,r){return e&t^e&r^t&r}var gn=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,r,n,o){this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Eo(this.buffer)}update(t){Cr(this),vt(t);let{view:r,buffer:n,blockLen:o}=this,s=t.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=Eo(t);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(t.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Cr(this),wo(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;r[i++]=128,Ht(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let h=i;h<o;h++)r[h]=0;n.setBigUint64(o-8,BigInt(this.length*8),s),this.process(n,0);let a=Eo(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let f=c/4,u=this.get();if(f>u.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<f;h++)a.setUint32(4*h,u[h],s)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||=new this.constructor,t.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return t.destroyed=i,t.finished=s,t.length=o,t.pos=a,o%r&&t.buffer.set(n),t}clone(){return this._cloneInto()}},le=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var xt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var vo=BigInt(4294967295),hu=BigInt(32);function Sm(e,t=!1){return t?{h:Number(e&vo),l:Number(e>>hu&vo)}:{h:Number(e>>hu&vo)|0,l:Number(e&vo)|0}}function lu(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let s=0;s<r;s++){let{h:i,l:a}=Sm(e[s],t);[n[s],o[s]]=[i,a]}return[n,o]}var Li=(e,t,r)=>e>>>r,Ii=(e,t,r)=>e<<32-r|t>>>r,qe=(e,t,r)=>e>>>r|t<<32-r,$e=(e,t,r)=>e<<32-r|t>>>r,bn=(e,t,r)=>e<<64-r|t>>>r-32,xn=(e,t,r)=>e>>>r-32|t<<64-r;function Xt(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var du=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),pu=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,mu=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),yu=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,gu=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0),bu=(e,t,r,n,o,s)=>t+r+n+o+s+(e/2**32|0)|0;var Am=Uint32Array.from([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]),_e=new Uint32Array(64),Ci=class extends gn{constructor(t){super(64,t,8,!1)}get(){let{A:t,B:r,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[t,r,n,o,s,i,a,c]}set(t,r,n,o,s,i,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,r){for(let h=0;h<16;h++,r+=4)_e[h]=t.getUint32(r,!1);for(let h=16;h<64;h++){let y=_e[h-15],p=_e[h-2],d=Vt(y,7)^Vt(y,18)^y>>>3,b=Vt(p,17)^Vt(p,19)^p>>>10;_e[h]=b+_e[h-7]+d+_e[h-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:f,H:u}=this;for(let h=0;h<64;h++){let y=Vt(a,6)^Vt(a,11)^Vt(a,25),p=u+y+fu(a,c,f)+Am[h]+_e[h]|0,b=(Vt(n,2)^Vt(n,13)^Vt(n,22))+uu(n,o,s)|0;u=f,f=c,c=a,a=i+p|0,i=s,s=o,o=n,n=p+b|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,f=f+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,f,u)}roundClean(){Ht(_e)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Ht(this.buffer)}},Ti=class extends Ci{A=le[0]|0;B=le[1]|0;C=le[2]|0;D=le[3]|0;E=le[4]|0;F=le[5]|0;G=le[6]|0;H=le[7]|0;constructor(){super(32)}};var xu=lu(["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))),Bm=xu[0],_m=xu[1],Le=new Uint32Array(80),Ie=new Uint32Array(80),Di=class extends gn{constructor(t){super(128,t,16,!1)}get(){let{Ah:t,Al:r,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:f,El:u,Fh:h,Fl:y,Gh:p,Gl:d,Hh:b,Hl:l}=this;return[t,r,n,o,s,i,a,c,f,u,h,y,p,d,b,l]}set(t,r,n,o,s,i,a,c,f,u,h,y,p,d,b,l){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=o|0,this.Ch=s|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=f|0,this.El=u|0,this.Fh=h|0,this.Fl=y|0,this.Gh=p|0,this.Gl=d|0,this.Hh=b|0,this.Hl=l|0}process(t,r){for(let L=0;L<16;L++,r+=4)Le[L]=t.getUint32(r),Ie[L]=t.getUint32(r+=4);for(let L=16;L<80;L++){let R=Le[L-15]|0,D=Ie[L-15]|0,U=qe(R,D,1)^qe(R,D,8)^Li(R,D,7),T=$e(R,D,1)^$e(R,D,8)^Ii(R,D,7),I=Le[L-2]|0,P=Ie[L-2]|0,M=qe(I,P,19)^bn(I,P,61)^Li(I,P,6),N=$e(I,P,19)^xn(I,P,61)^Ii(I,P,6),m=mu(T,N,Ie[L-7],Ie[L-16]),v=yu(m,U,M,Le[L-7],Le[L-16]);Le[L]=v|0,Ie[L]=m|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:y,Fh:p,Fl:d,Gh:b,Gl:l,Hh:g,Hl:A}=this;for(let L=0;L<80;L++){let R=qe(h,y,14)^qe(h,y,18)^bn(h,y,41),D=$e(h,y,14)^$e(h,y,18)^xn(h,y,41),U=h&p^~h&b,T=y&d^~y&l,I=gu(A,D,T,_m[L],Ie[L]),P=bu(I,g,R,U,Bm[L],Le[L]),M=I|0,N=qe(n,o,28)^bn(n,o,34)^bn(n,o,39),m=$e(n,o,28)^xn(n,o,34)^xn(n,o,39),v=n&s^n&a^s&a,S=o&i^o&c^i&c;g=b|0,A=l|0,b=p|0,l=d|0,p=h|0,d=y|0,{h,l:y}=Xt(f|0,u|0,P|0,M|0),f=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let w=du(M,m,S);n=pu(w,P,N,v),o=w|0}({h:n,l:o}=Xt(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=Xt(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=Xt(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l:u}=Xt(this.Dh|0,this.Dl|0,f|0,u|0),{h,l:y}=Xt(this.Eh|0,this.El|0,h|0,y|0),{h:p,l:d}=Xt(this.Fh|0,this.Fl|0,p|0,d|0),{h:b,l}=Xt(this.Gh|0,this.Gl|0,b|0,l|0),{h:g,l:A}=Xt(this.Hh|0,this.Hl|0,g|0,A|0),this.set(n,o,s,i,a,c,f,u,h,y,p,d,b,l,g,A)}roundClean(){Ht(Le,Ie)}destroy(){this.destroyed=!0,Ht(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Ri=class extends Di{Ah=xt[0]|0;Al=xt[1]|0;Bh=xt[2]|0;Bl=xt[3]|0;Ch=xt[4]|0;Cl=xt[5]|0;Dh=xt[6]|0;Dl=xt[7]|0;Eh=xt[8]|0;El=xt[9]|0;Fh=xt[10]|0;Fl=xt[11]|0;Gh=xt[12]|0;Gl=xt[13]|0;Hh=xt[14]|0;Hl=xt[15]|0;constructor(){super(64)}};var Qt=Bi(()=>new Ti,_i(1));var Ao=Bi(()=>new Ri,_i(3));var V=(e,t,r)=>vt(e,t,r),Pi=Yt,Tr=So,mt=(...e)=>Ai(...e),Dr=e=>yn(e),je=vi,We=e=>cu(e),_o=BigInt(0),Oi=BigInt(1);function zt(e,t=""){if(typeof e!="boolean"){let r=t&&`"${t}" `;throw new TypeError(r+"expected boolean, got type="+typeof e)}return e}function Lo(e){if(typeof e=="bigint"){if(!Bo(e))throw new RangeError("positive bigint expected, got "+e)}else Pi(e);return e}function qt(e,t=""){if(typeof e!="number"){let r=t&&`"${t}" `;throw new TypeError(r+"expected number, got type="+typeof e)}if(!Number.isSafeInteger(e)){let r=t&&`"${t}" `;throw new RangeError(r+"expected safe integer, got "+e)}}function wn(e){let t=Lo(e).toString(16);return t.length&1?"0"+t:t}function wu(e){if(typeof e!="string")throw new TypeError("hex string expected, got "+typeof e);return e===""?_o:BigInt("0x"+e)}function Ge(e){return wu(So(e))}function Tt(e){return wu(So(Ce(vt(e)).reverse()))}function Io(e,t){if(Yt(t),t===0)throw new RangeError("zero length");e=Lo(e);let r=e.toString(16);if(r.length>t*2)throw new RangeError("number too large");return yn(r.padStart(t*2,"0"))}function En(e,t){return Io(e,t).reverse()}function Eu(e,t){if(e=V(e),t=V(t),e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function Ce(e){return Uint8Array.from(V(e))}function Co(e){if(typeof e!="string")throw new TypeError("ascii string expected, got "+typeof e);return Uint8Array.from(e,(t,r)=>{let n=t.charCodeAt(0);if(t.length!==1||n>127)throw new RangeError(`string contains non-ASCII character "${e[r]}" with code ${n} at position ${r}`);return n})}var Bo=e=>typeof e=="bigint"&&_o<=e;function Lm(e,t,r){return Bo(e)&&Bo(t)&&Bo(r)&&t<=e&&e<r}function de(e,t,r,n){if(!Lm(t,r,n))throw new RangeError("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function Rr(e){if(e<_o)throw new Error("expected non-negative bigint, got "+e);let t;for(t=0;e>_o;e>>=Oi,t+=1);return t}var Sn=e=>(Oi<<BigInt(e))-Oi;function Su(e,t,r){if(Yt(e,"hashLen"),Yt(t,"qByteLen"),typeof r!="function")throw new TypeError("hmacFn must be a function");let n=l=>new Uint8Array(l),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(e),f=n(e),u=0,h=()=>{c.fill(1),f.fill(0),u=0},y=(...l)=>r(f,mt(c,...l)),p=(l=o)=>{f=y(s,l),c=y(),l.length!==0&&(f=y(i,l),c=y())},d=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let l=0,g=[];for(;l<t;){c=y();let A=c.slice();g.push(A),l+=c.length}return mt(...g)};return(l,g)=>{h(),p(l);let A;for(;(A=g(d()))===void 0;)p();return h(),A}}function Dt(e,t={},r={}){if(Object.prototype.toString.call(e)!=="[object Object]")throw new TypeError("expected valid options object");function n(s,i,a){if(!a&&i!=="function"&&!Object.hasOwn(e,s))throw new TypeError(`param "${s}" is invalid: expected own property`);let c=e[s];if(a&&c===void 0)return;let f=typeof c;if(f!==i||c===null)throw new TypeError(`param "${s}" is invalid: expected ${i}, got ${f}`)}let o=(s,i)=>Object.entries(s).forEach(([a,c])=>n(a,c,i));o(t,!1),o(r,!0)}var Ui=()=>{throw new Error("not implemented")};var wt=BigInt(0),ht=BigInt(1),Ze=BigInt(2),_u=BigInt(3),Lu=BigInt(4),Iu=BigInt(5),Im=BigInt(7),Cu=BigInt(8),Cm=BigInt(9),Tu=BigInt(16);function it(e,t){if(t<=wt)throw new Error("mod: expected positive modulus, got "+t);let r=e%t;return r>=wt?r:t+r}function et(e,t,r){if(t<wt)throw new Error("pow2: expected non-negative exponent, got "+t);let n=e;for(;t-- >wt;)n*=n,n%=r;return n}function vu(e,t){if(e===wt)throw new Error("invert: expected non-zero number");if(t<=wt)throw new Error("invert: expected positive modulus, got "+t);let r=it(e,t),n=t,o=wt,s=ht,i=ht,a=wt;for(;r!==wt;){let f=n/r,u=n-r*f,h=o-i*f,y=s-a*f;n=r,r=u,o=i,s=a,i=h,a=y}if(n!==ht)throw new Error("invert: does not exist");return it(o,t)}function Ni(e,t,r){let n=e;if(!n.eql(n.sqr(t),r))throw new Error("Cannot find square root")}function Du(e,t){let r=e,n=(r.ORDER+ht)/Lu,o=r.pow(t,n);return Ni(r,o,t),o}function Tm(e,t){let r=e,n=(r.ORDER-Iu)/Cu,o=r.mul(t,Ze),s=r.pow(o,n),i=r.mul(t,s),a=r.mul(r.mul(i,Ze),s),c=r.mul(i,r.sub(a,r.ONE));return Ni(r,c,t),c}function Dm(e){let t=Or(e),r=Ru(e),n=r(t,t.neg(t.ONE)),o=r(t,n),s=r(t,t.neg(n)),i=(e+Im)/Tu;return((a,c)=>{let f=a,u=f.pow(c,i),h=f.mul(u,n),y=f.mul(u,o),p=f.mul(u,s),d=f.eql(f.sqr(h),c),b=f.eql(f.sqr(y),c);u=f.cmov(u,h,d),h=f.cmov(p,y,b);let l=f.eql(f.sqr(h),c),g=f.cmov(u,h,l);return Ni(f,g,c),g})}function Ru(e){if(e<_u)throw new Error("sqrt is not defined for small field");let t=e-ht,r=0;for(;t%Ze===wt;)t/=Ze,r++;let n=Ze,o=Or(e);for(;Au(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return Du;let s=o.pow(n,t),i=(t+ht)/Ze;return function(c,f){let u=c;if(u.is0(f))return f;if(Au(u,f)!==1)throw new Error("Cannot find square root");let h=r,y=u.mul(u.ONE,s),p=u.pow(f,t),d=u.pow(f,i);for(;!u.eql(p,u.ONE);){if(u.is0(p))return u.ZERO;let b=1,l=u.sqr(p);for(;!u.eql(l,u.ONE);)if(b++,l=u.sqr(l),b===h)throw new Error("Cannot find square root");let g=ht<<BigInt(h-b-1),A=u.pow(y,g);h=b,y=u.sqr(A),p=u.mul(p,y),d=u.mul(d,A)}return d}}function Rm(e){return e%Lu===_u?Du:e%Cu===Iu?Tm:e%Tu===Cm?Dm(e):Ru(e)}var pe=(e,t)=>(it(e,t)&ht)===ht,Om=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ki(e){let t={ORDER:"bigint",BYTES:"number",BITS:"number"},r=Om.reduce((n,o)=>(n[o]="function",n),t);if(Dt(e,r),qt(e.BYTES,"BYTES"),qt(e.BITS,"BITS"),e.BYTES<1||e.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(e.ORDER<=ht)throw new Error("invalid field: expected ORDER > 1, got "+e.ORDER);return e}function Pm(e,t,r){let n=e;if(r<wt)throw new Error("invalid exponent, negatives unsupported");if(r===wt)return n.ONE;if(r===ht)return t;let o=n.ONE,s=t;for(;r>wt;)r&ht&&(o=n.mul(o,s)),s=n.sqr(s),r>>=ht;return o}function vn(e,t,r=!1){let n=e,o=new Array(t.length).fill(r?n.ZERO:void 0),s=t.reduce((a,c,f)=>n.is0(c)?a:(o[f]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return t.reduceRight((a,c,f)=>n.is0(c)?a:(o[f]=n.mul(a,o[f]),n.mul(a,c)),i),o}function Au(e,t){let r=e,n=(r.ORDER-ht)/Ze,o=r.pow(t,n),s=r.eql(o,r.ONE),i=r.eql(o,r.ZERO),a=r.eql(o,r.neg(r.ONE));if(!s&&!i&&!a)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function Um(e,t){if(t!==void 0&&Pi(t),e<=wt)throw new Error("invalid n length: expected positive n, got "+e);if(t!==void 0&&t<1)throw new Error("invalid n length: expected positive bit length, got "+t);let r=Rr(e);if(t!==void 0&&t<r)throw new Error(`invalid n length: expected bit length (${r}) >= n.length (${t})`);let n=t!==void 0?t:r,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var Bu=new WeakMap,To=class{ORDER;BITS;BYTES;isLE;ZERO=wt;ONE=ht;_lengths;_mod;constructor(t,r={}){if(t<=ht)throw new Error("invalid field: expected ORDER > 1, got "+t);let n;this.isLE=!1,r!=null&&typeof r=="object"&&(typeof r.BITS=="number"&&(n=r.BITS),typeof r.sqrt=="function"&&Object.defineProperty(this,"sqrt",{value:r.sqrt,enumerable:!0}),typeof r.isLE=="boolean"&&(this.isLE=r.isLE),r.allowedLengths&&(this._lengths=Object.freeze(r.allowedLengths.slice())),typeof r.modFromBytes=="boolean"&&(this._mod=r.modFromBytes));let{nBitLength:o,nByteLength:s}=Um(t,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(t){return it(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof t);return wt<=t&&t<this.ORDER}is0(t){return t===wt}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&ht)===ht}neg(t){return it(-t,this.ORDER)}eql(t,r){return t===r}sqr(t){return it(t*t,this.ORDER)}add(t,r){return it(t+r,this.ORDER)}sub(t,r){return it(t-r,this.ORDER)}mul(t,r){return it(t*r,this.ORDER)}pow(t,r){return Pm(this,t,r)}div(t,r){return it(t*vu(r,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,r){return t+r}subN(t,r){return t-r}mulN(t,r){return t*r}inv(t){return vu(t,this.ORDER)}sqrt(t){let r=Bu.get(this);return r||Bu.set(this,r=Rm(this.ORDER)),r(this,t)}toBytes(t){return this.isLE?En(t,this.BYTES):Io(t,this.BYTES)}fromBytes(t,r=!1){V(t);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(t.length<1||!n.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+t.length);let f=new Uint8Array(o);f.set(t,s?0:f.length-t.length),t=f}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let c=s?Tt(t):Ge(t);if(a&&(c=it(c,i)),!r&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(t){return vn(this,t)}cmov(t,r,n){return zt(n,"condition"),n?r:t}};Object.freeze(To.prototype);function Or(e,t={}){return new To(e,t)}function Ou(e){if(typeof e!="bigint")throw new Error("field order must be bigint");if(e<=ht)throw new Error("field order must be greater than 1");let t=Rr(e-ht);return Math.ceil(t/8)}function Mi(e){let t=Ou(e);return t+Math.ceil(t/2)}function Ki(e,t,r=!1){V(e);let n=e.length,o=Ou(t),s=Math.max(Mi(t),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=r?Tt(e):Ge(e),a=it(i,t-ht)+ht;return r?En(a,o):Io(a,o)}var Pr=BigInt(0),Ye=BigInt(1);function An(e,t){let r=t.negate();return e?r:t}function Xe(e,t){let r=vn(e.Fp,t.map(n=>n.Z));return t.map((n,o)=>e.fromAffine(n.toAffine(r[o])))}function ku(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Fi(e,t){ku(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),o=2**e,s=Sn(e),i=BigInt(e);return{windows:r,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function Pu(e,t,r){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=r,a=Number(e&o),c=e>>i;a>n&&(a-=s,c+=Ye);let f=t*n,u=f+Math.abs(a)-1,h=a===0,y=a<0,p=t%2!==0;return{nextN:c,offset:u,isZero:h,isNeg:y,isNegF:p,offsetF:f}}var Hi=new WeakMap,Mu=new WeakMap;function Vi(e){return Mu.get(e)||1}function Uu(e){if(e!==Pr)throw new Error("invalid wNAF")}var Ur=class{BASE;ZERO;Fn;bits;constructor(t,r){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=r}_unsafeLadder(t,r,n=this.ZERO){let o=t;for(;r>Pr;)r&Ye&&(n=n.add(o)),o=o.double(),r>>=Ye;return n}precomputeWindow(t,r){let{windows:n,windowSize:o}=Fi(r,this.bits),s=[],i=t,a=i;for(let c=0;c<n;c++){a=i,s.push(a);for(let f=1;f<o;f++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(t,r,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Fi(t,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:f,isZero:u,isNeg:h,isNegF:y,offsetF:p}=Pu(n,a,i);n=c,u?s=s.add(An(y,r[p])):o=o.add(An(h,r[f]))}return Uu(n),{p:o,f:s}}wNAFUnsafe(t,r,n,o=this.ZERO){let s=Fi(t,this.bits);for(let i=0;i<s.windows&&n!==Pr;i++){let{nextN:a,offset:c,isZero:f,isNeg:u}=Pu(n,i,s);if(n=a,!f){let h=r[c];o=o.add(u?h.negate():h)}}return Uu(n),o}getPrecomputes(t,r,n){let o=Hi.get(r);return o||(o=this.precomputeWindow(r,t),t!==1&&(typeof n=="function"&&(o=n(o)),Hi.set(r,o))),o}cached(t,r,n){let o=Vi(t);return this.wNAF(o,this.getPrecomputes(o,t,n),r)}unsafe(t,r,n,o){let s=Vi(t);return s===1?this._unsafeLadder(t,r,o):this.wNAFUnsafe(s,this.getPrecomputes(s,t,n),r,o)}createCache(t,r){ku(r,this.bits),Mu.set(t,r),Hi.delete(t)}hasCache(t){return Vi(t)!==1}};function Ku(e,t,r,n){let o=t,s=e.ZERO,i=e.ZERO;for(;r>Pr||n>Pr;)r&Ye&&(s=s.add(o)),n&Ye&&(i=i.add(o)),o=o.double(),r>>=Ye,n>>=Ye;return{p1:s,p2:i}}function Nu(e,t,r){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return ki(t),t}else return Or(e,{isLE:r})}function Do(e,t,r={},n){if(n===void 0&&(n=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(let c of["p","n","h"]){let f=t[c];if(!(typeof f=="bigint"&&f>Pr))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Nu(t.p,r.Fp,n),s=Nu(t.n,r.Fn,n),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:s}}function Nr(e,t){return function(n){let o=e(n);return{secretKey:o,publicKey:t(o)}}}var Te=BigInt(0),gt=BigInt(1),zi=BigInt(2),Nm=BigInt(8);function km(e,t,r,n){let o=e.sqr(r),s=e.sqr(n),i=e.add(e.mul(t.a,o),s),a=e.add(e.ONE,e.mul(t.d,e.mul(o,s)));return e.eql(i,a)}function Fu(e,t={}){let r=t,n=Do("edwards",e,r,r.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;Dt(r,{},{uvRatio:"function"});let c=zi<<BigInt(s.BYTES*8)-gt,f=b=>o.create(b),u=r.uvRatio===void 0?(b,l)=>{try{return{isValid:!0,value:o.sqrt(o.div(b,l))}}catch{return{isValid:!1,value:Te}}}:r.uvRatio;if(!km(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");function h(b,l,g=!1){let A=g?gt:Te;return de("coordinate "+b,l,A,c),l}function y(b){if(!(b instanceof p))throw new Error("EdwardsPoint expected")}class p{static BASE=new p(i.Gx,i.Gy,gt,f(i.Gx*i.Gy));static ZERO=new p(Te,gt,gt,Te);static Fp=o;static Fn=s;X;Y;Z;T;constructor(l,g,A,L){this.X=h("x",l),this.Y=h("y",g),this.Z=h("z",A,!0),this.T=h("t",L),Object.freeze(this)}static CURVE(){return i}static fromAffine(l){if(l instanceof p)throw new Error("extended point not allowed");let{x:g,y:A}=l||{};return h("x",g),h("y",A),new p(g,A,gt,f(g*A))}static fromBytes(l,g=!1){let A=o.BYTES,{a:L,d:R}=i;l=Ce(V(l,A,"point")),zt(g,"zip215");let D=Ce(l),U=l[A-1];D[A-1]=U&-129;let T=Tt(D),I=g?c:o.ORDER;de("point.y",T,Te,I);let P=f(T*T),M=f(P-gt),N=f(R*P-L),{isValid:m,value:v}=u(M,N);if(!m)throw new Error("bad point: invalid y coordinate");let S=(v&gt)===gt,w=(U&128)!==0;if(!g&&v===Te&&w)throw new Error("bad point: x=0 and x_0=1");return w!==S&&(v=f(-v)),p.fromAffine({x:v,y:T})}static fromHex(l,g=!1){return p.fromBytes(Dr(l),g)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(l=8,g=!0){return d.createCache(this,l),g||this.multiply(zi),this}assertValidity(){let l=this,{a:g,d:A}=i;if(l.is0())throw new Error("bad point: ZERO");let{X:L,Y:R,Z:D,T:U}=l,T=f(L*L),I=f(R*R),P=f(D*D),M=f(P*P),N=f(T*g),m=f(P*f(N+I)),v=f(M+f(A*f(T*I)));if(m!==v)throw new Error("bad point: equation left != right (1)");let S=f(L*R),w=f(D*U);if(S!==w)throw new Error("bad point: equation left != right (2)")}equals(l){y(l);let{X:g,Y:A,Z:L}=this,{X:R,Y:D,Z:U}=l,T=f(g*U),I=f(R*L),P=f(A*U),M=f(D*L);return T===I&&P===M}is0(){return this.equals(p.ZERO)}negate(){return new p(f(-this.X),this.Y,this.Z,f(-this.T))}double(){let{a:l}=i,{X:g,Y:A,Z:L}=this,R=f(g*g),D=f(A*A),U=f(zi*f(L*L)),T=f(l*R),I=g+A,P=f(f(I*I)-R-D),M=T+D,N=M-U,m=T-D,v=f(P*N),S=f(M*m),w=f(P*m),x=f(N*M);return new p(v,S,x,w)}add(l){y(l);let{a:g,d:A}=i,{X:L,Y:R,Z:D,T:U}=this,{X:T,Y:I,Z:P,T:M}=l,N=f(L*T),m=f(R*I),v=f(U*A*M),S=f(D*P),w=f((L+R)*(T+I)-N-m),x=S-v,B=S+v,_=f(m-g*N),E=f(w*x),C=f(B*_),O=f(w*_),k=f(x*B);return new p(E,C,k,O)}subtract(l){return y(l),this.add(l.negate())}multiply(l){if(!s.isValidNot0(l))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:g,f:A}=d.cached(this,l,L=>Xe(p,L));return Xe(p,[g,A])[0]}multiplyUnsafe(l){if(!s.isValid(l))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return l===Te?p.ZERO:this.is0()||l===gt?this:d.unsafe(this,l,g=>Xe(p,g))}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return d.unsafe(this,i.n).is0()}toAffine(l){let g=this,A=l,{X:L,Y:R,Z:D}=g,U=g.is0();A==null&&(A=U?Nm:o.inv(D));let T=f(L*A),I=f(R*A),P=o.mul(D,A);if(U)return{x:Te,y:gt};if(P!==gt)throw new Error("invZ was invalid");return{x:T,y:I}}clearCofactor(){return a===gt?this:this.multiplyUnsafe(a)}toBytes(){let{x:l,y:g}=this.toAffine(),A=o.toBytes(g);return A[A.length-1]|=l&gt?128:0,A}toHex(){return Tr(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let d=new Ur(p,s.BITS);return s.BITS>=8&&p.BASE.precompute(8),Object.freeze(p.prototype),Object.freeze(p),p}var Ro=class{static BASE;static ZERO;static Fp;static Fn;ep;constructor(t){this.ep=t}static fromBytes(t){Ui()}static fromHex(t){Ui()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(t){return this.ep.toAffine(t)}toHex(){return Tr(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(t){return this.assertSame(t),this.init(this.ep.add(t.ep))}subtract(t){return this.assertSame(t),this.init(this.ep.subtract(t.ep))}multiply(t){return this.init(this.ep.multiply(t))}multiplyUnsafe(t){return this.init(this.ep.multiplyUnsafe(t))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(t,r){return this.ep.precompute(t,r),this}};function Hu(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');let n=t,o=r;Dt(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=e,f=n.outputLen,u=2*a.BYTES;if(f!==void 0&&(qt(f,"hash.outputLen"),f!==u))throw new Error(`hash.outputLen must be ${u}, got ${f}`);let h=o.randomBytes===void 0?We:o.randomBytes,y=o.adjustScalarBytes===void 0?m=>m:o.adjustScalarBytes,p=o.domain===void 0?(m,v,S)=>{if(zt(S,"phflag"),v.length||S)throw new Error("Contexts/pre-hash are not supported");return m}:o.domain;function d(m){return c.create(Tt(m))}function b(m){let v=T.secretKey;V(m,T.secretKey,"secretKey");let S=V(n(m),2*v,"hashedSecretKey"),w=y(S.slice(0,v)),x=S.slice(v,2*v),B=d(w);return{head:w,prefix:x,scalar:B}}function l(m){let{head:v,prefix:S,scalar:w}=b(m),x=i.multiply(w),B=x.toBytes();return{head:v,prefix:S,scalar:w,point:x,pointBytes:B}}function g(m){return l(m).pointBytes}function A(m=Uint8Array.of(),...v){let S=mt(...v);return d(n(p(S,V(m,void 0,"context"),!!s)))}function L(m,v,S={}){m=V(m,void 0,"message"),s&&(m=s(m));let{prefix:w,scalar:x,pointBytes:B}=l(v),_=A(S.context,w,m),E=i.multiply(_).toBytes(),C=A(S.context,E,B,m),O=c.create(_+C*x);if(!c.isValid(O))throw new Error("sign failed: invalid s");let k=mt(E,c.toBytes(O));return V(k,T.signature,"result")}let R={zip215:o.zip215};function D(m,v,S,w=R){let{context:x}=w,B=w.zip215===void 0?!!R.zip215:w.zip215,_=T.signature;m=V(m,_,"signature"),v=V(v,void 0,"message"),S=V(S,T.publicKey,"publicKey"),B!==void 0&&zt(B,"zip215"),s&&(v=s(v));let E=_/2,C=m.subarray(0,E),O=Tt(m.subarray(E,_)),k,H,F;try{k=e.fromBytes(S,B),H=e.fromBytes(C,B),F=i.multiplyUnsafe(O)}catch{return!1}if(!B&&k.isSmallOrder())return!1;let Z=A(x,C,S,v);return H.add(k.multiplyUnsafe(Z)).subtract(F).clearCofactor().is0()}let U=a.BYTES,T={secretKey:U,publicKey:U,signature:2*U,seed:U};function I(m){return m=m===void 0?h(T.seed):m,V(m,T.seed,"seed")}function P(m){return je(m)&&m.length===T.secretKey}function M(m,v){try{return!!e.fromBytes(m,v===void 0?R.zip215:v)}catch{return!1}}let N={getExtendedPublicKey:l,randomSecretKey:I,isValidSecretKey:P,isValidPublicKey:M,toMontgomery(m){let{y:v}=e.fromBytes(m),S=T.publicKey,w=S===32;if(!w&&S!==57)throw new Error("only defined for 25519 and 448");let x=w?a.div(gt+v,gt-v):a.div(v-gt,v+gt);return a.toBytes(x)},toMontgomerySecret(m){let v=T.secretKey;V(m,v);let S=n(m.subarray(0,v));return y(S).subarray(0,v)}};return Object.freeze(T),Object.freeze(N),Object.freeze({keygen:Nr(I,g),getPublicKey:g,sign:L,verify:D,utils:N,Point:e,lengths:T})}function Bn(e,t){if(qt(e),qt(t),t<0||t>4)throw new Error("invalid I2OSP length: "+t);if(e<0||e>2**(8*t)-1)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function Mm(e,t){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return r}function Km(e){if(!je(e)&&typeof e!="string")throw new Error("DST must be Uint8Array or ascii string");let t=typeof e=="string"?Co(e):e;if(t.length===0)throw new Error("DST must be non-empty");return t}function qi(e,t,r,n){V(e),qt(r),t=Km(t),t.length>255&&(t=n(mt(Co("H2C-OVERSIZE-DST-"),t)));let{outputLen:o,blockLen:s}=n,i=Math.ceil(r/o);if(r>65535||i>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=mt(t,Bn(t.length,1)),c=new Uint8Array(s),f=Bn(r,2),u=new Array(i),h=n(mt(c,e,f,Bn(0,1),a));u[0]=n(mt(h,Bn(1,1),a));for(let p=1;p<i;p++){let d=[Mm(h,u[p-1]),Bn(p+1,1),a];u[p]=n(mt(...d))}return mt(...u).slice(0,r)}var Vu="HashToScalar-";var _n=BigInt(0),kr=BigInt(1),Oo=BigInt(2);function Fm(e){return Dt(e,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function"}),Object.freeze({...e})}function zu(e){let t=Fm(e),{P:r,type:n,adjustScalarBytes:o,powPminus2:s,randomBytes:i}=t,a=n==="x25519";if(!a&&n!=="x448")throw new Error("invalid type");let c=i===void 0?We:i,f=a?255:448,u=a?32:56,h=BigInt(a?9:5),y=BigInt(a?121665:39081),p=a?Oo**BigInt(254):Oo**BigInt(447),d=a?BigInt(8)*Oo**BigInt(251)-kr:BigInt(4)*Oo**BigInt(445)-kr,b=p+d+kr,l=S=>it(S,r),g=A(h);function A(S){return En(l(S),u)}function L(S){let w=Ce(V(S,u,"uCoordinate"));return a&&(w[31]&=127),l(Tt(w))}function R(S){return Tt(o(Ce(V(S,u,"scalar"))))}function D(S,w){let x=M(L(w),R(S));if(x===_n)throw new Error("invalid private or public key received");return A(x)}function U(S){return D(S,g)}let T=U,I=D;function P(S,w,x){let B=l(S*(w-x));return w=l(w-B),x=l(x+B),{x_2:w,x_3:x}}function M(S,w){de("u",S,_n,r),de("scalar",w,p,b);let x=w,B=S,_=kr,E=_n,C=S,O=kr,k=_n;for(let F=BigInt(f-1);F>=_n;F--){let Z=x>>F&kr;k^=Z,{x_2:_,x_3:C}=P(k,_,C),{x_2:E,x_3:O}=P(k,E,O),k=Z;let Y=_+E,X=l(Y*Y),$=_-E,ot=l($*$),se=X-ot,Ke=C+O,dr=C-O,tn=l(dr*Y),en=l(Ke*$),df=tn+en,pf=tn-en;C=l(df*df),O=l(B*l(pf*pf)),_=l(X*ot),E=l(se*(X+l(y*se)))}({x_2:_,x_3:C}=P(k,_,C)),{x_2:E,x_3:O}=P(k,E,O);let H=s(E);return l(_*H)}let N={secretKey:u,publicKey:u,seed:u},m=S=>(S=S===void 0?c(u):S,V(S,N.seed,"seed"),S),v={randomSecretKey:m};return Object.freeze(N),Object.freeze(v),Object.freeze({keygen:Nr(m,T),getSharedSecret:I,getPublicKey:T,scalarMult:D,scalarMultBase:U,utils:v,GuBytes:g.slice(),lengths:N})}var Hm=BigInt(0),me=BigInt(1),qu=BigInt(2),Vm=BigInt(3),zm=BigInt(5),qm=BigInt(8),Qe=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),Gi={p:Qe,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:qm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Wu(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),o=BigInt(80),s=Qe,a=e*e%s*e%s,c=et(a,qu,s)*a%s,f=et(c,me,s)*e%s,u=et(f,zm,s)*f%s,h=et(u,t,s)*u%s,y=et(h,r,s)*h%s,p=et(y,n,s)*y%s,d=et(p,o,s)*p%s,b=et(d,o,s)*p%s,l=et(b,t,s)*u%s;return{pow_p_5_8:et(l,qu,s)*e%s,b2:a}}function Gu(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var $i=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Zi(e,t){let r=Qe,n=it(t*t*t,r),o=it(n*n*t,r),s=Wu(e*o).pow_p_5_8,i=it(e*n*s,r),a=it(t*i*i,r),c=i,f=it(i*$i,r),u=a===e,h=a===it(-e,r),y=a===it(-e*$i,r);return u&&(i=c),(h||y)&&(i=f),pe(i,r)&&(i=it(-i,r)),{isValid:u||h,value:i}}var Re=Fu(Gi,{uvRatio:Zi}),De=Re.Fp,Zu=Re.Fn;function $m(e){return Hu(Re,Ao,Object.assign({adjustScalarBytes:Gu,zip215:!0},e))}var Yu=$m({});var Ln=(()=>{let e=Qe;return zu({P:e,type:"x25519",powPminus2:t=>{let{pow_p_5_8:r,b2:n}=Wu(t);return it(et(r,Vm,e)*n,e)},adjustScalarBytes:Gu})})();var ji=$i,jm=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Wm=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Gm=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Zm=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),$u=e=>Zi(me,e),Ym=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Wi=e=>De.create(Tt(e)&Ym);function ju(e){let{d:t}=Gi,r=Qe,n=g=>De.create(g),o=n(ji*e*e),s=n((o+me)*Gm),i=BigInt(-1),a=n((i-t*o)*n(o+t)),{isValid:c,value:f}=Zi(s,a),u=n(f*e);pe(u,r)||(u=n(-u)),c||(f=u),c||(i=o);let h=n(i*(o-me)*Zm-a),y=f*f,p=n((f+f)*a),d=n(h*jm),b=n(me-y),l=n(me+y);return new Re(n(p*l),n(b*d),n(d*l),n(p*b))}var Oe=class e extends Ro{static BASE=new e(Re.BASE);static ZERO=new e(Re.ZERO);static Fp=De;static Fn=Zu;constructor(t){super(t)}static fromAffine(t){return new e(Re.fromAffine(t))}assertSame(t){if(!(t instanceof e))throw new Error("RistrettoPoint expected")}init(t){return new e(t)}static fromBytes(t){vt(t,32);let{a:r,d:n}=Gi,o=Qe,s=R=>De.create(R),i=Wi(t);if(!Eu(De.toBytes(i),t)||pe(i,o))throw new Error("invalid ristretto255 encoding 1");let a=s(i*i),c=s(me+r*a),f=s(me-r*a),u=s(c*c),h=s(f*f),y=s(r*n*u-h),{isValid:p,value:d}=$u(s(y*h)),b=s(d*f),l=s(d*b*y),g=s((i+i)*b);pe(g,o)&&(g=s(-g));let A=s(c*l),L=s(g*A);if(!p||pe(L,o)||A===Hm)throw new Error("invalid ristretto255 encoding 2");return new e(new Re(g,A,me,L))}static fromHex(t){return e.fromBytes(yn(t))}toBytes(){let{X:t,Y:r,Z:n,T:o}=this.ep,s=Qe,i=l=>De.create(l),a=i(i(n+r)*i(n-r)),c=i(t*r),f=i(c*c),{value:u}=$u(i(a*f)),h=i(u*a),y=i(u*c),p=i(h*y*o),d;if(pe(o*p,s)){let l=i(r*ji),g=i(t*ji);t=l,r=g,d=i(h*Wm)}else d=y;pe(t*p,s)&&(r=i(-r));let b=i((n-r)*d);return pe(b,s)&&(b=i(-b)),De.toBytes(b)}equals(t){this.assertSame(t);let{X:r,Y:n}=this.ep,{X:o,Y:s}=t.ep,i=f=>De.create(f),a=i(r*s)===i(n*o),c=i(n*s)===i(r*o);return a||c}is0(){return this.equals(e.ZERO)}};Object.freeze(Oe.BASE);Object.freeze(Oe.ZERO);Object.freeze(Oe.prototype);Object.freeze(Oe);var Xm=Object.freeze({Point:Oe,hashToCurve(e,t){let r=t?.DST===void 0?"ristretto255_XMD:SHA-512_R255MAP_RO_":t.DST,n=qi(e,r,64,Ao);return Xm.deriveToCurve(n)},hashToScalar(e,t={DST:Vu}){let r=qi(e,t.DST,64,Ao);return Zu.create(Tt(r))},deriveToCurve(e){vt(e,64);let t=Wi(e.subarray(0,32)),r=ju(t),n=Wi(e.subarray(32,64)),o=ju(n);return new Oe(r.add(o))}});var In=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},Po=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Nt={get(e=globalThis){let t=e.crypto;if(t?.subtle==null)throw new Po("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/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var Uo=32;var Yi,Qm=(async()=>{try{return await Nt.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function Jm(e,t,r){if(e.buffer instanceof ArrayBuffer){let n=await Nt.get().subtle.importKey("raw",e.buffer,{name:"Ed25519"},!1,["verify"]);return await Nt.get().subtle.verify({name:"Ed25519"},n,Ut(t),Ut(r instanceof Uint8Array?r:r.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function t0(e,t,r){return Yu.verify(t,r instanceof Uint8Array?r:r.subarray(),e)}async function Xu(e,t,r){return Yi==null&&(Yi=await Qm),Yi?Jm(e,t,r):t0(e,t,r)}function No(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}var ko=class{type="Ed25519";raw;constructor(t){this.raw=Xi(t,Uo)}toMultihash(){return Ft.digest(Be(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ft.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}verify(t,r,n){n?.signal?.throwIfAborted();let o=Xu(this.raw,r,t);return No(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Qi(e){return e=Xi(e,Uo),new ko(e)}function Xi(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new Q(`Key must be a Uint8Array of length ${t}, got ${e.length}`);return e}function Ju(e=0){return new Uint8Array(e)}var r0=Math.pow(2,7),n0=Math.pow(2,14),o0=Math.pow(2,21),Ji=Math.pow(2,28),ta=Math.pow(2,35),ea=Math.pow(2,42),ra=Math.pow(2,49),G=128,At=127;function lt(e){if(e<r0)return 1;if(e<n0)return 2;if(e<o0)return 3;if(e<Ji)return 4;if(e<ta)return 5;if(e<ea)return 6;if(e<ra)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Pe(e,t,r=0){switch(lt(e)){case 8:t[r++]=e&255|G,e/=128;case 7:t[r++]=e&255|G,e/=128;case 6:t[r++]=e&255|G,e/=128;case 5:t[r++]=e&255|G,e/=128;case 4:t[r++]=e&255|G,e>>>=7;case 3:t[r++]=e&255|G,e>>>=7;case 2:t[r++]=e&255|G,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function s0(e,t,r=0){switch(lt(e)){case 8:t.set(r++,e&255|G),e/=128;case 7:t.set(r++,e&255|G),e/=128;case 6:t.set(r++,e&255|G),e/=128;case 5:t.set(r++,e&255|G),e/=128;case 4:t.set(r++,e&255|G),e>>>=7;case 3:t.set(r++,e&255|G),e>>>=7;case 2:t.set(r++,e&255|G),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function Cn(e,t){let r=e[t],n=0;if(n+=r&At,r<G||(r=e[t+1],n+=(r&At)<<7,r<G)||(r=e[t+2],n+=(r&At)<<14,r<G)||(r=e[t+3],n+=(r&At)<<21,r<G)||(r=e[t+4],n+=(r&At)*Ji,r<G)||(r=e[t+5],n+=(r&At)*ta,r<G)||(r=e[t+6],n+=(r&At)*ea,r<G)||(r=e[t+7],n+=(r&At)*ra,r<G))return n;throw new RangeError("Could not decode varint")}function i0(e,t){let r=e.get(t),n=0;if(n+=r&At,r<G||(r=e.get(t+1),n+=(r&At)<<7,r<G)||(r=e.get(t+2),n+=(r&At)<<14,r<G)||(r=e.get(t+3),n+=(r&At)<<21,r<G)||(r=e.get(t+4),n+=(r&At)*Ji,r<G)||(r=e.get(t+5),n+=(r&At)*ta,r<G)||(r=e.get(t+6),n+=(r&At)*ea,r<G)||(r=e.get(t+7),n+=(r&At)*ra,r<G))return n;throw new RangeError("Could not decode varint")}function th(e,t,r=0){return t==null&&(t=Ju(lt(e))),t instanceof Uint8Array?Pe(e,t,r):s0(e,t,r)}function Je(e,t=0){return e instanceof Uint8Array?Cn(e,t):i0(e,t)}var oa=new Float32Array([-0]),Ue=new Uint8Array(oa.buffer);function eh(e,t,r){oa[0]=e,t[r]=Ue[0],t[r+1]=Ue[1],t[r+2]=Ue[2],t[r+3]=Ue[3]}function rh(e,t){return Ue[0]=e[t],Ue[1]=e[t+1],Ue[2]=e[t+2],Ue[3]=e[t+3],oa[0]}var sa=new Float64Array([-0]),Bt=new Uint8Array(sa.buffer);function nh(e,t,r){sa[0]=e,t[r]=Bt[0],t[r+1]=Bt[1],t[r+2]=Bt[2],t[r+3]=Bt[3],t[r+4]=Bt[4],t[r+5]=Bt[5],t[r+6]=Bt[6],t[r+7]=Bt[7]}function oh(e,t){return Bt[0]=e[t],Bt[1]=e[t+1],Bt[2]=e[t+2],Bt[3]=e[t+3],Bt[4]=e[t+4],Bt[5]=e[t+5],Bt[6]=e[t+6],Bt[7]=e[t+7],sa[0]}var a0=BigInt(Number.MAX_SAFE_INTEGER),c0=BigInt(Number.MIN_SAFE_INTEGER),Rt=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return tr;if(t<a0&&t>c0)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,o=t-(n<<32n);return r&&(n=~n|0n,o=~o|0n,++o>sh&&(o=0n,++n>sh&&(n=0n))),new e(Number(o),Number(n))}static fromNumber(t){if(t===0)return tr;let r=t<0;r&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new e(n,o)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):tr}},tr=new Rt(0,0);tr.toBigInt=function(){return 0n};tr.zzEncode=tr.zzDecode=function(){return this};tr.length=function(){return 1};var sh=4294967296n;function ih(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function ah(e,t,r){if(r-t<1)return"";let o,s=[],i=0,a;for(;t<r;)a=e[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function ia(e,t,r){let n=r,o,s;for(let i=0;i<e.length;++i)o=e.charCodeAt(i),o<128?t[r++]=o:o<2048?(t[r++]=o>>6|192,t[r++]=o&63|128):(o&64512)===55296&&((s=e.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[r++]=o>>18|240,t[r++]=o>>12&63|128,t[r++]=o>>6&63|128,t[r++]=o&63|128):(t[r++]=o>>12|224,t[r++]=o>>6&63|128,t[r++]=o&63|128);return r-n}function $t(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function Mo(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var aa=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,$t(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw $t(this,4);return Mo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw $t(this,4);return Mo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw $t(this,4);let t=rh(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw $t(this,4);let t=oh(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw $t(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return ah(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw $t(this,t);this.pos+=t}else do if(this.pos>=this.len)throw $t(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Rt(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw $t(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw $t(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw $t(this,8);let t=Mo(this.buf,this.pos+=4),r=Mo(this.buf,this.pos+=4);return new Rt(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Cn(this.buf,this.pos);return this.pos+=lt(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Tn(e){return new aa(e instanceof Uint8Array?e:e.subarray())}function Ko(e,t,r){let n=Tn(e);return t.decode(n,void 0,r)}function er(e=0){return new Uint8Array(e)}var ca={};tt(ca,{base10:()=>f0});var f0=Ee({prefix:"9",name:"base10",alphabet:"0123456789"});var fa={};tt(fa,{base16:()=>u0,base16upper:()=>h0});var u0=ct({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),h0=ct({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ua={};tt(ua,{base2:()=>l0});var l0=ct({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ha={};tt(ha,{base256emoji:()=>g0});var fh=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}"),d0=fh.reduce((e,t,r)=>(e[r]=t,e),[]),p0=fh.reduce((e,t,r)=>{let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);return e[n]=r,e},[]);function m0(e){return e.reduce((t,r)=>(t+=d0[r],t),"")}function y0(e){let t=[];for(let r of e){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=p0[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);t.push(o)}return new Uint8Array(t)}var g0=br({prefix:"\u{1F680}",name:"base256emoji",encode:m0,decode:y0});var da={};tt(da,{base64:()=>b0,base64pad:()=>x0,base64url:()=>la,base64urlpad:()=>w0});var b0=ct({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),x0=ct({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),la=ct({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),w0=ct({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var pa={};tt(pa,{base8:()=>E0});var E0=ct({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ma={};tt(ma,{identity:()=>S0});var S0=br({prefix:"\0",name:"identity",encode:e=>xf(e),decode:e=>bf(e)});var A1=new TextEncoder,B1=new TextDecoder;var ba={};tt(ba,{sha256:()=>Dn,sha512:()=>_0});var B0=20;function ga({name:e,code:t,encode:r,minDigestLength:n,maxDigestLength:o}){return new ya(e,t,r,n,o)}var ya=class{name;code;encode;minDigestLength;maxDigestLength;constructor(t,r,n,o,s){this.name=t,this.code=r,this.encode=n,this.minDigestLength=o??B0,this.maxDigestLength=s}digest(t,r){if(r?.truncate!=null){if(r.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&r.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(t instanceof Uint8Array){let n=this.encode(t);return n instanceof Uint8Array?uh(n,this.code,r?.truncate):n.then(o=>uh(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function uh(e,t,r){if(r!=null&&r!==e.byteLength){if(r>e.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${e.byteLength}`);e=e.subarray(0,r)}return Kt(t,e)}function lh(e){return async t=>new Uint8Array(await crypto.subtle.digest(e,t))}var Dn=ga({name:"sha2-256",code:18,encode:lh("SHA-256")}),_0=ga({name:"sha2-512",code:19,encode:lh("SHA-512")});var Ot={...ma,...ua,...pa,...ca,...fa,...Hs,...Vs,...Fs,...da,...ha},k1={...ba,...js};function ph(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var dh=ph("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),xa=ph("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=er(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),L0={utf8:dh,"utf-8":dh,hex:Ot.base16,latin1:xa,ascii:xa,binary:xa,...Ot},mh=L0;function yh(e,t="utf8"){let r=mh[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}function wa(e){let t=e??8192,r=t>>>1,n,o=t;return function(i){if(i<1||i>r)return er(i);o+i>t&&(n=er(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var rr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Ea(){}var va=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},I0=wa();function C0(e){return globalThis.Buffer!=null?er(e):I0(e)}var On=class{len;head;tail;states;constructor(){this.len=0,this.head=new rr(Ea,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new rr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Aa((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Fo,10,Rt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=Rt.fromBigInt(t);return this._push(Fo,r.length(),r)}uint64Number(t){return this._push(Pe,lt(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=Rt.fromBigInt(t).zzEncode();return this._push(Fo,r.length(),r)}sint64Number(t){let r=Rt.fromNumber(t).zzEncode();return this._push(Fo,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Sa,1,t?1:0)}fixed32(t){return this._push(Rn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=Rt.fromBigInt(t);return this._push(Rn,4,r.lo)._push(Rn,4,r.hi)}fixed64Number(t){let r=Rt.fromNumber(t);return this._push(Rn,4,r.lo)._push(Rn,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(eh,4,t)}double(t){return this._push(nh,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Sa,1,0):this.uint32(r)._push(D0,r,t)}string(t){let r=ih(t);return r!==0?this.uint32(r)._push(ia,r,t):this._push(Sa,1,0)}fork(){return this.states=new va(this),this.head=this.tail=new rr(Ea,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new rr(Ea,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=C0(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Sa(e,t,r){t[r]=e&255}function T0(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Aa=class extends rr{next;constructor(t,r){super(T0,t,r),this.next=void 0}};function Fo(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Rn(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function D0(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(On.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(R0,t,e),this},On.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(O0,t,e),this});function R0(e,t,r){t.set(e,r)}function O0(e,t,r){e.length<40?ia(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(yh(e),r)}function Ba(){return new On}function Ho(e,t){let r=Ba();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}function*Vo(e,t,r){let n=Tn(e);yield*t.stream(n,void 0,"$",r)}var zo={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function qo(e,t,r,n,o){return{name:e,type:t,encode:r,decode:n,stream:o}}function _a(e){function t(s){if(e[s.toString()]==null)throw new Error("Invalid enum value");return e[s]}let r=function(i,a){let c=t(i);a.int32(c)},n=function(i){let a=i.int32();return t(a)},o=function*(i){let a=i.int32();yield t(a)};return qo("enum",zo.VARINT,r,n,o)}function $o(e,t,r){return qo("message",zo.LENGTH_DELIMITED,e,t,r)}var at;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.secp256k1="secp256k1",e.ECDSA="ECDSA"})(at||(at={}));var La;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.secp256k1=2]="secp256k1",e[e.ECDSA=3]="ECDSA"})(La||(La={}));(function(e){e.codec=()=>_a(La)})(at||(at={}));var Jt;(function(e){let t;e.codec=()=>(t==null&&(t=$o((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),at.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=at.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:at.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function r(s){return Ho(s,e.codec())}e.encode=r;function n(s,i){return Ko(s,e.codec(),i)}e.decode=n;function o(s,i){return Vo(s,e.codec(),i)}e.stream=o})(Jt||(Jt={}));var Ia;(function(e){let t;e.codec=()=>(t==null&&(t=$o((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),at.codec().encode(s.Type,i)),s.Data!=null&&(i.uint32(18),i.bytes(s.Data)),a.lengthDelimited!==!1&&i.ldelim()},(s,i,a={})=>{let c={},f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{c.Type=at.codec().decode(s);break}case 2:{c.Data=s.bytes();break}default:{s.skipType(u&7);break}}}return c},function*(s,i,a,c={}){let f=i==null?s.len:s.pos+i;for(;s.pos<f;){let u=s.uint32();switch(u>>>3){case 1:{yield{field:`${a}.Type`,value:at.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),t);function r(s){return Ho(s,e.codec())}e.encode=r;function n(s,i){return Ko(s,e.codec(),i)}e.decode=n;function o(s,i){return Vo(s,e.codec(),i)}e.stream=o})(Ia||(Ia={}));var Un={};tt(Un,{MAX_RSA_KEY_SIZE:()=>Ca,generateRSAKeyPair:()=>Eh,jwkToJWKKeyPair:()=>Sh,jwkToPkcs1:()=>k0,jwkToPkix:()=>Oa,jwkToRSAPrivateKey:()=>ka,pkcs1MessageToJwk:()=>Da,pkcs1MessageToRSAPrivateKey:()=>Pa,pkcs1ToJwk:()=>N0,pkcs1ToRSAPrivateKey:()=>wh,pkixMessageToJwk:()=>Ra,pkixMessageToRSAPublicKey:()=>Na,pkixToJwk:()=>M0,pkixToRSAPublicKey:()=>Ua});var Mr=class{type="RSA";jwk;_raw;_multihash;constructor(t,r){this.jwk=t,this._multihash=r}get raw(){return this._raw==null&&(this._raw=Un.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return dt.createV1(114,this._multihash)}toString(){return ft.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}verify(t,r,n){return xh(this.jwk,r,t,n)}},Pn=class{type="RSA";jwk;_raw;publicKey;constructor(t,r){this.jwk=t,this.publicKey=r}get raw(){return this._raw==null&&(this._raw=Un.jwkToPkcs1(this.jwk)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}sign(t,r){return bh(this.jwk,t,r)}};var Ca=8192,Ta=18,P0=1062,U0=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function N0(e){let t=ue(e);return Da(t)}function Da(e){return{n:st(e[1],"base64url"),e:st(e[2],"base64url"),d:st(e[3],"base64url"),p:st(e[4],"base64url"),q:st(e[5],"base64url"),dp:st(e[6],"base64url"),dq:st(e[7],"base64url"),qi:st(e[8],"base64url"),kty:"RSA"}}function k0(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 Q("JWK was missing components");return Ae([Ct(Uint8Array.from([0])),Ct(pt(e.n,"base64url")),Ct(pt(e.e,"base64url")),Ct(pt(e.d,"base64url")),Ct(pt(e.p,"base64url")),Ct(pt(e.q,"base64url")),Ct(pt(e.dp,"base64url")),Ct(pt(e.dq,"base64url")),Ct(pt(e.qi,"base64url"))]).subarray()}function M0(e){let t=ue(e,{offset:0});return Ra(t)}function Ra(e){let t=ue(e[1],{offset:0});return{kty:"RSA",n:st(t[0],"base64url"),e:st(t[1],"base64url")}}function Oa(e){if(e.n==null||e.e==null)throw new Q("JWK was missing components");return Ae([U0,xo(Ae([Ct(pt(e.n,"base64url")),Ct(pt(e.e,"base64url"))]))]).subarray()}function wh(e){let t=ue(e);return Pa(t)}function Pa(e){let t=Da(e);return ka(t)}function Ua(e,t){if(e.byteLength>=P0)throw new mr("Key size is too large");let r=ue(e,{offset:0});return Na(r,e,t)}function Na(e,t,r){let n=Ra(e);if(r==null){let o=Qt(Jt.encode({Type:at.RSA,Data:t}));r=Kt(Ta,o)}return new Mr(n,r)}function ka(e){if(Ah(e)>Ca)throw new Q("Key size is too large");let t=Sh(e),r=Qt(Jt.encode({Type:at.RSA,Data:Oa(t.publicKey)})),n=Kt(Ta,r);return new Pn(t.privateKey,new Mr(t.publicKey,n))}async function Eh(e){if(e>Ca)throw new Q("Key size is too large");let t=await vh(e),r=Qt(Jt.encode({Type:at.RSA,Data:Oa(t.publicKey)})),n=Kt(Ta,r);return new Pn(t.privateKey,new Mr(t.publicKey,n))}function Sh(e){if(e==null)throw new Q("Missing key parameter");return{privateKey:e,publicKey:{kty:e.kty,n:e.n,e:e.e}}}async function vh(e,t){let r=await Nt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);t?.signal?.throwIfAborted();let n=await K0(r,t);return{privateKey:n[0],publicKey:n[1]}}async function bh(e,t,r){let n=await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);r?.signal?.throwIfAborted();let o=await Nt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,Ut(t instanceof Uint8Array?t:t.subarray()));return r?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function xh(e,t,r,n){let o=await Nt.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await Nt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,Ut(t),Ut(r instanceof Uint8Array?r:r.subarray()));return n?.signal?.throwIfAborted(),s}async function K0(e,t){if(e.privateKey==null||e.publicKey==null)throw new Q("Private and public key are required");let r=await Promise.all([Nt.get().subtle.exportKey("jwk",e.privateKey),Nt.get().subtle.exportKey("jwk",e.publicKey)]);return t?.signal?.throwIfAborted(),r}function Ah(e){if(e.kty!=="RSA")throw new Q("invalid key type");if(e.n==null)throw new Q("invalid key modulus");return pt(e.n,"base64url").length*8}var jo=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(t,r){if(ze(t),vt(r,void 0,"key"),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 n=this.blockLen,o=new Uint8Array(n);o.set(r.length>n?t.create().update(r).digest():r);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),Ht(o)}update(t){return Cr(this),this.iHash.update(t),this}digestInto(t){Cr(this),wo(t,this),this.finished=!0;let r=t.subarray(0,this.outputLen);this.iHash.digestInto(r),this.oHash.update(r),this.oHash.digestInto(r),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:r,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Nn=(()=>{let e=((t,r,n)=>new jo(t,r).update(n).digest());return e.create=(t,r)=>new jo(t,r),e})();var Bh=(e,t)=>(e+(e>=0?t:-t)/_h)/t;function F0(e,t,r){de("scalar",e,te,r);let[[n,o],[s,i]]=t,a=Bh(i*e,r),c=Bh(-o*e,r),f=e-a*n-c*s,u=-a*o-c*i,h=f<te,y=u<te;h&&(f=-f),y&&(u=-u);let p=Sn(Math.ceil(Rr(r)/2))+Ne;if(f<te||f>=p||u<te||u>=p)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:h,k1:f,k2neg:y,k2:u}}function Ka(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function Ma(e,t){Dt(e);let r={};for(let n of Object.keys(t))r[n]=e[n]===void 0?t[n]:e[n];return zt(r.lowS,"lowS"),zt(r.prehash,"prehash"),r.format!==void 0&&Ka(r.format),r}var Fa=class extends Error{constructor(t=""){super(t)}},jt={Err:Fa,_tlv:{encode:(e,t)=>{let{Err:r}=jt;if(qt(e,"tag"),e<0||e>255)throw new r("tlv.encode: wrong tag");if(typeof t!="string")throw new TypeError('"data" expected string, got type='+typeof t);if(t.length&1)throw new r("tlv.encode: unpadded data");let n=t.length/2,o=wn(n);if(o.length/2&128)throw new r("tlv.encode: long form length too big");let s=n>127?wn(o.length/2|128):"";return wn(e)+s+o+t},decode(e,t){let{Err:r}=jt;t=V(t,void 0,"DER data");let n=0;if(e<0||e>255)throw new r("tlv.encode: wrong tag");if(t.length<2||t[n++]!==e)throw new r("tlv.decode: wrong tlv");let o=t[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new r("tlv.decode(long): indefinite length not supported");if(c>4)throw new r("tlv.decode(long): byte length is too big");let f=t.subarray(n,n+c);if(f.length!==c)throw new r("tlv.decode: length bytes not complete");if(f[0]===0)throw new r("tlv.decode(long): zero leftmost byte");for(let u of f)i=i<<8|u;if(n+=c,i<128)throw new r("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new r("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(e){let{Err:t}=jt;if(Lo(e),e<te)throw new t("integer: negative integers are not allowed");let r=wn(e);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return r},decode(e){let{Err:t}=jt;if(e.length<1)throw new t("invalid signature integer: empty");if(e[0]&128)throw new t("invalid signature integer: negative");if(e.length>1&&e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return Ge(e)}},toSig(e){let{Err:t,_int:r,_tlv:n}=jt,o=V(e,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:f,l:u}=n.decode(2,c);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(f)}},hexFromSig(e){let{_tlv:t,_int:r}=jt,n=t.encode(2,r.encode(e.r)),o=t.encode(2,r.encode(e.s)),s=n+o;return t.encode(48,s)}};Object.freeze(jt._tlv);Object.freeze(jt._int);Object.freeze(jt);var te=BigInt(0),Ne=BigInt(1),_h=BigInt(2),Wo=BigInt(3),H0=BigInt(4);function Lh(e,t={}){let r=Do("weierstrass",e,t),n=r.Fp,o=r.Fn,s=r.CURVE,{h:i,n:a}=s;Dt(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c,allowInfinityPoint:f}=t;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let u=Ch(n,o);function h(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function y(N,m,v){if(f&&m.is0())return Uint8Array.of(0);let{x:S,y:w}=m.toAffine(),x=n.toBytes(S);if(zt(v,"isCompressed"),v){h();let B=!n.isOdd(w);return mt(Ih(B),x)}else return mt(Uint8Array.of(4),x,n.toBytes(w))}function p(N){V(N,void 0,"Point");let{publicKey:m,publicKeyUncompressed:v}=u,S=N.length,w=N[0],x=N.subarray(1);if(f&&S===1&&w===0)return{x:n.ZERO,y:n.ZERO};if(S===m&&(w===2||w===3)){let B=n.fromBytes(x);if(!n.isValid(B))throw new Error("bad point: is not on curve, wrong x");let _=l(B),E;try{E=n.sqrt(_)}catch(k){let H=k instanceof Error?": "+k.message:"";throw new Error("bad point: is not on curve, sqrt error"+H)}h();let C=n.isOdd(E);return(w&1)===1!==C&&(E=n.neg(E)),{x:B,y:E}}else if(S===v&&w===4){let B=n.BYTES,_=n.fromBytes(x.subarray(0,B)),E=n.fromBytes(x.subarray(B,B*2));if(!g(_,E))throw new Error("bad point: is not on curve");return{x:_,y:E}}else throw new Error(`bad point: got length ${S}, expected compressed=${m} or uncompressed=${v}`)}let d=t.toBytes===void 0?y:t.toBytes,b=t.fromBytes===void 0?p:t.fromBytes;function l(N){let m=n.sqr(N),v=n.mul(m,N);return n.add(n.add(v,n.mul(N,s.a)),s.b)}function g(N,m){let v=n.sqr(m),S=l(N);return n.eql(v,S)}if(!g(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let A=n.mul(n.pow(s.a,Wo),H0),L=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(A,L)))throw new Error("bad curve params: a or b");function R(N,m,v=!1){if(!n.isValid(m)||v&&n.is0(m))throw new Error(`bad point coordinate ${N}`);return m}function D(N){if(!(N instanceof I))throw new Error("Weierstrass Point expected")}function U(N){if(!c||!c.basises)throw new Error("no endo");return F0(N,c.basises,o.ORDER)}function T(N,m,v,S,w){return v=new I(n.mul(v.X,N),v.Y,v.Z),m=An(S,m),v=An(w,v),m.add(v)}class I{static BASE=new I(s.Gx,s.Gy,n.ONE);static ZERO=new I(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(m,v,S){this.X=R("x",m),this.Y=R("y",v,!0),this.Z=R("z",S),Object.freeze(this)}static CURVE(){return s}static fromAffine(m){let{x:v,y:S}=m||{};if(!m||!n.isValid(v)||!n.isValid(S))throw new Error("invalid affine point");if(m instanceof I)throw new Error("projective point not allowed");return n.is0(v)&&n.is0(S)?I.ZERO:new I(v,S,n.ONE)}static fromBytes(m){let v=I.fromAffine(b(V(m,void 0,"point")));return v.assertValidity(),v}static fromHex(m){return I.fromBytes(Dr(m))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(m=8,v=!0){return M.createCache(this,m),v||this.multiply(Wo),this}assertValidity(){let m=this;if(m.is0()){if(t.allowInfinityPoint&&n.is0(m.X)&&n.eql(m.Y,n.ONE)&&n.is0(m.Z))return;throw new Error("bad point: ZERO")}let{x:v,y:S}=m.toAffine();if(!n.isValid(v)||!n.isValid(S))throw new Error("bad point: x or y not field elements");if(!g(v,S))throw new Error("bad point: equation left != right");if(!m.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:m}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(m)}equals(m){D(m);let{X:v,Y:S,Z:w}=this,{X:x,Y:B,Z:_}=m,E=n.eql(n.mul(v,_),n.mul(x,w)),C=n.eql(n.mul(S,_),n.mul(B,w));return E&&C}negate(){return new I(this.X,n.neg(this.Y),this.Z)}double(){let{a:m,b:v}=s,S=n.mul(v,Wo),{X:w,Y:x,Z:B}=this,_=n.ZERO,E=n.ZERO,C=n.ZERO,O=n.mul(w,w),k=n.mul(x,x),H=n.mul(B,B),F=n.mul(w,x);return F=n.add(F,F),C=n.mul(w,B),C=n.add(C,C),_=n.mul(m,C),E=n.mul(S,H),E=n.add(_,E),_=n.sub(k,E),E=n.add(k,E),E=n.mul(_,E),_=n.mul(F,_),C=n.mul(S,C),H=n.mul(m,H),F=n.sub(O,H),F=n.mul(m,F),F=n.add(F,C),C=n.add(O,O),O=n.add(C,O),O=n.add(O,H),O=n.mul(O,F),E=n.add(E,O),H=n.mul(x,B),H=n.add(H,H),O=n.mul(H,F),_=n.sub(_,O),C=n.mul(H,k),C=n.add(C,C),C=n.add(C,C),new I(_,E,C)}add(m){D(m);let{X:v,Y:S,Z:w}=this,{X:x,Y:B,Z:_}=m,E=n.ZERO,C=n.ZERO,O=n.ZERO,k=s.a,H=n.mul(s.b,Wo),F=n.mul(v,x),Z=n.mul(S,B),Y=n.mul(w,_),X=n.add(v,S),$=n.add(x,B);X=n.mul(X,$),$=n.add(F,Z),X=n.sub(X,$),$=n.add(v,w);let ot=n.add(x,_);return $=n.mul($,ot),ot=n.add(F,Y),$=n.sub($,ot),ot=n.add(S,w),E=n.add(B,_),ot=n.mul(ot,E),E=n.add(Z,Y),ot=n.sub(ot,E),O=n.mul(k,$),E=n.mul(H,Y),O=n.add(E,O),E=n.sub(Z,O),O=n.add(Z,O),C=n.mul(E,O),Z=n.add(F,F),Z=n.add(Z,F),Y=n.mul(k,Y),$=n.mul(H,$),Z=n.add(Z,Y),Y=n.sub(F,Y),Y=n.mul(k,Y),$=n.add($,Y),F=n.mul(Z,$),C=n.add(C,F),F=n.mul(ot,$),E=n.mul(X,E),E=n.sub(E,F),F=n.mul(X,Z),O=n.mul(ot,O),O=n.add(O,F),new I(E,C,O)}subtract(m){return D(m),this.add(m.negate())}is0(){return this.equals(I.ZERO)}multiply(m){let{endo:v}=t;if(!o.isValidNot0(m))throw new RangeError("invalid scalar: out of range");let S,w,x=B=>M.cached(this,B,_=>Xe(I,_));if(v){let{k1neg:B,k1:_,k2neg:E,k2:C}=U(m),{p:O,f:k}=x(_),{p:H,f:F}=x(C);w=k.add(F),S=T(v.beta,O,H,B,E)}else{let{p:B,f:_}=x(m);S=B,w=_}return Xe(I,[S,w])[0]}multiplyUnsafe(m){let{endo:v}=t,S=this,w=m;if(!o.isValid(w))throw new RangeError("invalid scalar: out of range");if(w===te||S.is0())return I.ZERO;if(w===Ne)return S;if(M.hasCache(this))return this.multiply(w);if(v){let{k1neg:x,k1:B,k2neg:_,k2:E}=U(w),{p1:C,p2:O}=Ku(I,S,B,E);return T(v.beta,C,O,x,_)}else return M.unsafe(S,w)}toAffine(m){let v=this,S=m,{X:w,Y:x,Z:B}=v;if(n.eql(B,n.ONE))return{x:w,y:x};let _=v.is0();S==null&&(S=_?n.ONE:n.inv(B));let E=n.mul(w,S),C=n.mul(x,S),O=n.mul(B,S);if(_)return{x:n.ZERO,y:n.ZERO};if(!n.eql(O,n.ONE))throw new Error("invZ was invalid");return{x:E,y:C}}isTorsionFree(){let{isTorsionFree:m}=t;return i===Ne?!0:m?m(I,this):M.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:m}=t;return i===Ne?this:m?m(I,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===Ne?this.is0():this.clearCofactor().is0()}toBytes(m=!0){return zt(m,"isCompressed"),this.assertValidity(),d(I,this,m)}toHex(m=!0){return Tr(this.toBytes(m))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let P=o.BITS,M=new Ur(I,t.endo?Math.ceil(P/2):P);return P>=8&&I.BASE.precompute(8),Object.freeze(I.prototype),Object.freeze(I),I}function Ih(e){return Uint8Array.of(e?2:3)}function Ch(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function V0(e,t={}){let{Fn:r}=e,n=t.randomBytes===void 0?We:t.randomBytes,o=Object.assign(Ch(e.Fp,r),{seed:Math.max(Mi(r.ORDER),16)});function s(p){try{let d=r.fromBytes(p);return r.isValidNot0(d)}catch{return!1}}function i(p,d){let{publicKey:b,publicKeyUncompressed:l}=o;try{let g=p.length;return d===!0&&g!==b||d===!1&&g!==l?!1:!!e.fromBytes(p)}catch{return!1}}function a(p){return p=p===void 0?n(o.seed):p,Ki(V(p,o.seed,"seed"),r.ORDER)}function c(p,d=!0){return e.BASE.multiply(r.fromBytes(p)).toBytes(d)}function f(p){let{secretKey:d,publicKey:b,publicKeyUncompressed:l}=o,g=r._lengths;if(!je(p))return;let A=V(p,void 0,"key").length,L=A===b||A===l,R=A===d||!!g?.includes(A);if(!(L&&R))return L}function u(p,d,b=!0){if(f(p)===!0)throw new Error("first arg must be private key");if(f(d)===!1)throw new Error("second arg must be public key");let l=r.fromBytes(p);return e.fromBytes(d).multiply(l).toBytes(b)}let h={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},y=Nr(a,c);return Object.freeze(h),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:y,Point:e,utils:h,lengths:o})}function Th(e,t,r={}){let n=t;ze(n),Dt(r,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),r=Object.assign({},r);let o=r.randomBytes===void 0?We:r.randomBytes,s=r.hmac===void 0?(w,x)=>Nn(n,w,x):r.hmac,{Fp:i,Fn:a}=e,{ORDER:c,BITS:f}=a,{keygen:u,getPublicKey:h,getSharedSecret:y,utils:p,lengths:d}=V0(e,r),b={prehash:!0,lowS:typeof r.lowS=="boolean"?r.lowS:!0,format:"compact",extraEntropy:!1},l=c*_h+Ne<i.ORDER;function g(w){let x=c>>Ne;return w>x}function A(w,x){if(!a.isValidNot0(x))throw new Error(`invalid signature ${w}: out of range 1..Point.Fn.ORDER`);return x}function L(){if(l)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function R(w,x){Ka(x);let B=d.signature,_=x==="compact"?B:x==="recovered"?B+1:void 0;return V(w,_)}class D{r;s;recovery;constructor(x,B,_){if(this.r=A("r",x),this.s=A("s",B),_!=null){if(L(),![0,1,2,3].includes(_))throw new Error("invalid recovery id");this.recovery=_}Object.freeze(this)}static fromBytes(x,B=b.format){R(x,B);let _;if(B==="der"){let{r:k,s:H}=jt.toSig(V(x));return new D(k,H)}B==="recovered"&&(_=x[0],B="compact",x=x.subarray(1));let E=d.signature/2,C=x.subarray(0,E),O=x.subarray(E,E*2);return new D(a.fromBytes(C),a.fromBytes(O),_)}static fromHex(x,B){return this.fromBytes(Dr(x),B)}assertRecovery(){let{recovery:x}=this;if(x==null)throw new Error("invalid recovery id: must be present");return x}addRecoveryBit(x){return new D(this.r,this.s,x)}recoverPublicKey(x){let{r:B,s:_}=this,E=this.assertRecovery(),C=E===2||E===3?B+c:B;if(!i.isValid(C))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let O=i.toBytes(C),k=e.fromBytes(mt(Ih((E&1)===0),O)),H=a.inv(C),F=T(V(x,void 0,"msgHash")),Z=a.create(-F*H),Y=a.create(_*H),X=e.BASE.multiplyUnsafe(Z).add(k.multiplyUnsafe(Y));if(X.is0())throw new Error("invalid recovery: point at infinify");return X.assertValidity(),X}hasHighS(){return g(this.s)}toBytes(x=b.format){if(Ka(x),x==="der")return Dr(jt.hexFromSig(this));let{r:B,s:_}=this,E=a.toBytes(B),C=a.toBytes(_);return x==="recovered"?(L(),mt(Uint8Array.of(this.assertRecovery()),E,C)):mt(E,C)}toHex(x){return Tr(this.toBytes(x))}}Object.freeze(D.prototype),Object.freeze(D);let U=r.bits2int===void 0?function(x){if(x.length>8192)throw new Error("input is too large");let B=Ge(x),_=x.length*8-f;return _>0?B>>BigInt(_):B}:r.bits2int,T=r.bits2int_modN===void 0?function(x){return a.create(U(x))}:r.bits2int_modN,I=Sn(f);function P(w){return de("num < 2^"+f,w,te,I),a.toBytes(w)}function M(w,x){return V(w,void 0,"message"),x?V(n(w),void 0,"prehashed message"):w}function N(w,x,B){let{lowS:_,prehash:E,extraEntropy:C}=Ma(B,b);w=M(w,E);let O=T(w),k=a.fromBytes(x);if(!a.isValidNot0(k))throw new Error("invalid private key");let H=[P(k),P(O)];if(C!=null&&C!==!1){let X=C===!0?o(d.secretKey):C;H.push(V(X,void 0,"extraEntropy"))}let F=mt(...H),Z=O;function Y(X){let $=U(X);if(!a.isValidNot0($))return;let ot=a.inv($),se=e.BASE.multiply($).toAffine(),Ke=a.create(se.x);if(Ke===te)return;let dr=a.create(ot*a.create(Z+Ke*k));if(dr===te)return;let tn=(se.x===Ke?0:2)|Number(se.y&Ne),en=dr;return _&&g(dr)&&(en=a.neg(dr),tn^=1),new D(Ke,en,l?void 0:tn)}return{seed:F,k2sig:Y}}function m(w,x,B={}){let{seed:_,k2sig:E}=N(w,x,B);return Su(n.outputLen,a.BYTES,s)(_,E).toBytes(B.format)}function v(w,x,B,_={}){let{lowS:E,prehash:C,format:O}=Ma(_,b);if(B=V(B,void 0,"publicKey"),x=M(x,C),!je(w)){let k=w instanceof D?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+k)}R(w,O);try{let k=D.fromBytes(w,O),H=e.fromBytes(B);if(E&&k.hasHighS())return!1;let{r:F,s:Z}=k,Y=T(x),X=a.inv(Z),$=a.create(Y*X),ot=a.create(F*X),se=e.BASE.multiplyUnsafe($).add(H.multiplyUnsafe(ot));return se.is0()?!1:a.create(se.x)===F}catch{return!1}}function S(w,x,B={}){let{prehash:_}=Ma(B,b);return x=M(x,_),D.fromBytes(w,"recovered").recoverPublicKey(x).toBytes()}return Object.freeze({keygen:u,getPublicKey:h,getSharedSecret:y,utils:p,lengths:d,Point:e,sign:m,verify:v,recoverPublicKey:S,Signature:D,hash:n})}var Va={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},z0={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var Dh=BigInt(2);function q0(e){let t=Va.p,r=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=e*e*e%t,u=f*f*e%t,h=et(u,r,t)*u%t,y=et(h,r,t)*u%t,p=et(y,Dh,t)*f%t,d=et(p,o,t)*p%t,b=et(d,s,t)*d%t,l=et(b,a,t)*b%t,g=et(l,c,t)*l%t,A=et(g,a,t)*b%t,L=et(A,r,t)*u%t,R=et(L,i,t)*d%t,D=et(R,n,t)*f%t,U=et(D,Dh,t);if(!Ha.eql(Ha.sqr(U),e))throw new Error("Cannot find square root");return U}var Ha=Or(Va.p,{sqrt:q0}),$0=Lh(Va,{Fp:Ha,endo:z0}),Kr=Th($0,Qt);function Rh(e,t,r,n){let o=Dn.digest(r instanceof Uint8Array?r:r.subarray());if(No(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),Kr.verify(t,s,e,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new In(String(s))});try{return n?.signal?.throwIfAborted(),Kr.verify(t,o.digest,e,{prehash:!1,format:"der"})}catch(s){throw new In(String(s))}}var Go=class{type="secp256k1";raw;_key;constructor(t){this._key=Ph(t),this.raw=Oh(this._key)}toMultihash(){return Ft.digest(Be(this))}toCID(){return dt.createV1(114,this.toMultihash())}toString(){return ft.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:It(this.raw,t.raw)}verify(t,r,n){return Rh(this._key,r,t,n)}};function za(e){return new Go(e)}function Oh(e){return Kr.Point.fromBytes(e).toBytes()}function Ph(e){try{return Kr.Point.fromBytes(e),e}catch(t){throw new mr(String(t))}}function kn(e,t){let{Type:r,Data:n}=Jt.decode(e),o=n??new Uint8Array;switch(r){case at.RSA:return Ua(o,t);case at.Ed25519:return Qi(o);case at.secp256k1:return za(o);case at.ECDSA:return Si(o);default:throw new Fe}}function Uh(e){let{Type:t,Data:r}=Jt.decode(e.digest),n=r??new Uint8Array;switch(t){case at.Ed25519:return Qi(n);case at.secp256k1:return za(n);case at.ECDSA:return Si(n);default:throw new Fe}}function Be(e){return Jt.encode({Type:at[e.type],Data:e.raw})}var Nh=Symbol.for("nodejs.util.inspect.custom"),j0=114,Mn=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Us]=!0;toString(){return this.string==null&&(this.string=ft.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return dt.createV1(j0,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return It(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return It(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[Nh](){return`PeerId(${this.toString()})`}},Kn=class extends Mn{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Fn=class extends Mn{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},Hn=class extends Mn{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},W0=2336,Vn=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=Ft.digest(pt(this.url))}[Nh](){return`PeerId(${this.url})`}[Us]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return dt.createV1(W0,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=st(t)),t.toString()===this.toString())}};var G0=114,kh=2336;function Mh(e,t){let r;if(e.charAt(0)==="1"||e.charAt(0)==="Q")r=Er(ft.decode(`z${e}`));else{if(e.startsWith("k51qzi5uqu5")||e.startsWith("kzwfwjn5ji4")||e.startsWith("k2k4r8")||e.startsWith("bafz"))return Z0(dt.parse(e));if(t==null)throw new Q('Please pass a multibase decoder for strings that do not start with "1" or "Q"');r=Er(t.decode(e))}return Kh(r)}function qa(e){if(e.type==="Ed25519")return new Fn({multihash:e.toCID().multihash,publicKey:e});if(e.type==="secp256k1")return new Hn({multihash:e.toCID().multihash,publicKey:e});if(e.type==="RSA")return new Kn({multihash:e.toCID().multihash,publicKey:e});throw new Fe}function Kh(e){if(X0(e))return new Kn({multihash:e});if(Y0(e))try{let t=Uh(e);if(t.type==="Ed25519")return new Fn({multihash:e,publicKey:t});if(t.type==="secp256k1")return new Hn({multihash:e,publicKey:t})}catch{let r=st(e.digest);return new Vn(new URL(r))}throw new co("Supplied PeerID Multihash is invalid")}function Z0(e){if(e?.multihash==null||e.version==null||e.version===1&&e.code!==G0&&e.code!==kh)throw new ao("Supplied PeerID CID is invalid");if(e.code===kh){let t=st(e.multihash.digest);return new Vn(new URL(t))}return Kh(e.multihash)}function Y0(e){return e.code===Ft.code}function X0(e){return e.code===Dn.code}function Q0(e){let t=e.getComponents(),r={},n=0;return t[n]?.name==="ip6zone"&&(r.zone=`${t[n].value}`,n++),t[n]?.name==="ip4"||t[n]?.name==="ip6"||t[n]?.name==="dns"||t[n]?.name==="dns4"||t[n]?.name==="dns6"?(r.type=t[n].name,r.host=t[n].value,n++):t[n]?.name==="dnsaddr"&&(r.type=t[n].name,r.host=`_dnsaddr.${t[n].value}`,n++),(t[n]?.name==="tcp"||t[n]?.name==="udp")&&(r.protocol=t[n].name==="tcp"?"tcp":"udp",r.port=parseInt(`${t[n].value}`),n++),t[n]?.name==="ipcidr"&&(r.type==="ip4"?r.cidr=parseInt(`${t[n].value}`):r.type==="ip6"&&(r.cidr=`${t[n].value}`),n++),r.type==null||r.host==null?null:(t[n]?.name==="tls"&&t[n+1]?.name==="sni"&&(r.sni=t[n+1].value,n+=2),r)}function Fh(e){let t=Q0(e);if(t==null)throw new Q(`Multiaddr ${e} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return t}var Zo=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,o){return this.readAtomically(()=>{let s=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",f=2**(8*o)-1;for(;;){let u=this.readAtomically(()=>{let h=this.readChar();if(h===void 0)return;let y=Number.parseInt(h,t);if(!Number.isNaN(y))return y});if(u===void 0)break;if(s*=t,s+=u,s>f||(i+=1,r!==void 0&&i>r))return}if(i!==0)return!n&&c&&i>1?void 0:s})}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 o=n*2;if(n<r.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return r[o]=i[0],r[o+1]=i[1],r[o+2]=i[2],r[o+3]=i[3],[o+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[o,!1];r[o]=s>>8,r[o+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,o]=t(r);if(n===16)return r;if(o||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),i=16-(n+2),[a]=t(s.subarray(0,i));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var J0=45,ty=15,Yo=new Zo;function Hh(e){if(!(e.length>ty))return Yo.new(e).parseWith(()=>Yo.readIPv4Addr())}function Vh(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>J0))return Yo.new(e).parseWith(()=>Yo.readIPv6Addr())}function Xo(e){return!!Hh(e)}function zh(e){return!!Vh(e)}function qh(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}function Qo(e=0){return new Uint8Array(e)}function zn(e,t){t==null&&(t=e.reduce((o,s)=>o+s.length,0));let r=Qo(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function jh(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var $h=jh("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),$a=jh("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=Qo(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),ey={utf8:$h,"utf-8":$h,hex:Ot.base16,latin1:$a,ascii:$a,binary:$a,...Ot},Jo=ey;function qn(e,t="utf8"){let r=Jo[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}function nr(e,t="utf8"){let r=Jo[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}var Et=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},ye=class extends Error{static name="ValidationError";name="ValidationError"},ts=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},es=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function Wa(e){return t=>nr(t,e)}function Ga(e){return t=>qn(t,e)}function Fr(e){return new DataView(e.buffer).getUint16(e.byteOffset).toString()}function or(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,typeof e=="string"?parseInt(e):e),new Uint8Array(t)}function Wh(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=qn(t[0],"base32"),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=or(n);return zn([r,o],r.length+o.length)}function Gh(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=Se.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 o=or(n);return zn([r,o],r.length+o.length)}function Za(e){let t=e.subarray(0,e.length-2),r=e.subarray(e.length-2),n=nr(t,"base32"),o=Fr(r);return`${n}:${o}`}var Ya=function(e){e=e.toString().trim();let t=new Uint8Array(4);return e.split(/\./g).forEach((r,n)=>{let o=parseInt(r,10);if(isNaN(o)||o<0||o>255)throw new Et("Invalid byte value in IP address");t[n]=o}),t},Zh=function(e){let t=0;e=e.toString().trim();let r=e.split(":",8),n;for(n=0;n<r.length;n++){let s=Xo(r[n]),i;s&&(i=Ya(r[n]),r[n]=nr(i.subarray(0,2),"base16")),i!=null&&++n<8&&r.splice(n,0,nr(i.subarray(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 s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let o=new Uint8Array(t+16);for(n=0;n<r.length;n++){r[n]===""&&(r[n]="0");let s=parseInt(r[n],16);if(isNaN(s)||s<0||s>65535)throw new Et("Invalid byte value in IP address");o[t++]=s>>8&255,o[t++]=s&255}return o},Yh=function(e){if(e.byteLength!==4)throw new Et("IPv4 address was incorrect length");let t=[];for(let r=0;r<e.byteLength;r++)t.push(e[r]);return t.join(".")},Xh=function(e){if(e.byteLength!==16)throw new Et("IPv6 address was incorrect length");let t=[];for(let n=0;n<e.byteLength;n+=2){let o=e[n],s=e[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;t.push(i)}let r=t.join(":");try{let n=new URL(`http://[${r}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new Et(`Invalid IPv6 address "${r}"`)}};function Qh(e){try{let t=new URL(`http://[${e}]`);return t.hostname.substring(1,t.hostname.length-1)}catch{throw new Et(`Invalid IPv6 address "${e}"`)}}var ja=Object.values(Ot).map(e=>e.decoder),ry=(function(){let e=ja[0].or(ja[1]);return ja.slice(2).forEach(t=>e=e.or(t)),e})();function Jh(e){return ry.decode(e)}function tl(e){return t=>e.encoder.encode(t)}function ny(e){if(parseInt(e).toString()!==e)throw new ye("Value must be an integer")}function oy(e){if(e<0)throw new ye("Value must be a positive integer, or zero")}function sy(e){return t=>{if(t>e)throw new ye(`Value must be smaller than or equal to ${e}`)}}function iy(...e){return t=>{for(let r of e)r(t)}}var $n=iy(ny,oy,sy(65535));var bt=-1,Xa=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(t){let r;if(typeof t=="string"?r=this.protocolsByName.get(t):r=this.protocolsByCode.get(t),r==null)throw new es(`Protocol ${t} was unknown`);return r}addProtocol(t){this.protocolsByCode.set(t.code,t),this.protocolsByName.set(t.name,t),t.aliases?.forEach(r=>{this.protocolsByName.set(r,t)})}removeProtocol(t){let r=this.protocolsByCode.get(t);r!=null&&(this.protocolsByCode.delete(r.code),this.protocolsByName.delete(r.name),r.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},be=new Xa,wy=[{code:4,name:"ip4",size:32,valueToBytes:Ya,bytesToValue:Yh,validate:e=>{if(!Xo(e))throw new ye(`Invalid IPv4 address "${e}"`)}},{code:6,name:"tcp",size:16,valueToBytes:or,bytesToValue:Fr,validate:$n},{code:273,name:"udp",size:16,valueToBytes:or,bytesToValue:Fr,validate:$n},{code:33,name:"dccp",size:16,valueToBytes:or,bytesToValue:Fr,validate:$n},{code:41,name:"ip6",size:128,valueToBytes:Zh,bytesToValue:Xh,stringToValue:Qh,validate:e=>{if(!zh(e))throw new ye(`Invalid IPv6 address "${e}"`)}},{code:42,name:"ip6zone",size:bt},{code:43,name:"ipcidr",size:8,bytesToValue:Wa("base10"),valueToBytes:Ga("base10")},{code:53,name:"dns",size:bt},{code:54,name:"dns4",size:bt},{code:55,name:"dns6",size:bt},{code:56,name:"dnsaddr",size:bt},{code:132,name:"sctp",size:16,valueToBytes:or,bytesToValue:Fr,validate:$n},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:bt,stringToValue:e=>decodeURIComponent(e),valueToString:e=>encodeURIComponent(e)},{code:421,name:"p2p",aliases:["ipfs"],size:bt,bytesToValue:Wa("base58btc"),valueToBytes:e=>e.startsWith("Q")||e.startsWith("1")?Ga("base58btc")(e):dt.parse(e).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Za,valueToBytes:Wh},{code:445,name:"onion3",size:296,bytesToValue:Za,valueToBytes:Gh},{code:446,name:"garlic64",size:bt},{code:447,name:"garlic32",size:bt},{code:448,name:"tls"},{code:449,name:"sni",size:bt},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:bt,bytesToValue:tl(la),valueToBytes:Jh},{code:480,name:"http"},{code:481,name:"http-path",size:bt,stringToValue:e=>`/${decodeURIComponent(e)}`,valueToString:e=>encodeURIComponent(e.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:bt}];wy.forEach(e=>{be.addProtocol(e)});function el(e){let t=[],r=0;for(;r<e.length;){let n=Je(e,r),o=be.getProtocol(n),s=lt(n),i=Ey(o,e,r+s),a=0;i>0&&o.size===bt&&(a=lt(i));let c=s+a+i,f={code:n,name:o.name,bytes:e.subarray(r,r+c)};if(i>0){let u=r+s+a,h=e.subarray(u,u+i);f.value=o.bytesToValue?.(h)??nr(h)}t.push(f),r+=c}return t}function rl(e){let t=0,r=[];for(let n of e){if(n.bytes==null){let o=be.getProtocol(n.code),s=lt(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??qn(n.value),a=i.byteLength,o.size===bt&&(c=lt(a)));let f=new Uint8Array(s+c+a),u=0;Pe(n.code,f,u),u+=s,i!=null&&(o.size===bt&&(Pe(a,f,u),u+=c),f.set(i,u)),n.bytes=f}r.push(n.bytes),t+=n.bytes.byteLength}return zn(r,t)}function nl(e){if(e.charAt(0)!=="/")throw new Et('String multiaddr must start with "/"');let t=[],r="protocol",n="",o="";for(let s=1;s<e.length;s++){let i=e.charAt(s);i!=="/"&&(r==="protocol"?o+=e.charAt(s):n+=e.charAt(s));let a=s===e.length-1;if(i==="/"||a){let c=be.getProtocol(o);if(r==="protocol"){if(c.size==null||c.size===0){t.push({code:c.code,name:c.name}),n="",o="",r="protocol";continue}else if(a)throw new Et(`Component ${o} was missing value`);r="value"}else if(r==="value"){let f={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new Et(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}t.push(f),n="",o="",r="protocol"}}}if(o!==""&&n!=="")throw new Et("Incomplete multiaddr");return t}function ol(e){return`/${e.flatMap(t=>{if(t.value==null)return t.name;let r=be.getProtocol(t.code);if(r==null)throw new Et(`Unknown protocol code ${t.code}`);return[t.name,r.valueToString?.(t.value)??t.value]}).join("/")}`}function Ey(e,t,r){return e.size==null||e.size===0?0:e.size>0?e.size/8:Je(t,r)}var Sy=Symbol.for("nodejs.util.inspect.custom"),mc=Symbol.for("@multiformats/multiaddr");function vy(e){if(e==null&&(e="/"),sl(e))return e.getComponents();if(e instanceof Uint8Array)return el(e);if(typeof e=="string")return e=e.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),e===""&&(e="/"),nl(e);if(Array.isArray(e))return e;throw new Et("Must be a string, Uint8Array, Component[], or another Multiaddr")}var pc=class e{[mc]=!0;#t;#e;#r;constructor(t="/",r={}){this.#t=vy(t),r.validate!==!1&&Ay(this)}get bytes(){return this.#r==null&&(this.#r=rl(this.#t)),this.#r}toString(){return this.#e==null&&(this.#e=ol(this.#t)),this.#e}toJSON(){return this.toString()}getComponents(){return[...this.#t.map(t=>({...t}))]}encapsulate(t){let r=new e(t);return new e([...this.#t,...r.getComponents()],{validate:!1})}decapsulate(t){let r=t.toString(),n=this.toString(),o=n.lastIndexOf(r);if(o<0)throw new ts(`Address ${this.toString()} does not contain subaddress: ${r}`);return new e(n.slice(0,o),{validate:!1})}decapsulateCode(t){let r;for(let n=this.#t.length-1;n>-1;n--)if(this.#t[n].code===t){r=n;break}return new e(this.#t.slice(0,r),{validate:!1})}equals(t){return qh(this.bytes,t.bytes)}[Sy](){return`Multiaddr(${this.toString()})`}};function Ay(e){e.getComponents().forEach(t=>{let r=be.getProtocol(t.code);t.value!=null&&r.validate?.(t.value)})}function sl(e){return!!e?.[mc]}var rt=e=>({match:t=>{let r=t[0];return r==null||r.code!==e||r.value!=null?!1:t.slice(1)}}),K=(e,t)=>({match:r=>{let n=r[0];return n?.code!==e||n.value==null||t!=null&&n.value!==t?!1:r.slice(1)}}),il=e=>({match:t=>e.match(t)===!1?t:!1}),z=e=>({match:t=>{let r=e.match(t);return r===!1?t:r}}),_t=(...e)=>({match:t=>{let r;for(let n of e){let o=n.match(t);o!==!1&&(r==null||o.length<r.length)&&(r=o)}return r??!1}}),W=(...e)=>({match:t=>{for(let r of e){let n=r.match(t);if(n===!1)return!1;t=n}return t}});function nt(...e){function t(o){if(o==null)return!1;let s=o.getComponents();for(let i of e){let a=i.match(s);if(a===!1)return!1;s=a}return s}function r(o){return t(o)!==!1}function n(o){let s=t(o);return s===!1?!1:s.length===0}return{matchers:e,matches:r,exactMatch:n}}var By=K(421),r6=nt(By),cs=K(54),fs=K(55),us=K(56),gc=K(53),n6=nt(cs,z(K(421))),o6=nt(fs,z(K(421))),s6=nt(us,z(K(421))),i6=nt(_t(gc,us,cs,fs),z(K(421))),al=W(K(4),z(K(43))),cl=W(z(K(42)),K(41),z(K(43))),bc=_t(al,cl),qr=_t(bc,gc,cs,fs,us),a6=nt(_t(bc,W(_t(gc,us,cs,fs),z(K(421))))),c6=nt(al),f6=nt(cl),u6=nt(bc),xc=W(qr,K(6)),jn=W(qr,K(273)),h6=nt(W(xc,z(K(421)))),l6=nt(jn),wc=W(jn,rt(460),z(K(421))),hs=W(jn,rt(461),z(K(421))),_y=_t(wc,hs),d6=nt(wc),p6=nt(hs),yc=_t(qr,xc,jn,wc,hs),fl=_t(W(yc,rt(477),z(K(421)))),m6=nt(fl),ul=_t(W(yc,rt(478),z(K(421))),W(yc,rt(448),z(K(449)),rt(477),z(K(421)))),y6=nt(ul),hl=W(jn,rt(280),z(K(466)),z(K(466)),z(K(421))),g6=nt(hl),ll=W(hs,rt(465),z(K(466)),z(K(466)),z(K(421))),ls=nt(ll),as=_t(fl,ul,W(xc,z(K(421))),W(_y,z(K(421))),W(qr,z(K(421))),hl,ll,K(421)),b6=nt(as),Ly=W(z(as),rt(290),il(rt(281)),z(K(421))),x6=nt(Ly),Iy=_t(W(as,rt(290),rt(281),z(K(421))),W(as,rt(281),z(K(421))),W(rt(281),z(K(421)))),w6=nt(Iy),Cy=W(qr,_t(W(K(6,"80")),W(K(6),rt(480)),rt(480)),z(K(481)),z(K(421))),E6=nt(Cy),Ty=W(qr,_t(W(K(6,"443")),W(K(6,"443"),rt(480)),W(K(6),rt(443)),W(K(6),rt(448),rt(480)),W(rt(448),rt(480)),rt(448),rt(443)),z(K(481)),z(K(421))),S6=nt(Ty),Dy=_t(W(K(777),z(K(421)))),v6=nt(Dy),Ry=_t(W(K(400),z(K(421)))),A6=nt(Ry);function ds(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var ps=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||(t-1&t)!==0)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}},$r=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new ps(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 ps(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 Ec=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function ms(e={}){return Oy(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 Oy(e,t){t=t??{};let r=t.onEnd,n=new $r,o,s,i,a=ds(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((l,g)=>{s=A=>{s=null,n.push(A);try{l(e(n))}catch(L){g(L)}return o}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=ds()})}},f=l=>s!=null?s(l):(n.push(l),o),u=l=>(n=new $r,s!=null?s({error:l}):(n.push({error:l}),o)),h=l=>{if(i)return o;if(t?.objectMode!==!0&&l?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return f({done:!1,value:l})},y=l=>i?o:(i=!0,l!=null?u(l):f({done:!0})),p=()=>(n=new $r,y(),{done:!0}),d=l=>(y(l),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:p,throw:d,push:h,end:y,get readableLength(){return n.size},onEmpty:async l=>{let g=l?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let A,L;g!=null&&(A=new Promise((R,D)=>{L=()=>{D(new Ec)},g.addEventListener("abort",L)}));try{await Promise.race([a.promise,A])}finally{L!=null&&g!=null&&g?.removeEventListener("abort",L)}}},r==null)return o;let b=o;return o={[Symbol.asyncIterator](){return this},next(){return b.next()},throw(l){return b.throw(l),r!=null&&(r(l),r=void 0),{done:!0}},return(){return b.return(),r!=null&&(r(),r=void 0),{done:!0}},push:h,end(l){return b.end(l),r!=null&&(r(l),r=void 0),o},get readableLength(){return b.readableLength},onEmpty:l=>b.onEmpty(l)},o}var Sc=class e extends Error{name="TimeoutError";constructor(t,r){super(t,r),Error.captureStackTrace?.(this,e)}},dl=e=>e.reason??new DOMException("This operation was aborted.","AbortError");function vc(e,t){let{milliseconds:r,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=t,a,c,u=new Promise((h,y)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(i?.aborted){y(dl(i));return}if(i&&(c=()=>{y(dl(i))},i.addEventListener("abort",c,{once:!0})),e.then(h,y),r===Number.POSITIVE_INFINITY)return;let p=new Sc;a=s.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(d){y(d)}return}typeof e.cancel=="function"&&e.cancel(),o===!1?h():o instanceof Error?y(o):(p.message=o??`Promise timed out after ${r} milliseconds`,y(p))},r)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var Py=e=>{let t=e.addEventListener||e.on||e.addListener,r=e.removeEventListener||e.off||e.removeListener;if(!t||!r)throw new TypeError("Emitter is not compatible");return{addListener:t.bind(e),removeListener:r.bind(e)}};function Uy(e,t,r){let n,o=new Promise((s,i)=>{if(r={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!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:f,removeListener:u}=Py(e),h=async(...p)=>{let d=r.multiArgs?p:p[0];if(r.filter)try{if(!await r.filter(d))return}catch(b){n(),i(b);return}c.push(d),r.count===c.length&&(n(),s(c))},y=(...p)=>{n(),i(r.rejectionMultiArgs?p:p[0])};n=()=>{for(let p of a)u(p,h);for(let p of r.rejectionEvents)a.includes(p)||u(p,y)};for(let p of a)f(p,h);for(let p of r.rejectionEvents)a.includes(p)||f(p,y);r.signal&&r.signal.addEventListener("abort",()=>{y(r.signal.reason)},{once:!0}),r.resolveImmediately&&s(c)});if(o.cancel=n,typeof r.timeout=="number"){let s=vc(o,{milliseconds:r.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function ke(e,t,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=Uy(e,t,r),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var ir=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"},ys=class extends Error{static name="MaxEarlyStreamsError";name="MaxEarlyStreamsError"},gs=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function Ny(e){return e.reason}async function kt(e,t,r){if(t==null)return e;let n=r?.translateError??Ny;if(t.aborted)return e.catch(()=>{}),Promise.reject(n(t));let o;try{return await Promise.race([e,new Promise((s,i)=>{o=()=>{i(n(t))},t.addEventListener("abort",o)})])}finally{o!=null&&t.removeEventListener("abort",o)}}var ky=Math.pow(2,20)*4,ee=class extends gr{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(t){super(),this.status="open",this.log=t.log,this.direction=t.direction??"outbound",this.inactivityTimeout=t.inactivityTimeout??12e4,this.maxReadBufferLength=t.maxReadBufferLength??ky,this.maxWriteBufferLength=t.maxWriteBufferLength,this.maxMessageSize=t.maxMessageSize,this.readBuffer=new j,this.writeBuffer=new j,this.readStatus="readable",this.remoteReadStatus="readable",this.writeStatus="writable",this.remoteWriteStatus="writable",this.sendingData=!1,this.writableNeedsDrain=!1,this.timeline={open:Date.now()},this.processSendQueue=this.processSendQueue.bind(this);let r=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,queueMicrotask(()=>{try{this.processSendQueue()}catch(o){this.log.error("processSendQueue threw - %e",o)}})),this.onDrainPromise?.resolve()};this.addEventListener("drain",r);let n=o=>{this.onDrainPromise?.reject(o.error??new gs)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(t){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),kt(this.onDrainPromise.promise,t?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let t=ms(),r=s=>{t.push(s.data)};this.addEventListener("message",r);let n=s=>{t.end(s.error)};this.addEventListener("close",n);let o=()=>{t.end()};this.addEventListener("remoteCloseWrite",o);try{yield*t}finally{this.removeEventListener("message",r),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(t){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new we(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",t.byteLength),this.writeBuffer.append(t),this.processSendQueue()}abort(t){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",t),this.status="aborted",this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle")),this.writeStatus="closed",this.remoteWriteStatus="closed",this.readStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now();try{this.sendReset(t)}catch(r){this.log("failed to send reset to remote - %e",r)}this.dispatchEvent(new uo(t))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new we("Cannot pause a stream that is closing/closed");this.readStatus!=="paused"&&(this.readStatus="paused",this.sendPause())}resume(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new we("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new we(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.append(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(t){if(this.readStatus==="closed"||this.readStatus==="closing")throw new we(`Cannot push data onto a stream that is ${this.readStatus}`);if(t.byteLength!==0){if(this.readBuffer.prepend(t),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(t){if(t.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(t),this.dispatchReadBuffer()}}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="message"&&this.readBuffer.byteLength>0&&queueMicrotask(()=>{this.dispatchReadBuffer()})}onRemoteReset(){this.log("remote reset"),this.status="reset",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.readBuffer.byteLength===0&&(this.readStatus="closed");let t=new so;this.dispatchEvent(new ho(t))}onTransportClosed(t){this.log("transport closed"),this.readStatus==="readable"&&this.readBuffer.byteLength===0&&(this.log("close readable end after transport closed and read buffer is empty"),this.readStatus="closed"),this.remoteReadStatus!=="closed"&&(this.remoteReadStatus="closed"),this.remoteWriteStatus!=="closed"&&(this.remoteWriteStatus="closed"),this.writeStatus!=="closed"&&(this.writeStatus="closed"),t!=null?this.abort(t):(this.status==="open"||this.status==="closing")&&(this.timeline.close=Date.now(),this.status="closed",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.dispatchEvent(new yr))}onRemoteCloseWrite(){this.remoteWriteStatus!=="closed"&&(this.log.trace("on remote close write"),this.remoteWriteStatus="closed",this.safeDispatchEvent("remoteCloseWrite"),this.writeStatus==="closed"&&this.onTransportClosed())}onRemoteCloseRead(){this.log.trace("on remote close read"),this.remoteReadStatus="closed",this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle"))}processSendQueue(){if(this.writableNeedsDrain)return this.log.trace("not processing send queue as drain is required"),this.checkWriteBufferLength(),!1;if(this.writeBuffer.byteLength===0)return this.log.trace("not processing send queue as no bytes to send"),!0;if(this.sendingData)return this.log.trace("not processing send queue as already sending data"),!0;if(this.writeStatus!=="writable"&&this.writeStatus!=="closing")return this.log.trace("not processing send queue as stream is %s",this.writeStatus),!1;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let t=!0,r=this.writeBuffer.byteLength,n=0;for(;this.writeBuffer.byteLength>0;){let o=Math.min(this.maxMessageSize??this.writeBuffer.byteLength,this.writeBuffer.byteLength);if(o===0){t=!1;break}let s=this.writeBuffer.sublist(0,o),i=new j(s);this.writeBuffer.consume(s.byteLength);let a=this.sendData(s);if(t=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!t)break}return t||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,r,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),t}finally{this.sendingData=!1}}dispatchReadBuffer(){try{if(this.listenerCount("message")===0){this.log.trace("not dispatching pause buffer as there are no listeners for the message event");return}if(this.readBuffer.byteLength===0){this.log.trace("not dispatching pause buffer as there is no data to dispatch");return}if(this.readStatus==="paused"){this.log.trace("not dispatching pause buffer we are paused");return}if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("dropping %d bytes because the readable end is %s",this.readBuffer.byteLength,this.readStatus),this.readBuffer.consume(this.readBuffer.byteLength);return}let t=this.readBuffer.sublist();this.readBuffer.consume(t.byteLength),this.dispatchEvent(new fo(t))}finally{this.readBuffer.byteLength===0&&this.remoteWriteStatus==="closed"&&(this.log("close readable end after dispatching read buffer and remote writable end is closed"),this.readStatus="closed"),this.checkReadBufferLength()}}checkReadBufferLength(){this.readBuffer.byteLength>this.maxReadBufferLength&&this.abort(new rn(`Read buffer length of ${this.readBuffer.byteLength} exceeded limit of ${this.maxReadBufferLength}, read status is ${this.readStatus}`))}checkWriteBufferLength(){this.maxWriteBufferLength!=null&&this.writeBuffer.byteLength>this.maxWriteBufferLength&&this.abort(new rn(`Write buffer length of ${this.writeBuffer.byteLength} exceeded limit of ${this.maxWriteBufferLength}, write status is ${this.writeStatus}`))}onMuxerNeedsDrain(){this.writableNeedsDrain=!0}onMuxerDrain(){this.safeDispatchEvent("drain")}};var bs=class extends ee{remoteAddr;metricPrefix;metrics;constructor(t){super(t),this.metricPrefix=t.metricPrefix??"",this.metrics=t.metrics,this.remoteAddr=t.remoteAddr,this.addEventListener("close",r=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),r.error!=null?r.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):r.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(t){this.status==="open"&&(this.status="closing",this.writeStatus="closing",this.remoteWriteStatus="closing",this.remoteReadStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"drain",{...t,rejectionEvents:["close"]})),await this.sendClose(t),this.onTransportClosed())}};function pl(e){return e==null?!1:typeof e.then=="function"&&typeof e.catch=="function"&&typeof e.finally=="function"}var xs=class extends gr{streams;protocol;status;log;maConn;streamOptions;earlyStreams;maxEarlyStreams;metrics;constructor(t,r){super(),this.maConn=t,this.protocol=r.protocol,this.streams=[],this.earlyStreams=[],this.status="open",this.log=t.log.newScope(r.name),this.streamOptions=r.streamOptions,this.maxEarlyStreams=r.maxEarlyStreams??10,this.metrics=r.metrics;let n=i=>{try{this.onData(i.data)}catch(a){this.abort(a),this.maConn.abort(a)}};this.maConn.addEventListener("message",n);let o=()=>{this.log("underlying stream drained, signal %d streams to continue writing",this.streams.length),this.streams.forEach(i=>{i.onMuxerDrain()})};this.maConn.addEventListener("drain",o);let s=()=>{this.log("underlying stream closed with status %s and %d streams",this.status,this.streams.length),this.onTransportClosed()};this.maConn.addEventListener("close",s)}send(t){let r=this.maConn.send(t);return r===!1&&(this.log("underlying stream saturated, signal %d streams to pause writing",this.streams.length),this.streams.forEach(n=>{n.onMuxerNeedsDrain()})),r}async close(t){this.status==="closed"||this.status==="closing"||(this.status="closing",await kt(Promise.all([...this.streams].map(async r=>{await r.close(t)})),t?.signal),this.status="closed")}abort(t){this.status!=="closed"&&(this.status="closing",[...this.streams].forEach(r=>{r.abort(t)}),this.status="closed")}onTransportClosed(t){this.status="closing";try{[...this.streams].forEach(r=>{r.onTransportClosed(t)})}catch(r){this.abort(r)}this.status="closed"}async createStream(t){if(this.status!=="open")throw new oo;let r=this.onCreateStream({...this.streamOptions,...t});return pl(r)&&(r=await r),this.streams.push(r),this.cleanUpStream(r),r}onRemoteStream(t){if(this.streams.push(t),this.cleanUpStream(t),this.listenerCount("stream")===0){this.earlyStreams.push(t),this.earlyStreams.length>this.maxEarlyStreams&&this.abort(new ys(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));return}this.safeDispatchEvent("stream",{detail:t})}cleanUpStream(t){let r=n=>{let o=this.streams.findIndex(s=>s===t);o!==-1&&this.streams.splice(o,1),n.error!=null?n.local?this.metrics?.increment({[`${t.direction}_stream_reset`]:!0}):this.metrics?.increment({[`${t.direction}_stream_abort`]:!0}):this.metrics?.increment({[`${t.direction}_stream_end`]:!0})};t.addEventListener("close",r),this.metrics?.increment({[`${t.direction}_stream`]:!0})}addEventListener(...t){super.addEventListener.apply(this,t),t[0]==="stream"&&this.earlyStreams.length>0&&queueMicrotask(()=>{this.earlyStreams.forEach(r=>{this.safeDispatchEvent("stream",{detail:r})}),this.earlyStreams=[]})}};var ws=class extends ee{id;protocol;constructor(t){super(t),this.id=t.id,this.protocol=t.protocol??""}async close(t){this.writeStatus==="closing"||this.writeStatus==="closed"||(this.writeStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await ke(this,"idle",{...t,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData),await ke(this,"drain",{...t,rejectionEvents:["close"]}),this.log("write queue drained, closing writable end of stream, %d unsent bytes, sending %s",this.writeBuffer.byteLength,this.sendingData)),await this.sendCloseWrite(t),this.writeStatus="closed",this.log("closed writable end gracefully"),this.remoteWriteStatus==="closed"&&this.onTransportClosed())}async closeRead(t){this.readStatus==="closing"||this.readStatus==="closed"||(this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.readStatus="closing",await this.sendCloseRead(t),this.readStatus="closed",this.log("closed readable end gracefully"))}};var My=4194304,Es=class extends Error{static name="UnwrappedError";name="UnwrappedError"},Wn=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Bc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},_c=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Ky(e){return typeof e?.closeRead=="function"}function Fy(e){return typeof e?.close=="function"}function Ac(e){return Ky(e)?e.remoteWriteStatus!=="writable"&&e.readBufferLength===0:Fy(e)?e.status!=="open":!1}function Hy(e){return e?.addEventListener!=null&&e?.removeEventListener!=null&&e?.send!=null&&e?.push!=null&&e?.log!=null}function Vy(e,t){let r=t?.maxBufferSize??My,n=new j,o,s=!1;if(!Hy(e))throw new Q("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>r){let h=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${h} > ${r}`))}o?.resolve()};e.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};e.addEventListener("close",a);let c=()=>{o?.resolve()};e.addEventListener("remoteCloseWrite",c);let f={readBuffer:n,async read(u){if(s===!0)throw new Es("Stream was unwrapped");if(Ac(e)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw e.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new ir(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let h=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=h){o.resolve();break}if(await kt(o.promise,u?.signal),Ac(e)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let y=u?.bytes??n.byteLength;if(n.byteLength<y){if(Ac(e))throw e.log.error("closed while reading %d/%d bytes",n.byteLength,y),new ir(`Unexpected EOF - stream closed while reading ${n.byteLength}/${y} bytes`);return f.read(u)}let p=n.sublist(0,y);return n.consume(y),p},async write(u,h){if(s===!0)throw new Es("Stream was unwrapped");e.send(u)||await ke(e,"drain",{signal:h?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,e.removeEventListener("message",i),e.removeEventListener("close",a),e.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(e.log("stream unwrapped with %d unread bytes",n.byteLength),e.unshift(n))),e}};return f}function Lc(e,t={}){let r=Vy(e,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=lt(t.maxDataLength));let n=t?.lengthDecoder??Je,o=t?.lengthEncoder??th;return{async read(i){let a=-1,c=new j;for(;;){let u=await r.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Wn("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new _c(`Message length length too long - ${c.byteLength} > ${t.maxLengthLength}`);if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new Bc(`Message length too long - ${a} > ${t.maxDataLength}`);let f=await r.read({...i,bytes:a});if(f==null)throw e.log.error("tried to read %d bytes but the stream closed",a),new ir(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(f.byteLength!==a)throw e.log.error("read %d/%d bytes before the stream closed",f.byteLength,a),new ir(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await r.write(new j(o(i.byteLength),i),a)},async writeV(i,a){let c=new j(...i.flatMap(f=>[o(f.byteLength),f]));await r.write(c,a)},unwrap(){return r.unwrap()}}}var zy=1024*1024*4,qy=1024*1024*4,Ss=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(t={}){this.buffer=new j,this.maxBufferSize=t.maxBufferSize??zy,this.maxDataLength=t.maxDataLength??qy,this.lengthDecoder=t.lengthDecoder??Je,this.encodingLength=t.encodingLength??lt}*decode(t){if(this.buffer.append(t),this.buffer.byteLength>this.maxBufferSize)throw new Q(`Buffer length limit exceeded - ${this.buffer.byteLength}/${this.maxBufferSize}`);for(;;){let r;try{r=this.lengthDecoder(this.buffer)}catch(s){if(s instanceof RangeError)break;throw s}if(r<0||r>this.maxDataLength)throw new Wn("Invalid message length");let n=this.encodingLength(r),o=n+r;if(this.buffer.byteLength>=o){let s=this.buffer.sublist(n,o);this.buffer.consume(o),s.byteLength>0&&(yield s)}else break}}};function re(e=0){return new Uint8Array(e)}function Mt(e=0){return new Uint8Array(e)}var jr=!!globalThis.process?.env?.DUMP_SESSION_KEYS,Ic=16;function $y(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in e&&e.BYTES_PER_ELEMENT===1}function vs(e){if(typeof e!="boolean")throw new TypeError(`boolean expected, not ${e}`)}function Wr(e){if(typeof e!="number")throw new TypeError("number expected, got "+typeof e);if(!Number.isSafeInteger(e)||e<0)throw new RangeError("positive integer expected, got "+e)}function yt(e,t,r=""){let n=$y(e),o=e?.length,s=t!==void 0;if(!n||s&&o!==t){let i=r&&`"${r}" `,a=s?` of length ${t}`:"",c=n?`length=${o}`:`type=${typeof e}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return e}function Cc(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 ml(e,t,r=!1){yt(e,void 0,"output");let n=t.outputLen;if(e.length<n)throw new RangeError("digestInto() expects output buffer of length at least "+n);if(r&&!Gr(e))throw new Error("invalid output, must be aligned")}function ne(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Wt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function jy(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var ar=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,Wy=e=>e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255;var Gy=e=>{for(let t=0;t<e.length;t++)e[t]=Wy(e[t]);return e},xe=ar?e=>e:Gy;function yl(e,t){if(t==null||typeof t!="object")throw new Error("options must be defined");return Object.assign(e,t)}function gl(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function bl(e,t,r){let n=t,o=r||(()=>[]),s=(a,c)=>n(c,...o(a)).update(a).digest(),i=n(new Uint8Array(e),...o(new Uint8Array(0)));return s.outputLen=i.outputLen,s.blockLen=i.blockLen,s.create=(a,...c)=>n(a,...c),s}var xl=(e,t)=>{function r(n,...o){if(yt(n,void 0,"key"),e.nonceLength!==void 0){let u=o[0];yt(u,e.varSizeNonce?void 0:e.nonceLength,"nonce")}let s=e.tagLength;s&&o[1]!==void 0&&yt(o[1],void 0,"AAD");let i=t(n,...o),a=(u,h)=>{if(h!==void 0){if(u!==2)throw new Error("cipher output not supported");yt(h,void 0,"output")}},c=!1;return{encrypt(u,h){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,yt(u),a(i.encrypt.length,h),i.encrypt(u,h)},decrypt(u,h){if(yt(u),s&&u.length<s)throw new Error('"ciphertext" expected length bigger than tagLength='+s);return a(i.decrypt.length,h),i.decrypt(u,h)}}}return Object.assign(r,e),r};function Gn(e,t,r=!0){if(t===void 0)return new Uint8Array(e);if(yt(t,void 0,"output"),t.length!==e)throw new Error('"output" expected Uint8Array of length '+e+", got: "+t.length);if(r&&!Gr(t))throw new Error("invalid output, must be aligned");return t}function wl(e,t,r){Wr(e),Wr(t),vs(r);let n=new Uint8Array(16),o=jy(n);return o.setBigUint64(0,BigInt(t),r),o.setBigUint64(8,BigInt(e),r),n}function Gr(e){return e.byteOffset%4===0}function Zr(e){return Uint8Array.from(yt(e))}var Sl=e=>Uint8Array.from(e.split(""),t=>t.charCodeAt(0)),Zy=xe(ne(Sl("expand 16-byte k"))),Yy=xe(ne(Sl("expand 32-byte k")));function q(e,t){return e<<t|e>>>32-t}var Zn=64,Xy=16,Tc=2**32-1,El=Uint32Array.of();function Qy(e,t,r,n,o,s,i,a){let c=o.length,f=new Uint8Array(Zn),u=ne(f),h=ar&&Gr(o)&&Gr(s),y=h?ne(o):El,p=h?ne(s):El;if(!ar){for(let d=0;d<c;i++){if(e(t,r,n,u,i,a),xe(u),i>=Tc)throw new Error("arx: counter overflow");let b=Math.min(Zn,c-d);for(let l=0,g;l<b;l++)g=d+l,s[g]=o[g]^f[l];d+=b}return}for(let d=0;d<c;i++){if(e(t,r,n,u,i,a),i>=Tc)throw new Error("arx: counter overflow");let b=Math.min(Zn,c-d);if(h&&b===Zn){let l=d/4;if(d%4!==0)throw new Error("arx: invalid block position");for(let g=0,A;g<Xy;g++)A=l+g,p[A]=y[A]^u[g];d+=Zn;continue}for(let l=0,g;l<b;l++)g=d+l,s[g]=o[g]^f[l];d+=b}}function vl(e,t){let{allowShortKeys:r,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=yl({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!="function")throw new Error("core must be a function");return Wr(o),Wr(i),vs(s),vs(r),(a,c,f,u,h=0)=>{yt(a,void 0,"key"),yt(c,void 0,"nonce"),yt(f,void 0,"data");let y=f.length;if(u=Gn(y,u,!1),Wr(h),h<0||h>=Tc)throw new Error("arx: counter overflow");let p=[],d=a.length,b,l;if(d===32)p.push(b=Zr(a)),l=Yy;else if(d===16&&r)b=new Uint8Array(32),b.set(a),b.set(a,16),l=Zy,p.push(b);else throw yt(a,32,"arx key"),new Error("invalid key size");(!ar||!Gr(c))&&p.push(c=Zr(c));let g=ne(b);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let R=c.subarray(0,16);if(ar)n(l,g,ne(R),g);else{let D=xe(Uint32Array.from(l));n(D,g,ne(R),g),Wt(D),xe(g)}c=c.subarray(16)}else ar||xe(g);let A=16-o;if(A!==c.length)throw new Error(`arx: nonce must be ${A} or 16 bytes`);if(A!==12){let R=new Uint8Array(12);R.set(c,s?0:12-c.length),c=R,p.push(c)}let L=xe(ne(c));try{return Qy(e,l,g,L,f,u,h,i),u}finally{Wt(...p)}}}function St(e,t){return e[t++]&255|(e[t++]&255)<<8}var Dc=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;destroyed=!1;constructor(t){t=Zr(yt(t,32,"key"));let r=St(t,0),n=St(t,2),o=St(t,4),s=St(t,6),i=St(t,8),a=St(t,10),c=St(t,12),f=St(t,14);this.r[0]=r&8191,this.r[1]=(r>>>13|n<<3)&8191,this.r[2]=(n>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|f<<8)&8191,this.r[9]=f>>>5&127;for(let u=0;u<8;u++)this.pad[u]=St(t,16+2*u)}process(t,r,n=!1){let o=n?0:2048,{h:s,r:i}=this,a=i[0],c=i[1],f=i[2],u=i[3],h=i[4],y=i[5],p=i[6],d=i[7],b=i[8],l=i[9],g=St(t,r+0),A=St(t,r+2),L=St(t,r+4),R=St(t,r+6),D=St(t,r+8),U=St(t,r+10),T=St(t,r+12),I=St(t,r+14),P=s[0]+(g&8191),M=s[1]+((g>>>13|A<<3)&8191),N=s[2]+((A>>>10|L<<6)&8191),m=s[3]+((L>>>7|R<<9)&8191),v=s[4]+((R>>>4|D<<12)&8191),S=s[5]+(D>>>1&8191),w=s[6]+((D>>>14|U<<2)&8191),x=s[7]+((U>>>11|T<<5)&8191),B=s[8]+((T>>>8|I<<8)&8191),_=s[9]+(I>>>5|o),E=0,C=E+P*a+M*(5*l)+N*(5*b)+m*(5*d)+v*(5*p);E=C>>>13,C&=8191,C+=S*(5*y)+w*(5*h)+x*(5*u)+B*(5*f)+_*(5*c),E+=C>>>13,C&=8191;let O=E+P*c+M*a+N*(5*l)+m*(5*b)+v*(5*d);E=O>>>13,O&=8191,O+=S*(5*p)+w*(5*y)+x*(5*h)+B*(5*u)+_*(5*f),E+=O>>>13,O&=8191;let k=E+P*f+M*c+N*a+m*(5*l)+v*(5*b);E=k>>>13,k&=8191,k+=S*(5*d)+w*(5*p)+x*(5*y)+B*(5*h)+_*(5*u),E+=k>>>13,k&=8191;let H=E+P*u+M*f+N*c+m*a+v*(5*l);E=H>>>13,H&=8191,H+=S*(5*b)+w*(5*d)+x*(5*p)+B*(5*y)+_*(5*h),E+=H>>>13,H&=8191;let F=E+P*h+M*u+N*f+m*c+v*a;E=F>>>13,F&=8191,F+=S*(5*l)+w*(5*b)+x*(5*d)+B*(5*p)+_*(5*y),E+=F>>>13,F&=8191;let Z=E+P*y+M*h+N*u+m*f+v*c;E=Z>>>13,Z&=8191,Z+=S*a+w*(5*l)+x*(5*b)+B*(5*d)+_*(5*p),E+=Z>>>13,Z&=8191;let Y=E+P*p+M*y+N*h+m*u+v*f;E=Y>>>13,Y&=8191,Y+=S*c+w*a+x*(5*l)+B*(5*b)+_*(5*d),E+=Y>>>13,Y&=8191;let X=E+P*d+M*p+N*y+m*h+v*u;E=X>>>13,X&=8191,X+=S*f+w*c+x*a+B*(5*l)+_*(5*b),E+=X>>>13,X&=8191;let $=E+P*b+M*d+N*p+m*y+v*h;E=$>>>13,$&=8191,$+=S*u+w*f+x*c+B*a+_*(5*l),E+=$>>>13,$&=8191;let ot=E+P*l+M*b+N*d+m*p+v*y;E=ot>>>13,ot&=8191,ot+=S*h+w*u+x*f+B*c+_*a,E+=ot>>>13,ot&=8191,E=(E<<2)+E|0,E=E+C|0,C=E&8191,E=E>>>13,O+=E,s[0]=C,s[1]=O,s[2]=k,s[3]=H,s[4]=F,s[5]=Z,s[6]=Y,s[7]=X,s[8]=$,s[9]=ot}finalize(){let{h:t,pad:r}=this,n=new Uint16Array(10),o=t[1]>>>13;t[1]&=8191;for(let a=2;a<10;a++)t[a]+=o,o=t[a]>>>13,t[a]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,n[0]=t[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=t[a]+o,o=n[a]>>>13,n[a]&=8191;n[9]-=8192;let s=(o^1)-1;for(let a=0;a<10;a++)n[a]&=s;s=~s;for(let a=0;a<10;a++)t[a]=t[a]&s|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 i=t[0]+r[0];t[0]=i&65535;for(let a=1;a<8;a++)i=(t[a]+r[a]|0)+(i>>>16)|0,t[a]=i&65535;Wt(n)}update(t){Cc(this),yt(t),t=Zr(t);let{buffer:r,blockLen:n}=this,o=t.length;for(let s=0;s<o;){let i=Math.min(n-this.pos,o-s);if(i===n){for(;n<=o-s;s+=n)this.process(t,s);continue}r.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===n&&(this.process(r,0,!1),this.pos=0)}return this}destroy(){this.destroyed=!0,Wt(this.h,this.r,this.buffer,this.pad)}digestInto(t){Cc(this),ml(t,this),this.finished=!0;let{buffer:r,h:n}=this,{pos:o}=this;if(o){for(r[o++]=1;o<16;o++)r[o]=0;this.process(r,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)t[s++]=n[i]>>>0,t[s++]=n[i]>>>8}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}},Al=bl(32,e=>new Dc(e));function Jy(e,t,r,n,o,s=20){let i=e[0],a=e[1],c=e[2],f=e[3],u=t[0],h=t[1],y=t[2],p=t[3],d=t[4],b=t[5],l=t[6],g=t[7],A=o,L=r[0],R=r[1],D=r[2],U=i,T=a,I=c,P=f,M=u,N=h,m=y,v=p,S=d,w=b,x=l,B=g,_=A,E=L,C=R,O=D;for(let H=0;H<s;H+=2)U=U+M|0,_=q(_^U,16),S=S+_|0,M=q(M^S,12),U=U+M|0,_=q(_^U,8),S=S+_|0,M=q(M^S,7),T=T+N|0,E=q(E^T,16),w=w+E|0,N=q(N^w,12),T=T+N|0,E=q(E^T,8),w=w+E|0,N=q(N^w,7),I=I+m|0,C=q(C^I,16),x=x+C|0,m=q(m^x,12),I=I+m|0,C=q(C^I,8),x=x+C|0,m=q(m^x,7),P=P+v|0,O=q(O^P,16),B=B+O|0,v=q(v^B,12),P=P+v|0,O=q(O^P,8),B=B+O|0,v=q(v^B,7),U=U+N|0,O=q(O^U,16),x=x+O|0,N=q(N^x,12),U=U+N|0,O=q(O^U,8),x=x+O|0,N=q(N^x,7),T=T+m|0,_=q(_^T,16),B=B+_|0,m=q(m^B,12),T=T+m|0,_=q(_^T,8),B=B+_|0,m=q(m^B,7),I=I+v|0,E=q(E^I,16),S=S+E|0,v=q(v^S,12),I=I+v|0,E=q(E^I,8),S=S+E|0,v=q(v^S,7),P=P+M|0,C=q(C^P,16),w=w+C|0,M=q(M^w,12),P=P+M|0,C=q(C^P,8),w=w+C|0,M=q(M^w,7);let k=0;n[k++]=i+U|0,n[k++]=a+T|0,n[k++]=c+I|0,n[k++]=f+P|0,n[k++]=u+M|0,n[k++]=h+N|0,n[k++]=y+m|0,n[k++]=p+v|0,n[k++]=d+S|0,n[k++]=b+w|0,n[k++]=l+x|0,n[k++]=g+B|0,n[k++]=A+_|0,n[k++]=L+E|0,n[k++]=R+C|0,n[k++]=D+O|0}var tg=vl(Jy,{counterRight:!1,counterLength:4,allowShortKeys:!1});var eg=new Uint8Array(16),Bl=(e,t)=>{e.update(t);let r=t.length%16;r&&e.update(eg.subarray(r))},rg=new Uint8Array(32);function _l(e,t,r,n,o){o!==void 0&&yt(o,void 0,"AAD");let s=e(t,r,rg),i=wl(n.length,o?o.length:0,!0),a=Al.create(s);o&&Bl(a,o),Bl(a,n),a.update(i);let c=a.digest();return Wt(s,i),c}var ng=e=>(t,r,n)=>({encrypt(s,i){let a=s.length;i=Gn(a+16,i,!1),i.set(s);let c=i.subarray(0,-16);e(t,r,c,c,1);let f=_l(e,t,r,c,n);return i.set(f,a),Wt(f),i},decrypt(s,i){i=Gn(s.length-16,i,!1);let a=s.subarray(0,-16),c=s.subarray(-16),f=_l(e,t,r,a,n);if(!gl(c,f))throw Wt(f),new Error("invalid tag");return i.set(s.subarray(0,-16)),e(t,r,i,i,1),Wt(f),i}}),Rc=xl({blockSize:64,nonceLength:12,tagLength:16},ng(tg));function Il(e,t,r){return ze(e),r===void 0&&(r=new Uint8Array(e.outputLen)),Nn(e,r,t)}var Oc=Uint8Array.of(0),Ll=Uint8Array.of();function Cl(e,t,r,n=32){ze(e),Yt(n,"length"),vt(t,void 0,"prk");let o=e.outputLen;if(t.length<o)throw new Error('"prk" must be at least HashLen octets');if(n>255*o)throw new Error("Length must be <= 255*HashLen");let s=Math.ceil(n/o);r===void 0?r=Ll:vt(r,void 0,"info");let i=new Uint8Array(s*o),a=Nn.create(e,t),c=a._cloneInto(),f=new Uint8Array(a.outputLen);for(let u=0;u<s;u++)Oc[0]=u+1,c.update(u===0?Ll:f).update(r).update(Oc).digestInto(f),i.set(f,o*u),a._cloneInto(c);return a.destroy(),c.destroy(),Ht(f,Oc),i.slice(0,n)}var Pc={hashSHA256(e){return Qt(e.subarray())},getHKDF(e,t){let r=Il(Qt,t,e),o=Cl(Qt,r,void 0,96),s=o.subarray(0,32),i=o.subarray(32,64),a=o.subarray(64,96);return[s,i,a]},generateX25519KeyPair(){let e=Ln.utils.randomSecretKey();return{publicKey:Ln.getPublicKey(e),privateKey:e}},generateX25519KeyPairFromSeed(e){return{publicKey:Ln.getPublicKey(e),privateKey:e}},generateX25519SharedKey(e,t){return Ln.getSharedSecret(e.subarray(),t.subarray())},chaCha20Poly1305Encrypt(e,t,r,n){return Rc(n,t,r).encrypt(e.subarray())},chaCha20Poly1305Decrypt(e,t,r,n,o){return Rc(n,t,r).decrypt(e.subarray(),o)}};var Tl=Pc;function Dl(e){return{generateKeypair:e.generateX25519KeyPair,dh:(t,r)=>e.generateX25519SharedKey(t.privateKey,r).subarray(0,32),encrypt:e.chaCha20Poly1305Encrypt,decrypt:e.chaCha20Poly1305Decrypt,hash:e.hashSHA256,hkdf:e.getHKDF}}var Yr=e=>{let t=Mt(2);return t[0]=e>>8,t[1]=e,t};Yr.bytes=2;var Xr=e=>{if(e.length<2)throw RangeError("Could not decode int16BE");if(e instanceof Uint8Array){let t=0;return t+=e[0]<<8,t+=e[1],t}return e.getUint16(0)};Xr.bytes=2;function Rl(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"})}}function Pl(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var Ol=Pl("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Uc=Pl("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=Mt(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),og={utf8:Ol,"utf-8":Ol,hex:Ot.base16,latin1:Uc,ascii:Uc,binary:Uc,...Ot},As=og;function oe(e,t="utf8"){let r=As[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.encoder.encode(e).substring(1)}function Nc(e,t){!t.enabled||!jr||(e?(t(`LOCAL_STATIC_PUBLIC_KEY ${oe(e.publicKey,"hex")}`),t(`LOCAL_STATIC_PRIVATE_KEY ${oe(e.privateKey,"hex")}`)):t("Missing local static keys."))}function kc(e,t){!t.enabled||!jr||(e?(t(`LOCAL_PUBLIC_EPHEMERAL_KEY ${oe(e.publicKey,"hex")}`),t(`LOCAL_PRIVATE_EPHEMERAL_KEY ${oe(e.privateKey,"hex")}`)):t("Missing local ephemeral keys."))}function Ul(e,t){!t.enabled||!jr||t(e?`REMOTE_STATIC_PUBLIC_KEY ${oe(e.subarray(),"hex")}`:"Missing remote static public key.")}function Mc(e,t){!t.enabled||!jr||t(e?`REMOTE_EPHEMERAL_PUBLIC_KEY ${oe(e.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Kc(e,t,r){!r.enabled||!jr||(r(`CIPHER_STATE_1 ${e.n.getUint64()} ${e.k&&oe(e.k,"hex")}`),r(`CIPHER_STATE_2 ${t.n.getUint64()} ${t.k&&oe(t.k,"hex")}`))}function Fc(e,t){t==null&&(t=e.reduce((o,s)=>o+s.length,0));let r=Mt(t),n=0;for(let o of e)r.set(o,n),n+=o.length;return r}function cr(e,t="utf8"){let r=As[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return r.decoder.decode(`${r.prefix}${e}`)}var Qr=class e extends Error{code;constructor(t="Invalid crypto exchange"){super(t),this.code=e.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var ig=0,ag=4294967295,cg="Cipherstate has reached maximum n, a new handshake must be performed",Bs=class{n;bytes;view;constructor(t=ig){this.n=t,this.bytes=re(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>ag)throw new Error(cg)}};var fr=re(0),Jr=class{k;n;crypto;constructor(t,r=void 0,n=0){this.crypto=t,this.k=r,this.n=new Bs(n)}hasKey(){return!!this.k}encryptWithAd(t,r){if(!this.hasKey())return r;this.n.assertValue();let n=this.crypto.encrypt(r,this.n.getBytes(),t,this.k);return this.n.increment(),n}decryptWithAd(t,r,n){if(!this.hasKey())return r;this.n.assertValue();let o=this.crypto.decrypt(r,this.n.getBytes(),t,this.k,n);return this.n.increment(),o}},Hc=class{cs;ck;h;crypto;constructor(t,r){this.crypto=t;let n=cr(r,"utf-8");this.h=fg(t,n),this.ck=this.h,this.cs=new Jr(t)}mixKey(t){let[r,n]=this.crypto.hkdf(this.ck,t);this.ck=r,this.cs=new Jr(this.crypto,n)}mixHash(t){this.h=this.crypto.hash(new j(this.h,t))}encryptAndHash(t){let r=this.cs.encryptWithAd(this.h,t);return this.mixHash(r),r}decryptAndHash(t){let r=this.cs.decryptWithAd(this.h,t);return this.mixHash(t),r}split(){let[t,r]=this.crypto.hkdf(this.ck,fr);return[new Jr(this.crypto,t),new Jr(this.crypto,r)]}},Vc=class{ss;s;e;rs;re;initiator;crypto;constructor(t){let{crypto:r,protocolName:n,prologue:o,initiator:s,s:i,e:a,rs:c,re:f}=t;this.crypto=r,this.ss=new Hc(r,n),this.ss.mixHash(o),this.initiator=s,this.s=i,this.e=a,this.rs=c,this.re=f}writeE(){if(this.e)throw new Error("ephemeral keypair is already set");let t=this.crypto.generateKeypair();return this.ss.mixHash(t.publicKey),this.e=t,t.publicKey}writeS(){if(!this.s)throw new Error("static keypair is not set");return this.ss.encryptAndHash(this.s.publicKey)}writeEE(){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.re))}writeES(){if(this.initiator){if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}else{if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}}writeSE(){if(this.initiator){if(!this.s)throw new Error("static keypair is not set");if(!this.re)throw new Error("remote ephemeral public key is not set");this.ss.mixKey(this.crypto.dh(this.s,this.re))}else{if(!this.e)throw new Error("ephemeral keypair is not set");if(!this.rs)throw new Error("remote static public key is not set");this.ss.mixKey(this.crypto.dh(this.e,this.rs))}}readE(t,r=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(t.byteLength<r+32)throw new Error("message is not long enough");this.re=t.sublist(r,r+32),this.ss.mixHash(this.re)}readS(t,r=0){if(this.rs)throw new Error("remote static public key is already set");let n=32+(this.ss.cs.hasKey()?16:0);if(t.byteLength<r+n)throw new Error("message is not long enough");let o=t.sublist(r,r+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},Yn=class extends Vc{writeMessageA(t){return new j(this.writeE(),this.ss.encryptAndHash(t))}writeMessageB(t){let r=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new j(r,n,this.ss.encryptAndHash(t))}writeMessageC(t){let r=this.writeS();return this.writeSE(),new j(r,this.ss.encryptAndHash(t))}readMessageA(t){try{return this.readE(t),this.ss.decryptAndHash(t.sublist(32))}catch(r){throw new Qr(`handshake stage 0 validation fail: ${r.message}`)}}readMessageB(t){try{this.readE(t),this.readEE();let r=this.readS(t,32);return this.readES(),this.ss.decryptAndHash(t.sublist(32+r))}catch(r){throw new Qr(`handshake stage 1 validation fail: ${r.message}`)}}readMessageC(t){try{let r=this.readS(t);return this.readSE(),this.ss.decryptAndHash(t.sublist(r))}catch(r){throw new Qr(`handshake stage 2 validation fail: ${r.message}`)}}};function fg(e,t){if(t.length<=32){let r=re(32);return r.set(t),r}else return e.hash(t)}var zc=new Float32Array([-0]),Me=new Uint8Array(zc.buffer);function Nl(e,t,r){zc[0]=e,t[r]=Me[0],t[r+1]=Me[1],t[r+2]=Me[2],t[r+3]=Me[3]}function kl(e,t){return Me[0]=e[t],Me[1]=e[t+1],Me[2]=e[t+2],Me[3]=e[t+3],zc[0]}var qc=new Float64Array([-0]),Lt=new Uint8Array(qc.buffer);function Ml(e,t,r){qc[0]=e,t[r]=Lt[0],t[r+1]=Lt[1],t[r+2]=Lt[2],t[r+3]=Lt[3],t[r+4]=Lt[4],t[r+5]=Lt[5],t[r+6]=Lt[6],t[r+7]=Lt[7]}function Kl(e,t){return Lt[0]=e[t],Lt[1]=e[t+1],Lt[2]=e[t+2],Lt[3]=e[t+3],Lt[4]=e[t+4],Lt[5]=e[t+5],Lt[6]=e[t+6],Lt[7]=e[t+7],qc[0]}var ug=BigInt(Number.MAX_SAFE_INTEGER),hg=BigInt(Number.MIN_SAFE_INTEGER),Pt=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return ur;if(t<ug&&t>hg)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,o=t-(n<<32n);return r&&(n=~n|0n,o=~o|0n,++o>Fl&&(o=0n,++n>Fl&&(n=0n))),new e(Number(o),Number(n))}static fromNumber(t){if(t===0)return ur;let r=t<0;r&&(t=-t);let n=t>>>0,o=(t-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new e(n,o)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):ur}},ur=new Pt(0,0);ur.toBigInt=function(){return 0n};ur.zzEncode=ur.zzDecode=function(){return this};ur.length=function(){return 1};var Fl=4294967296n;function Hl(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Vl(e,t,r){if(r-t<1)return"";let o,s=[],i=0,a;for(;t<r;)a=e[t++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function $c(e,t,r){let n=r,o,s;for(let i=0;i<e.length;++i)o=e.charCodeAt(i),o<128?t[r++]=o:o<2048?(t[r++]=o>>6|192,t[r++]=o&63|128):(o&64512)===55296&&((s=e.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,t[r++]=o>>18|240,t[r++]=o>>12&63|128,t[r++]=o>>6&63|128,t[r++]=o&63|128):(t[r++]=o>>12|224,t[r++]=o>>6&63|128,t[r++]=o&63|128);return r-n}function Gt(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function _s(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var jc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Gt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Gt(this,4);return _s(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Gt(this,4);return _s(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Gt(this,4);let t=kl(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Gt(this,4);let t=Kl(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Gt(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Vl(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Gt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Gt(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Pt(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Gt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Gt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Gt(this,8);let t=_s(this.buf,this.pos+=4),r=_s(this.buf,this.pos+=4);return new Pt(t,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Cn(this.buf,this.pos);return this.pos+=lt(t),t}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Wc(e){return new jc(e instanceof Uint8Array?e:e.subarray())}function Ls(e,t,r){let n=Wc(e);return t.decode(n,void 0,r)}function Gc(e){let t=e??8192,r=t>>>1,n,o=t;return function(i){if(i<1||i>r)return Mt(i);o+i>t&&(n=Mt(t),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var hr=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Zc(){}var Xc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},lg=Gc();function dg(e){return globalThis.Buffer!=null?Mt(e):lg(e)}var Qn=class{len;head;tail;states;constructor(){this.len=0,this.head=new hr(Zc,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new hr(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new Qc((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Is,10,Pt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=Pt.fromBigInt(t);return this._push(Is,r.length(),r)}uint64Number(t){return this._push(Pe,lt(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=Pt.fromBigInt(t).zzEncode();return this._push(Is,r.length(),r)}sint64Number(t){let r=Pt.fromNumber(t).zzEncode();return this._push(Is,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Yc,1,t?1:0)}fixed32(t){return this._push(Xn,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=Pt.fromBigInt(t);return this._push(Xn,4,r.lo)._push(Xn,4,r.hi)}fixed64Number(t){let r=Pt.fromNumber(t);return this._push(Xn,4,r.lo)._push(Xn,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Nl,4,t)}double(t){return this._push(Ml,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Yc,1,0):this.uint32(r)._push(mg,r,t)}string(t){let r=Hl(t);return r!==0?this.uint32(r)._push($c,r,t):this._push(Yc,1,0)}fork(){return this.states=new Xc(this),this.head=this.tail=new hr(Zc,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new hr(Zc,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=dg(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Yc(e,t,r){t[r]=e&255}function pg(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var Qc=class extends hr{next;constructor(t,r){super(pg,t,r),this.next=void 0}};function Is(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Xn(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function mg(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Qn.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(yg,t,e),this},Qn.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(gg,t,e),this});function yg(e,t,r){t.set(e,r)}function gg(e,t,r){e.length<40?$c(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(cr(e),r)}function Jc(){return new Qn}function Cs(e,t){let r=Jc();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var Jn;(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"})(Jn||(Jn={}));function tf(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function Ts(e,t){return tf("message",Jn.LENGTH_DELIMITED,e,t)}var to=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var Ds;(function(e){let t;e.codec=()=>(t==null&&(t=Ts((r,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),r.webtransportCerthashes!=null)for(let s of r.webtransportCerthashes)n.uint32(10),n.bytes(s);if(r.streamMuxers!=null)for(let s of r.streamMuxers)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(r,n,o={})=>{let s={webtransportCerthashes:[],streamMuxers:[]},i=n==null?r.len:r.pos+n;for(;r.pos<i;){let a=r.uint32();switch(a>>>3){case 1:{if(o.limits?.webtransportCerthashes!=null&&s.webtransportCerthashes.length===o.limits.webtransportCerthashes)throw new to('Decode error - map field "webtransportCerthashes" had too many elements');s.webtransportCerthashes.push(r.bytes());break}case 2:{if(o.limits?.streamMuxers!=null&&s.streamMuxers.length===o.limits.streamMuxers)throw new to('Decode error - map field "streamMuxers" had too many elements');s.streamMuxers.push(r.string());break}default:{r.skipType(a&7);break}}}return s})),t),e.encode=r=>Cs(r,e.codec()),e.decode=(r,n)=>Ls(r,e.codec(),n)})(Ds||(Ds={}));var eo;(function(e){let t;e.codec=()=>(t==null&&(t=Ts((r,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),r.identityKey!=null&&r.identityKey.byteLength>0&&(n.uint32(10),n.bytes(r.identityKey)),r.identitySig!=null&&r.identitySig.byteLength>0&&(n.uint32(18),n.bytes(r.identitySig)),r.extensions!=null&&(n.uint32(34),Ds.codec().encode(r.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(r,n,o={})=>{let s={identityKey:re(0),identitySig:re(0)},i=n==null?r.len:r.pos+n;for(;r.pos<i;){let a=r.uint32();switch(a>>>3){case 1:{s.identityKey=r.bytes();break}case 2:{s.identitySig=r.bytes();break}case 4:{s.extensions=Ds.codec().decode(r,r.uint32(),{limits:o.limits?.extensions});break}default:{r.skipType(a&7);break}}}return s})),t),e.encode=r=>Cs(r,e.codec()),e.decode=(r,n)=>Ls(r,e.codec(),n)})(eo||(eo={}));async function rf(e,t,r){let n=await e.sign($l(t));return eo.encode({identityKey:Be(e.publicKey),identitySig:n,extensions:r})}async function nf(e,t,r){try{let n=eo.decode(e),o=kn(n.identityKey);if(r?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${r}`);if(!t)throw new Error("Remote static does not exist");let s=$l(t);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new no(n.message)}}function $l(e){let t=cr("noise-libp2p-static-key:");return e instanceof Uint8Array?Fc([t,e],t.length+e.length):(e.prepend(t),e)}var ef=class extends ee{stream;handshake;metrics;decoder;constructor(t,r,n){super({log:t.log,inactivityTimeout:t.inactivityTimeout,maxReadBufferLength:t.maxReadBufferLength,direction:t.direction}),this.stream=t,this.handshake=r,this.metrics=n,this.decoder=new Ss({lengthDecoder:Xr,maxBufferSize:16*1024*1024,encodingLength:()=>2});let o=c=>{try{for(let f of this.decoder.decode(c.data))this.onData(this.decrypt(f))}catch(f){this.abort(f)}};this.stream.addEventListener("message",o);let s=c=>{c.error!=null?c.local===!0?this.abort(c.error):this.onRemoteReset():this.onTransportClosed()};this.stream.addEventListener("close",s);let i=()=>{this.safeDispatchEvent("drain")};this.stream.addEventListener("drain",i);let a=()=>{this.onRemoteCloseWrite()};this.stream.addEventListener("remoteCloseWrite",a)}encrypt(t){let r=new j;for(let n=0;n<t.byteLength;n+=65519){let o=n+65519;o>t.byteLength&&(o=t.byteLength);let s;t instanceof Uint8Array?s=this.handshake.encrypt(t.subarray(n,o)):s=this.handshake.encrypt(t.sublist(n,o)),this.metrics?.encryptedPackets.increment(),r.append(Yr(s.byteLength)),r.append(s)}return r}decrypt(t){let r=new j;for(let n=0;n<t.byteLength;n+=65535){let o=n+65535;if(o>t.byteLength&&(o=t.byteLength),o-Ic<n)throw new Error("Invalid chunk");let s;t instanceof Uint8Array?s=t.subarray(n,o):s=t.sublist(n,o);let i=t.subarray(n,o-Ic);try{let a=this.handshake.decrypt(s,i);this.metrics?.decryptedPackets.increment(),r.append(a)}catch(a){throw this.metrics?.decryptErrors.increment(),a}}return r}close(t){return this.stream.close(t)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(t){this.stream.abort(t)}sendData(t){return{sentBytes:t.byteLength,canSendMore:this.stream.send(this.encrypt(t))}}};function of(e,t,r){return new ef(e,t,r)}async function jl(e,t){let{log:r,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=e,u=await rf(s,a.publicKey,f),h=new Yn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Nc(h.s,r),r.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(fr),t),r.trace("Stage 0 - Initiator finished sending first message."),kc(h.e,r),r.trace("Stage 1 - Initiator waiting to receive first message from responder...");let y=h.readMessageB(await n.read(t));r.trace("Stage 1 - Initiator received the message."),Mc(h.re,r),Ul(h.rs,r),r.trace("Initiator going to check remote's signature...");let p=await nf(y,h.rs,c);r.trace("All good with the signature!"),r.trace("Stage 2 - Initiator sending third handshake message."),await n.write(h.writeMessageC(u),t),r.trace("Stage 2 - Initiator sent message with signed payload.");let[d,b]=h.ss.split();return Kc(d,b,r),{payload:p,encrypt:l=>d.encryptWithAd(fr,l),decrypt:(l,g)=>b.decryptWithAd(fr,l,g)}}async function Wl(e,t){let{log:r,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=e,u=await rf(s,a.publicKey,f),h=new Yn({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Nc(h.s,r),r.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(t)),r.trace("Stage 0 - Responder received first message."),Mc(h.re,r),r.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(u),t),r.trace("Stage 1 - Responder sent the second handshake message with signed payload."),kc(h.e,r),r.trace("Stage 2 - Responder waiting for third handshake message...");let y=h.readMessageC(await n.read(t));r.trace("Stage 2 - Responder received the message, finished handshake.");let p=await nf(y,h.rs,c),[d,b]=h.ss.split();return Kc(d,b,r),{payload:p,encrypt:l=>b.encryptWithAd(fr,l),decrypt:(l,g)=>d.decryptWithAd(fr,l,g)}}var Rs=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(t,r={}){let{staticNoiseKey:n,extensions:o,crypto:s,prologueBytes:i}=r,{metrics:a}=t;this.components=t,this.log=t.logger.forComponent("libp2p:noise");let c=s??Tl;this.crypto=Dl(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?Rl(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=i??re(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[lo]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(t,r){let n=t.log?.newScope("noise")??this.log,o=Lc(t,{lengthEncoder:Yr,lengthDecoder:Xr,maxDataLength:65535}),s=await this.performHandshakeInitiator(o,this.components.privateKey,n,r?.remotePeer?.publicKey,r),i=kn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:qa(i),streamMuxer:r?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}getStreamMuxer(t){if(t==null||t.length===0)return;let r=this.components.upgrader.getStreamMuxers();if(r!=null)for(let n of t){let o=r.get(n);if(o!=null)return o}if(t.length)throw new pr("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(t,r){let n=t.log?.newScope("noise")??this.log,o=Lc(t,{lengthEncoder:Yr,lengthDecoder:Xr,maxDataLength:65535}),s=await this.performHandshakeResponder(o,this.components.privateKey,n,r?.remotePeer?.publicKey,r),i=kn(s.payload.identityKey);return{connection:of(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:qa(i),streamMuxer:r?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(t,r,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await jl({connection:t,privateKey:r,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}async performHandshakeResponder(t,r,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Wl({connection:t,privateKey:r,remoteIdentityKey:o,log:n.newScope("xxhandshake"),crypto:this.crypto,prologue:this.prologue,s:this.staticKey,extensions:{streamMuxers:a,webtransportCerthashes:[],...this.extensions}},s),this.metrics?.xxHandshakeSuccesses.increment()}catch(c){throw this.metrics?.xxHandshakeErrors.increment(),c}return i}};function Gl(e={}){return t=>new Rs(t,e)}var lr=class extends Event{type;detail;constructor(t,r){super(t),this.type=t,this.detail=r}};function sf(e){throw new Error("Not implemented")}var af=class extends ws{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),this.writer.closed.then(()=>{this.log("writer closed gracefully")}).catch(r=>{r.message.includes("STOP_SENDING")||r.message.includes("StopSending")?this.onRemoteCloseRead():r.message.includes("RESET_STREAM")||r.message.includes("Reset")?this.onRemoteReset():this.log("writer close promise rejected - %e",r)}),this.readData()}readData(){Promise.resolve().then(async()=>{for(;;){let t=await this.reader.read();if(t.value!=null&&this.onData(t.value),t.done){this.log("remote closed write"),this.onRemoteCloseWrite();return}if(this.readStatus==="paused")break}}).catch(t=>{this.abort(t)}).finally(()=>{this.reader.releaseLock()})}sendData(t){for(let n of t)this.writer.write(n).catch(o=>{this.abort(o)});if(this.log.trace("desired size after sending %d bytes is %d bytes",t.byteLength,this.writer.desiredSize),this.writer.desiredSize==null)return{sentBytes:t.byteLength,canSendMore:!1};let r=this.writer.desiredSize>0;return r||this.writer.ready.then(()=>{this.safeDispatchEvent("drain")},n=>{this.abort(n)}),{sentBytes:t.byteLength,canSendMore:r}}sendReset(t){this.writer.abort(t).catch(r=>{this.log.error("error aborting writer - %e",r)})}async sendCloseWrite(t){this.log("sendCloseWrite closing writer"),await kt(this.writer.close().catch(()=>{}),t?.signal),this.log("sendCloseWrite closed writer")}async sendCloseRead(t){this.log("sendCloseRead cancelling reader"),await kt(this.reader.cancel(),t?.signal),this.log("sendCloseRead cancelled reader")}sendPause(){}sendResume(){this.readData()}};function cf(e,t,r,n,o){return new af({...o,stream:e,id:t,direction:r,log:n.newScope(`${r}:${t}`),protocol:""})}var Zl="/webtransport",ff=class extends xs{webTransport;streamIDCounter;reader;constructor(t,r){super(r,{protocol:Zl,name:"muxer"}),this.webTransport=t,this.streamIDCounter=0,this.reader=this.webTransport.incomingBidirectionalStreams.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:n,value:o}=await this.reader.read();if(n||o==null)break;this.onRemoteStream(cf(o,String(this.streamIDCounter++),"inbound",this.log,this.streamOptions))}}).catch(n=>{this.log.error("could not create a new stream - %e",n)})}async onCreateStream(t){let r=await this.webTransport.createBidirectionalStream();return t?.signal?.throwIfAborted(),cf(r,String(this.streamIDCounter++),"outbound",this.log,t)}onData(){}sendReset(){this.webTransport.close()}};function Yl(e){return{protocol:Zl,createStreamMuxer(t){return new ff(e,t)}}}var uf=class extends bs{cleanUpWTSession;constructor(t){super(t),this.cleanUpWTSession=t.cleanUpWTSession}sendData(t){return{sentBytes:t.byteLength,canSendMore:!0}}sendReset(){this.cleanUpWTSession("abort")}async sendClose(t){this.cleanUpWTSession("close"),t?.signal?.throwIfAborted()}sendPause(){}sendResume(){}},Xl=e=>new uf(e);function Ql(e,t){return t.filter(n=>!!e.find(o=>It(n,o))).length===t.length}var bg=Object.values(Ot).map(e=>e.decoder).reduce((e,t)=>e.or(t));function xg(e){return ae.decode(bg.decode(e))}function hf(e){if(!ls.matches(e))throw new io("Invalid multiaddr, was not a WebTransport address");let t=[],r;for(let s of e.getComponents())s.name==="certhash"&&t.push(xg(s.value??"")),s.name==="p2p"&&r==null&&(r=Mh(s.value??""));let n=Fh(e),o=n.host;return n.type==="ip6"&&o.includes(":")&&(o=`[${o}]`),{url:`https://${o}:${n.port}`,certhashes:t,remotePeer:r}}var Os=class extends ee{writer;reader;constructor(t){super(t),this.writer=t.stream.writable.getWriter(),this.reader=t.stream.readable.getReader(),Promise.resolve().then(async()=>{for(;;){let{done:r,value:n}=await this.reader.read();if(n!=null&&this.onData(n),r)break}}).catch(r=>{this.abort(r)})}async close(t){await kt(this.writer.close(),t?.signal)}sendData(t){return this.writer.write(t.subarray()).catch(r=>{this.abort(r)}),{sentBytes:t.byteLength,canSendMore:!0}}sendReset(t){this.writer.abort(t).catch(r=>{this.log.error("could not send reset - %e",r)})}sendPause(){}sendResume(){}};var Jl=globalThis.WebTransport;var lf=class{log;components;config;metrics;constructor(t,r={}){this.log=t.logger.forComponent("libp2p:webtransport"),this.components=t,this.config={...r,certificates:r.certificates??[]},t.metrics!=null&&(this.metrics={dialerEvents:t.metrics.registerCounterGroup("libp2p_webtransport_dialer_events_total",{label:"event",help:"Total count of WebTransport dialer events by type"})})}[Symbol.toStringTag]="@libp2p/webtransport";[yf]=!0;[lo]=["@libp2p/transport"];async dial(t,r){r.signal.throwIfAborted(),this.log("dialing %s",t),r=r??{};let{url:n,certhashes:o,remotePeer:s}=hf(t),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let y=new Jl(`${n}/.well-known/libp2p-webtransport?type=noise`,{serverCertificateHashes:o.map(d=>({algorithm:"sha-256",value:Ut(d.digest)}))});c=d=>{if(!f)try{this.metrics?.dialerEvents.increment({[d]:!0}),y.close()}catch(b){this.log.error("error closing wt session - %e",b)}finally{a!=null&&(a.timeline.close=Date.now()),f=!0}},i=()=>{c(u?"noise_timeout":"ready_timeout")},r.signal.addEventListener("abort",i,{once:!0}),this.log("wait for session to be ready"),r.onProgress?.(new lr("webtransport:wait-for-session")),await Promise.race([y.closed,y.ready]),this.log("session became ready"),u=!0,this.metrics?.dialerEvents.increment({ready:!0}),y.closed.catch(d=>{this.log.error("error on remote wt session close - %e",d)}).finally(()=>{c("remote_close")}),this.metrics?.dialerEvents.increment({open:!0}),a=Xl({remoteAddr:t,cleanUpWTSession:c,direction:"outbound",log:this.components.logger.forComponent("libp2p:webtransport:connection")});let p=await this.authenticateWebTransport({wt:y,maConn:a,remotePeer:s,certhashes:o,...r});if(h=!0,s!=null&&(h=s.equals(p)),!h)throw new pr("Failed to authenticate webtransport");return await r.upgrader.upgradeOutbound(a,{...r,skipEncryption:!0,remotePeer:p,muxerFactory:Yl(y),skipProtection:!0})}catch(y){throw this.log.error("caught wt session err - %e",y),c(h?"upgrade_error":u?"noise_error":"ready_error"),y}finally{i!=null&&r.signal?.removeEventListener("abort",i)}}async authenticateWebTransport({wt:t,maConn:r,remotePeer:n,certhashes:o,onProgress:s,signal:i}){s?.(new lr("webtransport:open-authentication-stream"));let a=await t.createBidirectionalStream();i?.throwIfAborted();let c=new Os({stream:a,log:r.log.newScope("muxer")}),f=Gl()(this.components);s?.(new lr("webtransport:secure-outbound-connection"));let{remoteExtensions:u,remotePeer:h}=await f.secureOutbound(c,{signal:i,remotePeer:n,skipStreamMuxerNegotiation:!0});if(s?.(new lr("webtransport:close-authentication-stream")),await c.close({signal:i}),!Ql(u?.webtransportCerthashes??[],o.map(y=>y.bytes)))throw new Q("Our certhashes are not a subset of the remote's reported certhashes");return h}createListener(t){return sf(this.components,{...t,certificates:this.config.certificates})}listenFilter(){return[]}dialFilter(t){return globalThis.WebTransport==null?[]:t.filter(r=>{if(!ls.exactMatch(r))return!1;let{url:n,certhashes:o}=hf(r);return n!=null&&o.length>0})}};function wg(e={}){return t=>new lf(t,e)}return od(Eg);})();
3
3
  //! TODO unclear how to add backpressure here?
4
4
  /*! Bundled license information:
5
5