@libp2p/webtransport 6.0.28 → 6.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/package.json +2 -2
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 ti=Object.defineProperty;var Sp=Object.getOwnPropertyDescriptor;var Ap=Object.getOwnPropertyNames;var vp=Object.prototype.hasOwnProperty;var H=(t,e)=>{for(var r in e)ti(t,r,{get:e[r],enumerable:!0})},Bp=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of Ap(e))!vp.call(t,o)&&o!==r&&ti(t,o,{get:()=>e[o],enumerable:!(n=Sp(e,o))||n.enumerable});return t};var Lp=t=>Bp(ti({},"__esModule",{value:!0}),t);var hw={};H(hw,{webTransport:()=>uw});var vo=class extends Error{static name="UnexpectedPeerError";constructor(e="Unexpected Peer"){super(e),this.name="UnexpectedPeerError"}},Ar=class extends Error{static name="InvalidCryptoExchangeError";constructor(e="Invalid crypto exchange"){super(e),this.name="InvalidCryptoExchangeError"}},ee=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},vr=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}};var Bo=class extends Error{static name="MuxerClosedError";constructor(e="The muxer is closed"){super(e),this.name="MuxerClosedError"}},Lo=class extends Error{static name="StreamResetError";constructor(e="The stream has been reset"){super(e),this.name="StreamResetError"}};var Bt=class extends Error{static name="StreamStateError";constructor(e="The stream is in an invalid state"){super(e),this.name="StreamStateError"}},xn=class extends Error{static name="StreamBufferError";constructor(e="The stream buffer was full"){super(e),this.name="StreamBufferError"}};var Co=class extends Error{static name="InvalidMultiaddrError";constructor(e="Invalid multiaddr"){super(e),this.name="InvalidMultiaddrError"}},Io=class extends Error{static name="InvalidCIDError";constructor(e="Invalid CID"){super(e),this.name="InvalidCIDError"}},_o=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Gt=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var To=class extends Event{data;constructor(e,r){super("message",r),this.data=e}},Br=class extends Event{error;local;constructor(e,r,n){super("close",n),this.error=r,this.local=e}},Do=class extends Br{constructor(e,r){super(!0,e,r)}},Ro=class extends Br{constructor(e,r){super(!1,e,r)}};var ri=Symbol.for("@libp2p/peer-id");var cu=Symbol.for("@libp2p/transport");var au;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(au||(au={}));function Cp(t){return typeof t?.handleEvent=="function"}function Ip(t){return(t!==!0&&t!==!1&&t?.once)??!1}var Lr=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){let o=Ip(n);super.addEventListener(e,i=>{if(o){let a=this.#e.get(i.type);a!=null&&(a=a.filter(({callback:c})=>c!==r),this.#e.set(i.type,a))}Cp(r)?r.handleEvent(i):r(i)},n);let s=this.#e.get(e);s==null&&(s=[],this.#e.set(e,s)),s.push({callback:r,once:o})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==r),this.#e.set(e,o))}safeDispatchEvent(e,r={}){return this.dispatchEvent(new CustomEvent(e,r))}};var Oo=Symbol.for("@libp2p/service-capabilities");var ai={};H(ai,{base58btc:()=>he,base58flickr:()=>Np});var Vw=new Uint8Array(0);function fu(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function ut(t){if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return Xt(t);if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return Xt(new Uint8Array(t.buffer,t.byteOffset,t.byteLength));throw new Error("Unknown type, must be binary type")}function uu(t){return new TextEncoder().encode(t)}function hu(t){return new TextDecoder().decode(t)}function _p(t){return t?.buffer instanceof ArrayBuffer}function Xt(t){return _p(t)?t:t.slice()}function Tp(t,e){if(t.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<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,c=t.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,m=0,v=d.length;m!==v&&d[m]===0;)m++,b++;for(var B=(v-m)*u+1>>>0,T=new Uint8Array(B);m!==v;){for(var D=d[m],U=0,_=B-1;(D!==0||U<l)&&_!==-1;_--,U++)D+=256*T[_]>>>0,T[_]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,m++}for(var C=B-l;C!==B&&T[C]===0;)C++;for(var P=c.repeat(b);C<B;++C)P+=t.charAt(T[C]);return P}function g(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,m=0;d[b]===c;)l++,b++;for(var v=(d.length-b)*f+1>>>0,B=new Uint8Array(v);d[b];){var T=r[d.charCodeAt(b)];if(T===255)return;for(var D=0,U=v-1;(T!==0||D<m)&&U!==-1;U--,D++)T+=a*B[U]>>>0,B[U]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=D,b++}if(d[b]!==" "){for(var _=v-m;_!==v&&B[_]===0;)_++;for(var C=new Uint8Array(l+(v-_)),P=l;_!==v;)C[P++]=B[_++];return C}}}function p(d){var b=g(d);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:g,decode:p}}var Dp=Tp,Rp=Dp,du=Rp;var ni=class{name;prefix;baseEncode;constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},oi=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){this.name=e,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(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return pu(this,e)}},si=class{decoders;constructor(e){this.decoders=e}or(e){return pu(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function pu(t,e){return new si({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var ii=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new ni(e,r,n),this.decoder=new oi(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Cr({name:t,prefix:e,encode:r,decode:n}){return new ii(t,e,r,n)}function Lt({name:t,prefix:e,alphabet:r}){let{encode:n,decode:o}=du(r,t);return Cr({prefix:e,name:t,encode:n,decode:s=>ut(o(s))})}function Op(t,e,r,n){let o=t.length;for(;t[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=e[t[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 Up(t,e,r){let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function Pp(t){let e={};for(let r=0;r<t.length;++r)e[t[r]]=r;return e}function ue({name:t,prefix:e,bitsPerChar:r,alphabet:n}){let o=Pp(n);return Cr({prefix:e,name:t,encode(s){return Up(s,n,r)},decode(s){return Op(s,o,r,t)}})}var he=Lt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Np=Lt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var ci={};H(ci,{base32:()=>Ct,base32hex:()=>Kp,base32hexpad:()=>Hp,base32hexpadupper:()=>Vp,base32hexupper:()=>zp,base32pad:()=>Mp,base32padupper:()=>kp,base32upper:()=>Fp,base32z:()=>qp});var Ct=ue({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Fp=ue({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Mp=ue({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),kp=ue({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Kp=ue({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),zp=ue({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Hp=ue({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Vp=ue({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),qp=ue({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var fi={};H(fi,{base36:()=>wn,base36upper:()=>$p});var wn=Lt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),$p=Lt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ht={};H(ht,{Digest:()=>Zt,create:()=>He,decode:()=>Tr,equals:()=>hi,hasCode:()=>um});var jp=gu,mu=128,Wp=127,Gp=~Wp,Xp=Math.pow(2,31);function gu(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Xp;)e[r++]=t&255|mu,t/=128;for(;t&Gp;)e[r++]=t&255|mu,t>>>=7;return e[r]=t|0,gu.bytes=r-n+1,e}var Zp=ui,Yp=128,yu=127;function ui(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw ui.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&yu)<<o:(i&yu)*Math.pow(2,o),o+=7}while(i>=Yp);return ui.bytes=s-n,r}var Jp=Math.pow(2,7),Qp=Math.pow(2,14),em=Math.pow(2,21),tm=Math.pow(2,28),rm=Math.pow(2,35),nm=Math.pow(2,42),om=Math.pow(2,49),sm=Math.pow(2,56),im=Math.pow(2,63),am=function(t){return t<Jp?1:t<Qp?2:t<em?3:t<tm?4:t<rm?5:t<nm?6:t<om?7:t<sm?8:t<im?9:10},cm={encode:jp,decode:Zp,encodingLength:am},fm=cm,En=fm;function Sn(t,e=0){return[En.decode(t,e),En.decode.bytes]}function Ir(t,e,r=0){return En.encode(t,e,r),e}function _r(t){return En.encodingLength(t)}function He(t,e){let r=e.byteLength,n=_r(t),o=n+_r(r),s=new Uint8Array(o+r);return Ir(t,s,0),Ir(r,s,n),s.set(e,o),new Zt(t,r,e,s)}function Tr(t){let e=ut(t),[r,n]=Sn(e),[o,s]=Sn(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Zt(r,o,i,e)}function hi(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&fu(t.bytes,r.bytes)}}var Zt=class{code;size;digest;bytes;constructor(e,r,n,o){this.code=e,this.size=r,this.digest=Xt(n),this.bytes=Xt(o)}};function um(t,e){return t.code===e}function bu(t,e){let{bytes:r,version:n}=t;return n===0?lm(r,li(t),e??he.encoder):dm(r,li(t),e??Ct.encoder)}var xu=new WeakMap;function li(t){let e=xu.get(t);if(e==null){let r=new Map;return xu.set(t,r),r}return e}var me=class t{code;version;multihash;bytes;"/";constructor(e,r,n,o){this.code=r,this.version=e,this.multihash=n,this.bytes=Xt(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:e,multihash:r}=this;if(e!==An)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==pm)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.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:e,digest:r}=this.multihash,n=He(e,r);return t.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(e){return t.equals(this,e)}static equals(e,r){let n=r;return n!=null&&e.code===n.code&&e.version===n.version&&hi(e.multihash,n.multihash)}toString(e){return bu(this,e)}toJSON(){return{"/":bu(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new t(n,o,s,i??wu(n,o,s.bytes))}else if(r[mm]===!0){let{version:n,multihash:o,code:s}=r,i=Tr(o);return t.create(n,s,i)}else return null}static create(e,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(e){case 0:{if(r!==An)throw new Error(`Version 0 CID must use dag-pb (code: ${An}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=wu(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,An,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=ut(e.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 Zt(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(i):t.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[h,g]=Sn(e.subarray(r));return r+=g,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(e,r){let[n,o]=hm(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return li(s).set(n,e),s}};function hm(t,e){switch(t[0]){case"Q":{let r=e??he;return[he.prefix,r.decode(`${he.prefix}${t}`)]}case he.prefix:{let r=e??he;return[he.prefix,r.decode(t)]}case Ct.prefix:{let r=e??Ct;return[Ct.prefix,r.decode(t)]}case wn.prefix:{let r=e??wn;return[wn.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function lm(t,e,r){let{prefix:n}=r;if(n!==he.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o}function dm(t,e,r){let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o}var An=112,pm=18;function wu(t,e,r){let n=_r(t),o=n+_r(e),s=new Uint8Array(o+r.byteLength);return Ir(t,s,0),Ir(e,s,n),s.set(r,o),s}var mm=Symbol.for("@ipld/js-cid/CID");var di={};H(di,{identity:()=>Ve});var Eu=0,ym="identity",Su=ut;function gm(t,e){if(e?.truncate!=null&&e.truncate!==t.byteLength){if(e.truncate<0||e.truncate>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,e.truncate)}return He(Eu,Su(t))}var Ve={code:Eu,name:ym,encode:Su,digest:gm};function we(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function bm(t){return t.buffer instanceof ArrayBuffer}function De(t){return bm(t)?t:t.slice()}async function Au(t,e,r,n){let o=await crypto.subtle.importKey("jwk",t,{name:"ECDSA",namedCurve:t.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,De(e),De(r.subarray()));return n?.signal?.throwIfAborted(),s}function lt(t=0){return new Uint8Array(t)}function vn(t=0){return new Uint8Array(t)}function pi(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=vn(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return r}function vu(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var Lu=Symbol.for("@achingbrain/uint8arraylist");function Bu(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let o=r+n.byteLength;if(e<o)return{buf:n,index:e-r};r=o}throw new RangeError("index is out of bounds")}function Po(t){return!!t?.[Lu]}var W=class t{bufs;length;[Lu]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Po(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(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Po(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(e){let r=Bu(this.bufs,e);return r.buf[r.index]}set(e,r){let n=Bu(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(Po(e))for(let n=0;n<e.length;n++)this.set(r+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,r){let{bufs:n,length:o}=this._subList(e,r);return pi(n,o)}subarray(e,r){let{bufs:n,length:o}=this._subList(e,r);return n.length===1?n[0]:pi(n,o)}sublist(e,r){let{bufs:n,length:o}=this._subList(e,r),s=new t;return s.length=o,s.bufs=n,s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===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,e>=c)continue;let f=e>=a&&e<c,u=r>a&&r<=c;if(f&&u){if(e===a&&r===c){n.push(i);break}let h=e-a;n.push(i.subarray(h,h+(r-e)));break}if(f){if(e===0){n.push(i);continue}n.push(i.subarray(e-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-e}}indexOf(e,r=0){if(!Po(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.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 g=f;g>=0;g--){let p=this.get(h+g);if(n[g]!==p){u=Math.max(1,g-a[p]);break}}if(u===0)return h}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=vn(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let o=lt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,r,n),this.write(o,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let o=lt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,r,n),this.write(o,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let o=lt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,r,n),this.write(o,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=vn(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let o=lt(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,r,n),this.write(o,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let o=lt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,r,n),this.write(o,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let o=lt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,r,n),this.write(o,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let o=lt(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,r,n),this.write(o,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let o=lt(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,r,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof t)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!vu(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new t;return n.bufs=e,r==null&&(r=e.reduce((o,s)=>o+s.byteLength,0)),n.length=r,n}};var mi={};H(mi,{base10:()=>xm});var xm=Lt({prefix:"9",name:"base10",alphabet:"0123456789"});var yi={};H(yi,{base16:()=>wm,base16upper:()=>Em});var wm=ue({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Em=ue({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var gi={};H(gi,{base2:()=>Sm});var Sm=ue({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var bi={};H(bi,{base256emoji:()=>Cm});var Cu=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}"),Am=Cu.reduce((t,e,r)=>(t[r]=e,t),[]),vm=Cu.reduce((t,e,r)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return t[n]=r,t},[]);function Bm(t){return t.reduce((e,r)=>(e+=Am[r],e),"")}function Lm(t){let e=[];for(let r of t){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=vm[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);e.push(o)}return new Uint8Array(e)}var Cm=Cr({prefix:"\u{1F680}",name:"base256emoji",encode:Bm,decode:Lm});var wi={};H(wi,{base64:()=>Im,base64pad:()=>_m,base64url:()=>xi,base64urlpad:()=>Tm});var Im=ue({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),_m=ue({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),xi=ue({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Tm=ue({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ei={};H(Ei,{base8:()=>Dm});var Dm=ue({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Si={};H(Si,{identity:()=>Rm});var Rm=Cr({prefix:"\0",name:"identity",encode:t=>hu(t),decode:t=>uu(t)});var T1=new TextEncoder,D1=new TextDecoder;var Bi={};H(Bi,{sha256:()=>Bn,sha512:()=>Nm});var Pm=20;function vi({name:t,code:e,encode:r,minDigestLength:n,maxDigestLength:o}){return new Ai(t,e,r,n,o)}var Ai=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,r,n,o,s){this.name=e,this.code=r,this.encode=n,this.minDigestLength=o??Pm,this.maxDigestLength=s}digest(e,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(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?Iu(n,this.code,r?.truncate):n.then(o=>Iu(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function Iu(t,e,r){if(r!=null&&r!==t.byteLength){if(r>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,r)}return He(e,t)}function Tu(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var Bn=vi({name:"sha2-256",code:18,encode:Tu("SHA-256")}),Nm=vi({name:"sha2-512",code:19,encode:Tu("SHA-512")});var Yt={...Si,...gi,...Ei,...mi,...yi,...ci,...fi,...ai,...wi,...bi},V1={...Bi,...di};function Jt(t=0){return new Uint8Array(t)}function Ru(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Du=Ru("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Li=Ru("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Jt(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Fm={utf8:Du,"utf-8":Du,hex:Yt.base16,latin1:Li,ascii:Li,binary:Li,...Yt},No=Fm;function re(t,e="utf8"){let r=No[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}function G(t,e="utf8"){let r=No[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.encoder.encode(t).substring(1)}var Mm=parseInt("11111",2),Ci=parseInt("10000000",2),km=parseInt("01111111",2),Ou={0:Ln,1:Ln,2:Km,3:Vm,4:qm,5:Hm,6:zm,16:Ln,22:Ln,48:Ln};function dt(t,e={offset:0}){let r=t[e.offset]&Mm;if(e.offset++,Ou[r]!=null)return Ou[r](t,e);throw new Error("No decoder for tag "+r)}function Cn(t,e){let r=0;if((t[e.offset]&Ci)===Ci){let n=t[e.offset]&km,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++)o+=t[e.offset].toString(16).padStart(2,"0");r=parseInt(o,16)}else r=t[e.offset],e.offset++;return r}function Ln(t,e){Cn(t,e);let r=[];for(;!(e.offset>=t.byteLength);){let n=dt(t,e);if(n===null)break;r.push(n)}return r}function Km(t,e){let r=Cn(t,e),n=e.offset,o=e.offset+r,s=[];for(let i=n;i<o;i++)i===n&&t[i]===0||s.push(t[i]);return e.offset+=r,Uint8Array.from(s)}function zm(t,e){let r=Cn(t,e),n=e.offset+r,o=t[e.offset];e.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(;e.offset<n;){let f=t[e.offset];if(e.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 Hm(t,e){return e.offset++,null}function Vm(t,e){let r=Cn(t,e),n=t[e.offset];e.offset++;let o=t.subarray(e.offset,e.offset+r-1);if(e.offset+=r,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function qm(t,e){let r=Cn(t,e),n=t.subarray(e.offset,e.offset+r);return e.offset+=r,n}function $m(t){let e=t.toString(16);e.length%2===1&&(e="0"+e);let r=new W;for(let n=0;n<e.length;n+=2)r.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return r}function Ii(t){if(t.byteLength<128)return Uint8Array.from([t.byteLength]);let e=$m(t.byteLength);return new W(Uint8Array.from([e.byteLength|Ci]),e)}function Ue(t){let e=new W,r=128;return(t.subarray()[0]&r)===r&&e.append(Uint8Array.from([0])),e.append(t),new W(Uint8Array.from([2]),Ii(e),e)}function Fo(t){let e=Uint8Array.from([0]),r=new W(e,t);return new W(Uint8Array.from([3]),Ii(r),r)}function It(t,e=48){let r=new W;for(let n of t)r.append(n);return new W(Uint8Array.from([e]),Ii(r),r)}var jm=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),Wm=Uint8Array.from([6,5,43,129,4,0,34]),Gm=Uint8Array.from([6,5,43,129,4,0,35]),Xm={ext:!0,kty:"EC",crv:"P-256"},Zm={ext:!0,kty:"EC",crv:"P-384"},Ym={ext:!0,kty:"EC",crv:"P-521"},_i=32,Ti=48,Di=66;function Ri(t){let e=dt(t);return Uu(e)}function Uu(t){let e=t[1][1][0],r=1,n,o;if(e.byteLength===_i*2+1)return n=G(e.subarray(r,r+_i),"base64url"),o=G(e.subarray(r+_i),"base64url"),new Dr({...Xm,key_ops:["verify"],x:n,y:o});if(e.byteLength===Ti*2+1)return n=G(e.subarray(r,r+Ti),"base64url"),o=G(e.subarray(r+Ti),"base64url"),new Dr({...Zm,key_ops:["verify"],x:n,y:o});if(e.byteLength===Di*2+1)return n=G(e.subarray(r,r+Di),"base64url"),o=G(e.subarray(r+Di),"base64url"),new Dr({...Ym,key_ops:["verify"],x:n,y:o});throw new ee(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function Pu(t){return It([Ue(Uint8Array.from([1])),It([Jm(t.crv)],160),It([Fo(new W(Uint8Array.from([4]),re(t.x??"","base64url"),re(t.y??"","base64url")))],161)]).subarray()}function Jm(t){if(t==="P-256")return jm;if(t==="P-384")return Wm;if(t==="P-521")return Gm;throw new ee(`Invalid curve ${t}`)}var Dr=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=Pu(this.jwk)),this._raw}toMultihash(){return Ve.digest(_t(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return he.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}async verify(e,r,n){return Au(this.jwk,r,e,n)}};function Oi(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function Je(t,e=""){if(typeof t!="number"){let r=e&&`"${e}" `;throw new TypeError(`${r}expected number, got ${typeof t}`)}if(!Number.isSafeInteger(t)||t<0){let r=e&&`"${e}" `;throw new RangeError(`${r}expected integer >= 0, got ${t}`)}}function Be(t,e,r=""){let n=Oi(t),o=t?.length,s=e!==void 0;if(!n||s&&o!==e){let i=r&&`"${r}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof t}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return t}function Qt(t){if(typeof t!="function"||typeof t.create!="function")throw new TypeError("Hash must wrapped by utils.createHasher");if(Je(t.outputLen),Je(t.blockLen),t.outputLen<1)throw new Error('"outputLen" must be >= 1');if(t.blockLen<1)throw new Error('"blockLen" must be >= 1')}function Rr(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Mo(t,e){Be(t,void 0,"digestInto() output");let r=e.outputLen;if(t.length<r)throw new RangeError('"digestInto() output" expected to be of length >='+r)}function qe(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function ko(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function $e(t,e){return t<<32-e|t>>>e}var Fu=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Qm=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ko(t){if(Be(t),Fu)return t.toHex();let e="";for(let r=0;r<t.length;r++)e+=Qm[t[r]];return e}var pt={_0:48,_9:57,A:65,F:70,a:97,f:102};function Nu(t){if(t>=pt._0&&t<=pt._9)return t-pt._0;if(t>=pt.A&&t<=pt.F)return t-(pt.A-10);if(t>=pt.a&&t<=pt.f)return t-(pt.a-10)}function In(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);if(Fu)try{return Uint8Array.fromHex(t)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let e=t.length,r=e/2;if(e%2)throw new RangeError("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(r);for(let o=0,s=0;o<r;o++,s+=2){let i=Nu(t.charCodeAt(s)),a=Nu(t.charCodeAt(s+1));if(i===void 0||a===void 0){let c=t[s]+t[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ui(...t){let e=0;for(let n=0;n<t.length;n++){let o=t[n];Be(o),e+=o.length}let r=new Uint8Array(e);for(let n=0,o=0;n<t.length;n++){let s=t[n];r.set(s,o),o+=s.length}return r}function Pi(t,e={}){let r=(o,s)=>t(s).update(o).digest(),n=t(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=o=>t(o),Object.assign(r,e),Object.freeze(r)}function Mu(t=32){Je(t,"bytesLength");let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(t>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${t}`);return e.getRandomValues(new Uint8Array(t))}var Ni=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});function ku(t,e,r){return t&e^~t&r}function Ku(t,e,r){return t&e^t&r^e&r}var _n=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,r,n,o){this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=ko(this.buffer)}update(e){Rr(this),Be(e);let{view:r,buffer:n,blockLen:o}=this,s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=ko(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Rr(this),Mo(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;r[i++]=128,qe(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=ko(e),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:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=o,e.pos=a,o%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}},mt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Ee=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var zo=BigInt(4294967295),zu=BigInt(32);function e0(t,e=!1){return e?{h:Number(t&zo),l:Number(t>>zu&zo)}:{h:Number(t>>zu&zo)|0,l:Number(t&zo)|0}}function Hu(t,e=!1){let r=t.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let s=0;s<r;s++){let{h:i,l:a}=e0(t[s],e);[n[s],o[s]]=[i,a]}return[n,o]}var Fi=(t,e,r)=>t>>>r,Mi=(t,e,r)=>t<<32-r|e>>>r,er=(t,e,r)=>t>>>r|e<<32-r,tr=(t,e,r)=>t<<32-r|e>>>r,Tn=(t,e,r)=>t<<64-r|e>>>r-32,Dn=(t,e,r)=>t>>>r-32|e<<64-r;function Qe(t,e,r,n){let o=(e>>>0)+(n>>>0);return{h:t+r+(o/2**32|0)|0,l:o|0}}var Vu=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),qu=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,$u=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),ju=(t,e,r,n,o)=>e+r+n+o+(t/2**32|0)|0,Wu=(t,e,r,n,o)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(o>>>0),Gu=(t,e,r,n,o,s)=>e+r+n+o+s+(t/2**32|0)|0;var r0=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]),Tt=new Uint32Array(64),ki=class extends _n{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:r,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,r,n,o,s,i,a,c]}set(e,r,n,o,s,i,a,c){this.A=e|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(e,r){for(let h=0;h<16;h++,r+=4)Tt[h]=e.getUint32(r,!1);for(let h=16;h<64;h++){let g=Tt[h-15],p=Tt[h-2],d=$e(g,7)^$e(g,18)^g>>>3,b=$e(p,17)^$e(p,19)^p>>>10;Tt[h]=b+Tt[h-7]+d+Tt[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 g=$e(a,6)^$e(a,11)^$e(a,25),p=u+g+ku(a,c,f)+r0[h]+Tt[h]|0,b=($e(n,2)^$e(n,13)^$e(n,22))+Ku(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(){qe(Tt)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),qe(this.buffer)}},Ki=class extends ki{A=mt[0]|0;B=mt[1]|0;C=mt[2]|0;D=mt[3]|0;E=mt[4]|0;F=mt[5]|0;G=mt[6]|0;H=mt[7]|0;constructor(){super(32)}};var Xu=Hu(["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(t=>BigInt(t))),n0=Xu[0],o0=Xu[1],Dt=new Uint32Array(80),Rt=new Uint32Array(80),zi=class extends _n{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:r,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:f,El:u,Fh:h,Fl:g,Gh:p,Gl:d,Hh:b,Hl:l}=this;return[e,r,n,o,s,i,a,c,f,u,h,g,p,d,b,l]}set(e,r,n,o,s,i,a,c,f,u,h,g,p,d,b,l){this.Ah=e|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=g|0,this.Gh=p|0,this.Gl=d|0,this.Hh=b|0,this.Hl=l|0}process(e,r){for(let B=0;B<16;B++,r+=4)Dt[B]=e.getUint32(r),Rt[B]=e.getUint32(r+=4);for(let B=16;B<80;B++){let T=Dt[B-15]|0,D=Rt[B-15]|0,U=er(T,D,1)^er(T,D,8)^Fi(T,D,7),_=tr(T,D,1)^tr(T,D,8)^Mi(T,D,7),C=Dt[B-2]|0,P=Rt[B-2]|0,M=er(C,P,19)^Tn(C,P,61)^Fi(C,P,6),N=tr(C,P,19)^Dn(C,P,61)^Mi(C,P,6),y=$u(_,N,Rt[B-7],Rt[B-16]),A=ju(y,U,M,Dt[B-7],Dt[B-16]);Dt[B]=A|0,Rt[B]=y|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:g,Fh:p,Fl:d,Gh:b,Gl:l,Hh:m,Hl:v}=this;for(let B=0;B<80;B++){let T=er(h,g,14)^er(h,g,18)^Tn(h,g,41),D=tr(h,g,14)^tr(h,g,18)^Dn(h,g,41),U=h&p^~h&b,_=g&d^~g&l,C=Wu(v,D,_,o0[B],Rt[B]),P=Gu(C,m,T,U,n0[B],Dt[B]),M=C|0,N=er(n,o,28)^Tn(n,o,34)^Tn(n,o,39),y=tr(n,o,28)^Dn(n,o,34)^Dn(n,o,39),A=n&s^n&a^s&a,S=o&i^o&c^i&c;m=b|0,v=l|0,b=p|0,l=d|0,p=h|0,d=g|0,{h,l:g}=Qe(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=Vu(M,y,S);n=qu(w,P,N,A),o=w|0}({h:n,l:o}=Qe(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=Qe(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=Qe(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l:u}=Qe(this.Dh|0,this.Dl|0,f|0,u|0),{h,l:g}=Qe(this.Eh|0,this.El|0,h|0,g|0),{h:p,l:d}=Qe(this.Fh|0,this.Fl|0,p|0,d|0),{h:b,l}=Qe(this.Gh|0,this.Gl|0,b|0,l|0),{h:m,l:v}=Qe(this.Hh|0,this.Hl|0,m|0,v|0),this.set(n,o,s,i,a,c,f,u,h,g,p,d,b,l,m,v)}roundClean(){qe(Dt,Rt)}destroy(){this.destroyed=!0,qe(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Hi=class extends zi{Ah=Ee[0]|0;Al=Ee[1]|0;Bh=Ee[2]|0;Bl=Ee[3]|0;Ch=Ee[4]|0;Cl=Ee[5]|0;Dh=Ee[6]|0;Dl=Ee[7]|0;Eh=Ee[8]|0;El=Ee[9]|0;Fh=Ee[10]|0;Fl=Ee[11]|0;Gh=Ee[12]|0;Gl=Ee[13]|0;Hh=Ee[14]|0;Hl=Ee[15]|0;constructor(){super(64)}};var et=Pi(()=>new Ki,Ni(1));var Ho=Pi(()=>new Hi,Ni(3));var V=(t,e,r)=>Be(t,e,r),qi=Je,Or=Ko,ye=(...t)=>Ui(...t),Ur=t=>In(t),rr=Oi,nr=t=>Mu(t),qo=BigInt(0),Vi=BigInt(1);function je(t,e=""){if(typeof t!="boolean"){let r=e&&`"${e}" `;throw new TypeError(r+"expected boolean, got type="+typeof t)}return t}function $o(t){if(typeof t=="bigint"){if(!Vo(t))throw new RangeError("positive bigint expected, got "+t)}else qi(t);return t}function We(t,e=""){if(typeof t!="number"){let r=e&&`"${e}" `;throw new TypeError(r+"expected number, got type="+typeof t)}if(!Number.isSafeInteger(t)){let r=e&&`"${e}" `;throw new RangeError(r+"expected safe integer, got "+t)}}function Rn(t){let e=$o(t).toString(16);return e.length&1?"0"+e:e}function Zu(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);return t===""?qo:BigInt("0x"+t)}function or(t){return Zu(Ko(t))}function Pe(t){return Zu(Ko(Ot(Be(t)).reverse()))}function jo(t,e){if(Je(e),e===0)throw new RangeError("zero length");t=$o(t);let r=t.toString(16);if(r.length>e*2)throw new RangeError("number too large");return In(r.padStart(e*2,"0"))}function On(t,e){return jo(t,e).reverse()}function Yu(t,e){if(t=V(t),e=V(e),t.length!==e.length)return!1;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return r===0}function Ot(t){return Uint8Array.from(V(t))}function Wo(t){if(typeof t!="string")throw new TypeError("ascii string expected, got "+typeof t);return Uint8Array.from(t,(e,r)=>{let n=e.charCodeAt(0);if(e.length!==1||n>127)throw new RangeError(`string contains non-ASCII character "${t[r]}" with code ${n} at position ${r}`);return n})}var Vo=t=>typeof t=="bigint"&&qo<=t;function s0(t,e,r){return Vo(t)&&Vo(e)&&Vo(r)&&e<=t&&t<r}function yt(t,e,r,n){if(!s0(e,r,n))throw new RangeError("expected valid "+t+": "+r+" <= n < "+n+", got "+e)}function Pr(t){if(t<qo)throw new Error("expected non-negative bigint, got "+t);let e;for(e=0;t>qo;t>>=Vi,e+=1);return e}var Un=t=>(Vi<<BigInt(t))-Vi;function Ju(t,e,r){if(Je(t,"hashLen"),Je(e,"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(t),f=n(t),u=0,h=()=>{c.fill(1),f.fill(0),u=0},g=(...l)=>r(f,ye(c,...l)),p=(l=o)=>{f=g(s,l),c=g(),l.length!==0&&(f=g(i,l),c=g())},d=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let l=0,m=[];for(;l<e;){c=g();let v=c.slice();m.push(v),l+=c.length}return ye(...m)};return(l,m)=>{h(),p(l);let v;for(;(v=m(d()))===void 0;)p();return h(),v}}function Ne(t,e={},r={}){if(Object.prototype.toString.call(t)!=="[object Object]")throw new TypeError("expected valid options object");function n(s,i,a){if(!a&&i!=="function"&&!Object.hasOwn(t,s))throw new TypeError(`param "${s}" is invalid: expected own property`);let c=t[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(e,!1),o(r,!0)}var $i=()=>{throw new Error("not implemented")};var Se=BigInt(0),le=BigInt(1),sr=BigInt(2),rh=BigInt(3),nh=BigInt(4),oh=BigInt(5),i0=BigInt(7),sh=BigInt(8),a0=BigInt(9),ih=BigInt(16);function ae(t,e){if(e<=Se)throw new Error("mod: expected positive modulus, got "+e);let r=t%e;return r>=Se?r:e+r}function ne(t,e,r){if(e<Se)throw new Error("pow2: expected non-negative exponent, got "+e);let n=t;for(;e-- >Se;)n*=n,n%=r;return n}function Qu(t,e){if(t===Se)throw new Error("invert: expected non-zero number");if(e<=Se)throw new Error("invert: expected positive modulus, got "+e);let r=ae(t,e),n=e,o=Se,s=le,i=le,a=Se;for(;r!==Se;){let f=n/r,u=n-r*f,h=o-i*f,g=s-a*f;n=r,r=u,o=i,s=a,i=h,a=g}if(n!==le)throw new Error("invert: does not exist");return ae(o,e)}function ji(t,e,r){let n=t;if(!n.eql(n.sqr(e),r))throw new Error("Cannot find square root")}function ah(t,e){let r=t,n=(r.ORDER+le)/nh,o=r.pow(e,n);return ji(r,o,e),o}function c0(t,e){let r=t,n=(r.ORDER-oh)/sh,o=r.mul(e,sr),s=r.pow(o,n),i=r.mul(e,s),a=r.mul(r.mul(i,sr),s),c=r.mul(i,r.sub(a,r.ONE));return ji(r,c,e),c}function f0(t){let e=Nr(t),r=ch(t),n=r(e,e.neg(e.ONE)),o=r(e,n),s=r(e,e.neg(n)),i=(t+i0)/ih;return((a,c)=>{let f=a,u=f.pow(c,i),h=f.mul(u,n),g=f.mul(u,o),p=f.mul(u,s),d=f.eql(f.sqr(h),c),b=f.eql(f.sqr(g),c);u=f.cmov(u,h,d),h=f.cmov(p,g,b);let l=f.eql(f.sqr(h),c),m=f.cmov(u,h,l);return ji(f,m,c),m})}function ch(t){if(t<rh)throw new Error("sqrt is not defined for small field");let e=t-le,r=0;for(;e%sr===Se;)e/=sr,r++;let n=sr,o=Nr(t);for(;eh(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return ah;let s=o.pow(n,e),i=(e+le)/sr;return function(c,f){let u=c;if(u.is0(f))return f;if(eh(u,f)!==1)throw new Error("Cannot find square root");let h=r,g=u.mul(u.ONE,s),p=u.pow(f,e),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 m=le<<BigInt(h-b-1),v=u.pow(g,m);h=b,g=u.sqr(v),p=u.mul(p,g),d=u.mul(d,v)}return d}}function u0(t){return t%nh===rh?ah:t%sh===oh?c0:t%ih===a0?f0(t):ch(t)}var gt=(t,e)=>(ae(t,e)&le)===le,h0=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Wi(t){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},r=h0.reduce((n,o)=>(n[o]="function",n),e);if(Ne(t,r),We(t.BYTES,"BYTES"),We(t.BITS,"BITS"),t.BYTES<1||t.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(t.ORDER<=le)throw new Error("invalid field: expected ORDER > 1, got "+t.ORDER);return t}function l0(t,e,r){let n=t;if(r<Se)throw new Error("invalid exponent, negatives unsupported");if(r===Se)return n.ONE;if(r===le)return e;let o=n.ONE,s=e;for(;r>Se;)r&le&&(o=n.mul(o,s)),s=n.sqr(s),r>>=le;return o}function Pn(t,e,r=!1){let n=t,o=new Array(e.length).fill(r?n.ZERO:void 0),s=e.reduce((a,c,f)=>n.is0(c)?a:(o[f]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return e.reduceRight((a,c,f)=>n.is0(c)?a:(o[f]=n.mul(a,o[f]),n.mul(a,c)),i),o}function eh(t,e){let r=t,n=(r.ORDER-le)/sr,o=r.pow(e,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 d0(t,e){if(e!==void 0&&qi(e),t<=Se)throw new Error("invalid n length: expected positive n, got "+t);if(e!==void 0&&e<1)throw new Error("invalid n length: expected positive bit length, got "+e);let r=Pr(t);if(e!==void 0&&e<r)throw new Error(`invalid n length: expected bit length (${r}) >= n.length (${e})`);let n=e!==void 0?e:r,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var th=new WeakMap,Go=class{ORDER;BITS;BYTES;isLE;ZERO=Se;ONE=le;_lengths;_mod;constructor(e,r={}){if(e<=le)throw new Error("invalid field: expected ORDER > 1, got "+e);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}=d0(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(e){return ae(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof e);return Se<=e&&e<this.ORDER}is0(e){return e===Se}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&le)===le}neg(e){return ae(-e,this.ORDER)}eql(e,r){return e===r}sqr(e){return ae(e*e,this.ORDER)}add(e,r){return ae(e+r,this.ORDER)}sub(e,r){return ae(e-r,this.ORDER)}mul(e,r){return ae(e*r,this.ORDER)}pow(e,r){return l0(this,e,r)}div(e,r){return ae(e*Qu(r,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,r){return e+r}subN(e,r){return e-r}mulN(e,r){return e*r}inv(e){return Qu(e,this.ORDER)}sqrt(e){let r=th.get(this);return r||th.set(this,r=u0(this.ORDER)),r(this,e)}toBytes(e){return this.isLE?On(e,this.BYTES):jo(e,this.BYTES)}fromBytes(e,r=!1){V(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(e.length<1||!n.includes(e.length)||e.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let f=new Uint8Array(o);f.set(e,s?0:f.length-e.length),e=f}if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);let c=s?Pe(e):or(e);if(a&&(c=ae(c,i)),!r&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return Pn(this,e)}cmov(e,r,n){return je(n,"condition"),n?r:e}};Object.freeze(Go.prototype);function Nr(t,e={}){return new Go(t,e)}function fh(t){if(typeof t!="bigint")throw new Error("field order must be bigint");if(t<=le)throw new Error("field order must be greater than 1");let e=Pr(t-le);return Math.ceil(e/8)}function Gi(t){let e=fh(t);return e+Math.ceil(e/2)}function Xi(t,e,r=!1){V(t);let n=t.length,o=fh(e),s=Math.max(Gi(e),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=r?Pe(t):or(t),a=ae(i,e-le)+le;return r?On(a,o):jo(a,o)}var Fr=BigInt(0),ir=BigInt(1);function Nn(t,e){let r=e.negate();return t?r:e}function ar(t,e){let r=Pn(t.Fp,e.map(n=>n.Z));return e.map((n,o)=>t.fromAffine(n.toAffine(r[o])))}function dh(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function Zi(t,e){dh(t,e);let r=Math.ceil(e/t)+1,n=2**(t-1),o=2**t,s=Un(t),i=BigInt(t);return{windows:r,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function uh(t,e,r){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=r,a=Number(t&o),c=t>>i;a>n&&(a-=s,c+=ir);let f=e*n,u=f+Math.abs(a)-1,h=a===0,g=a<0,p=e%2!==0;return{nextN:c,offset:u,isZero:h,isNeg:g,isNegF:p,offsetF:f}}var Yi=new WeakMap,ph=new WeakMap;function Ji(t){return ph.get(t)||1}function hh(t){if(t!==Fr)throw new Error("invalid wNAF")}var Mr=class{BASE;ZERO;Fn;bits;constructor(e,r){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=r}_unsafeLadder(e,r,n=this.ZERO){let o=e;for(;r>Fr;)r&ir&&(n=n.add(o)),o=o.double(),r>>=ir;return n}precomputeWindow(e,r){let{windows:n,windowSize:o}=Zi(r,this.bits),s=[],i=e,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(e,r,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Zi(e,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:f,isZero:u,isNeg:h,isNegF:g,offsetF:p}=uh(n,a,i);n=c,u?s=s.add(Nn(g,r[p])):o=o.add(Nn(h,r[f]))}return hh(n),{p:o,f:s}}wNAFUnsafe(e,r,n,o=this.ZERO){let s=Zi(e,this.bits);for(let i=0;i<s.windows&&n!==Fr;i++){let{nextN:a,offset:c,isZero:f,isNeg:u}=uh(n,i,s);if(n=a,!f){let h=r[c];o=o.add(u?h.negate():h)}}return hh(n),o}getPrecomputes(e,r,n){let o=Yi.get(r);return o||(o=this.precomputeWindow(r,e),e!==1&&(typeof n=="function"&&(o=n(o)),Yi.set(r,o))),o}cached(e,r,n){let o=Ji(e);return this.wNAF(o,this.getPrecomputes(o,e,n),r)}unsafe(e,r,n,o){let s=Ji(e);return s===1?this._unsafeLadder(e,r,o):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),r,o)}createCache(e,r){dh(r,this.bits),ph.set(e,r),Yi.delete(e)}hasCache(e){return Ji(e)!==1}};function mh(t,e,r,n){let o=e,s=t.ZERO,i=t.ZERO;for(;r>Fr||n>Fr;)r&ir&&(s=s.add(o)),n&ir&&(i=i.add(o)),o=o.double(),r>>=ir,n>>=ir;return{p1:s,p2:i}}function lh(t,e,r){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Wi(e),e}else return Nr(t,{isLE:r})}function Xo(t,e,r={},n){if(n===void 0&&(n=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);for(let c of["p","n","h"]){let f=e[c];if(!(typeof f=="bigint"&&f>Fr))throw new Error(`CURVE.${c} must be positive bigint`)}let o=lh(e.p,r.Fp,n),s=lh(e.n,r.Fn,n),a=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:o,Fn:s}}function kr(t,e){return function(n){let o=t(n);return{secretKey:o,publicKey:e(o)}}}var Ut=BigInt(0),be=BigInt(1),Qi=BigInt(2),p0=BigInt(8);function m0(t,e,r,n){let o=t.sqr(r),s=t.sqr(n),i=t.add(t.mul(e.a,o),s),a=t.add(t.ONE,t.mul(e.d,t.mul(o,s)));return t.eql(i,a)}function yh(t,e={}){let r=e,n=Xo("edwards",t,r,r.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;Ne(r,{},{uvRatio:"function"});let c=Qi<<BigInt(s.BYTES*8)-be,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:Ut}}}:r.uvRatio;if(!m0(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");function h(b,l,m=!1){let v=m?be:Ut;return yt("coordinate "+b,l,v,c),l}function g(b){if(!(b instanceof p))throw new Error("EdwardsPoint expected")}class p{static BASE=new p(i.Gx,i.Gy,be,f(i.Gx*i.Gy));static ZERO=new p(Ut,be,be,Ut);static Fp=o;static Fn=s;X;Y;Z;T;constructor(l,m,v,B){this.X=h("x",l),this.Y=h("y",m),this.Z=h("z",v,!0),this.T=h("t",B),Object.freeze(this)}static CURVE(){return i}static fromAffine(l){if(l instanceof p)throw new Error("extended point not allowed");let{x:m,y:v}=l||{};return h("x",m),h("y",v),new p(m,v,be,f(m*v))}static fromBytes(l,m=!1){let v=o.BYTES,{a:B,d:T}=i;l=Ot(V(l,v,"point")),je(m,"zip215");let D=Ot(l),U=l[v-1];D[v-1]=U&-129;let _=Pe(D),C=m?c:o.ORDER;yt("point.y",_,Ut,C);let P=f(_*_),M=f(P-be),N=f(T*P-B),{isValid:y,value:A}=u(M,N);if(!y)throw new Error("bad point: invalid y coordinate");let S=(A&be)===be,w=(U&128)!==0;if(!m&&A===Ut&&w)throw new Error("bad point: x=0 and x_0=1");return w!==S&&(A=f(-A)),p.fromAffine({x:A,y:_})}static fromHex(l,m=!1){return p.fromBytes(Ur(l),m)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(l=8,m=!0){return d.createCache(this,l),m||this.multiply(Qi),this}assertValidity(){let l=this,{a:m,d:v}=i;if(l.is0())throw new Error("bad point: ZERO");let{X:B,Y:T,Z:D,T:U}=l,_=f(B*B),C=f(T*T),P=f(D*D),M=f(P*P),N=f(_*m),y=f(P*f(N+C)),A=f(M+f(v*f(_*C)));if(y!==A)throw new Error("bad point: equation left != right (1)");let S=f(B*T),w=f(D*U);if(S!==w)throw new Error("bad point: equation left != right (2)")}equals(l){g(l);let{X:m,Y:v,Z:B}=this,{X:T,Y:D,Z:U}=l,_=f(m*U),C=f(T*B),P=f(v*U),M=f(D*B);return _===C&&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:m,Y:v,Z:B}=this,T=f(m*m),D=f(v*v),U=f(Qi*f(B*B)),_=f(l*T),C=m+v,P=f(f(C*C)-T-D),M=_+D,N=M-U,y=_-D,A=f(P*N),S=f(M*y),w=f(P*y),x=f(N*M);return new p(A,S,x,w)}add(l){g(l);let{a:m,d:v}=i,{X:B,Y:T,Z:D,T:U}=this,{X:_,Y:C,Z:P,T:M}=l,N=f(B*_),y=f(T*C),A=f(U*v*M),S=f(D*P),w=f((B+T)*(_+C)-N-y),x=S-A,L=S+A,I=f(y-m*N),E=f(w*x),R=f(L*I),O=f(w*I),F=f(x*L);return new p(E,R,F,O)}subtract(l){return g(l),this.add(l.negate())}multiply(l){if(!s.isValidNot0(l))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:m,f:v}=d.cached(this,l,B=>ar(p,B));return ar(p,[m,v])[0]}multiplyUnsafe(l){if(!s.isValid(l))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return l===Ut?p.ZERO:this.is0()||l===be?this:d.unsafe(this,l,m=>ar(p,m))}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return d.unsafe(this,i.n).is0()}toAffine(l){let m=this,v=l,{X:B,Y:T,Z:D}=m,U=m.is0();v==null&&(v=U?p0:o.inv(D));let _=f(B*v),C=f(T*v),P=o.mul(D,v);if(U)return{x:Ut,y:be};if(P!==be)throw new Error("invZ was invalid");return{x:_,y:C}}clearCofactor(){return a===be?this:this.multiplyUnsafe(a)}toBytes(){let{x:l,y:m}=this.toAffine(),v=o.toBytes(m);return v[v.length-1]|=l&be?128:0,v}toHex(){return Or(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let d=new Mr(p,s.BITS);return s.BITS>=8&&p.BASE.precompute(8),Object.freeze(p.prototype),Object.freeze(p),p}var Zo=class{static BASE;static ZERO;static Fp;static Fn;ep;constructor(e){this.ep=e}static fromBytes(e){$i()}static fromHex(e){$i()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(e){return this.ep.toAffine(e)}toHex(){return Or(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(e){return this.assertSame(e),this.init(this.ep.add(e.ep))}subtract(e){return this.assertSame(e),this.init(this.ep.subtract(e.ep))}multiply(e){return this.init(this.ep.multiply(e))}multiplyUnsafe(e){return this.init(this.ep.multiplyUnsafe(e))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(e,r){return this.ep.precompute(e,r),this}};function gh(t,e,r={}){if(typeof e!="function")throw new Error('"hash" function param is required');let n=e,o=r;Ne(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=t,f=n.outputLen,u=2*a.BYTES;if(f!==void 0&&(We(f,"hash.outputLen"),f!==u))throw new Error(`hash.outputLen must be ${u}, got ${f}`);let h=o.randomBytes===void 0?nr:o.randomBytes,g=o.adjustScalarBytes===void 0?y=>y:o.adjustScalarBytes,p=o.domain===void 0?(y,A,S)=>{if(je(S,"phflag"),A.length||S)throw new Error("Contexts/pre-hash are not supported");return y}:o.domain;function d(y){return c.create(Pe(y))}function b(y){let A=_.secretKey;V(y,_.secretKey,"secretKey");let S=V(n(y),2*A,"hashedSecretKey"),w=g(S.slice(0,A)),x=S.slice(A,2*A),L=d(w);return{head:w,prefix:x,scalar:L}}function l(y){let{head:A,prefix:S,scalar:w}=b(y),x=i.multiply(w),L=x.toBytes();return{head:A,prefix:S,scalar:w,point:x,pointBytes:L}}function m(y){return l(y).pointBytes}function v(y=Uint8Array.of(),...A){let S=ye(...A);return d(n(p(S,V(y,void 0,"context"),!!s)))}function B(y,A,S={}){y=V(y,void 0,"message"),s&&(y=s(y));let{prefix:w,scalar:x,pointBytes:L}=l(A),I=v(S.context,w,y),E=i.multiply(I).toBytes(),R=v(S.context,E,L,y),O=c.create(I+R*x);if(!c.isValid(O))throw new Error("sign failed: invalid s");let F=ye(E,c.toBytes(O));return V(F,_.signature,"result")}let T={zip215:o.zip215};function D(y,A,S,w=T){let{context:x}=w,L=w.zip215===void 0?!!T.zip215:w.zip215,I=_.signature;y=V(y,I,"signature"),A=V(A,void 0,"message"),S=V(S,_.publicKey,"publicKey"),L!==void 0&&je(L,"zip215"),s&&(A=s(A));let E=I/2,R=y.subarray(0,E),O=Pe(y.subarray(E,I)),F,z,K;try{F=t.fromBytes(S,L),z=t.fromBytes(R,L),K=i.multiplyUnsafe(O)}catch{return!1}if(!L&&F.isSmallOrder())return!1;let Y=v(x,R,S,A);return z.add(F.multiplyUnsafe(Y)).subtract(K).clearCofactor().is0()}let U=a.BYTES,_={secretKey:U,publicKey:U,signature:2*U,seed:U};function C(y){return y=y===void 0?h(_.seed):y,V(y,_.seed,"seed")}function P(y){return rr(y)&&y.length===_.secretKey}function M(y,A){try{return!!t.fromBytes(y,A===void 0?T.zip215:A)}catch{return!1}}let N={getExtendedPublicKey:l,randomSecretKey:C,isValidSecretKey:P,isValidPublicKey:M,toMontgomery(y){let{y:A}=t.fromBytes(y),S=_.publicKey,w=S===32;if(!w&&S!==57)throw new Error("only defined for 25519 and 448");let x=w?a.div(be+A,be-A):a.div(A-be,A+be);return a.toBytes(x)},toMontgomerySecret(y){let A=_.secretKey;V(y,A);let S=n(y.subarray(0,A));return g(S).subarray(0,A)}};return Object.freeze(_),Object.freeze(N),Object.freeze({keygen:kr(C,m),getPublicKey:m,sign:B,verify:D,utils:N,Point:t,lengths:_})}function Fn(t,e){if(We(t),We(e),e<0||e>4)throw new Error("invalid I2OSP length: "+e);if(t<0||t>2**(8*e)-1)throw new Error("invalid I2OSP input: "+t);let r=Array.from({length:e}).fill(0);for(let n=e-1;n>=0;n--)r[n]=t&255,t>>>=8;return new Uint8Array(r)}function y0(t,e){let r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t[n]^e[n];return r}function g0(t){if(!rr(t)&&typeof t!="string")throw new Error("DST must be Uint8Array or ascii string");let e=typeof t=="string"?Wo(t):t;if(e.length===0)throw new Error("DST must be non-empty");return e}function ea(t,e,r,n){V(t),We(r),e=g0(e),e.length>255&&(e=n(ye(Wo("H2C-OVERSIZE-DST-"),e)));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=ye(e,Fn(e.length,1)),c=new Uint8Array(s),f=Fn(r,2),u=new Array(i),h=n(ye(c,t,f,Fn(0,1),a));u[0]=n(ye(h,Fn(1,1),a));for(let p=1;p<i;p++){let d=[y0(h,u[p-1]),Fn(p+1,1),a];u[p]=n(ye(...d))}return ye(...u).slice(0,r)}var bh="HashToScalar-";var Mn=BigInt(0),Kr=BigInt(1),Yo=BigInt(2);function b0(t){return Ne(t,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function"}),Object.freeze({...t})}function xh(t){let e=b0(t),{P:r,type:n,adjustScalarBytes:o,powPminus2:s,randomBytes:i}=e,a=n==="x25519";if(!a&&n!=="x448")throw new Error("invalid type");let c=i===void 0?nr:i,f=a?255:448,u=a?32:56,h=BigInt(a?9:5),g=BigInt(a?121665:39081),p=a?Yo**BigInt(254):Yo**BigInt(447),d=a?BigInt(8)*Yo**BigInt(251)-Kr:BigInt(4)*Yo**BigInt(445)-Kr,b=p+d+Kr,l=S=>ae(S,r),m=v(h);function v(S){return On(l(S),u)}function B(S){let w=Ot(V(S,u,"uCoordinate"));return a&&(w[31]&=127),l(Pe(w))}function T(S){return Pe(o(Ot(V(S,u,"scalar"))))}function D(S,w){let x=M(B(w),T(S));if(x===Mn)throw new Error("invalid private or public key received");return v(x)}function U(S){return D(S,m)}let _=U,C=D;function P(S,w,x){let L=l(S*(w-x));return w=l(w-L),x=l(x+L),{x_2:w,x_3:x}}function M(S,w){yt("u",S,Mn,r),yt("scalar",w,p,b);let x=w,L=S,I=Kr,E=Mn,R=S,O=Kr,F=Mn;for(let K=BigInt(f-1);K>=Mn;K--){let Y=x>>K&Kr;F^=Y,{x_2:I,x_3:R}=P(F,I,R),{x_2:E,x_3:O}=P(F,E,O),F=Y;let J=I+E,Q=l(J*J),j=I-E,ie=l(j*j),ft=Q-ie,Wt=R+O,Sr=R-O,gn=l(Sr*J),bn=l(Wt*j),su=gn+bn,iu=gn-bn;R=l(su*su),O=l(L*l(iu*iu)),I=l(Q*ie),E=l(ft*(Q+l(g*ft)))}({x_2:I,x_3:R}=P(F,I,R)),{x_2:E,x_3:O}=P(F,E,O);let z=s(E);return l(I*z)}let N={secretKey:u,publicKey:u,seed:u},y=S=>(S=S===void 0?c(u):S,V(S,N.seed,"seed"),S),A={randomSecretKey:y};return Object.freeze(N),Object.freeze(A),Object.freeze({keygen:kr(y,_),getSharedSecret:C,getPublicKey:_,scalarMult:D,scalarMultBase:U,utils:A,GuBytes:m.slice(),lengths:N})}var x0=BigInt(0),bt=BigInt(1),wh=BigInt(2),w0=BigInt(3),E0=BigInt(5),S0=BigInt(8),cr=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),oa={p:cr,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:S0,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Ah(t){let e=BigInt(10),r=BigInt(20),n=BigInt(40),o=BigInt(80),s=cr,a=t*t%s*t%s,c=ne(a,wh,s)*a%s,f=ne(c,bt,s)*t%s,u=ne(f,E0,s)*f%s,h=ne(u,e,s)*u%s,g=ne(h,r,s)*h%s,p=ne(g,n,s)*g%s,d=ne(p,o,s)*p%s,b=ne(d,o,s)*p%s,l=ne(b,e,s)*u%s;return{pow_p_5_8:ne(l,wh,s)*t%s,b2:a}}function vh(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}var ta=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function sa(t,e){let r=cr,n=ae(e*e*e,r),o=ae(n*n*e,r),s=Ah(t*o).pow_p_5_8,i=ae(t*n*s,r),a=ae(e*i*i,r),c=i,f=ae(i*ta,r),u=a===t,h=a===ae(-t,r),g=a===ae(-t*ta,r);return u&&(i=c),(h||g)&&(i=f),gt(i,r)&&(i=ae(-i,r)),{isValid:u||h,value:i}}var Nt=yh(oa,{uvRatio:sa}),Pt=Nt.Fp,Bh=Nt.Fn;function A0(t){return gh(Nt,Ho,Object.assign({adjustScalarBytes:vh,zip215:!0},t))}var Lh=A0({});var kn=(()=>{let t=cr;return xh({P:t,type:"x25519",powPminus2:e=>{let{pow_p_5_8:r,b2:n}=Ah(e);return ae(ne(r,w0,t)*n,t)},adjustScalarBytes:vh})})();var ra=ta,v0=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),B0=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),L0=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),C0=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Eh=t=>sa(bt,t),I0=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),na=t=>Pt.create(Pe(t)&I0);function Sh(t){let{d:e}=oa,r=cr,n=m=>Pt.create(m),o=n(ra*t*t),s=n((o+bt)*L0),i=BigInt(-1),a=n((i-e*o)*n(o+e)),{isValid:c,value:f}=sa(s,a),u=n(f*t);gt(u,r)||(u=n(-u)),c||(f=u),c||(i=o);let h=n(i*(o-bt)*C0-a),g=f*f,p=n((f+f)*a),d=n(h*v0),b=n(bt-g),l=n(bt+g);return new Nt(n(p*l),n(b*d),n(d*l),n(p*b))}var Ft=class t extends Zo{static BASE=new t(Nt.BASE);static ZERO=new t(Nt.ZERO);static Fp=Pt;static Fn=Bh;constructor(e){super(e)}static fromAffine(e){return new t(Nt.fromAffine(e))}assertSame(e){if(!(e instanceof t))throw new Error("RistrettoPoint expected")}init(e){return new t(e)}static fromBytes(e){Be(e,32);let{a:r,d:n}=oa,o=cr,s=T=>Pt.create(T),i=na(e);if(!Yu(Pt.toBytes(i),e)||gt(i,o))throw new Error("invalid ristretto255 encoding 1");let a=s(i*i),c=s(bt+r*a),f=s(bt-r*a),u=s(c*c),h=s(f*f),g=s(r*n*u-h),{isValid:p,value:d}=Eh(s(g*h)),b=s(d*f),l=s(d*b*g),m=s((i+i)*b);gt(m,o)&&(m=s(-m));let v=s(c*l),B=s(m*v);if(!p||gt(B,o)||v===x0)throw new Error("invalid ristretto255 encoding 2");return new t(new Nt(m,v,bt,B))}static fromHex(e){return t.fromBytes(In(e))}toBytes(){let{X:e,Y:r,Z:n,T:o}=this.ep,s=cr,i=l=>Pt.create(l),a=i(i(n+r)*i(n-r)),c=i(e*r),f=i(c*c),{value:u}=Eh(i(a*f)),h=i(u*a),g=i(u*c),p=i(h*g*o),d;if(gt(o*p,s)){let l=i(r*ra),m=i(e*ra);e=l,r=m,d=i(h*B0)}else d=g;gt(e*p,s)&&(r=i(-r));let b=i((n-r)*d);return gt(b,s)&&(b=i(-b)),Pt.toBytes(b)}equals(e){this.assertSame(e);let{X:r,Y:n}=this.ep,{X:o,Y:s}=e.ep,i=f=>Pt.create(f),a=i(r*s)===i(n*o),c=i(n*s)===i(r*o);return a||c}is0(){return this.equals(t.ZERO)}};Object.freeze(Ft.BASE);Object.freeze(Ft.ZERO);Object.freeze(Ft.prototype);Object.freeze(Ft);var _0=Object.freeze({Point:Ft,hashToCurve(t,e){let r=e?.DST===void 0?"ristretto255_XMD:SHA-512_R255MAP_RO_":e.DST,n=ea(t,r,64,Ho);return _0.deriveToCurve(n)},hashToScalar(t,e={DST:bh}){let r=ea(t,e.DST,64,Ho);return Bh.create(Pe(r))},deriveToCurve(t){Be(t,64);let e=na(t.subarray(0,32)),r=Sh(e),n=na(t.subarray(32,64)),o=Sh(n);return new Ft(r.add(o))}});var Kn=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}},Jo=class extends Error{constructor(e="Missing Web Crypto API"){super(e),this.name="WebCryptoMissingError"}};var Ke={get(t=globalThis){let e=t.crypto;if(e?.subtle==null)throw new Jo("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 e}};var Qo=32;var ia,T0=(async()=>{try{return await Ke.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function D0(t,e,r){if(t.buffer instanceof ArrayBuffer){let n=await Ke.get().subtle.importKey("raw",t.buffer,{name:"Ed25519"},!1,["verify"]);return await Ke.get().subtle.verify({name:"Ed25519"},n,De(e),De(r instanceof Uint8Array?r:r.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function R0(t,e,r){return Lh.verify(e,r instanceof Uint8Array?r:r.subarray(),t)}async function Ch(t,e,r){return ia==null&&(ia=await T0),ia?D0(t,e,r):R0(t,e,r)}function O0(t){return t?.buffer instanceof ArrayBuffer}function aa(t){if(O0(t))return t;let e=t.slice();return new Uint8Array(e.buffer,0,e.byteLength)}function fr(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=Jt(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return aa(r)}function es(t){return t==null?!1:typeof t.then=="function"&&typeof t.catch=="function"&&typeof t.finally=="function"}var ts=class{type="Ed25519";raw;constructor(e){this.raw=ca(e,Qo)}toMultihash(){return Ve.digest(_t(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return he.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}verify(e,r,n){n?.signal?.throwIfAborted();let o=Ch(this.raw,r,e);return es(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function fa(t){return t=ca(t,Qo),new ts(t)}function ca(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new ee(`Key must be a Uint8Array of length ${e}, got ${t.length}`);return t}function Mt(t=0){return new Uint8Array(t)}var P0=Math.pow(2,7),N0=Math.pow(2,14),F0=Math.pow(2,21),_h=Math.pow(2,28),Th=Math.pow(2,35),Dh=Math.pow(2,42),Rh=Math.pow(2,49),Re=128,kt=127;function zn(t){if(t<P0)return 1;if(t<N0)return 2;if(t<F0)return 3;if(t<_h)return 4;if(t<Th)return 5;if(t<Dh)return 6;if(t<Rh)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Oh(t,e,r=0){switch(zn(t)){case 8:e[r++]=t&255|Re,t/=128;case 7:e[r++]=t&255|Re,t/=128;case 6:e[r++]=t&255|Re,t/=128;case 5:e[r++]=t&255|Re,t/=128;case 4:e[r++]=t&255|Re,t>>>=7;case 3:e[r++]=t&255|Re,t>>>=7;case 2:e[r++]=t&255|Re,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function Uh(t,e){let r=t[e],n=0;if(n+=r&kt,r<Re||(r=t[e+1],n+=(r&kt)<<7,r<Re)||(r=t[e+2],n+=(r&kt)<<14,r<Re)||(r=t[e+3],n+=(r&kt)<<21,r<Re)||(r=t[e+4],n+=(r&kt)*_h,r<Re)||(r=t[e+5],n+=(r&kt)*Th,r<Re)||(r=t[e+6],n+=(r&kt)*Dh,r<Re)||(r=t[e+7],n+=(r&kt)*Rh,r<Re))return n;throw new RangeError("Could not decode varint")}var ua=new Float32Array([-0]),Kt=new Uint8Array(ua.buffer);function Ph(t,e,r){ua[0]=t,e[r]=Kt[0],e[r+1]=Kt[1],e[r+2]=Kt[2],e[r+3]=Kt[3]}function Nh(t,e){return Kt[0]=t[e],Kt[1]=t[e+1],Kt[2]=t[e+2],Kt[3]=t[e+3],ua[0]}var ha=new Float64Array([-0]),Le=new Uint8Array(ha.buffer);function Fh(t,e,r){ha[0]=t,e[r]=Le[0],e[r+1]=Le[1],e[r+2]=Le[2],e[r+3]=Le[3],e[r+4]=Le[4],e[r+5]=Le[5],e[r+6]=Le[6],e[r+7]=Le[7]}function Mh(t,e){return Le[0]=t[e],Le[1]=t[e+1],Le[2]=t[e+2],Le[3]=t[e+3],Le[4]=t[e+4],Le[5]=t[e+5],Le[6]=t[e+6],Le[7]=t[e+7],ha[0]}var M0=BigInt(Number.MAX_SAFE_INTEGER),k0=BigInt(Number.MIN_SAFE_INTEGER),Fe=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&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(e=!1){if(e)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(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return ur;if(e<M0&&e>k0)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,o=e-(n<<32n);return r&&(n=~n|0n,o=~o|0n,++o>kh&&(o=0n,++n>kh&&(n=0n))),new t(Number(o),Number(n))}static fromNumber(e){if(e===0)return ur;let r=e<0;r&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new t(n,o)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):ur}},ur=new Fe(0,0);ur.toBigInt=function(){return 0n};ur.zzEncode=ur.zzDecode=function(){return this};ur.length=function(){return 1};var kh=4294967296n;function Kh(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function zh(t,e,r){if(r-e<1)return"";let o,s=[],i=0,a;for(;e<r;)a=t[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&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 la(t,e,r){let n=r,o,s;for(let i=0;i<t.length;++i)o=t.charCodeAt(i),o<128?e[r++]=o:o<2048?(e[r++]=o>>6|192,e[r++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[r++]=o>>18|240,e[r++]=o>>12&63|128,e[r++]=o>>6&63|128,e[r++]=o&63|128):(e[r++]=o>>12|224,e[r++]=o>>6&63|128,e[r++]=o&63|128);return r-n}function Ge(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function rs(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var da=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Ge(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ge(this,4);return rs(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ge(this,4);return rs(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ge(this,4);let e=Nh(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Ge(this,4);let e=Mh(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Ge(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return zh(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Ge(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Ge(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new Fe(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ge(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw Ge(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ge(this,8);let e=rs(this.buf,this.pos+=4),r=rs(this.buf,this.pos+=4);return new Fe(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=Uh(this.buf,this.pos);return this.pos+=zn(e),e}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 Hn(t){return new da(t instanceof Uint8Array?t:t.subarray())}function ns(t,e,r){let n=Hn(t);return e.decode(n,void 0,r)}var ba={};H(ba,{base10:()=>j0});var KE=new Uint8Array(0);function Vh(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function xt(t){if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")}function qh(t){return new TextEncoder().encode(t)}function $h(t){return new TextDecoder().decode(t)}function K0(t,e){if(t.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<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,c=t.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,m=0,v=d.length;m!==v&&d[m]===0;)m++,b++;for(var B=(v-m)*u+1>>>0,T=new Uint8Array(B);m!==v;){for(var D=d[m],U=0,_=B-1;(D!==0||U<l)&&_!==-1;_--,U++)D+=256*T[_]>>>0,T[_]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,m++}for(var C=B-l;C!==B&&T[C]===0;)C++;for(var P=c.repeat(b);C<B;++C)P+=t.charAt(T[C]);return P}function g(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,m=0;d[b]===c;)l++,b++;for(var v=(d.length-b)*f+1>>>0,B=new Uint8Array(v);d[b];){var T=r[d.charCodeAt(b)];if(T===255)return;for(var D=0,U=v-1;(T!==0||D<m)&&U!==-1;U--,D++)T+=a*B[U]>>>0,B[U]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=D,b++}if(d[b]!==" "){for(var _=v-m;_!==v&&B[_]===0;)_++;for(var C=new Uint8Array(l+(v-_)),P=l;_!==v;)C[P++]=B[_++];return C}}}function p(d){var b=g(d);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:g,decode:p}}var z0=K0,H0=z0,Wh=H0;var pa=class{name;prefix;baseEncode;constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ma=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){this.name=e,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(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Gh(this,e)}},ya=class{decoders;constructor(e){this.decoders=e}or(e){return Gh(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Gh(t,e){return new ya({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var ga=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new pa(e,r,n),this.decoder=new ma(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function zr({name:t,prefix:e,encode:r,decode:n}){return new ga(t,e,r,n)}function zt({name:t,prefix:e,alphabet:r}){let{encode:n,decode:o}=Wh(r,t);return zr({prefix:e,name:t,encode:n,decode:s=>xt(o(s))})}function V0(t,e,r,n){let o=t.length;for(;t[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=e[t[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 q0(t,e,r){let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function $0(t){let e={};for(let r=0;r<t.length;++r)e[t[r]]=r;return e}function de({name:t,prefix:e,bitsPerChar:r,alphabet:n}){let o=$0(n);return zr({prefix:e,name:t,encode(s){return q0(s,n,r)},decode(s){return V0(s,o,r,t)}})}var j0=zt({prefix:"9",name:"base10",alphabet:"0123456789"});var xa={};H(xa,{base16:()=>W0,base16upper:()=>G0});var W0=de({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),G0=de({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var wa={};H(wa,{base2:()=>X0});var X0=de({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ea={};H(Ea,{base256emoji:()=>ey});var Xh=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}"),Z0=Xh.reduce((t,e,r)=>(t[r]=e,t),[]),Y0=Xh.reduce((t,e,r)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return t[n]=r,t},[]);function J0(t){return t.reduce((e,r)=>(e+=Z0[r],e),"")}function Q0(t){let e=[];for(let r of t){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=Y0[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);e.push(o)}return new Uint8Array(e)}var ey=zr({prefix:"\u{1F680}",name:"base256emoji",encode:J0,decode:Q0});var Sa={};H(Sa,{base32:()=>Hr,base32hex:()=>oy,base32hexpad:()=>iy,base32hexpadupper:()=>ay,base32hexupper:()=>sy,base32pad:()=>ry,base32padupper:()=>ny,base32upper:()=>ty,base32z:()=>cy});var Hr=de({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ty=de({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),ry=de({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ny=de({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),oy=de({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),sy=de({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),iy=de({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),ay=de({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),cy=de({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Aa={};H(Aa,{base36:()=>Vn,base36upper:()=>fy});var Vn=zt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),fy=zt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var va={};H(va,{base58btc:()=>tt,base58flickr:()=>uy});var tt=zt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),uy=zt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ba={};H(Ba,{base64:()=>hy,base64pad:()=>ly,base64url:()=>dy,base64urlpad:()=>py});var hy=de({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),ly=de({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),dy=de({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),py=de({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var La={};H(La,{base8:()=>my});var my=de({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ca={};H(Ca,{identity:()=>yy});var yy=zr({prefix:"\0",name:"identity",encode:t=>$h(t),decode:t=>qh(t)});var rS=new TextEncoder,nS=new TextDecoder;var _a={};H(_a,{identity:()=>ky});var xy=Jh,Zh=128,wy=127,Ey=~wy,Sy=Math.pow(2,31);function Jh(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Sy;)e[r++]=t&255|Zh,t/=128;for(;t&Ey;)e[r++]=t&255|Zh,t>>>=7;return e[r]=t|0,Jh.bytes=r-n+1,e}var Ay=Ia,vy=128,Yh=127;function Ia(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw Ia.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&Yh)<<o:(i&Yh)*Math.pow(2,o),o+=7}while(i>=vy);return Ia.bytes=s-n,r}var By=Math.pow(2,7),Ly=Math.pow(2,14),Cy=Math.pow(2,21),Iy=Math.pow(2,28),_y=Math.pow(2,35),Ty=Math.pow(2,42),Dy=Math.pow(2,49),Ry=Math.pow(2,56),Oy=Math.pow(2,63),Uy=function(t){return t<By?1:t<Ly?2:t<Cy?3:t<Iy?4:t<_y?5:t<Ty?6:t<Dy?7:t<Ry?8:t<Oy?9:10},Py={encode:xy,decode:Ay,encodingLength:Uy},Ny=Py,qn=Ny;function $n(t,e=0){return[qn.decode(t,e),qn.decode.bytes]}function Vr(t,e,r=0){return qn.encode(t,e,r),e}function qr(t){return qn.encodingLength(t)}function jr(t,e){let r=e.byteLength,n=qr(t),o=n+qr(r),s=new Uint8Array(o+r);return Vr(t,s,0),Vr(r,s,n),s.set(e,o),new $r(t,r,e,s)}function Qh(t){let e=xt(t),[r,n]=$n(e),[o,s]=$n(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new $r(r,o,i,e)}function el(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Vh(t.bytes,r.bytes)}}var $r=class{code;size;digest;bytes;constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var tl=0,Fy="identity",rl=xt;function My(t,e){if(e?.truncate!=null&&e.truncate!==t.byteLength){if(e.truncate<0||e.truncate>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,e.truncate)}return jr(tl,rl(t))}var ky={code:tl,name:Fy,encode:rl,digest:My};var Ra={};H(Ra,{sha256:()=>zy,sha512:()=>Hy});var Ky=20;function Da({name:t,code:e,encode:r,minDigestLength:n,maxDigestLength:o}){return new Ta(t,e,r,n,o)}var Ta=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,r,n,o,s){this.name=e,this.code=r,this.encode=n,this.minDigestLength=o??Ky,this.maxDigestLength=s}digest(e,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(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?nl(n,this.code,r?.truncate):n.then(o=>nl(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function nl(t,e,r){if(r!=null&&r!==t.byteLength){if(r>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,r)}return jr(e,t)}function sl(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var zy=Da({name:"sha2-256",code:18,encode:sl("SHA-256")}),Hy=Da({name:"sha2-512",code:19,encode:sl("SHA-512")});function il(t,e){let{bytes:r,version:n}=t;return n===0?qy(r,Oa(t),e??tt.encoder):$y(r,Oa(t),e??Hr.encoder)}var al=new WeakMap;function Oa(t){let e=al.get(t);if(e==null){let r=new Map;return al.set(t,r),r}return e}var ss=class t{code;version;multihash;bytes;"/";constructor(e,r,n,o){this.code=r,this.version=e,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:e,multihash:r}=this;if(e!==Wn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==jy)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.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:e,digest:r}=this.multihash,n=jr(e,r);return t.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(e){return t.equals(this,e)}static equals(e,r){let n=r;return n!=null&&e.code===n.code&&e.version===n.version&&el(e.multihash,n.multihash)}toString(e){return il(this,e)}toJSON(){return{"/":il(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new t(n,o,s,i??cl(n,o,s.bytes))}else if(r[Wy]===!0){let{version:n,multihash:o,code:s}=r,i=Qh(o);return t.create(n,s,i)}else return null}static create(e,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(e){case 0:{if(r!==Wn)throw new Error(`Version 0 CID must use dag-pb (code: ${Wn}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=cl(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,Wn,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=xt(e.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?t.createV0(i):t.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[h,g]=$n(e.subarray(r));return r+=g,h},o=n(),s=Wn;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(e,r){let[n,o]=Vy(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Oa(s).set(n,e),s}};function Vy(t,e){switch(t[0]){case"Q":{let r=e??tt;return[tt.prefix,r.decode(`${tt.prefix}${t}`)]}case tt.prefix:{let r=e??tt;return[tt.prefix,r.decode(t)]}case Hr.prefix:{let r=e??Hr;return[Hr.prefix,r.decode(t)]}case Vn.prefix:{let r=e??Vn;return[Vn.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function qy(t,e,r){let{prefix:n}=r;if(n!==tt.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o}function $y(t,e,r){let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o}var Wn=112,jy=18;function cl(t,e,r){let n=qr(t),o=n+qr(e),s=new Uint8Array(o+r.byteLength);return Vr(t,s,0),Vr(e,s,n),s.set(r,o),s}var Wy=Symbol.for("@ipld/js-cid/CID");var Ua={...Ca,...wa,...La,...ba,...xa,...Sa,...Aa,...va,...Ba,...Ea},BS={...Ra,..._a};function ul(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var fl=ul("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Pa=ul("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Mt(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Gy={utf8:fl,"utf-8":fl,hex:Ua.base16,latin1:Pa,ascii:Pa,binary:Pa,...Ua},hl=Gy;function ll(t,e="utf8"){let r=hl[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}function Na(t){let e=t??8192,r=e>>>1,n,o=e;return function(i){if(i<1||i>r)return Mt(i);o+i>e&&(n=Mt(e),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(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function Fa(){}var ka=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Xy=Na();function Zy(t){return globalThis.Buffer!=null?Mt(t):Xy(t)}var Xn=class{len;head;tail;states;constructor(){this.len=0,this.head=new hr(Fa,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new hr(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Ka((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(is,10,Fe.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=Fe.fromBigInt(e);return this._push(is,r.length(),r)}uint64Number(e){return this._push(Oh,zn(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let r=Fe.fromBigInt(e).zzEncode();return this._push(is,r.length(),r)}sint64Number(e){let r=Fe.fromNumber(e).zzEncode();return this._push(is,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Ma,1,e?1:0)}fixed32(e){return this._push(Gn,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=Fe.fromBigInt(e);return this._push(Gn,4,r.lo)._push(Gn,4,r.hi)}fixed64Number(e){let r=Fe.fromNumber(e);return this._push(Gn,4,r.lo)._push(Gn,4,r.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Ph,4,e)}double(e){return this._push(Fh,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(Ma,1,0):this.uint32(r)._push(Jy,r,e)}string(e){let r=Kh(e);return r!==0?this.uint32(r)._push(la,r,e):this._push(Ma,1,0)}fork(){return this.states=new ka(this),this.head=this.tail=new hr(Fa,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(Fa,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=Zy(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function Ma(t,e,r){e[r]=t&255}function Yy(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var Ka=class extends hr{next;constructor(e,r){super(Yy,e,r),this.next=void 0}};function is(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function Gn(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function Jy(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(Xn.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(Qy,e,t),this},Xn.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(eg,e,t),this});function Qy(t,e,r){e.set(t,r)}function eg(t,e,r){t.length<40?la(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(ll(t),r)}function za(){return new Xn}function as(t,e){let r=za();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}function*cs(t,e,r){let n=Hn(t);yield*e.stream(n,void 0,"$",r)}var fs={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function us(t,e,r,n,o){return{name:t,type:e,encode:r,decode:n,stream:o}}function Ha(t){function e(s){if(t[s.toString()]==null)throw new Error("Invalid enum value");return t[s]}let r=function(i,a){let c=e(i);a.int32(c)},n=function(i){let a=i.int32();return e(a)},o=function*(i){let a=i.int32();yield e(a)};return us("enum",fs.VARINT,r,n,o)}function hs(t,e,r){return us("message",fs.LENGTH_DELIMITED,t,e,r)}var ce;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.secp256k1="secp256k1",t.ECDSA="ECDSA"})(ce||(ce={}));var Va;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.secp256k1=2]="secp256k1",t[t.ECDSA=3]="ECDSA"})(Va||(Va={}));(function(t){t.codec=()=>Ha(Va)})(ce||(ce={}));var rt;(function(t){let e;t.codec=()=>(e==null&&(e=hs((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ce.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=ce.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:ce.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function r(s){return as(s,t.codec())}t.encode=r;function n(s,i){return ns(s,t.codec(),i)}t.decode=n;function o(s,i){return cs(s,t.codec(),i)}t.stream=o})(rt||(rt={}));var qa;(function(t){let e;t.codec=()=>(e==null&&(e=hs((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ce.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=ce.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:ce.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function r(s){return as(s,t.codec())}t.encode=r;function n(s,i){return ns(s,t.codec(),i)}t.decode=n;function o(s,i){return cs(s,t.codec(),i)}t.stream=o})(qa||(qa={}));var Yn={};H(Yn,{MAX_RSA_KEY_SIZE:()=>$a,generateRSAKeyPair:()=>gl,jwkToJWKKeyPair:()=>bl,jwkToPkcs1:()=>og,jwkToPkix:()=>Xa,jwkToRSAPrivateKey:()=>Qa,pkcs1MessageToJwk:()=>Wa,pkcs1MessageToRSAPrivateKey:()=>Za,pkcs1ToJwk:()=>ng,pkcs1ToRSAPrivateKey:()=>yl,pkixMessageToJwk:()=>Ga,pkixMessageToRSAPublicKey:()=>Ja,pkixToJwk:()=>sg,pkixToRSAPublicKey:()=>Ya});var Wr=class{type="RSA";jwk;_raw;_multihash;constructor(e,r){this.jwk=e,this._multihash=r}get raw(){return this._raw==null&&(this._raw=Yn.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return me.createV1(114,this._multihash)}toString(){return he.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}verify(e,r,n){return ml(this.jwk,r,e,n)}},Zn=class{type="RSA";jwk;_raw;publicKey;constructor(e,r){this.jwk=e,this.publicKey=r}get raw(){return this._raw==null&&(this._raw=Yn.jwkToPkcs1(this.jwk)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}sign(e,r){return pl(this.jwk,e,r)}};var $a=8192,ja=18,tg=1062,rg=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function ng(t){let e=dt(t);return Wa(e)}function Wa(t){return{n:G(t[1],"base64url"),e:G(t[2],"base64url"),d:G(t[3],"base64url"),p:G(t[4],"base64url"),q:G(t[5],"base64url"),dp:G(t[6],"base64url"),dq:G(t[7],"base64url"),qi:G(t[8],"base64url"),kty:"RSA"}}function og(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new ee("JWK was missing components");return It([Ue(Uint8Array.from([0])),Ue(re(t.n,"base64url")),Ue(re(t.e,"base64url")),Ue(re(t.d,"base64url")),Ue(re(t.p,"base64url")),Ue(re(t.q,"base64url")),Ue(re(t.dp,"base64url")),Ue(re(t.dq,"base64url")),Ue(re(t.qi,"base64url"))]).subarray()}function sg(t){let e=dt(t,{offset:0});return Ga(e)}function Ga(t){let e=dt(t[1],{offset:0});return{kty:"RSA",n:G(e[0],"base64url"),e:G(e[1],"base64url")}}function Xa(t){if(t.n==null||t.e==null)throw new ee("JWK was missing components");return It([rg,Fo(It([Ue(re(t.n,"base64url")),Ue(re(t.e,"base64url"))]))]).subarray()}function yl(t){let e=dt(t);return Za(e)}function Za(t){let e=Wa(t);return Qa(e)}function Ya(t,e){if(t.byteLength>=tg)throw new vr("Key size is too large");let r=dt(t,{offset:0});return Ja(r,t,e)}function Ja(t,e,r){let n=Ga(t);if(r==null){let o=et(rt.encode({Type:ce.RSA,Data:e}));r=He(ja,o)}return new Wr(n,r)}function Qa(t){if(wl(t)>$a)throw new ee("Key size is too large");let e=bl(t),r=et(rt.encode({Type:ce.RSA,Data:Xa(e.publicKey)})),n=He(ja,r);return new Zn(e.privateKey,new Wr(e.publicKey,n))}async function gl(t){if(t>$a)throw new ee("Key size is too large");let e=await xl(t),r=et(rt.encode({Type:ce.RSA,Data:Xa(e.publicKey)})),n=He(ja,r);return new Zn(e.privateKey,new Wr(e.publicKey,n))}function bl(t){if(t==null)throw new ee("Missing key parameter");return{privateKey:t,publicKey:{kty:t.kty,n:t.n,e:t.e}}}async function xl(t,e){let r=await Ke.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);e?.signal?.throwIfAborted();let n=await ig(r,e);return{privateKey:n[0],publicKey:n[1]}}async function pl(t,e,r){let n=await Ke.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);r?.signal?.throwIfAborted();let o=await Ke.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,De(e instanceof Uint8Array?e:e.subarray()));return r?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function ml(t,e,r,n){let o=await Ke.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await Ke.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,De(e),De(r instanceof Uint8Array?r:r.subarray()));return n?.signal?.throwIfAborted(),s}async function ig(t,e){if(t.privateKey==null||t.publicKey==null)throw new ee("Private and public key are required");let r=await Promise.all([Ke.get().subtle.exportKey("jwk",t.privateKey),Ke.get().subtle.exportKey("jwk",t.publicKey)]);return e?.signal?.throwIfAborted(),r}function wl(t){if(t.kty!=="RSA")throw new ee("invalid key type");if(t.n==null)throw new ee("invalid key modulus");return re(t.n,"base64url").length*8}var ls=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(e,r){if(Qt(e),Be(r,void 0,"key"),this.iHash=e.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?e.create().update(r).digest():r);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),qe(o)}update(e){return Rr(this),this.iHash.update(e),this}digestInto(e){Rr(this),Mo(e,this),this.finished=!0;let r=e.subarray(0,this.outputLen);this.iHash.digestInto(r),this.oHash.update(r),this.oHash.digestInto(r),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:r,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Jn=(()=>{let t=((e,r,n)=>new ls(e,r).update(n).digest());return t.create=(e,r)=>new ls(e,r),t})();var El=(t,e)=>(t+(t>=0?e:-e)/Sl)/e;function ag(t,e,r){yt("scalar",t,nt,r);let[[n,o],[s,i]]=e,a=El(i*t,r),c=El(-o*t,r),f=t-a*n-c*s,u=-a*o-c*i,h=f<nt,g=u<nt;h&&(f=-f),g&&(u=-u);let p=Un(Math.ceil(Pr(r)/2))+Ht;if(f<nt||f>=p||u<nt||u>=p)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:h,k1:f,k2neg:g,k2:u}}function tc(t){if(!["compact","recovered","der"].includes(t))throw new Error('Signature format must be "compact", "recovered", or "der"');return t}function ec(t,e){Ne(t);let r={};for(let n of Object.keys(e))r[n]=t[n]===void 0?e[n]:t[n];return je(r.lowS,"lowS"),je(r.prehash,"prehash"),r.format!==void 0&&tc(r.format),r}var rc=class extends Error{constructor(e=""){super(e)}},Xe={Err:rc,_tlv:{encode:(t,e)=>{let{Err:r}=Xe;if(We(t,"tag"),t<0||t>255)throw new r("tlv.encode: wrong tag");if(typeof e!="string")throw new TypeError('"data" expected string, got type='+typeof e);if(e.length&1)throw new r("tlv.encode: unpadded data");let n=e.length/2,o=Rn(n);if(o.length/2&128)throw new r("tlv.encode: long form length too big");let s=n>127?Rn(o.length/2|128):"";return Rn(t)+s+o+e},decode(t,e){let{Err:r}=Xe;e=V(e,void 0,"DER data");let n=0;if(t<0||t>255)throw new r("tlv.encode: wrong tag");if(e.length<2||e[n++]!==t)throw new r("tlv.decode: wrong tlv");let o=e[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=e.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=e.subarray(n,n+i);if(a.length!==i)throw new r("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+i)}}},_int:{encode(t){let{Err:e}=Xe;if($o(t),t<nt)throw new e("integer: negative integers are not allowed");let r=Rn(t);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return r},decode(t){let{Err:e}=Xe;if(t.length<1)throw new e("invalid signature integer: empty");if(t[0]&128)throw new e("invalid signature integer: negative");if(t.length>1&&t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return or(t)}},toSig(t){let{Err:e,_int:r,_tlv:n}=Xe,o=V(t,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new e("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 e("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(f)}},hexFromSig(t){let{_tlv:e,_int:r}=Xe,n=e.encode(2,r.encode(t.r)),o=e.encode(2,r.encode(t.s)),s=n+o;return e.encode(48,s)}};Object.freeze(Xe._tlv);Object.freeze(Xe._int);Object.freeze(Xe);var nt=BigInt(0),Ht=BigInt(1),Sl=BigInt(2),ds=BigInt(3),cg=BigInt(4);function Al(t,e={}){let r=Xo("weierstrass",t,e),n=r.Fp,o=r.Fn,s=r.CURVE,{h:i,n:a}=s;Ne(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c,allowInfinityPoint:f}=e;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=Bl(n,o);function h(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function g(N,y,A){if(f&&y.is0())return Uint8Array.of(0);let{x:S,y:w}=y.toAffine(),x=n.toBytes(S);if(je(A,"isCompressed"),A){h();let L=!n.isOdd(w);return ye(vl(L),x)}else return ye(Uint8Array.of(4),x,n.toBytes(w))}function p(N){V(N,void 0,"Point");let{publicKey:y,publicKeyUncompressed:A}=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===y&&(w===2||w===3)){let L=n.fromBytes(x);if(!n.isValid(L))throw new Error("bad point: is not on curve, wrong x");let I=l(L),E;try{E=n.sqrt(I)}catch(F){let z=F instanceof Error?": "+F.message:"";throw new Error("bad point: is not on curve, sqrt error"+z)}h();let R=n.isOdd(E);return(w&1)===1!==R&&(E=n.neg(E)),{x:L,y:E}}else if(S===A&&w===4){let L=n.BYTES,I=n.fromBytes(x.subarray(0,L)),E=n.fromBytes(x.subarray(L,L*2));if(!m(I,E))throw new Error("bad point: is not on curve");return{x:I,y:E}}else throw new Error(`bad point: got length ${S}, expected compressed=${y} or uncompressed=${A}`)}let d=e.toBytes===void 0?g:e.toBytes,b=e.fromBytes===void 0?p:e.fromBytes;function l(N){let y=n.sqr(N),A=n.mul(y,N);return n.add(n.add(A,n.mul(N,s.a)),s.b)}function m(N,y){let A=n.sqr(y),S=l(N);return n.eql(A,S)}if(!m(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let v=n.mul(n.pow(s.a,ds),cg),B=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(v,B)))throw new Error("bad curve params: a or b");function T(N,y,A=!1){if(!n.isValid(y)||A&&n.is0(y))throw new Error(`bad point coordinate ${N}`);return y}function D(N){if(!(N instanceof C))throw new Error("Weierstrass Point expected")}function U(N){if(!c||!c.basises)throw new Error("no endo");return ag(N,c.basises,o.ORDER)}function _(N,y,A,S,w){return A=new C(n.mul(A.X,N),A.Y,A.Z),y=Nn(S,y),A=Nn(w,A),y.add(A)}class C{static BASE=new C(s.Gx,s.Gy,n.ONE);static ZERO=new C(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(y,A,S){this.X=T("x",y),this.Y=T("y",A,!0),this.Z=T("z",S),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){let{x:A,y:S}=y||{};if(!y||!n.isValid(A)||!n.isValid(S))throw new Error("invalid affine point");if(y instanceof C)throw new Error("projective point not allowed");return n.is0(A)&&n.is0(S)?C.ZERO:new C(A,S,n.ONE)}static fromBytes(y){let A=C.fromAffine(b(V(y,void 0,"point")));return A.assertValidity(),A}static fromHex(y){return C.fromBytes(Ur(y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,A=!0){return M.createCache(this,y),A||this.multiply(ds),this}assertValidity(){let y=this;if(y.is0()){if(e.allowInfinityPoint&&n.is0(y.X)&&n.eql(y.Y,n.ONE)&&n.is0(y.Z))return;throw new Error("bad point: ZERO")}let{x:A,y:S}=y.toAffine();if(!n.isValid(A)||!n.isValid(S))throw new Error("bad point: x or y not field elements");if(!m(A,S))throw new Error("bad point: equation left != right");if(!y.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(y)}equals(y){D(y);let{X:A,Y:S,Z:w}=this,{X:x,Y:L,Z:I}=y,E=n.eql(n.mul(A,I),n.mul(x,w)),R=n.eql(n.mul(S,I),n.mul(L,w));return E&&R}negate(){return new C(this.X,n.neg(this.Y),this.Z)}double(){let{a:y,b:A}=s,S=n.mul(A,ds),{X:w,Y:x,Z:L}=this,I=n.ZERO,E=n.ZERO,R=n.ZERO,O=n.mul(w,w),F=n.mul(x,x),z=n.mul(L,L),K=n.mul(w,x);return K=n.add(K,K),R=n.mul(w,L),R=n.add(R,R),I=n.mul(y,R),E=n.mul(S,z),E=n.add(I,E),I=n.sub(F,E),E=n.add(F,E),E=n.mul(I,E),I=n.mul(K,I),R=n.mul(S,R),z=n.mul(y,z),K=n.sub(O,z),K=n.mul(y,K),K=n.add(K,R),R=n.add(O,O),O=n.add(R,O),O=n.add(O,z),O=n.mul(O,K),E=n.add(E,O),z=n.mul(x,L),z=n.add(z,z),O=n.mul(z,K),I=n.sub(I,O),R=n.mul(z,F),R=n.add(R,R),R=n.add(R,R),new C(I,E,R)}add(y){D(y);let{X:A,Y:S,Z:w}=this,{X:x,Y:L,Z:I}=y,E=n.ZERO,R=n.ZERO,O=n.ZERO,F=s.a,z=n.mul(s.b,ds),K=n.mul(A,x),Y=n.mul(S,L),J=n.mul(w,I),Q=n.add(A,S),j=n.add(x,L);Q=n.mul(Q,j),j=n.add(K,Y),Q=n.sub(Q,j),j=n.add(A,w);let ie=n.add(x,I);return j=n.mul(j,ie),ie=n.add(K,J),j=n.sub(j,ie),ie=n.add(S,w),E=n.add(L,I),ie=n.mul(ie,E),E=n.add(Y,J),ie=n.sub(ie,E),O=n.mul(F,j),E=n.mul(z,J),O=n.add(E,O),E=n.sub(Y,O),O=n.add(Y,O),R=n.mul(E,O),Y=n.add(K,K),Y=n.add(Y,K),J=n.mul(F,J),j=n.mul(z,j),Y=n.add(Y,J),J=n.sub(K,J),J=n.mul(F,J),j=n.add(j,J),K=n.mul(Y,j),R=n.add(R,K),K=n.mul(ie,j),E=n.mul(Q,E),E=n.sub(E,K),K=n.mul(Q,Y),O=n.mul(ie,O),O=n.add(O,K),new C(E,R,O)}subtract(y){return D(y),this.add(y.negate())}is0(){return this.equals(C.ZERO)}multiply(y){let{endo:A}=e;if(!o.isValidNot0(y))throw new RangeError("invalid scalar: out of range");let S,w,x=L=>M.cached(this,L,I=>ar(C,I));if(A){let{k1neg:L,k1:I,k2neg:E,k2:R}=U(y),{p:O,f:F}=x(I),{p:z,f:K}=x(R);w=F.add(K),S=_(A.beta,O,z,L,E)}else{let{p:L,f:I}=x(y);S=L,w=I}return ar(C,[S,w])[0]}multiplyUnsafe(y){let{endo:A}=e,S=this,w=y;if(!o.isValid(w))throw new RangeError("invalid scalar: out of range");if(w===nt||S.is0())return C.ZERO;if(w===Ht)return S;if(M.hasCache(this))return this.multiply(w);if(A){let{k1neg:x,k1:L,k2neg:I,k2:E}=U(w),{p1:R,p2:O}=mh(C,S,L,E);return _(A.beta,R,O,x,I)}else return M.unsafe(S,w)}toAffine(y){let A=this,S=y,{X:w,Y:x,Z:L}=A;if(n.eql(L,n.ONE))return{x:w,y:x};let I=A.is0();S==null&&(S=I?n.ONE:n.inv(L));let E=n.mul(w,S),R=n.mul(x,S),O=n.mul(L,S);if(I)return{x:n.ZERO,y:n.ZERO};if(!n.eql(O,n.ONE))throw new Error("invZ was invalid");return{x:E,y:R}}isTorsionFree(){let{isTorsionFree:y}=e;return i===Ht?!0:y?y(C,this):M.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:y}=e;return i===Ht?this:y?y(C,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===Ht?this.is0():this.clearCofactor().is0()}toBytes(y=!0){return je(y,"isCompressed"),this.assertValidity(),d(C,this,y)}toHex(y=!0){return Or(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let P=o.BITS,M=new Mr(C,e.endo?Math.ceil(P/2):P);return P>=8&&C.BASE.precompute(8),Object.freeze(C.prototype),Object.freeze(C),C}function vl(t){return Uint8Array.of(t?2:3)}function Bl(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function fg(t,e={}){let{Fn:r}=t,n=e.randomBytes===void 0?nr:e.randomBytes,o=Object.assign(Bl(t.Fp,r),{seed:Math.max(Gi(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 m=p.length;return d===!0&&m!==b||d===!1&&m!==l?!1:!!t.fromBytes(p)}catch{return!1}}function a(p){return p=p===void 0?n(o.seed):p,Xi(V(p,o.seed,"seed"),r.ORDER)}function c(p,d=!0){return t.BASE.multiply(r.fromBytes(p)).toBytes(d)}function f(p){let{secretKey:d,publicKey:b,publicKeyUncompressed:l}=o,m=r._lengths;if(!rr(p))return;let v=V(p,void 0,"key").length,B=v===b||v===l,T=v===d||!!m?.includes(v);if(!(B&&T))return B}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 t.fromBytes(d).multiply(l).toBytes(b)}let h={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},g=kr(a,c);return Object.freeze(h),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:g,Point:t,utils:h,lengths:o})}function Ll(t,e,r={}){let n=e;Qt(n),Ne(r,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),r=Object.assign({},r);let o=r.randomBytes===void 0?nr:r.randomBytes,s=r.hmac===void 0?(w,x)=>Jn(n,w,x):r.hmac,{Fp:i,Fn:a}=t,{ORDER:c,BITS:f}=a,{keygen:u,getPublicKey:h,getSharedSecret:g,utils:p,lengths:d}=fg(t,r),b={prehash:!0,lowS:typeof r.lowS=="boolean"?r.lowS:!0,format:"compact",extraEntropy:!1},l=c*Sl+Ht<i.ORDER;function m(w){let x=c>>Ht;return w>x}function v(w,x){if(!a.isValidNot0(x))throw new Error(`invalid signature ${w}: out of range 1..Point.Fn.ORDER`);return x}function B(){if(l)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function T(w,x){tc(x);let L=d.signature,I=x==="compact"?L:x==="recovered"?L+1:void 0;return V(w,I)}class D{r;s;recovery;constructor(x,L,I){if(this.r=v("r",x),this.s=v("s",L),I!=null){if(B(),![0,1,2,3].includes(I))throw new Error("invalid recovery id");this.recovery=I}Object.freeze(this)}static fromBytes(x,L=b.format){T(x,L);let I;if(L==="der"){let{r:F,s:z}=Xe.toSig(V(x));return new D(F,z)}L==="recovered"&&(I=x[0],L="compact",x=x.subarray(1));let E=d.signature/2,R=x.subarray(0,E),O=x.subarray(E,E*2);return new D(a.fromBytes(R),a.fromBytes(O),I)}static fromHex(x,L){return this.fromBytes(Ur(x),L)}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:L,s:I}=this,E=this.assertRecovery(),R=E===2||E===3?L+c:L;if(!i.isValid(R))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let O=i.toBytes(R),F=t.fromBytes(ye(vl((E&1)===0),O)),z=a.inv(R),K=_(V(x,void 0,"msgHash")),Y=a.create(-K*z),J=a.create(I*z),Q=t.BASE.multiplyUnsafe(Y).add(F.multiplyUnsafe(J));if(Q.is0())throw new Error("invalid recovery: point at infinify");return Q.assertValidity(),Q}hasHighS(){return m(this.s)}toBytes(x=b.format){if(tc(x),x==="der")return Ur(Xe.hexFromSig(this));let{r:L,s:I}=this,E=a.toBytes(L),R=a.toBytes(I);return x==="recovered"?(B(),ye(Uint8Array.of(this.assertRecovery()),E,R)):ye(E,R)}toHex(x){return Or(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 L=or(x),I=x.length*8-f;return I>0?L>>BigInt(I):L}:r.bits2int,_=r.bits2int_modN===void 0?function(x){return a.create(U(x))}:r.bits2int_modN,C=Un(f);function P(w){return yt("num < 2^"+f,w,nt,C),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,L){let{lowS:I,prehash:E,extraEntropy:R}=ec(L,b);w=M(w,E);let O=_(w),F=a.fromBytes(x);if(!a.isValidNot0(F))throw new Error("invalid private key");let z=[P(F),P(O)];if(R!=null&&R!==!1){let Q=R===!0?o(d.secretKey):R;z.push(V(Q,void 0,"extraEntropy"))}let K=ye(...z),Y=O;function J(Q){let j=U(Q);if(!a.isValidNot0(j))return;let ie=a.inv(j),ft=t.BASE.multiply(j).toAffine(),Wt=a.create(ft.x);if(Wt===nt)return;let Sr=a.create(ie*a.create(Y+Wt*F));if(Sr===nt)return;let gn=(ft.x===Wt?0:2)|Number(ft.y&Ht),bn=Sr;return I&&m(Sr)&&(bn=a.neg(Sr),gn^=1),new D(Wt,bn,l?void 0:gn)}return{seed:K,k2sig:J}}function y(w,x,L={}){let{seed:I,k2sig:E}=N(w,x,L);return Ju(n.outputLen,a.BYTES,s)(I,E).toBytes(L.format)}function A(w,x,L,I={}){let{lowS:E,prehash:R,format:O}=ec(I,b);if(L=V(L,void 0,"publicKey"),x=M(x,R),!rr(w)){let F=w instanceof D?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+F)}T(w,O);try{let F=D.fromBytes(w,O),z=t.fromBytes(L);if(E&&F.hasHighS())return!1;let{r:K,s:Y}=F,J=_(x),Q=a.inv(Y),j=a.create(J*Q),ie=a.create(K*Q),ft=t.BASE.multiplyUnsafe(j).add(z.multiplyUnsafe(ie));return ft.is0()?!1:a.create(ft.x)===K}catch{return!1}}function S(w,x,L={}){let{prehash:I}=ec(L,b);return x=M(x,I),D.fromBytes(w,"recovered").recoverPublicKey(x).toBytes()}return Object.freeze({keygen:u,getPublicKey:h,getSharedSecret:g,utils:p,lengths:d,Point:t,sign:y,verify:A,recoverPublicKey:S,Signature:D,hash:n})}var oc={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},ug={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var Cl=BigInt(2);function hg(t){let e=oc.p,r=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=t*t*t%e,u=f*f*t%e,h=ne(u,r,e)*u%e,g=ne(h,r,e)*u%e,p=ne(g,Cl,e)*f%e,d=ne(p,o,e)*p%e,b=ne(d,s,e)*d%e,l=ne(b,a,e)*b%e,m=ne(l,c,e)*l%e,v=ne(m,a,e)*b%e,B=ne(v,r,e)*u%e,T=ne(B,i,e)*d%e,D=ne(T,n,e)*f%e,U=ne(D,Cl,e);if(!nc.eql(nc.sqr(U),t))throw new Error("Cannot find square root");return U}var nc=Nr(oc.p,{sqrt:hg}),lg=Al(oc,{Fp:nc,endo:ug}),Gr=Ll(lg,et);function Il(t,e,r,n){let o=Bn.digest(r instanceof Uint8Array?r:r.subarray());if(es(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),Gr.verify(e,s,t,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new Kn(String(s))});try{return n?.signal?.throwIfAborted(),Gr.verify(e,o.digest,t,{prehash:!1,format:"der"})}catch(s){throw new Kn(String(s))}}var ps=class{type="secp256k1";raw;_key;constructor(e){this._key=Tl(e),this.raw=_l(this._key)}toMultihash(){return Ve.digest(_t(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return he.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}verify(e,r,n){return Il(this._key,r,e,n)}};function sc(t){return new ps(t)}function _l(t){return Gr.Point.fromBytes(t).toBytes()}function Tl(t){try{return Gr.Point.fromBytes(t),t}catch(e){throw new vr(String(e))}}function Qn(t,e){let{Type:r,Data:n}=rt.decode(t),o=n??new Uint8Array;switch(r){case ce.RSA:return Ya(o,e);case ce.Ed25519:return fa(o);case ce.secp256k1:return sc(o);case ce.ECDSA:return Ri(o);default:throw new Gt}}function Dl(t){let{Type:e,Data:r}=rt.decode(t.digest),n=r??new Uint8Array;switch(e){case ce.Ed25519:return fa(n);case ce.secp256k1:return sc(n);case ce.ECDSA:return Ri(n);default:throw new Gt}}function _t(t){return rt.encode({Type:ce[t.type],Data:t.raw})}var Rl=Symbol.for("nodejs.util.inspect.custom"),dg=114,eo=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[ri]=!0;toString(){return this.string==null&&(this.string=he.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return me.createV1(dg,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return we(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return we(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Rl](){return`PeerId(${this.toString()})`}},to=class extends eo{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},ro=class extends eo{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},no=class extends eo{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},pg=2336,oo=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=Ve.digest(re(this.url))}[Rl](){return`PeerId(${this.url})`}[ri]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return me.createV1(pg,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=G(e)),e.toString()===this.toString())}};var mg=114,Ol=2336;function Ul(t,e){let r;if(t.charAt(0)==="1"||t.charAt(0)==="Q")r=Tr(he.decode(`z${t}`));else{if(t.startsWith("k51qzi5uqu5")||t.startsWith("kzwfwjn5ji4")||t.startsWith("k2k4r8")||t.startsWith("bafz"))return yg(me.parse(t));if(e==null)throw new ee('Please pass a multibase decoder for strings that do not start with "1" or "Q"');r=Tr(e.decode(t))}return Pl(r)}function ic(t){if(t.type==="Ed25519")return new ro({multihash:t.toCID().multihash,publicKey:t});if(t.type==="secp256k1")return new no({multihash:t.toCID().multihash,publicKey:t});if(t.type==="RSA")return new to({multihash:t.toCID().multihash,publicKey:t});throw new Gt}function Pl(t){if(bg(t))return new to({multihash:t});if(gg(t))try{let e=Dl(t);if(e.type==="Ed25519")return new ro({multihash:t,publicKey:e});if(e.type==="secp256k1")return new no({multihash:t,publicKey:e})}catch{let r=G(t.digest);return new oo(new URL(r))}throw new _o("Supplied PeerID Multihash is invalid")}function yg(t){if(t?.multihash==null||t.version==null||t.version===1&&t.code!==mg&&t.code!==Ol)throw new Io("Supplied PeerID CID is invalid");if(t.code===Ol){let e=G(t.multihash.digest);return new oo(new URL(e))}return Pl(t.multihash)}function gg(t){return t.code===Ve.code}function bg(t){return t.code===Bn.code}function xg(t){let e=t.getComponents(),r={},n=0;return e[n]?.name==="ip6zone"&&(r.zone=`${e[n].value}`,n++),e[n]?.name==="ip4"||e[n]?.name==="ip6"||e[n]?.name==="dns"||e[n]?.name==="dns4"||e[n]?.name==="dns6"?(r.type=e[n].name,r.host=e[n].value,n++):e[n]?.name==="dnsaddr"&&(r.type=e[n].name,r.host=`_dnsaddr.${e[n].value}`,n++),(e[n]?.name==="tcp"||e[n]?.name==="udp")&&(r.protocol=e[n].name==="tcp"?"tcp":"udp",r.port=parseInt(`${e[n].value}`),n++),e[n]?.name==="ipcidr"&&(r.type==="ip4"?r.cidr=parseInt(`${e[n].value}`):r.type==="ip6"&&(r.cidr=`${e[n].value}`),n++),r.type==null||r.host==null?null:(e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(r.sni=e[n+1].value,n+=2),r)}function Nl(t){let e=xg(t);if(e==null)throw new ee(`Multiaddr ${t} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e}var ms=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();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(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,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 g=Number.parseInt(h,e);if(!Number.isNaN(g))return g});if(u===void 0)break;if(s*=e,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 e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=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]=e(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]=e(s.subarray(0,i));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var wg=45,Eg=15,ys=new ms;function Fl(t){if(!(t.length>Eg))return ys.new(t).parseWith(()=>ys.readIPv4Addr())}function Ml(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>wg))return ys.new(t).parseWith(()=>ys.readIPv6Addr())}function gs(t){return!!Fl(t)}function kl(t){return!!Ml(t)}var Sg=Math.pow(2,7),Ag=Math.pow(2,14),vg=Math.pow(2,21),ac=Math.pow(2,28),cc=Math.pow(2,35),fc=Math.pow(2,42),uc=Math.pow(2,49),fe=128,Ce=127;function Xr(t){if(t<Sg)return 1;if(t<Ag)return 2;if(t<vg)return 3;if(t<ac)return 4;if(t<cc)return 5;if(t<fc)return 6;if(t<uc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function hc(t,e,r=0){switch(Xr(t)){case 8:e[r++]=t&255|fe,t/=128;case 7:e[r++]=t&255|fe,t/=128;case 6:e[r++]=t&255|fe,t/=128;case 5:e[r++]=t&255|fe,t/=128;case 4:e[r++]=t&255|fe,t>>>=7;case 3:e[r++]=t&255|fe,t>>>=7;case 2:e[r++]=t&255|fe,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function Bg(t,e){let r=t[e],n=0;if(n+=r&Ce,r<fe||(r=t[e+1],n+=(r&Ce)<<7,r<fe)||(r=t[e+2],n+=(r&Ce)<<14,r<fe)||(r=t[e+3],n+=(r&Ce)<<21,r<fe)||(r=t[e+4],n+=(r&Ce)*ac,r<fe)||(r=t[e+5],n+=(r&Ce)*cc,r<fe)||(r=t[e+6],n+=(r&Ce)*fc,r<fe)||(r=t[e+7],n+=(r&Ce)*uc,r<fe))return n;throw new RangeError("Could not decode varint")}function Lg(t,e){let r=t.get(e),n=0;if(n+=r&Ce,r<fe||(r=t.get(e+1),n+=(r&Ce)<<7,r<fe)||(r=t.get(e+2),n+=(r&Ce)<<14,r<fe)||(r=t.get(e+3),n+=(r&Ce)<<21,r<fe)||(r=t.get(e+4),n+=(r&Ce)*ac,r<fe)||(r=t.get(e+5),n+=(r&Ce)*cc,r<fe)||(r=t.get(e+6),n+=(r&Ce)*fc,r<fe)||(r=t.get(e+7),n+=(r&Ce)*uc,r<fe))return n;throw new RangeError("Could not decode varint")}function lc(t,e=0){return t instanceof Uint8Array?Bg(t,e):Lg(t,e)}var Ae=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},wt=class extends Error{static name="ValidationError";name="ValidationError"},bs=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},xs=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function pc(t){return e=>G(e,t)}function mc(t){return e=>re(e,t)}function Zr(t){return new DataView(t.buffer).getUint16(t.byteOffset).toString()}function lr(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof t=="string"?parseInt(t):t),new Uint8Array(e)}function Kl(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=re(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=lr(n);return fr([r,o],r.length+o.length)}function zl(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=Ct.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=lr(n);return fr([r,o],r.length+o.length)}function yc(t){let e=t.subarray(0,t.length-2),r=t.subarray(t.length-2),n=G(e,"base32"),o=Zr(r);return`${n}:${o}`}var gc=function(t){t=t.toString().trim();let e=new Uint8Array(4);return t.split(/\./g).forEach((r,n)=>{let o=parseInt(r,10);if(isNaN(o)||o<0||o>255)throw new Ae("Invalid byte value in IP address");e[n]=o}),e},Hl=function(t){let e=0;t=t.toString().trim();let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=gs(r[n]),i;s&&(i=gc(r[n]),r[n]=G(i.subarray(0,2),"base16")),i!=null&&++n<8&&r.splice(n,0,G(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(e+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 Ae("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},Vl=function(t){if(t.byteLength!==4)throw new Ae("IPv4 address was incorrect length");let e=[];for(let r=0;r<t.byteLength;r++)e.push(t[r]);return e.join(".")},ql=function(t){if(t.byteLength!==16)throw new Ae("IPv6 address was incorrect length");let e=[];for(let n=0;n<t.byteLength;n+=2){let o=t[n],s=t[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;e.push(i)}let r=e.join(":");try{let n=new URL(`http://[${r}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new Ae(`Invalid IPv6 address "${r}"`)}};function $l(t){try{let e=new URL(`http://[${t}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new Ae(`Invalid IPv6 address "${t}"`)}}var dc=Object.values(Yt).map(t=>t.decoder),Ig=(function(){let t=dc[0].or(dc[1]);return dc.slice(2).forEach(e=>t=t.or(e)),t})();function jl(t){return Ig.decode(t)}function Wl(t){return e=>t.encoder.encode(e)}function _g(t){if(parseInt(t).toString()!==t)throw new wt("Value must be an integer")}function Tg(t){if(t<0)throw new wt("Value must be a positive integer, or zero")}function Dg(t){return e=>{if(e>t)throw new wt(`Value must be smaller than or equal to ${t}`)}}function Rg(...t){return e=>{for(let r of t)r(e)}}var so=Rg(_g,Tg,Dg(65535));var xe=-1,bc=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let r;if(typeof e=="string"?r=this.protocolsByName.get(e):r=this.protocolsByCode.get(e),r==null)throw new xs(`Protocol ${e} was unknown`);return r}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(r=>{this.protocolsByName.set(r,e)})}removeProtocol(e){let r=this.protocolsByCode.get(e);r!=null&&(this.protocolsByCode.delete(r.code),this.protocolsByName.delete(r.name),r.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},St=new bc,jg=[{code:4,name:"ip4",size:32,valueToBytes:gc,bytesToValue:Vl,validate:t=>{if(!gs(t))throw new wt(`Invalid IPv4 address "${t}"`)}},{code:6,name:"tcp",size:16,valueToBytes:lr,bytesToValue:Zr,validate:so},{code:273,name:"udp",size:16,valueToBytes:lr,bytesToValue:Zr,validate:so},{code:33,name:"dccp",size:16,valueToBytes:lr,bytesToValue:Zr,validate:so},{code:41,name:"ip6",size:128,valueToBytes:Hl,bytesToValue:ql,stringToValue:$l,validate:t=>{if(!kl(t))throw new wt(`Invalid IPv6 address "${t}"`)}},{code:42,name:"ip6zone",size:xe},{code:43,name:"ipcidr",size:8,bytesToValue:pc("base10"),valueToBytes:mc("base10")},{code:53,name:"dns",size:xe},{code:54,name:"dns4",size:xe},{code:55,name:"dns6",size:xe},{code:56,name:"dnsaddr",size:xe},{code:132,name:"sctp",size:16,valueToBytes:lr,bytesToValue:Zr,validate:so},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:xe,stringToValue:t=>decodeURIComponent(t),valueToString:t=>encodeURIComponent(t)},{code:421,name:"p2p",aliases:["ipfs"],size:xe,bytesToValue:pc("base58btc"),valueToBytes:t=>t.startsWith("Q")||t.startsWith("1")?mc("base58btc")(t):me.parse(t).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:yc,valueToBytes:Kl},{code:445,name:"onion3",size:296,bytesToValue:yc,valueToBytes:zl},{code:446,name:"garlic64",size:xe},{code:447,name:"garlic32",size:xe},{code:448,name:"tls"},{code:449,name:"sni",size:xe},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:xe,bytesToValue:Wl(xi),valueToBytes:jl},{code:480,name:"http"},{code:481,name:"http-path",size:xe,stringToValue:t=>`/${decodeURIComponent(t)}`,valueToString:t=>encodeURIComponent(t.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:xe}];jg.forEach(t=>{St.addProtocol(t)});function Gl(t){let e=[],r=0;for(;r<t.length;){let n=lc(t,r),o=St.getProtocol(n),s=Xr(n),i=Wg(o,t,r+s),a=0;i>0&&o.size===xe&&(a=Xr(i));let c=s+a+i,f={code:n,name:o.name,bytes:De(t.subarray(r,r+c))};if(i>0){let u=r+s+a,h=t.subarray(u,u+i);f.value=o.bytesToValue?.(h)??G(h)}e.push(f),r+=c}return e}function Xl(t){let e=0,r=[];for(let n of t){if(n.bytes==null){let o=St.getProtocol(n.code),s=Xr(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??re(n.value),a=i.byteLength,o.size===xe&&(c=Xr(a)));let f=new Uint8Array(s+c+a),u=0;hc(n.code,f,u),u+=s,i!=null&&(o.size===xe&&(hc(a,f,u),u+=c),f.set(i,u)),n.bytes=f}r.push(n.bytes),e+=n.bytes.byteLength}return fr(r,e)}function Zl(t){if(t.charAt(0)!=="/")throw new Ae('String multiaddr must start with "/"');let e=[],r="protocol",n="",o="";for(let s=1;s<t.length;s++){let i=t.charAt(s);i!=="/"&&(r==="protocol"?o+=t.charAt(s):n+=t.charAt(s));let a=s===t.length-1;if(i==="/"||a){let c=St.getProtocol(o);if(r==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",r="protocol";continue}else if(a)throw new Ae(`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 Ae(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}e.push(f),n="",o="",r="protocol"}}}if(o!==""&&n!=="")throw new Ae("Incomplete multiaddr");return e}function Yl(t){return`/${t.flatMap(e=>{if(e.value==null)return e.name;let r=St.getProtocol(e.code);if(r==null)throw new Ae(`Unknown protocol code ${e.code}`);return[e.name,r.valueToString?.(e.value)??e.value]}).join("/")}`}function Wg(t,e,r){return t.size==null||t.size===0?0:t.size>0?t.size/8:lc(e,r)}var Gg=Symbol.for("nodejs.util.inspect.custom"),Nc=Symbol.for("@multiformats/multiaddr");function Xg(t){if(t==null&&(t="/"),Jl(t))return t.getComponents();if(t instanceof Uint8Array)return Gl(t);if(typeof t=="string")return t=t.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),t===""&&(t="/"),Zl(t);if(Array.isArray(t))return t;throw new Ae("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Pc=class t{[Nc]=!0;#e;#t;#r;constructor(e="/",r={}){this.#e=Xg(e),r.validate!==!1&&Zg(this)}get bytes(){return this.#r==null&&(this.#r=Xl(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=Yl(this.#e)),this.#t}toJSON(){return this.toString()}getComponents(){return[...this.#e.map(e=>({...e}))]}encapsulate(e){let r=new t(e);return new t([...this.#e,...r.getComponents()],{validate:!1})}decapsulate(e){let r=e.toString(),n=this.toString(),o=n.lastIndexOf(r);if(o<0)throw new bs(`Address ${this.toString()} does not contain subaddress: ${r}`);return new t(n.slice(0,o),{validate:!1})}decapsulateCode(e){let r;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){r=n;break}return new t(this.#e.slice(0,r),{validate:!1})}equals(e){return we(this.bytes,e.bytes)}[Gg](){return`Multiaddr(${this.toString()})`}};function Zg(t){t.getComponents().forEach(e=>{let r=St.getProtocol(e.code);e.value!=null&&r.validate?.(e.value)})}function Jl(t){return!!t?.[Nc]}var oe=t=>({match:e=>{let r=e[0];return r==null||r.code!==t||r.value!=null?!1:e.slice(1)}}),k=(t,e)=>({match:r=>{let n=r[0];return n?.code!==t||n.value==null||e!=null&&n.value!==e?!1:r.slice(1)}}),Ql=t=>({match:e=>t.match(e)===!1?e:!1}),q=t=>({match:e=>{let r=t.match(e);return r===!1?e:r}}),Ie=(...t)=>({match:e=>{let r;for(let n of t){let o=n.match(e);o!==!1&&(r==null||o.length<r.length)&&(r=o)}return r??!1}}),X=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e}});function se(...t){function e(o){if(o==null)return!1;let s=o.getComponents();for(let i of t){let a=i.match(s);if(a===!1)return!1;s=a}return s}function r(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:t,matches:r,exactMatch:n}}var Yg=k(421),Y4=se(Yg),Ls=k(54),Cs=k(55),Is=k(56),Mc=k(53),J4=se(Ls,q(k(421))),Q4=se(Cs,q(k(421))),e5=se(Is,q(k(421))),t5=se(Ie(Mc,Is,Ls,Cs),q(k(421))),ed=X(k(4),q(k(43))),td=X(q(k(42)),k(41),q(k(43))),kc=Ie(ed,td),en=Ie(kc,Mc,Ls,Cs,Is),r5=se(Ie(kc,X(Ie(Mc,Is,Ls,Cs),q(k(421))))),n5=se(ed),o5=se(td),s5=se(kc),Kc=X(en,k(6)),io=X(en,k(273)),i5=se(X(Kc,q(k(421)))),a5=se(io),zc=X(io,oe(460),q(k(421))),_s=X(io,oe(461),q(k(421))),Jg=Ie(zc,_s),c5=se(zc),f5=se(_s),Fc=Ie(en,Kc,io,zc,_s),rd=Ie(X(Fc,oe(477),q(k(421)))),u5=se(rd),nd=Ie(X(Fc,oe(478),q(k(421))),X(Fc,oe(448),q(k(449)),oe(477),q(k(421)))),h5=se(nd),od=X(io,oe(280),q(k(466)),q(k(466)),q(k(421))),l5=se(od),sd=X(_s,oe(465),q(k(466)),q(k(466)),q(k(421))),Ts=se(sd),Bs=Ie(rd,nd,X(Kc,q(k(421))),X(Jg,q(k(421))),X(en,q(k(421))),od,sd,k(421)),d5=se(Bs),Qg=X(q(Bs),oe(290),Ql(oe(281)),q(k(421))),p5=se(Qg),eb=Ie(X(Bs,oe(290),oe(281),q(k(421))),X(Bs,oe(281),q(k(421))),X(oe(281),q(k(421)))),m5=se(eb),tb=X(en,Ie(X(k(6,"80")),X(k(6),oe(480)),oe(480)),q(k(481)),q(k(421))),y5=se(tb),rb=X(en,Ie(X(k(6,"443")),X(k(6,"443"),oe(480)),X(k(6),oe(443)),X(k(6),oe(448),oe(480)),X(oe(448),oe(480)),oe(448),oe(443)),q(k(481)),q(k(421))),g5=se(rb),nb=Ie(X(k(777),q(k(421)))),b5=se(nb),ob=Ie(X(k(400),q(k(421)))),x5=se(ob);function Ds(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var Rs=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},tn=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Rs(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let r=this.head;this.head=r.next=new Rs(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var Hc=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Os(t={}){return sb(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}},t)}function sb(t,e){e=e??{};let r=e.onEnd,n=new tn,o,s,i,a=Ds(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((l,m)=>{s=v=>{s=null,n.push(v);try{l(t(n))}catch(B){m(B)}return o}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Ds()})}},f=l=>s!=null?s(l):(n.push(l),o),u=l=>(n=new tn,s!=null?s({error:l}):(n.push({error:l}),o)),h=l=>{if(i)return o;if(e?.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})},g=l=>i?o:(i=!0,l!=null?u(l):f({done:!0})),p=()=>(n=new tn,g(),{done:!0}),d=l=>(g(l),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:p,throw:d,push:h,end:g,get readableLength(){return n.size},onEmpty:async l=>{let m=l?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let v,B;m!=null&&(v=new Promise((T,D)=>{B=()=>{D(new Hc)},m.addEventListener("abort",B)}));try{await Promise.race([a.promise,v])}finally{B!=null&&m!=null&&m?.removeEventListener("abort",B)}}},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 Vc=class t extends Error{name="TimeoutError";constructor(e,r){super(e,r),Error.captureStackTrace?.(this,t)}},id=t=>t.reason??new DOMException("This operation was aborted.","AbortError");function qc(t,e){let{milliseconds:r,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=e,a,c,u=new Promise((h,g)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(i?.aborted){g(id(i));return}if(i&&(c=()=>{g(id(i))},i.addEventListener("abort",c,{once:!0})),t.then(h,g),r===Number.POSITIVE_INFINITY)return;let p=new Vc;a=s.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(d){g(d)}return}typeof t.cancel=="function"&&t.cancel(),o===!1?h():o instanceof Error?g(o):(p.message=o??`Promise timed out after ${r} milliseconds`,g(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 ib=t=>{let e=t.addEventListener||t.on||t.addListener,r=t.removeEventListener||t.off||t.removeListener;if(!e||!r)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(t),removeListener:r.bind(t)}};function ab(t,e,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=[e].flat(),c=[],{addListener:f,removeListener:u}=ib(t),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))},g=(...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,g)};for(let p of a)f(p,h);for(let p of r.rejectionEvents)a.includes(p)||f(p,g);r.signal&&r.signal.addEventListener("abort",()=>{g(r.signal.reason)},{once:!0}),r.resolveImmediately&&s(c)});if(o.cancel=n,typeof r.timeout=="number"){let s=qc(o,{milliseconds:r.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Vt(t,e,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=ab(t,e,r),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var pr=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"},Us=class extends Error{static name="MaxEarlyStreamsError";name="MaxEarlyStreamsError"},Ps=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function cb(t){return t.reason}async function ze(t,e,r){if(e==null)return t;let n=r?.translateError??cb;if(e.aborted)return t.catch(()=>{}),Promise.reject(n(e));let o;try{return await Promise.race([t,new Promise((s,i)=>{o=()=>{i(n(e))},e.addEventListener("abort",o)})])}finally{o!=null&&e.removeEventListener("abort",o)}}var fb=Math.pow(2,20)*4,ot=class extends Lr{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(e){super(),this.status="open",this.log=e.log,this.direction=e.direction??"outbound",this.inactivityTimeout=e.inactivityTimeout??12e4,this.maxReadBufferLength=e.maxReadBufferLength??fb,this.maxWriteBufferLength=e.maxWriteBufferLength,this.maxMessageSize=e.maxMessageSize,this.readBuffer=new W,this.writeBuffer=new W,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 Ps)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(e){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),ze(this.onDrainPromise.promise,e?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let e=Os(),r=s=>{e.push(s.data)};this.addEventListener("message",r);let n=s=>{e.end(s.error)};this.addEventListener("close",n);let o=()=>{e.end()};this.addEventListener("remoteCloseWrite",o);try{yield*e}finally{this.removeEventListener("message",r),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(e){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new Bt(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",e.byteLength),this.writeBuffer.append(e),this.processSendQueue()}abort(e){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",e),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(e)}catch(r){this.log("failed to send reset to remote - %e",r)}this.dispatchEvent(new Do(e))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Bt("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 Bt("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Bt(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.append(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new Bt(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.prepend(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(e){if(e.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(e),this.dispatchReadBuffer()}}addEventListener(...e){super.addEventListener.apply(this,e),e[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 e=new Lo;this.dispatchEvent(new Ro(e))}onTransportClosed(e){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"),e!=null?this.abort(e):(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 Br))}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 e=!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){e=!1;break}let s=this.writeBuffer.sublist(0,o),i=new W(s);this.writeBuffer.consume(s.byteLength);let a;try{a=this.sendData(s)}catch(c){throw this.writeBuffer.prepend(i),this.abort(c),c}if(e=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!e)break}return e||(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"),e}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 e=this.readBuffer.sublist();this.readBuffer.consume(e.byteLength),this.dispatchEvent(new To(e))}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 xn(`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 xn(`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 Ns=class extends ot{remoteAddr;metricPrefix;metrics;constructor(e){super(e),this.metricPrefix=e.metricPrefix??"",this.metrics=e.metrics,this.remoteAddr=e.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(e){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 Vt(this,"idle",{...e,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 Vt(this,"drain",{...e,rejectionEvents:["close"]})),await this.sendClose(e),this.onTransportClosed())}};function ad(t){return t==null?!1:typeof t.then=="function"&&typeof t.catch=="function"&&typeof t.finally=="function"}var Fs=class extends Lr{streams;protocol;status;log;maConn;streamOptions;earlyStreams;maxEarlyStreams;metrics;constructor(e,r){super(),this.maConn=e,this.protocol=r.protocol,this.streams=[],this.earlyStreams=[],this.status="open",this.log=e.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(e){let r=this.maConn.send(e);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(e){this.status==="closed"||this.status==="closing"||(this.status="closing",await ze(Promise.all([...this.streams].map(async r=>{await r.close(e)})),e?.signal),this.status="closed")}abort(e){this.status!=="closed"&&(this.status="closing",[...this.streams].forEach(r=>{r.abort(e)}),this.status="closed")}onTransportClosed(e){this.status="closing";try{[...this.streams].forEach(r=>{r.onTransportClosed(e)})}catch(r){this.abort(r)}this.status="closed"}async createStream(e){if(this.status!=="open")throw new Bo;let r=this.onCreateStream({...this.streamOptions,...e});return ad(r)&&(r=await r),this.streams.push(r),this.cleanUpStream(r),r}onRemoteStream(e){if(this.streams.push(e),this.cleanUpStream(e),this.listenerCount("stream")===0){this.earlyStreams.push(e),this.earlyStreams.length>this.maxEarlyStreams&&this.abort(new Us(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));return}this.safeDispatchEvent("stream",{detail:e})}cleanUpStream(e){let r=n=>{let o=this.streams.findIndex(s=>s===e);o!==-1&&this.streams.splice(o,1),n.error!=null?n.local?this.metrics?.increment({[`${e.direction}_stream_reset`]:!0}):this.metrics?.increment({[`${e.direction}_stream_abort`]:!0}):this.metrics?.increment({[`${e.direction}_stream_end`]:!0})};e.addEventListener("close",r),this.metrics?.increment({[`${e.direction}_stream`]:!0})}addEventListener(...e){super.addEventListener.apply(this,e),e[0]==="stream"&&this.earlyStreams.length>0&&queueMicrotask(()=>{this.earlyStreams.forEach(r=>{this.safeDispatchEvent("stream",{detail:r})}),this.earlyStreams=[]})}};var Ms=class extends ot{id;protocol;constructor(e){super(e),this.id=e.id,this.protocol=e.protocol??""}async close(e){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 Vt(this,"idle",{...e,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 Vt(this,"drain",{...e,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(e),this.writeStatus="closed",this.log("closed writable end gracefully"),this.remoteWriteStatus==="closed"&&this.onTransportClosed())}async closeRead(e){this.readStatus==="closing"||this.readStatus==="closed"||(this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.readStatus="closing",await this.sendCloseRead(e),this.readStatus="closed",this.log("closed readable end gracefully"))}};function cd(t=0){return new Uint8Array(t)}var ub=Math.pow(2,7),hb=Math.pow(2,14),lb=Math.pow(2,21),$c=Math.pow(2,28),jc=Math.pow(2,35),Wc=Math.pow(2,42),Gc=Math.pow(2,49),Z=128,_e=127;function mr(t){if(t<ub)return 1;if(t<hb)return 2;if(t<lb)return 3;if(t<$c)return 4;if(t<jc)return 5;if(t<Wc)return 6;if(t<Gc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function db(t,e,r=0){switch(mr(t)){case 8:e[r++]=t&255|Z,t/=128;case 7:e[r++]=t&255|Z,t/=128;case 6:e[r++]=t&255|Z,t/=128;case 5:e[r++]=t&255|Z,t/=128;case 4:e[r++]=t&255|Z,t>>>=7;case 3:e[r++]=t&255|Z,t>>>=7;case 2:e[r++]=t&255|Z,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function pb(t,e,r=0){switch(mr(t)){case 8:e.set(r++,t&255|Z),t/=128;case 7:e.set(r++,t&255|Z),t/=128;case 6:e.set(r++,t&255|Z),t/=128;case 5:e.set(r++,t&255|Z),t/=128;case 4:e.set(r++,t&255|Z),t>>>=7;case 3:e.set(r++,t&255|Z),t>>>=7;case 2:e.set(r++,t&255|Z),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function mb(t,e){let r=t[e],n=0;if(n+=r&_e,r<Z||(r=t[e+1],n+=(r&_e)<<7,r<Z)||(r=t[e+2],n+=(r&_e)<<14,r<Z)||(r=t[e+3],n+=(r&_e)<<21,r<Z)||(r=t[e+4],n+=(r&_e)*$c,r<Z)||(r=t[e+5],n+=(r&_e)*jc,r<Z)||(r=t[e+6],n+=(r&_e)*Wc,r<Z)||(r=t[e+7],n+=(r&_e)*Gc,r<Z))return n;throw new RangeError("Could not decode varint")}function yb(t,e){let r=t.get(e),n=0;if(n+=r&_e,r<Z||(r=t.get(e+1),n+=(r&_e)<<7,r<Z)||(r=t.get(e+2),n+=(r&_e)<<14,r<Z)||(r=t.get(e+3),n+=(r&_e)<<21,r<Z)||(r=t.get(e+4),n+=(r&_e)*$c,r<Z)||(r=t.get(e+5),n+=(r&_e)*jc,r<Z)||(r=t.get(e+6),n+=(r&_e)*Wc,r<Z)||(r=t.get(e+7),n+=(r&_e)*Gc,r<Z))return n;throw new RangeError("Could not decode varint")}function fd(t,e,r=0){return e==null&&(e=cd(mr(t))),e instanceof Uint8Array?db(t,e,r):pb(t,e,r)}function ks(t,e=0){return t instanceof Uint8Array?mb(t,e):yb(t,e)}var gb=4194304,Ks=class extends Error{static name="UnwrappedError";name="UnwrappedError"},ao=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Zc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Yc=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function bb(t){return typeof t?.closeRead=="function"}function xb(t){return typeof t?.close=="function"}function Xc(t){return bb(t)?t.remoteWriteStatus!=="writable"&&t.readBufferLength===0:xb(t)?t.status!=="open":!1}function wb(t){return t?.addEventListener!=null&&t?.removeEventListener!=null&&t?.send!=null&&t?.push!=null&&t?.log!=null}function Eb(t,e){let r=e?.maxBufferSize??gb,n=new W,o,s=!1;if(!wb(t))throw new ee("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()};t.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};t.addEventListener("close",a);let c=()=>{o?.resolve()};t.addEventListener("remoteCloseWrite",c);let f={readBuffer:n,async read(u){if(s===!0)throw new Ks("Stream was unwrapped");if(Xc(t)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw t.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new pr(`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 ze(o.promise,u?.signal),Xc(t)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let g=u?.bytes??n.byteLength;if(n.byteLength<g){if(Xc(t))throw t.log.error("closed while reading %d/%d bytes",n.byteLength,g),new pr(`Unexpected EOF - stream closed while reading ${n.byteLength}/${g} bytes`);return f.read(u)}let p=n.sublist(0,g);return n.consume(g),p},async write(u,h){if(s===!0)throw new Ks("Stream was unwrapped");t.send(u)||await Vt(t,"drain",{signal:h?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,t.removeEventListener("message",i),t.removeEventListener("close",a),t.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(t.log("stream unwrapped with %d unread bytes",n.byteLength),t.unshift(n))),t}};return f}function Jc(t,e={}){let r=Eb(t,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=mr(e.maxDataLength));let n=e?.lengthDecoder??ks,o=e?.lengthEncoder??fd;return{async read(i){let a=-1,c=new W;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 ao("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Yc(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Zc(`Message length too long - ${a} > ${e.maxDataLength}`);let f=await r.read({...i,bytes:a});if(f==null)throw t.log.error("tried to read %d bytes but the stream closed",a),new pr(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(f.byteLength!==a)throw t.log.error("read %d/%d bytes before the stream closed",f.byteLength,a),new pr(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await r.write(new W(o(i.byteLength),i),a)},async writeV(i,a){let c=new W(...i.flatMap(f=>[o(f.byteLength),f]));await r.write(c,a)},unwrap(){return r.unwrap()}}}var Sb=1024*1024*4,Ab=1024*1024*4,zs=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(e={}){this.buffer=new W,this.maxBufferSize=e.maxBufferSize??Sb,this.maxDataLength=e.maxDataLength??Ab,this.lengthDecoder=e.lengthDecoder??ks,this.encodingLength=e.encodingLength??mr}*decode(e){if(this.buffer.append(e),this.buffer.byteLength>this.maxBufferSize)throw new ee(`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 ao("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 st(t=0){return new Uint8Array(t)}function Me(t=0){return new Uint8Array(t)}var rn=!!globalThis.process?.env?.DUMP_SESSION_KEYS,Qc=16;function vb(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function Hs(t){if(typeof t!="boolean")throw new TypeError(`boolean expected, not ${t}`)}function nn(t){if(typeof t!="number")throw new TypeError("number expected, got "+typeof t);if(!Number.isSafeInteger(t)||t<0)throw new RangeError("positive integer expected, got "+t)}function ge(t,e,r=""){let n=vb(t),o=t?.length,s=e!==void 0;if(!n||s&&o!==e){let i=r&&`"${r}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof t}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return t}function ef(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function hd(t,e,r=!1){ge(t,void 0,"output");let n=e.outputLen;if(t.length<n)throw new RangeError("digestInto() expects output buffer of length at least "+n);if(r&&!on(t))throw new Error("invalid output, must be aligned")}function it(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Ze(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Bb(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}var yr=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,Lb=t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var Cb=t=>{for(let e=0;e<t.length;e++)t[e]=Lb(t[e]);return t},At=yr?t=>t:Cb;function ld(t,e){if(e==null||typeof e!="object")throw new Error("options must be defined");return Object.assign(t,e)}function dd(t,e){if(t.length!==e.length)return!1;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return r===0}function pd(t,e,r){let n=e,o=r||(()=>[]),s=(a,c)=>n(c,...o(a)).update(a).digest(),i=n(new Uint8Array(t),...o(new Uint8Array(0)));return s.outputLen=i.outputLen,s.blockLen=i.blockLen,s.create=(a,...c)=>n(a,...c),s}var md=(t,e)=>{function r(n,...o){if(ge(n,void 0,"key"),t.nonceLength!==void 0){let u=o[0];ge(u,t.varSizeNonce?void 0:t.nonceLength,"nonce")}let s=t.tagLength;s&&o[1]!==void 0&&ge(o[1],void 0,"AAD");let i=e(n,...o),a=(u,h)=>{if(h!==void 0){if(u!==2)throw new Error("cipher output not supported");ge(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,ge(u),a(i.encrypt.length,h),i.encrypt(u,h)},decrypt(u,h){if(ge(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,t),r};function co(t,e,r=!0){if(e===void 0)return new Uint8Array(t);if(ge(e,void 0,"output"),e.length!==t)throw new Error('"output" expected Uint8Array of length '+t+", got: "+e.length);if(r&&!on(e))throw new Error("invalid output, must be aligned");return e}function yd(t,e,r){nn(t),nn(e),Hs(r);let n=new Uint8Array(16),o=Bb(n);return o.setBigUint64(0,BigInt(e),r),o.setBigUint64(8,BigInt(t),r),n}function on(t){return t.byteOffset%4===0}function sn(t){return Uint8Array.from(ge(t))}var bd=t=>Uint8Array.from(t.split(""),e=>e.charCodeAt(0)),Ib=At(it(bd("expand 16-byte k"))),_b=At(it(bd("expand 32-byte k")));function $(t,e){return t<<e|t>>>32-e}var fo=64,Tb=16,tf=2**32-1,gd=Uint32Array.of();function Db(t,e,r,n,o,s,i,a){let c=o.length,f=new Uint8Array(fo),u=it(f),h=yr&&on(o)&&on(s),g=h?it(o):gd,p=h?it(s):gd;if(!yr){for(let d=0;d<c;i++){if(t(e,r,n,u,i,a),At(u),i>=tf)throw new Error("arx: counter overflow");let b=Math.min(fo,c-d);for(let l=0,m;l<b;l++)m=d+l,s[m]=o[m]^f[l];d+=b}return}for(let d=0;d<c;i++){if(t(e,r,n,u,i,a),i>=tf)throw new Error("arx: counter overflow");let b=Math.min(fo,c-d);if(h&&b===fo){let l=d/4;if(d%4!==0)throw new Error("arx: invalid block position");for(let m=0,v;m<Tb;m++)v=l+m,p[v]=g[v]^u[m];d+=fo;continue}for(let l=0,m;l<b;l++)m=d+l,s[m]=o[m]^f[l];d+=b}}function xd(t,e){let{allowShortKeys:r,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=ld({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof t!="function")throw new Error("core must be a function");return nn(o),nn(i),Hs(s),Hs(r),(a,c,f,u,h=0)=>{ge(a,void 0,"key"),ge(c,void 0,"nonce"),ge(f,void 0,"data");let g=f.length;if(u=co(g,u,!1),nn(h),h<0||h>=tf)throw new Error("arx: counter overflow");let p=[],d=a.length,b,l;if(d===32)p.push(b=sn(a)),l=_b;else if(d===16&&r)b=new Uint8Array(32),b.set(a),b.set(a,16),l=Ib,p.push(b);else throw ge(a,32,"arx key"),new Error("invalid key size");(!yr||!on(c))&&p.push(c=sn(c));let m=it(b);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let T=c.subarray(0,16);if(yr)n(l,m,it(T),m);else{let D=At(Uint32Array.from(l));n(D,m,it(T),m),Ze(D),At(m)}c=c.subarray(16)}else yr||At(m);let v=16-o;if(v!==c.length)throw new Error(`arx: nonce must be ${v} or 16 bytes`);if(v!==12){let T=new Uint8Array(12);T.set(c,s?0:12-c.length),c=T,p.push(c)}let B=At(it(c));try{return Db(t,l,m,B,f,u,h,i),u}finally{Ze(...p)}}}function ve(t,e){return t[e++]&255|(t[e++]&255)<<8}var rf=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(e){e=sn(ge(e,32,"key"));let r=ve(e,0),n=ve(e,2),o=ve(e,4),s=ve(e,6),i=ve(e,8),a=ve(e,10),c=ve(e,12),f=ve(e,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]=ve(e,16+2*u)}process(e,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],g=i[5],p=i[6],d=i[7],b=i[8],l=i[9],m=ve(e,r+0),v=ve(e,r+2),B=ve(e,r+4),T=ve(e,r+6),D=ve(e,r+8),U=ve(e,r+10),_=ve(e,r+12),C=ve(e,r+14),P=s[0]+(m&8191),M=s[1]+((m>>>13|v<<3)&8191),N=s[2]+((v>>>10|B<<6)&8191),y=s[3]+((B>>>7|T<<9)&8191),A=s[4]+((T>>>4|D<<12)&8191),S=s[5]+(D>>>1&8191),w=s[6]+((D>>>14|U<<2)&8191),x=s[7]+((U>>>11|_<<5)&8191),L=s[8]+((_>>>8|C<<8)&8191),I=s[9]+(C>>>5|o),E=0,R=E+P*a+M*(5*l)+N*(5*b)+y*(5*d)+A*(5*p);E=R>>>13,R&=8191,R+=S*(5*g)+w*(5*h)+x*(5*u)+L*(5*f)+I*(5*c),E+=R>>>13,R&=8191;let O=E+P*c+M*a+N*(5*l)+y*(5*b)+A*(5*d);E=O>>>13,O&=8191,O+=S*(5*p)+w*(5*g)+x*(5*h)+L*(5*u)+I*(5*f),E+=O>>>13,O&=8191;let F=E+P*f+M*c+N*a+y*(5*l)+A*(5*b);E=F>>>13,F&=8191,F+=S*(5*d)+w*(5*p)+x*(5*g)+L*(5*h)+I*(5*u),E+=F>>>13,F&=8191;let z=E+P*u+M*f+N*c+y*a+A*(5*l);E=z>>>13,z&=8191,z+=S*(5*b)+w*(5*d)+x*(5*p)+L*(5*g)+I*(5*h),E+=z>>>13,z&=8191;let K=E+P*h+M*u+N*f+y*c+A*a;E=K>>>13,K&=8191,K+=S*(5*l)+w*(5*b)+x*(5*d)+L*(5*p)+I*(5*g),E+=K>>>13,K&=8191;let Y=E+P*g+M*h+N*u+y*f+A*c;E=Y>>>13,Y&=8191,Y+=S*a+w*(5*l)+x*(5*b)+L*(5*d)+I*(5*p),E+=Y>>>13,Y&=8191;let J=E+P*p+M*g+N*h+y*u+A*f;E=J>>>13,J&=8191,J+=S*c+w*a+x*(5*l)+L*(5*b)+I*(5*d),E+=J>>>13,J&=8191;let Q=E+P*d+M*p+N*g+y*h+A*u;E=Q>>>13,Q&=8191,Q+=S*f+w*c+x*a+L*(5*l)+I*(5*b),E+=Q>>>13,Q&=8191;let j=E+P*b+M*d+N*p+y*g+A*h;E=j>>>13,j&=8191,j+=S*u+w*f+x*c+L*a+I*(5*l),E+=j>>>13,j&=8191;let ie=E+P*l+M*b+N*d+y*p+A*g;E=ie>>>13,ie&=8191,ie+=S*h+w*u+x*f+L*c+I*a,E+=ie>>>13,ie&=8191,E=(E<<2)+E|0,E=E+R|0,R=E&8191,E=E>>>13,O+=E,s[0]=R,s[1]=O,s[2]=F,s[3]=z,s[4]=K,s[5]=Y,s[6]=J,s[7]=Q,s[8]=j,s[9]=ie}finalize(){let{h:e,pad:r}=this,n=new Uint16Array(10),o=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=o,o=e[a]>>>13,e[a]&=8191;e[0]+=o*5,o=e[0]>>>13,e[0]&=8191,e[1]+=o,o=e[1]>>>13,e[1]&=8191,e[2]+=o,n[0]=e[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=e[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++)e[a]=e[a]&s|n[a];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let i=e[0]+r[0];e[0]=i&65535;for(let a=1;a<8;a++)i=(e[a]+r[a]|0)+(i>>>16)|0,e[a]=i&65535;Ze(n)}update(e){ef(this),ge(e),e=sn(e);let{buffer:r,blockLen:n}=this,o=e.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(e,s);continue}r.set(e.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,Ze(this.h,this.r,this.buffer,this.pad)}digestInto(e){ef(this),hd(e,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++)e[s++]=n[i]>>>0,e[s++]=n[i]>>>8}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}},wd=pd(32,t=>new rf(t));function Rb(t,e,r,n,o,s=20){let i=t[0],a=t[1],c=t[2],f=t[3],u=e[0],h=e[1],g=e[2],p=e[3],d=e[4],b=e[5],l=e[6],m=e[7],v=o,B=r[0],T=r[1],D=r[2],U=i,_=a,C=c,P=f,M=u,N=h,y=g,A=p,S=d,w=b,x=l,L=m,I=v,E=B,R=T,O=D;for(let z=0;z<s;z+=2)U=U+M|0,I=$(I^U,16),S=S+I|0,M=$(M^S,12),U=U+M|0,I=$(I^U,8),S=S+I|0,M=$(M^S,7),_=_+N|0,E=$(E^_,16),w=w+E|0,N=$(N^w,12),_=_+N|0,E=$(E^_,8),w=w+E|0,N=$(N^w,7),C=C+y|0,R=$(R^C,16),x=x+R|0,y=$(y^x,12),C=C+y|0,R=$(R^C,8),x=x+R|0,y=$(y^x,7),P=P+A|0,O=$(O^P,16),L=L+O|0,A=$(A^L,12),P=P+A|0,O=$(O^P,8),L=L+O|0,A=$(A^L,7),U=U+N|0,O=$(O^U,16),x=x+O|0,N=$(N^x,12),U=U+N|0,O=$(O^U,8),x=x+O|0,N=$(N^x,7),_=_+y|0,I=$(I^_,16),L=L+I|0,y=$(y^L,12),_=_+y|0,I=$(I^_,8),L=L+I|0,y=$(y^L,7),C=C+A|0,E=$(E^C,16),S=S+E|0,A=$(A^S,12),C=C+A|0,E=$(E^C,8),S=S+E|0,A=$(A^S,7),P=P+M|0,R=$(R^P,16),w=w+R|0,M=$(M^w,12),P=P+M|0,R=$(R^P,8),w=w+R|0,M=$(M^w,7);let F=0;n[F++]=i+U|0,n[F++]=a+_|0,n[F++]=c+C|0,n[F++]=f+P|0,n[F++]=u+M|0,n[F++]=h+N|0,n[F++]=g+y|0,n[F++]=p+A|0,n[F++]=d+S|0,n[F++]=b+w|0,n[F++]=l+x|0,n[F++]=m+L|0,n[F++]=v+I|0,n[F++]=B+E|0,n[F++]=T+R|0,n[F++]=D+O|0}var Ob=xd(Rb,{counterRight:!1,counterLength:4,allowShortKeys:!1});var Ub=new Uint8Array(16),Ed=(t,e)=>{t.update(e);let r=e.length%16;r&&t.update(Ub.subarray(r))},Pb=new Uint8Array(32);function Sd(t,e,r,n,o){o!==void 0&&ge(o,void 0,"AAD");let s=t(e,r,Pb),i=yd(n.length,o?o.length:0,!0),a=wd.create(s);o&&Ed(a,o),Ed(a,n),a.update(i);let c=a.digest();return Ze(s,i),c}var Nb=t=>(e,r,n)=>({encrypt(s,i){let a=s.length;i=co(a+16,i,!1),i.set(s);let c=i.subarray(0,-16);t(e,r,c,c,1);let f=Sd(t,e,r,c,n);return i.set(f,a),Ze(f),i},decrypt(s,i){i=co(s.length-16,i,!1);let a=s.subarray(0,-16),c=s.subarray(-16),f=Sd(t,e,r,a,n);if(!dd(c,f))throw Ze(f),new Error("invalid tag");return i.set(s.subarray(0,-16)),t(e,r,i,i,1),Ze(f),i}}),nf=md({blockSize:64,nonceLength:12,tagLength:16},Nb(Ob));function vd(t,e,r){return Qt(t),r===void 0&&(r=new Uint8Array(t.outputLen)),Jn(t,r,e)}var of=Uint8Array.of(0),Ad=Uint8Array.of();function Bd(t,e,r,n=32){Qt(t),Je(n,"length"),Be(e,void 0,"prk");let o=t.outputLen;if(e.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=Ad:Be(r,void 0,"info");let i=new Uint8Array(s*o),a=Jn.create(t,e),c=a._cloneInto(),f=new Uint8Array(a.outputLen);for(let u=0;u<s;u++)of[0]=u+1,c.update(u===0?Ad:f).update(r).update(of).digestInto(f),i.set(f,o*u),a._cloneInto(c);return a.destroy(),c.destroy(),qe(f,of),i.slice(0,n)}var sf={hashSHA256(t){return et(t.subarray())},getHKDF(t,e){let r=vd(et,e,t),o=Bd(et,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 t=kn.utils.randomSecretKey();return{publicKey:kn.getPublicKey(t),privateKey:t}},generateX25519KeyPairFromSeed(t){return{publicKey:kn.getPublicKey(t),privateKey:t}},generateX25519SharedKey(t,e){return kn.getSharedSecret(t.subarray(),e.subarray())},chaCha20Poly1305Encrypt(t,e,r,n){return nf(n,e,r).encrypt(t.subarray())},chaCha20Poly1305Decrypt(t,e,r,n,o){return nf(n,e,r).decrypt(t.subarray(),o)}};var Ld=sf;function Cd(t){return{generateKeypair:t.generateX25519KeyPair,dh:(e,r)=>t.generateX25519SharedKey(e.privateKey,r).subarray(0,32),encrypt:t.chaCha20Poly1305Encrypt,decrypt:t.chaCha20Poly1305Decrypt,hash:t.hashSHA256,hkdf:t.getHKDF}}var an=t=>{let e=Me(2);return e[0]=t>>8,e[1]=t,e};an.bytes=2;var cn=t=>{if(t.length<2)throw RangeError("Could not decode int16BE");if(t instanceof Uint8Array){let e=0;return e+=t[0]<<8,e+=t[1],e}return t.getUint16(0)};cn.bytes=2;function Id(t){return{xxHandshakeSuccesses:t.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:t.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:t.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:t.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:t.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var hf={};H(hf,{base10:()=>Vb});var Q3=new Uint8Array(0);function _d(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function vt(t){if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")}function Td(t){return new TextEncoder().encode(t)}function Dd(t){return new TextDecoder().decode(t)}function Fb(t,e){if(t.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<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,c=t.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,m=0,v=d.length;m!==v&&d[m]===0;)m++,b++;for(var B=(v-m)*u+1>>>0,T=new Uint8Array(B);m!==v;){for(var D=d[m],U=0,_=B-1;(D!==0||U<l)&&_!==-1;_--,U++)D+=256*T[_]>>>0,T[_]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,m++}for(var C=B-l;C!==B&&T[C]===0;)C++;for(var P=c.repeat(b);C<B;++C)P+=t.charAt(T[C]);return P}function g(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,m=0;d[b]===c;)l++,b++;for(var v=(d.length-b)*f+1>>>0,B=new Uint8Array(v);d[b];){var T=r[d.charCodeAt(b)];if(T===255)return;for(var D=0,U=v-1;(T!==0||D<m)&&U!==-1;U--,D++)T+=a*B[U]>>>0,B[U]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=D,b++}if(d[b]!==" "){for(var _=v-m;_!==v&&B[_]===0;)_++;for(var C=new Uint8Array(l+(v-_)),P=l;_!==v;)C[P++]=B[_++];return C}}}function p(d){var b=g(d);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:g,decode:p}}var Mb=Fb,kb=Mb,Od=kb;var af=class{name;prefix;baseEncode;constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},cf=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){this.name=e,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(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Ud(this,e)}},ff=class{decoders;constructor(e){this.decoders=e}or(e){return Ud(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Ud(t,e){return new ff({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var uf=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new af(e,r,n),this.decoder=new cf(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function fn({name:t,prefix:e,encode:r,decode:n}){return new uf(t,e,r,n)}function qt({name:t,prefix:e,alphabet:r}){let{encode:n,decode:o}=Od(r,t);return fn({prefix:e,name:t,encode:n,decode:s=>vt(o(s))})}function Kb(t,e,r,n){let o=t.length;for(;t[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=e[t[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 zb(t,e,r){let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function Hb(t){let e={};for(let r=0;r<t.length;++r)e[t[r]]=r;return e}function pe({name:t,prefix:e,bitsPerChar:r,alphabet:n}){let o=Hb(n);return fn({prefix:e,name:t,encode(s){return zb(s,n,r)},decode(s){return Kb(s,o,r,t)}})}var Vb=qt({prefix:"9",name:"base10",alphabet:"0123456789"});var lf={};H(lf,{base16:()=>qb,base16upper:()=>$b});var qb=pe({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),$b=pe({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var df={};H(df,{base2:()=>jb});var jb=pe({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var pf={};H(pf,{base256emoji:()=>Yb});var Pd=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}"),Wb=Pd.reduce((t,e,r)=>(t[r]=e,t),[]),Gb=Pd.reduce((t,e,r)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return t[n]=r,t},[]);function Xb(t){return t.reduce((e,r)=>(e+=Wb[r],e),"")}function Zb(t){let e=[];for(let r of t){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=Gb[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);e.push(o)}return new Uint8Array(e)}var Yb=fn({prefix:"\u{1F680}",name:"base256emoji",encode:Xb,decode:Zb});var mf={};H(mf,{base32:()=>un,base32hex:()=>tx,base32hexpad:()=>nx,base32hexpadupper:()=>ox,base32hexupper:()=>rx,base32pad:()=>Qb,base32padupper:()=>ex,base32upper:()=>Jb,base32z:()=>sx});var un=pe({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Jb=pe({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Qb=pe({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),ex=pe({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),tx=pe({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),rx=pe({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),nx=pe({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),ox=pe({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),sx=pe({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var yf={};H(yf,{base36:()=>uo,base36upper:()=>ix});var uo=qt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),ix=qt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var gf={};H(gf,{base58btc:()=>at,base58flickr:()=>ax});var at=qt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),ax=qt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var bf={};H(bf,{base64:()=>cx,base64pad:()=>fx,base64url:()=>ux,base64urlpad:()=>hx});var cx=pe({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),fx=pe({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),ux=pe({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),hx=pe({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var xf={};H(xf,{base8:()=>lx});var lx=pe({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var wf={};H(wf,{identity:()=>dx});var dx=fn({prefix:"\0",name:"identity",encode:t=>Dd(t),decode:t=>Td(t)});var mA=new TextEncoder,yA=new TextDecoder;var Sf={};H(Sf,{identity:()=>Nx});var yx=Md,Nd=128,gx=127,bx=~gx,xx=Math.pow(2,31);function Md(t,e,r){e=e||[],r=r||0;for(var n=r;t>=xx;)e[r++]=t&255|Nd,t/=128;for(;t&bx;)e[r++]=t&255|Nd,t>>>=7;return e[r]=t|0,Md.bytes=r-n+1,e}var wx=Ef,Ex=128,Fd=127;function Ef(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw Ef.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&Fd)<<o:(i&Fd)*Math.pow(2,o),o+=7}while(i>=Ex);return Ef.bytes=s-n,r}var Sx=Math.pow(2,7),Ax=Math.pow(2,14),vx=Math.pow(2,21),Bx=Math.pow(2,28),Lx=Math.pow(2,35),Cx=Math.pow(2,42),Ix=Math.pow(2,49),_x=Math.pow(2,56),Tx=Math.pow(2,63),Dx=function(t){return t<Sx?1:t<Ax?2:t<vx?3:t<Bx?4:t<Lx?5:t<Cx?6:t<Ix?7:t<_x?8:t<Tx?9:10},Rx={encode:yx,decode:wx,encodingLength:Dx},Ox=Rx,ho=Ox;function lo(t,e=0){return[ho.decode(t,e),ho.decode.bytes]}function hn(t,e,r=0){return ho.encode(t,e,r),e}function ln(t){return ho.encodingLength(t)}function pn(t,e){let r=e.byteLength,n=ln(t),o=n+ln(r),s=new Uint8Array(o+r);return hn(t,s,0),hn(r,s,n),s.set(e,o),new dn(t,r,e,s)}function kd(t){let e=vt(t),[r,n]=lo(e),[o,s]=lo(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new dn(r,o,i,e)}function Kd(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&_d(t.bytes,r.bytes)}}var dn=class{code;size;digest;bytes;constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var zd=0,Ux="identity",Hd=vt;function Px(t,e){if(e?.truncate!=null&&e.truncate!==t.byteLength){if(e.truncate<0||e.truncate>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,e.truncate)}return pn(zd,Hd(t))}var Nx={code:zd,name:Ux,encode:Hd,digest:Px};var Bf={};H(Bf,{sha256:()=>Mx,sha512:()=>kx});var Fx=20;function vf({name:t,code:e,encode:r,minDigestLength:n,maxDigestLength:o}){return new Af(t,e,r,n,o)}var Af=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,r,n,o,s){this.name=e,this.code=r,this.encode=n,this.minDigestLength=o??Fx,this.maxDigestLength=s}digest(e,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(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?Vd(n,this.code,r?.truncate):n.then(o=>Vd(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function Vd(t,e,r){if(r!=null&&r!==t.byteLength){if(r>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,r)}return pn(e,t)}function $d(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var Mx=vf({name:"sha2-256",code:18,encode:$d("SHA-256")}),kx=vf({name:"sha2-512",code:19,encode:$d("SHA-512")});function jd(t,e){let{bytes:r,version:n}=t;return n===0?zx(r,Lf(t),e??at.encoder):Hx(r,Lf(t),e??un.encoder)}var Wd=new WeakMap;function Lf(t){let e=Wd.get(t);if(e==null){let r=new Map;return Wd.set(t,r),r}return e}var qs=class t{code;version;multihash;bytes;"/";constructor(e,r,n,o){this.code=r,this.version=e,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:e,multihash:r}=this;if(e!==mo)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Vx)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.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:e,digest:r}=this.multihash,n=pn(e,r);return t.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(e){return t.equals(this,e)}static equals(e,r){let n=r;return n!=null&&e.code===n.code&&e.version===n.version&&Kd(e.multihash,n.multihash)}toString(e){return jd(this,e)}toJSON(){return{"/":jd(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new t(n,o,s,i??Gd(n,o,s.bytes))}else if(r[qx]===!0){let{version:n,multihash:o,code:s}=r,i=kd(o);return t.create(n,s,i)}else return null}static create(e,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(e){case 0:{if(r!==mo)throw new Error(`Version 0 CID must use dag-pb (code: ${mo}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=Gd(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,mo,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=vt(e.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 dn(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(i):t.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[h,g]=lo(e.subarray(r));return r+=g,h},o=n(),s=mo;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(e,r){let[n,o]=Kx(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Lf(s).set(n,e),s}};function Kx(t,e){switch(t[0]){case"Q":{let r=e??at;return[at.prefix,r.decode(`${at.prefix}${t}`)]}case at.prefix:{let r=e??at;return[at.prefix,r.decode(t)]}case un.prefix:{let r=e??un;return[un.prefix,r.decode(t)]}case uo.prefix:{let r=e??uo;return[uo.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function zx(t,e,r){let{prefix:n}=r;if(n!==at.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o}function Hx(t,e,r){let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o}var mo=112,Vx=18;function Gd(t,e,r){let n=ln(t),o=n+ln(e),s=new Uint8Array(o+r.byteLength);return hn(t,s,0),hn(e,s,n),s.set(r,o),s}var qx=Symbol.for("@ipld/js-cid/CID");var Cf={...wf,...df,...xf,...hf,...lf,...mf,...yf,...gf,...bf,...pf},MA={...Bf,...Sf};function Zd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Xd=Zd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),If=Zd("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Me(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),$x={utf8:Xd,"utf-8":Xd,hex:Cf.base16,latin1:If,ascii:If,binary:If,...Cf},$s=$x;function ct(t,e="utf8"){let r=$s[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.encoder.encode(t).substring(1)}function _f(t,e){!e.enabled||!rn||(t?(e(`LOCAL_STATIC_PUBLIC_KEY ${ct(t.publicKey,"hex")}`),e(`LOCAL_STATIC_PRIVATE_KEY ${ct(t.privateKey,"hex")}`)):e("Missing local static keys."))}function Tf(t,e){!e.enabled||!rn||(t?(e(`LOCAL_PUBLIC_EPHEMERAL_KEY ${ct(t.publicKey,"hex")}`),e(`LOCAL_PRIVATE_EPHEMERAL_KEY ${ct(t.privateKey,"hex")}`)):e("Missing local ephemeral keys."))}function Yd(t,e){!e.enabled||!rn||e(t?`REMOTE_STATIC_PUBLIC_KEY ${ct(t.subarray(),"hex")}`:"Missing remote static public key.")}function Df(t,e){!e.enabled||!rn||e(t?`REMOTE_EPHEMERAL_PUBLIC_KEY ${ct(t.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function Rf(t,e,r){!r.enabled||!rn||(r(`CIPHER_STATE_1 ${t.n.getUint64()} ${t.k&&ct(t.k,"hex")}`),r(`CIPHER_STATE_2 ${e.n.getUint64()} ${e.k&&ct(e.k,"hex")}`))}function Of(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=Me(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return r}function gr(t,e="utf8"){let r=$s[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}var mn=class t extends Error{code;constructor(e="Invalid crypto exchange"){super(e),this.code=t.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var Wx=0,Gx=4294967295,Xx="Cipherstate has reached maximum n, a new handshake must be performed",js=class{n;bytes;view;constructor(e=Wx){this.n=e,this.bytes=st(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,e,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>Gx)throw new Error(Xx)}};var br=st(0),yn=class{k;n;crypto;constructor(e,r=void 0,n=0){this.crypto=e,this.k=r,this.n=new js(n)}hasKey(){return!!this.k}encryptWithAd(e,r){if(!this.hasKey())return r;this.n.assertValue();let n=this.crypto.encrypt(r,this.n.getBytes(),e,this.k);return this.n.increment(),n}decryptWithAd(e,r,n){if(!this.hasKey())return r;this.n.assertValue();let o=this.crypto.decrypt(r,this.n.getBytes(),e,this.k,n);return this.n.increment(),o}},Uf=class{cs;ck;h;crypto;constructor(e,r){this.crypto=e;let n=gr(r,"utf-8");this.h=Zx(e,n),this.ck=this.h,this.cs=new yn(e)}mixKey(e){let[r,n]=this.crypto.hkdf(this.ck,e);this.ck=r,this.cs=new yn(this.crypto,n)}mixHash(e){this.h=this.crypto.hash(new W(this.h,e))}encryptAndHash(e){let r=this.cs.encryptWithAd(this.h,e);return this.mixHash(r),r}decryptAndHash(e){let r=this.cs.decryptWithAd(this.h,e);return this.mixHash(e),r}split(){let[e,r]=this.crypto.hkdf(this.ck,br);return[new yn(this.crypto,e),new yn(this.crypto,r)]}},Pf=class{ss;s;e;rs;re;initiator;crypto;constructor(e){let{crypto:r,protocolName:n,prologue:o,initiator:s,s:i,e:a,rs:c,re:f}=e;this.crypto=r,this.ss=new Uf(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 e=this.crypto.generateKeypair();return this.ss.mixHash(e.publicKey),this.e=e,e.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(e,r=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(e.byteLength<r+32)throw new Error("message is not long enough");this.re=e.sublist(r,r+32),this.ss.mixHash(this.re)}readS(e,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(e.byteLength<r+n)throw new Error("message is not long enough");let o=e.sublist(r,r+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},yo=class extends Pf{writeMessageA(e){return new W(this.writeE(),this.ss.encryptAndHash(e))}writeMessageB(e){let r=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new W(r,n,this.ss.encryptAndHash(e))}writeMessageC(e){let r=this.writeS();return this.writeSE(),new W(r,this.ss.encryptAndHash(e))}readMessageA(e){try{return this.readE(e),this.ss.decryptAndHash(e.sublist(32))}catch(r){throw new mn(`handshake stage 0 validation fail: ${r.message}`)}}readMessageB(e){try{this.readE(e),this.readEE();let r=this.readS(e,32);return this.readES(),this.ss.decryptAndHash(e.sublist(32+r))}catch(r){throw new mn(`handshake stage 1 validation fail: ${r.message}`)}}readMessageC(e){try{let r=this.readS(e);return this.readSE(),this.ss.decryptAndHash(e.sublist(r))}catch(r){throw new mn(`handshake stage 2 validation fail: ${r.message}`)}}};function Zx(t,e){if(e.length<=32){let r=st(32);return r.set(e),r}else return t.hash(e)}var Yx=Math.pow(2,7),Jx=Math.pow(2,14),Qx=Math.pow(2,21),Jd=Math.pow(2,28),Qd=Math.pow(2,35),ep=Math.pow(2,42),tp=Math.pow(2,49),Oe=128,$t=127;function go(t){if(t<Yx)return 1;if(t<Jx)return 2;if(t<Qx)return 3;if(t<Jd)return 4;if(t<Qd)return 5;if(t<ep)return 6;if(t<tp)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function rp(t,e,r=0){switch(go(t)){case 8:e[r++]=t&255|Oe,t/=128;case 7:e[r++]=t&255|Oe,t/=128;case 6:e[r++]=t&255|Oe,t/=128;case 5:e[r++]=t&255|Oe,t/=128;case 4:e[r++]=t&255|Oe,t>>>=7;case 3:e[r++]=t&255|Oe,t>>>=7;case 2:e[r++]=t&255|Oe,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function np(t,e){let r=t[e],n=0;if(n+=r&$t,r<Oe||(r=t[e+1],n+=(r&$t)<<7,r<Oe)||(r=t[e+2],n+=(r&$t)<<14,r<Oe)||(r=t[e+3],n+=(r&$t)<<21,r<Oe)||(r=t[e+4],n+=(r&$t)*Jd,r<Oe)||(r=t[e+5],n+=(r&$t)*Qd,r<Oe)||(r=t[e+6],n+=(r&$t)*ep,r<Oe)||(r=t[e+7],n+=(r&$t)*tp,r<Oe))return n;throw new RangeError("Could not decode varint")}var Nf=new Float32Array([-0]),jt=new Uint8Array(Nf.buffer);function op(t,e,r){Nf[0]=t,e[r]=jt[0],e[r+1]=jt[1],e[r+2]=jt[2],e[r+3]=jt[3]}function sp(t,e){return jt[0]=t[e],jt[1]=t[e+1],jt[2]=t[e+2],jt[3]=t[e+3],Nf[0]}var Ff=new Float64Array([-0]),Te=new Uint8Array(Ff.buffer);function ip(t,e,r){Ff[0]=t,e[r]=Te[0],e[r+1]=Te[1],e[r+2]=Te[2],e[r+3]=Te[3],e[r+4]=Te[4],e[r+5]=Te[5],e[r+6]=Te[6],e[r+7]=Te[7]}function ap(t,e){return Te[0]=t[e],Te[1]=t[e+1],Te[2]=t[e+2],Te[3]=t[e+3],Te[4]=t[e+4],Te[5]=t[e+5],Te[6]=t[e+6],Te[7]=t[e+7],Ff[0]}var ew=BigInt(Number.MAX_SAFE_INTEGER),tw=BigInt(Number.MIN_SAFE_INTEGER),ke=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&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(e=!1){if(e)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(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return xr;if(e<ew&&e>tw)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,o=e-(n<<32n);return r&&(n=~n|0n,o=~o|0n,++o>cp&&(o=0n,++n>cp&&(n=0n))),new t(Number(o),Number(n))}static fromNumber(e){if(e===0)return xr;let r=e<0;r&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new t(n,o)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):xr}},xr=new ke(0,0);xr.toBigInt=function(){return 0n};xr.zzEncode=xr.zzDecode=function(){return this};xr.length=function(){return 1};var cp=4294967296n;function fp(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function up(t,e,r){if(r-e<1)return"";let o,s=[],i=0,a;for(;e<r;)a=t[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&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 Mf(t,e,r){let n=r,o,s;for(let i=0;i<t.length;++i)o=t.charCodeAt(i),o<128?e[r++]=o:o<2048?(e[r++]=o>>6|192,e[r++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[r++]=o>>18|240,e[r++]=o>>12&63|128,e[r++]=o>>6&63|128,e[r++]=o&63|128):(e[r++]=o>>12|224,e[r++]=o>>6&63|128,e[r++]=o&63|128);return r-n}function Ye(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function Ws(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var kf=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Ye(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ye(this,4);return Ws(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ye(this,4);return Ws(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ye(this,4);let e=sp(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Ye(this,4);let e=ap(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Ye(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return up(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Ye(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Ye(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new ke(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ye(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw Ye(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ye(this,8);let e=Ws(this.buf,this.pos+=4),r=Ws(this.buf,this.pos+=4);return new ke(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=np(this.buf,this.pos);return this.pos+=go(e),e}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 Kf(t){return new kf(t instanceof Uint8Array?t:t.subarray())}function Gs(t,e,r){let n=Kf(t);return e.decode(n,void 0,r)}function zf(t){let e=t??8192,r=e>>>1,n,o=e;return function(i){if(i<1||i>r)return Me(i);o+i>e&&(n=Me(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var wr=class{fn;len;next;val;constructor(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function Hf(){}var qf=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},rw=zf();function nw(t){return globalThis.Buffer!=null?Me(t):rw(t)}var xo=class{len;head;tail;states;constructor(){this.len=0,this.head=new wr(Hf,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new wr(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new $f((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Xs,10,ke.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=ke.fromBigInt(e);return this._push(Xs,r.length(),r)}uint64Number(e){return this._push(rp,go(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let r=ke.fromBigInt(e).zzEncode();return this._push(Xs,r.length(),r)}sint64Number(e){let r=ke.fromNumber(e).zzEncode();return this._push(Xs,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Vf,1,e?1:0)}fixed32(e){return this._push(bo,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=ke.fromBigInt(e);return this._push(bo,4,r.lo)._push(bo,4,r.hi)}fixed64Number(e){let r=ke.fromNumber(e);return this._push(bo,4,r.lo)._push(bo,4,r.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(op,4,e)}double(e){return this._push(ip,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(Vf,1,0):this.uint32(r)._push(sw,r,e)}string(e){let r=fp(e);return r!==0?this.uint32(r)._push(Mf,r,e):this._push(Vf,1,0)}fork(){return this.states=new qf(this),this.head=this.tail=new wr(Hf,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 wr(Hf,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=nw(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function Vf(t,e,r){e[r]=t&255}function ow(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var $f=class extends wr{next;constructor(e,r){super(ow,e,r),this.next=void 0}};function Xs(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function bo(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function sw(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(xo.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(iw,e,t),this},xo.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(aw,e,t),this});function iw(t,e,r){e.set(t,r)}function aw(t,e,r){t.length<40?Mf(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(gr(t),r)}function jf(){return new xo}function Zs(t,e){let r=jf();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var wo;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(wo||(wo={}));function Wf(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Ys(t,e){return Wf("message",wo.LENGTH_DELIMITED,t,e)}var Eo=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var Js;(function(t){let e;t.codec=()=>(e==null&&(e=Ys((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})),e),t.encode=r=>Zs(r,t.codec()),t.decode=(r,n)=>Gs(r,t.codec(),n)})(Js||(Js={}));var So;(function(t){let e;t.codec=()=>(e==null&&(e=Ys((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),Js.codec().encode(r.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(r,n,o={})=>{let s={identityKey:st(0),identitySig:st(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=Js.codec().decode(r,r.uint32(),{limits:o.limits?.extensions});break}default:{r.skipType(a&7);break}}}return s})),e),t.encode=r=>Zs(r,t.codec()),t.decode=(r,n)=>Gs(r,t.codec(),n)})(So||(So={}));async function Xf(t,e,r){let n=await t.sign(dp(e));return So.encode({identityKey:_t(t.publicKey),identitySig:n,extensions:r})}async function Zf(t,e,r){try{let n=So.decode(t),o=Qn(n.identityKey);if(r?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${r}`);if(!e)throw new Error("Remote static does not exist");let s=dp(e);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new vo(n.message)}}function dp(t){let e=gr("noise-libp2p-static-key:");return t instanceof Uint8Array?Of([e,t],e.length+t.length):(t.prepend(e),t)}var Gf=class extends ot{stream;handshake;metrics;decoder;constructor(e,r,n){super({log:e.log,inactivityTimeout:e.inactivityTimeout,maxReadBufferLength:e.maxReadBufferLength,direction:e.direction}),this.stream=e,this.handshake=r,this.metrics=n,this.decoder=new zs({lengthDecoder:cn,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(e){let r=new W;for(let n=0;n<e.byteLength;n+=65519){let o=n+65519;o>e.byteLength&&(o=e.byteLength);let s;e instanceof Uint8Array?s=this.handshake.encrypt(e.subarray(n,o)):s=this.handshake.encrypt(e.sublist(n,o)),this.metrics?.encryptedPackets.increment(),r.append(an(s.byteLength)),r.append(s)}return r}decrypt(e){let r=new W;for(let n=0;n<e.byteLength;n+=65535){let o=n+65535;if(o>e.byteLength&&(o=e.byteLength),o-Qc<n)throw new Error("Invalid chunk");let s;e instanceof Uint8Array?s=e.subarray(n,o):s=e.sublist(n,o);let i=e.subarray(n,o-Qc);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(e){return this.stream.close(e)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(e){this.stream.abort(e)}sendData(e){return{sentBytes:e.byteLength,canSendMore:this.stream.send(this.encrypt(e))}}};function Yf(t,e,r){return new Gf(t,e,r)}async function pp(t,e){let{log:r,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=t,u=await Xf(s,a.publicKey,f),h=new yo({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});_f(h.s,r),r.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(br),e),r.trace("Stage 0 - Initiator finished sending first message."),Tf(h.e,r),r.trace("Stage 1 - Initiator waiting to receive first message from responder...");let g=h.readMessageB(await n.read(e));r.trace("Stage 1 - Initiator received the message."),Df(h.re,r),Yd(h.rs,r),r.trace("Initiator going to check remote's signature...");let p=await Zf(g,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),e),r.trace("Stage 2 - Initiator sent message with signed payload.");let[d,b]=h.ss.split();return Rf(d,b,r),{payload:p,encrypt:l=>d.encryptWithAd(br,l),decrypt:(l,m)=>b.decryptWithAd(br,l,m)}}async function mp(t,e){let{log:r,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=t,u=await Xf(s,a.publicKey,f),h=new yo({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});_f(h.s,r),r.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(e)),r.trace("Stage 0 - Responder received first message."),Df(h.re,r),r.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(u),e),r.trace("Stage 1 - Responder sent the second handshake message with signed payload."),Tf(h.e,r),r.trace("Stage 2 - Responder waiting for third handshake message...");let g=h.readMessageC(await n.read(e));r.trace("Stage 2 - Responder received the message, finished handshake.");let p=await Zf(g,h.rs,c),[d,b]=h.ss.split();return Rf(d,b,r),{payload:p,encrypt:l=>b.encryptWithAd(br,l),decrypt:(l,m)=>d.decryptWithAd(br,l,m)}}var Qs=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(e,r={}){let{staticNoiseKey:n,extensions:o,crypto:s,prologueBytes:i}=r,{metrics:a}=e;this.components=e,this.log=e.logger.forComponent("libp2p:noise");let c=s??Ld;this.crypto=Cd(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?Id(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=i??st(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[Oo]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(e,r){let n=e.log?.newScope("noise")??this.log,o=Jc(e,{lengthEncoder:an,lengthDecoder:cn,maxDataLength:65535}),s=await this.performHandshakeInitiator(o,this.components.privateKey,n,r?.remotePeer?.publicKey,r),i=Qn(s.payload.identityKey);return{connection:Yf(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:ic(i),streamMuxer:r?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}getStreamMuxer(e){if(e==null||e.length===0)return;let r=this.components.upgrader.getStreamMuxers();if(r!=null)for(let n of e){let o=r.get(n);if(o!=null)return o}if(e.length)throw new Ar("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(e,r){let n=e.log?.newScope("noise")??this.log,o=Jc(e,{lengthEncoder:an,lengthDecoder:cn,maxDataLength:65535}),s=await this.performHandshakeResponder(o,this.components.privateKey,n,r?.remotePeer?.publicKey,r),i=Qn(s.payload.identityKey);return{connection:Yf(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:ic(i),streamMuxer:r?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(e,r,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await pp({connection:e,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(e,r,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await mp({connection:e,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 yp(t={}){return e=>new Qs(e,t)}var Er=class extends Event{type;detail;constructor(e,r){super(e),this.type=e,this.detail=r}};function Jf(t){throw new Error("Not implemented")}var Qf=class extends Ms{writer;reader;constructor(e){super(e),this.writer=e.stream.writable.getWriter(),this.reader=e.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 e=await this.reader.read();if(e.value!=null&&this.onData(e.value),e.done){this.log("remote closed write"),this.onRemoteCloseWrite();return}if(this.readStatus==="paused")break}}).catch(e=>{this.abort(e)}).finally(()=>{this.reader.releaseLock()})}sendData(e){for(let n of e)this.writer.write(n).catch(o=>{this.abort(o)});if(this.log.trace("desired size after sending %d bytes is %d bytes",e.byteLength,this.writer.desiredSize),this.writer.desiredSize==null)return{sentBytes:e.byteLength,canSendMore:!1};let r=this.writer.desiredSize>0;return r||this.writer.ready.then(()=>{this.safeDispatchEvent("drain")},n=>{this.abort(n)}),{sentBytes:e.byteLength,canSendMore:r}}sendReset(e){this.writer.abort(e).catch(r=>{this.log.error("error aborting writer - %e",r)})}async sendCloseWrite(e){this.log("sendCloseWrite closing writer"),await ze(this.writer.close().catch(()=>{}),e?.signal),this.log("sendCloseWrite closed writer")}async sendCloseRead(e){this.log("sendCloseRead cancelling reader"),await ze(this.reader.cancel(),e?.signal),this.log("sendCloseRead cancelled reader")}sendPause(){}sendResume(){this.readData()}};function eu(t,e,r,n,o){return new Qf({...o,stream:t,id:e,direction:r,log:n.newScope(`${r}:${e}`),protocol:""})}var gp="/webtransport",tu=class extends Fs{webTransport;streamIDCounter;reader;constructor(e,r){super(r,{protocol:gp,name:"muxer"}),this.webTransport=e,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(eu(o,String(this.streamIDCounter++),"inbound",this.log,this.streamOptions))}}).catch(n=>{this.log.error("could not create a new stream - %e",n)})}async onCreateStream(e){let r=await this.webTransport.createBidirectionalStream();return e?.signal?.throwIfAborted(),eu(r,String(this.streamIDCounter++),"outbound",this.log,e)}onData(){}sendReset(){this.webTransport.close()}};function bp(t){return{protocol:gp,createStreamMuxer(e){return new tu(t,e)}}}var ru=class extends Ns{cleanUpWTSession;constructor(e){super(e),this.cleanUpWTSession=e.cleanUpWTSession}sendData(e){return{sentBytes:e.byteLength,canSendMore:!0}}sendReset(){this.cleanUpWTSession("abort")}async sendClose(e){this.cleanUpWTSession("close"),e?.signal?.throwIfAborted()}sendPause(){}sendResume(){}},xp=t=>new ru(t);function wp(t,e){return e.filter(n=>!!t.find(o=>we(n,o))).length===e.length}var cw=Object.values(Yt).map(t=>t.decoder).reduce((t,e)=>t.or(e));function fw(t){return ht.decode(cw.decode(t))}function nu(t){if(!Ts.matches(t))throw new Co("Invalid multiaddr, was not a WebTransport address");let e=[],r;for(let s of t.getComponents())s.name==="certhash"&&e.push(fw(s.value??"")),s.name==="p2p"&&r==null&&(r=Ul(s.value??""));let n=Nl(t),o=n.host;return n.type==="ip6"&&o.includes(":")&&(o=`[${o}]`),{url:`https://${o}:${n.port}`,certhashes:e,remotePeer:r}}var ei=class extends ot{writer;reader;constructor(e){super(e),this.writer=e.stream.writable.getWriter(),this.reader=e.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(e){await ze(this.writer.close(),e?.signal)}sendData(e){return this.writer.write(e.subarray()).catch(r=>{this.abort(r)}),{sentBytes:e.byteLength,canSendMore:!0}}sendReset(e){this.writer.abort(e).catch(r=>{this.log.error("could not send reset - %e",r)})}sendPause(){}sendResume(){}};var Ep=globalThis.WebTransport;var ou=class{log;components;config;metrics;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:webtransport"),this.components=e,this.config={...r,certificates:r.certificates??[]},e.metrics!=null&&(this.metrics={dialerEvents:e.metrics.registerCounterGroup("libp2p_webtransport_dialer_events_total",{label:"event",help:"Total count of WebTransport dialer events by type"})})}[Symbol.toStringTag]="@libp2p/webtransport";[cu]=!0;[Oo]=["@libp2p/transport"];async dial(e,r){r.signal.throwIfAborted(),this.log("dialing %s",e),r=r??{};let{url:n,certhashes:o,remotePeer:s}=nu(e),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let g=new Ep(`${n}/.well-known/libp2p-webtransport?type=noise`,{serverCertificateHashes:o.map(d=>({algorithm:"sha-256",value:De(d.digest)}))});c=d=>{if(!f)try{this.metrics?.dialerEvents.increment({[d]:!0}),g.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 Er("webtransport:wait-for-session")),await Promise.race([g.closed,g.ready]),this.log("session became ready"),u=!0,this.metrics?.dialerEvents.increment({ready:!0}),g.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=xp({remoteAddr:e,cleanUpWTSession:c,direction:"outbound",log:this.components.logger.forComponent("libp2p:webtransport:connection")});let p=await this.authenticateWebTransport({wt:g,maConn:a,remotePeer:s,certhashes:o,...r});if(h=!0,s!=null&&(h=s.equals(p)),!h)throw new Ar("Failed to authenticate webtransport");return await r.upgrader.upgradeOutbound(a,{...r,skipEncryption:!0,remotePeer:p,muxerFactory:bp(g),skipProtection:!0})}catch(g){throw this.log.error("caught wt session err - %e",g),c(h?"upgrade_error":u?"noise_error":"ready_error"),g}finally{i!=null&&r.signal?.removeEventListener("abort",i)}}async authenticateWebTransport({wt:e,maConn:r,remotePeer:n,certhashes:o,onProgress:s,signal:i}){s?.(new Er("webtransport:open-authentication-stream"));let a=await e.createBidirectionalStream();i?.throwIfAborted();let c=new ei({stream:a,log:r.log.newScope("muxer")}),f=yp()(this.components);s?.(new Er("webtransport:secure-outbound-connection"));let{remoteExtensions:u,remotePeer:h}=await f.secureOutbound(c,{signal:i,remotePeer:n,skipStreamMuxerNegotiation:!0});if(s?.(new Er("webtransport:close-authentication-stream")),await c.close({signal:i}),!wp(u?.webtransportCerthashes??[],o.map(g=>g.bytes)))throw new ee("Our certhashes are not a subset of the remote's reported certhashes");return h}createListener(e){return Jf(this.components,{...e,certificates:this.config.certificates})}listenFilter(){return[]}dialFilter(e){return globalThis.WebTransport==null?[]:e.filter(r=>{if(!Ts.exactMatch(r))return!1;let{url:n,certhashes:o}=nu(r);return n!=null&&o.length>0})}};function uw(t={}){return e=>new ou(e,t)}return Lp(hw);})();
|
|
2
|
+
"use strict";var Libp2PWebtransport=(()=>{var Ys=Object.defineProperty;var ip=Object.getOwnPropertyDescriptor;var ap=Object.getOwnPropertyNames;var cp=Object.prototype.hasOwnProperty;var H=(t,e)=>{for(var r in e)Ys(t,r,{get:e[r],enumerable:!0})},fp=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of ap(e))!cp.call(t,o)&&o!==r&&Ys(t,o,{get:()=>e[o],enumerable:!(n=ip(e,o))||n.enumerable});return t};var up=t=>fp(Ys({},"__esModule",{value:!0}),t);var zx={};H(zx,{webTransport:()=>Kx});var wo=class extends Error{static name="UnexpectedPeerError";constructor(e="Unexpected Peer"){super(e),this.name="UnexpectedPeerError"}},xr=class extends Error{static name="InvalidCryptoExchangeError";constructor(e="Invalid crypto exchange"){super(e),this.name="InvalidCryptoExchangeError"}},ee=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},wr=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}};var Eo=class extends Error{static name="MuxerClosedError";constructor(e="The muxer is closed"){super(e),this.name="MuxerClosedError"}},So=class extends Error{static name="StreamResetError";constructor(e="The stream has been reset"){super(e),this.name="StreamResetError"}};var At=class extends Error{static name="StreamStateError";constructor(e="The stream is in an invalid state"){super(e),this.name="StreamStateError"}},mn=class extends Error{static name="StreamBufferError";constructor(e="The stream buffer was full"){super(e),this.name="StreamBufferError"}};var vo=class extends Error{static name="InvalidMultiaddrError";constructor(e="Invalid multiaddr"){super(e),this.name="InvalidMultiaddrError"}},Ao=class extends Error{static name="InvalidCIDError";constructor(e="Invalid CID"){super(e),this.name="InvalidCIDError"}},Bo=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var qt=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var Lo=class extends Event{data;constructor(e,r){super("message",r),this.data=e}},Er=class extends Event{error;local;constructor(e,r,n){super("close",n),this.error=r,this.local=e}},Co=class extends Er{constructor(e,r){super(!0,e,r)}},Io=class extends Er{constructor(e,r){super(!1,e,r)}};var Js=Symbol.for("@libp2p/peer-id");var ou=Symbol.for("@libp2p/transport");var nu;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(nu||(nu={}));function hp(t){return typeof t?.handleEvent=="function"}function lp(t){return(t!==!0&&t!==!1&&t?.once)??!1}var Sr=class extends EventTarget{#e=new Map;constructor(){super()}listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){let o=lp(n);super.addEventListener(e,i=>{if(o){let a=this.#e.get(i.type);a!=null&&(a=a.filter(({callback:c})=>c!==r),this.#e.set(i.type,a))}hp(r)?r.handleEvent(i):r(i)},n);let s=this.#e.get(e);s==null&&(s=[],this.#e.set(e,s)),s.push({callback:r,once:o})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==r),this.#e.set(e,o))}safeDispatchEvent(e,r={}){return this.dispatchEvent(new CustomEvent(e,r))}};var _o=Symbol.for("@libp2p/service-capabilities");var ni={};H(ni,{base58btc:()=>he,base58flickr:()=>wp});var xw=new Uint8Array(0);function su(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function ft(t){if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return $t(t);if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return $t(new Uint8Array(t.buffer,t.byteOffset,t.byteLength));throw new Error("Unknown type, must be binary type")}function iu(t){return new TextEncoder().encode(t)}function au(t){return new TextDecoder().decode(t)}function dp(t){return t?.buffer instanceof ArrayBuffer}function $t(t){return dp(t)?t:t.slice()}function pp(t,e){if(t.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<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,c=t.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,m=0,A=d.length;m!==A&&d[m]===0;)m++,b++;for(var B=(A-m)*u+1>>>0,T=new Uint8Array(B);m!==A;){for(var D=d[m],U=0,_=B-1;(D!==0||U<l)&&_!==-1;_--,U++)D+=256*T[_]>>>0,T[_]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,m++}for(var C=B-l;C!==B&&T[C]===0;)C++;for(var P=c.repeat(b);C<B;++C)P+=t.charAt(T[C]);return P}function g(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,m=0;d[b]===c;)l++,b++;for(var A=(d.length-b)*f+1>>>0,B=new Uint8Array(A);d[b];){var T=r[d.charCodeAt(b)];if(T===255)return;for(var D=0,U=A-1;(T!==0||D<m)&&U!==-1;U--,D++)T+=a*B[U]>>>0,B[U]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=D,b++}if(d[b]!==" "){for(var _=A-m;_!==A&&B[_]===0;)_++;for(var C=new Uint8Array(l+(A-_)),P=l;_!==A;)C[P++]=B[_++];return C}}}function p(d){var b=g(d);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:g,decode:p}}var mp=pp,yp=mp,fu=yp;var Qs=class{name;prefix;baseEncode;constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ei=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){this.name=e,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(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return uu(this,e)}},ti=class{decoders;constructor(e){this.decoders=e}or(e){return uu(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function uu(t,e){return new ti({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var ri=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new Qs(e,r,n),this.decoder=new ei(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function vr({name:t,prefix:e,encode:r,decode:n}){return new ri(t,e,r,n)}function Bt({name:t,prefix:e,alphabet:r}){let{encode:n,decode:o}=fu(r,t);return vr({prefix:e,name:t,encode:n,decode:s=>ft(o(s))})}function gp(t,e,r,n){let o=t.length;for(;t[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=e[t[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 bp(t,e,r){let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function xp(t){let e={};for(let r=0;r<t.length;++r)e[t[r]]=r;return e}function ue({name:t,prefix:e,bitsPerChar:r,alphabet:n}){let o=xp(n);return vr({prefix:e,name:t,encode(s){return bp(s,n,r)},decode(s){return gp(s,o,r,t)}})}var he=Bt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),wp=Bt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var oi={};H(oi,{base32:()=>Lt,base32hex:()=>Ap,base32hexpad:()=>Lp,base32hexpadupper:()=>Cp,base32hexupper:()=>Bp,base32pad:()=>Sp,base32padupper:()=>vp,base32upper:()=>Ep,base32z:()=>Ip});var Lt=ue({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Ep=ue({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Sp=ue({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),vp=ue({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ap=ue({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Bp=ue({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Lp=ue({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Cp=ue({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Ip=ue({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var si={};H(si,{base36:()=>yn,base36upper:()=>_p});var yn=Bt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),_p=Bt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ut={};H(ut,{Digest:()=>jt,create:()=>ze,decode:()=>Lr,equals:()=>ai,hasCode:()=>Gp});var Tp=du,hu=128,Dp=127,Rp=~Dp,Op=Math.pow(2,31);function du(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Op;)e[r++]=t&255|hu,t/=128;for(;t&Rp;)e[r++]=t&255|hu,t>>>=7;return e[r]=t|0,du.bytes=r-n+1,e}var Up=ii,Pp=128,lu=127;function ii(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw ii.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&lu)<<o:(i&lu)*Math.pow(2,o),o+=7}while(i>=Pp);return ii.bytes=s-n,r}var Np=Math.pow(2,7),Mp=Math.pow(2,14),kp=Math.pow(2,21),Fp=Math.pow(2,28),Kp=Math.pow(2,35),zp=Math.pow(2,42),Hp=Math.pow(2,49),Vp=Math.pow(2,56),qp=Math.pow(2,63),$p=function(t){return t<Np?1:t<Mp?2:t<kp?3:t<Fp?4:t<Kp?5:t<zp?6:t<Hp?7:t<Vp?8:t<qp?9:10},jp={encode:Tp,decode:Up,encodingLength:$p},Wp=jp,gn=Wp;function bn(t,e=0){return[gn.decode(t,e),gn.decode.bytes]}function Ar(t,e,r=0){return gn.encode(t,e,r),e}function Br(t){return gn.encodingLength(t)}function ze(t,e){let r=e.byteLength,n=Br(t),o=n+Br(r),s=new Uint8Array(o+r);return Ar(t,s,0),Ar(r,s,n),s.set(e,o),new jt(t,r,e,s)}function Lr(t){let e=ft(t),[r,n]=bn(e),[o,s]=bn(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new jt(r,o,i,e)}function ai(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&su(t.bytes,r.bytes)}}var jt=class{code;size;digest;bytes;constructor(e,r,n,o){this.code=e,this.size=r,this.digest=$t(n),this.bytes=$t(o)}};function Gp(t,e){return t.code===e}function pu(t,e){let{bytes:r,version:n}=t;return n===0?Xp(r,ci(t),e??he.encoder):Yp(r,ci(t),e??Lt.encoder)}var mu=new WeakMap;function ci(t){let e=mu.get(t);if(e==null){let r=new Map;return mu.set(t,r),r}return e}var me=class t{code;version;multihash;bytes;"/";constructor(e,r,n,o){this.code=r,this.version=e,this.multihash=n,this.bytes=$t(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:e,multihash:r}=this;if(e!==xn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Jp)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.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:e,digest:r}=this.multihash,n=ze(e,r);return t.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(e){return t.equals(this,e)}static equals(e,r){let n=r;return n!=null&&e.code===n.code&&e.version===n.version&&ai(e.multihash,n.multihash)}toString(e){return pu(this,e)}toJSON(){return{"/":pu(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new t(n,o,s,i??yu(n,o,s.bytes))}else if(r[Qp]===!0){let{version:n,multihash:o,code:s}=r,i=Lr(o);return t.create(n,s,i)}else return null}static create(e,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(e){case 0:{if(r!==xn)throw new Error(`Version 0 CID must use dag-pb (code: ${xn}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=yu(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,xn,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=ft(e.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 jt(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(i):t.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[h,g]=bn(e.subarray(r));return r+=g,h},o=n(),s=xn;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(e,r){let[n,o]=Zp(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return ci(s).set(n,e),s}};function Zp(t,e){switch(t[0]){case"Q":{let r=e??he;return[he.prefix,r.decode(`${he.prefix}${t}`)]}case he.prefix:{let r=e??he;return[he.prefix,r.decode(t)]}case Lt.prefix:{let r=e??Lt;return[Lt.prefix,r.decode(t)]}case yn.prefix:{let r=e??yn;return[yn.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function Xp(t,e,r){let{prefix:n}=r;if(n!==he.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o}function Yp(t,e,r){let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o}var xn=112,Jp=18;function yu(t,e,r){let n=Br(t),o=n+Br(e),s=new Uint8Array(o+r.byteLength);return Ar(t,s,0),Ar(e,s,n),s.set(r,o),s}var Qp=Symbol.for("@ipld/js-cid/CID");var fi={};H(fi,{identity:()=>He});var gu=0,em="identity",bu=ft;function tm(t,e){if(e?.truncate!=null&&e.truncate!==t.byteLength){if(e.truncate<0||e.truncate>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,e.truncate)}return ze(gu,bu(t))}var He={code:gu,name:em,encode:bu,digest:tm};function we(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function rm(t){return t.buffer instanceof ArrayBuffer}function De(t){return rm(t)?t:t.slice()}async function xu(t,e,r,n){let o=await crypto.subtle.importKey("jwk",t,{name:"ECDSA",namedCurve:t.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,De(e),De(r.subarray()));return n?.signal?.throwIfAborted(),s}function ht(t=0){return new Uint8Array(t)}function wn(t=0){return new Uint8Array(t)}function ui(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=wn(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return r}function wu(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var Su=Symbol.for("@achingbrain/uint8arraylist");function Eu(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let o=r+n.byteLength;if(e<o)return{buf:n,index:e-r};r=o}throw new RangeError("index is out of bounds")}function Do(t){return!!t?.[Su]}var W=class t{bufs;length;[Su]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Do(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(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Do(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(e){let r=Eu(this.bufs,e);return r.buf[r.index]}set(e,r){let n=Eu(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(Do(e))for(let n=0;n<e.length;n++)this.set(r+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,r){let{bufs:n,length:o}=this._subList(e,r);return ui(n,o)}subarray(e,r){let{bufs:n,length:o}=this._subList(e,r);return n.length===1?n[0]:ui(n,o)}sublist(e,r){let{bufs:n,length:o}=this._subList(e,r),s=new t;return s.length=o,s.bufs=n,s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===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,e>=c)continue;let f=e>=a&&e<c,u=r>a&&r<=c;if(f&&u){if(e===a&&r===c){n.push(i);break}let h=e-a;n.push(i.subarray(h,h+(r-e)));break}if(f){if(e===0){n.push(i);continue}n.push(i.subarray(e-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-e}}indexOf(e,r=0){if(!Do(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.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 g=f;g>=0;g--){let p=this.get(h+g);if(n[g]!==p){u=Math.max(1,g-a[p]);break}}if(u===0)return h}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=wn(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let o=ht(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,r,n),this.write(o,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let o=ht(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,r,n),this.write(o,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let o=ht(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,r,n),this.write(o,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=wn(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let o=ht(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,r,n),this.write(o,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let o=ht(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,r,n),this.write(o,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let o=ht(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,r,n),this.write(o,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let o=ht(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,r,n),this.write(o,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let o=ht(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,r,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof t)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!wu(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new t;return n.bufs=e,r==null&&(r=e.reduce((o,s)=>o+s.byteLength,0)),n.length=r,n}};var hi={};H(hi,{base10:()=>nm});var nm=Bt({prefix:"9",name:"base10",alphabet:"0123456789"});var li={};H(li,{base16:()=>om,base16upper:()=>sm});var om=ue({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),sm=ue({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var di={};H(di,{base2:()=>im});var im=ue({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var pi={};H(pi,{base256emoji:()=>hm});var vu=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}"),am=vu.reduce((t,e,r)=>(t[r]=e,t),[]),cm=vu.reduce((t,e,r)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return t[n]=r,t},[]);function fm(t){return t.reduce((e,r)=>(e+=am[r],e),"")}function um(t){let e=[];for(let r of t){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=cm[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);e.push(o)}return new Uint8Array(e)}var hm=vr({prefix:"\u{1F680}",name:"base256emoji",encode:fm,decode:um});var yi={};H(yi,{base64:()=>lm,base64pad:()=>dm,base64url:()=>mi,base64urlpad:()=>pm});var lm=ue({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),dm=ue({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),mi=ue({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),pm=ue({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var gi={};H(gi,{base8:()=>mm});var mm=ue({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var bi={};H(bi,{identity:()=>ym});var ym=vr({prefix:"\0",name:"identity",encode:t=>au(t),decode:t=>iu(t)});var i1=new TextEncoder,a1=new TextDecoder;var Ei={};H(Ei,{sha256:()=>En,sha512:()=>wm});var xm=20;function wi({name:t,code:e,encode:r,minDigestLength:n,maxDigestLength:o}){return new xi(t,e,r,n,o)}var xi=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,r,n,o,s){this.name=e,this.code=r,this.encode=n,this.minDigestLength=o??xm,this.maxDigestLength=s}digest(e,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(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?Au(n,this.code,r?.truncate):n.then(o=>Au(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function Au(t,e,r){if(r!=null&&r!==t.byteLength){if(r>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,r)}return ze(e,t)}function Lu(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var En=wi({name:"sha2-256",code:18,encode:Lu("SHA-256")}),wm=wi({name:"sha2-512",code:19,encode:Lu("SHA-512")});var Wt={...bi,...di,...gi,...hi,...li,...oi,...si,...ni,...yi,...pi},x1={...Ei,...fi};function Gt(t=0){return new Uint8Array(t)}function Iu(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Cu=Iu("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Si=Iu("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Gt(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Em={utf8:Cu,"utf-8":Cu,hex:Wt.base16,latin1:Si,ascii:Si,binary:Si,...Wt},Ro=Em;function re(t,e="utf8"){let r=Ro[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}function G(t,e="utf8"){let r=Ro[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.encoder.encode(t).substring(1)}var Sm=parseInt("11111",2),vi=parseInt("10000000",2),vm=parseInt("01111111",2),_u={0:Sn,1:Sn,2:Am,3:Cm,4:Im,5:Lm,6:Bm,16:Sn,22:Sn,48:Sn};function lt(t,e={offset:0}){let r=t[e.offset]&Sm;if(e.offset++,_u[r]!=null)return _u[r](t,e);throw new Error("No decoder for tag "+r)}function vn(t,e){let r=0;if((t[e.offset]&vi)===vi){let n=t[e.offset]&vm,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++)o+=t[e.offset].toString(16).padStart(2,"0");r=parseInt(o,16)}else r=t[e.offset],e.offset++;return r}function Sn(t,e){vn(t,e);let r=[];for(;!(e.offset>=t.byteLength);){let n=lt(t,e);if(n===null)break;r.push(n)}return r}function Am(t,e){let r=vn(t,e),n=e.offset,o=e.offset+r,s=[];for(let i=n;i<o;i++)i===n&&t[i]===0||s.push(t[i]);return e.offset+=r,Uint8Array.from(s)}function Bm(t,e){let r=vn(t,e),n=e.offset+r,o=t[e.offset];e.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(;e.offset<n;){let f=t[e.offset];if(e.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 Lm(t,e){return e.offset++,null}function Cm(t,e){let r=vn(t,e),n=t[e.offset];e.offset++;let o=t.subarray(e.offset,e.offset+r-1);if(e.offset+=r,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function Im(t,e){let r=vn(t,e),n=t.subarray(e.offset,e.offset+r);return e.offset+=r,n}function _m(t){let e=t.toString(16);e.length%2===1&&(e="0"+e);let r=new W;for(let n=0;n<e.length;n+=2)r.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return r}function Ai(t){if(t.byteLength<128)return Uint8Array.from([t.byteLength]);let e=_m(t.byteLength);return new W(Uint8Array.from([e.byteLength|vi]),e)}function Oe(t){let e=new W,r=128;return(t.subarray()[0]&r)===r&&e.append(Uint8Array.from([0])),e.append(t),new W(Uint8Array.from([2]),Ai(e),e)}function Oo(t){let e=Uint8Array.from([0]),r=new W(e,t);return new W(Uint8Array.from([3]),Ai(r),r)}function Ct(t,e=48){let r=new W;for(let n of t)r.append(n);return new W(Uint8Array.from([e]),Ai(r),r)}var Tm=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),Dm=Uint8Array.from([6,5,43,129,4,0,34]),Rm=Uint8Array.from([6,5,43,129,4,0,35]),Om={ext:!0,kty:"EC",crv:"P-256"},Um={ext:!0,kty:"EC",crv:"P-384"},Pm={ext:!0,kty:"EC",crv:"P-521"},Bi=32,Li=48,Ci=66;function Ii(t){let e=lt(t);return Tu(e)}function Tu(t){let e=t[1][1][0],r=1,n,o;if(e.byteLength===Bi*2+1)return n=G(e.subarray(r,r+Bi),"base64url"),o=G(e.subarray(r+Bi),"base64url"),new Cr({...Om,key_ops:["verify"],x:n,y:o});if(e.byteLength===Li*2+1)return n=G(e.subarray(r,r+Li),"base64url"),o=G(e.subarray(r+Li),"base64url"),new Cr({...Um,key_ops:["verify"],x:n,y:o});if(e.byteLength===Ci*2+1)return n=G(e.subarray(r,r+Ci),"base64url"),o=G(e.subarray(r+Ci),"base64url"),new Cr({...Pm,key_ops:["verify"],x:n,y:o});throw new ee(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function Du(t){return Ct([Oe(Uint8Array.from([1])),Ct([Nm(t.crv)],160),Ct([Oo(new W(Uint8Array.from([4]),re(t.x??"","base64url"),re(t.y??"","base64url")))],161)]).subarray()}function Nm(t){if(t==="P-256")return Tm;if(t==="P-384")return Dm;if(t==="P-521")return Rm;throw new ee(`Invalid curve ${t}`)}var Cr=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=Du(this.jwk)),this._raw}toMultihash(){return He.digest(It(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return he.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}async verify(e,r,n){return xu(this.jwk,r,e,n)}};function _i(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function Ye(t,e=""){if(typeof t!="number"){let r=e&&`"${e}" `;throw new TypeError(`${r}expected number, got ${typeof t}`)}if(!Number.isSafeInteger(t)||t<0){let r=e&&`"${e}" `;throw new RangeError(`${r}expected integer >= 0, got ${t}`)}}function Be(t,e,r=""){let n=_i(t),o=t?.length,s=e!==void 0;if(!n||s&&o!==e){let i=r&&`"${r}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof t}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return t}function Zt(t){if(typeof t!="function"||typeof t.create!="function")throw new TypeError("Hash must wrapped by utils.createHasher");if(Ye(t.outputLen),Ye(t.blockLen),t.outputLen<1)throw new Error('"outputLen" must be >= 1');if(t.blockLen<1)throw new Error('"blockLen" must be >= 1')}function Ir(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Uo(t,e){Be(t,void 0,"digestInto() output");let r=e.outputLen;if(t.length<r)throw new RangeError('"digestInto() output" expected to be of length >='+r)}function Ve(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function Po(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function qe(t,e){return t<<32-e|t>>>e}var Ou=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Mm=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function No(t){if(Be(t),Ou)return t.toHex();let e="";for(let r=0;r<t.length;r++)e+=Mm[t[r]];return e}var dt={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ru(t){if(t>=dt._0&&t<=dt._9)return t-dt._0;if(t>=dt.A&&t<=dt.F)return t-(dt.A-10);if(t>=dt.a&&t<=dt.f)return t-(dt.a-10)}function An(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);if(Ou)try{return Uint8Array.fromHex(t)}catch(o){throw o instanceof SyntaxError?new RangeError(o.message):o}let e=t.length,r=e/2;if(e%2)throw new RangeError("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(r);for(let o=0,s=0;o<r;o++,s+=2){let i=Ru(t.charCodeAt(s)),a=Ru(t.charCodeAt(s+1));if(i===void 0||a===void 0){let c=t[s]+t[s+1];throw new RangeError('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ti(...t){let e=0;for(let n=0;n<t.length;n++){let o=t[n];Be(o),e+=o.length}let r=new Uint8Array(e);for(let n=0,o=0;n<t.length;n++){let s=t[n];r.set(s,o),o+=s.length}return r}function Di(t,e={}){let r=(o,s)=>t(s).update(o).digest(),n=t(void 0);return r.outputLen=n.outputLen,r.blockLen=n.blockLen,r.canXOF=n.canXOF,r.create=o=>t(o),Object.assign(r,e),Object.freeze(r)}function Uu(t=32){Ye(t,"bytesLength");let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");if(t>65536)throw new RangeError(`"bytesLength" expected <= 65536, got ${t}`);return e.getRandomValues(new Uint8Array(t))}var Ri=t=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,t])});function Pu(t,e,r){return t&e^~t&r}function Nu(t,e,r){return t&e^t&r^e&r}var Bn=class{blockLen;outputLen;canXOF=!1;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,r,n,o){this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=Po(this.buffer)}update(e){Ir(this),Be(e);let{view:r,buffer:n,blockLen:o}=this,s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=Po(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Ir(this),Uo(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;r[i++]=128,Ve(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=Po(e),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:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=o,e.pos=a,o%r&&e.buffer.set(n),e}clone(){return this._cloneInto()}},pt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var Ee=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Mo=BigInt(4294967295),Mu=BigInt(32);function km(t,e=!1){return e?{h:Number(t&Mo),l:Number(t>>Mu&Mo)}:{h:Number(t>>Mu&Mo)|0,l:Number(t&Mo)|0}}function ku(t,e=!1){let r=t.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let s=0;s<r;s++){let{h:i,l:a}=km(t[s],e);[n[s],o[s]]=[i,a]}return[n,o]}var Oi=(t,e,r)=>t>>>r,Ui=(t,e,r)=>t<<32-r|e>>>r,Xt=(t,e,r)=>t>>>r|e<<32-r,Yt=(t,e,r)=>t<<32-r|e>>>r,Ln=(t,e,r)=>t<<64-r|e>>>r-32,Cn=(t,e,r)=>t>>>r-32|e<<64-r;function Je(t,e,r,n){let o=(e>>>0)+(n>>>0);return{h:t+r+(o/2**32|0)|0,l:o|0}}var Fu=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),Ku=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,zu=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),Hu=(t,e,r,n,o)=>e+r+n+o+(t/2**32|0)|0,Vu=(t,e,r,n,o)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(o>>>0),qu=(t,e,r,n,o,s)=>e+r+n+o+s+(t/2**32|0)|0;var Km=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]),_t=new Uint32Array(64),Pi=class extends Bn{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:r,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,r,n,o,s,i,a,c]}set(e,r,n,o,s,i,a,c){this.A=e|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(e,r){for(let h=0;h<16;h++,r+=4)_t[h]=e.getUint32(r,!1);for(let h=16;h<64;h++){let g=_t[h-15],p=_t[h-2],d=qe(g,7)^qe(g,18)^g>>>3,b=qe(p,17)^qe(p,19)^p>>>10;_t[h]=b+_t[h-7]+d+_t[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 g=qe(a,6)^qe(a,11)^qe(a,25),p=u+g+Pu(a,c,f)+Km[h]+_t[h]|0,b=(qe(n,2)^qe(n,13)^qe(n,22))+Nu(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(){Ve(_t)}destroy(){this.destroyed=!0,this.set(0,0,0,0,0,0,0,0),Ve(this.buffer)}},Ni=class extends Pi{A=pt[0]|0;B=pt[1]|0;C=pt[2]|0;D=pt[3]|0;E=pt[4]|0;F=pt[5]|0;G=pt[6]|0;H=pt[7]|0;constructor(){super(32)}};var $u=ku(["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(t=>BigInt(t))),zm=$u[0],Hm=$u[1],Tt=new Uint32Array(80),Dt=new Uint32Array(80),Mi=class extends Bn{constructor(e){super(128,e,16,!1)}get(){let{Ah:e,Al:r,Bh:n,Bl:o,Ch:s,Cl:i,Dh:a,Dl:c,Eh:f,El:u,Fh:h,Fl:g,Gh:p,Gl:d,Hh:b,Hl:l}=this;return[e,r,n,o,s,i,a,c,f,u,h,g,p,d,b,l]}set(e,r,n,o,s,i,a,c,f,u,h,g,p,d,b,l){this.Ah=e|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=g|0,this.Gh=p|0,this.Gl=d|0,this.Hh=b|0,this.Hl=l|0}process(e,r){for(let B=0;B<16;B++,r+=4)Tt[B]=e.getUint32(r),Dt[B]=e.getUint32(r+=4);for(let B=16;B<80;B++){let T=Tt[B-15]|0,D=Dt[B-15]|0,U=Xt(T,D,1)^Xt(T,D,8)^Oi(T,D,7),_=Yt(T,D,1)^Yt(T,D,8)^Ui(T,D,7),C=Tt[B-2]|0,P=Dt[B-2]|0,k=Xt(C,P,19)^Ln(C,P,61)^Oi(C,P,6),N=Yt(C,P,19)^Cn(C,P,61)^Ui(C,P,6),y=zu(_,N,Dt[B-7],Dt[B-16]),v=Hu(y,U,k,Tt[B-7],Tt[B-16]);Tt[B]=v|0,Dt[B]=y|0}let{Ah:n,Al:o,Bh:s,Bl:i,Ch:a,Cl:c,Dh:f,Dl:u,Eh:h,El:g,Fh:p,Fl:d,Gh:b,Gl:l,Hh:m,Hl:A}=this;for(let B=0;B<80;B++){let T=Xt(h,g,14)^Xt(h,g,18)^Ln(h,g,41),D=Yt(h,g,14)^Yt(h,g,18)^Cn(h,g,41),U=h&p^~h&b,_=g&d^~g&l,C=Vu(A,D,_,Hm[B],Dt[B]),P=qu(C,m,T,U,zm[B],Tt[B]),k=C|0,N=Xt(n,o,28)^Ln(n,o,34)^Ln(n,o,39),y=Yt(n,o,28)^Cn(n,o,34)^Cn(n,o,39),v=n&s^n&a^s&a,S=o&i^o&c^i&c;m=b|0,A=l|0,b=p|0,l=d|0,p=h|0,d=g|0,{h,l:g}=Je(f|0,u|0,P|0,k|0),f=a|0,u=c|0,a=s|0,c=i|0,s=n|0,i=o|0;let w=Fu(k,y,S);n=Ku(w,P,N,v),o=w|0}({h:n,l:o}=Je(this.Ah|0,this.Al|0,n|0,o|0)),{h:s,l:i}=Je(this.Bh|0,this.Bl|0,s|0,i|0),{h:a,l:c}=Je(this.Ch|0,this.Cl|0,a|0,c|0),{h:f,l:u}=Je(this.Dh|0,this.Dl|0,f|0,u|0),{h,l:g}=Je(this.Eh|0,this.El|0,h|0,g|0),{h:p,l:d}=Je(this.Fh|0,this.Fl|0,p|0,d|0),{h:b,l}=Je(this.Gh|0,this.Gl|0,b|0,l|0),{h:m,l:A}=Je(this.Hh|0,this.Hl|0,m|0,A|0),this.set(n,o,s,i,a,c,f,u,h,g,p,d,b,l,m,A)}roundClean(){Ve(Tt,Dt)}destroy(){this.destroyed=!0,Ve(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},ki=class extends Mi{Ah=Ee[0]|0;Al=Ee[1]|0;Bh=Ee[2]|0;Bl=Ee[3]|0;Ch=Ee[4]|0;Cl=Ee[5]|0;Dh=Ee[6]|0;Dl=Ee[7]|0;Eh=Ee[8]|0;El=Ee[9]|0;Fh=Ee[10]|0;Fl=Ee[11]|0;Gh=Ee[12]|0;Gl=Ee[13]|0;Hh=Ee[14]|0;Hl=Ee[15]|0;constructor(){super(64)}};var Qe=Di(()=>new Ni,Ri(1));var ko=Di(()=>new ki,Ri(3));var V=(t,e,r)=>Be(t,e,r),Ki=Ye,_r=No,ye=(...t)=>Ti(...t),Tr=t=>An(t),Jt=_i,Qt=t=>Uu(t),Ko=BigInt(0),Fi=BigInt(1);function $e(t,e=""){if(typeof t!="boolean"){let r=e&&`"${e}" `;throw new TypeError(r+"expected boolean, got type="+typeof t)}return t}function zo(t){if(typeof t=="bigint"){if(!Fo(t))throw new RangeError("positive bigint expected, got "+t)}else Ki(t);return t}function je(t,e=""){if(typeof t!="number"){let r=e&&`"${e}" `;throw new TypeError(r+"expected number, got type="+typeof t)}if(!Number.isSafeInteger(t)){let r=e&&`"${e}" `;throw new RangeError(r+"expected safe integer, got "+t)}}function In(t){let e=zo(t).toString(16);return e.length&1?"0"+e:e}function ju(t){if(typeof t!="string")throw new TypeError("hex string expected, got "+typeof t);return t===""?Ko:BigInt("0x"+t)}function er(t){return ju(No(t))}function Ue(t){return ju(No(Rt(Be(t)).reverse()))}function Ho(t,e){if(Ye(e),e===0)throw new RangeError("zero length");t=zo(t);let r=t.toString(16);if(r.length>e*2)throw new RangeError("number too large");return An(r.padStart(e*2,"0"))}function _n(t,e){return Ho(t,e).reverse()}function Wu(t,e){if(t=V(t),e=V(e),t.length!==e.length)return!1;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return r===0}function Rt(t){return Uint8Array.from(V(t))}function Vo(t){if(typeof t!="string")throw new TypeError("ascii string expected, got "+typeof t);return Uint8Array.from(t,(e,r)=>{let n=e.charCodeAt(0);if(e.length!==1||n>127)throw new RangeError(`string contains non-ASCII character "${t[r]}" with code ${n} at position ${r}`);return n})}var Fo=t=>typeof t=="bigint"&&Ko<=t;function Vm(t,e,r){return Fo(t)&&Fo(e)&&Fo(r)&&e<=t&&t<r}function mt(t,e,r,n){if(!Vm(e,r,n))throw new RangeError("expected valid "+t+": "+r+" <= n < "+n+", got "+e)}function Dr(t){if(t<Ko)throw new Error("expected non-negative bigint, got "+t);let e;for(e=0;t>Ko;t>>=Fi,e+=1);return e}var Tn=t=>(Fi<<BigInt(t))-Fi;function Gu(t,e,r){if(Ye(t,"hashLen"),Ye(e,"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(t),f=n(t),u=0,h=()=>{c.fill(1),f.fill(0),u=0},g=(...l)=>r(f,ye(c,...l)),p=(l=o)=>{f=g(s,l),c=g(),l.length!==0&&(f=g(i,l),c=g())},d=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let l=0,m=[];for(;l<e;){c=g();let A=c.slice();m.push(A),l+=c.length}return ye(...m)};return(l,m)=>{h(),p(l);let A;for(;(A=m(d()))===void 0;)p();return h(),A}}function Pe(t,e={},r={}){if(Object.prototype.toString.call(t)!=="[object Object]")throw new TypeError("expected valid options object");function n(s,i,a){if(!a&&i!=="function"&&!Object.hasOwn(t,s))throw new TypeError(`param "${s}" is invalid: expected own property`);let c=t[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(e,!1),o(r,!0)}var zi=()=>{throw new Error("not implemented")};var Se=BigInt(0),le=BigInt(1),tr=BigInt(2),Ju=BigInt(3),Qu=BigInt(4),eh=BigInt(5),qm=BigInt(7),th=BigInt(8),$m=BigInt(9),rh=BigInt(16);function ae(t,e){if(e<=Se)throw new Error("mod: expected positive modulus, got "+e);let r=t%e;return r>=Se?r:e+r}function ne(t,e,r){if(e<Se)throw new Error("pow2: expected non-negative exponent, got "+e);let n=t;for(;e-- >Se;)n*=n,n%=r;return n}function Zu(t,e){if(t===Se)throw new Error("invert: expected non-zero number");if(e<=Se)throw new Error("invert: expected positive modulus, got "+e);let r=ae(t,e),n=e,o=Se,s=le,i=le,a=Se;for(;r!==Se;){let f=n/r,u=n-r*f,h=o-i*f,g=s-a*f;n=r,r=u,o=i,s=a,i=h,a=g}if(n!==le)throw new Error("invert: does not exist");return ae(o,e)}function Hi(t,e,r){let n=t;if(!n.eql(n.sqr(e),r))throw new Error("Cannot find square root")}function nh(t,e){let r=t,n=(r.ORDER+le)/Qu,o=r.pow(e,n);return Hi(r,o,e),o}function jm(t,e){let r=t,n=(r.ORDER-eh)/th,o=r.mul(e,tr),s=r.pow(o,n),i=r.mul(e,s),a=r.mul(r.mul(i,tr),s),c=r.mul(i,r.sub(a,r.ONE));return Hi(r,c,e),c}function Wm(t){let e=Rr(t),r=oh(t),n=r(e,e.neg(e.ONE)),o=r(e,n),s=r(e,e.neg(n)),i=(t+qm)/rh;return((a,c)=>{let f=a,u=f.pow(c,i),h=f.mul(u,n),g=f.mul(u,o),p=f.mul(u,s),d=f.eql(f.sqr(h),c),b=f.eql(f.sqr(g),c);u=f.cmov(u,h,d),h=f.cmov(p,g,b);let l=f.eql(f.sqr(h),c),m=f.cmov(u,h,l);return Hi(f,m,c),m})}function oh(t){if(t<Ju)throw new Error("sqrt is not defined for small field");let e=t-le,r=0;for(;e%tr===Se;)e/=tr,r++;let n=tr,o=Rr(t);for(;Xu(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return nh;let s=o.pow(n,e),i=(e+le)/tr;return function(c,f){let u=c;if(u.is0(f))return f;if(Xu(u,f)!==1)throw new Error("Cannot find square root");let h=r,g=u.mul(u.ONE,s),p=u.pow(f,e),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 m=le<<BigInt(h-b-1),A=u.pow(g,m);h=b,g=u.sqr(A),p=u.mul(p,g),d=u.mul(d,A)}return d}}function Gm(t){return t%Qu===Ju?nh:t%th===eh?jm:t%rh===$m?Wm(t):oh(t)}var yt=(t,e)=>(ae(t,e)&le)===le,Zm=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Vi(t){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},r=Zm.reduce((n,o)=>(n[o]="function",n),e);if(Pe(t,r),je(t.BYTES,"BYTES"),je(t.BITS,"BITS"),t.BYTES<1||t.BITS<1)throw new Error("invalid field: expected BYTES/BITS > 0");if(t.ORDER<=le)throw new Error("invalid field: expected ORDER > 1, got "+t.ORDER);return t}function Xm(t,e,r){let n=t;if(r<Se)throw new Error("invalid exponent, negatives unsupported");if(r===Se)return n.ONE;if(r===le)return e;let o=n.ONE,s=e;for(;r>Se;)r&le&&(o=n.mul(o,s)),s=n.sqr(s),r>>=le;return o}function Dn(t,e,r=!1){let n=t,o=new Array(e.length).fill(r?n.ZERO:void 0),s=e.reduce((a,c,f)=>n.is0(c)?a:(o[f]=a,n.mul(a,c)),n.ONE),i=n.inv(s);return e.reduceRight((a,c,f)=>n.is0(c)?a:(o[f]=n.mul(a,o[f]),n.mul(a,c)),i),o}function Xu(t,e){let r=t,n=(r.ORDER-le)/tr,o=r.pow(e,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 Ym(t,e){if(e!==void 0&&Ki(e),t<=Se)throw new Error("invalid n length: expected positive n, got "+t);if(e!==void 0&&e<1)throw new Error("invalid n length: expected positive bit length, got "+e);let r=Dr(t);if(e!==void 0&&e<r)throw new Error(`invalid n length: expected bit length (${r}) >= n.length (${e})`);let n=e!==void 0?e:r,o=Math.ceil(n/8);return{nBitLength:n,nByteLength:o}}var Yu=new WeakMap,qo=class{ORDER;BITS;BYTES;isLE;ZERO=Se;ONE=le;_lengths;_mod;constructor(e,r={}){if(e<=le)throw new Error("invalid field: expected ORDER > 1, got "+e);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}=Ym(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,Object.freeze(this)}create(e){return ae(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new TypeError("invalid field element: expected bigint, got "+typeof e);return Se<=e&&e<this.ORDER}is0(e){return e===Se}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&le)===le}neg(e){return ae(-e,this.ORDER)}eql(e,r){return e===r}sqr(e){return ae(e*e,this.ORDER)}add(e,r){return ae(e+r,this.ORDER)}sub(e,r){return ae(e-r,this.ORDER)}mul(e,r){return ae(e*r,this.ORDER)}pow(e,r){return Xm(this,e,r)}div(e,r){return ae(e*Zu(r,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,r){return e+r}subN(e,r){return e-r}mulN(e,r){return e*r}inv(e){return Zu(e,this.ORDER)}sqrt(e){let r=Yu.get(this);return r||Yu.set(this,r=Gm(this.ORDER)),r(this,e)}toBytes(e){return this.isLE?_n(e,this.BYTES):Ho(e,this.BYTES)}fromBytes(e,r=!1){V(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(e.length<1||!n.includes(e.length)||e.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let f=new Uint8Array(o);f.set(e,s?0:f.length-e.length),e=f}if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);let c=s?Ue(e):er(e);if(a&&(c=ae(c,i)),!r&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return Dn(this,e)}cmov(e,r,n){return $e(n,"condition"),n?r:e}};Object.freeze(qo.prototype);function Rr(t,e={}){return new qo(t,e)}function sh(t){if(typeof t!="bigint")throw new Error("field order must be bigint");if(t<=le)throw new Error("field order must be greater than 1");let e=Dr(t-le);return Math.ceil(e/8)}function qi(t){let e=sh(t);return e+Math.ceil(e/2)}function $i(t,e,r=!1){V(t);let n=t.length,o=sh(e),s=Math.max(qi(e),16);if(n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=r?Ue(t):er(t),a=ae(i,e-le)+le;return r?_n(a,o):Ho(a,o)}var Or=BigInt(0),rr=BigInt(1);function Rn(t,e){let r=e.negate();return t?r:e}function nr(t,e){let r=Dn(t.Fp,e.map(n=>n.Z));return e.map((n,o)=>t.fromAffine(n.toAffine(r[o])))}function fh(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function ji(t,e){fh(t,e);let r=Math.ceil(e/t)+1,n=2**(t-1),o=2**t,s=Tn(t),i=BigInt(t);return{windows:r,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function ih(t,e,r){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=r,a=Number(t&o),c=t>>i;a>n&&(a-=s,c+=rr);let f=e*n,u=f+Math.abs(a)-1,h=a===0,g=a<0,p=e%2!==0;return{nextN:c,offset:u,isZero:h,isNeg:g,isNegF:p,offsetF:f}}var Wi=new WeakMap,uh=new WeakMap;function Gi(t){return uh.get(t)||1}function ah(t){if(t!==Or)throw new Error("invalid wNAF")}var Ur=class{BASE;ZERO;Fn;bits;constructor(e,r){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=r}_unsafeLadder(e,r,n=this.ZERO){let o=e;for(;r>Or;)r&rr&&(n=n.add(o)),o=o.double(),r>>=rr;return n}precomputeWindow(e,r){let{windows:n,windowSize:o}=ji(r,this.bits),s=[],i=e,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(e,r,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=ji(e,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:f,isZero:u,isNeg:h,isNegF:g,offsetF:p}=ih(n,a,i);n=c,u?s=s.add(Rn(g,r[p])):o=o.add(Rn(h,r[f]))}return ah(n),{p:o,f:s}}wNAFUnsafe(e,r,n,o=this.ZERO){let s=ji(e,this.bits);for(let i=0;i<s.windows&&n!==Or;i++){let{nextN:a,offset:c,isZero:f,isNeg:u}=ih(n,i,s);if(n=a,!f){let h=r[c];o=o.add(u?h.negate():h)}}return ah(n),o}getPrecomputes(e,r,n){let o=Wi.get(r);return o||(o=this.precomputeWindow(r,e),e!==1&&(typeof n=="function"&&(o=n(o)),Wi.set(r,o))),o}cached(e,r,n){let o=Gi(e);return this.wNAF(o,this.getPrecomputes(o,e,n),r)}unsafe(e,r,n,o){let s=Gi(e);return s===1?this._unsafeLadder(e,r,o):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),r,o)}createCache(e,r){fh(r,this.bits),uh.set(e,r),Wi.delete(e)}hasCache(e){return Gi(e)!==1}};function hh(t,e,r,n){let o=e,s=t.ZERO,i=t.ZERO;for(;r>Or||n>Or;)r&rr&&(s=s.add(o)),n&rr&&(i=i.add(o)),o=o.double(),r>>=rr,n>>=rr;return{p1:s,p2:i}}function ch(t,e,r){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Vi(e),e}else return Rr(t,{isLE:r})}function $o(t,e,r={},n){if(n===void 0&&(n=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);for(let c of["p","n","h"]){let f=e[c];if(!(typeof f=="bigint"&&f>Or))throw new Error(`CURVE.${c} must be positive bigint`)}let o=ch(e.p,r.Fp,n),s=ch(e.n,r.Fn,n),a=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:o,Fn:s}}function Pr(t,e){return function(n){let o=t(n);return{secretKey:o,publicKey:e(o)}}}var Ot=BigInt(0),be=BigInt(1),Zi=BigInt(2),Jm=BigInt(8);function Qm(t,e,r,n){let o=t.sqr(r),s=t.sqr(n),i=t.add(t.mul(e.a,o),s),a=t.add(t.ONE,t.mul(e.d,t.mul(o,s)));return t.eql(i,a)}function lh(t,e={}){let r=e,n=$o("edwards",t,r,r.FpFnLE),{Fp:o,Fn:s}=n,i=n.CURVE,{h:a}=i;Pe(r,{},{uvRatio:"function"});let c=Zi<<BigInt(s.BYTES*8)-be,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:Ot}}}:r.uvRatio;if(!Qm(o,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");function h(b,l,m=!1){let A=m?be:Ot;return mt("coordinate "+b,l,A,c),l}function g(b){if(!(b instanceof p))throw new Error("EdwardsPoint expected")}class p{static BASE=new p(i.Gx,i.Gy,be,f(i.Gx*i.Gy));static ZERO=new p(Ot,be,be,Ot);static Fp=o;static Fn=s;X;Y;Z;T;constructor(l,m,A,B){this.X=h("x",l),this.Y=h("y",m),this.Z=h("z",A,!0),this.T=h("t",B),Object.freeze(this)}static CURVE(){return i}static fromAffine(l){if(l instanceof p)throw new Error("extended point not allowed");let{x:m,y:A}=l||{};return h("x",m),h("y",A),new p(m,A,be,f(m*A))}static fromBytes(l,m=!1){let A=o.BYTES,{a:B,d:T}=i;l=Rt(V(l,A,"point")),$e(m,"zip215");let D=Rt(l),U=l[A-1];D[A-1]=U&-129;let _=Ue(D),C=m?c:o.ORDER;mt("point.y",_,Ot,C);let P=f(_*_),k=f(P-be),N=f(T*P-B),{isValid:y,value:v}=u(k,N);if(!y)throw new Error("bad point: invalid y coordinate");let S=(v&be)===be,w=(U&128)!==0;if(!m&&v===Ot&&w)throw new Error("bad point: x=0 and x_0=1");return w!==S&&(v=f(-v)),p.fromAffine({x:v,y:_})}static fromHex(l,m=!1){return p.fromBytes(Tr(l),m)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(l=8,m=!0){return d.createCache(this,l),m||this.multiply(Zi),this}assertValidity(){let l=this,{a:m,d:A}=i;if(l.is0())throw new Error("bad point: ZERO");let{X:B,Y:T,Z:D,T:U}=l,_=f(B*B),C=f(T*T),P=f(D*D),k=f(P*P),N=f(_*m),y=f(P*f(N+C)),v=f(k+f(A*f(_*C)));if(y!==v)throw new Error("bad point: equation left != right (1)");let S=f(B*T),w=f(D*U);if(S!==w)throw new Error("bad point: equation left != right (2)")}equals(l){g(l);let{X:m,Y:A,Z:B}=this,{X:T,Y:D,Z:U}=l,_=f(m*U),C=f(T*B),P=f(A*U),k=f(D*B);return _===C&&P===k}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:m,Y:A,Z:B}=this,T=f(m*m),D=f(A*A),U=f(Zi*f(B*B)),_=f(l*T),C=m+A,P=f(f(C*C)-T-D),k=_+D,N=k-U,y=_-D,v=f(P*N),S=f(k*y),w=f(P*y),x=f(N*k);return new p(v,S,x,w)}add(l){g(l);let{a:m,d:A}=i,{X:B,Y:T,Z:D,T:U}=this,{X:_,Y:C,Z:P,T:k}=l,N=f(B*_),y=f(T*C),v=f(U*A*k),S=f(D*P),w=f((B+T)*(_+C)-N-y),x=S-v,L=S+v,I=f(y-m*N),E=f(w*x),R=f(L*I),O=f(w*I),M=f(x*L);return new p(E,R,M,O)}subtract(l){return g(l),this.add(l.negate())}multiply(l){if(!s.isValidNot0(l))throw new RangeError("invalid scalar: expected 1 <= sc < curve.n");let{p:m,f:A}=d.cached(this,l,B=>nr(p,B));return nr(p,[m,A])[0]}multiplyUnsafe(l){if(!s.isValid(l))throw new RangeError("invalid scalar: expected 0 <= sc < curve.n");return l===Ot?p.ZERO:this.is0()||l===be?this:d.unsafe(this,l,m=>nr(p,m))}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){return d.unsafe(this,i.n).is0()}toAffine(l){let m=this,A=l,{X:B,Y:T,Z:D}=m,U=m.is0();A==null&&(A=U?Jm:o.inv(D));let _=f(B*A),C=f(T*A),P=o.mul(D,A);if(U)return{x:Ot,y:be};if(P!==be)throw new Error("invZ was invalid");return{x:_,y:C}}clearCofactor(){return a===be?this:this.multiplyUnsafe(a)}toBytes(){let{x:l,y:m}=this.toAffine(),A=o.toBytes(m);return A[A.length-1]|=l&be?128:0,A}toHex(){return _r(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 jo=class{static BASE;static ZERO;static Fp;static Fn;ep;constructor(e){this.ep=e}static fromBytes(e){zi()}static fromHex(e){zi()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(e){return this.ep.toAffine(e)}toHex(){return _r(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(e){return this.assertSame(e),this.init(this.ep.add(e.ep))}subtract(e){return this.assertSame(e),this.init(this.ep.subtract(e.ep))}multiply(e){return this.init(this.ep.multiply(e))}multiplyUnsafe(e){return this.init(this.ep.multiplyUnsafe(e))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(e,r){return this.ep.precompute(e,r),this}};function dh(t,e,r={}){if(typeof e!="function")throw new Error('"hash" function param is required');let n=e,o=r;Pe(o,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",zip215:"boolean",mapToCurve:"function"});let{prehash:s}=o,{BASE:i,Fp:a,Fn:c}=t,f=n.outputLen,u=2*a.BYTES;if(f!==void 0&&(je(f,"hash.outputLen"),f!==u))throw new Error(`hash.outputLen must be ${u}, got ${f}`);let h=o.randomBytes===void 0?Qt:o.randomBytes,g=o.adjustScalarBytes===void 0?y=>y:o.adjustScalarBytes,p=o.domain===void 0?(y,v,S)=>{if($e(S,"phflag"),v.length||S)throw new Error("Contexts/pre-hash are not supported");return y}:o.domain;function d(y){return c.create(Ue(y))}function b(y){let v=_.secretKey;V(y,_.secretKey,"secretKey");let S=V(n(y),2*v,"hashedSecretKey"),w=g(S.slice(0,v)),x=S.slice(v,2*v),L=d(w);return{head:w,prefix:x,scalar:L}}function l(y){let{head:v,prefix:S,scalar:w}=b(y),x=i.multiply(w),L=x.toBytes();return{head:v,prefix:S,scalar:w,point:x,pointBytes:L}}function m(y){return l(y).pointBytes}function A(y=Uint8Array.of(),...v){let S=ye(...v);return d(n(p(S,V(y,void 0,"context"),!!s)))}function B(y,v,S={}){y=V(y,void 0,"message"),s&&(y=s(y));let{prefix:w,scalar:x,pointBytes:L}=l(v),I=A(S.context,w,y),E=i.multiply(I).toBytes(),R=A(S.context,E,L,y),O=c.create(I+R*x);if(!c.isValid(O))throw new Error("sign failed: invalid s");let M=ye(E,c.toBytes(O));return V(M,_.signature,"result")}let T={zip215:o.zip215};function D(y,v,S,w=T){let{context:x}=w,L=w.zip215===void 0?!!T.zip215:w.zip215,I=_.signature;y=V(y,I,"signature"),v=V(v,void 0,"message"),S=V(S,_.publicKey,"publicKey"),L!==void 0&&$e(L,"zip215"),s&&(v=s(v));let E=I/2,R=y.subarray(0,E),O=Ue(y.subarray(E,I)),M,z,K;try{M=t.fromBytes(S,L),z=t.fromBytes(R,L),K=i.multiplyUnsafe(O)}catch{return!1}if(!L&&M.isSmallOrder())return!1;let Y=A(x,R,S,v);return z.add(M.multiplyUnsafe(Y)).subtract(K).clearCofactor().is0()}let U=a.BYTES,_={secretKey:U,publicKey:U,signature:2*U,seed:U};function C(y){return y=y===void 0?h(_.seed):y,V(y,_.seed,"seed")}function P(y){return Jt(y)&&y.length===_.secretKey}function k(y,v){try{return!!t.fromBytes(y,v===void 0?T.zip215:v)}catch{return!1}}let N={getExtendedPublicKey:l,randomSecretKey:C,isValidSecretKey:P,isValidPublicKey:k,toMontgomery(y){let{y:v}=t.fromBytes(y),S=_.publicKey,w=S===32;if(!w&&S!==57)throw new Error("only defined for 25519 and 448");let x=w?a.div(be+v,be-v):a.div(v-be,v+be);return a.toBytes(x)},toMontgomerySecret(y){let v=_.secretKey;V(y,v);let S=n(y.subarray(0,v));return g(S).subarray(0,v)}};return Object.freeze(_),Object.freeze(N),Object.freeze({keygen:Pr(C,m),getPublicKey:m,sign:B,verify:D,utils:N,Point:t,lengths:_})}function On(t,e){if(je(t),je(e),e<0||e>4)throw new Error("invalid I2OSP length: "+e);if(t<0||t>2**(8*e)-1)throw new Error("invalid I2OSP input: "+t);let r=Array.from({length:e}).fill(0);for(let n=e-1;n>=0;n--)r[n]=t&255,t>>>=8;return new Uint8Array(r)}function e0(t,e){let r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t[n]^e[n];return r}function t0(t){if(!Jt(t)&&typeof t!="string")throw new Error("DST must be Uint8Array or ascii string");let e=typeof t=="string"?Vo(t):t;if(e.length===0)throw new Error("DST must be non-empty");return e}function Xi(t,e,r,n){V(t),je(r),e=t0(e),e.length>255&&(e=n(ye(Vo("H2C-OVERSIZE-DST-"),e)));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=ye(e,On(e.length,1)),c=new Uint8Array(s),f=On(r,2),u=new Array(i),h=n(ye(c,t,f,On(0,1),a));u[0]=n(ye(h,On(1,1),a));for(let p=1;p<i;p++){let d=[e0(h,u[p-1]),On(p+1,1),a];u[p]=n(ye(...d))}return ye(...u).slice(0,r)}var ph="HashToScalar-";var Un=BigInt(0),Nr=BigInt(1),Wo=BigInt(2);function r0(t){return Pe(t,{P:"bigint",type:"string",adjustScalarBytes:"function",powPminus2:"function"},{randomBytes:"function"}),Object.freeze({...t})}function mh(t){let e=r0(t),{P:r,type:n,adjustScalarBytes:o,powPminus2:s,randomBytes:i}=e,a=n==="x25519";if(!a&&n!=="x448")throw new Error("invalid type");let c=i===void 0?Qt:i,f=a?255:448,u=a?32:56,h=BigInt(a?9:5),g=BigInt(a?121665:39081),p=a?Wo**BigInt(254):Wo**BigInt(447),d=a?BigInt(8)*Wo**BigInt(251)-Nr:BigInt(4)*Wo**BigInt(445)-Nr,b=p+d+Nr,l=S=>ae(S,r),m=A(h);function A(S){return _n(l(S),u)}function B(S){let w=Rt(V(S,u,"uCoordinate"));return a&&(w[31]&=127),l(Ue(w))}function T(S){return Ue(o(Rt(V(S,u,"scalar"))))}function D(S,w){let x=k(B(w),T(S));if(x===Un)throw new Error("invalid private or public key received");return A(x)}function U(S){return D(S,m)}let _=U,C=D;function P(S,w,x){let L=l(S*(w-x));return w=l(w-L),x=l(x+L),{x_2:w,x_3:x}}function k(S,w){mt("u",S,Un,r),mt("scalar",w,p,b);let x=w,L=S,I=Nr,E=Un,R=S,O=Nr,M=Un;for(let K=BigInt(f-1);K>=Un;K--){let Y=x>>K&Nr;M^=Y,{x_2:I,x_3:R}=P(M,I,R),{x_2:E,x_3:O}=P(M,E,O),M=Y;let J=I+E,Q=l(J*J),j=I-E,ie=l(j*j),ct=Q-ie,Vt=R+O,br=R-O,dn=l(br*J),pn=l(Vt*j),tu=dn+pn,ru=dn-pn;R=l(tu*tu),O=l(L*l(ru*ru)),I=l(Q*ie),E=l(ct*(Q+l(g*ct)))}({x_2:I,x_3:R}=P(M,I,R)),{x_2:E,x_3:O}=P(M,E,O);let z=s(E);return l(I*z)}let N={secretKey:u,publicKey:u,seed:u},y=S=>(S=S===void 0?c(u):S,V(S,N.seed,"seed"),S),v={randomSecretKey:y};return Object.freeze(N),Object.freeze(v),Object.freeze({keygen:Pr(y,_),getSharedSecret:C,getPublicKey:_,scalarMult:D,scalarMultBase:U,utils:v,GuBytes:m.slice(),lengths:N})}var n0=BigInt(0),gt=BigInt(1),yh=BigInt(2),o0=BigInt(3),s0=BigInt(5),i0=BigInt(8),or=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),ea={p:or,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:i0,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function xh(t){let e=BigInt(10),r=BigInt(20),n=BigInt(40),o=BigInt(80),s=or,a=t*t%s*t%s,c=ne(a,yh,s)*a%s,f=ne(c,gt,s)*t%s,u=ne(f,s0,s)*f%s,h=ne(u,e,s)*u%s,g=ne(h,r,s)*h%s,p=ne(g,n,s)*g%s,d=ne(p,o,s)*p%s,b=ne(d,o,s)*p%s,l=ne(b,e,s)*u%s;return{pow_p_5_8:ne(l,yh,s)*t%s,b2:a}}function wh(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}var Yi=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function ta(t,e){let r=or,n=ae(e*e*e,r),o=ae(n*n*e,r),s=xh(t*o).pow_p_5_8,i=ae(t*n*s,r),a=ae(e*i*i,r),c=i,f=ae(i*Yi,r),u=a===t,h=a===ae(-t,r),g=a===ae(-t*Yi,r);return u&&(i=c),(h||g)&&(i=f),yt(i,r)&&(i=ae(-i,r)),{isValid:u||h,value:i}}var Pt=lh(ea,{uvRatio:ta}),Ut=Pt.Fp,Eh=Pt.Fn;function a0(t){return dh(Pt,ko,Object.assign({adjustScalarBytes:wh,zip215:!0},t))}var Sh=a0({});var Pn=(()=>{let t=or;return mh({P:t,type:"x25519",powPminus2:e=>{let{pow_p_5_8:r,b2:n}=xh(e);return ae(ne(r,o0,t)*n,t)},adjustScalarBytes:wh})})();var Ji=Yi,c0=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),f0=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),u0=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),h0=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),gh=t=>ta(gt,t),l0=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Qi=t=>Ut.create(Ue(t)&l0);function bh(t){let{d:e}=ea,r=or,n=m=>Ut.create(m),o=n(Ji*t*t),s=n((o+gt)*u0),i=BigInt(-1),a=n((i-e*o)*n(o+e)),{isValid:c,value:f}=ta(s,a),u=n(f*t);yt(u,r)||(u=n(-u)),c||(f=u),c||(i=o);let h=n(i*(o-gt)*h0-a),g=f*f,p=n((f+f)*a),d=n(h*c0),b=n(gt-g),l=n(gt+g);return new Pt(n(p*l),n(b*d),n(d*l),n(p*b))}var Nt=class t extends jo{static BASE=new t(Pt.BASE);static ZERO=new t(Pt.ZERO);static Fp=Ut;static Fn=Eh;constructor(e){super(e)}static fromAffine(e){return new t(Pt.fromAffine(e))}assertSame(e){if(!(e instanceof t))throw new Error("RistrettoPoint expected")}init(e){return new t(e)}static fromBytes(e){Be(e,32);let{a:r,d:n}=ea,o=or,s=T=>Ut.create(T),i=Qi(e);if(!Wu(Ut.toBytes(i),e)||yt(i,o))throw new Error("invalid ristretto255 encoding 1");let a=s(i*i),c=s(gt+r*a),f=s(gt-r*a),u=s(c*c),h=s(f*f),g=s(r*n*u-h),{isValid:p,value:d}=gh(s(g*h)),b=s(d*f),l=s(d*b*g),m=s((i+i)*b);yt(m,o)&&(m=s(-m));let A=s(c*l),B=s(m*A);if(!p||yt(B,o)||A===n0)throw new Error("invalid ristretto255 encoding 2");return new t(new Pt(m,A,gt,B))}static fromHex(e){return t.fromBytes(An(e))}toBytes(){let{X:e,Y:r,Z:n,T:o}=this.ep,s=or,i=l=>Ut.create(l),a=i(i(n+r)*i(n-r)),c=i(e*r),f=i(c*c),{value:u}=gh(i(a*f)),h=i(u*a),g=i(u*c),p=i(h*g*o),d;if(yt(o*p,s)){let l=i(r*Ji),m=i(e*Ji);e=l,r=m,d=i(h*f0)}else d=g;yt(e*p,s)&&(r=i(-r));let b=i((n-r)*d);return yt(b,s)&&(b=i(-b)),Ut.toBytes(b)}equals(e){this.assertSame(e);let{X:r,Y:n}=this.ep,{X:o,Y:s}=e.ep,i=f=>Ut.create(f),a=i(r*s)===i(n*o),c=i(n*s)===i(r*o);return a||c}is0(){return this.equals(t.ZERO)}};Object.freeze(Nt.BASE);Object.freeze(Nt.ZERO);Object.freeze(Nt.prototype);Object.freeze(Nt);var d0=Object.freeze({Point:Nt,hashToCurve(t,e){let r=e?.DST===void 0?"ristretto255_XMD:SHA-512_R255MAP_RO_":e.DST,n=Xi(t,r,64,ko);return d0.deriveToCurve(n)},hashToScalar(t,e={DST:ph}){let r=Xi(t,e.DST,64,ko);return Eh.create(Ue(r))},deriveToCurve(t){Be(t,64);let e=Qi(t.subarray(0,32)),r=bh(e),n=Qi(t.subarray(32,64)),o=bh(n);return new Nt(r.add(o))}});var Nn=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}},Go=class extends Error{constructor(e="Missing Web Crypto API"){super(e),this.name="WebCryptoMissingError"}};var ke={get(t=globalThis){let e=t.crypto;if(e?.subtle==null)throw new Go("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 e}};var Zo=32;var ra,p0=(async()=>{try{return await ke.get().subtle.generateKey({name:"Ed25519"},!0,["sign","verify"]),!0}catch{return!1}})();async function m0(t,e,r){if(t.buffer instanceof ArrayBuffer){let n=await ke.get().subtle.importKey("raw",t.buffer,{name:"Ed25519"},!1,["verify"]);return await ke.get().subtle.verify({name:"Ed25519"},n,De(e),De(r instanceof Uint8Array?r:r.subarray()))}throw new TypeError("WebCrypto does not support SharedArrayBuffer for Ed25519 keys")}function y0(t,e,r){return Sh.verify(e,r instanceof Uint8Array?r:r.subarray(),t)}async function vh(t,e,r){return ra==null&&(ra=await p0),ra?m0(t,e,r):y0(t,e,r)}function g0(t){return t?.buffer instanceof ArrayBuffer}function na(t){if(g0(t))return t;let e=t.slice();return new Uint8Array(e.buffer,0,e.byteLength)}function sr(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=Gt(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return na(r)}function Xo(t){return t==null?!1:typeof t.then=="function"&&typeof t.catch=="function"&&typeof t.finally=="function"}var Yo=class{type="Ed25519";raw;constructor(e){this.raw=oa(e,Zo)}toMultihash(){return He.digest(It(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return he.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}verify(e,r,n){n?.signal?.throwIfAborted();let o=vh(this.raw,r,e);return Xo(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function sa(t){return t=oa(t,Zo),new Yo(t)}function oa(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new ee(`Key must be a Uint8Array of length ${e}, got ${t.length}`);return t}function Bh(t=0){return new Uint8Array(t)}var x0=Math.pow(2,7),w0=Math.pow(2,14),E0=Math.pow(2,21),ia=Math.pow(2,28),aa=Math.pow(2,35),ca=Math.pow(2,42),fa=Math.pow(2,49),X=128,Le=127;function Re(t){if(t<x0)return 1;if(t<w0)return 2;if(t<E0)return 3;if(t<ia)return 4;if(t<aa)return 5;if(t<ca)return 6;if(t<fa)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Mn(t,e,r=0){switch(Re(t)){case 8:e[r++]=t&255|X,t/=128;case 7:e[r++]=t&255|X,t/=128;case 6:e[r++]=t&255|X,t/=128;case 5:e[r++]=t&255|X,t/=128;case 4:e[r++]=t&255|X,t>>>=7;case 3:e[r++]=t&255|X,t>>>=7;case 2:e[r++]=t&255|X,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function S0(t,e,r=0){switch(Re(t)){case 8:e.set(r++,t&255|X),t/=128;case 7:e.set(r++,t&255|X),t/=128;case 6:e.set(r++,t&255|X),t/=128;case 5:e.set(r++,t&255|X),t/=128;case 4:e.set(r++,t&255|X),t>>>=7;case 3:e.set(r++,t&255|X),t>>>=7;case 2:e.set(r++,t&255|X),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function kn(t,e){let r=t[e],n=0;if(n+=r&Le,r<X||(r=t[e+1],n+=(r&Le)<<7,r<X)||(r=t[e+2],n+=(r&Le)<<14,r<X)||(r=t[e+3],n+=(r&Le)<<21,r<X)||(r=t[e+4],n+=(r&Le)*ia,r<X)||(r=t[e+5],n+=(r&Le)*aa,r<X)||(r=t[e+6],n+=(r&Le)*ca,r<X)||(r=t[e+7],n+=(r&Le)*fa,r<X))return n;throw new RangeError("Could not decode varint")}function v0(t,e){let r=t.get(e),n=0;if(n+=r&Le,r<X||(r=t.get(e+1),n+=(r&Le)<<7,r<X)||(r=t.get(e+2),n+=(r&Le)<<14,r<X)||(r=t.get(e+3),n+=(r&Le)<<21,r<X)||(r=t.get(e+4),n+=(r&Le)*ia,r<X)||(r=t.get(e+5),n+=(r&Le)*aa,r<X)||(r=t.get(e+6),n+=(r&Le)*ca,r<X)||(r=t.get(e+7),n+=(r&Le)*fa,r<X))return n;throw new RangeError("Could not decode varint")}function Lh(t,e,r=0){return e==null&&(e=Bh(Re(t))),e instanceof Uint8Array?Mn(t,e,r):S0(t,e,r)}function Jo(t,e=0){return t instanceof Uint8Array?kn(t,e):v0(t,e)}var ua=new Float32Array([-0]),Mt=new Uint8Array(ua.buffer);function Ih(t,e,r){ua[0]=t,e[r]=Mt[0],e[r+1]=Mt[1],e[r+2]=Mt[2],e[r+3]=Mt[3]}function _h(t,e){return Mt[0]=t[e],Mt[1]=t[e+1],Mt[2]=t[e+2],Mt[3]=t[e+3],ua[0]}var ha=new Float64Array([-0]),Ce=new Uint8Array(ha.buffer);function Th(t,e,r){ha[0]=t,e[r]=Ce[0],e[r+1]=Ce[1],e[r+2]=Ce[2],e[r+3]=Ce[3],e[r+4]=Ce[4],e[r+5]=Ce[5],e[r+6]=Ce[6],e[r+7]=Ce[7]}function Dh(t,e){return Ce[0]=t[e],Ce[1]=t[e+1],Ce[2]=t[e+2],Ce[3]=t[e+3],Ce[4]=t[e+4],Ce[5]=t[e+5],Ce[6]=t[e+6],Ce[7]=t[e+7],ha[0]}var A0=BigInt(Number.MAX_SAFE_INTEGER),B0=BigInt(Number.MIN_SAFE_INTEGER),Ne=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&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(e=!1){if(e)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(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return ir;if(e<A0&&e>B0)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,o=e-(n<<32n);return r&&(n=~n|0n,o=~o|0n,++o>Rh&&(o=0n,++n>Rh&&(n=0n))),new t(Number(o),Number(n))}static fromNumber(e){if(e===0)return ir;let r=e<0;r&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new t(n,o)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):ir}},ir=new Ne(0,0);ir.toBigInt=function(){return 0n};ir.zzEncode=ir.zzDecode=function(){return this};ir.length=function(){return 1};var Rh=4294967296n;function Oh(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Uh(t,e,r){if(r-e<1)return"";let o,s=[],i=0,a;for(;e<r;)a=t[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&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 la(t,e,r){let n=r,o,s;for(let i=0;i<t.length;++i)o=t.charCodeAt(i),o<128?e[r++]=o:o<2048?(e[r++]=o>>6|192,e[r++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[r++]=o>>18|240,e[r++]=o>>12&63|128,e[r++]=o>>6&63|128,e[r++]=o&63|128):(e[r++]=o>>12|224,e[r++]=o>>6&63|128,e[r++]=o&63|128);return r-n}function We(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function Qo(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var da=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,We(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw We(this,4);return Qo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw We(this,4);return Qo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw We(this,4);let e=_h(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw We(this,4);let e=Dh(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw We(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return Uh(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw We(this,e);this.pos+=e}else do if(this.pos>=this.len)throw We(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new Ne(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw We(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw We(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw We(this,8);let e=Qo(this.buf,this.pos+=4),r=Qo(this.buf,this.pos+=4);return new Ne(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=kn(this.buf,this.pos);return this.pos+=Re(e),e}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 Fn(t){return new da(t instanceof Uint8Array?t:t.subarray())}function es(t,e,r){let n=Fn(t);return e.decode(n,void 0,r)}function ar(t=0){return new Uint8Array(t)}var ba={};H(ba,{base10:()=>R0});var yE=new Uint8Array(0);function Nh(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function bt(t){if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")}function Mh(t){return new TextEncoder().encode(t)}function kh(t){return new TextDecoder().decode(t)}function L0(t,e){if(t.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<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,c=t.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,m=0,A=d.length;m!==A&&d[m]===0;)m++,b++;for(var B=(A-m)*u+1>>>0,T=new Uint8Array(B);m!==A;){for(var D=d[m],U=0,_=B-1;(D!==0||U<l)&&_!==-1;_--,U++)D+=256*T[_]>>>0,T[_]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,m++}for(var C=B-l;C!==B&&T[C]===0;)C++;for(var P=c.repeat(b);C<B;++C)P+=t.charAt(T[C]);return P}function g(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,m=0;d[b]===c;)l++,b++;for(var A=(d.length-b)*f+1>>>0,B=new Uint8Array(A);d[b];){var T=r[d.charCodeAt(b)];if(T===255)return;for(var D=0,U=A-1;(T!==0||D<m)&&U!==-1;U--,D++)T+=a*B[U]>>>0,B[U]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=D,b++}if(d[b]!==" "){for(var _=A-m;_!==A&&B[_]===0;)_++;for(var C=new Uint8Array(l+(A-_)),P=l;_!==A;)C[P++]=B[_++];return C}}}function p(d){var b=g(d);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:g,decode:p}}var C0=L0,I0=C0,Kh=I0;var pa=class{name;prefix;baseEncode;constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ma=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){this.name=e,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(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return zh(this,e)}},ya=class{decoders;constructor(e){this.decoders=e}or(e){return zh(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function zh(t,e){return new ya({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var ga=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new pa(e,r,n),this.decoder=new ma(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Mr({name:t,prefix:e,encode:r,decode:n}){return new ga(t,e,r,n)}function kt({name:t,prefix:e,alphabet:r}){let{encode:n,decode:o}=Kh(r,t);return Mr({prefix:e,name:t,encode:n,decode:s=>bt(o(s))})}function _0(t,e,r,n){let o=t.length;for(;t[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=e[t[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 T0(t,e,r){let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function D0(t){let e={};for(let r=0;r<t.length;++r)e[t[r]]=r;return e}function de({name:t,prefix:e,bitsPerChar:r,alphabet:n}){let o=D0(n);return Mr({prefix:e,name:t,encode(s){return T0(s,n,r)},decode(s){return _0(s,o,r,t)}})}var R0=kt({prefix:"9",name:"base10",alphabet:"0123456789"});var xa={};H(xa,{base16:()=>O0,base16upper:()=>U0});var O0=de({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),U0=de({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var wa={};H(wa,{base2:()=>P0});var P0=de({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ea={};H(Ea,{base256emoji:()=>K0});var Hh=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}"),N0=Hh.reduce((t,e,r)=>(t[r]=e,t),[]),M0=Hh.reduce((t,e,r)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return t[n]=r,t},[]);function k0(t){return t.reduce((e,r)=>(e+=N0[r],e),"")}function F0(t){let e=[];for(let r of t){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=M0[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);e.push(o)}return new Uint8Array(e)}var K0=Mr({prefix:"\u{1F680}",name:"base256emoji",encode:k0,decode:F0});var Sa={};H(Sa,{base32:()=>kr,base32hex:()=>q0,base32hexpad:()=>j0,base32hexpadupper:()=>W0,base32hexupper:()=>$0,base32pad:()=>H0,base32padupper:()=>V0,base32upper:()=>z0,base32z:()=>G0});var kr=de({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),z0=de({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),H0=de({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),V0=de({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),q0=de({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),$0=de({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),j0=de({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),W0=de({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),G0=de({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var va={};H(va,{base36:()=>Kn,base36upper:()=>Z0});var Kn=kt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Z0=kt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Aa={};H(Aa,{base58btc:()=>et,base58flickr:()=>X0});var et=kt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),X0=kt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ba={};H(Ba,{base64:()=>Y0,base64pad:()=>J0,base64url:()=>Q0,base64urlpad:()=>ey});var Y0=de({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),J0=de({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Q0=de({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ey=de({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var La={};H(La,{base8:()=>ty});var ty=de({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ca={};H(Ca,{identity:()=>ry});var ry=Mr({prefix:"\0",name:"identity",encode:t=>kh(t),decode:t=>Mh(t)});var RE=new TextEncoder,OE=new TextDecoder;var _a={};H(_a,{identity:()=>By});var sy=$h,Vh=128,iy=127,ay=~iy,cy=Math.pow(2,31);function $h(t,e,r){e=e||[],r=r||0;for(var n=r;t>=cy;)e[r++]=t&255|Vh,t/=128;for(;t&ay;)e[r++]=t&255|Vh,t>>>=7;return e[r]=t|0,$h.bytes=r-n+1,e}var fy=Ia,uy=128,qh=127;function Ia(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw Ia.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&qh)<<o:(i&qh)*Math.pow(2,o),o+=7}while(i>=uy);return Ia.bytes=s-n,r}var hy=Math.pow(2,7),ly=Math.pow(2,14),dy=Math.pow(2,21),py=Math.pow(2,28),my=Math.pow(2,35),yy=Math.pow(2,42),gy=Math.pow(2,49),by=Math.pow(2,56),xy=Math.pow(2,63),wy=function(t){return t<hy?1:t<ly?2:t<dy?3:t<py?4:t<my?5:t<yy?6:t<gy?7:t<by?8:t<xy?9:10},Ey={encode:sy,decode:fy,encodingLength:wy},Sy=Ey,zn=Sy;function Hn(t,e=0){return[zn.decode(t,e),zn.decode.bytes]}function Fr(t,e,r=0){return zn.encode(t,e,r),e}function Kr(t){return zn.encodingLength(t)}function Hr(t,e){let r=e.byteLength,n=Kr(t),o=n+Kr(r),s=new Uint8Array(o+r);return Fr(t,s,0),Fr(r,s,n),s.set(e,o),new zr(t,r,e,s)}function jh(t){let e=bt(t),[r,n]=Hn(e),[o,s]=Hn(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new zr(r,o,i,e)}function Wh(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&Nh(t.bytes,r.bytes)}}var zr=class{code;size;digest;bytes;constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var Gh=0,vy="identity",Zh=bt;function Ay(t,e){if(e?.truncate!=null&&e.truncate!==t.byteLength){if(e.truncate<0||e.truncate>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,e.truncate)}return Hr(Gh,Zh(t))}var By={code:Gh,name:vy,encode:Zh,digest:Ay};var Ra={};H(Ra,{sha256:()=>Cy,sha512:()=>Iy});var Ly=20;function Da({name:t,code:e,encode:r,minDigestLength:n,maxDigestLength:o}){return new Ta(t,e,r,n,o)}var Ta=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,r,n,o,s){this.name=e,this.code=r,this.encode=n,this.minDigestLength=o??Ly,this.maxDigestLength=s}digest(e,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(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?Xh(n,this.code,r?.truncate):n.then(o=>Xh(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function Xh(t,e,r){if(r!=null&&r!==t.byteLength){if(r>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,r)}return Hr(e,t)}function Jh(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var Cy=Da({name:"sha2-256",code:18,encode:Jh("SHA-256")}),Iy=Da({name:"sha2-512",code:19,encode:Jh("SHA-512")});function Qh(t,e){let{bytes:r,version:n}=t;return n===0?Ty(r,Oa(t),e??et.encoder):Dy(r,Oa(t),e??kr.encoder)}var el=new WeakMap;function Oa(t){let e=el.get(t);if(e==null){let r=new Map;return el.set(t,r),r}return e}var rs=class t{code;version;multihash;bytes;"/";constructor(e,r,n,o){this.code=r,this.version=e,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:e,multihash:r}=this;if(e!==qn)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Ry)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.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:e,digest:r}=this.multihash,n=Hr(e,r);return t.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(e){return t.equals(this,e)}static equals(e,r){let n=r;return n!=null&&e.code===n.code&&e.version===n.version&&Wh(e.multihash,n.multihash)}toString(e){return Qh(this,e)}toJSON(){return{"/":Qh(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new t(n,o,s,i??tl(n,o,s.bytes))}else if(r[Oy]===!0){let{version:n,multihash:o,code:s}=r,i=jh(o);return t.create(n,s,i)}else return null}static create(e,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(e){case 0:{if(r!==qn)throw new Error(`Version 0 CID must use dag-pb (code: ${qn}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=tl(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,qn,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=bt(e.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 zr(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(i):t.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[h,g]=Hn(e.subarray(r));return r+=g,h},o=n(),s=qn;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(e,r){let[n,o]=_y(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Oa(s).set(n,e),s}};function _y(t,e){switch(t[0]){case"Q":{let r=e??et;return[et.prefix,r.decode(`${et.prefix}${t}`)]}case et.prefix:{let r=e??et;return[et.prefix,r.decode(t)]}case kr.prefix:{let r=e??kr;return[kr.prefix,r.decode(t)]}case Kn.prefix:{let r=e??Kn;return[Kn.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function Ty(t,e,r){let{prefix:n}=r;if(n!==et.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o}function Dy(t,e,r){let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o}var qn=112,Ry=18;function tl(t,e,r){let n=Kr(t),o=n+Kr(e),s=new Uint8Array(o+r.byteLength);return Fr(t,s,0),Fr(e,s,n),s.set(r,o),s}var Oy=Symbol.for("@ipld/js-cid/CID");var Ua={...Ca,...wa,...La,...ba,...xa,...Sa,...va,...Aa,...Ba,...Ea},tS={...Ra,..._a};function nl(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var rl=nl("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Pa=nl("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=ar(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Uy={utf8:rl,"utf-8":rl,hex:Ua.base16,latin1:Pa,ascii:Pa,binary:Pa,...Ua},ol=Uy;function sl(t,e="utf8"){let r=ol[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}function Na(t){let e=t??8192,r=e>>>1,n,o=e;return function(i){if(i<1||i>r)return ar(i);o+i>e&&(n=ar(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var cr=class{fn;len;next;val;constructor(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function Ma(){}var Fa=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Py=Na();function Ny(t){return globalThis.Buffer!=null?ar(t):Py(t)}var jn=class{len;head;tail;states;constructor(){this.len=0,this.head=new cr(Ma,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new cr(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Ka((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(ns,10,Ne.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=Ne.fromBigInt(e);return this._push(ns,r.length(),r)}uint64Number(e){return this._push(Mn,Re(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let r=Ne.fromBigInt(e).zzEncode();return this._push(ns,r.length(),r)}sint64Number(e){let r=Ne.fromNumber(e).zzEncode();return this._push(ns,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(ka,1,e?1:0)}fixed32(e){return this._push($n,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=Ne.fromBigInt(e);return this._push($n,4,r.lo)._push($n,4,r.hi)}fixed64Number(e){let r=Ne.fromNumber(e);return this._push($n,4,r.lo)._push($n,4,r.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Ih,4,e)}double(e){return this._push(Th,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(ka,1,0):this.uint32(r)._push(ky,r,e)}string(e){let r=Oh(e);return r!==0?this.uint32(r)._push(la,r,e):this._push(ka,1,0)}fork(){return this.states=new Fa(this),this.head=this.tail=new cr(Ma,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 cr(Ma,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=Ny(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function ka(t,e,r){e[r]=t&255}function My(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var Ka=class extends cr{next;constructor(e,r){super(My,e,r),this.next=void 0}};function ns(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function $n(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function ky(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(jn.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(Fy,e,t),this},jn.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(Ky,e,t),this});function Fy(t,e,r){e.set(t,r)}function Ky(t,e,r){t.length<40?la(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(sl(t),r)}function za(){return new jn}function os(t,e){let r=za();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}function*ss(t,e,r){let n=Fn(t);yield*e.stream(n,void 0,"$",r)}var is={VARINT:0,BIT64:1,LENGTH_DELIMITED:2,START_GROUP:3,END_GROUP:4,BIT32:5};function as(t,e,r,n,o){return{name:t,type:e,encode:r,decode:n,stream:o}}function Ha(t){function e(s){if(t[s.toString()]==null)throw new Error("Invalid enum value");return t[s]}let r=function(i,a){let c=e(i);a.int32(c)},n=function(i){let a=i.int32();return e(a)},o=function*(i){let a=i.int32();yield e(a)};return as("enum",is.VARINT,r,n,o)}function cs(t,e,r){return as("message",is.LENGTH_DELIMITED,t,e,r)}var ce;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.secp256k1="secp256k1",t.ECDSA="ECDSA"})(ce||(ce={}));var Va;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.secp256k1=2]="secp256k1",t[t.ECDSA=3]="ECDSA"})(Va||(Va={}));(function(t){t.codec=()=>Ha(Va)})(ce||(ce={}));var tt;(function(t){let e;t.codec=()=>(e==null&&(e=cs((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ce.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=ce.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:ce.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function r(s){return os(s,t.codec())}t.encode=r;function n(s,i){return es(s,t.codec(),i)}t.decode=n;function o(s,i){return ss(s,t.codec(),i)}t.stream=o})(tt||(tt={}));var qa;(function(t){let e;t.codec=()=>(e==null&&(e=cs((s,i,a={})=>{a.lengthDelimited!==!1&&i.fork(),s.Type!=null&&(i.uint32(8),ce.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=ce.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:ce.codec().decode(s)};break}case 2:{yield{field:`${a}.Data`,value:s.bytes()};break}default:{s.skipType(u&7);break}}}})),e);function r(s){return os(s,t.codec())}t.encode=r;function n(s,i){return es(s,t.codec(),i)}t.decode=n;function o(s,i){return ss(s,t.codec(),i)}t.stream=o})(qa||(qa={}));var Gn={};H(Gn,{MAX_RSA_KEY_SIZE:()=>$a,generateRSAKeyPair:()=>ul,jwkToJWKKeyPair:()=>hl,jwkToPkcs1:()=>qy,jwkToPkix:()=>Za,jwkToRSAPrivateKey:()=>Qa,pkcs1MessageToJwk:()=>Wa,pkcs1MessageToRSAPrivateKey:()=>Xa,pkcs1ToJwk:()=>Vy,pkcs1ToRSAPrivateKey:()=>fl,pkixMessageToJwk:()=>Ga,pkixMessageToRSAPublicKey:()=>Ja,pkixToJwk:()=>$y,pkixToRSAPublicKey:()=>Ya});var Vr=class{type="RSA";jwk;_raw;_multihash;constructor(e,r){this.jwk=e,this._multihash=r}get raw(){return this._raw==null&&(this._raw=Gn.jwkToPkix(this.jwk)),this._raw}toMultihash(){return this._multihash}toCID(){return me.createV1(114,this._multihash)}toString(){return he.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}verify(e,r,n){return cl(this.jwk,r,e,n)}},Wn=class{type="RSA";jwk;_raw;publicKey;constructor(e,r){this.jwk=e,this.publicKey=r}get raw(){return this._raw==null&&(this._raw=Gn.jwkToPkcs1(this.jwk)),this._raw}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}sign(e,r){return al(this.jwk,e,r)}};var $a=8192,ja=18,zy=1062,Hy=Uint8Array.from([48,13,6,9,42,134,72,134,247,13,1,1,1,5,0]);function Vy(t){let e=lt(t);return Wa(e)}function Wa(t){return{n:G(t[1],"base64url"),e:G(t[2],"base64url"),d:G(t[3],"base64url"),p:G(t[4],"base64url"),q:G(t[5],"base64url"),dp:G(t[6],"base64url"),dq:G(t[7],"base64url"),qi:G(t[8],"base64url"),kty:"RSA"}}function qy(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new ee("JWK was missing components");return Ct([Oe(Uint8Array.from([0])),Oe(re(t.n,"base64url")),Oe(re(t.e,"base64url")),Oe(re(t.d,"base64url")),Oe(re(t.p,"base64url")),Oe(re(t.q,"base64url")),Oe(re(t.dp,"base64url")),Oe(re(t.dq,"base64url")),Oe(re(t.qi,"base64url"))]).subarray()}function $y(t){let e=lt(t,{offset:0});return Ga(e)}function Ga(t){let e=lt(t[1],{offset:0});return{kty:"RSA",n:G(e[0],"base64url"),e:G(e[1],"base64url")}}function Za(t){if(t.n==null||t.e==null)throw new ee("JWK was missing components");return Ct([Hy,Oo(Ct([Oe(re(t.n,"base64url")),Oe(re(t.e,"base64url"))]))]).subarray()}function fl(t){let e=lt(t);return Xa(e)}function Xa(t){let e=Wa(t);return Qa(e)}function Ya(t,e){if(t.byteLength>=zy)throw new wr("Key size is too large");let r=lt(t,{offset:0});return Ja(r,t,e)}function Ja(t,e,r){let n=Ga(t);if(r==null){let o=Qe(tt.encode({Type:ce.RSA,Data:e}));r=ze(ja,o)}return new Vr(n,r)}function Qa(t){if(dl(t)>$a)throw new ee("Key size is too large");let e=hl(t),r=Qe(tt.encode({Type:ce.RSA,Data:Za(e.publicKey)})),n=ze(ja,r);return new Wn(e.privateKey,new Vr(e.publicKey,n))}async function ul(t){if(t>$a)throw new ee("Key size is too large");let e=await ll(t),r=Qe(tt.encode({Type:ce.RSA,Data:Za(e.publicKey)})),n=ze(ja,r);return new Wn(e.privateKey,new Vr(e.publicKey,n))}function hl(t){if(t==null)throw new ee("Missing key parameter");return{privateKey:t,publicKey:{kty:t.kty,n:t.n,e:t.e}}}async function ll(t,e){let r=await ke.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]);e?.signal?.throwIfAborted();let n=await jy(r,e);return{privateKey:n[0],publicKey:n[1]}}async function al(t,e,r){let n=await ke.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]);r?.signal?.throwIfAborted();let o=await ke.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},n,De(e instanceof Uint8Array?e:e.subarray()));return r?.signal?.throwIfAborted(),new Uint8Array(o,0,o.byteLength)}async function cl(t,e,r,n){let o=await ke.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);n?.signal?.throwIfAborted();let s=await ke.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},o,De(e),De(r instanceof Uint8Array?r:r.subarray()));return n?.signal?.throwIfAborted(),s}async function jy(t,e){if(t.privateKey==null||t.publicKey==null)throw new ee("Private and public key are required");let r=await Promise.all([ke.get().subtle.exportKey("jwk",t.privateKey),ke.get().subtle.exportKey("jwk",t.publicKey)]);return e?.signal?.throwIfAborted(),r}function dl(t){if(t.kty!=="RSA")throw new ee("invalid key type");if(t.n==null)throw new ee("invalid key modulus");return re(t.n,"base64url").length*8}var fs=class{oHash;iHash;blockLen;outputLen;canXOF=!1;finished=!1;destroyed=!1;constructor(e,r){if(Zt(e),Be(r,void 0,"key"),this.iHash=e.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?e.create().update(r).digest():r);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),Ve(o)}update(e){return Ir(this),this.iHash.update(e),this}digestInto(e){Ir(this),Uo(e,this),this.finished=!0;let r=e.subarray(0,this.outputLen);this.iHash.digestInto(r),this.oHash.update(r),this.oHash.digestInto(r),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:r,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Zn=(()=>{let t=((e,r,n)=>new fs(e,r).update(n).digest());return t.create=(e,r)=>new fs(e,r),t})();var pl=(t,e)=>(t+(t>=0?e:-e)/ml)/e;function Wy(t,e,r){mt("scalar",t,rt,r);let[[n,o],[s,i]]=e,a=pl(i*t,r),c=pl(-o*t,r),f=t-a*n-c*s,u=-a*o-c*i,h=f<rt,g=u<rt;h&&(f=-f),g&&(u=-u);let p=Tn(Math.ceil(Dr(r)/2))+Ft;if(f<rt||f>=p||u<rt||u>=p)throw new Error("splitScalar (endomorphism): failed for k");return{k1neg:h,k1:f,k2neg:g,k2:u}}function tc(t){if(!["compact","recovered","der"].includes(t))throw new Error('Signature format must be "compact", "recovered", or "der"');return t}function ec(t,e){Pe(t);let r={};for(let n of Object.keys(e))r[n]=t[n]===void 0?e[n]:t[n];return $e(r.lowS,"lowS"),$e(r.prehash,"prehash"),r.format!==void 0&&tc(r.format),r}var rc=class extends Error{constructor(e=""){super(e)}},Ge={Err:rc,_tlv:{encode:(t,e)=>{let{Err:r}=Ge;if(je(t,"tag"),t<0||t>255)throw new r("tlv.encode: wrong tag");if(typeof e!="string")throw new TypeError('"data" expected string, got type='+typeof e);if(e.length&1)throw new r("tlv.encode: unpadded data");let n=e.length/2,o=In(n);if(o.length/2&128)throw new r("tlv.encode: long form length too big");let s=n>127?In(o.length/2|128):"";return In(t)+s+o+e},decode(t,e){let{Err:r}=Ge;e=V(e,void 0,"DER data");let n=0;if(t<0||t>255)throw new r("tlv.encode: wrong tag");if(e.length<2||e[n++]!==t)throw new r("tlv.decode: wrong tlv");let o=e[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=e.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=e.subarray(n,n+i);if(a.length!==i)throw new r("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+i)}}},_int:{encode(t){let{Err:e}=Ge;if(zo(t),t<rt)throw new e("integer: negative integers are not allowed");let r=In(t);if(Number.parseInt(r[0],16)&8&&(r="00"+r),r.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return r},decode(t){let{Err:e}=Ge;if(t.length<1)throw new e("invalid signature integer: empty");if(t[0]&128)throw new e("invalid signature integer: negative");if(t.length>1&&t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return er(t)}},toSig(t){let{Err:e,_int:r,_tlv:n}=Ge,o=V(t,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new e("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 e("invalid signature: left bytes after parsing");return{r:r.decode(a),s:r.decode(f)}},hexFromSig(t){let{_tlv:e,_int:r}=Ge,n=e.encode(2,r.encode(t.r)),o=e.encode(2,r.encode(t.s)),s=n+o;return e.encode(48,s)}};Object.freeze(Ge._tlv);Object.freeze(Ge._int);Object.freeze(Ge);var rt=BigInt(0),Ft=BigInt(1),ml=BigInt(2),us=BigInt(3),Gy=BigInt(4);function yl(t,e={}){let r=$o("weierstrass",t,e),n=r.Fp,o=r.Fn,s=r.CURVE,{h:i,n:a}=s;Pe(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c,allowInfinityPoint:f}=e;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=bl(n,o);function h(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function g(N,y,v){if(f&&y.is0())return Uint8Array.of(0);let{x:S,y:w}=y.toAffine(),x=n.toBytes(S);if($e(v,"isCompressed"),v){h();let L=!n.isOdd(w);return ye(gl(L),x)}else return ye(Uint8Array.of(4),x,n.toBytes(w))}function p(N){V(N,void 0,"Point");let{publicKey:y,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===y&&(w===2||w===3)){let L=n.fromBytes(x);if(!n.isValid(L))throw new Error("bad point: is not on curve, wrong x");let I=l(L),E;try{E=n.sqrt(I)}catch(M){let z=M instanceof Error?": "+M.message:"";throw new Error("bad point: is not on curve, sqrt error"+z)}h();let R=n.isOdd(E);return(w&1)===1!==R&&(E=n.neg(E)),{x:L,y:E}}else if(S===v&&w===4){let L=n.BYTES,I=n.fromBytes(x.subarray(0,L)),E=n.fromBytes(x.subarray(L,L*2));if(!m(I,E))throw new Error("bad point: is not on curve");return{x:I,y:E}}else throw new Error(`bad point: got length ${S}, expected compressed=${y} or uncompressed=${v}`)}let d=e.toBytes===void 0?g:e.toBytes,b=e.fromBytes===void 0?p:e.fromBytes;function l(N){let y=n.sqr(N),v=n.mul(y,N);return n.add(n.add(v,n.mul(N,s.a)),s.b)}function m(N,y){let v=n.sqr(y),S=l(N);return n.eql(v,S)}if(!m(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let A=n.mul(n.pow(s.a,us),Gy),B=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(A,B)))throw new Error("bad curve params: a or b");function T(N,y,v=!1){if(!n.isValid(y)||v&&n.is0(y))throw new Error(`bad point coordinate ${N}`);return y}function D(N){if(!(N instanceof C))throw new Error("Weierstrass Point expected")}function U(N){if(!c||!c.basises)throw new Error("no endo");return Wy(N,c.basises,o.ORDER)}function _(N,y,v,S,w){return v=new C(n.mul(v.X,N),v.Y,v.Z),y=Rn(S,y),v=Rn(w,v),y.add(v)}class C{static BASE=new C(s.Gx,s.Gy,n.ONE);static ZERO=new C(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(y,v,S){this.X=T("x",y),this.Y=T("y",v,!0),this.Z=T("z",S),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){let{x:v,y:S}=y||{};if(!y||!n.isValid(v)||!n.isValid(S))throw new Error("invalid affine point");if(y instanceof C)throw new Error("projective point not allowed");return n.is0(v)&&n.is0(S)?C.ZERO:new C(v,S,n.ONE)}static fromBytes(y){let v=C.fromAffine(b(V(y,void 0,"point")));return v.assertValidity(),v}static fromHex(y){return C.fromBytes(Tr(y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,v=!0){return k.createCache(this,y),v||this.multiply(us),this}assertValidity(){let y=this;if(y.is0()){if(e.allowInfinityPoint&&n.is0(y.X)&&n.eql(y.Y,n.ONE)&&n.is0(y.Z))return;throw new Error("bad point: ZERO")}let{x:v,y:S}=y.toAffine();if(!n.isValid(v)||!n.isValid(S))throw new Error("bad point: x or y not field elements");if(!m(v,S))throw new Error("bad point: equation left != right");if(!y.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(y)}equals(y){D(y);let{X:v,Y:S,Z:w}=this,{X:x,Y:L,Z:I}=y,E=n.eql(n.mul(v,I),n.mul(x,w)),R=n.eql(n.mul(S,I),n.mul(L,w));return E&&R}negate(){return new C(this.X,n.neg(this.Y),this.Z)}double(){let{a:y,b:v}=s,S=n.mul(v,us),{X:w,Y:x,Z:L}=this,I=n.ZERO,E=n.ZERO,R=n.ZERO,O=n.mul(w,w),M=n.mul(x,x),z=n.mul(L,L),K=n.mul(w,x);return K=n.add(K,K),R=n.mul(w,L),R=n.add(R,R),I=n.mul(y,R),E=n.mul(S,z),E=n.add(I,E),I=n.sub(M,E),E=n.add(M,E),E=n.mul(I,E),I=n.mul(K,I),R=n.mul(S,R),z=n.mul(y,z),K=n.sub(O,z),K=n.mul(y,K),K=n.add(K,R),R=n.add(O,O),O=n.add(R,O),O=n.add(O,z),O=n.mul(O,K),E=n.add(E,O),z=n.mul(x,L),z=n.add(z,z),O=n.mul(z,K),I=n.sub(I,O),R=n.mul(z,M),R=n.add(R,R),R=n.add(R,R),new C(I,E,R)}add(y){D(y);let{X:v,Y:S,Z:w}=this,{X:x,Y:L,Z:I}=y,E=n.ZERO,R=n.ZERO,O=n.ZERO,M=s.a,z=n.mul(s.b,us),K=n.mul(v,x),Y=n.mul(S,L),J=n.mul(w,I),Q=n.add(v,S),j=n.add(x,L);Q=n.mul(Q,j),j=n.add(K,Y),Q=n.sub(Q,j),j=n.add(v,w);let ie=n.add(x,I);return j=n.mul(j,ie),ie=n.add(K,J),j=n.sub(j,ie),ie=n.add(S,w),E=n.add(L,I),ie=n.mul(ie,E),E=n.add(Y,J),ie=n.sub(ie,E),O=n.mul(M,j),E=n.mul(z,J),O=n.add(E,O),E=n.sub(Y,O),O=n.add(Y,O),R=n.mul(E,O),Y=n.add(K,K),Y=n.add(Y,K),J=n.mul(M,J),j=n.mul(z,j),Y=n.add(Y,J),J=n.sub(K,J),J=n.mul(M,J),j=n.add(j,J),K=n.mul(Y,j),R=n.add(R,K),K=n.mul(ie,j),E=n.mul(Q,E),E=n.sub(E,K),K=n.mul(Q,Y),O=n.mul(ie,O),O=n.add(O,K),new C(E,R,O)}subtract(y){return D(y),this.add(y.negate())}is0(){return this.equals(C.ZERO)}multiply(y){let{endo:v}=e;if(!o.isValidNot0(y))throw new RangeError("invalid scalar: out of range");let S,w,x=L=>k.cached(this,L,I=>nr(C,I));if(v){let{k1neg:L,k1:I,k2neg:E,k2:R}=U(y),{p:O,f:M}=x(I),{p:z,f:K}=x(R);w=M.add(K),S=_(v.beta,O,z,L,E)}else{let{p:L,f:I}=x(y);S=L,w=I}return nr(C,[S,w])[0]}multiplyUnsafe(y){let{endo:v}=e,S=this,w=y;if(!o.isValid(w))throw new RangeError("invalid scalar: out of range");if(w===rt||S.is0())return C.ZERO;if(w===Ft)return S;if(k.hasCache(this))return this.multiply(w);if(v){let{k1neg:x,k1:L,k2neg:I,k2:E}=U(w),{p1:R,p2:O}=hh(C,S,L,E);return _(v.beta,R,O,x,I)}else return k.unsafe(S,w)}toAffine(y){let v=this,S=y,{X:w,Y:x,Z:L}=v;if(n.eql(L,n.ONE))return{x:w,y:x};let I=v.is0();S==null&&(S=I?n.ONE:n.inv(L));let E=n.mul(w,S),R=n.mul(x,S),O=n.mul(L,S);if(I)return{x:n.ZERO,y:n.ZERO};if(!n.eql(O,n.ONE))throw new Error("invZ was invalid");return{x:E,y:R}}isTorsionFree(){let{isTorsionFree:y}=e;return i===Ft?!0:y?y(C,this):k.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:y}=e;return i===Ft?this:y?y(C,this):this.multiplyUnsafe(i)}isSmallOrder(){return i===Ft?this.is0():this.clearCofactor().is0()}toBytes(y=!0){return $e(y,"isCompressed"),this.assertValidity(),d(C,this,y)}toHex(y=!0){return _r(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let P=o.BITS,k=new Ur(C,e.endo?Math.ceil(P/2):P);return P>=8&&C.BASE.precompute(8),Object.freeze(C.prototype),Object.freeze(C),C}function gl(t){return Uint8Array.of(t?2:3)}function bl(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function Zy(t,e={}){let{Fn:r}=t,n=e.randomBytes===void 0?Qt:e.randomBytes,o=Object.assign(bl(t.Fp,r),{seed:Math.max(qi(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 m=p.length;return d===!0&&m!==b||d===!1&&m!==l?!1:!!t.fromBytes(p)}catch{return!1}}function a(p){return p=p===void 0?n(o.seed):p,$i(V(p,o.seed,"seed"),r.ORDER)}function c(p,d=!0){return t.BASE.multiply(r.fromBytes(p)).toBytes(d)}function f(p){let{secretKey:d,publicKey:b,publicKeyUncompressed:l}=o,m=r._lengths;if(!Jt(p))return;let A=V(p,void 0,"key").length,B=A===b||A===l,T=A===d||!!m?.includes(A);if(!(B&&T))return B}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 t.fromBytes(d).multiply(l).toBytes(b)}let h={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},g=Pr(a,c);return Object.freeze(h),Object.freeze(o),Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:g,Point:t,utils:h,lengths:o})}function xl(t,e,r={}){let n=e;Zt(n),Pe(r,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),r=Object.assign({},r);let o=r.randomBytes===void 0?Qt:r.randomBytes,s=r.hmac===void 0?(w,x)=>Zn(n,w,x):r.hmac,{Fp:i,Fn:a}=t,{ORDER:c,BITS:f}=a,{keygen:u,getPublicKey:h,getSharedSecret:g,utils:p,lengths:d}=Zy(t,r),b={prehash:!0,lowS:typeof r.lowS=="boolean"?r.lowS:!0,format:"compact",extraEntropy:!1},l=c*ml+Ft<i.ORDER;function m(w){let x=c>>Ft;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 B(){if(l)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function T(w,x){tc(x);let L=d.signature,I=x==="compact"?L:x==="recovered"?L+1:void 0;return V(w,I)}class D{r;s;recovery;constructor(x,L,I){if(this.r=A("r",x),this.s=A("s",L),I!=null){if(B(),![0,1,2,3].includes(I))throw new Error("invalid recovery id");this.recovery=I}Object.freeze(this)}static fromBytes(x,L=b.format){T(x,L);let I;if(L==="der"){let{r:M,s:z}=Ge.toSig(V(x));return new D(M,z)}L==="recovered"&&(I=x[0],L="compact",x=x.subarray(1));let E=d.signature/2,R=x.subarray(0,E),O=x.subarray(E,E*2);return new D(a.fromBytes(R),a.fromBytes(O),I)}static fromHex(x,L){return this.fromBytes(Tr(x),L)}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:L,s:I}=this,E=this.assertRecovery(),R=E===2||E===3?L+c:L;if(!i.isValid(R))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let O=i.toBytes(R),M=t.fromBytes(ye(gl((E&1)===0),O)),z=a.inv(R),K=_(V(x,void 0,"msgHash")),Y=a.create(-K*z),J=a.create(I*z),Q=t.BASE.multiplyUnsafe(Y).add(M.multiplyUnsafe(J));if(Q.is0())throw new Error("invalid recovery: point at infinify");return Q.assertValidity(),Q}hasHighS(){return m(this.s)}toBytes(x=b.format){if(tc(x),x==="der")return Tr(Ge.hexFromSig(this));let{r:L,s:I}=this,E=a.toBytes(L),R=a.toBytes(I);return x==="recovered"?(B(),ye(Uint8Array.of(this.assertRecovery()),E,R)):ye(E,R)}toHex(x){return _r(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 L=er(x),I=x.length*8-f;return I>0?L>>BigInt(I):L}:r.bits2int,_=r.bits2int_modN===void 0?function(x){return a.create(U(x))}:r.bits2int_modN,C=Tn(f);function P(w){return mt("num < 2^"+f,w,rt,C),a.toBytes(w)}function k(w,x){return V(w,void 0,"message"),x?V(n(w),void 0,"prehashed message"):w}function N(w,x,L){let{lowS:I,prehash:E,extraEntropy:R}=ec(L,b);w=k(w,E);let O=_(w),M=a.fromBytes(x);if(!a.isValidNot0(M))throw new Error("invalid private key");let z=[P(M),P(O)];if(R!=null&&R!==!1){let Q=R===!0?o(d.secretKey):R;z.push(V(Q,void 0,"extraEntropy"))}let K=ye(...z),Y=O;function J(Q){let j=U(Q);if(!a.isValidNot0(j))return;let ie=a.inv(j),ct=t.BASE.multiply(j).toAffine(),Vt=a.create(ct.x);if(Vt===rt)return;let br=a.create(ie*a.create(Y+Vt*M));if(br===rt)return;let dn=(ct.x===Vt?0:2)|Number(ct.y&Ft),pn=br;return I&&m(br)&&(pn=a.neg(br),dn^=1),new D(Vt,pn,l?void 0:dn)}return{seed:K,k2sig:J}}function y(w,x,L={}){let{seed:I,k2sig:E}=N(w,x,L);return Gu(n.outputLen,a.BYTES,s)(I,E).toBytes(L.format)}function v(w,x,L,I={}){let{lowS:E,prehash:R,format:O}=ec(I,b);if(L=V(L,void 0,"publicKey"),x=k(x,R),!Jt(w)){let M=w instanceof D?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+M)}T(w,O);try{let M=D.fromBytes(w,O),z=t.fromBytes(L);if(E&&M.hasHighS())return!1;let{r:K,s:Y}=M,J=_(x),Q=a.inv(Y),j=a.create(J*Q),ie=a.create(K*Q),ct=t.BASE.multiplyUnsafe(j).add(z.multiplyUnsafe(ie));return ct.is0()?!1:a.create(ct.x)===K}catch{return!1}}function S(w,x,L={}){let{prehash:I}=ec(L,b);return x=k(x,I),D.fromBytes(w,"recovered").recoverPublicKey(x).toBytes()}return Object.freeze({keygen:u,getPublicKey:h,getSharedSecret:g,utils:p,lengths:d,Point:t,sign:y,verify:v,recoverPublicKey:S,Signature:D,hash:n})}var oc={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Xy={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var wl=BigInt(2);function Yy(t){let e=oc.p,r=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),f=t*t*t%e,u=f*f*t%e,h=ne(u,r,e)*u%e,g=ne(h,r,e)*u%e,p=ne(g,wl,e)*f%e,d=ne(p,o,e)*p%e,b=ne(d,s,e)*d%e,l=ne(b,a,e)*b%e,m=ne(l,c,e)*l%e,A=ne(m,a,e)*b%e,B=ne(A,r,e)*u%e,T=ne(B,i,e)*d%e,D=ne(T,n,e)*f%e,U=ne(D,wl,e);if(!nc.eql(nc.sqr(U),t))throw new Error("Cannot find square root");return U}var nc=Rr(oc.p,{sqrt:Yy}),Jy=yl(oc,{Fp:nc,endo:Xy}),qr=xl(Jy,Qe);function El(t,e,r,n){let o=En.digest(r instanceof Uint8Array?r:r.subarray());if(Xo(o))return o.then(({digest:s})=>(n?.signal?.throwIfAborted(),qr.verify(e,s,t,{prehash:!1,format:"der"}))).catch(s=>{throw s.name==="AbortError"?s:new Nn(String(s))});try{return n?.signal?.throwIfAborted(),qr.verify(e,o.digest,t,{prehash:!1,format:"der"})}catch(s){throw new Nn(String(s))}}var hs=class{type="secp256k1";raw;_key;constructor(e){this._key=vl(e),this.raw=Sl(this._key)}toMultihash(){return He.digest(It(this))}toCID(){return me.createV1(114,this.toMultihash())}toString(){return he.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:we(this.raw,e.raw)}verify(e,r,n){return El(this._key,r,e,n)}};function sc(t){return new hs(t)}function Sl(t){return qr.Point.fromBytes(t).toBytes()}function vl(t){try{return qr.Point.fromBytes(t),t}catch(e){throw new wr(String(e))}}function Xn(t,e){let{Type:r,Data:n}=tt.decode(t),o=n??new Uint8Array;switch(r){case ce.RSA:return Ya(o,e);case ce.Ed25519:return sa(o);case ce.secp256k1:return sc(o);case ce.ECDSA:return Ii(o);default:throw new qt}}function Al(t){let{Type:e,Data:r}=tt.decode(t.digest),n=r??new Uint8Array;switch(e){case ce.Ed25519:return sa(n);case ce.secp256k1:return sc(n);case ce.ECDSA:return Ii(n);default:throw new qt}}function It(t){return tt.encode({Type:ce[t.type],Data:t.raw})}var Bl=Symbol.for("nodejs.util.inspect.custom"),Qy=114,Yn=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Js]=!0;toString(){return this.string==null&&(this.string=he.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return me.createV1(Qy,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return we(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return we(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Bl](){return`PeerId(${this.toString()})`}},Jn=class extends Yn{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},Qn=class extends Yn{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},eo=class extends Yn{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},eg=2336,to=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=He.digest(re(this.url))}[Bl](){return`PeerId(${this.url})`}[Js]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return me.createV1(eg,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=G(e)),e.toString()===this.toString())}};var tg=114,Ll=2336;function Cl(t,e){let r;if(t.charAt(0)==="1"||t.charAt(0)==="Q")r=Lr(he.decode(`z${t}`));else{if(t.startsWith("k51qzi5uqu5")||t.startsWith("kzwfwjn5ji4")||t.startsWith("k2k4r8")||t.startsWith("bafz"))return rg(me.parse(t));if(e==null)throw new ee('Please pass a multibase decoder for strings that do not start with "1" or "Q"');r=Lr(e.decode(t))}return Il(r)}function ic(t){if(t.type==="Ed25519")return new Qn({multihash:t.toCID().multihash,publicKey:t});if(t.type==="secp256k1")return new eo({multihash:t.toCID().multihash,publicKey:t});if(t.type==="RSA")return new Jn({multihash:t.toCID().multihash,publicKey:t});throw new qt}function Il(t){if(og(t))return new Jn({multihash:t});if(ng(t))try{let e=Al(t);if(e.type==="Ed25519")return new Qn({multihash:t,publicKey:e});if(e.type==="secp256k1")return new eo({multihash:t,publicKey:e})}catch{let r=G(t.digest);return new to(new URL(r))}throw new Bo("Supplied PeerID Multihash is invalid")}function rg(t){if(t?.multihash==null||t.version==null||t.version===1&&t.code!==tg&&t.code!==Ll)throw new Ao("Supplied PeerID CID is invalid");if(t.code===Ll){let e=G(t.multihash.digest);return new to(new URL(e))}return Il(t.multihash)}function ng(t){return t.code===He.code}function og(t){return t.code===En.code}function sg(t){let e=t.getComponents(),r={},n=0;return e[n]?.name==="ip6zone"&&(r.zone=`${e[n].value}`,n++),e[n]?.name==="ip4"||e[n]?.name==="ip6"||e[n]?.name==="dns"||e[n]?.name==="dns4"||e[n]?.name==="dns6"?(r.type=e[n].name,r.host=e[n].value,n++):e[n]?.name==="dnsaddr"&&(r.type=e[n].name,r.host=`_dnsaddr.${e[n].value}`,n++),(e[n]?.name==="tcp"||e[n]?.name==="udp")&&(r.protocol=e[n].name==="tcp"?"tcp":"udp",r.port=parseInt(`${e[n].value}`),n++),e[n]?.name==="ipcidr"&&(r.type==="ip4"?r.cidr=parseInt(`${e[n].value}`):r.type==="ip6"&&(r.cidr=`${e[n].value}`),n++),r.type==null||r.host==null?null:(e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(r.sni=e[n+1].value,n+=2),r)}function _l(t){let e=sg(t);if(e==null)throw new ee(`Multiaddr ${t} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e}var ls=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();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(e){return this.readAtomically(()=>{let r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,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 g=Number.parseInt(h,e);if(!Number.isNaN(g))return g});if(u===void 0)break;if(s*=e,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 e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=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]=e(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]=e(s.subarray(0,i));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var ig=45,ag=15,ds=new ls;function Tl(t){if(!(t.length>ag))return ds.new(t).parseWith(()=>ds.readIPv4Addr())}function Dl(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>ig))return ds.new(t).parseWith(()=>ds.readIPv6Addr())}function ps(t){return!!Tl(t)}function Rl(t){return!!Dl(t)}var cg=Math.pow(2,7),fg=Math.pow(2,14),ug=Math.pow(2,21),ac=Math.pow(2,28),cc=Math.pow(2,35),fc=Math.pow(2,42),uc=Math.pow(2,49),fe=128,Ie=127;function $r(t){if(t<cg)return 1;if(t<fg)return 2;if(t<ug)return 3;if(t<ac)return 4;if(t<cc)return 5;if(t<fc)return 6;if(t<uc)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function hc(t,e,r=0){switch($r(t)){case 8:e[r++]=t&255|fe,t/=128;case 7:e[r++]=t&255|fe,t/=128;case 6:e[r++]=t&255|fe,t/=128;case 5:e[r++]=t&255|fe,t/=128;case 4:e[r++]=t&255|fe,t>>>=7;case 3:e[r++]=t&255|fe,t>>>=7;case 2:e[r++]=t&255|fe,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function hg(t,e){let r=t[e],n=0;if(n+=r&Ie,r<fe||(r=t[e+1],n+=(r&Ie)<<7,r<fe)||(r=t[e+2],n+=(r&Ie)<<14,r<fe)||(r=t[e+3],n+=(r&Ie)<<21,r<fe)||(r=t[e+4],n+=(r&Ie)*ac,r<fe)||(r=t[e+5],n+=(r&Ie)*cc,r<fe)||(r=t[e+6],n+=(r&Ie)*fc,r<fe)||(r=t[e+7],n+=(r&Ie)*uc,r<fe))return n;throw new RangeError("Could not decode varint")}function lg(t,e){let r=t.get(e),n=0;if(n+=r&Ie,r<fe||(r=t.get(e+1),n+=(r&Ie)<<7,r<fe)||(r=t.get(e+2),n+=(r&Ie)<<14,r<fe)||(r=t.get(e+3),n+=(r&Ie)<<21,r<fe)||(r=t.get(e+4),n+=(r&Ie)*ac,r<fe)||(r=t.get(e+5),n+=(r&Ie)*cc,r<fe)||(r=t.get(e+6),n+=(r&Ie)*fc,r<fe)||(r=t.get(e+7),n+=(r&Ie)*uc,r<fe))return n;throw new RangeError("Could not decode varint")}function lc(t,e=0){return t instanceof Uint8Array?hg(t,e):lg(t,e)}var ve=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},xt=class extends Error{static name="ValidationError";name="ValidationError"},ms=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},ys=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};function pc(t){return e=>G(e,t)}function mc(t){return e=>re(e,t)}function jr(t){return new DataView(t.buffer).getUint16(t.byteOffset).toString()}function fr(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof t=="string"?parseInt(t):t),new Uint8Array(e)}function Ol(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let r=re(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=fr(n);return sr([r,o],r.length+o.length)}function Ul(t){let e=t.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let r=Lt.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=fr(n);return sr([r,o],r.length+o.length)}function yc(t){let e=t.subarray(0,t.length-2),r=t.subarray(t.length-2),n=G(e,"base32"),o=jr(r);return`${n}:${o}`}var gc=function(t){t=t.toString().trim();let e=new Uint8Array(4);return t.split(/\./g).forEach((r,n)=>{let o=parseInt(r,10);if(isNaN(o)||o<0||o>255)throw new ve("Invalid byte value in IP address");e[n]=o}),e},Pl=function(t){let e=0;t=t.toString().trim();let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=ps(r[n]),i;s&&(i=gc(r[n]),r[n]=G(i.subarray(0,2),"base16")),i!=null&&++n<8&&r.splice(n,0,G(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(e+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 ve("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},Nl=function(t){if(t.byteLength!==4)throw new ve("IPv4 address was incorrect length");let e=[];for(let r=0;r<t.byteLength;r++)e.push(t[r]);return e.join(".")},Ml=function(t){if(t.byteLength!==16)throw new ve("IPv6 address was incorrect length");let e=[];for(let n=0;n<t.byteLength;n+=2){let o=t[n],s=t[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;e.push(i)}let r=e.join(":");try{let n=new URL(`http://[${r}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new ve(`Invalid IPv6 address "${r}"`)}};function kl(t){try{let e=new URL(`http://[${t}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new ve(`Invalid IPv6 address "${t}"`)}}var dc=Object.values(Wt).map(t=>t.decoder),pg=(function(){let t=dc[0].or(dc[1]);return dc.slice(2).forEach(e=>t=t.or(e)),t})();function Fl(t){return pg.decode(t)}function Kl(t){return e=>t.encoder.encode(e)}function mg(t){if(parseInt(t).toString()!==t)throw new xt("Value must be an integer")}function yg(t){if(t<0)throw new xt("Value must be a positive integer, or zero")}function gg(t){return e=>{if(e>t)throw new xt(`Value must be smaller than or equal to ${t}`)}}function bg(...t){return e=>{for(let r of t)r(e)}}var ro=bg(mg,yg,gg(65535));var xe=-1,bc=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let r;if(typeof e=="string"?r=this.protocolsByName.get(e):r=this.protocolsByCode.get(e),r==null)throw new ys(`Protocol ${e} was unknown`);return r}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(r=>{this.protocolsByName.set(r,e)})}removeProtocol(e){let r=this.protocolsByCode.get(e);r!=null&&(this.protocolsByCode.delete(r.code),this.protocolsByName.delete(r.name),r.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},Et=new bc,Rg=[{code:4,name:"ip4",size:32,valueToBytes:gc,bytesToValue:Nl,validate:t=>{if(!ps(t))throw new xt(`Invalid IPv4 address "${t}"`)}},{code:6,name:"tcp",size:16,valueToBytes:fr,bytesToValue:jr,validate:ro},{code:273,name:"udp",size:16,valueToBytes:fr,bytesToValue:jr,validate:ro},{code:33,name:"dccp",size:16,valueToBytes:fr,bytesToValue:jr,validate:ro},{code:41,name:"ip6",size:128,valueToBytes:Pl,bytesToValue:Ml,stringToValue:kl,validate:t=>{if(!Rl(t))throw new xt(`Invalid IPv6 address "${t}"`)}},{code:42,name:"ip6zone",size:xe},{code:43,name:"ipcidr",size:8,bytesToValue:pc("base10"),valueToBytes:mc("base10")},{code:53,name:"dns",size:xe},{code:54,name:"dns4",size:xe},{code:55,name:"dns6",size:xe},{code:56,name:"dnsaddr",size:xe},{code:132,name:"sctp",size:16,valueToBytes:fr,bytesToValue:jr,validate:ro},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:xe,stringToValue:t=>decodeURIComponent(t),valueToString:t=>encodeURIComponent(t)},{code:421,name:"p2p",aliases:["ipfs"],size:xe,bytesToValue:pc("base58btc"),valueToBytes:t=>t.startsWith("Q")||t.startsWith("1")?mc("base58btc")(t):me.parse(t).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:yc,valueToBytes:Ol},{code:445,name:"onion3",size:296,bytesToValue:yc,valueToBytes:Ul},{code:446,name:"garlic64",size:xe},{code:447,name:"garlic32",size:xe},{code:448,name:"tls"},{code:449,name:"sni",size:xe},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:xe,bytesToValue:Kl(mi),valueToBytes:Fl},{code:480,name:"http"},{code:481,name:"http-path",size:xe,stringToValue:t=>`/${decodeURIComponent(t)}`,valueToString:t=>encodeURIComponent(t.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:xe}];Rg.forEach(t=>{Et.addProtocol(t)});function zl(t){let e=[],r=0;for(;r<t.length;){let n=lc(t,r),o=Et.getProtocol(n),s=$r(n),i=Og(o,t,r+s),a=0;i>0&&o.size===xe&&(a=$r(i));let c=s+a+i,f={code:n,name:o.name,bytes:De(t.subarray(r,r+c))};if(i>0){let u=r+s+a,h=t.subarray(u,u+i);f.value=o.bytesToValue?.(h)??G(h)}e.push(f),r+=c}return e}function Hl(t){let e=0,r=[];for(let n of t){if(n.bytes==null){let o=Et.getProtocol(n.code),s=$r(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??re(n.value),a=i.byteLength,o.size===xe&&(c=$r(a)));let f=new Uint8Array(s+c+a),u=0;hc(n.code,f,u),u+=s,i!=null&&(o.size===xe&&(hc(a,f,u),u+=c),f.set(i,u)),n.bytes=f}r.push(n.bytes),e+=n.bytes.byteLength}return sr(r,e)}function Vl(t){if(t.charAt(0)!=="/")throw new ve('String multiaddr must start with "/"');let e=[],r="protocol",n="",o="";for(let s=1;s<t.length;s++){let i=t.charAt(s);i!=="/"&&(r==="protocol"?o+=t.charAt(s):n+=t.charAt(s));let a=s===t.length-1;if(i==="/"||a){let c=Et.getProtocol(o);if(r==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",r="protocol";continue}else if(a)throw new ve(`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 ve(`Component ${o} was missing value`);f.value=c.stringToValue?.(n)??n}e.push(f),n="",o="",r="protocol"}}}if(o!==""&&n!=="")throw new ve("Incomplete multiaddr");return e}function ql(t){return`/${t.flatMap(e=>{if(e.value==null)return e.name;let r=Et.getProtocol(e.code);if(r==null)throw new ve(`Unknown protocol code ${e.code}`);return[e.name,r.valueToString?.(e.value)??e.value]}).join("/")}`}function Og(t,e,r){return t.size==null||t.size===0?0:t.size>0?t.size/8:lc(e,r)}var Ug=Symbol.for("nodejs.util.inspect.custom"),Nc=Symbol.for("@multiformats/multiaddr");function Pg(t){if(t==null&&(t="/"),$l(t))return t.getComponents();if(t instanceof Uint8Array)return zl(t);if(typeof t=="string")return t=t.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),t===""&&(t="/"),Vl(t);if(Array.isArray(t))return t;throw new ve("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Pc=class t{[Nc]=!0;#e;#t;#r;constructor(e="/",r={}){this.#e=Pg(e),r.validate!==!1&&Ng(this)}get bytes(){return this.#r==null&&(this.#r=Hl(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=ql(this.#e)),this.#t}toJSON(){return this.toString()}getComponents(){return[...this.#e.map(e=>({...e}))]}encapsulate(e){let r=new t(e);return new t([...this.#e,...r.getComponents()],{validate:!1})}decapsulate(e){let r=e.toString(),n=this.toString(),o=n.lastIndexOf(r);if(o<0)throw new ms(`Address ${this.toString()} does not contain subaddress: ${r}`);return new t(n.slice(0,o),{validate:!1})}decapsulateCode(e){let r;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){r=n;break}return new t(this.#e.slice(0,r),{validate:!1})}equals(e){return we(this.bytes,e.bytes)}[Ug](){return`Multiaddr(${this.toString()})`}};function Ng(t){t.getComponents().forEach(e=>{let r=Et.getProtocol(e.code);e.value!=null&&r.validate?.(e.value)})}function $l(t){return!!t?.[Nc]}var oe=t=>({match:e=>{let r=e[0];return r==null||r.code!==t||r.value!=null?!1:e.slice(1)}}),F=(t,e)=>({match:r=>{let n=r[0];return n?.code!==t||n.value==null||e!=null&&n.value!==e?!1:r.slice(1)}}),jl=t=>({match:e=>t.match(e)===!1?e:!1}),q=t=>({match:e=>{let r=t.match(e);return r===!1?e:r}}),_e=(...t)=>({match:e=>{let r;for(let n of t){let o=n.match(e);o!==!1&&(r==null||o.length<r.length)&&(r=o)}return r??!1}}),Z=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e}});function se(...t){function e(o){if(o==null)return!1;let s=o.getComponents();for(let i of t){let a=i.match(s);if(a===!1)return!1;s=a}return s}function r(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:t,matches:r,exactMatch:n}}var Mg=F(421),C4=se(Mg),vs=F(54),As=F(55),Bs=F(56),kc=F(53),I4=se(vs,q(F(421))),_4=se(As,q(F(421))),T4=se(Bs,q(F(421))),D4=se(_e(kc,Bs,vs,As),q(F(421))),Wl=Z(F(4),q(F(43))),Gl=Z(q(F(42)),F(41),q(F(43))),Fc=_e(Wl,Gl),Xr=_e(Fc,kc,vs,As,Bs),R4=se(_e(Fc,Z(_e(kc,Bs,vs,As),q(F(421))))),O4=se(Wl),U4=se(Gl),P4=se(Fc),Kc=Z(Xr,F(6)),no=Z(Xr,F(273)),N4=se(Z(Kc,q(F(421)))),M4=se(no),zc=Z(no,oe(460),q(F(421))),Ls=Z(no,oe(461),q(F(421))),kg=_e(zc,Ls),k4=se(zc),F4=se(Ls),Mc=_e(Xr,Kc,no,zc,Ls),Zl=_e(Z(Mc,oe(477),q(F(421)))),K4=se(Zl),Xl=_e(Z(Mc,oe(478),q(F(421))),Z(Mc,oe(448),q(F(449)),oe(477),q(F(421)))),z4=se(Xl),Yl=Z(no,oe(280),q(F(466)),q(F(466)),q(F(421))),H4=se(Yl),Jl=Z(Ls,oe(465),q(F(466)),q(F(466)),q(F(421))),Cs=se(Jl),Ss=_e(Zl,Xl,Z(Kc,q(F(421))),Z(kg,q(F(421))),Z(Xr,q(F(421))),Yl,Jl,F(421)),V4=se(Ss),Fg=Z(q(Ss),oe(290),jl(oe(281)),q(F(421))),q4=se(Fg),Kg=_e(Z(Ss,oe(290),oe(281),q(F(421))),Z(Ss,oe(281),q(F(421))),Z(oe(281),q(F(421)))),$4=se(Kg),zg=Z(Xr,_e(Z(F(6,"80")),Z(F(6),oe(480)),oe(480)),q(F(481)),q(F(421))),j4=se(zg),Hg=Z(Xr,_e(Z(F(6,"443")),Z(F(6,"443"),oe(480)),Z(F(6),oe(443)),Z(F(6),oe(448),oe(480)),Z(oe(448),oe(480)),oe(448),oe(443)),q(F(481)),q(F(421))),W4=se(Hg),Vg=_e(Z(F(777),q(F(421)))),G4=se(Vg),qg=_e(Z(F(400),q(F(421)))),Z4=se(qg);function Is(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}var _s=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},Yr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new _s(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let r=this.head;this.head=r.next=new _s(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var Hc=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Ts(t={}){return $g(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}},t)}function $g(t,e){e=e??{};let r=e.onEnd,n=new Yr,o,s,i,a=Is(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((l,m)=>{s=A=>{s=null,n.push(A);try{l(t(n))}catch(B){m(B)}return o}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Is()})}},f=l=>s!=null?s(l):(n.push(l),o),u=l=>(n=new Yr,s!=null?s({error:l}):(n.push({error:l}),o)),h=l=>{if(i)return o;if(e?.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})},g=l=>i?o:(i=!0,l!=null?u(l):f({done:!0})),p=()=>(n=new Yr,g(),{done:!0}),d=l=>(g(l),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:p,throw:d,push:h,end:g,get readableLength(){return n.size},onEmpty:async l=>{let m=l?.signal;if(m?.throwIfAborted(),n.isEmpty())return;let A,B;m!=null&&(A=new Promise((T,D)=>{B=()=>{D(new Hc)},m.addEventListener("abort",B)}));try{await Promise.race([a.promise,A])}finally{B!=null&&m!=null&&m?.removeEventListener("abort",B)}}},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 Vc=class t extends Error{name="TimeoutError";constructor(e,r){super(e,r),Error.captureStackTrace?.(this,t)}},Ql=t=>t.reason??new DOMException("This operation was aborted.","AbortError");function qc(t,e){let{milliseconds:r,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=e,a,c,u=new Promise((h,g)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(i?.aborted){g(Ql(i));return}if(i&&(c=()=>{g(Ql(i))},i.addEventListener("abort",c,{once:!0})),t.then(h,g),r===Number.POSITIVE_INFINITY)return;let p=new Vc;a=s.setTimeout.call(void 0,()=>{if(n){try{h(n())}catch(d){g(d)}return}typeof t.cancel=="function"&&t.cancel(),o===!1?h():o instanceof Error?g(o):(p.message=o??`Promise timed out after ${r} milliseconds`,g(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 jg=t=>{let e=t.addEventListener||t.on||t.addListener,r=t.removeEventListener||t.off||t.removeListener;if(!e||!r)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(t),removeListener:r.bind(t)}};function Wg(t,e,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=[e].flat(),c=[],{addListener:f,removeListener:u}=jg(t),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))},g=(...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,g)};for(let p of a)f(p,h);for(let p of r.rejectionEvents)a.includes(p)||f(p,g);r.signal&&r.signal.addEventListener("abort",()=>{g(r.signal.reason)},{once:!0}),r.resolveImmediately&&s(c)});if(o.cancel=n,typeof r.timeout=="number"){let s=qc(o,{milliseconds:r.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Kt(t,e,r){typeof r=="function"&&(r={filter:r}),r={...r,count:1,resolveImmediately:!1};let n=Wg(t,e,r),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var hr=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"},Ds=class extends Error{static name="MaxEarlyStreamsError";name="MaxEarlyStreamsError"},Rs=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function Gg(t){return t.reason}async function Fe(t,e,r){if(e==null)return t;let n=r?.translateError??Gg;if(e.aborted)return t.catch(()=>{}),Promise.reject(n(e));let o;try{return await Promise.race([t,new Promise((s,i)=>{o=()=>{i(n(e))},e.addEventListener("abort",o)})])}finally{o!=null&&e.removeEventListener("abort",o)}}var Zg=Math.pow(2,20)*4,nt=class extends Sr{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(e){super(),this.status="open",this.log=e.log,this.direction=e.direction??"outbound",this.inactivityTimeout=e.inactivityTimeout??12e4,this.maxReadBufferLength=e.maxReadBufferLength??Zg,this.maxWriteBufferLength=e.maxWriteBufferLength,this.maxMessageSize=e.maxMessageSize,this.readBuffer=new W,this.writeBuffer=new W,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 Rs)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(e){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),Fe(this.onDrainPromise.promise,e?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let e=Ts(),r=s=>{e.push(s.data)};this.addEventListener("message",r);let n=s=>{e.end(s.error)};this.addEventListener("close",n);let o=()=>{e.end()};this.addEventListener("remoteCloseWrite",o);try{yield*e}finally{this.removeEventListener("message",r),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(e){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new At(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",e.byteLength),this.writeBuffer.append(e),this.processSendQueue()}abort(e){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",e),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(e)}catch(r){this.log("failed to send reset to remote - %e",r)}this.dispatchEvent(new Co(e))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new At("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 At("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new At(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.append(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new At(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.prepend(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(e){if(e.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(e),this.dispatchReadBuffer()}}addEventListener(...e){super.addEventListener.apply(this,e),e[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 e=new So;this.dispatchEvent(new Io(e))}onTransportClosed(e){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"),e!=null?this.abort(e):(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 Er))}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 e=!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){e=!1;break}let s=this.writeBuffer.sublist(0,o),i=new W(s);this.writeBuffer.consume(s.byteLength);let a;try{a=this.sendData(s)}catch(c){throw this.writeBuffer.prepend(i),this.abort(c),c}if(e=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!e)break}return e||(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"),e}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 e=this.readBuffer.sublist();this.readBuffer.consume(e.byteLength),this.dispatchEvent(new Lo(e))}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 mn(`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 mn(`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 Os=class extends nt{remoteAddr;metricPrefix;metrics;constructor(e){super(e),this.metricPrefix=e.metricPrefix??"",this.metrics=e.metrics,this.remoteAddr=e.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(e){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 Kt(this,"idle",{...e,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 Kt(this,"drain",{...e,rejectionEvents:["close"]})),await this.sendClose(e),this.onTransportClosed())}};function ed(t){return t==null?!1:typeof t.then=="function"&&typeof t.catch=="function"&&typeof t.finally=="function"}var Us=class extends Sr{streams;protocol;status;log;maConn;streamOptions;earlyStreams;maxEarlyStreams;metrics;constructor(e,r){super(),this.maConn=e,this.protocol=r.protocol,this.streams=[],this.earlyStreams=[],this.status="open",this.log=e.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(e){let r=this.maConn.send(e);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(e){this.status==="closed"||this.status==="closing"||(this.status="closing",await Fe(Promise.all([...this.streams].map(async r=>{await r.close(e)})),e?.signal),this.status="closed")}abort(e){this.status!=="closed"&&(this.status="closing",[...this.streams].forEach(r=>{r.abort(e)}),this.status="closed")}onTransportClosed(e){this.status="closing";try{[...this.streams].forEach(r=>{r.onTransportClosed(e)})}catch(r){this.abort(r)}this.status="closed"}async createStream(e){if(this.status!=="open")throw new Eo;let r=this.onCreateStream({...this.streamOptions,...e});return ed(r)&&(r=await r),this.streams.push(r),this.cleanUpStream(r),r}onRemoteStream(e){if(this.streams.push(e),this.cleanUpStream(e),this.listenerCount("stream")===0){this.earlyStreams.push(e),this.earlyStreams.length>this.maxEarlyStreams&&this.abort(new Ds(`Too many early streams were opened - ${this.earlyStreams.length}/${this.maxEarlyStreams}`));return}this.safeDispatchEvent("stream",{detail:e})}cleanUpStream(e){let r=n=>{let o=this.streams.findIndex(s=>s===e);o!==-1&&this.streams.splice(o,1),n.error!=null?n.local?this.metrics?.increment({[`${e.direction}_stream_reset`]:!0}):this.metrics?.increment({[`${e.direction}_stream_abort`]:!0}):this.metrics?.increment({[`${e.direction}_stream_end`]:!0})};e.addEventListener("close",r),this.metrics?.increment({[`${e.direction}_stream`]:!0})}addEventListener(...e){super.addEventListener.apply(this,e),e[0]==="stream"&&this.earlyStreams.length>0&&queueMicrotask(()=>{this.earlyStreams.forEach(r=>{this.safeDispatchEvent("stream",{detail:r})}),this.earlyStreams=[]})}};var Ps=class extends nt{id;protocol;constructor(e){super(e),this.id=e.id,this.protocol=e.protocol??""}async close(e){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 Kt(this,"idle",{...e,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 Kt(this,"drain",{...e,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(e),this.writeStatus="closed",this.log("closed writable end gracefully"),this.remoteWriteStatus==="closed"&&this.onTransportClosed())}async closeRead(e){this.readStatus==="closing"||this.readStatus==="closed"||(this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.readStatus="closing",await this.sendCloseRead(e),this.readStatus="closed",this.log("closed readable end gracefully"))}};var Xg=4194304,Ns=class extends Error{static name="UnwrappedError";name="UnwrappedError"},oo=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},jc=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Wc=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Yg(t){return typeof t?.closeRead=="function"}function Jg(t){return typeof t?.close=="function"}function $c(t){return Yg(t)?t.remoteWriteStatus!=="writable"&&t.readBufferLength===0:Jg(t)?t.status!=="open":!1}function Qg(t){return t?.addEventListener!=null&&t?.removeEventListener!=null&&t?.send!=null&&t?.push!=null&&t?.log!=null}function eb(t,e){let r=e?.maxBufferSize??Xg,n=new W,o,s=!1;if(!Qg(t))throw new ee("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()};t.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};t.addEventListener("close",a);let c=()=>{o?.resolve()};t.addEventListener("remoteCloseWrite",c);let f={readBuffer:n,async read(u){if(s===!0)throw new Ns("Stream was unwrapped");if($c(t)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw t.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new hr(`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 Fe(o.promise,u?.signal),$c(t)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let g=u?.bytes??n.byteLength;if(n.byteLength<g){if($c(t))throw t.log.error("closed while reading %d/%d bytes",n.byteLength,g),new hr(`Unexpected EOF - stream closed while reading ${n.byteLength}/${g} bytes`);return f.read(u)}let p=n.sublist(0,g);return n.consume(g),p},async write(u,h){if(s===!0)throw new Ns("Stream was unwrapped");t.send(u)||await Kt(t,"drain",{signal:h?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,t.removeEventListener("message",i),t.removeEventListener("close",a),t.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(t.log("stream unwrapped with %d unread bytes",n.byteLength),t.unshift(n))),t}};return f}function Gc(t,e={}){let r=eb(t,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=Re(e.maxDataLength));let n=e?.lengthDecoder??Jo,o=e?.lengthEncoder??Lh;return{async read(i){let a=-1,c=new W;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 oo("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Wc(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new jc(`Message length too long - ${a} > ${e.maxDataLength}`);let f=await r.read({...i,bytes:a});if(f==null)throw t.log.error("tried to read %d bytes but the stream closed",a),new hr(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(f.byteLength!==a)throw t.log.error("read %d/%d bytes before the stream closed",f.byteLength,a),new hr(`Unexpected EOF - read ${f.byteLength}/${a} bytes before the stream closed`);return f},async write(i,a){await r.write(new W(o(i.byteLength),i),a)},async writeV(i,a){let c=new W(...i.flatMap(f=>[o(f.byteLength),f]));await r.write(c,a)},unwrap(){return r.unwrap()}}}var tb=1024*1024*4,rb=1024*1024*4,Ms=class{buffer;maxBufferSize;lengthDecoder;maxDataLength;encodingLength;constructor(e={}){this.buffer=new W,this.maxBufferSize=e.maxBufferSize??tb,this.maxDataLength=e.maxDataLength??rb,this.lengthDecoder=e.lengthDecoder??Jo,this.encodingLength=e.encodingLength??Re}*decode(e){if(this.buffer.append(e),this.buffer.byteLength>this.maxBufferSize)throw new ee(`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 oo("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 ot(t=0){return new Uint8Array(t)}function Ke(t=0){return new Uint8Array(t)}var Jr=!!globalThis.process?.env?.DUMP_SESSION_KEYS,Zc=16;function nb(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"&&"BYTES_PER_ELEMENT"in t&&t.BYTES_PER_ELEMENT===1}function ks(t){if(typeof t!="boolean")throw new TypeError(`boolean expected, not ${t}`)}function Qr(t){if(typeof t!="number")throw new TypeError("number expected, got "+typeof t);if(!Number.isSafeInteger(t)||t<0)throw new RangeError("positive integer expected, got "+t)}function ge(t,e,r=""){let n=nb(t),o=t?.length,s=e!==void 0;if(!n||s&&o!==e){let i=r&&`"${r}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof t}`,f=i+"expected Uint8Array"+a+", got "+c;throw n?new RangeError(f):new TypeError(f)}return t}function Xc(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function td(t,e,r=!1){ge(t,void 0,"output");let n=e.outputLen;if(t.length<n)throw new RangeError("digestInto() expects output buffer of length at least "+n);if(r&&!en(t))throw new Error("invalid output, must be aligned")}function st(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Ze(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function ob(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}var lr=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68,sb=t=>t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255;var ib=t=>{for(let e=0;e<t.length;e++)t[e]=sb(t[e]);return t},St=lr?t=>t:ib;function rd(t,e){if(e==null||typeof e!="object")throw new Error("options must be defined");return Object.assign(t,e)}function nd(t,e){if(t.length!==e.length)return!1;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return r===0}function od(t,e,r){let n=e,o=r||(()=>[]),s=(a,c)=>n(c,...o(a)).update(a).digest(),i=n(new Uint8Array(t),...o(new Uint8Array(0)));return s.outputLen=i.outputLen,s.blockLen=i.blockLen,s.create=(a,...c)=>n(a,...c),s}var sd=(t,e)=>{function r(n,...o){if(ge(n,void 0,"key"),t.nonceLength!==void 0){let u=o[0];ge(u,t.varSizeNonce?void 0:t.nonceLength,"nonce")}let s=t.tagLength;s&&o[1]!==void 0&&ge(o[1],void 0,"AAD");let i=e(n,...o),a=(u,h)=>{if(h!==void 0){if(u!==2)throw new Error("cipher output not supported");ge(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,ge(u),a(i.encrypt.length,h),i.encrypt(u,h)},decrypt(u,h){if(ge(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,t),r};function so(t,e,r=!0){if(e===void 0)return new Uint8Array(t);if(ge(e,void 0,"output"),e.length!==t)throw new Error('"output" expected Uint8Array of length '+t+", got: "+e.length);if(r&&!en(e))throw new Error("invalid output, must be aligned");return e}function id(t,e,r){Qr(t),Qr(e),ks(r);let n=new Uint8Array(16),o=ob(n);return o.setBigUint64(0,BigInt(e),r),o.setBigUint64(8,BigInt(t),r),n}function en(t){return t.byteOffset%4===0}function tn(t){return Uint8Array.from(ge(t))}var cd=t=>Uint8Array.from(t.split(""),e=>e.charCodeAt(0)),ab=St(st(cd("expand 16-byte k"))),cb=St(st(cd("expand 32-byte k")));function $(t,e){return t<<e|t>>>32-e}var io=64,fb=16,Yc=2**32-1,ad=Uint32Array.of();function ub(t,e,r,n,o,s,i,a){let c=o.length,f=new Uint8Array(io),u=st(f),h=lr&&en(o)&&en(s),g=h?st(o):ad,p=h?st(s):ad;if(!lr){for(let d=0;d<c;i++){if(t(e,r,n,u,i,a),St(u),i>=Yc)throw new Error("arx: counter overflow");let b=Math.min(io,c-d);for(let l=0,m;l<b;l++)m=d+l,s[m]=o[m]^f[l];d+=b}return}for(let d=0;d<c;i++){if(t(e,r,n,u,i,a),i>=Yc)throw new Error("arx: counter overflow");let b=Math.min(io,c-d);if(h&&b===io){let l=d/4;if(d%4!==0)throw new Error("arx: invalid block position");for(let m=0,A;m<fb;m++)A=l+m,p[A]=g[A]^u[m];d+=io;continue}for(let l=0,m;l<b;l++)m=d+l,s[m]=o[m]^f[l];d+=b}}function fd(t,e){let{allowShortKeys:r,extendNonceFn:n,counterLength:o,counterRight:s,rounds:i}=rd({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof t!="function")throw new Error("core must be a function");return Qr(o),Qr(i),ks(s),ks(r),(a,c,f,u,h=0)=>{ge(a,void 0,"key"),ge(c,void 0,"nonce"),ge(f,void 0,"data");let g=f.length;if(u=so(g,u,!1),Qr(h),h<0||h>=Yc)throw new Error("arx: counter overflow");let p=[],d=a.length,b,l;if(d===32)p.push(b=tn(a)),l=cb;else if(d===16&&r)b=new Uint8Array(32),b.set(a),b.set(a,16),l=ab,p.push(b);else throw ge(a,32,"arx key"),new Error("invalid key size");(!lr||!en(c))&&p.push(c=tn(c));let m=st(b);if(n){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");let T=c.subarray(0,16);if(lr)n(l,m,st(T),m);else{let D=St(Uint32Array.from(l));n(D,m,st(T),m),Ze(D),St(m)}c=c.subarray(16)}else lr||St(m);let A=16-o;if(A!==c.length)throw new Error(`arx: nonce must be ${A} or 16 bytes`);if(A!==12){let T=new Uint8Array(12);T.set(c,s?0:12-c.length),c=T,p.push(c)}let B=St(st(c));try{return ub(t,l,m,B,f,u,h,i),u}finally{Ze(...p)}}}function Ae(t,e){return t[e++]&255|(t[e++]&255)<<8}var Jc=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(e){e=tn(ge(e,32,"key"));let r=Ae(e,0),n=Ae(e,2),o=Ae(e,4),s=Ae(e,6),i=Ae(e,8),a=Ae(e,10),c=Ae(e,12),f=Ae(e,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]=Ae(e,16+2*u)}process(e,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],g=i[5],p=i[6],d=i[7],b=i[8],l=i[9],m=Ae(e,r+0),A=Ae(e,r+2),B=Ae(e,r+4),T=Ae(e,r+6),D=Ae(e,r+8),U=Ae(e,r+10),_=Ae(e,r+12),C=Ae(e,r+14),P=s[0]+(m&8191),k=s[1]+((m>>>13|A<<3)&8191),N=s[2]+((A>>>10|B<<6)&8191),y=s[3]+((B>>>7|T<<9)&8191),v=s[4]+((T>>>4|D<<12)&8191),S=s[5]+(D>>>1&8191),w=s[6]+((D>>>14|U<<2)&8191),x=s[7]+((U>>>11|_<<5)&8191),L=s[8]+((_>>>8|C<<8)&8191),I=s[9]+(C>>>5|o),E=0,R=E+P*a+k*(5*l)+N*(5*b)+y*(5*d)+v*(5*p);E=R>>>13,R&=8191,R+=S*(5*g)+w*(5*h)+x*(5*u)+L*(5*f)+I*(5*c),E+=R>>>13,R&=8191;let O=E+P*c+k*a+N*(5*l)+y*(5*b)+v*(5*d);E=O>>>13,O&=8191,O+=S*(5*p)+w*(5*g)+x*(5*h)+L*(5*u)+I*(5*f),E+=O>>>13,O&=8191;let M=E+P*f+k*c+N*a+y*(5*l)+v*(5*b);E=M>>>13,M&=8191,M+=S*(5*d)+w*(5*p)+x*(5*g)+L*(5*h)+I*(5*u),E+=M>>>13,M&=8191;let z=E+P*u+k*f+N*c+y*a+v*(5*l);E=z>>>13,z&=8191,z+=S*(5*b)+w*(5*d)+x*(5*p)+L*(5*g)+I*(5*h),E+=z>>>13,z&=8191;let K=E+P*h+k*u+N*f+y*c+v*a;E=K>>>13,K&=8191,K+=S*(5*l)+w*(5*b)+x*(5*d)+L*(5*p)+I*(5*g),E+=K>>>13,K&=8191;let Y=E+P*g+k*h+N*u+y*f+v*c;E=Y>>>13,Y&=8191,Y+=S*a+w*(5*l)+x*(5*b)+L*(5*d)+I*(5*p),E+=Y>>>13,Y&=8191;let J=E+P*p+k*g+N*h+y*u+v*f;E=J>>>13,J&=8191,J+=S*c+w*a+x*(5*l)+L*(5*b)+I*(5*d),E+=J>>>13,J&=8191;let Q=E+P*d+k*p+N*g+y*h+v*u;E=Q>>>13,Q&=8191,Q+=S*f+w*c+x*a+L*(5*l)+I*(5*b),E+=Q>>>13,Q&=8191;let j=E+P*b+k*d+N*p+y*g+v*h;E=j>>>13,j&=8191,j+=S*u+w*f+x*c+L*a+I*(5*l),E+=j>>>13,j&=8191;let ie=E+P*l+k*b+N*d+y*p+v*g;E=ie>>>13,ie&=8191,ie+=S*h+w*u+x*f+L*c+I*a,E+=ie>>>13,ie&=8191,E=(E<<2)+E|0,E=E+R|0,R=E&8191,E=E>>>13,O+=E,s[0]=R,s[1]=O,s[2]=M,s[3]=z,s[4]=K,s[5]=Y,s[6]=J,s[7]=Q,s[8]=j,s[9]=ie}finalize(){let{h:e,pad:r}=this,n=new Uint16Array(10),o=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=o,o=e[a]>>>13,e[a]&=8191;e[0]+=o*5,o=e[0]>>>13,e[0]&=8191,e[1]+=o,o=e[1]>>>13,e[1]&=8191,e[2]+=o,n[0]=e[0]+5,o=n[0]>>>13,n[0]&=8191;for(let a=1;a<10;a++)n[a]=e[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++)e[a]=e[a]&s|n[a];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let i=e[0]+r[0];e[0]=i&65535;for(let a=1;a<8;a++)i=(e[a]+r[a]|0)+(i>>>16)|0,e[a]=i&65535;Ze(n)}update(e){Xc(this),ge(e),e=tn(e);let{buffer:r,blockLen:n}=this,o=e.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(e,s);continue}r.set(e.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,Ze(this.h,this.r,this.buffer,this.pad)}digestInto(e){Xc(this),td(e,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++)e[s++]=n[i]>>>0,e[s++]=n[i]>>>8}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}},ud=od(32,t=>new Jc(t));function hb(t,e,r,n,o,s=20){let i=t[0],a=t[1],c=t[2],f=t[3],u=e[0],h=e[1],g=e[2],p=e[3],d=e[4],b=e[5],l=e[6],m=e[7],A=o,B=r[0],T=r[1],D=r[2],U=i,_=a,C=c,P=f,k=u,N=h,y=g,v=p,S=d,w=b,x=l,L=m,I=A,E=B,R=T,O=D;for(let z=0;z<s;z+=2)U=U+k|0,I=$(I^U,16),S=S+I|0,k=$(k^S,12),U=U+k|0,I=$(I^U,8),S=S+I|0,k=$(k^S,7),_=_+N|0,E=$(E^_,16),w=w+E|0,N=$(N^w,12),_=_+N|0,E=$(E^_,8),w=w+E|0,N=$(N^w,7),C=C+y|0,R=$(R^C,16),x=x+R|0,y=$(y^x,12),C=C+y|0,R=$(R^C,8),x=x+R|0,y=$(y^x,7),P=P+v|0,O=$(O^P,16),L=L+O|0,v=$(v^L,12),P=P+v|0,O=$(O^P,8),L=L+O|0,v=$(v^L,7),U=U+N|0,O=$(O^U,16),x=x+O|0,N=$(N^x,12),U=U+N|0,O=$(O^U,8),x=x+O|0,N=$(N^x,7),_=_+y|0,I=$(I^_,16),L=L+I|0,y=$(y^L,12),_=_+y|0,I=$(I^_,8),L=L+I|0,y=$(y^L,7),C=C+v|0,E=$(E^C,16),S=S+E|0,v=$(v^S,12),C=C+v|0,E=$(E^C,8),S=S+E|0,v=$(v^S,7),P=P+k|0,R=$(R^P,16),w=w+R|0,k=$(k^w,12),P=P+k|0,R=$(R^P,8),w=w+R|0,k=$(k^w,7);let M=0;n[M++]=i+U|0,n[M++]=a+_|0,n[M++]=c+C|0,n[M++]=f+P|0,n[M++]=u+k|0,n[M++]=h+N|0,n[M++]=g+y|0,n[M++]=p+v|0,n[M++]=d+S|0,n[M++]=b+w|0,n[M++]=l+x|0,n[M++]=m+L|0,n[M++]=A+I|0,n[M++]=B+E|0,n[M++]=T+R|0,n[M++]=D+O|0}var lb=fd(hb,{counterRight:!1,counterLength:4,allowShortKeys:!1});var db=new Uint8Array(16),hd=(t,e)=>{t.update(e);let r=e.length%16;r&&t.update(db.subarray(r))},pb=new Uint8Array(32);function ld(t,e,r,n,o){o!==void 0&&ge(o,void 0,"AAD");let s=t(e,r,pb),i=id(n.length,o?o.length:0,!0),a=ud.create(s);o&&hd(a,o),hd(a,n),a.update(i);let c=a.digest();return Ze(s,i),c}var mb=t=>(e,r,n)=>({encrypt(s,i){let a=s.length;i=so(a+16,i,!1),i.set(s);let c=i.subarray(0,-16);t(e,r,c,c,1);let f=ld(t,e,r,c,n);return i.set(f,a),Ze(f),i},decrypt(s,i){i=so(s.length-16,i,!1);let a=s.subarray(0,-16),c=s.subarray(-16),f=ld(t,e,r,a,n);if(!nd(c,f))throw Ze(f),new Error("invalid tag");return i.set(s.subarray(0,-16)),t(e,r,i,i,1),Ze(f),i}}),Qc=sd({blockSize:64,nonceLength:12,tagLength:16},mb(lb));function pd(t,e,r){return Zt(t),r===void 0&&(r=new Uint8Array(t.outputLen)),Zn(t,r,e)}var ef=Uint8Array.of(0),dd=Uint8Array.of();function md(t,e,r,n=32){Zt(t),Ye(n,"length"),Be(e,void 0,"prk");let o=t.outputLen;if(e.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=dd:Be(r,void 0,"info");let i=new Uint8Array(s*o),a=Zn.create(t,e),c=a._cloneInto(),f=new Uint8Array(a.outputLen);for(let u=0;u<s;u++)ef[0]=u+1,c.update(u===0?dd:f).update(r).update(ef).digestInto(f),i.set(f,o*u),a._cloneInto(c);return a.destroy(),c.destroy(),Ve(f,ef),i.slice(0,n)}var tf={hashSHA256(t){return Qe(t.subarray())},getHKDF(t,e){let r=pd(Qe,e,t),o=md(Qe,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 t=Pn.utils.randomSecretKey();return{publicKey:Pn.getPublicKey(t),privateKey:t}},generateX25519KeyPairFromSeed(t){return{publicKey:Pn.getPublicKey(t),privateKey:t}},generateX25519SharedKey(t,e){return Pn.getSharedSecret(t.subarray(),e.subarray())},chaCha20Poly1305Encrypt(t,e,r,n){return Qc(n,e,r).encrypt(t.subarray())},chaCha20Poly1305Decrypt(t,e,r,n,o){return Qc(n,e,r).decrypt(t.subarray(),o)}};var yd=tf;function gd(t){return{generateKeypair:t.generateX25519KeyPair,dh:(e,r)=>t.generateX25519SharedKey(e.privateKey,r).subarray(0,32),encrypt:t.chaCha20Poly1305Encrypt,decrypt:t.chaCha20Poly1305Decrypt,hash:t.hashSHA256,hkdf:t.getHKDF}}var rn=t=>{let e=Ke(2);return e[0]=t>>8,e[1]=t,e};rn.bytes=2;var nn=t=>{if(t.length<2)throw RangeError("Could not decode int16BE");if(t instanceof Uint8Array){let e=0;return e+=t[0]<<8,e+=t[1],e}return t.getUint16(0)};nn.bytes=2;function bd(t){return{xxHandshakeSuccesses:t.registerCounter("libp2p_noise_xxhandshake_successes_total",{help:"Total count of noise xxHandshakes successes_"}),xxHandshakeErrors:t.registerCounter("libp2p_noise_xxhandshake_error_total",{help:"Total count of noise xxHandshakes errors"}),encryptedPackets:t.registerCounter("libp2p_noise_encrypted_packets_total",{help:"Total count of noise encrypted packets successfully"}),decryptedPackets:t.registerCounter("libp2p_noise_decrypted_packets_total",{help:"Total count of noise decrypted packets"}),decryptErrors:t.registerCounter("libp2p_noise_decrypt_errors_total",{help:"Total count of noise decrypt errors"})}}var af={};H(af,{base10:()=>Sb});var Cv=new Uint8Array(0);function xd(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function vt(t){if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")}function wd(t){return new TextEncoder().encode(t)}function Ed(t){return new TextDecoder().decode(t)}function yb(t,e){if(t.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<t.length;o++){var s=t.charAt(o),i=s.charCodeAt(0);if(r[i]!==255)throw new TypeError(s+" is ambiguous");r[i]=o}var a=t.length,c=t.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,m=0,A=d.length;m!==A&&d[m]===0;)m++,b++;for(var B=(A-m)*u+1>>>0,T=new Uint8Array(B);m!==A;){for(var D=d[m],U=0,_=B-1;(D!==0||U<l)&&_!==-1;_--,U++)D+=256*T[_]>>>0,T[_]=D%a>>>0,D=D/a>>>0;if(D!==0)throw new Error("Non-zero carry");l=U,m++}for(var C=B-l;C!==B&&T[C]===0;)C++;for(var P=c.repeat(b);C<B;++C)P+=t.charAt(T[C]);return P}function g(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,m=0;d[b]===c;)l++,b++;for(var A=(d.length-b)*f+1>>>0,B=new Uint8Array(A);d[b];){var T=r[d.charCodeAt(b)];if(T===255)return;for(var D=0,U=A-1;(T!==0||D<m)&&U!==-1;U--,D++)T+=a*B[U]>>>0,B[U]=T%256>>>0,T=T/256>>>0;if(T!==0)throw new Error("Non-zero carry");m=D,b++}if(d[b]!==" "){for(var _=A-m;_!==A&&B[_]===0;)_++;for(var C=new Uint8Array(l+(A-_)),P=l;_!==A;)C[P++]=B[_++];return C}}}function p(d){var b=g(d);if(b)return b;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:g,decode:p}}var gb=yb,bb=gb,vd=bb;var rf=class{name;prefix;baseEncode;constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},nf=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,r,n){this.name=e,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(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Ad(this,e)}},of=class{decoders;constructor(e){this.decoders=e}or(e){return Ad(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Ad(t,e){return new of({...t.decoders??{[t.prefix]:t},...e.decoders??{[e.prefix]:e}})}var sf=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,r,n,o){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=o,this.encoder=new rf(e,r,n),this.decoder=new nf(e,r,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function on({name:t,prefix:e,encode:r,decode:n}){return new sf(t,e,r,n)}function zt({name:t,prefix:e,alphabet:r}){let{encode:n,decode:o}=vd(r,t);return on({prefix:e,name:t,encode:n,decode:s=>vt(o(s))})}function xb(t,e,r,n){let o=t.length;for(;t[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=e[t[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 wb(t,e,r){let n=e[e.length-1]==="=",o=(1<<r)-1,s="",i=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],i+=8;i>r;)i-=r,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<r-i]),n)for(;(s.length*r&7)!==0;)s+="=";return s}function Eb(t){let e={};for(let r=0;r<t.length;++r)e[t[r]]=r;return e}function pe({name:t,prefix:e,bitsPerChar:r,alphabet:n}){let o=Eb(n);return on({prefix:e,name:t,encode(s){return wb(s,n,r)},decode(s){return xb(s,o,r,t)}})}var Sb=zt({prefix:"9",name:"base10",alphabet:"0123456789"});var cf={};H(cf,{base16:()=>vb,base16upper:()=>Ab});var vb=pe({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Ab=pe({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ff={};H(ff,{base2:()=>Bb});var Bb=pe({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var uf={};H(uf,{base256emoji:()=>Tb});var Bd=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}"),Lb=Bd.reduce((t,e,r)=>(t[r]=e,t),[]),Cb=Bd.reduce((t,e,r)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return t[n]=r,t},[]);function Ib(t){return t.reduce((e,r)=>(e+=Lb[r],e),"")}function _b(t){let e=[];for(let r of t){let n=r.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${r}`);let o=Cb[n];if(o==null)throw new Error(`Non-base256emoji character: ${r}`);e.push(o)}return new Uint8Array(e)}var Tb=on({prefix:"\u{1F680}",name:"base256emoji",encode:Ib,decode:_b});var hf={};H(hf,{base32:()=>sn,base32hex:()=>Ub,base32hexpad:()=>Nb,base32hexpadupper:()=>Mb,base32hexupper:()=>Pb,base32pad:()=>Rb,base32padupper:()=>Ob,base32upper:()=>Db,base32z:()=>kb});var sn=pe({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Db=pe({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Rb=pe({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Ob=pe({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ub=pe({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Pb=pe({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Nb=pe({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Mb=pe({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),kb=pe({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var lf={};H(lf,{base36:()=>ao,base36upper:()=>Fb});var ao=zt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Fb=zt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var df={};H(df,{base58btc:()=>it,base58flickr:()=>Kb});var it=zt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),Kb=zt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var pf={};H(pf,{base64:()=>zb,base64pad:()=>Hb,base64url:()=>Vb,base64urlpad:()=>qb});var zb=pe({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Hb=pe({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Vb=pe({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),qb=pe({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var mf={};H(mf,{base8:()=>$b});var $b=pe({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var yf={};H(yf,{identity:()=>jb});var jb=on({prefix:"\0",name:"identity",encode:t=>Ed(t),decode:t=>wd(t)});var Vv=new TextEncoder,qv=new TextDecoder;var bf={};H(bf,{identity:()=>mx});var Zb=Id,Ld=128,Xb=127,Yb=~Xb,Jb=Math.pow(2,31);function Id(t,e,r){e=e||[],r=r||0;for(var n=r;t>=Jb;)e[r++]=t&255|Ld,t/=128;for(;t&Yb;)e[r++]=t&255|Ld,t>>>=7;return e[r]=t|0,Id.bytes=r-n+1,e}var Qb=gf,ex=128,Cd=127;function gf(t,n){var r=0,n=n||0,o=0,s=n,i,a=t.length;do{if(s>=a)throw gf.bytes=0,new RangeError("Could not decode varint");i=t[s++],r+=o<28?(i&Cd)<<o:(i&Cd)*Math.pow(2,o),o+=7}while(i>=ex);return gf.bytes=s-n,r}var tx=Math.pow(2,7),rx=Math.pow(2,14),nx=Math.pow(2,21),ox=Math.pow(2,28),sx=Math.pow(2,35),ix=Math.pow(2,42),ax=Math.pow(2,49),cx=Math.pow(2,56),fx=Math.pow(2,63),ux=function(t){return t<tx?1:t<rx?2:t<nx?3:t<ox?4:t<sx?5:t<ix?6:t<ax?7:t<cx?8:t<fx?9:10},hx={encode:Zb,decode:Qb,encodingLength:ux},lx=hx,co=lx;function fo(t,e=0){return[co.decode(t,e),co.decode.bytes]}function an(t,e,r=0){return co.encode(t,e,r),e}function cn(t){return co.encodingLength(t)}function un(t,e){let r=e.byteLength,n=cn(t),o=n+cn(r),s=new Uint8Array(o+r);return an(t,s,0),an(r,s,n),s.set(e,o),new fn(t,r,e,s)}function _d(t){let e=vt(t),[r,n]=fo(e),[o,s]=fo(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new fn(r,o,i,e)}function Td(t,e){if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&xd(t.bytes,r.bytes)}}var fn=class{code;size;digest;bytes;constructor(e,r,n,o){this.code=e,this.size=r,this.digest=n,this.bytes=o}};var Dd=0,dx="identity",Rd=vt;function px(t,e){if(e?.truncate!=null&&e.truncate!==t.byteLength){if(e.truncate<0||e.truncate>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,e.truncate)}return un(Dd,Rd(t))}var mx={code:Dd,name:dx,encode:Rd,digest:px};var Ef={};H(Ef,{sha256:()=>gx,sha512:()=>bx});var yx=20;function wf({name:t,code:e,encode:r,minDigestLength:n,maxDigestLength:o}){return new xf(t,e,r,n,o)}var xf=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,r,n,o,s){this.name=e,this.code=r,this.encode=n,this.minDigestLength=o??yx,this.maxDigestLength=s}digest(e,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(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?Od(n,this.code,r?.truncate):n.then(o=>Od(o,this.code,r?.truncate))}else throw Error("Unknown type, must be binary type")}};function Od(t,e,r){if(r!=null&&r!==t.byteLength){if(r>t.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${t.byteLength}`);t=t.subarray(0,r)}return un(e,t)}function Pd(t){return async e=>new Uint8Array(await crypto.subtle.digest(t,e))}var gx=wf({name:"sha2-256",code:18,encode:Pd("SHA-256")}),bx=wf({name:"sha2-512",code:19,encode:Pd("SHA-512")});function Nd(t,e){let{bytes:r,version:n}=t;return n===0?wx(r,Sf(t),e??it.encoder):Ex(r,Sf(t),e??sn.encoder)}var Md=new WeakMap;function Sf(t){let e=Md.get(t);if(e==null){let r=new Map;return Md.set(t,r),r}return e}var Ks=class t{code;version;multihash;bytes;"/";constructor(e,r,n,o){this.code=r,this.version=e,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:e,multihash:r}=this;if(e!==ho)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==Sx)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.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:e,digest:r}=this.multihash,n=un(e,r);return t.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(e){return t.equals(this,e)}static equals(e,r){let n=r;return n!=null&&e.code===n.code&&e.version===n.version&&Td(e.multihash,n.multihash)}toString(e){return Nd(this,e)}toJSON(){return{"/":Nd(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:o,multihash:s,bytes:i}=r;return new t(n,o,s,i??kd(n,o,s.bytes))}else if(r[vx]===!0){let{version:n,multihash:o,code:s}=r,i=_d(o);return t.create(n,s,i)}else return null}static create(e,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(e){case 0:{if(r!==ho)throw new Error(`Version 0 CID must use dag-pb (code: ${ho}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let o=kd(e,r,n.bytes);return new t(e,r,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,ho,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,o=vt(e.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 fn(r.multihashCode,r.digestSize,s,o);return[r.version===0?t.createV0(i):t.createV1(r.codec,i),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[h,g]=fo(e.subarray(r));return r+=g,h},o=n(),s=ho;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(e,r){let[n,o]=xx(e,r),s=t.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Sf(s).set(n,e),s}};function xx(t,e){switch(t[0]){case"Q":{let r=e??it;return[it.prefix,r.decode(`${it.prefix}${t}`)]}case it.prefix:{let r=e??it;return[it.prefix,r.decode(t)]}case sn.prefix:{let r=e??sn;return[sn.prefix,r.decode(t)]}case ao.prefix:{let r=e??ao;return[ao.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}}function wx(t,e,r){let{prefix:n}=r;if(n!==it.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let o=e.get(n);if(o==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return o}function Ex(t,e,r){let{prefix:n}=r,o=e.get(n);if(o==null){let s=r.encode(t);return e.set(n,s),s}else return o}var ho=112,Sx=18;function kd(t,e,r){let n=cn(t),o=n+cn(e),s=new Uint8Array(o+r.byteLength);return an(t,s,0),an(e,s,n),s.set(r,o),s}var vx=Symbol.for("@ipld/js-cid/CID");var vf={...yf,...ff,...mf,...af,...cf,...hf,...lf,...df,...pf,...uf},l3={...Ef,...bf};function Kd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Fd=Kd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Af=Kd("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Ke(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Ax={utf8:Fd,"utf-8":Fd,hex:vf.base16,latin1:Af,ascii:Af,binary:Af,...vf},zs=Ax;function at(t,e="utf8"){let r=zs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.encoder.encode(t).substring(1)}function Bf(t,e){!e.enabled||!Jr||(t?(e(`LOCAL_STATIC_PUBLIC_KEY ${at(t.publicKey,"hex")}`),e(`LOCAL_STATIC_PRIVATE_KEY ${at(t.privateKey,"hex")}`)):e("Missing local static keys."))}function Lf(t,e){!e.enabled||!Jr||(t?(e(`LOCAL_PUBLIC_EPHEMERAL_KEY ${at(t.publicKey,"hex")}`),e(`LOCAL_PRIVATE_EPHEMERAL_KEY ${at(t.privateKey,"hex")}`)):e("Missing local ephemeral keys."))}function zd(t,e){!e.enabled||!Jr||e(t?`REMOTE_STATIC_PUBLIC_KEY ${at(t.subarray(),"hex")}`:"Missing remote static public key.")}function Cf(t,e){!e.enabled||!Jr||e(t?`REMOTE_EPHEMERAL_PUBLIC_KEY ${at(t.subarray(),"hex")}`:"Missing remote ephemeral keys.")}function If(t,e,r){!r.enabled||!Jr||(r(`CIPHER_STATE_1 ${t.n.getUint64()} ${t.k&&at(t.k,"hex")}`),r(`CIPHER_STATE_2 ${e.n.getUint64()} ${e.k&&at(e.k,"hex")}`))}function _f(t,e){e==null&&(e=t.reduce((o,s)=>o+s.length,0));let r=Ke(e),n=0;for(let o of t)r.set(o,n),n+=o.length;return r}function dr(t,e="utf8"){let r=zs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return r.decoder.decode(`${r.prefix}${t}`)}var hn=class t extends Error{code;constructor(e="Invalid crypto exchange"){super(e),this.code=t.code}static code="ERR_INVALID_CRYPTO_EXCHANGE"};var Lx=0,Cx=4294967295,Ix="Cipherstate has reached maximum n, a new handshake must be performed",Hs=class{n;bytes;view;constructor(e=Lx){this.n=e,this.bytes=ot(12),this.view=new DataView(this.bytes.buffer,this.bytes.byteOffset,this.bytes.byteLength),this.view.setUint32(4,e,!0)}increment(){this.n++,this.view.setUint32(4,this.n,!0)}getBytes(){return this.bytes}getUint64(){return this.n}assertValue(){if(this.n>Cx)throw new Error(Ix)}};var pr=ot(0),ln=class{k;n;crypto;constructor(e,r=void 0,n=0){this.crypto=e,this.k=r,this.n=new Hs(n)}hasKey(){return!!this.k}encryptWithAd(e,r){if(!this.hasKey())return r;this.n.assertValue();let n=this.crypto.encrypt(r,this.n.getBytes(),e,this.k);return this.n.increment(),n}decryptWithAd(e,r,n){if(!this.hasKey())return r;this.n.assertValue();let o=this.crypto.decrypt(r,this.n.getBytes(),e,this.k,n);return this.n.increment(),o}},Tf=class{cs;ck;h;crypto;constructor(e,r){this.crypto=e;let n=dr(r,"utf-8");this.h=_x(e,n),this.ck=this.h,this.cs=new ln(e)}mixKey(e){let[r,n]=this.crypto.hkdf(this.ck,e);this.ck=r,this.cs=new ln(this.crypto,n)}mixHash(e){this.h=this.crypto.hash(new W(this.h,e))}encryptAndHash(e){let r=this.cs.encryptWithAd(this.h,e);return this.mixHash(r),r}decryptAndHash(e){let r=this.cs.decryptWithAd(this.h,e);return this.mixHash(e),r}split(){let[e,r]=this.crypto.hkdf(this.ck,pr);return[new ln(this.crypto,e),new ln(this.crypto,r)]}},Df=class{ss;s;e;rs;re;initiator;crypto;constructor(e){let{crypto:r,protocolName:n,prologue:o,initiator:s,s:i,e:a,rs:c,re:f}=e;this.crypto=r,this.ss=new Tf(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 e=this.crypto.generateKeypair();return this.ss.mixHash(e.publicKey),this.e=e,e.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(e,r=0){if(this.re)throw new Error("remote ephemeral public key is already set");if(e.byteLength<r+32)throw new Error("message is not long enough");this.re=e.sublist(r,r+32),this.ss.mixHash(this.re)}readS(e,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(e.byteLength<r+n)throw new Error("message is not long enough");let o=e.sublist(r,r+n);return this.rs=this.ss.decryptAndHash(o),n}readEE(){this.writeEE()}readES(){this.writeES()}readSE(){this.writeSE()}},lo=class extends Df{writeMessageA(e){return new W(this.writeE(),this.ss.encryptAndHash(e))}writeMessageB(e){let r=this.writeE();this.writeEE();let n=this.writeS();return this.writeES(),new W(r,n,this.ss.encryptAndHash(e))}writeMessageC(e){let r=this.writeS();return this.writeSE(),new W(r,this.ss.encryptAndHash(e))}readMessageA(e){try{return this.readE(e),this.ss.decryptAndHash(e.sublist(32))}catch(r){throw new hn(`handshake stage 0 validation fail: ${r.message}`)}}readMessageB(e){try{this.readE(e),this.readEE();let r=this.readS(e,32);return this.readES(),this.ss.decryptAndHash(e.sublist(32+r))}catch(r){throw new hn(`handshake stage 1 validation fail: ${r.message}`)}}readMessageC(e){try{let r=this.readS(e);return this.readSE(),this.ss.decryptAndHash(e.sublist(r))}catch(r){throw new hn(`handshake stage 2 validation fail: ${r.message}`)}}};function _x(t,e){if(e.length<=32){let r=ot(32);return r.set(e),r}else return t.hash(e)}var Rf=new Float32Array([-0]),Ht=new Uint8Array(Rf.buffer);function Hd(t,e,r){Rf[0]=t,e[r]=Ht[0],e[r+1]=Ht[1],e[r+2]=Ht[2],e[r+3]=Ht[3]}function Vd(t,e){return Ht[0]=t[e],Ht[1]=t[e+1],Ht[2]=t[e+2],Ht[3]=t[e+3],Rf[0]}var Of=new Float64Array([-0]),Te=new Uint8Array(Of.buffer);function qd(t,e,r){Of[0]=t,e[r]=Te[0],e[r+1]=Te[1],e[r+2]=Te[2],e[r+3]=Te[3],e[r+4]=Te[4],e[r+5]=Te[5],e[r+6]=Te[6],e[r+7]=Te[7]}function $d(t,e){return Te[0]=t[e],Te[1]=t[e+1],Te[2]=t[e+2],Te[3]=t[e+3],Te[4]=t[e+4],Te[5]=t[e+5],Te[6]=t[e+6],Te[7]=t[e+7],Of[0]}var Tx=BigInt(Number.MAX_SAFE_INTEGER),Dx=BigInt(Number.MIN_SAFE_INTEGER),Me=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&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(e=!1){if(e)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(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return mr;if(e<Tx&&e>Dx)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,o=e-(n<<32n);return r&&(n=~n|0n,o=~o|0n,++o>jd&&(o=0n,++n>jd&&(n=0n))),new t(Number(o),Number(n))}static fromNumber(e){if(e===0)return mr;let r=e<0;r&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return r&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new t(n,o)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):mr}},mr=new Me(0,0);mr.toBigInt=function(){return 0n};mr.zzEncode=mr.zzDecode=function(){return this};mr.length=function(){return 1};var jd=4294967296n;function Wd(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Gd(t,e,r){if(r-e<1)return"";let o,s=[],i=0,a;for(;e<r;)a=t[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&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 Uf(t,e,r){let n=r,o,s;for(let i=0;i<t.length;++i)o=t.charCodeAt(i),o<128?e[r++]=o:o<2048?(e[r++]=o>>6|192,e[r++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[r++]=o>>18|240,e[r++]=o>>12&63|128,e[r++]=o>>6&63|128,e[r++]=o&63|128):(e[r++]=o>>12|224,e[r++]=o>>6&63|128,e[r++]=o&63|128);return r-n}function Xe(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function Vs(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var Pf=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Xe(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Xe(this,4);return Vs(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Xe(this,4);return Vs(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Xe(this,4);let e=Vd(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Xe(this,4);let e=$d(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Xe(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return Gd(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Xe(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Xe(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new Me(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Xe(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw Xe(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Xe(this,8);let e=Vs(this.buf,this.pos+=4),r=Vs(this.buf,this.pos+=4);return new Me(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=kn(this.buf,this.pos);return this.pos+=Re(e),e}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 Nf(t){return new Pf(t instanceof Uint8Array?t:t.subarray())}function qs(t,e,r){let n=Nf(t);return e.decode(n,void 0,r)}function Mf(t){let e=t??8192,r=e>>>1,n,o=e;return function(i){if(i<1||i>r)return Ke(i);o+i>e&&(n=Ke(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var yr=class{fn;len;next;val;constructor(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function kf(){}var Kf=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Rx=Mf();function Ox(t){return globalThis.Buffer!=null?Ke(t):Rx(t)}var mo=class{len;head;tail;states;constructor(){this.len=0,this.head=new yr(kf,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new yr(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new zf((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push($s,10,Me.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=Me.fromBigInt(e);return this._push($s,r.length(),r)}uint64Number(e){return this._push(Mn,Re(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let r=Me.fromBigInt(e).zzEncode();return this._push($s,r.length(),r)}sint64Number(e){let r=Me.fromNumber(e).zzEncode();return this._push($s,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Ff,1,e?1:0)}fixed32(e){return this._push(po,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=Me.fromBigInt(e);return this._push(po,4,r.lo)._push(po,4,r.hi)}fixed64Number(e){let r=Me.fromNumber(e);return this._push(po,4,r.lo)._push(po,4,r.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Hd,4,e)}double(e){return this._push(qd,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(Ff,1,0):this.uint32(r)._push(Px,r,e)}string(e){let r=Wd(e);return r!==0?this.uint32(r)._push(Uf,r,e):this._push(Ff,1,0)}fork(){return this.states=new Kf(this),this.head=this.tail=new yr(kf,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 yr(kf,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=Ox(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function Ff(t,e,r){e[r]=t&255}function Ux(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var zf=class extends yr{next;constructor(e,r){super(Ux,e,r),this.next=void 0}};function $s(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function po(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function Px(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(mo.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(Nx,e,t),this},mo.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(Mx,e,t),this});function Nx(t,e,r){e.set(t,r)}function Mx(t,e,r){t.length<40?Uf(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(dr(t),r)}function Hf(){return new mo}function js(t,e){let r=Hf();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var yo;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(yo||(yo={}));function Vf(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Ws(t,e){return Vf("message",yo.LENGTH_DELIMITED,t,e)}var go=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var Gs;(function(t){let e;t.codec=()=>(e==null&&(e=Ws((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 go('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 go('Decode error - map field "streamMuxers" had too many elements');s.streamMuxers.push(r.string());break}default:{r.skipType(a&7);break}}}return s})),e),t.encode=r=>js(r,t.codec()),t.decode=(r,n)=>qs(r,t.codec(),n)})(Gs||(Gs={}));var bo;(function(t){let e;t.codec=()=>(e==null&&(e=Ws((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),Gs.codec().encode(r.extensions,n)),o.lengthDelimited!==!1&&n.ldelim()},(r,n,o={})=>{let s={identityKey:ot(0),identitySig:ot(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=Gs.codec().decode(r,r.uint32(),{limits:o.limits?.extensions});break}default:{r.skipType(a&7);break}}}return s})),e),t.encode=r=>js(r,t.codec()),t.decode=(r,n)=>qs(r,t.codec(),n)})(bo||(bo={}));async function $f(t,e,r){let n=await t.sign(Yd(e));return bo.encode({identityKey:It(t.publicKey),identitySig:n,extensions:r})}async function jf(t,e,r){try{let n=bo.decode(t),o=Xn(n.identityKey);if(r?.equals(o)===!1)throw new Error(`Payload identity key ${o} does not match expected remote identity key ${r}`);if(!e)throw new Error("Remote static does not exist");let s=Yd(e);if(!await o.verify(s,n.identitySig))throw new Error("Invalid payload signature");return n}catch(n){throw new wo(n.message)}}function Yd(t){let e=dr("noise-libp2p-static-key:");return t instanceof Uint8Array?_f([e,t],e.length+t.length):(t.prepend(e),t)}var qf=class extends nt{stream;handshake;metrics;decoder;constructor(e,r,n){super({log:e.log,inactivityTimeout:e.inactivityTimeout,maxReadBufferLength:e.maxReadBufferLength,direction:e.direction}),this.stream=e,this.handshake=r,this.metrics=n,this.decoder=new Ms({lengthDecoder:nn,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(e){let r=new W;for(let n=0;n<e.byteLength;n+=65519){let o=n+65519;o>e.byteLength&&(o=e.byteLength);let s;e instanceof Uint8Array?s=this.handshake.encrypt(e.subarray(n,o)):s=this.handshake.encrypt(e.sublist(n,o)),this.metrics?.encryptedPackets.increment(),r.append(rn(s.byteLength)),r.append(s)}return r}decrypt(e){let r=new W;for(let n=0;n<e.byteLength;n+=65535){let o=n+65535;if(o>e.byteLength&&(o=e.byteLength),o-Zc<n)throw new Error("Invalid chunk");let s;e instanceof Uint8Array?s=e.subarray(n,o):s=e.sublist(n,o);let i=e.subarray(n,o-Zc);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(e){return this.stream.close(e)}sendPause(){this.stream.pause()}sendResume(){this.stream.resume()}sendReset(e){this.stream.abort(e)}sendData(e){return{sentBytes:e.byteLength,canSendMore:this.stream.send(this.encrypt(e))}}};function Wf(t,e,r){return new qf(t,e,r)}async function Jd(t,e){let{log:r,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=t,u=await $f(s,a.publicKey,f),h=new lo({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!0,prologue:i,s:a});Bf(h.s,r),r.trace("Stage 0 - Initiator starting to send first message."),await n.write(h.writeMessageA(pr),e),r.trace("Stage 0 - Initiator finished sending first message."),Lf(h.e,r),r.trace("Stage 1 - Initiator waiting to receive first message from responder...");let g=h.readMessageB(await n.read(e));r.trace("Stage 1 - Initiator received the message."),Cf(h.re,r),zd(h.rs,r),r.trace("Initiator going to check remote's signature...");let p=await jf(g,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),e),r.trace("Stage 2 - Initiator sent message with signed payload.");let[d,b]=h.ss.split();return If(d,b,r),{payload:p,encrypt:l=>d.encryptWithAd(pr,l),decrypt:(l,m)=>b.decryptWithAd(pr,l,m)}}async function Qd(t,e){let{log:r,connection:n,crypto:o,privateKey:s,prologue:i,s:a,remoteIdentityKey:c,extensions:f}=t,u=await $f(s,a.publicKey,f),h=new lo({crypto:o,protocolName:"Noise_XX_25519_ChaChaPoly_SHA256",initiator:!1,prologue:i,s:a});Bf(h.s,r),r.trace("Stage 0 - Responder waiting to receive first message."),h.readMessageA(await n.read(e)),r.trace("Stage 0 - Responder received first message."),Cf(h.re,r),r.trace("Stage 1 - Responder sending out first message with signed payload and static key."),await n.write(h.writeMessageB(u),e),r.trace("Stage 1 - Responder sent the second handshake message with signed payload."),Lf(h.e,r),r.trace("Stage 2 - Responder waiting for third handshake message...");let g=h.readMessageC(await n.read(e));r.trace("Stage 2 - Responder received the message, finished handshake.");let p=await jf(g,h.rs,c),[d,b]=h.ss.split();return If(d,b,r),{payload:p,encrypt:l=>b.encryptWithAd(pr,l),decrypt:(l,m)=>d.decryptWithAd(pr,l,m)}}var Zs=class{protocol="/noise";crypto;prologue;staticKey;extensions;metrics;components;log;constructor(e,r={}){let{staticNoiseKey:n,extensions:o,crypto:s,prologueBytes:i}=r,{metrics:a}=e;this.components=e,this.log=e.logger.forComponent("libp2p:noise");let c=s??yd;this.crypto=gd(c),this.extensions={webtransportCerthashes:[],...o},this.metrics=a?bd(a):void 0,n?this.staticKey=c.generateX25519KeyPairFromSeed(n):this.staticKey=c.generateX25519KeyPair(),this.prologue=i??ot(0)}[Symbol.toStringTag]="@chainsafe/libp2p-noise";[_o]=["@libp2p/connection-encryption","@chainsafe/libp2p-noise"];async secureOutbound(e,r){let n=e.log?.newScope("noise")??this.log,o=Gc(e,{lengthEncoder:rn,lengthDecoder:nn,maxDataLength:65535}),s=await this.performHandshakeInitiator(o,this.components.privateKey,n,r?.remotePeer?.publicKey,r),i=Xn(s.payload.identityKey);return{connection:Wf(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:ic(i),streamMuxer:r?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}getStreamMuxer(e){if(e==null||e.length===0)return;let r=this.components.upgrader.getStreamMuxers();if(r!=null)for(let n of e){let o=r.get(n);if(o!=null)return o}if(e.length)throw new xr("Early muxer negotiation was requested but the initiator and responder had no common muxers")}async secureInbound(e,r){let n=e.log?.newScope("noise")??this.log,o=Gc(e,{lengthEncoder:rn,lengthDecoder:nn,maxDataLength:65535}),s=await this.performHandshakeResponder(o,this.components.privateKey,n,r?.remotePeer?.publicKey,r),i=Xn(s.payload.identityKey);return{connection:Wf(o.unwrap(),s,this.metrics),remoteExtensions:s.payload.extensions,remotePeer:ic(i),streamMuxer:r?.skipStreamMuxerNegotiation===!0?void 0:this.getStreamMuxer(s.payload.extensions?.streamMuxers)}}async performHandshakeInitiator(e,r,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Jd({connection:e,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(e,r,n,o,s){let i,a=s?.skipStreamMuxerNegotiation===!0?[]:[...this.components.upgrader.getStreamMuxers().keys()];try{i=await Qd({connection:e,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 ep(t={}){return e=>new Zs(e,t)}var gr=class extends Event{type;detail;constructor(e,r){super(e),this.type=e,this.detail=r}};function Gf(t){throw new Error("Not implemented")}var Zf=class extends Ps{writer;reader;constructor(e){super(e),this.writer=e.stream.writable.getWriter(),this.reader=e.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 e=await this.reader.read();if(e.value!=null&&this.onData(e.value),e.done){this.log("remote closed write"),this.onRemoteCloseWrite();return}if(this.readStatus==="paused")break}}).catch(e=>{this.abort(e)}).finally(()=>{this.reader.releaseLock()})}sendData(e){for(let n of e)this.writer.write(n).catch(o=>{this.abort(o)});if(this.log.trace("desired size after sending %d bytes is %d bytes",e.byteLength,this.writer.desiredSize),this.writer.desiredSize==null)return{sentBytes:e.byteLength,canSendMore:!1};let r=this.writer.desiredSize>0;return r||this.writer.ready.then(()=>{this.safeDispatchEvent("drain")},n=>{this.abort(n)}),{sentBytes:e.byteLength,canSendMore:r}}sendReset(e){this.writer.abort(e).catch(r=>{this.log.error("error aborting writer - %e",r)})}async sendCloseWrite(e){this.log("sendCloseWrite closing writer"),await Fe(this.writer.close().catch(()=>{}),e?.signal),this.log("sendCloseWrite closed writer")}async sendCloseRead(e){this.log("sendCloseRead cancelling reader"),await Fe(this.reader.cancel(),e?.signal),this.log("sendCloseRead cancelled reader")}sendPause(){}sendResume(){this.readData()}};function Xf(t,e,r,n,o){return new Zf({...o,stream:t,id:e,direction:r,log:n.newScope(`${r}:${e}`),protocol:""})}var tp="/webtransport",Yf=class extends Us{webTransport;streamIDCounter;reader;constructor(e,r){super(r,{protocol:tp,name:"muxer"}),this.webTransport=e,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(Xf(o,String(this.streamIDCounter++),"inbound",this.log,this.streamOptions))}}).catch(n=>{this.log.error("could not create a new stream - %e",n)})}async onCreateStream(e){let r=await this.webTransport.createBidirectionalStream();return e?.signal?.throwIfAborted(),Xf(r,String(this.streamIDCounter++),"outbound",this.log,e)}onData(){}sendReset(){this.webTransport.close()}};function rp(t){return{protocol:tp,createStreamMuxer(e){return new Yf(t,e)}}}var Jf=class extends Os{cleanUpWTSession;constructor(e){super(e),this.cleanUpWTSession=e.cleanUpWTSession}sendData(e){return{sentBytes:e.byteLength,canSendMore:!0}}sendReset(){this.cleanUpWTSession("abort")}async sendClose(e){this.cleanUpWTSession("close"),e?.signal?.throwIfAborted()}sendPause(){}sendResume(){}},np=t=>new Jf(t);function op(t,e){return e.filter(n=>!!t.find(o=>we(n,o))).length===e.length}var kx=Object.values(Wt).map(t=>t.decoder).reduce((t,e)=>t.or(e));function Fx(t){return ut.decode(kx.decode(t))}function Qf(t){if(!Cs.matches(t))throw new vo("Invalid multiaddr, was not a WebTransport address");let e=[],r;for(let s of t.getComponents())s.name==="certhash"&&e.push(Fx(s.value??"")),s.name==="p2p"&&r==null&&(r=Cl(s.value??""));let n=_l(t),o=n.host;return n.type==="ip6"&&o.includes(":")&&(o=`[${o}]`),{url:`https://${o}:${n.port}`,certhashes:e,remotePeer:r}}var Xs=class extends nt{writer;reader;constructor(e){super(e),this.writer=e.stream.writable.getWriter(),this.reader=e.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(e){await Fe(this.writer.close(),e?.signal)}sendData(e){return this.writer.write(e.subarray()).catch(r=>{this.abort(r)}),{sentBytes:e.byteLength,canSendMore:!0}}sendReset(e){this.writer.abort(e).catch(r=>{this.log.error("could not send reset - %e",r)})}sendPause(){}sendResume(){}};var sp=globalThis.WebTransport;var eu=class{log;components;config;metrics;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:webtransport"),this.components=e,this.config={...r,certificates:r.certificates??[]},e.metrics!=null&&(this.metrics={dialerEvents:e.metrics.registerCounterGroup("libp2p_webtransport_dialer_events_total",{label:"event",help:"Total count of WebTransport dialer events by type"})})}[Symbol.toStringTag]="@libp2p/webtransport";[ou]=!0;[_o]=["@libp2p/transport"];async dial(e,r){r.signal.throwIfAborted(),this.log("dialing %s",e),r=r??{};let{url:n,certhashes:o,remotePeer:s}=Qf(e),i,a,c=()=>{},f=!1,u=!1,h=!1;try{this.metrics?.dialerEvents.increment({pending:!0});let g=new sp(`${n}/.well-known/libp2p-webtransport?type=noise`,{serverCertificateHashes:o.map(d=>({algorithm:"sha-256",value:De(d.digest)}))});c=d=>{if(!f)try{this.metrics?.dialerEvents.increment({[d]:!0}),g.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 gr("webtransport:wait-for-session")),await Promise.race([g.closed,g.ready]),this.log("session became ready"),u=!0,this.metrics?.dialerEvents.increment({ready:!0}),g.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=np({remoteAddr:e,cleanUpWTSession:c,direction:"outbound",log:this.components.logger.forComponent("libp2p:webtransport:connection")});let p=await this.authenticateWebTransport({wt:g,maConn:a,remotePeer:s,certhashes:o,...r});if(h=!0,s!=null&&(h=s.equals(p)),!h)throw new xr("Failed to authenticate webtransport");return await r.upgrader.upgradeOutbound(a,{...r,skipEncryption:!0,remotePeer:p,muxerFactory:rp(g),skipProtection:!0})}catch(g){throw this.log.error("caught wt session err - %e",g),c(h?"upgrade_error":u?"noise_error":"ready_error"),g}finally{i!=null&&r.signal?.removeEventListener("abort",i)}}async authenticateWebTransport({wt:e,maConn:r,remotePeer:n,certhashes:o,onProgress:s,signal:i}){s?.(new gr("webtransport:open-authentication-stream"));let a=await e.createBidirectionalStream();i?.throwIfAborted();let c=new Xs({stream:a,log:r.log.newScope("muxer")}),f=ep()(this.components);s?.(new gr("webtransport:secure-outbound-connection"));let{remoteExtensions:u,remotePeer:h}=await f.secureOutbound(c,{signal:i,remotePeer:n,skipStreamMuxerNegotiation:!0});if(s?.(new gr("webtransport:close-authentication-stream")),await c.close({signal:i}),!op(u?.webtransportCerthashes??[],o.map(g=>g.bytes)))throw new ee("Our certhashes are not a subset of the remote's reported certhashes");return h}createListener(e){return Gf(this.components,{...e,certificates:this.config.certificates})}listenFilter(){return[]}dialFilter(e){return globalThis.WebTransport==null?[]:e.filter(r=>{if(!Cs.exactMatch(r))return!1;let{url:n,certhashes:o}=Qf(r);return n!=null&&o.length>0})}};function Kx(t={}){return e=>new eu(e,t)}return up(zx);})();
|
|
3
3
|
//! TODO unclear how to add backpressure here?
|
|
4
4
|
/*! Bundled license information:
|
|
5
5
|
|